net-nds/phpldapadmin - 2.3.9 (vklimovs)

Search

Package Information

Description:
A web-based tool for managing LDAP servers
Homepage:
https://phpldapadmin.org https://github.com/leenooks/phpLDAPadmin
License:
GPL-2

Ebuild Details

Version EAPI Keywords Slot
2.3.9 8 ~amd64 ${PVR}
View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

MY_PN="phpLDAPadmin"

# To generate the vendor tarball:
#   tar -xf phpldapadmin-${PV}.tar.gz
#   cd phpLDAPadmin-${PV}
#   composer install --no-dev --optimize-autoloader
#   npm install && npm run production
#   cd ..
#   tar -cJf phpldapadmin-${PV}-vendor.tar.xz \
#       phpLDAPadmin-${PV}/vendor/ \
#       phpLDAPadmin-${PV}/public/js/ \
#       phpLDAPadmin-${PV}/public/css/ \
#       phpLDAPadmin-${PV}/public/fonts/

DESCRIPTION="A web-based tool for managing LDAP servers"
HOMEPAGE="https://phpldapadmin.org https://github.com/leenooks/phpLDAPadmin"
SRC_URI="https://github.com/leenooks/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
	https://github.com/leenooks/${MY_PN}/archive/${PV}-vendor.tar.gz
		-> ${P}-vendor.tar.xz"

S="${WORKDIR}/${MY_PN}-${PV}"

LICENSE="GPL-2"
SLOT="${PVR}"
KEYWORDS="~amd64"

# PHP extensions required by phpLDAPadmin (ext-fileinfo, ext-iconv) and
# Laravel 12 (ext-mbstring/unicode, ext-openssl/ssl) and for running
# artisan commands (cli) and serving via PHP-FPM (fpm).
RDEPEND="
	>=dev-lang/php-8.4:*[cli,fpm,ldap,ssl,unicode]
	virtual/httpd-php
"

PLA_HOME="/var/lib/${P}"

src_compile() {
	return
}

src_install() {
	# Remove developer/build-only files not needed at runtime
	rm -rf .github .gitea docker tests || die
	rm -f .editorconfig .gitattributes .gitignore phpunit.xml \
		package.json package-lock.json webpack.mix.js || die

	insinto "${PLA_HOME}"
	doins -r app bootstrap config database public resources routes \
		storage templates
	doins artisan composer.json composer.lock

	# Rename the example env file to the live config
	newins .env.example .env

	# artisan is a PHP CLI script that must be executable
	fperms 0755 "${PLA_HOME}/artisan"

	# Laravel requires these directories to be writable by the web server.
	# keepdir ensures they exist even when empty (git does not track empty dirs).
	keepdir \
		"${PLA_HOME}"/storage/app/public \
		"${PLA_HOME}"/storage/framework/cache/data \
		"${PLA_HOME}"/storage/framework/sessions \
		"${PLA_HOME}"/storage/framework/testing \
		"${PLA_HOME}"/storage/framework/views \
		"${PLA_HOME}"/storage/logs \
		"${PLA_HOME}"/bootstrap/cache
}

pkg_postinst() {
	einfo "phpLDAPadmin has been installed to ${PLA_HOME}."
	einfo
	einfo "Configure your web server to use ${PLA_HOME}/public/ as"
	einfo "the document root. Example Nginx config:"
	einfo "  root ${PLA_HOME}/public;"
	einfo "  index index.php;"
	einfo "  location / { try_files \$uri \$uri/ /index.php?\$query_string; }"
	einfo
	einfo "Edit ${PLA_HOME}/.env to set your LDAP server details:"
	einfo "  LDAP_HOST=ldap.example.com"
	einfo "  LDAP_USERNAME=cn=admin,dc=example,dc=com"
	einfo "  LDAP_PASSWORD=secret"
	einfo
	einfo "Run 'emerge --config =${CATEGORY}/${PF}' to finish setup."
}

pkg_config() {
	local pla_home="${EROOT}${PLA_HOME}"

	einfo "Generating application encryption key..."
	php "${pla_home}/artisan" key:generate || die

	einfo "Caching configuration for production..."
	php "${pla_home}/artisan" optimize || die

	einfo "Setting permissions on writable directories..."
	chown -R root:apache \
		"${pla_home}"/storage \
		"${pla_home}"/bootstrap/cache || die
	chmod -R ug+rwX,o-rwx \
		"${pla_home}"/storage \
		"${pla_home}"/bootstrap/cache || die

	einfo "All done."
}

Dependencies

RDEPEND

	>=dev-lang/php-8.4:*[cli,fpm,ldap,ssl,unicode]
	virtual/httpd-php

Manifest for 2.3.9

Type File Size Source URLs
DIST phpldapadmin-2.3.9.tar.gz 621914 bytes https://github.com/leenooks/phpLDAPadmin/archive/2.3.9.tar.gz