summaryrefslogtreecommitdiff
path: root/net-nds
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /net-nds
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'net-nds')
-rw-r--r--net-nds/389-ds-base/389-ds-base-3.0.6.ebuild344
-rw-r--r--net-nds/389-ds-base/Manifest102
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch34
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-3.0.6-CVE-2025-2487.patch213
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-3.0.6-rust-1.89.patch32
-rw-r--r--net-nds/389-ds-base/files/389-ds-base-db-gentoo.patch17
-rw-r--r--net-nds/389-ds-base/files/389-ds-base.conf3
-rw-r--r--net-nds/389-ds-base/files/389-ds-snmp.initd43
-rw-r--r--net-nds/389-ds-base/files/389-ds.initd-r189
-rw-r--r--net-nds/389-ds-base/files/README.gentoo10
-rw-r--r--net-nds/389-ds-base/metadata.xml37
-rw-r--r--net-nds/gssproxy/Manifest1
-rw-r--r--net-nds/gssproxy/files/gssproxy17
-rw-r--r--net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch106
-rw-r--r--net-nds/gssproxy/files/gssproxy-0.9.2-docbook-upgrade.patch46
-rw-r--r--net-nds/gssproxy/files/gssproxy-0.9.2-no-git-log.patch13
-rw-r--r--net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild117
-rw-r--r--net-nds/gssproxy/gssproxy-0.9.2.ebuild116
-rw-r--r--net-nds/gssproxy/metadata.xml11
-rw-r--r--net-nds/jxplorer/Manifest1
-rw-r--r--net-nds/jxplorer/files/jxplorer-3-pre26
-rw-r--r--net-nds/jxplorer/jxplorer-3.3.1.2-r2.ebuild74
-rw-r--r--net-nds/jxplorer/metadata.xml9
-rw-r--r--net-nds/ldap-proxy/Manifest189
-rw-r--r--net-nds/ldap-proxy/ldap-proxy-0.1.4.ebuild226
-rw-r--r--net-nds/ldap-proxy/metadata.xml9
-rw-r--r--net-nds/ldapvi/Manifest1
-rw-r--r--net-nds/ldapvi/files/ldapvi-1.7-fix-implicit-function-declarations.patch86
-rw-r--r--net-nds/ldapvi/files/ldapvi-1.7-fix-missing-on_exit-musl.patch61
-rw-r--r--net-nds/ldapvi/files/ldapvi-1.7-posix-unlocked.patch23
-rw-r--r--net-nds/ldapvi/ldapvi-1.7_p20101214-r7.ebuild63
-rw-r--r--net-nds/ldapvi/metadata.xml9
-rw-r--r--net-nds/led/Manifest1
-rw-r--r--net-nds/led/led-1.111.ebuild35
-rw-r--r--net-nds/led/metadata.xml9
-rw-r--r--net-nds/metadata.xml35
-rw-r--r--net-nds/openldap/Manifest10
-rw-r--r--net-nds/openldap/files/DB_CONFIG.fast.example25
-rw-r--r--net-nds/openldap/files/openldap-2.4.28-fix-dash.patch24
-rw-r--r--net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch12
-rw-r--r--net-nds/openldap/files/openldap-2.6.1-cloak.patch21
-rw-r--r--net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.v2.patch53
-rw-r--r--net-nds/openldap/files/openldap-2.6.1-flags.patch352
-rw-r--r--net-nds/openldap/files/openldap-2.6.1-system-mdb.patch140
-rw-r--r--net-nds/openldap/files/openldap-2.6.3-slapd-conf64
-rw-r--r--net-nds/openldap/files/openldap-2.6.x-gnutls-pointer-error.patch40
-rw-r--r--net-nds/openldap/files/slapd-2.6.1.service13
-rw-r--r--net-nds/openldap/files/slapd-confd-2.6.126
-rw-r--r--net-nds/openldap/files/slapd-initd-2.4.40-r264
-rw-r--r--net-nds/openldap/files/slapd.service12
-rw-r--r--net-nds/openldap/files/slapd.service.conf12
-rw-r--r--net-nds/openldap/files/slapd.tmpfilesd2
-rw-r--r--net-nds/openldap/metadata.xml26
-rw-r--r--net-nds/openldap/openldap-2.5.19.ebuild889
-rw-r--r--net-nds/openldap/openldap-2.5.20.ebuild881
-rw-r--r--net-nds/openldap/openldap-2.6.12.ebuild893
-rw-r--r--net-nds/openldap/openldap-2.6.13.ebuild893
-rw-r--r--net-nds/openldap/openldap-2.6.8-r1.ebuild894
-rw-r--r--net-nds/phpldapadmin/Manifest2
-rw-r--r--net-nds/phpldapadmin/files/phpldapadmin-1.2.1.1-fix-magic-quotes.patch23
-rw-r--r--net-nds/phpldapadmin/files/phpldapadmin-1.2.6.4-getDN-htmlspecialchars.patch16
-rw-r--r--net-nds/phpldapadmin/files/postinstall2-en.txt4
-rw-r--r--net-nds/phpldapadmin/metadata.xml12
-rw-r--r--net-nds/phpldapadmin/phpldapadmin-1.2.6.6.ebuild58
-rw-r--r--net-nds/phpldapadmin/phpldapadmin-1.2.6.7.ebuild58
-rw-r--r--net-nds/rpcbind/Manifest2
-rw-r--r--net-nds/rpcbind/files/rpcbind.confd4
-rw-r--r--net-nds/rpcbind/files/rpcbind.initd21
-rw-r--r--net-nds/rpcbind/metadata.xml15
-rw-r--r--net-nds/rpcbind/rpcbind-1.2.7.ebuild65
-rw-r--r--net-nds/rpcbind/rpcbind-1.2.8.ebuild65
-rw-r--r--net-nds/rpcbind/rpcbind-9999.ebuild65
-rw-r--r--net-nds/shelldap/Manifest1
-rw-r--r--net-nds/shelldap/metadata.xml18
-rw-r--r--net-nds/shelldap/shelldap-1.5.2.ebuild43
-rw-r--r--net-nds/yp-tools/Manifest1
-rw-r--r--net-nds/yp-tools/files/domainname.service10
-rw-r--r--net-nds/yp-tools/files/domainname.service.conf3
-rw-r--r--net-nds/yp-tools/metadata.xml5
-rw-r--r--net-nds/yp-tools/yp-tools-4.2.3-r1.ebuild48
80 files changed, 8093 insertions, 0 deletions
diff --git a/net-nds/389-ds-base/389-ds-base-3.0.6.ebuild b/net-nds/389-ds-base/389-ds-base-3.0.6.ebuild
new file mode 100644
index 000000000000..f1cf3170c6cf
--- /dev/null
+++ b/net-nds/389-ds-base/389-ds-base-3.0.6.ebuild
@@ -0,0 +1,344 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.22.0
+ adler@1.0.2
+ ahash@0.7.8
+ atty@0.2.14
+ autocfg@1.3.0
+ backtrace@0.3.73
+ base64@0.13.1
+ bitflags@1.3.2
+ bitflags@2.6.0
+ byteorder@1.5.0
+ cbindgen@0.26.0
+ cc@1.1.6
+ cfg-if@1.0.0
+ clap@3.2.25
+ clap_lex@0.2.4
+ concread@0.2.21
+ crossbeam-channel@0.5.13
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-queue@0.3.11
+ crossbeam-utils@0.8.20
+ crossbeam@0.8.4
+ errno@0.3.9
+ fastrand@2.1.0
+ fernet@0.1.4
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ getrandom@0.2.15
+ gimli@0.29.0
+ hashbrown@0.12.3
+ heck@0.4.1
+ hermit-abi@0.1.19
+ indexmap@1.9.3
+ instant@0.1.13
+ itoa@1.0.11
+ jobserver@0.1.31
+ libc@0.2.155
+ linux-raw-sys@0.4.14
+ lock_api@0.4.12
+ log@0.4.22
+ lru@0.7.8
+ memchr@2.7.4
+ miniz_oxide@0.7.4
+ object@0.36.1
+ once_cell@1.19.0
+ openssl-macros@0.1.1
+ openssl-sys@0.9.103
+ openssl@0.10.66
+ os_str_bytes@6.6.1
+ parking_lot@0.11.2
+ parking_lot_core@0.8.6
+ paste-impl@0.1.18
+ paste@0.1.18
+ pin-project-lite@0.2.14
+ pkg-config@0.3.30
+ ppv-lite86@0.2.17
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.86
+ quote@1.0.36
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.2.16
+ rustc-demangle@0.1.24
+ rustix@0.38.34
+ ryu@1.0.18
+ scopeguard@1.2.0
+ serde@1.0.204
+ serde_derive@1.0.204
+ serde_json@1.0.120
+ smallvec@1.13.2
+ strsim@0.10.0
+ syn@1.0.109
+ syn@2.0.72
+ tempfile@3.10.1
+ termcolor@1.4.1
+ textwrap@0.16.1
+ tokio-macros@2.3.0
+ tokio@1.38.1
+ toml@0.5.11
+ unicode-ident@1.0.12
+ uuid@0.8.2
+ vcpkg@0.2.15
+ version_check@0.9.4
+ wasi@0.11.0+wasi-snapshot-preview1
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.8
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.52.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ zeroize@1.8.1
+ zeroize_derive@1.4.2
+"
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit autotools cargo distutils-r1 readme.gentoo-r1 systemd tmpfiles
+
+DESCRIPTION="389 Directory Server (core libraries and daemons)"
+HOMEPAGE="https://directory.fedoraproject.org/"
+SRC_URI="
+ https://github.com/389ds/${PN}/archive/refs/tags/${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="GPL-3+"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD MIT MPL-2.0 Unicode-DFS-2016"
+
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE_PLUGINS="+accountpolicy +bitwise +dna +pam-passthru"
+IUSE="${IUSE_PLUGINS} +autobind auto-dn-suffix debug doc +ldapi selinux systemd"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# lib389 tests (which is most of the suite) can't find their own modules.
+RESTRICT="test"
+
+# Do not add any AGPL-3 BDB here!
+# See bug 525110, comment 15.
+DEPEND="
+ >=app-crypt/mit-krb5-1.7-r100[openldap]
+ dev-db/lmdb:=
+ >=dev-libs/cyrus-sasl-2.1.19:2[kerberos]
+ dev-libs/json-c:=
+ >=dev-libs/icu-60.2:=
+ dev-libs/nspr
+ >=dev-libs/nss-3.22[utils]
+ dev-libs/libpcre2:=
+ dev-libs/openssl:0=
+ >=net-analyzer/net-snmp-5.1.2:=
+ net-nds/openldap:=[sasl]
+ sys-libs/cracklib
+ sys-libs/db:5.3
+ virtual/zlib:=
+ sys-fs/e2fsprogs
+ pam-passthru? ( sys-libs/pam )
+ selinux? (
+ $(python_gen_cond_dep '
+ sys-libs/libselinux[python,${PYTHON_USEDEP}]
+ ')
+ )
+ systemd? ( >=sys-apps/systemd-244 )
+ virtual/libcrypt:=
+"
+
+BDEPEND=">=dev-build/autoconf-2.69-r5
+ virtual/pkgconfig
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/argparse-manpage[${PYTHON_USEDEP}]
+ ')
+ doc? ( app-text/doxygen )
+ test? ( dev-util/cmocka )
+"
+
+# perl dependencies are for logconv.pl
+RDEPEND="${DEPEND}
+ acct-user/dirsrv
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pyasn1[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-ldap[sasl,${PYTHON_USEDEP}]
+ dev-python/distro[${PYTHON_USEDEP}]
+ ')
+ virtual/perl-Archive-Tar
+ virtual/perl-DB_File
+ virtual/perl-IO
+ virtual/perl-Getopt-Long
+ virtual/perl-IO-Compress
+ virtual/perl-MIME-Base64
+ virtual/perl-Scalar-List-Utils
+ virtual/perl-Time-Local
+ virtual/logger
+ selinux? ( sec-policy/selinux-dirsrv )
+ !dev-python/lib389
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-db-gentoo.patch"
+ "${FILESDIR}/${PN}-3.0.2-fix-rust-in-configure.patch"
+ "${FILESDIR}/${PN}-3.0.6-CVE-2025-2487.patch"
+ "${FILESDIR}/${PN}-3.0.6-rust-1.89.patch"
+)
+
+distutils_enable_tests pytest
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ rust_pkg_setup
+}
+
+src_prepare() {
+ # according to an upstream comment, this got commited by accident
+ rm src/librslapd/Cargo.lock || die
+
+ # https://github.com/389ds/389-ds-base/issues/4292
+ if use !systemd; then
+ sed -i \
+ -e 's|WITH_SYSTEMD = 1|WITH_SYSTEMD = 0|' \
+ Makefile.am || die
+ fi
+
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable accountpolicy acctpolicy)
+ $(use_enable bitwise)
+ $(use_enable dna)
+ $(use_enable pam-passthru)
+ $(use_enable autobind)
+ $(use_enable auto-dn-suffix)
+ $(use_enable debug)
+ $(use_enable ldapi)
+ $(use_with selinux)
+ $(use_with !systemd initddir "/etc/init.d")
+ $(use_with systemd)
+ $(use_enable test cmocka)
+ --with-systemdgroupname="dirsrv.target"
+ --with-tmpfiles-d="${EPREFIX}/usr/lib/tmpfiles.d"
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --enable-rust-offline
+ --with-pythonexec="${PYTHON}"
+ --with-fhs
+ --with-openldap
+ --with-db-inc="${EPREFIX}"/usr/include/db5.3
+ --disable-cockpit
+ )
+
+ econf "${myeconfargs[@]}"
+
+ rm .cargo/config || die
+}
+
+src_compile() {
+ export CARGO_HOME="${ECARGO_HOME}"
+
+ default
+
+ if use doc; then
+ doxygen docs/slapi.doxy || die
+ fi
+
+ emake src/lib389/setup.py
+ pushd src/lib389 &>/dev/null || die
+ distutils-r1_src_compile
+ popd &>/dev/null || die
+
+ # argparse-manpage dynamic man pages have hardcoded man v1 in header
+ sed -i \
+ "1s/\"1\"/\"8\"/" \
+ src/lib389/man/{openldap_to_ds,ds{conf,ctl,idm,create}}.8 || die
+}
+
+src_test () {
+ emake check
+ distutils-r1_src_test
+}
+
+src_install() {
+ # -j1 is a temporary workaround for bug #605432
+ emake -j1 DESTDIR="${D}" install
+
+ # Install gentoo style init script
+ # Get these merged upstream
+ newinitd "${FILESDIR}"/389-ds.initd-r1 389-ds
+ newinitd "${FILESDIR}"/389-ds-snmp.initd 389-ds-snmp
+
+ dotmpfiles "${FILESDIR}"/389-ds-base.conf
+
+ # cope with libraries being in /usr/lib/dirsrv
+ dodir /etc/env.d
+ echo "LDPATH=/usr/$(get_libdir)/dirsrv" > "${ED}"/etc/env.d/08dirsrv || die
+
+ if use doc; then
+ docinto html/
+ dodoc -r html/.
+ fi
+
+ pushd src/lib389 &>/dev/null || die
+ distutils-r1_src_install
+ popd &>/dev/null || die
+
+ # wheel installs this in site-packages/usr..
+ local misplaced_usr="${D}/usr/lib/${EPYTHON}/site-packages/usr"
+ mkdir -p "${ED}"/usr/libexec/dirsrv
+ mv "${misplaced_usr}/libexec/dirsrv/dscontainer" "${ED}"/usr/libexec/dirsrv
+ mv "${misplaced_usr}/sbin/openldap_to_ds" "${ED}"/usr/sbin
+ mv "${misplaced_usr}/sbin/dsconf" "${ED}"/usr/sbin
+ mv "${misplaced_usr}/sbin/dsctl" "${ED}"/usr/sbin
+ mv "${misplaced_usr}/sbin/dsidm" "${ED}"/usr/sbin
+ mv "${misplaced_usr}/sbin/dscreate" "${ED}"/usr/sbin
+ mv "${misplaced_usr}/share/man/man8/openldap_to_ds.8" "${ED}"/usr/share/man/man8
+ mv "${misplaced_usr}/share/man/man8/dsconf.8" "${ED}"/usr/share/man/man8
+ mv "${misplaced_usr}/share/man/man8/dsctl.8" "${ED}"/usr/share/man/man8
+ mv "${misplaced_usr}/share/man/man8/dsidm.8" "${ED}"/usr/share/man/man8
+ mv "${misplaced_usr}/share/man/man8/dscreate.8" "${ED}"/usr/share/man/man8
+ rm -d "${misplaced_usr}"/share/man/man8 || die
+ rm -d "${misplaced_usr}"/share/man || die
+ rm -d "${misplaced_usr}"/libexec/dirsrv || die
+ rm -d "${misplaced_usr}"/{libexec,sbin,share} || die
+ rm -d "${misplaced_usr}" || die
+
+ python_fix_shebang "${ED}"
+ python_optimize
+
+ readme.gentoo_create_doc
+
+ find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die
+}
+
+pkg_postinst() {
+ tmpfiles_process 389-ds-base.conf
+
+ readme.gentoo_print_elog
+}
diff --git a/net-nds/389-ds-base/Manifest b/net-nds/389-ds-base/Manifest
new file mode 100644
index 000000000000..aa3f752be846
--- /dev/null
+++ b/net-nds/389-ds-base/Manifest
@@ -0,0 +1,102 @@
+DIST 389-ds-base-3.0.6.tar.gz 6631547 BLAKE2B 293b3e6bab0a0e33aa1e27fce2ec62af89b6cfe62970847cea07f1c4878f501b3cad8741a8487000e24eac2683045f841e27b554a5920c5610cdd09e7c0e4704 SHA512 416a7c7f5993e5ceaab503d567de4c9b9e9aa4d61aec9f4ac830a1fbf450a1c49a56ee4a4be54cc583da5259abddd3e40665547d428b382f520f26cc08141d8a
+DIST addr2line-0.22.0.crate 39156 BLAKE2B 3fbb55f6cacbb177d06359bcd39885247a9eeef96d95ffac0dfd1d45ed394dcd1e9e069c02c71a9ffca0b69e3a974e4d96bc3385470ee39c87d7a30ea7914303 SHA512 b334f51bd369348b4446805b4f624ec9b4cc8eefcc53ceb57b523ff55bf018d1dfe23259daf48d1878170ad4fcb44181d4738456eb5e35ede6932ff29686268e
+DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+DIST ahash-0.7.8.crate 38550 BLAKE2B 0fd5f220c15bc0a1aa2e95d13477bcc832d992c6406f9da0994ae32419e440a6f7ef84c1a7a1242d5904dca5d91206602d943ca81b444f46d2eb91d55844baea SHA512 63677b2001d633ecabb36c08bd92e00b5fa71f24aed1c4601d12d846ea06aeaf093c37cfe1f6642147800caa6c749e9a202aa21f9ab4799efa379ad0d952a2ee
+DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
+DIST autocfg-1.3.0.crate 16524 BLAKE2B 7d5a03853d6b4f0da08d8e139fb200da21e47fa7e50d1956270d0ff0cc496f660f8f800122c95eee9ba98d9210ab200c3010b782097483d12d6be4ac0df0e7c9 SHA512 a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635
+DIST backtrace-0.3.73.crate 87617 BLAKE2B 585eebbb44671dfb3ff088092f62c7b25118ffc34e148b9b6ac67707923254ea43056861e2658c5fac7b9ed16fa56c30e7734e976fc3178f1fc03912d1d44c40 SHA512 dacedfd32cb91fe408e4f395441baf09c0a4b3bc4ba8f79d088359455cc903c93d24969567c7c5b2feb806433ffbb63a526d73f53caa4bee9c51961b61f831d9
+DIST base64-0.13.1.crate 61002 BLAKE2B 3b3a5b26e2ef18e9b4f1ede72b1bd160a1494751878e8441d463f8a514e6cb9ac859231536989e19fb1261fd864617fe31440df1b5855a0ec625521fc6fcef91 SHA512 1eb76aff9a84057f2ccb7082e9c57b015c2d71a28173089b02e7aacd09a7d311bedf0a943529611ada29f8d7b536d7ae4de256d98eee8450003a3a9a652bda4b
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST cbindgen-0.26.0.crate 206157 BLAKE2B 4c435ccf9d5ab3cc036691cc51c55334e27a0348002b6303b11974c0aa4908b9f902577ca6e50bf241ca75816775e7bb33901f1f81e3d5293ddd2128b458204b SHA512 2de81f46c9c68c985241a349f13125876667d1460d3658ead8c4ee9788cd139c30dbc08bebddc172cf0bd4644f3f17c02cf66f2a3ef706c52366fdaf0f9d8059
+DIST cc-1.1.6.crate 81585 BLAKE2B 412ef9d62c32a42164f8c2b827c10f0d41e75faa77e6d1dd8515ff5ec43abd1da75bbb400460a43a252c93dd0a597c2e44c8e899a376d963f0d3727db7ca2c24 SHA512 ea8bd8150042268092360e6396226ee5e83ba154eae99d299c897ed16e8543fcfe3179e22b50b0497bcf065a16933f4ebf7edcae7e6fc8be3788f0ae7f61c000
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST clap-3.2.25.crate 219403 BLAKE2B 75a8ee36c52e64cf0ac7ed5604d8a575c41c756a588bd418e6c1edccfb358350cdd831b4176f01b987fe7fa5901ca2bccee6b0f68ccba7dbe40baf85a5f3bdb4 SHA512 557c8932175d7ecd077b32b68904924e52dd46d04fd04ba36b3a9dfd7ab1dbe8c2128fecfd75d0388b21fca4aee55a941794181cc2910a4d4eb3c54e9c7e73ea
+DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c05b65bc5a78c422b2a4bf488f9ef1e0bed4e335450f2c08b80148eb5f7efed678039b5a94b5bd666385939f SHA512 6c05e5fd850befd45be9005af7252385f2304aa28a107413bbe329d97aea835f7acfd0bd169c99f69f466ab93d6e1c35d73a4e48343457a06fe2d6be5bedde0f
+DIST concread-0.2.21.crate 854960 BLAKE2B 11b693f52615445afcd789ce228e3c20ede2cc250e2230041324ced7e7f59a8b45c932f85a82d84ff461d02449423c85b7e6134b31110a49890cade330a8f2e9 SHA512 1d09ad7cdb94626b425e7931f3ef30a068804c773edc0af4e9aea4bd47822c5267779b6fce089b1272173f0d82d1067b76def0e2b0e1f43e85bda8f37afa3dd6
+DIST crossbeam-0.8.4.crate 10500 BLAKE2B 03212d9789a66c1eee7d1f4c7883eec1267089ab9d652ba5d7d59a22e04ab878e5defeccf8cff4587a34d976488ffa689bffde596588057d814b633ab3d67d1d SHA512 63650fe2d46ff2e593342b398c153facd3cb7cd72dac9b057ee0aac5ef5e9dd9df0e71536d66879676c0edaa89787d1f365eea35c82604ca46090e527749f994
+DIST crossbeam-channel-0.5.13.crate 91174 BLAKE2B 7a9aed6f4922c1d10e4ae12508a03dc7daca773adad6a317c4ea38e544d7c28c56a06623d958aec540fcaa86fa9051a1aaa2c859dadff72873f18f2f3a951449 SHA512 0f31223a7099f84e39e6b76b19cf26736e0c3907fffc2ed3eb0012c7984b1993570bf6d155eba5bfb82897ef0e4fc93b89096071410bbac256ca6be9a9568ff8
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-queue-0.3.11.crate 15581 BLAKE2B 91b9797f985af06c854c38b8124cb67864bdb47979d2e253928678118515fbc1257108c7102bad66e1f65fd6f324a93749dde86b4ea28f3bb5a16491f3f56ed2 SHA512 c6007307ef9d219889e6244805ae759998396e1d0548e3664ce9ab366ea78917dee75251c4265b0e3ef4ab15b5c6d42d6a5e9b286d17ad42ec169e7fcddb8ffe
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a
+DIST fastrand-2.1.0.crate 14907 BLAKE2B f96c74c1da31bae35e5ae0a557b3cdf120099cd7f31475ff6ce0eddfd8d30baeb025cd17b661f452cc4d3fedde763621301545e28efa030b3be21d1d9ba8d0d9 SHA512 ce776a3d0fbc108017c93ce9bff7c9e7e65590acb149dcd55c2f349d2077ffdf5ac6427753732f60cd7acf141ef6f89359b2e7d9368016be53b24e8703e71104
+DIST fernet-0.1.4.crate 12480 BLAKE2B 45a9c2cae9a8f0a0455cd2cc786542ae22ae1a9f033312cfe29e235f342ca0753d6d090b5951485b09ef8dfa5c667c9b50ad91716dac17ef41d3920d93f1a906 SHA512 6a8efe3465cef6cbc528fab14f86efb12b1b5716d3ae0ab4e9e5532f58d6e177e08317d5f6a91c8ec6c541ff1bef4aaf24dada091e9306841960c193e79efb49
+DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
+DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST gimli-0.29.0.crate 275756 BLAKE2B 092e5bce9503a337451f63706e7ae7d12a4228db6a43d2c14fa6af74640a790ec70ea2055ac84db3919d19612ee6ee0453f64981390667abec97637679ff06d3 SHA512 a6b591d48dbe93a1fa6b814759a5cb61fba0838288840667aaecf01346a3ab862fbfe1cab51b057a425ba9a0ce35c8421b28cd5195464be881f38905062f1446
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST instant-0.1.13.crate 6305 BLAKE2B 83a2c479e21e789ca9795f66116ebc55481a42afb21f4c0ec0551edf07781901a28978667e92b01355b43e0e1a7ffcd3cc37b5501a7521da78f4f352e586c9fd SHA512 b7839431e8920c4c0841d0974eede75fc50f2bb7a9475664bd2c4ff6c558a10084e1c025e5be977c3364ae9112c365c0a6f480cb9b35ee4130ca2beebcf650a9
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST jobserver-0.1.31.crate 27306 BLAKE2B 08ed4a90dfdad5bd7d67b8e15cf61bccb4a9669dfe4a479680c481e7066c70d833cd199b56a4ce7d1180cc9fef565d0afe722a13a436b86326cdfc8c10fb0424 SHA512 0488e5eafc5a99583d4626ae8900d49082aa09228b35a8992d8e715b5a39aade47f51562dc4db8ac41305e069988c4c63e1c78e92d65561e3e8a09d4dfa5fe25
+DIST libc-0.2.155.crate 743539 BLAKE2B 42cdcf8d4a187383548b1f09d404474f168916d626d614463fe10a1fd886e972e1caf6297e75445214af3f31fe631d0927e54ec1cdc63e20082b3587e38dce16 SHA512 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807
+DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
+DIST lru-0.7.8.crate 12623 BLAKE2B d831330a8529a3f4272ffdb5234c9ed7804c11e70a0a94ea592a29c8c2ec39b66d4c5f62d55a0053f6b687c4d3dc4eb31219caa376e5330b4945fcdf7f646fe6 SHA512 75188a6118398870ccb39da113a41e9f791180c22eb3655f3a3dbbad444bc6873406e96f3fead814c154ee97e4a4da14f9848919ec9daeacb7dd2ce808e23ceb
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST miniz_oxide-0.7.4.crate 56119 BLAKE2B 68facfec9ff405bebe99f52bcf3aac6788f1b5eef313ca393e2a15e1158bf294003cbe31efea4c793e644e8ab4e00ef67d38f7d32849ab6f01a8e19d31c30221 SHA512 482bf02d7bfd25bd8abe5e5959132677202d8c5dc014b9b0b64fbdc204be1b8431867095c140a1183dd1ca59f6ba871a355422fbd148ce34d62960cad2b7a978
+DIST object-0.36.1.crate 323865 BLAKE2B 60afa0ce744d32544b56e982fee69a33114de81ddb8e25156c4f1c6e492b39390a47e14a929cb7a9688bad34923a67d164295a42eb17932433b7d6b5cac72d85 SHA512 a64a7538f4be5473f9f206cdb0c79cc402ff3c868b7b4d33ec899e07754d55999e9a1dea0f7cc465be8effb3dbf9859d1460b083de1e3ee7bbdc7434d242361a
+DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST openssl-0.10.66.crate 273705 BLAKE2B 7892e96dac3b24ad5622833b4061bd82028210f9f26ec9772cebb65905ff6e45da8b21ad1aabfb87bb5610f534018da6bd20c10eaee8c189dd08a7ebfbf12b4b SHA512 2f4dd6e40dd8aff8c04563517fabeecd5ac0d986764649cc9af9bf4ce25757a67f75655eee207703b46fe57661a216ff00144358ffcbc70525447a063fa086c1
+DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
+DIST openssl-sys-0.9.103.crate 71552 BLAKE2B 4cc1ab93f5a444b4b985c84f6ae90f345da4639e4ff7c5502dc1ae59f842d46e3855057a7c05855f7cd739b5311f330dff361480ef2a0102fe46471506956148 SHA512 61b802f6baf918ec055be90ee47c69fe0184f6d9a1d29c748386192a11d4df115758961ec9b636126a6b42d7d8f7509248c59f7c035905558c4cc35b804a8eaf
+DIST os_str_bytes-6.6.1.crate 27643 BLAKE2B 8440a196a3d3d9c3a584562b6c2a1033f5606998e8851f8ccaeababe58022a42e65510e12ebdbcc7b24d0fcdcf111d68bf00d89b8665ad5cee49180db853789d SHA512 977c0fe9891c021914153d6a081c3789018fcd1830224f5c6768d0c75ac8ac4919638bb0a41949710fd5e699b162d9290a5379cc6251535a127e212f5b86932d
+DIST parking_lot-0.11.2.crate 39869 BLAKE2B 67c555e87b68f5763a7790563fd8d542e126bcb77f91267f3b76c51fd73060a2c32dcb91f9d0db7ea772e555d91576c8d7ff48053a9c35fbd3b749d2459a660c SHA512 526b176363dffa59501c18324bb723a3846ef5b0ff9bf1d890e40ad10e7023284f7c8012eda87520eaa94515ee828d9ef52692a9ed590a55e176383d6d472f9e
+DIST parking_lot_core-0.8.6.crate 32567 BLAKE2B 9943244f813879ab85eae0b9a6bd8f8f0070fe190bc43148a832b217ad546bc97e58707a3987072965a79ae8bc2fa839aebac272f2de00993b8ac1ca0c5fc5ef SHA512 906241f8e2d71784d572fb78978c9550b19af9c4e32fe3b2da751287806d0faeba61f5bd36f7aab026970b2bffaaa1f62ddc10c64dc348eae61bf7b51297ef80
+DIST paste-0.1.18.crate 12259 BLAKE2B ed72b93a27166b0989743c2528d4a41f4b87ffdd0c588557d11a5f37f85d5b8f03ced86150af6209f9fa8d0f6efee705769b26a2f4dc3363f35cc3ac12c0e6ad SHA512 a4d9c75f6f358d6c86eb0a66cdf22eedec180db37358ca2870a992e215d5b389b7991837d8f2769742ac1b093674cb4352ef9d6754a249253472fbcb3a81c001
+DIST paste-impl-0.1.18.crate 9451 BLAKE2B e465c4c7eef44d02eb1b61b5290090513607b452f4adc11487947b7047ddc44905d7a02df827feb2142f0e74583afdd9648c1c66086f10e1bd861b663200bf8c SHA512 c635efee46cb251b76ee9427432f81a0d944cdf1d0a95693d824c6085e7dea7e1e3f48c692ae27946f69e4e78d8080220058acf98e5c8a78482007349f8a7a4b
+DIST pin-project-lite-0.2.14.crate 28817 BLAKE2B 8e9875967059faff399fbffff82cf8835982c46ea8df942acf50b038e3f500e04d3d8cde39da5a71ebcc38b869553f8c49830e484d1109b353247a4cfdeda89e SHA512 f90a6b9f5ab8701718f72677a4f3597c1b9f32e5fa53198b47a94696227ea37815997599abaa6058b217c5b32a94602582c6b13fdb66e2d683bc98921de95293
+DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
+DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
+DIST proc-macro2-1.0.86.crate 48958 BLAKE2B 4b89e07f23af8328dbb34fe2b3f1b202f1e6a3885a6269740a23359b41bb4099ac2484565d3b2b0936261689ca525785ac620c766997234fd8d0f409e80e5ea3 SHA512 1cdb7e22a35ae231d880c9420784c9acf97bda2db258b3d34aae5061dc1858449defe19a49e12c6a4173906aa72a4115059ac2db0fc760205fd2ab8b5b414434
+DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
+DIST rustix-0.38.34.crate 365160 BLAKE2B 02513c2513ac45897b659f0d332a0dc32401d238b8fb64ad4a90ecc4d8952fb042c0bde4bf13d52630cef34e73e96dd32cf772a8601b4f6eb5e2961f0a394add SHA512 717cf26e2ec792b41819ff964888adb265a215d2b6c6e2b7a8ca1f7f793b713b853bba9cf03c2cc88b0f9a5eb1a0478faedbc05526f39bd81583e7b1f764756f
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST serde-1.0.204.crate 78253 BLAKE2B 6fdebf3cbcc0327b404caaae43c87ba2b6105374a5ee3eaa34d44866e782132cff535da4c069c007783b7b6468d55cb1ceb6a41da74b9eab03ace7cf4811e09e SHA512 2fefbeed0117bd791fd25dd5ad0c99ed4f60aac5919605b6f642050f748dd472bf9d4d121b78b0cfe8719db30a675559d097bcc7542cb57451d1779dfd8d294f
+DIST serde_derive-1.0.204.crate 55871 BLAKE2B 8f0cdb244a820712d557a3273e505c4461f4d7db89e8394040b4c66ede787b6b38b4c9923b38959ab4042c9076b8af72008c0dd15ac93a0ecdeb99da8fb526ae SHA512 bbb2b5e60e2af5bc7528b937ffaf0d3ffd433dbd9cb2592c1e07090620309057e4f11cbd6112fc1d2c5557e1bb3c0f4d59eb06ff06fa021ec683ab880997140e
+DIST serde_json-1.0.120.crate 147062 BLAKE2B 54f93ef2b0f1c9e7c5a8e8797fd298c96513913a20c3e08a21aea39a15ffb5ad0269d5daab10fceea7164ba432e355b89d89dea2985f86bd0e73ac3920f827c5 SHA512 dab44850326f9020d6f6dd3fc8147e22eed693527fe9cac2c6bc8f6a030f461061e8e54d2780382ce32cced63b5a016372a4f9938effdd1631d8f3dc96014e3e
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.72.crate 267069 BLAKE2B b0b979f78937a10a6db45f96d5d93c595427a4e158d658a2186419d89b219a4a405ade488d88d9ebdbd605ce4b706aba7088ab39a77294f3cf9847bf032d8f91 SHA512 c3d26bf9787555bc6fd8bd789855d252e80ad28a413593e13bad174adf86087ff195a6b4227bdeb6d1a1c87b0af8e965d6f2d04b8d45e7383b6de49990b92e89
+DIST tempfile-3.10.1.crate 33653 BLAKE2B 819b183e7840f70270883ee8b6a91fa09861c3112eaadc65007199885abe099bd593e1cdc4d9ab48c23490a6d484cad9bf0e80cf4e718c369cc2418b72eaf09c SHA512 bac7515b85b0d01ea914b527f0fadd3a4d8e77c9eabe786977d2625d8a3e91decaec502dd15bab4d49a43597fa7cf7660fff4be1b043112d13b542a72443bf39
+DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST textwrap-0.16.1.crate 56012 BLAKE2B 9b5a7c76eca64d089f4fab7095f2d35624527ca223e53b03cc807c6bfe913a99b55197b973a3102e3e5c4055bcd6ab580a0c9d67657180b61435bd6eb7631211 SHA512 3a8d2036c8e4b88866d68b8066a2991756f6bd4ac5c726e63fdffbc894fbdc03bf8b6e0ece4b96684c8e1facb6413190768d51a8539094efe47977c120d31f1b
+DIST tokio-1.38.1.crate 774260 BLAKE2B c30488cf0beb002732991f86ffbbd4edc4fb3661837cfecfc93b8cbf9972ff307ed4c41c893221207995953daa7123c8ae0c5dda43111df74f9192b82f2eed1c SHA512 72934b781cafb27488325de9226bcdfcd2327f4dac0d58a22b87e3ffa3604db431985efb8ec68f1287d1cf17a9c3273aea89558d19572ecd2895e0e64b97141c
+DIST tokio-macros-2.3.0.crate 11753 BLAKE2B 53429417a6fe3bc6c320ac5e321ffb2b19a64236a8a499fbb10b501d875e9d266fca2d82364a8aabdfecab46e4aef1b48d3b8ab3ac20086b54834c3e2f0f1b98 SHA512 cdb2f13141895035b76d38137dfd0e6829a5f8a617d0b63ec53ff51723c69e301d49f19c4b8b7e86c6e6a2cf58c1aeb35d071193029005fdfb9127f5a12841ae
+DIST toml-0.5.11.crate 54910 BLAKE2B 9ecd5103b33ab47d4be23c897c7095ca381cb79bedcaac4918cddc36fc7cf5d34ab664da52c2273d935f04486e9325241d6b66785d50aac78453c219aab49e1e SHA512 eddb82aeb8fdeb5436579292c6f7a64a90a2c7bb54070beb437bc7890b99795d0505faa8d6451a99e8bcf440f78db8a1b273a697c8ad44275cc4163a9ee49317
+DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST uuid-0.8.2.crate 37909 BLAKE2B e6ede5f8ae05572d4c55909eb3fe6946de6f10ad9bf71bd357739bc01201bf93f59ccbb3dabcbfd7b3e54b0c98c3b52d21f1bf1877b7283c6df623e9b2b3f33f SHA512 5a1f5ead9a920b9bbc120c02049c24b62ec215765e486d3a15c5015ef49fa506206efb737e6f6555cf6e2eddddfe55f0ca1d7dcfa9aa8bcf3e0ef570a54fa2d8
+DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.8.crate 12416 BLAKE2B 5b48c27dfbb5db5c332f7e248138327b35ceec0909788b940168e7f6fe1402800da5e7690b2b1654da6c510b5c720330a92da16dff53ef15821f37fef6f335e3 SHA512 e186111398f9f0f0686e791ad0d72c39205e5f246b6e020df413e477ee07f32e91d09405c61dc92752f061f54fd7533435545c1a151477b40e2d68acc94a57fd
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe
+DIST zeroize_derive-1.4.2.crate 11141 BLAKE2B a40add656369a3a40d5b5f3397a77a1e9f803d4b8ae5b7d51c9f2ebb332a289b3c1ea528655806a26998e081a1cc9f4b07828664542de8d8d2619faf079d25c5 SHA512 d6966b024ce5e265c93e7056659ccbb97bbf6baa30f759fd96dc4391a6487426637f61f0a2713b6160019d778cf7d8ff1f25bb33d6c4f4585b990baae418b226
diff --git a/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch b/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch
new file mode 100644
index 000000000000..fef1496e52af
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-3.0.2-fix-rust-in-configure.patch
@@ -0,0 +1,34 @@
+From 28d4871c5844b41d63a5cbc093b4453c98d5427e Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Thu, 7 Nov 2024 20:08:44 +1000
+Subject: [PATCH] Fix rust in configure
+
+RUSTC and CARGO are standard variables that are often used to indicate
+the desired implementation to build systems.
+
+Prefix existing usage of these variables with `HAS_` so that this
+does not just break
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,10 +95,10 @@ AS_IF([test "$enable_rust_offline" = yes],
+ [rust_vendor_sources=""])
+ AC_SUBST([rust_vendor_sources])
+ if test "$enable_rust_offline" = yes; then
+- AC_CHECK_PROG(CARGO, [cargo], [yes], [no])
+- AC_CHECK_PROG(RUSTC, [rustc], [yes], [no])
++ AC_CHECK_PROG(HAS_CARGO, [cargo], [yes], [no])
++ AC_CHECK_PROG(HAS_RUSTC, [rustc], [yes], [no])
+
+- AS_IF([test "$CARGO" != "yes" -o "$RUSTC" != "yes"], [
++ AS_IF([test "$HAS_CARGO" != "yes" -o "$HAS_RUSTC" != "yes"], [
+ AC_MSG_FAILURE("Rust based plugins cannot be built cargo=$CARGO rustc=$RUSTC")
+ ])
+ fi
+@@ -944,4 +944,3 @@ AC_CONFIG_FILES([Makefile rpm/389-ds-base.spec ])
+ AC_CONFIG_FILES([.cargo/config])
+
+ AC_OUTPUT
+-
+--
+2.47.0
+
diff --git a/net-nds/389-ds-base/files/389-ds-base-3.0.6-CVE-2025-2487.patch b/net-nds/389-ds-base/files/389-ds-base-3.0.6-CVE-2025-2487.patch
new file mode 100644
index 000000000000..dbec67a4a40e
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-3.0.6-CVE-2025-2487.patch
@@ -0,0 +1,213 @@
+From 40e752922e6160356399cd07169ec1f76dd7db99 Mon Sep 17 00:00:00 2001
+From: Pierre Rogier <progier@redhat.com>
+Date: Thu, 27 Feb 2025 16:36:48 +0100
+Subject: [PATCH] Security fix for CVE-2025-2487
+
+Description:
+A denial of service vulnerability was found in the 389 Directory Server.
+The 389 Directory Server may crash (Null Pointer Exception) after some
+failed rename subtree operations (i.e. MODDN) issued by a user having enough
+privileges to do so.
+
+References:
+- https://access.redhat.com/security/cve/CVE-2025-2487
+- https://bugzilla.redhat.com/show_bug.cgi?id=2353071
+---
+ ldap/servers/slapd/back-ldbm/findentry.c | 36 +++++++++++++++++-----
+ ldap/servers/slapd/back-ldbm/ldbm_add.c | 2 ++
+ ldap/servers/slapd/back-ldbm/ldbm_modify.c | 6 ++++
+ ldap/servers/slapd/back-ldbm/ldbm_modrdn.c | 13 ++++++--
+ 4 files changed, 48 insertions(+), 9 deletions(-)
+
+diff --git a/ldap/servers/slapd/back-ldbm/findentry.c b/ldap/servers/slapd/back-ldbm/findentry.c
+index 7bb56ef2c4..907b4367a1 100644
+--- a/ldap/servers/slapd/back-ldbm/findentry.c
++++ b/ldap/servers/slapd/back-ldbm/findentry.c
+@@ -99,6 +99,7 @@ find_entry_internal_dn(
+ int isroot = 0;
+ int op_type;
+ int reverted_entry = 0;
++ int return_err = LDAP_SUCCESS;
+
+ /* get the managedsait ldap message control */
+ slapi_pblock_get(pb, SLAPI_MANAGEDSAIT, &managedsait);
+@@ -121,6 +122,7 @@ find_entry_internal_dn(
+ if (rc) { /* if check_entry_for_referral returns non-zero, result is sent. */
+ *rc = FE_RC_SENT_RESULT;
+ }
++ slapi_set_ldap_result(pb, LDAP_REFERRAL, NULL, NULL, 0, NULL);
+ return (NULL);
+ }
+ }
+@@ -153,7 +155,12 @@ find_entry_internal_dn(
+ slapi_log_err(SLAPI_LOG_ERR, "find_entry_internal_dn", "Retry count exceeded (%s)\n", slapi_sdn_get_dn(sdn));
+ }
+ if (reverted_entry) {
++ CACHE_RETURN(&inst->inst_cache, &e);
++ slapi_set_ldap_result(pb, LDAP_BUSY, NULL, NULL, 0, NULL);
+ slapi_send_ldap_result(pb, LDAP_BUSY, NULL, "target entry busy because of a canceled operation", 0, NULL);
++ if (rc) {
++ *rc = FE_RC_SENT_RESULT; /* Result is sent */
++ }
+ return (NULL);
+ }
+ /*
+@@ -179,6 +186,7 @@ find_entry_internal_dn(
+ if (rc) { /* if check_entry_for_referral returns non-zero, result is sent. */
+ *rc = FE_RC_SENT_RESULT;
+ }
++ slapi_set_ldap_result(pb, LDAP_REFERRAL, NULL, NULL, 0, NULL);
+ return (NULL);
+ }
+ /* else fall through to no such object */
+@@ -189,7 +197,7 @@ find_entry_internal_dn(
+ if (me && !isroot) {
+ /* If not root, you may not want to reveal it. */
+ int acl_type = -1;
+- int return_err = LDAP_NO_SUCH_OBJECT;
++ return_err = LDAP_NO_SUCH_OBJECT;
+ err = LDAP_SUCCESS;
+ switch (op_type) {
+ case SLAPI_OPERATION_ADD:
+@@ -230,18 +238,22 @@ find_entry_internal_dn(
+ * do not return the "matched" DN.
+ * Plus, the bind case returns LDAP_INAPPROPRIATE_AUTH.
+ */
++ slapi_set_ldap_result(pb, return_err, NULL, NULL, 0, NULL);
+ slapi_send_ldap_result(pb, return_err, NULL, NULL, 0, NULL);
+ } else {
++ slapi_set_ldap_result(pb, LDAP_NO_SUCH_OBJECT, NULL, NULL, 0, NULL);
+ slapi_send_ldap_result(pb, LDAP_NO_SUCH_OBJECT,
+ (char *)slapi_sdn_get_dn(&ancestorsdn), NULL, 0, NULL);
+ }
+ } else {
++ slapi_set_ldap_result(pb, LDAP_NO_SUCH_OBJECT, NULL, NULL, 0, NULL);
+ slapi_send_ldap_result(pb, LDAP_NO_SUCH_OBJECT,
+ (char *)slapi_sdn_get_dn(&ancestorsdn), NULL, 0, NULL);
+ }
+ } else {
+- slapi_send_ldap_result(pb, (LDAP_INVALID_DN_SYNTAX == err) ? LDAP_INVALID_DN_SYNTAX : LDAP_OPERATIONS_ERROR,
+- (char *)slapi_sdn_get_dn(&ancestorsdn), NULL, 0, NULL);
++ return_err = (LDAP_INVALID_DN_SYNTAX == err) ? LDAP_INVALID_DN_SYNTAX : LDAP_OPERATIONS_ERROR;
++ slapi_set_ldap_result(pb, return_err, NULL, NULL, 0, NULL);
++ slapi_send_ldap_result(pb, return_err, (char *)slapi_sdn_get_dn(&ancestorsdn), NULL, 0, NULL);
+ }
+ if (rc) {
+ *rc = FE_RC_SENT_RESULT;
+@@ -265,13 +277,15 @@ find_entry_internal_uniqueid(
+ backend *be,
+ const char *uniqueid,
+ int lock,
+- back_txn *txn)
++ back_txn *txn,
++ int *rc)
+ {
+ ldbm_instance *inst = (ldbm_instance *)be->be_instance_info;
+ struct backentry *e;
+ int err;
+ size_t tries = 0;
+ int reverted_entry = 0;
++ int return_err = 0;
+
+ while ((tries < LDBM_CACHE_RETRY_COUNT) &&
+ (e = uniqueid2entry(be, uniqueid, txn, &err)) != NULL) {
+@@ -307,12 +321,20 @@ find_entry_internal_uniqueid(
+ }
+
+ if (reverted_entry) {
++ slapi_set_ldap_result(pb, LDAP_BUSY, NULL, NULL, 0, NULL);
+ slapi_send_ldap_result(pb, LDAP_BUSY, NULL, "target entry busy because of a canceled operation", 0, NULL);
++ if (rc) {
++ *rc = FE_RC_SENT_RESULT; /* Result is sent */
++ }
+ return (NULL);
+ } else {
+ /* entry not found */
+- slapi_send_ldap_result(pb, (0 == err || DBI_RC_NOTFOUND == err) ? LDAP_NO_SUCH_OBJECT : LDAP_OPERATIONS_ERROR, NULL /* matched */, NULL,
+- 0, NULL);
++ return_err = (0 == err || DBI_RC_NOTFOUND == err) ? LDAP_NO_SUCH_OBJECT : LDAP_OPERATIONS_ERROR;
++ slapi_set_ldap_result(pb, return_err, NULL, NULL, 0, NULL);
++ slapi_send_ldap_result(pb, return_err, NULL /* matched */, NULL, 0, NULL);
++ if (rc) {
++ *rc = FE_RC_SENT_RESULT; /* Result is sent */
++ }
+ }
+ slapi_log_err(SLAPI_LOG_TRACE,
+ "find_entry_internal_uniqueid", "<= not found; uniqueid = (%s)\n",
+@@ -334,7 +356,7 @@ find_entry_internal(
+ if (addr->uniqueid != NULL) {
+ slapi_log_err(SLAPI_LOG_TRACE, "find_entry_internal", "=> (uniqueid=%s) lock %d\n",
+ addr->uniqueid, lock);
+- return (find_entry_internal_uniqueid(pb, be, addr->uniqueid, lock, txn));
++ return (find_entry_internal_uniqueid(pb, be, addr->uniqueid, lock, txn, rc));
+ } else {
+ struct backentry *entry = NULL;
+
+diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c
+index 067e19f0c6..39f49f8230 100644
+--- a/ldap/servers/slapd/back-ldbm/ldbm_add.c
++++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c
+@@ -435,6 +435,8 @@ ldbm_back_add(Slapi_PBlock *pb)
+ slapi_log_err(SLAPI_LOG_BACKLDBM, "ldbm_back_add",
+ "find_entry2modify_only returned NULL parententry pdn: %s, uniqueid: %s\n",
+ slapi_sdn_get_dn(&parentsdn), addr.uniqueid ? addr.uniqueid : "none");
++ slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
++ goto error_return;
+ }
+ modify_init(&parent_modify_c, parententry);
+ }
+diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+index 29df2ce75d..24c62a9524 100644
+--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
++++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+@@ -177,6 +177,12 @@ modify_update_all(backend *be, Slapi_PBlock *pb, modify_context *mc, back_txn *t
+ slapi_pblock_get(pb, SLAPI_OPERATION, &operation);
+ is_ruv = operation_is_flag_set(operation, OP_FLAG_REPL_RUV);
+ }
++ if (NULL == mc->new_entry) {
++ /* test entry to avoid crashing in id2entry_add_ext */
++ slapi_log_err(SLAPI_LOG_BACKLDBM, "modify_update_all",
++ "No entry in modify_context ==> operation is aborted.\n");
++ return -1;
++ }
+ /*
+ * Update the ID to Entry index.
+ * Note that id2entry_add replaces the entry, so the Entry ID stays the same.
+diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
+index a024ca02ef..32542e110c 100644
+--- a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
++++ b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
+@@ -485,8 +485,8 @@ ldbm_back_modrdn(Slapi_PBlock *pb)
+ slapi_pblock_get(pb, SLAPI_TARGET_ADDRESS, &old_addr);
+ e = find_entry2modify(pb, be, old_addr, &txn, &result_sent);
+ if (e == NULL) {
+- ldap_result_code = -1;
+- goto error_return; /* error result sent by find_entry2modify() */
++ slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
++ goto error_return; /* error result set and sent by find_entry2modify() */
+ }
+ if (slapi_entry_flag_is_set(e->ep_entry, SLAPI_ENTRY_FLAG_TOMBSTONE) &&
+ !is_resurect_operation) {
+@@ -518,6 +518,11 @@ ldbm_back_modrdn(Slapi_PBlock *pb)
+ oldparent_addr.uniqueid = NULL;
+ }
+ parententry = find_entry2modify_only(pb, be, &oldparent_addr, &txn, &result_sent);
++ if (parententry == NULL) {
++ slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
++ goto error_return; /* error result set and sent by find_entry2modify() */
++ }
++
+ modify_init(&parent_modify_context, parententry);
+
+ /* Fetch and lock the new parent of the entry that is moving */
+@@ -528,6 +533,10 @@ ldbm_back_modrdn(Slapi_PBlock *pb)
+ }
+ newparententry = find_entry2modify_only(pb, be, newsuperior_addr, &txn, &result_sent);
+ slapi_ch_free_string(&newsuperior_addr->uniqueid);
++ if (newparententry == NULL) {
++ slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
++ goto error_return; /* error result set and sent by find_entry2modify() */
++ }
+ modify_init(&newparent_modify_context, newparententry);
+ }
+
diff --git a/net-nds/389-ds-base/files/389-ds-base-3.0.6-rust-1.89.patch b/net-nds/389-ds-base/files/389-ds-base-3.0.6-rust-1.89.patch
new file mode 100644
index 000000000000..7b026d4379e2
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-3.0.6-rust-1.89.patch
@@ -0,0 +1,32 @@
+From 1701419551c246e9dc21778b118220eeb2258125 Mon Sep 17 00:00:00 2001
+From: Viktor Ashirov <vashirov@redhat.com>
+Date: Mon, 11 Aug 2025 13:19:13 +0200
+Subject: [PATCH] Issue 6929 - Compilation failure with rust-1.89 on Fedora ELN
+
+Bug Description:
+The `ValueArrayRefIter` struct has a lifetime parameter `'a`.
+But in the `iter` method the return type doesn't specify the lifetime parameter.
+
+Fix Description:
+Make the lifetime explicit.
+
+Fixes: https://github.com/389ds/389-ds-base/issues/6929
+
+Reviewed by: @droideck (Thanks!)
+---
+ src/slapi_r_plugin/src/value.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/slapi_r_plugin/src/value.rs b/src/slapi_r_plugin/src/value.rs
+index 2fd35c808d..fec74ac254 100644
+--- a/src/slapi_r_plugin/src/value.rs
++++ b/src/slapi_r_plugin/src/value.rs
+@@ -61,7 +61,7 @@ impl ValueArrayRef {
+ ValueArrayRef { raw_slapi_val }
+ }
+
+- pub fn iter(&self) -> ValueArrayRefIter {
++ pub fn iter(&self) -> ValueArrayRefIter<'_> {
+ ValueArrayRefIter {
+ idx: 0,
+ va_ref: &self,
diff --git a/net-nds/389-ds-base/files/389-ds-base-db-gentoo.patch b/net-nds/389-ds-base/files/389-ds-base-db-gentoo.patch
new file mode 100644
index 000000000000..09bca3e87abf
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base-db-gentoo.patch
@@ -0,0 +1,17 @@
+diff --git a/m4/db.m4 b/m4/db.m4
+index c916c2b83..a9dd5ef2b 100644
+--- a/m4/db.m4
++++ b/m4/db.m4
+@@ -96,9 +96,9 @@ if test -z "$db_inc"; then
+ fi
+
+ dnl figure out which version of db we're using from the header file
+-db_ver_maj=`grep DB_VERSION_MAJOR $db_incdir/db.h | awk '{print $3}'`
+-db_ver_min=`grep DB_VERSION_MINOR $db_incdir/db.h | awk '{print $3}'`
+-db_ver_pat=`grep DB_VERSION_PATCH $db_incdir/db.h | awk '{print $3}'`
++db_ver_maj=`gcc -E -fdirectives-only $db_incdir/db.h | grep DB_VERSION_MAJOR | awk '{print $3}'`
++db_ver_min=`gcc -E -fdirectives-only $db_incdir/db.h | grep DB_VERSION_MINOR | awk '{print $3}'`
++db_ver_pat=`gcc -E -fdirectives-only $db_incdir/db.h | grep DB_VERSION_PATCH | awk '{print $3}'`
+
+ dnl Ensure that we have libdb at least 4.7, older versions aren't supported
+ if test ${db_ver_maj} -lt 4; then
diff --git a/net-nds/389-ds-base/files/389-ds-base.conf b/net-nds/389-ds-base/files/389-ds-base.conf
new file mode 100644
index 000000000000..67284921bf97
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-base.conf
@@ -0,0 +1,3 @@
+d /var/log/dirsrv 0700 dirsrv dirsrv -
+d /var/lib/dirsrv 0700 dirsrv dirsrv -
+d /run/lock/dirsrv 0770 dirsrv dirsrv -
diff --git a/net-nds/389-ds-base/files/389-ds-snmp.initd b/net-nds/389-ds-base/files/389-ds-snmp.initd
new file mode 100644
index 000000000000..ffc4e172ac1e
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds-snmp.initd
@@ -0,0 +1,43 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+PIDFILE="/run/ldap-agent.pid"
+CONFIGFILE="/etc/dirsrv/config/ldap-agent.conf"
+
+# instance support in progress
+
+depend() {
+ need net
+ use logger snmpd
+}
+
+start() {
+ ebegin "Starting 389 Directory Server ldap-snmp agent"
+ start-stop-daemon --start --quiet -b \
+ --pidfile ${PIDFILE} --exec /usr/sbin/ldap-agent -- ${CONFIGFILE}
+ eend ${?}
+ if [ "${?}" != "0" ]; then
+ local entries=/etc/dirsrv/slapd-*
+ if [ -n "${entries}" ]; then
+ ewarn "Please make sure that ${CONFIGFILE} contains at least"
+ ewarn "one of the following entries:"
+ for entry in ${entries}; do
+ entry=$(basename ${entry})
+ ewarn "server ${entry}"
+ done
+ fi
+ fi
+}
+
+stop() {
+ ebegin "Stopping 389 Directory Server ldap-snmp agent"
+ start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
+ eend ${?}
+}
+
+restart() {
+ svc_stop
+ sleep 2
+ svc_start
+}
diff --git a/net-nds/389-ds-base/files/389-ds.initd-r1 b/net-nds/389-ds-base/files/389-ds.initd-r1
new file mode 100644
index 000000000000..39744d55bdc9
--- /dev/null
+++ b/net-nds/389-ds-base/files/389-ds.initd-r1
@@ -0,0 +1,89 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+DIRSRV_EXEC="/usr/sbin/ns-slapd"
+PID_DIRECTORY="/run/dirsrv"
+LOCK_DIRECTORY="/var/lock/dirsrv"
+DIRSRV_CONF_DIR="/etc/dirsrv"
+DS_INSTANCES=${DIRSRV_CONF_DIR}/slapd-*
+
+depend() {
+ need net logger
+ use dns
+ provide dirsrv ldap
+}
+
+checkconfig() {
+ if [ -z "${DS_INSTANCES}" ]; then
+ eerror "389 Directory Server has not been configured."
+ eend 1
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ for instance in ${DS_INSTANCES}; do
+ instance=$(basename ${instance})
+ # skip .removed instances, bug #338133
+ if [ "${instance%%.removed}" != "${instance}" ]; then
+ continue
+ fi
+ # Create the required directories in case they got nuked
+ mkdir -p ${PID_DIRECTORY}
+ mkdir -p ${LOCK_DIRECTORY}/${instance}
+ # This will probably break one day, we should be pulling out the suitespotuser from dse.ldif
+ chown dirsrv: ${PID_DIRECTORY}
+ chown dirsrv: ${LOCK_DIRECTORY}/${instance}
+ ebegin "Starting 389 Directory Server: instance ${instance}"
+ start-stop-daemon --start --quiet -m \
+ --pidfile ${PID_DIRECTORY}/${instance}.startpid \
+ --exec ${DIRSRV_EXEC} -- -D ${DIRSRV_CONF_DIR}/${instance} \
+ -i ${PID_DIRECTORY}/${instance}.pid \
+ -w ${PID_DIRECTORY}/${instance}.startpid
+ sts=${?}
+ eend ${sts}
+ if [ "${sts}" != "0" ]; then
+ return 1
+ fi
+ done
+}
+
+
+
+stop() {
+ checkconfig || return 1
+
+ for instance in ${DS_INSTANCES}; do
+ instance=$(basename ${instance})
+ if [ "${instance%%.removed}" != "${instance}" ]; then
+ continue
+ fi
+ ebegin "Stopping 389 Directory Server: instance ${instance}"
+ start-stop-daemon --stop --quiet \
+ --pidfile ${PID_DIRECTORY}/${instance}.pid \
+ --exec ${DIRSRV_EXEC}
+ eend ${?}
+ done
+}
+
+status() {
+ for instance in ${DS_INSTANCES}; do
+ instance=$(basename ${instance})
+ if [ "${instance%%.removed}" != "${instance}" ]; then
+ continue
+ fi
+ if [ -e ${PID_DIRECTORY}/${instance}.pid ]; then
+ pid=$(cat ${PID_DIRECTORY}/${instance}.pid)
+ if [ $(echo "$pid" | grep -c $pid) -ge 1 ]; then
+ einfo "389 Directory Server: instance ${instance} (pid $pid) running."
+ else
+ ewarn "389 Directory Server: instance ${instance} (pid $pid) NOT running."
+ fi
+ else
+ eerror "389 Directory Server: instance ${instance} is NOT running."
+ fi
+ done
+}
diff --git a/net-nds/389-ds-base/files/README.gentoo b/net-nds/389-ds-base/files/README.gentoo
new file mode 100644
index 000000000000..b12a35177bd4
--- /dev/null
+++ b/net-nds/389-ds-base/files/README.gentoo
@@ -0,0 +1,10 @@
+If you are planning to use 389-ds-snmp (ldap-agent),
+make sure to properly configure: /etc/dirsrv/config/ldap-agent.conf
+adding proper 'server' entries, and adding the lines below to
+ => /etc/snmp/snmpd.conf
+master agent
+agentXSocket /var/agentx/master"
+
+To start 389 Directory Server (LDAP service) at boot:"
+
+ rc-update add 389-ds default"
diff --git a/net-nds/389-ds-base/metadata.xml b/net-nds/389-ds-base/metadata.xml
new file mode 100644
index 000000000000..bb4f5585de68
--- /dev/null
+++ b/net-nds/389-ds-base/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>Dessa@gmake.de</email>
+ <name>Robert Förster</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>chris@christopherpritchard.co.uk</email>
+ <name>Chris Pritchard</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="accountpolicy">Enable account policy plugin - automatically lock
+ an account after a certain amount of time has elapsed</flag>
+ <flag name="bitwise">Enable bitwise plugin - supported data in raw/bitwise
+ format</flag>
+ <flag name="dna">Enable dna (distributed numeric assignment ) plugin - to
+ automatically assign unique uid numbers to new user entries as they
+ are created.</flag>
+ <flag name="pam-passthru">Enable pam-passthru plugin - for simple and
+ fast system services used in ldap</flag>
+ <flag name="autobind">Enable auto bind over unix domain socket (LDAPI)
+ support</flag>
+ <flag name="auto-dn-suffix">Enable auto bind with auto dn suffix over unix
+ domain socket (LDAPI) support</flag>
+ <flag name="ldapi">Enable LDAP over unix domain socket (LDAPI) support</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/389ds/389-ds-base/issues</bugs-to>
+ <remote-id type="cpe">cpe:/a:fedoraproject:389_directory_server</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/gssproxy/Manifest b/net-nds/gssproxy/Manifest
new file mode 100644
index 000000000000..2e3b1aa132a5
--- /dev/null
+++ b/net-nds/gssproxy/Manifest
@@ -0,0 +1 @@
+DIST gssproxy-0.9.2.tar.gz 586240 BLAKE2B 4480070740ce77a9ed8714bbe8cb24684292317cc61e6c13e06b368bef6d722fdefb3c5230d15773050960851382435a15a0106e5d920c74b13afbbab9ff9194 SHA512 6de484c9c1715e8b845106e1b16e1c29805e4104db296eb44ea15e6b6973fd1df0b043d2cdc2798f04c7a0ce66279e356a285684bc3573ef847532ab2b87aca3
diff --git a/net-nds/gssproxy/files/gssproxy b/net-nds/gssproxy/files/gssproxy
new file mode 100644
index 000000000000..83c594402258
--- /dev/null
+++ b/net-nds/gssproxy/files/gssproxy
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="gssproxy"
+command_args="-D"
+pidfile="/var/run/gssproxy.pid"
+
+depend() {
+ use logger
+}
+
+start_pre() {
+ checkpath -d -m 0755 /var/lib/gssproxy
+ checkpath -d -m 0700 /var/lib/gssproxy/clients
+ checkpath -d -m 0700 /var/lib/gssproxy/rcache
+}
diff --git a/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch b/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch
new file mode 100644
index 000000000000..12d81aff1638
--- /dev/null
+++ b/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch
@@ -0,0 +1,106 @@
+https://github.com/gssapi/gssproxy/commit/91c87d24bf844875701957f01552b674cced2ca8
+
+From 91c87d24bf844875701957f01552b674cced2ca8 Mon Sep 17 00:00:00 2001
+From: Simo Sorce <simo@redhat.com>
+Date: Mon, 10 Feb 2025 14:55:37 -0500
+Subject: [PATCH] Change declaration of function map
+
+Newer compilers complain if funciton is declared w/o arguments,
+so we redeclare the xdrptoc_t as xdrfn and give it proper arguments
+
+Signed-off-by: Simo Sorce <simo@redhat.com>
+---
+ rpcgen/gp_xdr.h | 4 ++++
+ src/client/gpm_common.c | 8 ++++++--
+ src/gp_rpc_process.c | 8 ++++++--
+ 3 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/rpcgen/gp_xdr.h b/rpcgen/gp_xdr.h
+index bbd747d0a..e7a476f3d 100644
+--- a/rpcgen/gp_xdr.h
++++ b/rpcgen/gp_xdr.h
+@@ -5,6 +5,10 @@
+
+ #include "gssrpc/rpc.h"
+
++/* Equivalent to xdrptoc_t but with proper arguments so that modern
++ * compilers do not complain */
++typedef int xdrfn(XDR *, void *);
++
+ #define xdr_u_quad_t gp_xdr_uint64_t
+
+ bool_t gp_xdr_uint64_t(XDR *xdrs, uint64_t *objp);
+diff --git a/src/client/gpm_common.c b/src/client/gpm_common.c
+index 22a74ab48..2c0925d05 100644
+--- a/src/client/gpm_common.c
++++ b/src/client/gpm_common.c
+@@ -676,6 +676,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ gp_rpc_msg msg;
+ XDR xdr_call_ctx = {0};
+ XDR xdr_reply_ctx = {0};
++ xdrfn *arg_fn;
++ xdrfn *res_fn;
+ char *send_buffer = NULL;
+ char *recv_buffer = NULL;
+ uint32_t send_length;
+@@ -726,7 +728,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ }
+
+ /* encode data */
+- xdrok = gpm_xdr_set[proc].arg_fn(&xdr_call_ctx, (char *)arg);
++ arg_fn = gpm_xdr_set[proc].arg_fn;
++ xdrok = arg_fn(&xdr_call_ctx, arg);
+ if (!xdrok) {
+ ret = EINVAL;
+ goto done;
+@@ -765,7 +768,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ }
+
+ /* decode answer */
+- xdrok = gpm_xdr_set[proc].res_fn(&xdr_reply_ctx, (char *)res);
++ res_fn = gpm_xdr_set[proc].res_fn;
++ xdrok = res_fn(&xdr_reply_ctx, res);
+ if (!xdrok) {
+ ret = EINVAL;
+ }
+diff --git a/src/gp_rpc_process.c b/src/gp_rpc_process.c
+index eaffc55eb..1ac7c167f 100644
+--- a/src/gp_rpc_process.c
++++ b/src/gp_rpc_process.c
+@@ -196,6 +196,7 @@ static int gp_rpc_decode_call(XDR *xdr_call_ctx,
+ gp_rpc_accept_status *acc,
+ gp_rpc_reject_status *rej)
+ {
++ xdrfn *arg_fn;
+ bool xdrok;
+ int ret;
+
+@@ -204,7 +205,8 @@ static int gp_rpc_decode_call(XDR *xdr_call_ctx,
+ return ret;
+ }
+
+- xdrok = gp_xdr_set[*proc].arg_fn(xdr_call_ctx, (char *)arg);
++ arg_fn = gp_xdr_set[*proc].arg_fn;
++ xdrok = arg_fn(xdr_call_ctx, arg);
+ if (!xdrok) {
+ *acc = GP_RPC_GARBAGE_ARGS;
+ return EINVAL;
+@@ -283,6 +285,7 @@ static int gp_rpc_encode_reply(XDR *xdr_reply_ctx,
+ gp_rpc_accept_status acc,
+ gp_rpc_reject_status rej)
+ {
++ xdrfn *res_fn;
+ bool xdrok;
+ int ret;
+
+@@ -291,7 +294,8 @@ static int gp_rpc_encode_reply(XDR *xdr_reply_ctx,
+ return ret;
+ }
+
+- xdrok = gp_xdr_set[proc].res_fn(xdr_reply_ctx, (char *)res);
++ res_fn = gp_xdr_set[proc].res_fn;
++ xdrok = res_fn(xdr_reply_ctx, res);
+
+ if (!xdrok) {
+ return gp_rpc_encode_reply_header(xdr_reply_ctx, xid, EINVAL,
+
diff --git a/net-nds/gssproxy/files/gssproxy-0.9.2-docbook-upgrade.patch b/net-nds/gssproxy/files/gssproxy-0.9.2-docbook-upgrade.patch
new file mode 100644
index 000000000000..d8aba58b2823
--- /dev/null
+++ b/net-nds/gssproxy/files/gssproxy-0.9.2-docbook-upgrade.patch
@@ -0,0 +1,46 @@
+https://github.com/gssapi/gssproxy/commit/d4004e67cb399054c07b34517e8f0eaee83c55de
+
+From d4004e67cb399054c07b34517e8f0eaee83c55de Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomasz=20K=C5=82oczko?= <kloczek@github.com>
+Date: Fri, 1 Sep 2023 18:19:23 +0000
+Subject: [PATCH] upgrade xml DTD to 4.5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Trival change which upgardes xml DTD version to latest stable 4.5.
+
+Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
+--- a/man/gssproxy-mech.8.xml.in
++++ b/man/gssproxy-mech.8.xml.in
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+-<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+-"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
++<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
++"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+ <reference>
+ <title>GssProxy GSSAPI mechanism manual page</title>
+ <refentry>
+--- a/man/gssproxy.8.xml
++++ b/man/gssproxy.8.xml
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+-<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+-"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
++<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
++"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+ <reference>
+ <title>GssProxy Manual pages</title>
+ <refentry>
+--- a/man/gssproxy.conf.5.xml
++++ b/man/gssproxy.conf.5.xml
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+-<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+-"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
++<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.5//EN"
++"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+ <reference>
+ <title>GssProxy Manual pages</title>
+ <refentry>
diff --git a/net-nds/gssproxy/files/gssproxy-0.9.2-no-git-log.patch b/net-nds/gssproxy/files/gssproxy-0.9.2-no-git-log.patch
new file mode 100644
index 000000000000..2d12d7d738f9
--- /dev/null
+++ b/net-nds/gssproxy/files/gssproxy-0.9.2-no-git-log.patch
@@ -0,0 +1,13 @@
+Don't try to call 'git log' during configure. This leads to especially confusing
+output if the WORKDIR or S is a git repo for development.
+--- a/configure.ac
++++ b/configure.ac
+@@ -29,7 +29,7 @@ AC_SUBST([PRERELEASE_VERSION],
+ AC_DEFINE([PRERELEASE_VERSION], "PRERELEASE_VERSION_NUMBER",
+ [Prerelease version number of package])
+
+-AM_CONDITIONAL([GIT_CHECKOUT], [git log -1 &>/dev/null])
++AM_CONDITIONAL([GIT_CHECKOUT], [false &>/dev/null])
+
+ m4_pattern_allow([AM_SILENT_RULES])
+ AM_SILENT_RULES
diff --git a/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild b/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild
new file mode 100644
index 000000000000..7254b1e139be
--- /dev/null
+++ b/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Daemon to proxy GSSAPI context establishment and channel handling"
+HOMEPAGE="https://github.com/gssapi/gssproxy"
+SRC_URI="https://github.com/gssapi/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="BSD-1"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~mips ~ppc ppc64 ~s390 ~sparc x86"
+IUSE="debug selinux systemd"
+
+DEPEND="
+ >=dev-libs/libverto-0.2.2
+ >=dev-libs/ding-libs-0.6.1
+ virtual/krb5
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-gssproxy )
+"
+# We need xml stuff to build the man pages, and people really want/need
+# the man pages for this package :), bug #585200
+BDEPEND="
+ app-text/docbook-xml-dtd:4.5
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+# Many requirements to run tests, including running slapd as root, hence
+# unfeasible.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.2-no-git-log.patch
+ "${FILESDIR}"/${P}-docbook-upgrade.patch
+ "${FILESDIR}"/${P}-c23.patch
+)
+
+# pkg_setup() {
+# # Here instead of flag-logic in DEPEND, since virtual/krb5 does not
+# # allow to specify the openldap use flag, which heimdal doesn't
+# # support.
+# # Using mit-krb5 explicitly because heimdal doesn't install kerberos
+# # schemata required for the tests of gss-proxy.
+# if use test && ! has_version "app-crypt/mit-krb5[openldap]"; then
+# eerror "Tests of this package require the kerberos schemata installed from app-crypt/mit-krb5[openldap]."
+# die "Tests enabled but no app-crypt/mit-krb5[openldap] being installed."
+# fi
+# }
+
+# Was required in 0.7.0 to fix the schema- and slapd-path. Reason for
+# comment: see RESTRICT comment
+# src_prepare() {
+# default
+# # The tests look for kerberos schemata in the documentation
+# # directory of krb5, however these are installed in /etc/openldap
+# # and only if the openldap useflag is supplied
+# sed -i \
+# -e 's#/usr/share/doc/krb5-server-ldap*#/etc/openldap/schema#' \
+# -e "s#\(subprocess.Popen..\"\)slapd#\1/usr/$(get_libdir)/openldap/slapd#" \
+# "${S}/tests/testlib.py" || die
+# }
+
+src_prepare() {
+ default
+
+ # Just for gssproxy-0.9.2-no-git-log.patch
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # The build assumes localstatedir is /var and takes care of
+ # using all the right subdirs itself.
+ --localstatedir="${EPREFIX}"/var
+
+ --with-os=gentoo
+ --with-initscript=$(usex systemd systemd none)
+ $(use_with selinux)
+ $(use_with debug gssidebug)
+
+ # We already set FORTIFY_SOURCE by default along with the
+ # other bits. But setting it on each compile line interferes
+ # with efforts to try e.g. FORTIFY_SOURCE=3. So, disable it,
+ # but there's no actual difference to the safety of the binaries
+ # because of Gentoo's configuration/patches to the toolchain.
+ --without-hardening
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # This is a plugin module, so no need for la file.
+ find "${ED}"/usr -name proxymech.la -delete || die
+
+ doinitd "${FILESDIR}"/gssproxy
+ insinto /etc/gssproxy
+ doins examples/*.conf
+
+ keepdir /var/lib/gssproxy
+ keepdir /var/lib/gssproxy/clients
+ keepdir /var/lib/gssproxy/rcache
+ fperms 0700 /var/lib/gssproxy/clients
+ fperms 0700 /var/lib/gssproxy/rcache
+
+ # The build installs a bunch of empty dirs, so prune them.
+ find "${ED}" -depth -type d -empty -delete || die
+}
diff --git a/net-nds/gssproxy/gssproxy-0.9.2.ebuild b/net-nds/gssproxy/gssproxy-0.9.2.ebuild
new file mode 100644
index 000000000000..a479d2c5b3a7
--- /dev/null
+++ b/net-nds/gssproxy/gssproxy-0.9.2.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Daemon to proxy GSSAPI context establishment and channel handling"
+HOMEPAGE="https://github.com/gssapi/gssproxy"
+SRC_URI="https://github.com/gssapi/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="BSD-1"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~mips ~ppc ppc64 ~s390 ~sparc x86"
+IUSE="debug selinux systemd"
+
+DEPEND="
+ >=dev-libs/libverto-0.2.2
+ >=dev-libs/ding-libs-0.6.1
+ virtual/krb5
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-gssproxy )
+"
+# We need xml stuff to build the man pages, and people really want/need
+# the man pages for this package :), bug #585200
+BDEPEND="
+ app-text/docbook-xml-dtd:4.5
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+# Many requirements to run tests, including running slapd as root, hence
+# unfeasible.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.2-no-git-log.patch
+ "${FILESDIR}"/${P}-docbook-upgrade.patch
+)
+
+# pkg_setup() {
+# # Here instead of flag-logic in DEPEND, since virtual/krb5 does not
+# # allow to specify the openldap use flag, which heimdal doesn't
+# # support.
+# # Using mit-krb5 explicitly because heimdal doesn't install kerberos
+# # schemata required for the tests of gss-proxy.
+# if use test && ! has_version "app-crypt/mit-krb5[openldap]"; then
+# eerror "Tests of this package require the kerberos schemata installed from app-crypt/mit-krb5[openldap]."
+# die "Tests enabled but no app-crypt/mit-krb5[openldap] being installed."
+# fi
+# }
+
+# Was required in 0.7.0 to fix the schema- and slapd-path. Reason for
+# comment: see RESTRICT comment
+# src_prepare() {
+# default
+# # The tests look for kerberos schemata in the documentation
+# # directory of krb5, however these are installed in /etc/openldap
+# # and only if the openldap useflag is supplied
+# sed -i \
+# -e 's#/usr/share/doc/krb5-server-ldap*#/etc/openldap/schema#' \
+# -e "s#\(subprocess.Popen..\"\)slapd#\1/usr/$(get_libdir)/openldap/slapd#" \
+# "${S}/tests/testlib.py" || die
+# }
+
+src_prepare() {
+ default
+
+ # Just for gssproxy-0.9.2-no-git-log.patch
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # The build assumes localstatedir is /var and takes care of
+ # using all the right subdirs itself.
+ --localstatedir="${EPREFIX}"/var
+
+ --with-os=gentoo
+ --with-initscript=$(usex systemd systemd none)
+ $(use_with selinux)
+ $(use_with debug gssidebug)
+
+ # We already set FORTIFY_SOURCE by default along with the
+ # other bits. But setting it on each compile line interferes
+ # with efforts to try e.g. FORTIFY_SOURCE=3. So, disable it,
+ # but there's no actual difference to the safety of the binaries
+ # because of Gentoo's configuration/patches to the toolchain.
+ --without-hardening
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # This is a plugin module, so no need for la file.
+ find "${ED}"/usr -name proxymech.la -delete || die
+
+ doinitd "${FILESDIR}"/gssproxy
+ insinto /etc/gssproxy
+ doins examples/*.conf
+
+ keepdir /var/lib/gssproxy
+ keepdir /var/lib/gssproxy/clients
+ keepdir /var/lib/gssproxy/rcache
+ fperms 0700 /var/lib/gssproxy/clients
+ fperms 0700 /var/lib/gssproxy/rcache
+
+ # The build installs a bunch of empty dirs, so prune them.
+ find "${ED}" -depth -type d -empty -delete || die
+}
diff --git a/net-nds/gssproxy/metadata.xml b/net-nds/gssproxy/metadata.xml
new file mode 100644
index 000000000000..e7e7de0bbc48
--- /dev/null
+++ b/net-nds/gssproxy/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gssproxy_project:gssproxy</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/jxplorer/Manifest b/net-nds/jxplorer/Manifest
new file mode 100644
index 000000000000..3af08d584fc1
--- /dev/null
+++ b/net-nds/jxplorer/Manifest
@@ -0,0 +1 @@
+DIST jxplorer-3.3.1.2-project%20.tar.bz2 4086314 BLAKE2B 1232277a71eab218df3aec6a0bde54cb00f02fe31e7ef98d7f791df886f9b8522e5ca95705647f3dcfb16621de68a8e43605a2a6453cc3fff7bd5efcbaf07793 SHA512 56c1043ab9ec4905878c94ad255d8391879db8007a96ad26329eec803a513ab6672fc696b893b7468a5384de8a9182db4bf824d572fbc0c0caf62b22f21269ba
diff --git a/net-nds/jxplorer/files/jxplorer-3-pre b/net-nds/jxplorer/files/jxplorer-3-pre
new file mode 100644
index 000000000000..5fe640c7328a
--- /dev/null
+++ b/net-nds/jxplorer/files/jxplorer-3-pre
@@ -0,0 +1,26 @@
+jxplorer_home=@GENTOO_PORTAGE_EPREFIX@/usr/share/jxplorer/
+
+home="${HOME}/.jxplorer"
+
+if [ ! -d "${home}" ]; then
+ mkdir -v "${home}"
+fi
+
+try_create() {
+ [[ ! -f "${1}" ]] && touch "${1}"
+}
+
+if [ -d ${HOME}/.jxplorer ]; then
+ for file in search_filters.txt bookmarks.txt quicksearch.txt ; do
+ try_create "${home}/${file}"
+ done
+ for file in security.default csvconfig.txt.default ; do
+ [[ ! -e "${home}/${file}" ]] && \
+ ln -vs "${jxplorer_home}/${file}" "${home}/${subdir}"
+ done
+ for subdir in htmldocs icons images templates plugins language ; do
+ [[ ! -e "${home}/${subdir}" ]] && \
+ ln -vs "${jxplorer_home}/${subdir}" "${home}/${subdir}"
+ done
+fi
+
diff --git a/net-nds/jxplorer/jxplorer-3.3.1.2-r2.ebuild b/net-nds/jxplorer/jxplorer-3.3.1.2-r2.ebuild
new file mode 100644
index 000000000000..e07cd7684a4b
--- /dev/null
+++ b/net-nds/jxplorer/jxplorer-3.3.1.2-r2.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit"
+
+inherit desktop java-pkg-2 java-pkg-simple prefix
+
+DESCRIPTION="Fully functional LDAP browser written in Java"
+HOMEPAGE="https://jxplorer.org/"
+SRC_URI="https://downloads.sourceforge.net/project/jxplorer/jxplorer/version%20${PV}/${P}-project%20.tar.bz2"
+S="${WORKDIR}/${PN}"
+
+LICENSE="CAOSL"
+SLOT="0"
+KEYWORDS="amd64"
+
+BDEPEND="app-arch/unzip"
+CP_DEPEND=">=dev-java/javahelp-2.0.02_p46:0"
+# needs java stuff that is missing in java > 1.8 os has to be restricted
+DEPEND="${CP_DEPEND}
+ virtual/jdk:1.8
+ test? ( dev-java/junit:0 )
+"
+RDEPEND="${CP_DEPEND}
+ virtual/jre:1.8
+"
+
+JAVA_MAIN_CLASS="com.ca.directory.jxplorer.JXplorer"
+JAVA_SRC_DIR="main/src"
+JAVA_TEST_GENTOO_CLASSPATH="junit"
+JAVA_TEST_SRC_DIRS="test/src"
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ mkdir main test || die
+ find src -type f \
+ ! -path '**/*Test.java' \
+ ! -path '**/*Test*.java' \
+ | xargs cp --parent -t main || die
+
+ find src -type f \
+ \( -path '**/*Test.java' \
+ -o -path '**/*Test*.java' \) \
+ | xargs cp --parent -t test || die
+
+ rm -r src || die
+}
+
+src_test() {
+# VIRTUALX_COMMAND="java-pkg-2_src_test" virtx emake -j1
+ java-pkg-simple_src_test
+}
+
+src_install() {
+ java-pkg-simple_src_install
+
+ insinto /usr/share/${PN}
+ doins -r icons images htmldocs language templates plugins security.default csvconfig.txt.default
+
+ dodoc README*.TXT
+
+ # By default the config dir is ${HOME}/jxplorer
+ java-pkg_dolauncher ${PN} \
+ --main com.ca.directory.jxplorer.JXplorer \
+ --pwd '"${HOME}/.jxplorer"' \
+ -pre "${FILESDIR}/${PN}-3-pre"
+
+ eprefixify "${ED}/usr/bin/${PN}"
+
+ make_desktop_entry ${PN} JXplorer /usr/share/jxplorer/images/logo_32_trans.gif System
+}
diff --git a/net-nds/jxplorer/metadata.xml b/net-nds/jxplorer/metadata.xml
new file mode 100644
index 000000000000..3f89ec24b9fb
--- /dev/null
+++ b/net-nds/jxplorer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>java@gentoo.org</email>
+ <name>Java</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/ldap-proxy/Manifest b/net-nds/ldap-proxy/Manifest
new file mode 100644
index 000000000000..1d3bbcef3a60
--- /dev/null
+++ b/net-nds/ldap-proxy/Manifest
@@ -0,0 +1,189 @@
+DIST allocator-api2-0.2.21.crate 63622 BLAKE2B 983897fc977118f220dc4af7e801ac08eba77bfde2a25d756bad3e77f849418e74e7c67eaed68e2d719ca7fc6e1e9ce151dd7dbe8707dc43d4a6400294c8fc8e SHA512 1bb5711ed6041b0d7eae2ec784b8aa9d215db0f49cf79c692946eeb0db545d358cbcaa8156ae34e51d05287c08574f1da251ee574f2392949e4ed26d04770d03
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-1.0.0.crate 28916 BLAKE2B a9198a66bd3821349f83d7837ba7546a12a74a6f57e179e480bd6bf4a75848a45dac9a19a27c5e2cf01520c7e917d380b21ec16e4485f69bebe112383ba273f2 SHA512 36bf11821e8bc23607a54842b47950782806ebc7a56233e3c458345d79986745f6ba878e39964ed41404eb5be58f78d0bbcdceeb86d523ba40eedd15f7e1f29d
+DIST anstyle-1.0.14.crate 17787 BLAKE2B ebb3b3986c06628ebfe71665216de68f123840093013fa16c030c25e22ff0731cdcd7161737635c532d45ad0307a1b7f951859a40dbe1c812b3e905550b33b90 SHA512 2e7bbaf0794d209f0f19fb8709214c1b1109c27e14d91a8adc232a9bdfe76e653b2b86e341d71f63903e034c81f6ed63ffe7f123f6d631c0f8d41b56d70037b9
+DIST anstyle-parse-1.0.0.crate 22042 BLAKE2B 418cb53754b325354a76d75cd73652d2e41408911bcfbadf91f668e7d6942d92ae3c379194f1d38bc6aa26a9ad98c92801213ffddf544fd2ce29a1180179a8c4 SHA512 4394616b0aa7a591eb9b9bb758abd2f067a3fe673b060c02857f6d2210a2276c476f32512aa59aee6c5383e3261f2654058ff619d957bee93d62540e10d81085
+DIST anstyle-query-1.1.5.crate 10264 BLAKE2B e1c1bad89ad4c09e48f9d7c417713953f7f468f10f7f61e351137be801b5986ab3d21406411b0b23c42af4a2b5881b85aa68dfc66d23cafca7dfcb88180104b7 SHA512 3b7b888df0b678bd4560981dd94a51a6af9a535cc1a869bb4577e832492bb6de718a3ac80ecf61f8857b3d0ed7b95e444e85bd00ef65a46c6a244d0b0eadd95d
+DIST anstyle-wincon-3.0.11.crate 12638 BLAKE2B 01f1ce85205ed3e573daca145ae420e9f7d78867fc036133be74bbcc9b83231ecbc681b57eb98bec622bcbaaf4bb293d05d3021a29b49a0a71b8ab89b0ae9dfd SHA512 09c3215dc6cef75d6282078e68c5dbd51580b6c8db79a77932d2e74a51d29cb0ef23c31b8a73a71896a45eb5dc5f94aee209bd8f6e5df4c675dabe3cd304a96b
+DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
+DIST aws-lc-rs-1.16.2.crate 224799 BLAKE2B 99c627728937b919496ab676190c121c4463e5d6e6c13fcf4255541890d0aa702753ffe253e64906e3ef627c3130906bb070f29df842a81866bde71f57895c2f SHA512 9276c8db3730ebe4d173dbaff2a4ffad4b4df30510aeb2393e37327e906f53d1235f8fd8da4f1ec90402fa072ecd5a7209ab20bfcda60fa351bedfaafb1ba299
+DIST aws-lc-sys-0.39.1.crate 9461553 BLAKE2B 46ec6929601446ad5c2e95d17f4bde79c7a97977d04814cf13249322c081468a1a7e0cf8703caa0336a345c94313dbde5201a24924b891c8190512f2eb77d870 SHA512 8cacaffd54de31995676408f7d13f582ecb91485b8487a093874d153d7563679409e7078b4c4cedda128bda9fd6d3353b143d8abff5f5e3e445b7ce0394ae32a
+DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+DIST bumpalo-3.20.2.crate 97696 BLAKE2B 0c744cb37279ca82e4c2a60be64c63e61c8290c9ff904c4a2ffd0e23f9ba96b1d63a30cce83fc757cbd40364bbe5e410da024c04cd9481f33831cfacc2133156 SHA512 4c725a4eb436fc9b3302430f5bec699563bed4b6a86c187defba9a83b749089eb6b00a6855afa4d42ac5eb324088eada3c0713f3e8c2d1c85bea4dcca83a4a60
+DIST bytes-1.11.1.crate 78584 BLAKE2B 4985426ff626d880a0da3d592ba48d697c88a83f48177e2b7380cb55e736a43f3cdf662d99cf0908b599aa8eccfebff2910405559e490b71adcf3f078673cd72 SHA512 7933d18c1a2c1496add2c7193e92c3aa17029c530b7031604ccb7c77c68903f53cf7d41396448b32bdd4f540fef4b37564972dac7b225e6e2ca99cd61179a6ab
+DIST cc-1.2.59.crate 96779 BLAKE2B 9998334144446989e686ae2a54472bf99054a15ad767fc06bd9e98038a44884ed2d8c09961ef7e30f30b94f952d9291f49465f6a8fc4c9b392e8c6aa088c970b SHA512 075cd6528067f585cca2aa9e6695c22fc5e5262ce2c91c2c0764ecaf20559f37aa0358f8cf304c1d2ed1fe2b0a7dcf121568d5f6821cde860c204cd68c19d5a0
+DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
+DIST chrono-0.4.44.crate 240549 BLAKE2B 7d3d1763ded8808a7402541513d00241c444b5b0503e144b568d2c0dc185ed20111163340a3895f30dc38864206a03d129840ed9a2841760dbcd5be26511c7e6 SHA512 0b1a83885724e9180e71ee9fed146d070d88620d46b74970a67f4af04f583dddc0285e7d09574b99507786568ac7fb3f06a5dfbd25c51490c8d444c145bdee21
+DIST clap-4.6.0.crate 62930 BLAKE2B f184cfb0d40adef5d0b4ee0370208bdeb6587b9dfd1b37f71a577cfdf77101100b4c47809ceecf946a855455ab836273aa6b8bb6570d0c126a82754f16bd95ba SHA512 bc5641690f0a0ed2b660836590174641e568be3d2b92d5dc91a82581fdef0543640190fc3c8ffe765f0245a88c0f9809d4e136af156a3d480a680da28e8ae5f6
+DIST clap_builder-4.6.0.crate 171122 BLAKE2B 0a6ac216ceee45625500379640f9306015f749c377d14c6c9538fab7988da89b39e260bf8736d7ca055c6db32613fa7a9e73f325fc496d7521ba3453c8558348 SHA512 43b26377a8f15d29f8fdc9ada914888d87111084c5e205308d166789a27d91c2d8db6756b24d48ef8a293c92ca4c27dbf5433db21e336b2116d51377116fabd7
+DIST clap_derive-4.6.0.crate 33435 BLAKE2B 93fef598637bc3674a7682f724412d5b515c3d219fe4d7e854dbb47864be598046e84c025a5245add4e9431b305d232e6207806cd87aff72cb3552c490426aa6 SHA512 4b642e4bda3af45b21fda189094f73b295c6890f2af533e1541be0df8669d1c7d8256a88dfd47f488ea6adab65012a213521d52dd902f9f11fd3b776923da1c7
+DIST clap_lex-1.1.0.crate 13470 BLAKE2B 3e4895620e2922bd95ab6e3aee296457adbe70c2b3b2fca24c48e5bb700ed622401c68f494a266b91f1b82a7ee109ca90d4eee7ab6eff35e28b5fe8038398e5a SHA512 d85237e0558ebc745b08a150ba8115133b1ac1ebfbf6b2abf632863761fb70cb329639bb1c30625b9e786bb27b19438af11c123c508fb39e682f13e294ea6d9a
+DIST cmake-0.1.58.crate 20474 BLAKE2B 4a6bf6a74e2007223fff06df2f87032efeebcbd12b43b68cdb905658e94c2c7cdcdc041fda5a5c52afa7b7cdfde7ffe11f39b72e07965b6642603dd4d6578ef7 SHA512 49420a5d7d71ddccc21b71373769e1e28ab98c9af1a0c5d59fc3127e6dcc45cb1b7c6b5a37c9110907daceda7fd10bb59344f2bb8f041b18d62b16c22c5d0d60
+DIST colorchoice-1.0.5.crate 8187 BLAKE2B d6415c5b337e2f4f5176003082e6e8c52f55a45ff959376e7a3f30e5aab1ecd3f84f9cc5e7a8a720398c1b58f99a07cf042695adb0b35178931178cc8d77d2e8 SHA512 af3a5e7e837b280cd8f0578d2ba2a04443d4c5a445577f444af9edeef6cdb47de134f77b07ceda76ea6b2c73b9c10e1d7e3e1beabfd22b85869585c35db88bd5
+DIST concread-0.5.10.crate 894816 BLAKE2B 505125338750e1d59290d1cdf361f6d373d68728d6afcafbcaa1e894e75d0493160b5651978ac0176c768ed98e4c1f9e369a1086407b9c94ed5063d728f562a9 SHA512 0bd7ac0d8fc770dc4c312a530894d7a6748fe40e39a2b8b8134ab95bce26580ca97abc0e499161a87f03d60ee4d6a2099765cfa2070c0b7bc12d12de8119ebf0
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-queue-0.3.12.crate 16270 BLAKE2B 75be9d53340ab72e5e52c940bf6ba5dc417d3245fe18c456ca68b460c7747f7d99340517fa1387c7153faa8a0beac002fe3eabedc8638d044e0c05f4c5b98d56 SHA512 a117977e55c0c2eca2a6141e3292dbc75ae5d80c087f0667cd767b9e9ee0f9c87084ceab34937b66b28a586b071e518a483684bb041e6410b2c3ab5924bef769
+DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8
+DIST darling-0.23.0.crate 43298 BLAKE2B a207ed640665664402ee07eda679af83e498c3de79a9e41c3fe1fec4b28071ba52acdb1f790d46b6c6c1744da96991c14f96002cf149e080a4982d5a74280b9e SHA512 6257756befa2e6a8b17ee21d64e8430071bfd1e8f72c680f67b3c15934e726ec24e30da37fcb5ea4f4b3d925f81cf4ea22d6c85788f101090b32d95f08bdb2e5
+DIST darling_core-0.23.0.crate 74564 BLAKE2B cb5d45b08fa8927d91f113a37a8eb77f632713e3feaa629d37a6a0fd20112a202bb8ad574a096f0ba7b3b870e7a9982c86641e1cb4f9e33fcee59a65524b5406 SHA512 52ac3dac977b7f1cbdc3c0ee545356495216af6d8a4f179cbb51c8bc80253cf028bd9b624b6f42d6354d913e7fc5ea980234aa2ccf383c8779ca70fde72591a9
+DIST darling_macro-0.23.0.crate 2480 BLAKE2B e81f6bb801e5fabf71fbaf966735e5388023f75e12b8f9bd32e2cd49608ce05625849ecea54db3d682a9d091f8f0348dd60777c316c91af5186aeb0b97e4cf1b SHA512 f6565876c9846b1295be23eda6decbba817c64c3e2ba56fb0009c2acb68d542481dbb033b0e753dfb1eb967f24f87b781869c8bd5018a7789066229a4919c8c3
+DIST deranged-0.5.8.crate 26885 BLAKE2B 72b9b2025009a0c69a6678f079415937c39c4a4ad307eb8dbed1f8d2d6e125f0ef4e422b65a7d08c2b1043814acafc0c6a0e81b024fd8736930eb29793e000f1 SHA512 cba9189672275a2d46d61ec04ce8d08ed314d7dcd7671029f3d7099106e112879eddcbeed23b8e167467abc9e1f5211786b5a91a7b2c41720badc601e21a17ac
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST dunce-1.0.5.crate 8244 BLAKE2B 1499ae0bb3d34e8d42e97eaf551308efc95697366b804dc83c51171a939d45bad46fce9f82a39e17b6b92fc833aecc85eabd2104823c7db30396833388125728 SHA512 36d7d75217d629185a9a9187f7d2e2dc346a28be0ad1c21b1b6bcbe3991e9cd11797e53d745c0b3b5ae94cf1e4cf141cdb2322bab86d97cc258b4145e3b97a56
+DIST dyn-clone-1.0.20.crate 13134 BLAKE2B 986c424a38fb634eaefc546a25ecd927872573647a139dd6750b5c1005d9e0ab349b47d10991a9cce51b6c457150500808c7a1af569a8cf1911525ba8c1429a0 SHA512 5910c39f1ce031fb89d4974530a60b66848038e2f2bc78bdb3d34e6f40075fb4457b8a604309bedc4012fa46b17212e81dfb376cc6b45fa2dee823a86264690f
+DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+DIST errno-0.3.14.crate 12002 BLAKE2B 57fd842a717086ffdcfa5102a8c52bf8210672820366d78aadb6f159055917477e6771e9fbda88787278bf3a116bc7253dcb705b601e54038a93a1820c3c287a SHA512 1de95c9806323d63e7cc95111e67b3ba1ee4b9d47b70cec33485194574d6b584d22ff877dfbc244317822721291d537d9509ae5e46f1b45169cb478a78322366
+DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
+DIST foldhash-0.2.0.crate 23329 BLAKE2B 49af83a79ca7954f05d8a52566d7d20cbe057c89c2c767ef76b4c8d83bf099196d053054c8fbaac74da7fd5eb0224fe43731102f2f0bcb18ccdbc0c8150774c3 SHA512 1495281089a8a1b7bbacf8004a5e8051bb00bf37718e9ddce9d43e4e198f529135f864b6850ee4422456b0d4731ae58647f0a1aaae0d67921c389f5d108fc163
+DIST form_urlencoded-1.2.2.crate 9347 BLAKE2B e02670f9af81a09e8df16680dbb80708632ac9e708297fda2f821af8076fb827c011ff359d4ce50d5ddb8f4403d4e19f74a4b68d11441f32eabc6fa2e38b3b09 SHA512 07d27d852504e146d586d007b090e53cbe740da140859dfb7d647c83c1b55265a83ea0a0e514587699b1dc6b6ffea2fc913319bcc83b55ebe191801a3b429c8a
+DIST fs_extra-1.3.0.crate 31298 BLAKE2B 96dfb4e886767d3d3850d94cc789867c3ed461feb9da0ba90c600b2b41c3119067953ba795cea5e6c8c338adb6fe6426769a6e6894ea3e02eb1ab11794eb8d5f SHA512 090d2ace0517b86dd2f54c5491366cbb6e1677f64cf64f024f7dc6a3c42c4f8c54b215e954572e2df10ae7f0e956890ecf7ccbeebf66b645c7647409484c845d
+DIST futures-core-0.3.32.crate 14684 BLAKE2B d0c3ee59327998990f4cd81b8d76b6d8a58000ffda809ecafc8b7e658abffe4fc45be4b9d5e502436af8e4adef50b1601907b8256a9f65f8467beecd37ede220 SHA512 5848937ad4135fcc488690bc681bf66d6c353f063f87dfe1ea4b79259b9b402896276c10ea80b159a9adfa551abdb5b00a2c6b332af9a898766f87f177a40137
+DIST futures-macro-0.3.32.crate 11929 BLAKE2B cb8645742a8b70286ebcb3c8f676c97726e0e8367a926d171439c8ead49933afab39111b66edb249133274641cf623086f4eacba4774885552b02132060d45cc SHA512 39a5d7d4e610521d1d6d285a5ffec43b7d331d92d80e60890448d016ceb30ea577c93eb961321cf6c314273e566964dd879f7cd4b855b9f5e141dffe8e83aff9
+DIST futures-sink-0.3.32.crate 8106 BLAKE2B 881eb606c985836f361f5133b32401f4ba84289a0c8e0e075f74ee2a6fd9ee1fb9197f53086c368c2e231db5f1e61ae88f99f578c50956d124b612f1e8060222 SHA512 05438809ce417dc5dc46c14b9190cf798e0ab5b7dd5b442adba2ba344618e076807d4884f4a8cdf2f321a27557b3e3b563805fbd51a9561e9224d7502d4a6bd3
+DIST futures-task-0.3.32.crate 11377 BLAKE2B 290a2e7f7c957acfffc8041a5ce961b84bc6b1d02412ee8dce29cdc9a7d4daccbe430291d1a735c132b907448669aea4e5a3aa292cb5ea4b466b30fcd4e3f98f SHA512 eea93a8490d7083566d7f723c0bfae01583787028ae5d8bba851625b1ccb2587d27db0cbf3d7fbfa36b51bd6d444c54905cc4d56021f43a5a440cc8b0ed73520
+DIST futures-util-0.3.32.crate 168797 BLAKE2B d804428849635088636df69330881d68474db307ac4dd5863d73d1d93c54e90a18e21663864e94f2bd86999356e19b8325e321cd5c63da6e3e05f26c3af836fc SHA512 77705985b5cefd5a9009e631689f5967320cbd1363888cc8b7eef3f7457afb38c793499fc3edd4453bc8771c43436e5da1538ce0c5ef655a5e597f4fda2727b1
+DIST getrandom-0.2.17.crate 40780 BLAKE2B 49168490a12561828bb324273c1a2dcb98017577f8500fe08a8bb7c3accc37afdc459af264da7b95a4608e53c4edf8fcec3cb240741b2ee7b128012fab975ede SHA512 23033dde606eaeacc0557e21b3c5ef732e083b17ae086dc95ac7d1a8bc1b695a9a6a7073b8ae774ec62e7477a8ea0644d417fa5da7841a3c8118694c21813d1a
+DIST getrandom-0.3.4.crate 50932 BLAKE2B 34165a6994877aeaf3063affd48eb499512371a1fdc0d890feee598b5e22c14cb8347642a0e9374cd5d8a59a8281db839e45923769260312379321bef54c687d SHA512 43c44ec3ba0668f388519b2cefbee63f959f0e078730b3f7563742522e5f4b120472024b95fc94aeb90900a15d327c3573271bb26b2de4785e589a8bc1bc9da8
+DIST haproxy-protocol-0.0.4.crate 18840 BLAKE2B 5c22b94b1107967db6aa14a07688f339a939f8a67954c1d43d8d481c1030d495c7f4c0bc40bc2c2f2715dbac4394690f2b948d08080956721bf7fd29f6430e97 SHA512 ee506dfc6d8391e854bcaef9388ac11812928e458b0ba6c33a6e9499343b6861753e8560969b151b883a7617b74535c27828108147597fa12f6599f1a66b036a
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
+DIST hashbrown-0.16.1.crate 147785 BLAKE2B c506e64340b65fb462545c52e85a192b21e33025c91adf1d8255e799e8a5743814c60be971db56c0b9b1208dff8147ed4a28d8e37caf8f5646fd367d8d0bc9d7 SHA512 0739f1b2101488f88778e221d86738ce557b8ae12470e2a4444099eb90d876382030d00e789dd4ee44dcd7833a87a6e570fa11ba5823beb1cab3a56784ec2669
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+DIST iana-time-zone-0.1.65.crate 34079 BLAKE2B 4d84dd4655dd42ed9cf49ed8d93d0ad244f42433faa2894a1f8240a49f65021864e8aadb816d5725984bcd5c1a6e8e1ac210b50751e3af8b3ad2a61421a74e4d SHA512 4443d5a01ef4b10eb27ed8c866ed71619ccb594dee81a0350106f39575b9373c6199d925b92112fdf0aaa20f5d955d09fab1867dc1b4cba2841c713d40cde6d6
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST icu_collections-2.2.0.crate 88011 BLAKE2B 6caeec073fb6dea88daa77c7a4d8e3699924bfab2a98f21429e5aee73367e2c1e72e8c183050dcf3ce8f69d432874c69acd800b6a15b08ff440d45b0d683976e SHA512 e7997eca01778c9635fd918d05c850d43abc3cada2b1e79c0a4043f2bf275c238d185f1c55ef06548de88eb3d02c3d04f74061cc20e0843ee46f4776e701818e
+DIST icu_locale_core-2.2.0.crate 78639 BLAKE2B 106cbc50948d7253bc25c5ac3321e6cc236e23a548f0313267a2e028a74d58f838543a0caca50a2e3550207741f967e7fd8bf84c3b24932683b28f11cb065a4d SHA512 bf29c3f1cd5cea979ce82243aa19d4dada121448ddd974b27cb325ac92e18953fa4e9af2758198ba6a41c367ea659c92e450328e85ebf73d231126674e238c2c
+DIST icu_normalizer-2.2.0.crate 78154 BLAKE2B c24d908f03bc018dffe43820f19b8298d8e998a3347b56b59d8bef710055f7b4deff807a70783f05d81bbc04944077b7807dc8408bc1019a09e6346e72bc21e0 SHA512 98e48fcfe47623c592feee082264f50e96a82d89fa17e89d5d94de8e1cf3ec2529625954947d9b3bf9746f1cf0062b3abfd2d8f7cfa3b8e445c98284fbbc7023
+DIST icu_normalizer_data-2.2.0.crate 67134 BLAKE2B 843c78279057acb4abd7fba5a22c5cdb0dd396365a473be4d03603d26eebaa1250b5463122a1f63911ea9dd68423cb7e47882b21393434ee1994ab4e558ddb15 SHA512 494559893b3db0960fc04294e1f606bf466c3970153335f48ff475d22fae614626d66d46130f0943d5345489ed5aa8118737d27b6e883d331993206a39a7484f
+DIST icu_properties-2.2.0.crate 63950 BLAKE2B bcdf9ab45f90145bc21478791579986f5ba5d1cad36e83fe90dacfa3b43991f98ff2434965ec47d2eb6197b8dc45cd72abd66297845e9f74545a97c4279951e1 SHA512 880c0e19ca4ea3abe1322f9ce70c7138b0275dfa6c21b32ef65112d30059173b6d532aca0464f6b161aaa94ad56a0bd06b45156ba0c5ecdfab6f9fc52ab73bbc
+DIST icu_properties_data-2.2.0.crate 168901 BLAKE2B 47468d4e5235e73818d15918fca8ce2e404decc48e7c4f5e8fbd5b9010510a283c77793c91796152a80f0529eb4759d91bb0b6ce9b9498935353e4f190ee363d SHA512 35330585d459673096b545753e36cdbd3e26b202c2b905032dfcb477c546e4cca6d323d3b5d2f0e7b0e4a983094f048c1543d215fec68535fd5655e839dfbfb7
+DIST icu_provider-2.2.0.crate 51620 BLAKE2B 97dc0dd0f22ab74b80127a4091b8f140427c41189ec0897a65ea8443c307c27a46866b08d6a4e4b348e18c673d96e15258c2086a9513a9fa9c23c1a8dd57bfcb SHA512 a1a193fc08ebe34782efd21b70778c38fd9f6d99c08321cd2bb457d6cc91593ecb806dd61b8179fe9b66d99d79d518081eb1d1e2933b08a3b28158806ad6169a
+DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
+DIST idna-1.1.0.crate 148747 BLAKE2B 89c6bec54cc2717741ddb5cff2939c08823189a490b79ec0e9c7acb3aa2b4fee472e33f36d7c345fb6658c863d3c174577aa1f1a10c9bba7558fca9f76b8ae82 SHA512 1d49993145fe694f33f7c71ebe62face416f2229b12690cec23ae2e4be2fc1c5aa5ad5651d815ab70057b68edc450ef6004306a775b920b8773c221c0fe6c106
+DIST idna_adapter-1.2.1.crate 10389 BLAKE2B 464a9a20da73aad657cb7c0d573d92bd21159032daa8e28fbe61a980b44e59d1a2b2e076d30ca35a49abcaf1bb71ec51f774ee137792dcddc81086a1b6c2eb61 SHA512 e94555b58646c596fe64006ee6f4458962987ceedc3341a12694d809cc298c38799fb56b382adaa966e3171b1f62b7835fbb2e688251e742deb7067975bf1aba
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST indexmap-2.13.1.crate 104085 BLAKE2B e225be37fc18900aadc2d841e46e4e662bc55584e06fc3c41f68d06f30a16622e18c10ee7afafdd4afda9a56bf34bb025488861fd223ca86b57a7404dbd955c6 SHA512 58f54b7d2a05977c12cadcd80e6310e6e87cac5078cd33b16f368ef21b9f8843082556c2f1fe272673bc49ddd12640632e0ebb30148ed3f1b398b7284a8fdc02
+DIST is_terminal_polyfill-1.70.2.crate 7548 BLAKE2B d84c45a94bc0ede333843ddb5206379f1a7d9df742c7f7940374d6b17b0a9c300e32fed5fe2bc58e6b3bc5d18b5fc58dd4e283c01c2f3b4f10f254b3cf7668c3 SHA512 d62f444e83950bdd441215c0ce681ff774692b35fec2af7181dfa243dd43fe42ff7e10a6e3b1d578712e4130dbfdf471ecdae73a3a584a2856a848d387b6c261
+DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c
+DIST jobserver-0.1.34.crate 29013 BLAKE2B 4d89234147386d61e8402872e577c52c60fba41b21831acbc6934ec7668b22dd9b876cf78180f5a06b2b26b642a0d7e02c9a67dc36ae7d3aa3b95125dec3d7de SHA512 42fe03eaa4caac030c40b167c742aa104151a126505de9ff4c52ab97ac13cdd2b7219268bff414f1d09061f3f9e36be01bdd6255597b957e18589f9ef4a65549
+DIST js-sys-0.3.94.crate 103723 BLAKE2B 6feacf184d9111ba10af7b9abe792cae47cea7718a290dadfe8a6aff3ea2374bfaf0af06213d1eeacf8bc52c38aafe823c17ddd1e469c98118bba92a57748199 SHA512 290a6ba146e5ff7865c7e6137113013417834c6d77aab24f9488576bf4b2c93bd39619b3bc03ab5b64127ec98d5095540ee6571f5bcf6abe6f9f12f78c3066d2
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST lber-0.4.2.crate 8107 BLAKE2B 90ed15da1b8c6278bd9559297df383fae0adfa82ca47f74945e777b2e50f6c7727dc2cf5a1633cde1df8d60e6724a1b3822402228c62ba9d4f757cdcecca1585 SHA512 3d126c5424396ac52a1621f5e7ad98c13a07f4ae51d603f37bae83ffd4683aa1618bf762ba06d3402b0548ec055503cdb7aabeb937c033857b478dcc5816b430
+DIST ldap-proxy-0.1.4.tar.gz 33800 BLAKE2B a77d6a4f2ff7b245056284368c3ac87aadf23166751579ba1ff850a73cd53de39994de3bffb92604267f03158c7f370f3216a9cd780355c8b584644bc766eeb1 SHA512 cdb27d4655da0dafa69eb4d81aa9c2a16d5817b5d52c95a183098963a2c80fe4c39ae1cd49d535e68fa82b5e4768c2215a25278440df180290eecf9f8f1cd312
+DIST ldap3_proto-0.7.0.crate 47051 BLAKE2B ba4ed082aac5c2ea58d23e1b56707b0aa2f62f5f92af19f604a6e3c8385ffef12cf6d863e51909720f480bf19f85f31b018033d5ebab44f8fa563d8d13e5835d SHA512 4133fba44b4cee7f4c1464682deced1336e3b4f137bb8e9017da88e3c0b26634266a23065caac1d92cf64f120414c70f19bb842d74bbb6e24f16d89cb9e1e174
+DIST libc-0.2.184.crate 820172 BLAKE2B 61c2c133b14e79a6871eed0fef248a063f19d41def5bdf72bc7f96c3b60eac24b52d13e16f28d68d750a16fe546c26f245cc088782fd26f8fac78da91b1d5c0f SHA512 46e22ca28ee3562bfa2475a944390cf2d864e11d533889c753c4888a56c02b981bf9507b7866bec65c1b1aa32801cc1c57b660bd93149111547ece7ddc55f31e
+DIST litemap-0.8.2.crate 34572 BLAKE2B 1c052278ccfb685ca8d1647f6d35d2f3cddd74814d287b8f9d10a0447781a1a33f607b0745a6c83b7e940c14076c90e4ce1029e8660b57b174683f8af2585fb4 SHA512 3afcc1a89aab55368bdfe6848aa1268d37ea8a03130f1f0e1e77d6709e437070be83e9e457bb51a7096c3d93ee0155740e33cab03f7584ff3cd7d8992524a7f6
+DIST log-0.4.29.crate 51515 BLAKE2B 3f5dc889e895428f27ef107a63004c1b321793b865c29b20293adca81db4e25443e24354af37018c9a60dff1d54897c3b7b2c014a64280523f4a3586a7eeed24 SHA512 31bcf1669c27980f0a8500082c4d0cc500f6cc943518a3dacacc3ad4d8a0c238517f23c2c1969e5a22dbb5d25614adbf4e914c0557e45e1ebc8e7385b2ed14b3
+DIST lru-0.16.3.crate 16743 BLAKE2B 0574e82714425293593e399930903da1004062ce84e5b90126c66d004e872ac580c6f474f7c39e1a8eafc9f78c6fe7a3049b50f248e8f3a9ecd03e9f04133b9b SHA512 5092b87dfbb7666e224dc6d8ed01fb8276929a2d1a31173034155afadb90e0762dbe6d5ce263bbf0353c079bb249027eff71dcac87228514a5406ef67dd06c15
+DIST memchr-2.8.0.crate 97780 BLAKE2B 228ce0b6fe8b168f5c31031690a5eb44466609b64c5c221e0b3f56fe331b4f25c0124d613c94ef030b225000978953641f5b07458d530c1d50eec3e1d54e4274 SHA512 8089238153493a0ff6adf980efd1ea2ba10eeff9f33fff200268692662d24152a8c14a4dac37fbc6a55dca741701fd256174f10a9838ca66f038f08e090de12f
+DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
+DIST mio-1.2.0.crate 106403 BLAKE2B c9b2342879cf19b95c9b9e472fd5e8caa6f6371bc7734b6d9af71c736a4aa218837ac3c8a1f84d1fd1ce4bfed9ff417d319f47e52c4d637b15e2a179f859c3ae SHA512 148daec8a99b63ad5742695ce7b5306d32dfcb484fc819b1220079c59219695d2892bbf83b65aa2dd76b68272fa195d353ecb28d9de795e176c4a38be729b04c
+DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
+DIST nom-8.0.0.crate 135590 BLAKE2B c97f47d8c59f6607517278afeca45949a1ed61c1c178c2cb4a990a3439a532e544e5d3d4732e9abb87d93731b65379ab13e44297cd2573e543bf85958d7034d7 SHA512 7634276cf799b0260e4f82818e297001101c84961b498552ee19d2b2bd7b7be3621ce7fbfa9d85c4531c650448b2d32326ecef28f8282b016f5a504e69783cb6
+DIST nu-ansi-term-0.50.3.crate 29597 BLAKE2B 197e6659d8ab6e059fcf814795edfb015a5aae08071e1d14b919d2b47e2f5c156329f912e0c351db0a084a0cafbfe6882970cf33bb56911aa7e6eea684de514d SHA512 45f5469a7b5d5641fc93ad6953bba8e91d14a511283ba628c2bd75fb05cba6d571ed505d7a43df905eb7725fadcb263a47c3f151bb5d2d7b37fec4fc62f2feb3
+DIST num-conv-0.2.1.crate 7099 BLAKE2B 9041253ea3b0c7b247e731a72ae8e42f2bfb068ec7203d6262f73c5e3af2058a175fe3b6f0d21214a44563f12c680336f6d789003d3575356310e4dffadc8030 SHA512 5f337ab964e2cb6f7bddcd86fbdc6accad34038fe739e0e6d3923f0cd75c523b37059c1c58bddc2e1b5c07f9913b58fd71c978984b7b1f043056aadc2ffebf53
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
+DIST once_cell_polyfill-1.70.2.crate 7448 BLAKE2B 5a90f8eeff25a555987b84b9800f9e0b2aa94fb4827f76678ef45d344c4baeae5a079a288fd02a570d0f0099e9b2842d32dd206dbd609212496e77ede47a4d21 SHA512 9e0d07bcd40e4a5c271646d6fce71677acbfa4439b4e818bb4df823eb31eff976ba78239e3a7e0ad21e80ea8d0d3af3e74a7d0a0a55b308d4c777b9b5e1ef8ad
+DIST peg-0.8.5.crate 22411 BLAKE2B d11ae9dd8eee3555d3cdb882d0b9c8ec8b042ba312ddc146fbe1630cabe233af1acfe99d19d5bf795423d1f350cacc7089515d460e8be2ffeedcf6205ded8753 SHA512 d23fe530ab6d7a26e5a51e25ab672c188ed030d92e14db1f0409267cfc46ebeb13b4e8d07b4e2e7739a4db015808bd5d1654861a89cf5ee31b64dd5e05f583c8
+DIST peg-macros-0.8.5.crate 30601 BLAKE2B 63fa7e483c54d57c26a2e13a9ea49627da0b22f4480c724f5e143332a47f06d9a17204310ba67be3508ad2b15fe460410494c25e06d91d295a4458e697355414 SHA512 2152798dd1291997208d2c54894e1d6b0646023c6895d03df6e82b3150721ad4b4778f0ee631384da707b37edf8a27c02867882e7a01b4eb0e62d95850544abd
+DIST peg-runtime-0.8.5.crate 4458 BLAKE2B 5baac2a7130d2feed33b0ea57b22bb95e2caa8ad72dc50b318cfd36e4c9a1d9a70a4e8f25be85aab0b2f31f7fbcb5cb9287d2f28a9e832398a3c997ea556cb8d SHA512 48aed1e15b3811fc3bb5c322edbfab9d51975b26a5e00c283d89df06685e0519de97d0cc205b05507b3534fe3015484828837af648e0940185ba8e0efe11dacf
+DIST percent-encoding-2.3.2.crate 11583 BLAKE2B 58925243b23a6a1decc3d92c4ce17d06af5206844ad283b49e69e523ac0db2c36c3f4407af4104ab92c029c2581c228bdf416a054a2531191a9e912448ba4408 SHA512 495b4aac88a7a46420811671d6bd82817e4eb2fe51d5068d11c5b50d0d927895d54c855cb07d4f4ad5a2d42b22f9419ad0183c14781dbfa240804fd49761035a
+DIST pin-project-lite-0.2.17.crate 31034 BLAKE2B 1d3bb970100c2a27c456bf771b4884f3c91c048310d27608161d3a02adf2f9cdddbc8674257c6b58c4ad6c0953e11cddf2fdf5813d95e5ab8425e71032556159 SHA512 0cff4338e3c7b71600fb41db013efe0d01b9cb3fdf95192dc16c5bea58a0f157207ef285ceb01b6b30956f9e751577c5d2a3803103f89a8a0cc6ea728d97a4df
+DIST potential_utf-0.1.5.crate 10189 BLAKE2B 0d8967cfc088089bb8d9ce70e9d92f69fc92532c5c24eec8c46ba0b1e40819195c745206f596d63cbdcdac436112d770ca378abe99f3ca0c0d2588b2bc339f62 SHA512 72950504acbd0aeeff44e0169f1857461f7627e7c638698ee005958c14cc0e68b2cfde33a91afafdcce98eac7ba7d54a125ae22562c4120c31e4b745bf298b54
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
+DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
+DIST r-efi-5.3.0.crate 64532 BLAKE2B 54bc882e333f7ba52b6dd6ac92b8a282581c10b47de91a4c4b71b15a27b2df885ab52ae2fcc8a546367ee1ce98300dcaec3c33cbd7393b134383528540bb7d14 SHA512 e748db9729dbddf215d5c37630fa272197dd2921297800209ca7bfcd6ffd8530b598b944d95547ad9723655cafdfb69b1c1fade9ba5f8c2ac5c55ec38258fdad
+DIST ref-cast-1.0.25.crate 15192 BLAKE2B d38a9cac7cc2253b8892e2dcda3224ed637713a667c7dc283a2744307e437a2233314a57ca8f9568afcb72425533c688820e12d42650fb797bd23c88dd99c131 SHA512 dbab09333cb8b7f9b0ff262223a10078e7cf729266b90df47c1fdbf1d15cb31807314514556c72211da633efb988e3d6ac8e0e1598b7b55b557f83378deb0120
+DIST ref-cast-impl-1.0.25.crate 10167 BLAKE2B 0b648a9d54300e309214d8061f017d8c344eaf5be3623a361dc3d7dea687daf59ee09fb3c21c955a9fd9da44910d19f0b5a7b515a8877428d24369f6d21aacc4 SHA512 c79cb5a1338796e037927e99a9201738cf2a2ebd1983d120828569644c60fb5a3444c2eee830093b166af6734fa8ba649082e523170d840b9e8a548341fc3b70
+DIST ring-0.17.14.crate 1502610 BLAKE2B b33efb6d21931ab94f044373f24428e87015029a0e065071bfd901f8679d30944f6b27bf0325c77fc4bea7fcd935209087a349e5c279677bea73af6205725371 SHA512 88d38205dc1a1f89bd4ae887ec5c168e68a4b749b3ac0612674092331e99d14a9b8d0f4a98d72c1a3853bcc9da420402336da3ee053bedcfd598da8de93afa14
+DIST rustls-0.23.37.crate 372731 BLAKE2B 598d934a9fa15116a378d91d6df598ae56d51a48c34ac86bdad076ed8fb78aa13f227fdd9cc1924b65e80391df28b2d37fb260fad64502dea2bfbe26ab559d01 SHA512 b92a233abdc5382bd3c2de0f50e1ced3a8e1dd04eb7241e8beb9d78c27ec1e1e45b1bfbd9d4677078a4d19e3179dbef87acfb2bfc7543ce379b14902a0002e0f
+DIST rustls-pki-types-1.14.0.crate 35403 BLAKE2B d243b1699cdf5f98ae6118a523c4e80b5cb01db330f2ad68a60b52af990a553818e908e16d61fc79885a211754899c0f5f89256fb8ce5175db3da5fb27e3034a SHA512 15f8f06abf44a8f859038879db210009d499e3d5ccf33d34439ec56695f0221b143959e47bb6b1460667d838df4274b844a1a86e1cafa41efbe6694f8478e0e0
+DIST rustls-webpki-0.103.10.crate 85648 BLAKE2B f7181d5f8f67c29793dbce20f6a03f971ce140f398e50e81e832651f5e3815c83f9333f1652590c1a90c10da964a6f80f9952710d8b043d108e4a622d5bba2cc SHA512 a3ddc6ca5ecb5f4a25e8cbd1252cd2e8ac7937a9376a5d1a0c60d405c561d896365c6c3c4711d191c9c8d308b34388235c2316ea83f4508518e2c3413a6cbc13
+DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
+DIST schemars-0.9.0.crate 80032 BLAKE2B 89ed96fa1202c3e1891c1e8aac2edee8d672659707aa2215eddaee122fef2bfedb1cbe1c6963111a7dfd0c98957c1e1574623dd7c5840a3becc6d003ff1f6570 SHA512 5e6c65dbb91f6016c76b638c0277ad42fd002d1ff5413a54da353775543dd87d6c1c7e473e0f2a0bc4f41e1b94d4e72d1ea850aca78160a4a1866167b6650960
+DIST schemars-1.2.1.crate 94403 BLAKE2B 428d5b2956848ae7549e488b120cd87e6ace83d1a0ccceeee57695faea8885efb80b0a46a1690e4cbfd867c7d57769de7f1b137e91dc11cb843f123f92e20984 SHA512 a18a5e29b98ebbd78d46670317ad467904389a71e323f576c61816ff9ed86013df5048384b9c9af01c6087e4eae10e3dddccca6b3b6cc723feb2a6af08cae9e1
+DIST serde-1.0.228.crate 83652 BLAKE2B d1909d671ea6d5c2eb4ce34ee4493ecaf665d416111b4cac754b5d33b85f916296110bae7aa961efd987a2ceb4a31ba645752ce99dd28dedb9f1eecdd4d7b1b2 SHA512 9b645d6214203533b303fc5e88ad4f7686c22df084878d18a0209a92304a340fcb62fdde88a7080cf7a7348d47b9b363885c4e1da90dba08cc99ff620f375e97
+DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4
+DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003
+DIST serde_json-1.0.149.crate 155994 BLAKE2B 7564c287a05c95feeba2b3a17e2e43ba047b0132b40fc4dd0c09141c2aac559c00bf4c63cbd24c17f12f5e6b49cf38b240d2c6c66677ee7a9edb197aba7d57fd SHA512 85fa8cb7b479f8241a4fd2255dd80e346fa5cde103aa7f25c14ccbcdf0e3276578fd0645e1d2542ee07c7e08c32058ff662bbf03926cd796c38622a12f423d43
+DIST serde_spanned-1.1.1.crate 11025 BLAKE2B 24329285e068484b2480d603a6ab7f041f111e03eaaed6db00ac94e36e608c810b7f19040265c51e9d881e65a107cdfde98068b5f1f56dbb8e1fe6677683ac58 SHA512 ed6f0cd52d97985458d530a1ff973aabef8b611a17e739d5011aa50293e4cc994af24992e07ac55e0d2a8fa8d0577ebdba4b42b920cde505e05dadf05382e545
+DIST serde_with-3.18.0.crate 199584 BLAKE2B a241f0615724331191be1744df53935f1b8b74c736204d9e0359d68789d045117d0de54299ab62055e5561e9956a2a8631bd01d0913e44eb9a18146ca5210c48 SHA512 313d3f9ea8f81d97a28fdf86404b349b875dee85e01969e2c4d07f678c3bafcd50446c75a191ef883fc5054ef22d0a037da41a9ed5e162ae70f36a3ca0a0291e
+DIST serde_with_macros-3.18.0.crate 38080 BLAKE2B 4b82be32e83b7e046112985772c8d4492eba188ba3fcc59843aa0ff6dd6fbf5ded1805e23e0379a1d74bc0818a6d7cfc34f6df45fb8a27f6eab6d8075608c3ec SHA512 27d91e80f2675b31fa3b6be7c920496614108b81196e9064ae79dabeb8e10b1d2f274f22c72377e45e47c43d95f107fc9be9fad94acd89989070ce8d35722e84
+DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-registry-1.4.8.crate 21668 BLAKE2B abaed3ca8f07e1631aecaa4bfcc9dea94f2bcd2ab227c9e44d543663392d5e7c7b3beea4d0624ff48637d4fc7544a722ba3d4113d109a77ec1a3b3c0d06580c5 SHA512 6625d842e5040fb15c3a6a03994aabe8b3d0b752773805866858452fb03e5cab2663c89367caa15a34dc0ee7c2b830e302d9be664130c093bdbc17d7b61f045c
+DIST slab-0.4.12.crate 19080 BLAKE2B 785a1b899fe01c8825f24d90b0b0bb31bded234810f59c71b7e44221387de33fcae220a7d0745f59f79c267673b76e7c8d9fa4c0dcbf8fc5d68be6562018d49b SHA512 cf7c971b99b043d8bc102732a109717cbbec114160e4f7cc4009c66739177778623403c33d6a32efd1620e0ac7b8743c36e0e5563082af7f92f1e4caeceea0d9
+DIST smallvec-1.15.1.crate 38116 BLAKE2B 8dd779d7726694672945e928399e0459f4973d284a6c2d664c2fc757ebb1177658f47c812d9800e982479cbd7413fd4283c64a4d248ba5cff6397f96b758676e SHA512 c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047
+DIST socket2-0.6.3.crate 59330 BLAKE2B 09055b889f501975ebb358382237e85c35d81108b5ee91652843b363477cf103bf72dd922e94aca201720faba00a25898bdb88df3a7e335d0664d48873453129 SHA512 c69ed9bafe82dce5fb6333430f06dd5bea910dbc2085ae6bc3f0b5b3d2f965459a8c19e90a877dcbfec70dc8098df11ffc01dd5a401b5638c29b6dabb3891ae3
+DIST sptr-0.3.2.crate 14598 BLAKE2B 0ede8a60dee9925fcb39377c2e41b2fe5ec760a2c9e3166f4f8dae35c34721848d328522897403fd60808135b11661d373b7fd89c7127367a806cefa8b914d8d SHA512 cc26ba96f808c57d6aa5efe5985ea3e83b65827a7d163837c81a06fdd4f178fd5bd86e4c08d7383a10d94e63bb97a0f6c151b55cd79c9c26f3a8b7a0c6e5b530
+DIST stable_deref_trait-1.2.1.crate 8186 BLAKE2B 6408959d169d1228c1b0802ef31c850206405f8259168f169aabc91f63683dcdf347ff0e74fb3535ab05d7642889dd2637afbdea389b43b0925e0d6cf441ed67 SHA512 630721d3f8e9f3290efc250c42aba13e2325839e62167a2a611618c18c6aa58c08a53622db61a9aa920284570626b98df26b3c28009cf45b6ce1ec134b9c9f5c
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
+DIST synstructure-0.13.2.crate 18950 BLAKE2B c475f370d901a371262f466dd98e3914dd6f36aa473a33362866c0f781d27b1813233f96b02208f3463a825e8012cab0f8872eed848d9aa0eac88b581a0d261e SHA512 2698f4e80b93f7cf1d8ae97c4c42a7f61e7b7081f7f1bbb94d7f48ab7ae813a666d73c49ba3812cda9155e0138b55cc246fb96e5858e411a8d32bafb3e2b2afb
+DIST thiserror-2.0.18.crate 28875 BLAKE2B 4edeb4a39f27204d417d673dd3e2c1dec67a5bcdf44aeea70a02715b6101da290b5ac1534908001bb7d758528777f5be30b428eaf13cf0d8afffdbece054f3f4 SHA512 5e20261c0f8898574b5668c743d292be1763a78f6431918f33eea2ee2badb40743af4f668ed245ad685a90c3ae23631a2ae8266569d8f1e7dea111f08ef12352
+DIST thiserror-impl-2.0.18.crate 21413 BLAKE2B 38d2dd849f6919b2735b23e32250c0750366f2a5ef9dc385262ec00fc8e0cef17ef902211bdacaffef4e59dfcde9ca2d84a0ce4d052a96b4233a21b168e6bfb3 SHA512 52a7b5a98cdc32f7d6911451d75f008599ba3775fecc1f7483b161cc4fa176e5b19659f10abf8189748d769fa23d3a22b774cc5102fce395c6f77a5f107b0553
+DIST thread_local-1.1.9.crate 19315 BLAKE2B 31151ebc58e76753ef8c15a8b283a2b3a8f833aa4431ff1a28612d6a700088315839abe09a6d582ae0dab824978e2d2b67ec00e46cdbbb4c962fb72788b5368d SHA512 80fc2548bae302f22de10d8240d0701efd64cc41eb48b06234426d40f0e05716132e08a8bfe89e17754d61fee37d3359394cbef8e16af307dbfa76e1524de7d4
+DIST time-0.3.47.crate 225161 BLAKE2B 11b19cedab54f06763fdd710c273d0cc3bc4de1a7e39dba9657c860448e93d22d83552f858699be3a5f4aee4cd888b959c05f90d5c24208610dc4d0dcfcf3df5 SHA512 c43decfab65f62b7719f9b2b4bf6eb80fe3ed80f670e1b47aa0879baea403aa19557506ec9433df31ae9fe9cd92cfebfa237c9b2f5dec8d5eb093c54bb815f76
+DIST time-core-0.1.8.crate 9634 BLAKE2B 6fd5acc286636de923ea527874c02acbc31577ffe0f15e2d89de5d1d2a9c1551c68ebe392667cc8d34434223484da792c0bf967f5b362d1784818b016ddce0ee SHA512 cf9f2d5da0fc1b61ff53c11476d9a73e76740dc166ac0b4c4953e25d63971c5471f6e3bcd6d1287394fac44fbbaf6d855a09ee694d845bedf693e6b8a517c9fa
+DIST time-macros-0.2.27.crate 25144 BLAKE2B a308949ecf582451a01669ac0468b74231e6b466da44c4dff864baa22cccf33ad64ba3c80a75afd4c19bf983dee11b157fc973d9e4fa78a614bc98951506b4bd SHA512 5caaacc82e9b73bd3891e55aece04ca3800884f9e52c01d5f9a62fc9e554940454df713d903854c68b85b5a43c7fd8dc8e7047f596be72f86952cfdf9323a818
+DIST tinystr-0.8.3.crate 24710 BLAKE2B 5ff044db0b3c11c6ce5edf6dd4562087449c7af0668a5de08e07588c3b225a3c13f15ed39f2f7d8860dd4d0bd88fc95ea2b7fc96446e5963521eadb6699dc80d SHA512 1208a3502aad5783a99d05c6c546f0f9de5b468b273c0931a33829c857a159679f8720622ee0700bb8df397baa590e0411f89116327759a859ff46438ac73bfa
+DIST tokio-1.51.0.crate 884550 BLAKE2B e4789d464208090edf81024f6d66a9f11699dfe2519b951b84832d32306de2f28cd4a16e4800d9cad2d9b77936ec8f606c61d164c672c06d6391a12011352724 SHA512 eaa9840ada5397905be9903def90026df194acd239a420feaf7833a9de7678347986f30eabae9e8e4d21a3befd7fa3bd90ee8e5ebb5ee2de99672a6ad31f9ebe
+DIST tokio-macros-2.7.0.crate 15859 BLAKE2B 430d68352a433d070dbe80146860179023a01cd8fc7923a55337f48743269dfed914cb69989eda8ff969c74a96b28cd32f0a59caa87d5b2f3e3828d878d0b026 SHA512 c93653ec669b092e928f71ed1e7af8783a5e9899739265389ee24301a0a5a9e2b98c69539937f78926e47c13a36aa70c70eae278ba6c082306e4044a7021c2c7
+DIST tokio-rustls-0.26.4.crate 35430 BLAKE2B 97dadd1b4d8aebd2f862f05bf333c0af97b37c1055f0ae9a79b78bef4c8bd4c05c034d13e395346de1d83195609bfd45ca34e70d4c0e537a1e4e8078181c00f7 SHA512 c72fdd74c4b59ab7c8fe15ed73f827aed91a40360a6d82772d6ae2dc4affc590d2c58c1b7523be7249a2be7e3bc2513a0906c0ce53ce1288d5dac50e01199c7c
+DIST tokio-util-0.7.18.crate 140550 BLAKE2B c74f978f9d1bdd662acf65551ce35d735b23909ed25a3073b5170459cae4d0bef40e34a035ce1e2f8bdbf7ba51d230c016afbb150f7df77d9901e45caee3fb97 SHA512 619504b1c7b10ef79da38b99e7c17affc0dbb984dc671bd1ca0c4b1ad3d1d86f80feee67b78fdb7fcf7ea989a0e9bd5d52714467f4881f31ef5f60cb989ec671
+DIST toml-1.1.2+spec-1.1.0.crate 56327 BLAKE2B 089a3ea3e47f18655db4fac61437135b613241e9df110c72e3e16d2ff782d4d77c6588cf453df0422e6eaf003a75be7f81758c2f8af82663e6280e5543a13026 SHA512 d7b6bae5bfc9163b91f054d36b9960f45bc4f42fabbd4f6d6cd33815863c9114c355bdb5839da61c28adad6d04ee48635401c71a8b9db89ab18a0a04ad9ac261
+DIST toml_datetime-1.1.1+spec-1.1.0.crate 17982 BLAKE2B 0552b1cd242430876cbe3f1b4209c21d5b8aacf70c3235087dc742bccc55bd0994013b021a48ba69c4a2802bd458eae56cd8a96999f43affefff0a5f6b2958ca SHA512 74e13bc2f616b407d11e445e3a416dc7cd819774a5d747baede2d71ac42573ea29fd77cedd2648ff1b286b879053e764b8ad07cd9e9fe1164f6cc26f12931808
+DIST toml_parser-1.1.2+spec-1.1.0.crate 35485 BLAKE2B b45ff5281d25d002fb9807005f6593e218aed03573d99ec0837ae75e4e19c40cf21759b0813556904d5060e5c8c309bf406485766ba14e9b464771886deece15 SHA512 11d4a5489337f9e2eed3f47b04376b0d00f9962a8fe6fa59518a4b5f0c7886aa8416f4e34ba640102a3abc45fe7ce628d1fc5327a4453dd7866a7f16fb45cd9b
+DIST toml_writer-1.1.1+spec-1.1.0.crate 18841 BLAKE2B ff11963c7dd3469bbb9042d10c9f201aa78d4cec5b0aeb3943d17f2a632243f0bf0358989c618b0bb8cd067827f20e06dfbb1ba54a0d55e1ed1cf45f3c2c2567 SHA512 f8114a147e81c99b7cfff81c9c337b04d27199259cfa853ff1df4f56fd65d7a2d845d90e21ec51c36069b11f7e4b7a6fbcc69a9594954ec032c75998b2480697
+DIST tracing-0.1.44.crate 463135 BLAKE2B 86054adc3043c73510bdd64973918dbcd4a8295dd007a4356e702d6dc90bca8b0f211df5e934b850d63618057fffa10215fb5d966340162117c110ff3e3e1c98 SHA512 383404a78c9bcb9dee947140082420673688dabc54eff334460222abddfc246b0256996ecb456d5b6325c029fcb2e641c95ff659a08366089b8b79784cb28869
+DIST tracing-attributes-0.1.31.crate 39733 BLAKE2B 5a345c85a36414241fa88bb44cfee5e07b33ad39416be0f05e35e0f17adeb99ef68cd1fcdbb7beed21c1efbeb2020a81a33f33b74c3486aba32bec175b5f9c9f SHA512 6954ce397903cfced12ef495d46885e8320233cb631116b0c35731c89c51d2cf2532c77ed02d9b708375b5555f3580a197dd63ad6899a32c87e34e2da2733bfa
+DIST tracing-core-0.1.36.crate 63967 BLAKE2B ed35889974aeca741414d425c874232c3d0722aea1740a68f1e2c8054b7dfc11d3c19de078a4a88a189d9a00afecf2eb5bb779a5ef0cffabee7fcfdc6387ecbf SHA512 7cecb6c2f1deeb6d23ab466c376e1c1300dd9226301c112deeb2483eea13f7bb514fe57ece707a8c67450245062060872dd4d7be390462008b369ca3dfc57dc6
+DIST tracing-forest-0.3.1.crate 34249 BLAKE2B 26d323b9ffa623f9ad669ee20887b7745cc91c7f5e840dbd31796a64b03c2d428601a1aaa611fe2ad0f4bcf59c6190f005ba7f5d6396df2b14befb8e1f954d5a SHA512 ba0b00dda9343ac66456241255e51448d4f345da10eb5277e48af5805ee429e3dd35d67cef3dd681f3e9ebe5f9ab7ec1d39a736102f3605bea5905cb0294bedf
+DIST tracing-log-0.2.0.crate 17561 BLAKE2B 701bdadd40f1343f3c4901bd8dd188f1dbc0afcdf50807bd0f6df7539635e239b5095696872103125a4d4cfec24af6336fce6f3931363dd5be4f53a09fa584f2 SHA512 0c1f060e8ffb9ff24cee7b85cc2d7d42c69b2f7623a7faecd7422b23b11ae8d5c7691e4635bae76861d444c369d9701ccb147904668023642b223e442e3c8285
+DIST tracing-subscriber-0.3.23.crate 213773 BLAKE2B c47dbb00620dfef7b629f5f39549040ba1a7fdb1e511bd57212234396be248c66baddd5b12cfee49bad8bd9aebe9d4e9dd663df7e4e0230047fc028f9c4decc9 SHA512 9d69512c39fe2a4d9f4e27f373e3c79d2b23dc6a8e10e8388c5bba87d6f80048edd1e70541fb4311b9708d53510a53dfe69f32c1e3e36ea85c6dfaafc2c01f74
+DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST url-2.5.8.crate 86512 BLAKE2B f289265720ff9243a27c371a938abd00e2c458a440e6ffc30cb0fb0ea4aae4a6b82eace80c3655a9dbfdf2c9428a10844cb3fe6299cd8820e86a13e5cb078d8a SHA512 5848b47d63ae9c195fd5f82bd8333c53cb399f383240e84a606c486d3dbb37db4e268b01a147deb8cdf5bc534a4ebc7b11391e73f81dc3ea3ad7254507ac0c6c
+DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST uuid-1.23.0.crate 63006 BLAKE2B 77bcbf3c658f0bb5d09bed862b9a8720110d62094a2bf9065ab8f98e6c458e4213767a9152280bdd71941eae7077036deae56adbcdddc14fdcbbac4cbd030061 SHA512 60e476dcbc407a0447f362ee019abb128c0441503e0adacdcac5685ecc16aa680faa575b25fcce147e9c49bfb5b8fa04964a25c5d7e4e9870e0078bf8f18fabf
+DIST valuable-0.1.1.crate 28679 BLAKE2B 33a68f81cb0448fa737fd7416f2dc1f0e4f171851692e5f759bc375ca8ffbe6eb53912823a59da44228029d379729b669e8213f00928c9b1a182c5d26c0de8bb SHA512 d8a4bffdc8a166d1ee11b87dd91cd68e5c898916b14db7039ad2faaad34f4bfef76f3fc3d17d6e7bf05e495778f7c9d5223fbf45331bd114f93fb6ec950eadbf
+DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49
+DIST wasip2-1.0.2+wasi-0.2.9.crate 129778 BLAKE2B f41afceba3c586d12829d2c59f45198c61ae04a0dfe72d6bad6176a3d38189a097cf633f34accff83d7ccc238a35a833381e98291e5fd37f2f4d6e08138af2c4 SHA512 284571c833a1770fcadd9a70155d8b507e9f7f0590015e1a07ad0512ac0a7f0ca4693ccd1aa1ab27e74ec58cb75f314770b66562a2167cd6b5086a7871527eb1
+DIST wasm-bindgen-0.2.117.crate 61596 BLAKE2B c27f4e8965e4f802521d273ddbadd9fd4fb7582de15bf396f6cd098b53f55ff62cb28dbfa7aed8cdb2f9ef3dd41d5f7e35cd0cac5ae7c6a9e77616cf2039f68f SHA512 7be5118bbd15aeafdbd58af3889e7cd088031d3f1887a0bb5e86e808158dedbdb540f9d513db71adf0874ae93bc6e845ff70f59b98862ee1b76e8ffb53cf1226
+DIST wasm-bindgen-macro-0.2.117.crate 9279 BLAKE2B 74bac5c375fd70c682a3fb7f80e45ec237af990d660e9d6bcff3ec117928edcb522c678abdda02de762ae1f593f8bb0a3a71800d1ed6f0e9383194026d8eb97e SHA512 0b736aa543abf13fc9fe1ff7159c22a3e1d208e11db68b229e807915169572b030640fb942a4f3327db170793d2b84d8268a19adca708dcaec90a2700fd54292
+DIST wasm-bindgen-macro-support-0.2.117.crate 64391 BLAKE2B 8e35a4533f1c2984bb42e09402148eeca3c51a5e9f4312db4996b873c91456a3ca89eb35ac573e1711f46541bdb64c082365c6ba478ca31ac04814d14277cab9 SHA512 812d7c4842127547a0a0ab852036e43f9dfdf9cfce0535824e165d3016485517ee8cd2ce4979cfaee8ed389f8804ea654e72841873e28a1c7266069c72d0b358
+DIST wasm-bindgen-shared-0.2.117.crate 10541 BLAKE2B b8e8bd84ed54f7512d5a96ba7afadbc04e3e1b045a5d11ea39cd66acf7de94d1dbc430313154cd9e84fb0e1c086520a8b0475c797eeea5240a86e159b50d6868 SHA512 74040fad00dc33dd86a5a5bdc6af549b7a31c2c7de6023547af0ae4af09192b48e4d3e11170ffe1fddea7962b7060144139cf13931c217af9e3aa61001593bda
+DIST windows-core-0.62.2.crate 36932 BLAKE2B f291939153338efd768bee7cb3891814a1d46ed5cac1e2ea72a7ac66613842c02e1de89052a53e8b164d1055d9d4a138711929af897486b3a6da02e91aee3103 SHA512 b3b3e95b7ff6df91ebf866f8ec9c5e8f67134a26f1690d286f62fd756ebc5e2c59c583d4fdc213e5aaf6834f2693329f3eccbee83fa0567663cfa7d9d9ca549a
+DIST windows-implement-0.60.2.crate 15325 BLAKE2B 1f4e5b6759224a74f006c3bfb9acd3bb5fb111fdcf6e4f5e838ca10ac200baf48261583386962d357deffbabea4f67f8e257b8ad8b01b5aee6fe67f3822a7c13 SHA512 212fd6c1f25da40f2131b07ce1c0a34c23177c4666bc518e00a9b4f2bd23c1d131bac565fde531c51f21167f9eb1591e381fc6bc44ce952f6945bad6547c1579
+DIST windows-interface-0.59.3.crate 11809 BLAKE2B c3f439e14e85175f12b4403295f063f53d03224ed1842ad3826fb2beb89c2884317105e28d9d9af2000e08b5bf2fd05befa48dcd0325baba168acb19c8341d86 SHA512 6fe54da90ca797a5e1927803febb07d1e2e4db0bdba5a9cd84d823dc9118390c0f988387e8c614949b9f3c3a0fd47743fd0ddec3200f897952c53a57bb34adee
+DIST windows-link-0.2.1.crate 6133 BLAKE2B d1ca714178e6fe12bb3b4caeed9a52a36890989e77ae2dcd6f2d18ae4a21fb8479d304cdff63bb0a5f28acf44eaf104821cff83cd66b3a0406a5f33a800e3641 SHA512 afb0c87beb8914fd9a3e52db6f2f64a840470b9751b66c83892c24cb1c46cda63fb16b1aeafcaa5a1fc7c5ba01da46be63e5227cc108dede8b0bd27785498a6b
+DIST windows-result-0.4.1.crate 13381 BLAKE2B 3960ffb7f15826bd2f8636133412872d7af9c2d89fde07d2183188083e22580ecbef11f423523aa864c0b199a494aabf1d6386d7c7fceeb7ad74575347efbd27 SHA512 a2b7cc53608b8243bf9b19adb75cdc1698b8caf78d939c3afc0c01b1e89f9cb951306cc1673f9b400b926437340681af641ee322f7e761a641ee40e52b21b9f2
+DIST windows-strings-0.5.1.crate 13966 BLAKE2B 9143cfa5a4184bf0aeb62f8c85d0629d7417b74727349cf46f0d1f28d0e255cc218ac5bc39fe1c7f0311c418f23644e84644b8e7833c5b1c8d1f523c3d38d728 SHA512 c1c3e620aeacbbba0159e789cf0a0261e943f626d21392a77ff00d321c867a0a6ea75054f594a63fcc86cb9ba6bb580d96c29e0a8fdffe90e73658aefc3472b2
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.61.2.crate 2517186 BLAKE2B f4eab0b365aa1df8a353d634da5081237bef0f7b69f02ffcaba232a688e59dfe877c47114de64c81e3cbb929c2fea1143ed6bda56ce935e66d871a993ac29106 SHA512 e6c8f61f0724dafca7821ee9b9c07237ccfee69be269be2fa7318eb48b151285ecf63e860aa1fe303639222fe11268e3773f37c2dd79f923029af58c645edb3f
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST winnow-1.0.1.crate 187973 BLAKE2B ef46016b4ba1bcfb12910939e20a433d27713dd543e7a17939888fb3ad1935b8f5fa854cea7bbbf9492a2da7657ec14ffb46edaad99dbcb0dfdaf07348a87f51 SHA512 dcd91121c980b6245ba479632d9f7ff0482a78509c21724c80af95f75ee5a36f7898de6cca637362a32bc385db3432dfa27193b836e0a23acc60bd7d4ad65d6b
+DIST wit-bindgen-0.51.0.crate 68035 BLAKE2B 0cb5e191f866c3782b6a1e822ecbae6e618e08371867462addb027dd5510638e72438d991777877d5754b2932afcb41f2edc1ec1426334a69311905f0f309b6a SHA512 61380c309630ad7f415d467daf1d639ad7a3e8dcd26e5f88aacf0230b52600f150e804821b6a1df9b79cc7fdd4f1d800d043ee7eca770b1947a3cf06f893711e
+DIST writeable-0.6.3.crate 26685 BLAKE2B d3e95d1316e65886df8841f5daf52960e7301beec545a1ed13040bc492617660504deaef808e9e47c5154860cea28c45c8cc7e05cf4ec565bcdc6f42aa8c8c9b SHA512 e3c1c498b7901f6287024ddf47862e0caf7759edde25a219304209a46ca183af15fb5fb33f87b84b2ce0ed531161d8414743bb424a7446d88b2a0c6d034bb87f
+DIST yoke-0.8.2.crate 32790 BLAKE2B 4da3adefbb91fd6a9d715ff0f96e425a07672ec5a607eb365b7a7c1427cccf5764c338a5e709234e1e51df09114ebd01a379633ec121c3da6e9038100ecc364b SHA512 fc4d0a912d531d661dc21000ea50eb18cb96b471f60f0624c644e055337c50523bf0b89d222e759e0e6fda1ae2debc9d87efa26b3427504456e3fd241658bb32
+DIST yoke-derive-0.8.2.crate 15077 BLAKE2B d067fa9c5a9d1978c0a86fa58034b4aaec8815c106aabc4f91d9d1e5c297a03ed287daa35374a2a2c3946e73abb05e159c118014cdb01b9c939f7eae5416bea8 SHA512 ed37289fe2dfcafda13be24b3e4aae1fbbdd6f52c42a1f2d770771f458af0d17b4cbe487941381b4bd692388e9818b45c686bdcd6229918e0f5b6fced1068ca3
+DIST zerofrom-0.1.7.crate 6140 BLAKE2B 3b7b9d9f234d84e3111683652fc0d375939b3bac138a1a0251c31eae5918ba324be4a9bfca251ba1d3e76c482f152a9bdb8a235d3d92d147ec35b65533cdc41e SHA512 e189816b92ca0f51a009b7bd63b07995aa1543ef5e69cf049ffc7f3605cd0ed48cfce958384a5775e233c25004e2289195e8c8ee1a8032f3cfc14a5e4b2cb446
+DIST zerofrom-derive-0.1.7.crate 8853 BLAKE2B 26b8932561c7705850ef88f1816141fadfa2077742cf5bb2eb66042cb657f2b3b76a2855cf49c1bb5a934f4147a29a73144fdcbc435c6ca4ff1a562ef103557d SHA512 22de0ee75a7463e6b263f17d91291d2e2800ae0b5066304b24459b58de8e528e36de77dda149d74abdecd26cab58f0ed34aa603b3361f00976929efdb3371da6
+DIST zeroize-1.8.2.crate 20907 BLAKE2B f9233758bde107e2409b56e936e02f51442ff29dfb2589c0b194edb38645421b4b8e6064208f7548a93836149c425de90c08792288e5cea1ae117911406bcdd5 SHA512 ce1fb97ac69cb0792f2f5820919aaa0a9f71c4b410bd0d0c2343d8415d39e3eec3f948cc2769eaf639c14695a3961fb6cd96ba7a77a15a77924d1a8c16497b81
+DIST zerotrie-0.2.4.crate 83690 BLAKE2B 96f443dd0c9501464031426e6aeae9cee78cb604a2c151da4707c21eb317b55b4a415ab28836213d56613e40c5f0911b68b0ea3dcb9c0546ba64d81f4af5ddf2 SHA512 daaa133ef8916a14ee12af2de5e042086d6817822fe498c49fbadd2c03c5512f0adcd5ada268fa5bf70ae2dd23f14245a0f099a37abe09251478303c069a410d
+DIST zerovec-0.11.6.crate 128583 BLAKE2B 32be3ec333c124894009ff13feadcc6548a93485444eef0d1085a995a55e73a8165e77589b13893a5f6bf585ddad750cf0364e8fa14e00eec239150f14bb0adc SHA512 9a0b22654ce3b76cd5e9bdfbcf8d5344dff4116f37f6e22ee4687677c7fe8a69122a2cc86b0d722ff2040547a810528a5a0d9bb5d8c4ac2d3fa0323dcd18320d
+DIST zerovec-derive-0.11.3.crate 22115 BLAKE2B 4669526abb7a51d35045bf765017f6070e371aa33d06e66870f043401bd118192b53c422794d08ee2cf9c41e2eb8922a80ed0f450bf3c8c5e78d3f437f984ce2 SHA512 1195cf266a28cf1bdc48a02b2b721f24c785b317dc421475818cc0fe616230bbb91468ab2f67981bf6d3ea2b830eca2e10b85502f622ecb06880e4fff376d29f
+DIST zmij-1.0.21.crate 26665 BLAKE2B e958b58e2213ad13185ec6df55d07e6c80169afa56133038fa66cefb4a9f49aa786249a486dc09b2d0a2f74e41c0d0d713135f38a84dff8f6239636a6bf3cadb SHA512 a488f11ec8721ddfe42e61d028a128818551de8fccd69d7824504e4ae2efccdc38f716fa5a10ef4de07a8a087e75e819c4a1e0790817e8539b5db697bde14585
diff --git a/net-nds/ldap-proxy/ldap-proxy-0.1.4.ebuild b/net-nds/ldap-proxy/ldap-proxy-0.1.4.ebuild
new file mode 100644
index 000000000000..5832aab964d4
--- /dev/null
+++ b/net-nds/ldap-proxy/ldap-proxy-0.1.4.ebuild
@@ -0,0 +1,226 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+ allocator-api2@0.2.21
+ android_system_properties@0.1.5
+ anstream@1.0.0
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ autocfg@1.5.0
+ aws-lc-rs@1.16.2
+ aws-lc-sys@0.39.1
+ base64@0.22.1
+ bumpalo@3.20.2
+ bytes@1.11.1
+ cc@1.2.59
+ cfg-if@1.0.4
+ chrono@0.4.44
+ clap@4.6.0
+ clap_builder@4.6.0
+ clap_derive@4.6.0
+ clap_lex@1.1.0
+ cmake@0.1.58
+ colorchoice@1.0.5
+ concread@0.5.10
+ core-foundation-sys@0.8.7
+ crossbeam-epoch@0.9.18
+ crossbeam-queue@0.3.12
+ crossbeam-utils@0.8.21
+ darling@0.23.0
+ darling_core@0.23.0
+ darling_macro@0.23.0
+ deranged@0.5.8
+ displaydoc@0.2.5
+ dunce@1.0.5
+ dyn-clone@1.0.20
+ equivalent@1.0.2
+ errno@0.3.14
+ find-msvc-tools@0.1.9
+ foldhash@0.2.0
+ form_urlencoded@1.2.2
+ fs_extra@1.3.0
+ futures-core@0.3.32
+ futures-macro@0.3.32
+ futures-sink@0.3.32
+ futures-task@0.3.32
+ futures-util@0.3.32
+ getrandom@0.2.17
+ getrandom@0.3.4
+ haproxy-protocol@0.0.4
+ hashbrown@0.12.3
+ hashbrown@0.16.1
+ heck@0.5.0
+ hex@0.4.3
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.65
+ icu_collections@2.2.0
+ icu_locale_core@2.2.0
+ icu_normalizer@2.2.0
+ icu_normalizer_data@2.2.0
+ icu_properties@2.2.0
+ icu_properties_data@2.2.0
+ icu_provider@2.2.0
+ ident_case@1.0.1
+ idna@1.1.0
+ idna_adapter@1.2.1
+ indexmap@1.9.3
+ indexmap@2.13.1
+ is_terminal_polyfill@1.70.2
+ itoa@1.0.18
+ jobserver@0.1.34
+ js-sys@0.3.94
+ lazy_static@1.5.0
+ lber@0.4.2
+ ldap3_proto@0.7.0
+ libc@0.2.184
+ litemap@0.8.2
+ log@0.4.29
+ lru@0.16.3
+ memchr@2.8.0
+ minimal-lexical@0.2.1
+ mio@1.2.0
+ nom@7.1.3
+ nom@8.0.0
+ nu-ansi-term@0.50.3
+ num-conv@0.2.1
+ num-traits@0.2.19
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ peg-macros@0.8.5
+ peg-runtime@0.8.5
+ peg@0.8.5
+ percent-encoding@2.3.2
+ pin-project-lite@0.2.17
+ potential_utf@0.1.5
+ powerfmt@0.2.0
+ proc-macro2@1.0.106
+ quote@1.0.45
+ r-efi@5.3.0
+ ref-cast-impl@1.0.25
+ ref-cast@1.0.25
+ ring@0.17.14
+ rustls-pki-types@1.14.0
+ rustls-webpki@0.103.10
+ rustls@0.23.37
+ rustversion@1.0.22
+ schemars@0.9.0
+ schemars@1.2.1
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ serde_spanned@1.1.1
+ serde_with@3.18.0
+ serde_with_macros@3.18.0
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-registry@1.4.8
+ slab@0.4.12
+ smallvec@1.15.1
+ socket2@0.6.3
+ sptr@0.3.2
+ stable_deref_trait@1.2.1
+ strsim@0.11.1
+ subtle@2.6.1
+ syn@2.0.117
+ synstructure@0.13.2
+ thiserror-impl@2.0.18
+ thiserror@2.0.18
+ thread_local@1.1.9
+ time-core@0.1.8
+ time-macros@0.2.27
+ time@0.3.47
+ tinystr@0.8.3
+ tokio-macros@2.7.0
+ tokio-rustls@0.26.4
+ tokio-util@0.7.18
+ tokio@1.51.0
+ toml@1.1.2+spec-1.1.0
+ toml_datetime@1.1.1+spec-1.1.0
+ toml_parser@1.1.2+spec-1.1.0
+ toml_writer@1.1.1+spec-1.1.0
+ tracing-attributes@0.1.31
+ tracing-core@0.1.36
+ tracing-forest@0.3.1
+ tracing-log@0.2.0
+ tracing-subscriber@0.3.23
+ tracing@0.1.44
+ unicode-ident@1.0.24
+ untrusted@0.9.0
+ url@2.5.8
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ uuid@1.23.0
+ valuable@0.1.1
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.2+wasi-0.2.9
+ wasm-bindgen-macro-support@0.2.117
+ wasm-bindgen-macro@0.2.117
+ wasm-bindgen-shared@0.2.117
+ wasm-bindgen@0.2.117
+ windows-core@0.62.2
+ windows-implement@0.60.2
+ windows-interface@0.59.3
+ windows-link@0.2.1
+ windows-result@0.4.1
+ windows-strings@0.5.1
+ windows-sys@0.52.0
+ windows-sys@0.61.2
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ winnow@1.0.1
+ wit-bindgen@0.51.0
+ writeable@0.6.3
+ yoke-derive@0.8.2
+ yoke@0.8.2
+ zerofrom-derive@0.1.7
+ zerofrom@0.1.7
+ zeroize@1.8.2
+ zerotrie@0.2.4
+ zerovec-derive@0.11.3
+ zerovec@0.11.6
+ zmij@1.0.21
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit cargo
+
+DESCRIPTION="A fast, simple, in-memory caching proxy for ldap"
+HOMEPAGE="https://github.com/kanidm/ldap-proxy"
+SRC_URI="
+ https://github.com/kanidm/ldap-proxy/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MPL-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ README.md
+)
+
+src_install() {
+ cargo_src_install
+
+ dodoc -r "${DOCS[@]}"
+ insinto /etc/ldap-proxy
+ doins config.toml
+}
diff --git a/net-nds/ldap-proxy/metadata.xml b/net-nds/ldap-proxy/metadata.xml
new file mode 100644
index 000000000000..56e379f48d61
--- /dev/null
+++ b/net-nds/ldap-proxy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/ldapvi/Manifest b/net-nds/ldapvi/Manifest
new file mode 100644
index 000000000000..01a179e7e04b
--- /dev/null
+++ b/net-nds/ldapvi/Manifest
@@ -0,0 +1 @@
+DIST ldapvi-1.7_p20101214.tar.bz2 1490491 BLAKE2B 21bb7b6113e89ce848e7a8efcec063dbfe9c32331c1125456a96dc6edc4e09d17245307a041a7d7804fac20bcce5b38677d719fb53d993fb874134bbd4d4df19 SHA512 2d2a744a36364793f406f37ecf6e546914d697457dec37b81544f4979f4c692756b2a1c3ea6fcbaba5e3238b2bf758ab3e0bd9a9a0794c4da734d65286bd5925
diff --git a/net-nds/ldapvi/files/ldapvi-1.7-fix-implicit-function-declarations.patch b/net-nds/ldapvi/files/ldapvi-1.7-fix-implicit-function-declarations.patch
new file mode 100644
index 000000000000..f78bc8c8c199
--- /dev/null
+++ b/net-nds/ldapvi/files/ldapvi-1.7-fix-implicit-function-declarations.patch
@@ -0,0 +1,86 @@
+Date: Sun, 11 Dec 2022 19:05:47 +0100
+Subject: [PATCH] fix implicit function declarations
+
+Clang16 will not allow implicit function declarations by default.
+This patch add the declarations to make this package build with
+Clang16 defaults.
+
+Also patches some -Wreturn-type while at it.
+
+Bug: https://bugs.gentoo.org/882229
+Bug: https://bugs.gentoo.org/740852
+Patch has been sent upstream via mail.
+
+Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de>
+--- a/common.h
++++ b/common.h
+@@ -370,3 +370,5 @@ void finish_sasl_redirection(tsasl_defaults *);
+ tsasl_defaults *sasl_defaults_new(bind_options *bind_options);
+ void sasl_defaults_free(tsasl_defaults *sd);
+ int ldapvi_sasl_interact(LDAP *ld, unsigned flags, void *defaults, void *p);
++
++void fdcp(int fdsrc, int fddst);
+--- a/diff.c
++++ b/diff.c
+@@ -18,6 +18,7 @@
+ #include "common.h"
+ #include "config.h"
+
++char ldap_bv2dn_x (struct berval *bv, LDAPDN *dn, unsigned flags);
+ typedef void (*note_function)(void *, void *, void *);
+
+ static void
+--- a/parse.c
++++ b/parse.c
+@@ -17,6 +17,7 @@
+ */
+ #define _XOPEN_SOURCE
+ #include <unistd.h>
++#include <crypt.h>
+ #include "common.h"
+
+ #define fast_g_string_append_c(gstring, c) \
+--- a/error.c
++++ b/error.c
+@@ -14,6 +14,9 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
++
++#define LDAP_DEPRECATED 1
++
+ #include <dirent.h>
+ #include <errno.h>
+ #include <fcntl.h>
+--- a/port.c
++++ b/port.c
+@@ -35,6 +35,7 @@
+ #if defined(HAVE_OPENSSL)
+ #include <openssl/sha.h>
+ #include <openssl/md5.h>
++#include <openssl/rand.h>
+ #elif defined(HAVE_GNUTLS)
+ #include <gnutls/gnutls.h>
+ #include <gnutls/openssl.h>
+--- a/ldapvi.c
++++ b/ldapvi.c
+@@ -1470,7 +1470,7 @@ copy_sasl_output(FILE *out, char *sasl)
+ int line = 0;
+ int c;
+
+- if (lstat(sasl, &st) == -1) return;
++ if (lstat(sasl, &st) == -1) return -1;
+ if ( !(in = fopen(sasl, "r"))) syserr();
+
+ if (st.st_size > 0) {
+--- a/misc.c
++++ b/misc.c
+@@ -585,7 +585,7 @@ dialog_rebuild(char *up, char *clreos,
+ putp(up);
+ }
+
+-static Keymap
++static void
+ set_meta_keymap(Keymap keymap, Keymap meta_keymap)
+ {
+ if (!meta_keymap)
diff --git a/net-nds/ldapvi/files/ldapvi-1.7-fix-missing-on_exit-musl.patch b/net-nds/ldapvi/files/ldapvi-1.7-fix-missing-on_exit-musl.patch
new file mode 100644
index 000000000000..b883e412d327
--- /dev/null
+++ b/net-nds/ldapvi/files/ldapvi-1.7-fix-missing-on_exit-musl.patch
@@ -0,0 +1,61 @@
+Use internal on_exit function as on_exit is not available on musl libc Bug: https://bugs.gentoo.org/898066
+--- a/common.h
++++ b/common.h
+@@ -372,3 +372,7 @@ void sasl_defaults_free(tsasl_defaults *sd);
+ int ldapvi_sasl_interact(LDAP *ld, unsigned flags, void *defaults, void *p);
+
+ void fdcp(int fdsrc, int fddst);
++
++#ifndef HAVE_ON_EXIT
++int on_exit(void (*function)(int, void *), void *arg);
++#endif
+--- a/ldapvi.c
++++ b/ldapvi.c
+@@ -17,6 +17,7 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
++#include <stdio.h>
+ #include <curses.h>
+ #include <signal.h>
+ #include <term.h>
+--- a/misc.c
++++ b/misc.c
+@@ -15,6 +15,7 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
++#include <stdio.h>
+ #include <curses.h>
+ #include <term.h>
+ #include "common.h"
+--- a/parse.c
++++ b/parse.c
+@@ -18,6 +18,7 @@
+ #define _XOPEN_SOURCE
+ #include <unistd.h>
+ #include <crypt.h>
++#include <stdio.h>
+ #include "common.h"
+
+ #define fast_g_string_append_c(gstring, c) \
+--- a/parseldif.c
++++ b/parseldif.c
+@@ -17,6 +17,7 @@
+ */
+ #define _XOPEN_SOURCE
+ #include <unistd.h>
++#include <stdio.h>
+ #include "common.h"
+
+ #define fast_g_string_append_c(gstring, c) \
+--- a/port.c
++++ b/port.c
+@@ -31,6 +31,7 @@
+ #include <unistd.h>
+
+ #include "config.h"
++#include "common.h"
+
+ #if defined(HAVE_OPENSSL)
+ #include <openssl/sha.h>
diff --git a/net-nds/ldapvi/files/ldapvi-1.7-posix-unlocked.patch b/net-nds/ldapvi/files/ldapvi-1.7-posix-unlocked.patch
new file mode 100644
index 000000000000..167a2ce95b2f
--- /dev/null
+++ b/net-nds/ldapvi/files/ldapvi-1.7-posix-unlocked.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/885885
+--- a/parse.c
++++ b/parse.c
+@@ -15,7 +15,7 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+-#define _XOPEN_SOURCE
++#define _XOPEN_SOURCE 700
+ #include <unistd.h>
+ #include <crypt.h>
+ #include <stdio.h>
+--- a/parseldif.c
++++ b/parseldif.c
+@@ -15,7 +15,7 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+-#define _XOPEN_SOURCE
++#define _XOPEN_SOURCE 700
+ #include <unistd.h>
+ #include <stdio.h>
+ #include "common.h"
diff --git a/net-nds/ldapvi/ldapvi-1.7_p20101214-r7.ebuild b/net-nds/ldapvi/ldapvi-1.7_p20101214-r7.ebuild
new file mode 100644
index 000000000000..6e7ffa9647b4
--- /dev/null
+++ b/net-nds/ldapvi/ldapvi-1.7_p20101214-r7.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Manage LDAP entries with a text editor"
+HOMEPAGE="http://www.lichteblau.com/ldapvi/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+S="${WORKDIR}"/${P}/${PN}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc ~sparc x86"
+IUSE="gnutls sasl"
+
+RDEPEND="
+ dev-libs/popt
+ dev-libs/glib:2
+ sys-libs/readline:=
+ sys-libs/ncurses:=
+ virtual/libcrypt:=
+ gnutls? (
+ net-libs/gnutls:=
+ net-nds/openldap[gnutls]
+ )
+ !gnutls? (
+ dev-libs/openssl:=
+ net-nds/openldap[ssl]
+ )
+ sasl? ( dev-libs/cyrus-sasl:2[ssl] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.7-fix-implicit-function-declarations.patch"
+ "${FILESDIR}/${PN}-1.7-fix-missing-on_exit-musl.patch"
+ "${FILESDIR}/${PN}-1.7-posix-unlocked.patch"
+)
+
+src_prepare() {
+ default
+
+ # bug #459478
+ sed -i \
+ -e '/^AC_SEARCH_LIBS/s:curses ncurses:curses ncurses tinfo:' \
+ configure.in || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --with-libcrypto=$(usex gnutls gnutls openssl)
+}
+
+src_install() {
+ dobin ldapvi
+ doman ldapvi.1
+ dodoc NEWS manual/{bg.png,html.xsl,manual.{css,xml}}
+}
diff --git a/net-nds/ldapvi/metadata.xml b/net-nds/ldapvi/metadata.xml
new file mode 100644
index 000000000000..4219b9a6e76e
--- /dev/null
+++ b/net-nds/ldapvi/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <use>
+ <flag name="gnutls">Use <pkg>net-libs/gnutls</pkg> instead of <pkg>dev-libs/openssl</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/led/Manifest b/net-nds/led/Manifest
new file mode 100644
index 000000000000..222a5fb039e6
--- /dev/null
+++ b/net-nds/led/Manifest
@@ -0,0 +1 @@
+DIST led-1.111.tar.gz 30636 BLAKE2B 54169c602b7b1feeff4fac4999d8c25ec56107234ddb62f9c6bcac2faed0c4f3bdba27ff666b2385d14bff8bdd01521ef3a981e77148af422ef73893bd985dc9 SHA512 e5078cbed72e406846f50be13fa2e475549b5e0f22eee8da19fca1bb097bc155ee38d289f3f1f89e47d4efae6d9d67eda8bec8a2dd9b90f52020dcd6ea2945e5
diff --git a/net-nds/led/led-1.111.ebuild b/net-nds/led/led-1.111.ebuild
new file mode 100644
index 000000000000..e6129d00d428
--- /dev/null
+++ b/net-nds/led/led-1.111.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="A general purpose LDAP editor"
+HOMEPAGE="http://led.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND=">=dev-lang/perl-5.6.1
+ dev-perl/perl-ldap
+ dev-perl/URI
+ virtual/perl-Digest-MD5
+ dev-perl/Authen-SASL"
+DEPEND=${RDEPEND}
+
+src_configure() {
+ # non-standard configure system!
+ perl Configure --prefix=/usr --generic --rfc2307 --shadow --iplanet || die
+}
+
+src_compile() {
+ # parallel make bad
+ emake -j1
+}
+
+src_install() {
+ dobin ldapcat led
+ dodoc INSTALL README README.ldapcat TODO
+}
diff --git a/net-nds/led/metadata.xml b/net-nds/led/metadata.xml
new file mode 100644
index 000000000000..8772a74e80f9
--- /dev/null
+++ b/net-nds/led/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/metadata.xml b/net-nds/metadata.xml
new file mode 100644
index 000000000000..7d6af5ba3871
--- /dev/null
+++ b/net-nds/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ The net-nds category contains NDS (NetWare Directory Services) software.
+ </longdescription>
+ <longdescription lang="de">
+ Die Kategorie net-nds enthält Software für die NetWare Directory Services (NDS).
+ </longdescription>
+ <longdescription lang="es">
+ La categoría net-nds contiene programas NDS (NetWare Directory
+ Services).
+ </longdescription>
+ <longdescription lang="ja">
+ net-ndsカテゴリーにはNetWare・ディレクトリ・サービスの
+ ソフトウェアが含まれています。
+ </longdescription>
+ <longdescription lang="nl">
+ De net-nds categorie bevat applicaties voor NDS (NetWare Directory Service).
+ </longdescription>
+ <longdescription lang="vi">
+ Nhóm net-nds chứa phần mềm NDS (NetWare Directory Services).
+ </longdescription>
+ <longdescription lang="it">
+ La categoria net-nds contiene programmi NDS (NetWare Directory
+ Services).
+ </longdescription>
+ <longdescription lang="pt">
+ A categoria net-nds contém programas de NDS (NetWare Directory
+ Services).
+ </longdescription>
+ <longdescription lang="pl">
+ Kategoria net-nds zawiera oprogramowanie NDS (NetWare Directory Services).
+ </longdescription>
+</catmetadata>
diff --git a/net-nds/openldap/Manifest b/net-nds/openldap/Manifest
new file mode 100644
index 000000000000..b24b1d07becd
--- /dev/null
+++ b/net-nds/openldap/Manifest
@@ -0,0 +1,10 @@
+DIST openldap-2.5.19.tgz 6458108 BLAKE2B f1cea685c6bc7691cb77b2a12be74b56d479bb152d4c97e87d2e0de8767d33a277557c3ca291928abb0b62d986fcd474969c9618fa499dd9202cdaac39b3b3ce SHA512 12838fd5ac93b18fabda14e8f55c59d1bba169a114c59ac81e621f09f407d87e8ef9244aae951d984b8c8971f4c907c385e57ead671ea0a434282f7d616358b9
+DIST openldap-2.5.19.tgz.asc 833 BLAKE2B 3d56134d65de1ae7a2e4e7d4c44d5fd166fdca136f8580897fedb26dc195b0730dbb7502a6cbe1b8991857a725bedb0398e703d933166459b39d16265c143ff8 SHA512 d322a61f1872062f5594091455bd0d2ecbe1741db5852d4ee5c9c77b162c5ee0750de33dc56cd87b4bdbcc954121cebf2dd39eeedd9bdcc9b39821e44ceeff09
+DIST openldap-2.5.20.tgz 6462390 BLAKE2B 87d4adfdbb6e4c16024ef3fe0a6f0a74e0381005a75c71cad9a1ab6e71740773a901304bf5a2265a68c020a3cbb9f925c26301701321640590996a429ee47ad5 SHA512 fb96682f8981aa9c5b234f71cd5d48c218aedd8d1301d8c9cef729b36029391b477b551fb129977aeeaffa006ca67f7af30d7614b26dbac8033367880023e3a9
+DIST openldap-2.5.20.tgz.asc 833 BLAKE2B b225091950a5c49768dced11b45750e6e70d69c62443824d16e8e0c4eaf8321e467863cc146fe00f9e0954aeb891f9277acd81d8ea36757d654b823e269d8893 SHA512 5954ed2e200172807c4cd6d9bba7194284bb057d847d9698cf6adf4cb5745c398284d9eadf75347b6e321903fd3cf4cbba362b8686f823b67e367f860bac8be8
+DIST openldap-2.6.12.tgz 6524579 BLAKE2B e1ba63a73276728bea66d14c872f59a4e8d0187d057ee28765a3fd51f4f1f4e9c739da689131fdebe049b188bc134f17dfc51289710886163f75b19e76c35cce SHA512 951b510393433114939f386d43e202a62803724f395e4e400a556ca451f90ff1e179fe580b3db51f275859257b32814e66a13145d46f68bded4ff61c1fa37f36
+DIST openldap-2.6.12.tgz.asc 833 BLAKE2B 94ec571c15574c480348a2c845fdf3f99de4f6916b3cc8d262add1246674e079587c8e9307bfd2fc69cbb611e81762e49a693a31af715c9cc1440c7167ec206d SHA512 7bd45db97615a39982b7eff61b08e7f643b87d9d729c6dd001d01d179abee191223557b53b1ec7af57caab2dab13482da4b85c72814bb065f3bb3db49a6b669f
+DIST openldap-2.6.13.tgz 6525768 BLAKE2B 056579a32ffa082aafc988ba74d9be52eab06ccd67c40bf7c2e14690d6d82fe43596e6bc0caf580f4d326b0b6654c3090d0560f81ba0f5399ccb205c9be67aaa SHA512 a64b222bee2e8693e534f64eeb7afcd1f0c7a4b9ae2288ce2c53be9b532902fac3a1e3318c82545cf30c7f982a68b5167ee8baba1f4be5c1a72abdb7c75ac80b
+DIST openldap-2.6.13.tgz.asc 833 BLAKE2B 61a3baca03509b3d66efdba2467604c696188e8d5ba4a59a9c84b21dc7850592e92ec0a518ca4118b7ce991f02b595b486ca3fb63adf6063238ded24a8662417 SHA512 8ad1ecfbcbfec001579d4dd50fbbceb2d4af61600b1805c33e79def562c434a1fed59cb3e30cf8886fb193d9a688122961689378a67420a3f3f54c4549b5d7f2
+DIST openldap-OPENLDAP_REL_ENG_2_6_8.tar.bz2 5065637 BLAKE2B d55345c11bd8892a594c3f7114cd1368e017c2e29997da7a80bdd915308d498f62dfb5cc3a3360b50df78ef5f90a48a566a8ce3ace85ebf9aa6b288a37c4eff2 SHA512 556d1377afc73a84ee325c4d7bcc8446def936b67d3f07df4bd2a243ff30f268c5c0c298977482df1e1a86b2b7a0cd7846fc1f51d706748d39f67f5d621ccc04
+DIST rfc2307bis.schema-20140524 12262 BLAKE2B 98031f49e9bde1e4821e637af3382364d8344ed7017649686a088070d96a632dffa6c661552352656b1b159c0fd962965580069a64c7f3d5bb6a3ed75f60fd99 SHA512 83b89a1deeefc8566b97e7e865b9b6d04541099cbdf719e24538a7d27d61b6209e87ab9003a9f140bd9afd018ec569e71721e3a24090e1902c8b6659d2ba103e
diff --git a/net-nds/openldap/files/DB_CONFIG.fast.example b/net-nds/openldap/files/DB_CONFIG.fast.example
new file mode 100644
index 000000000000..8b52062c9c22
--- /dev/null
+++ b/net-nds/openldap/files/DB_CONFIG.fast.example
@@ -0,0 +1,25 @@
+# $OpenLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.1 2004/06/18 02:49:08 kurt Exp $
+# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
+#
+# See Sleepycat Berkeley DB documentation
+# <http://www.sleepycat.com/docs/ref/env/db_config.html>
+# for detail description of DB_CONFIG syntax and semantics.
+#
+# Hints can also be found in the OpenLDAP Software FAQ
+# <http://www.openldap.org/faq/index.cgi?file=2>
+
+# one 0.25 GB cache
+set_cachesize 0 16777216 0
+
+# Data Directory
+#set_data_dir db
+
+# Transaction Log settings
+set_lg_regionmax 262144
+set_lg_bsize 524288
+#set_lg_dir logs
+
+# When using (and only when using) slapadd(8) or slapindex(8),
+# the following flags may be useful:
+#set_flags DB_TXN_NOSYNC
+#set_flags DB_TXN_NOT_DURABLE
diff --git a/net-nds/openldap/files/openldap-2.4.28-fix-dash.patch b/net-nds/openldap/files/openldap-2.4.28-fix-dash.patch
new file mode 100644
index 000000000000..bca213dbc6ce
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.4.28-fix-dash.patch
@@ -0,0 +1,24 @@
+Our libtool needs bash to work properly.
+Patch unbreaks build when /bin/sh points to dash:
+
+ Entering subdirectory liblber
+ /bin/sh ../../libtool --mode=compile x86_64-pc-linux-gnu-gcc -O0 -D_GNU_SOURCE -I../../include -I../../include -I/usr/include/db4.8 -DLDAP_CONNECTIONLESS -DLBER_LIBRARY -c assert.c
+ ../../build/mkversion -v "2.4.28" liblber.la > version.c
+ /bin/sh ../../libtool --mode=compile x86_64-pc-linux-gnu-gcc -O0 -D_GNU_SOURCE -I../../include -I../../include -I/usr/include/db4.8 -DLDAP_CONNECTIONLESS -DLBER_LIBRARY -c decode.c
+ eval: 1: base_compile+= x86_64-pc-linux-gnu-gcc: not found
+ eval: 1: base_compile+= -O0: not found
+ eval: 1: base_compile+= -D_GNU_SOURCE: not found
+ eval: 1: base_compile+= x86_64-pc-linux-gnu-gcc: not found
+ ...
+ make[2]: *** [decode.lo] Error 1
+--- a/build/top.mk
++++ b/build/top.mk
+@@ -20,7 +20,7 @@ VERSION= @VERSION@
+ RELEASEDATE= @OPENLDAP_RELEASE_DATE@
+
+ @SET_MAKE@
+-SHELL = /bin/sh
++SHELL = @SHELL@
+
+ top_builddir = @top_builddir@
+
diff --git a/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch b/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
new file mode 100644
index 000000000000..8f369d3b22a4
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/938581#c5
+--- a/servers/slapd/back-sql/sql-wrap.c
++++ b/servers/slapd/back-sql/sql-wrap.c
+@@ -37,7 +37,7 @@ backsql_PrintErrors( SQLHENV henv, SQLHD
+ {
+ SQLCHAR msg[SQL_MAX_MESSAGE_LENGTH]; /* msg. buffer */
+ SQLCHAR state[SQL_SQLSTATE_SIZE]; /* statement buf. */
+- SDWORD iSqlCode; /* return code */
++ SQLINTEGER iSqlCode; /* return code */
+ SWORD len = SQL_MAX_MESSAGE_LENGTH - 1; /* return length */
+
+ Debug( LDAP_DEBUG_TRACE, "Return code: %d\n", rc );
diff --git a/net-nds/openldap/files/openldap-2.6.1-cloak.patch b/net-nds/openldap/files/openldap-2.6.1-cloak.patch
new file mode 100644
index 000000000000..e023a14e4940
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.1-cloak.patch
@@ -0,0 +1,21 @@
+--- a/contrib/slapd-modules/cloak/cloak.c
++++ b/contrib/slapd-modules/cloak/cloak.c
+@@ -29,6 +29,7 @@
+ #include "ac/socket.h"
+
+ #include "lutil.h"
++#include "attr.h"
+ #include "slap.h"
+ #include "slap-config.h"
+
+--- a/servers/slapd/attr.h
++++ b/servers/slapd/attr.h
+@@ -0,0 +1,8 @@
++#ifndef OPENLDAP_SERVERS_SLAPD_ATTR_H_
++#define OPENLDAP_SERVERS_SLAPD_ATTR_H_
++
++#endif //OPENLDAP_SERVERS_SLAPD_ATTR_H_
++
++#include "slap.h"
++
++void attr_clean( Attribute *a );
diff --git a/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.v2.patch b/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.v2.patch
new file mode 100644
index 000000000000..d12ee12cfcca
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.1-fix-missing-mapping.v2.patch
@@ -0,0 +1,53 @@
+Fix of lber.mao & ldap.map from Fedora with URL below:
+ https://src.fedoraproject.org/rpms/openldap/raw/rawhide/f/openldap-add-export-symbols-LDAP_CONNECTIONLESS.patch
+
+ From 6779e56fafb0aa8ae5efa7068da34a630b51b530 Mon Sep 17 00:00:00 2001
+ From: Simon Pichugin <spichugi@redhat.com>
+ Date: Fri, 5 Aug 2022 13:23:52 -0700
+ Subject: [PATCH] Add export symbols related to LDAP_CONNECTIONLESS
+
+Upstream Issue: https://bugs.openldap.org/show_bug.cgi?id=9739
+
+But above patch is not complete, 'ber_sockbuf_io_udp' is part of an unsupported
+feature (cldap or ldap over udp), only built when the unsupported
+LDAP_CONNECTIONLESS flag is defined. All the user of 'ber_sockbuf_io_udp'
+are included by #ifdef, so it make no sense to not include it too.
+
+diff --git a/include/lber.h b/include/lber.h
+index 530359dc92..fd4957ddcd 100644
+--- a/include/lber.h
++++ b/include/lber.h
+@@ -590,7 +590,9 @@ LBER_V( Sockbuf_IO ) ber_sockbuf_io_tcp;
+ LBER_V( Sockbuf_IO ) ber_sockbuf_io_readahead;
+ LBER_V( Sockbuf_IO ) ber_sockbuf_io_fd;
+ LBER_V( Sockbuf_IO ) ber_sockbuf_io_debug;
++#ifdef LDAP_CONNECTIONLESS
+ LBER_V( Sockbuf_IO ) ber_sockbuf_io_udp;
++#endif
+
+ /*
+ * LBER memory.c
+diff --git a/libraries/liblber/lber.map b/libraries/liblber/lber.map
+index 9a4094b0fe..083cd1f322 100644
+--- a/libraries/liblber/lber.map
++++ b/libraries/liblber/lber.map
+@@ -121,6 +121,7 @@ OPENLDAP_2.200
+ ber_sockbuf_io_fd;
+ ber_sockbuf_io_readahead;
+ ber_sockbuf_io_tcp;
++ ber_sockbuf_io_udp;
+ ber_sockbuf_remove_io;
+ ber_sos_dump;
+ ber_start;
+diff --git a/libraries/libldap/ldap.map b/libraries/libldap/ldap.map
+index b28c9c21e7..021aaba63c 100644
+--- a/libraries/libldap/ldap.map
++++ b/libraries/libldap/ldap.map
+@@ -200,6 +200,7 @@ OPENLDAP_2.200
+ ldap_is_ldap_url;
+ ldap_is_ldapi_url;
+ ldap_is_ldaps_url;
++ ldap_is_ldapc_url;
+ ldap_is_read_ready;
+ ldap_is_write_ready;
+ ldap_ld_free;
diff --git a/net-nds/openldap/files/openldap-2.6.1-flags.patch b/net-nds/openldap/files/openldap-2.6.1-flags.patch
new file mode 100644
index 000000000000..39ceeecb1742
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.1-flags.patch
@@ -0,0 +1,352 @@
+--- a/contrib/slapd-modules/acl/Makefile
++++ b/contrib/slapd-modules/acl/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/addpartial/Makefile
++++ b/contrib/slapd-modules/addpartial/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/adremap/Makefile
++++ b/contrib/slapd-modules/adremap/Makefile
+@@ -19,7 +19,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_ADREMAP=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/allop/Makefile
++++ b/contrib/slapd-modules/allop/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/allowed/Makefile
++++ b/contrib/slapd-modules/allowed/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_ALLOWED=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/authzid/Makefile
++++ b/contrib/slapd-modules/authzid/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/autogroup/Makefile
++++ b/contrib/slapd-modules/autogroup/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/cloak/Makefile
++++ b/contrib/slapd-modules/cloak/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_CLOAK=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/comp_match/Makefile
++++ b/contrib/slapd-modules/comp_match/Makefile
+@@ -31,7 +31,7 @@ SSL_LIB = -lcrypto -L$(SSL_DIR)/lib
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DLDAP_COMPONENT
+ INCS = $(LDAP_INC) $(SNACC_INC) $(SSL_INC)
+ LIBS = $(LDAP_LIB) $(SNACC_LIB) $(SSL_LIB)
+--- a/contrib/slapd-modules/datamorph/Makefile
++++ b/contrib/slapd-modules/datamorph/Makefile
+@@ -22,7 +22,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_DATAMORPH=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/denyop/Makefile
++++ b/contrib/slapd-modules/denyop/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_DENYOP=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/dsaschema/Makefile
++++ b/contrib/slapd-modules/dsaschema/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/dupent/Makefile
++++ b/contrib/slapd-modules/dupent/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_DUPENT=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/kinit/Makefile
++++ b/contrib/slapd-modules/kinit/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB) -lkrb5
+--- a/contrib/slapd-modules/lastbind/Makefile
++++ b/contrib/slapd-modules/lastbind/Makefile
+@@ -19,7 +19,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_LASTBIND=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/lastmod/Makefile
++++ b/contrib/slapd-modules/lastmod/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_LASTMOD=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/noopsrch/Makefile
++++ b/contrib/slapd-modules/noopsrch/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2 -Wall
++OPT = -Wall -Wall
+ DEFS = -DSLAPD_OVER_NOOPSRCH=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/nops/Makefile
++++ b/contrib/slapd-modules/nops/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_NOPS=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/nssov/Makefile
++++ b/contrib/slapd-modules/nssov/Makefile
+@@ -27,7 +27,7 @@ NLDAPD_INC=-Inss-pam-ldapd
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+-OPT = -g -O2
++OPT = -Wall
+ CC = gcc
+ DEFS =
+ INCS = $(LDAP_INC) $(NLDAPD_INC)
+--- a/contrib/slapd-modules/passwd/Makefile
++++ b/contrib/slapd-modules/passwd/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/passwd/pbkdf2/Makefile
++++ b/contrib/slapd-modules/passwd/pbkdf2/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ #DEFS = -DSLAPD_PBKDF2_DEBUG
+
+ SSL_INC =
+--- a/contrib/slapd-modules/passwd/sha2/Makefile
++++ b/contrib/slapd-modules/passwd/sha2/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ #DEFS = -DSLAPD_SHA2_DEBUG
+ INCS = $(LDAP_INC)
+--- a/contrib/slapd-modules/passwd/totp/Makefile
++++ b/contrib/slapd-modules/passwd/totp/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/ppm/Makefile
++++ b/contrib/slapd-modules/ppm/Makefile
+@@ -18,7 +18,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/liblber/liblber.la $(LDAP_BUILD)/libraries/li
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2 -fpic
++OPT = -Wall -fpic
+
+ # To skip linking against CRACKLIB make CRACK=no
+ CRACK=yes
+--- a/contrib/slapd-modules/proxyOld/Makefile
++++ b/contrib/slapd-modules/proxyOld/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/rbac/Makefile
++++ b/contrib/slapd-modules/rbac/Makefile
+@@ -9,7 +9,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_RBAC=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/samba4/Makefile
++++ b/contrib/slapd-modules/samba4/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_RDNVAL=SLAPD_MOD_DYNAMIC \
+ -DSLAPD_OVER_PGUID=SLAPD_MOD_DYNAMIC \
+ -DSLAPD_OVER_VERNUM=SLAPD_MOD_DYNAMIC
+--- a/contrib/slapd-modules/smbk5pwd/Makefile
++++ b/contrib/slapd-modules/smbk5pwd/Makefile
+@@ -27,7 +27,7 @@ HEIMDAL_LIB = -L/usr/heimdal/lib -lkrb5 -lkadm5srv
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ # Omit DO_KRB5, DO_SAMBA or DO_SHADOW if you don't want to support it.
+ DEFS = -DDO_KRB5 -DDO_SAMBA -DDO_SHADOW
+ INCS = $(LDAP_INC) $(HEIMDAL_INC) $(SSL_INC)
+--- a/contrib/slapd-modules/trace/Makefile
++++ b/contrib/slapd-modules/trace/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_TRACE=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/usn/Makefile
++++ b/contrib/slapd-modules/usn/Makefile
+@@ -8,7 +8,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_USN=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/variant/Makefile
++++ b/contrib/slapd-modules/variant/Makefile
+@@ -22,7 +22,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ INSTALL = /usr/bin/install
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS = -DSLAPD_OVER_VARIANT=SLAPD_MOD_DYNAMIC
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
+--- a/contrib/slapd-modules/vc/Makefile
++++ b/contrib/slapd-modules/vc/Makefile
+@@ -20,7 +20,7 @@ LDAP_LIB = $(LDAP_BUILD)/libraries/libldap/libldap.la \
+
+ LIBTOOL = $(LDAP_BUILD)/libtool
+ CC = gcc
+-OPT = -g -O2
++OPT = -Wall
+ DEFS =
+ INCS = $(LDAP_INC)
+ LIBS = $(LDAP_LIB)
diff --git a/net-nds/openldap/files/openldap-2.6.1-system-mdb.patch b/net-nds/openldap/files/openldap-2.6.1-system-mdb.patch
new file mode 100644
index 000000000000..e29ba0be964a
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.1-system-mdb.patch
@@ -0,0 +1,140 @@
+--- a/build/openldap.m4
++++ b/build/openldap.m4
+@@ -243,6 +243,40 @@ OL_RESOLVER_TRY(ol_cv_resolver_none)
+ OL_RESOLVER_TRY(ol_cv_resolver_resolv,[-lresolv])
+ OL_RESOLVER_TRY(ol_cv_resolver_bind,[-lbind])
+ ])
++
++dnl --------------------------------------------------------------------
++dnl Check for version compatility with back-mdb
++AC_DEFUN([OL_MDB_COMPAT],
++[AC_CACHE_CHECK([if LMDB version supported by MDB backends], [ol_cv_mdb_compat],[
++ AC_EGREP_CPP(__mdb_version_compat,[
++#include <lmdb.h>
++
++/* require 0.9.18 or later */
++#if MDB_VERSION_FULL >= 0x000000090012
++ __mdb_version_compat
++#endif
++ ], [ol_cv_mdb_compat=yes], [ol_cv_mdb_compat=no])])
++])
++
++dnl
++dnl --------------------------------------------------------------------
++dnl Find any MDB
++AC_DEFUN([OL_MDB],
++[ol_cv_mdb=no
++AC_CHECK_HEADERS(lmdb.h)
++if test $ac_cv_header_lmdb_h = yes; then
++ OL_MDB_COMPAT
++
++ if test $ol_cv_mdb_compat != yes ; then
++ AC_MSG_ERROR([LMDB version incompatible with MDB backends])
++ fi
++
++ ol_cv_lib_mdb=-llmdb
++ ol_cv_mdb=yes
++fi
++])
++
++
+ dnl
+ dnl ====================================================================
+ dnl Check POSIX Thread version
+--- a/build/top.mk
++++ b/build/top.mk
+@@ -164,6 +164,7 @@ CLIENT_LIBS = @CLIENT_LIBS@
+ LUTIL_LIBS = @LUTIL_LIBS@
+ LTHREAD_LIBS = @LTHREAD_LIBS@
+
++MDB_LIBS = @MDB_LIBS@
+ SLAPD_NDB_LIBS = @SLAPD_NDB_LIBS@
+ WT_LIBS = @WT_LIBS@
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -547,6 +547,7 @@ AC_MSG_RESULT(done)
+ dnl ----------------------------------------------------------------
+ dnl Initialize vars
+ LDAP_LIBS=
++MDB_LIBS=
+ SLAPD_NDB_LIBS=
+ SLAPD_NDB_INCS=
+ LTHREAD_LIBS=
+@@ -646,6 +647,32 @@ dnl Checks for programs
+
+ AC_DEFINE(HAVE_MKVERSION, 1, [define this if you have mkversion])
+
++dnl ----------------------------------------------------------------
++ol_link_mdb=no
++
++AS_IF([test x$ol_enable_mdb != xno], [
++ OL_MDB
++
++ if test $ol_cv_mdb = no ; then
++ AC_MSG_ERROR(MDB: LMDB not available)
++ fi
++
++ AC_DEFINE(HAVE_MDB,1,
++ [define this if LMDB is available])
++
++ dnl $ol_cv_lib_mdb should be yes or -llmdb
++ dnl (it could be no, but that would be an error
++ if test $ol_cv_lib_mdb != yes ; then
++ MDB_LIBS="$MDB_LIBS $ol_cv_lib_mdb"
++ fi
++
++ SLAPD_LIBS="$SLAPD_LIBS \$(MDB_LIBS)"
++
++ ol_link_mdb=yes
++])
++
++dnl ----------------------------------------------------------------
++
+ dnl ----------------------------------------------------------------
+ dnl
+ dnl Determine which C translator to use
+@@ -3150,6 +3177,7 @@ dnl pwmods
+ AC_SUBST(LDAP_LIBS)
+ AC_SUBST(CLIENT_LIBS)
+ AC_SUBST(SLAPD_LIBS)
++AC_SUBST(MDB_LIBS)
+ AC_SUBST(BALANCER_LIBS)
+ AC_SUBST(SLAPD_NDB_LIBS)
+ AC_SUBST(SLAPD_NDB_INCS)
+--- a/servers/slapd/back-mdb/Makefile.in
++++ b/servers/slapd/back-mdb/Makefile.in
+@@ -25,11 +25,10 @@ OBJS = init.lo tools.lo config.lo \
+ extended.lo operational.lo \
+ attr.lo index.lo key.lo filterindex.lo \
+ dn2entry.lo dn2id.lo id2entry.lo idl.lo \
+- nextid.lo monitor.lo mdb.lo midl.lo
++ nextid.lo monitor.lo
+
+ LDAP_INCDIR= ../../../include
+ LDAP_LIBDIR= ../../../libraries
+-MDB_SUBDIR = $(srcdir)/$(LDAP_LIBDIR)/liblmdb
+
+ BUILD_OPT = "--enable-mdb"
+ BUILD_MOD = @BUILD_MDB@
+@@ -44,7 +43,7 @@ UNIX_LINK_LIBS = $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
+
+ LIBBASE = back_mdb
+
+-XINCPATH = -I.. -I$(srcdir)/.. -I$(MDB_SUBDIR)
++XINCPATH = -I.. -I$(srcdir)/..
+ XDEFS = $(MODULES_CPPFLAGS)
+
+ all-local-lib: ../.backend
+@@ -52,11 +51,5 @@ all-local-lib: ../.backend
+ ../.backend: lib$(LIBBASE).a
+ @touch $@
+
+-mdb.lo: $(MDB_SUBDIR)/mdb.c
+- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/mdb.c
+-
+-midl.lo: $(MDB_SUBDIR)/midl.c
+- $(LTCOMPILE_MOD) $(MDB_SUBDIR)/midl.c
+-
+ veryclean-local-lib: FORCE
+ $(RM) $(XXHEADERS) $(XXSRCS) .links
diff --git a/net-nds/openldap/files/openldap-2.6.3-slapd-conf b/net-nds/openldap/files/openldap-2.6.3-slapd-conf
new file mode 100644
index 000000000000..4555c620c281
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.3-slapd-conf
@@ -0,0 +1,64 @@
+#
+# See slapd.conf(5) for details on configuration options.
+# This file should NOT be world readable.
+#
+include /etc/openldap/schema/core.schema
+
+# Define global ACLs to disable default read access.
+
+# Do not enable referrals until AFTER you have a working directory
+# service AND an understanding of referrals.
+#referral ldap://root.openldap.org
+
+pidfile /run/openldap/slapd.pid
+argsfile /run/openldap/slapd.args
+
+# Load dynamic backend modules:
+###INSERTDYNAMICMODULESHERE###
+
+# Sample security restrictions
+# Require integrity protection (prevent hijacking)
+# Require 112-bit (3DES or better) encryption for updates
+# Require 63-bit encryption for simple bind
+# security ssf=1 update_ssf=112 simple_bind=64
+
+# Sample access control policy:
+# Root DSE: allow anyone to read it
+# Subschema (sub)entry DSE: allow anyone to read it
+# Other DSEs:
+# Allow self write access
+# Allow authenticated users read access
+# Allow anonymous users to authenticate
+# Directives needed to implement policy:
+# access to dn.base="" by * read
+# access to dn.base="cn=Subschema" by * read
+# access to *
+# by self write
+# by users read
+# by anonymous auth
+#
+# if no access controls are present, the default policy
+# allows anyone and everyone to read anything but restricts
+# updates to rootdn. (e.g., "access to * by * read")
+#
+# rootdn can always read and write EVERYTHING!
+
+#######################################################################
+# BDB database definitions
+#######################################################################
+
+database mdb
+suffix "dc=my-domain,dc=com"
+# <kbyte> <min>
+checkpoint 32 30
+rootdn "cn=Manager,dc=my-domain,dc=com"
+# Cleartext passwords, especially for the rootdn, should
+# be avoid. See slappasswd(8) and slapd.conf(5) for details.
+# Use of strong authentication encouraged.
+rootpw secret
+# The database directory MUST exist prior to running slapd AND
+# should only be accessible by the slapd and slap tools.
+# Mode 700 recommended.
+directory /var/lib/openldap-data
+# Indices to maintain
+index objectClass eq
diff --git a/net-nds/openldap/files/openldap-2.6.x-gnutls-pointer-error.patch b/net-nds/openldap/files/openldap-2.6.x-gnutls-pointer-error.patch
new file mode 100644
index 000000000000..e6ab4e5a46cb
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.6.x-gnutls-pointer-error.patch
@@ -0,0 +1,40 @@
+From 634017950c1c920d0de63fffa5c52e621de1d603 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 26 Jun 2024 07:41:01 +0000
+Subject: Fix incompatible pointer type error with gcc option
+ -Wincompatible-pointer-types
+
+lib32-openldap do_compile failure with gcc-14:
+| tls_g.c:971:57: error: passing argument 4 of 'gnutls_fingerprint' from incompatible pointer type [-Wincompatible-pointer-types]
+| 971 | keyhash.bv_val, &keyhash.bv_len ) < 0 ) {
+| | ^~~~~~~~~~~~~~~
+| | |
+| | ber_len_t * {aka long unsigned int *}
+| In file included from tls_g.c:44:
+| /usr/include/gnutls/gnutls.h:2406:32: note: expected 'size_t *' {aka 'unsigned int *'} but argument is of type 'ber_len_t *' {aka 'long unsigned int *'}
+| 2406 | size_t *result_size);
+| | ^~~
+
+Upstream-Status: Submitted
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ libraries/libldap/tls_g.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libraries/libldap/tls_g.c b/libraries/libldap/tls_g.c
+index 7c23875..b4b487d 100644
+--- a/libraries/libldap/tls_g.c
++++ b/libraries/libldap/tls_g.c
+@@ -968,7 +968,7 @@ tlsg_session_pinning( LDAP *ld, tls_session *sess, char *hashalg, struct berval
+ keyhash.bv_len = gnutls_hash_get_len( alg );
+ keyhash.bv_val = LDAP_MALLOC( keyhash.bv_len );
+ if ( !keyhash.bv_val || gnutls_fingerprint( alg, &key,
+- keyhash.bv_val, &keyhash.bv_len ) < 0 ) {
++ keyhash.bv_val, (size_t *)&keyhash.bv_len ) < 0 ) {
+ goto done;
+ }
+ } else {
+--
+2.34.1
+
diff --git a/net-nds/openldap/files/slapd-2.6.1.service b/net-nds/openldap/files/slapd-2.6.1.service
new file mode 100644
index 000000000000..ff571d25556a
--- /dev/null
+++ b/net-nds/openldap/files/slapd-2.6.1.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenLDAP Server Daemon
+After=network.target
+
+[Service]
+Type=notify
+PIDFile=/run/openldap/slapd.pid
+ExecStartPre=/usr/sbin/slaptest -Q -u $SLAPD_OPTIONS
+ExecStart=/usr/lib/openldap/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
+NotifyAccess=all
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-nds/openldap/files/slapd-confd-2.6.1 b/net-nds/openldap/files/slapd-confd-2.6.1
new file mode 100644
index 000000000000..9e7babbaaac1
--- /dev/null
+++ b/net-nds/openldap/files/slapd-confd-2.6.1
@@ -0,0 +1,26 @@
+# conf.d file for openldap
+#
+# To enable both the standard unciphered server and the ssl encrypted
+# one uncomment this line or set any other server starting options
+# you may desire.
+
+# If you have multiple slapd instances per #376699, this will provide a default config
+INSTANCE="openldap${SVCNAME#slapd}"
+
+# If you use the classical configuration file:
+OPTS_CONF="-f /etc/${INSTANCE}/slapd.conf"
+# Uncomment this instead to use the new slapd.d configuration directory for openldap 2.3
+#OPTS_CONF="-F /etc/${INSTANCE}/slapd.d"
+# (the OPTS_CONF variable is also passed to slaptest during startup)
+
+OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2frun%2fopenldap%2fslapd.sock'"
+# Optional connectionless LDAP:
+#OPTS="${OPTS_CONF} -h 'ldaps:// ldap:// ldapi://%2frun%2fopenldap%2fslapd.sock cldap://'"
+
+# If you change the above listen statement to bind on a specific IP for
+# listening, you should ensure that interface is up here (change eth0 as
+# needed).
+#rc_need="net.eth0"
+
+# Specify the kerberos keytab file
+#KRB5_KTNAME=/etc/openldap/krb5-ldap.keytab
diff --git a/net-nds/openldap/files/slapd-initd-2.4.40-r2 b/net-nds/openldap/files/slapd-initd-2.4.40-r2
new file mode 100644
index 000000000000..bf408e3d6ecd
--- /dev/null
+++ b/net-nds/openldap/files/slapd-initd-2.4.40-r2
@@ -0,0 +1,64 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="checkconfig"
+
+[ -z "$INSTANCE" ] && INSTANCE="openldap${SVCNAME#slapd}"
+PIDDIR=/run/openldap
+PIDFILE=$PIDDIR/$SVCNAME.pid
+
+depend() {
+ need net
+ before dbus hald avahi-daemon
+ provide ldap
+}
+
+start() {
+ checkpath -q -d ${PIDDIR} -o ldap:ldap
+ if ! checkconfig -Q ; then
+ eerror "There is a problem with your slapd.conf!"
+ return 1
+ fi
+ ebegin "Starting ldap-server"
+ [ -n "$KRB5_KTNAME" ] && export KRB5_KTNAME
+ eval start-stop-daemon --start --pidfile ${PIDFILE} --exec /usr/lib/openldap/slapd -- -u ldap -g ldap "${OPTS}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ldap-server"
+ start-stop-daemon --stop --signal 2 --quiet --pidfile ${PIDFILE}
+ eend $?
+}
+
+checkconfig() {
+ # checks requested by bug #502948
+ # Step 1: extract the last valid config file or config dir
+ set -- $OPTS
+ while [ -n "$*" ]; do
+ opt=$1 ; shift
+ if [ "$opt" = "-f" -o "$opt" = "-F" ] ; then
+ CONF=$1
+ shift
+ fi
+ done
+ set --
+ # Fallback
+ CONF=${CONF-/etc/openldap/slapd.conf}
+ [ -d $CONF ] && CONF=${CONF}/*
+ DBDIRS=`eval awk '"/^(directory|olcDbDirectory:)/{print \\$2}"' $CONF`
+ for d in $DBDIRS; do
+ if [ ! -d $d ]; then
+ eerror "Directory $d in config does not exist!"
+ return 1
+ fi
+ /usr/bin/find $d ! -name DB_CONFIG ! -user ldap -o ! -group ldap |grep -sq .
+ if [ $? -ne 0 ]; then
+ ewarn "You have files in $d not owned by the ldap user, you must ensure they are accessible to the slapd instance!"
+ fi
+ [ ! -e $d/DB_CONFIG ] && ewarn "$d/DB_CONFIG does not exist, slapd performance may be sub-optimal"
+ done
+ # now test the config fully
+ /usr/sbin/slaptest -u "$@" ${OPTS_CONF}
+}
diff --git a/net-nds/openldap/files/slapd.service b/net-nds/openldap/files/slapd.service
new file mode 100644
index 000000000000..3427b87e936e
--- /dev/null
+++ b/net-nds/openldap/files/slapd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenLDAP Server Daemon
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/openldap/slapd.pid
+ExecStartPre=/usr/sbin/slaptest -Q -u $SLAPD_OPTIONS
+ExecStart=/usr/lib/openldap/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-nds/openldap/files/slapd.service.conf b/net-nds/openldap/files/slapd.service.conf
new file mode 100644
index 000000000000..812ea68ed475
--- /dev/null
+++ b/net-nds/openldap/files/slapd.service.conf
@@ -0,0 +1,12 @@
+[Service]
+# Use the classical configuration file:
+#Environment="SLAPD_OPTIONS=-f /etc/openldap/slapd.conf"
+# Use the slapd configuration directory:
+#Environment="SLAPD_OPTIONS=-F /etc/openldap/slapd.d"
+
+Environment="SLAPD_URLS=ldaps:/// ldap:/// ldapi:///"
+# Other examples:
+#Environment="SLAPD_URLS=ldap://127.0.0.1/ ldap://10.0.0.1:1389/ cldap:///"
+
+# Specify the kerberos keytab file
+#Environment=KRB5_KTNAME=/etc/openldap/krb5-ldap.keytab
diff --git a/net-nds/openldap/files/slapd.tmpfilesd b/net-nds/openldap/files/slapd.tmpfilesd
new file mode 100644
index 000000000000..634cea1642a9
--- /dev/null
+++ b/net-nds/openldap/files/slapd.tmpfilesd
@@ -0,0 +1,2 @@
+# openldap runtime directory for slapd.arg and slapd.pid
+d /run/openldap 0755 ldap ldap -
diff --git a/net-nds/openldap/metadata.xml b/net-nds/openldap/metadata.xml
new file mode 100644
index 000000000000..40bc6e977afc
--- /dev/null
+++ b/net-nds/openldap/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ldap-bugs@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="argon2">Enable password hashing algorithm from <pkg>app-crypt/argon2</pkg>
+ </flag>
+ <flag name="autoca">Automatic Certificate Authority overlay</flag>
+ <flag name="cleartext">Enable use of cleartext passwords</flag>
+ <flag name="experimental">Enable experimental backend options</flag>
+ <flag name="kinit">Enable support for kerberos init</flag>
+ <flag name="minimal">Build libraries &amp; userspace tools only. Does not install any server code</flag>
+ <flag name="odbc">Enable ODBC and SQL backend options</flag>
+ <flag name="overlays">Enable contributed OpenLDAP overlays</flag>
+ <flag name="pbkdf2">Enable support for pbkdf2 passwords</flag>
+ <flag name="sha2">Enable support for pw-sha2 password hashes</flag>
+ <flag name="smbkrb5passwd">Enable overlay for syncing ldap, unix and lanman passwords</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://bugs.openldap.org/</bugs-to>
+ <remote-id type="cpe">cpe:/a:openldap:openldap</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/openldap/openldap-2.5.19.ebuild b/net-nds/openldap/openldap-2.5.19.ebuild
new file mode 100644
index 000000000000..c787455a6686
--- /dev/null
+++ b/net-nds/openldap/openldap-2.5.19.ebuild
@@ -0,0 +1,889 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Re cleanups:
+# 2.5.x is an LTS release so we want to keep it for a while.
+
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
+
+MY_PV="$(ver_rs 1-2 _)"
+
+BIS_PN=rfc2307bis.schema
+BIS_PV=20140524
+BIS_P="${BIS_PN}-${BIS_PV}"
+
+DESCRIPTION="LDAP suite of application and development tools"
+HOMEPAGE="https://www.openldap.org/"
+SRC_URI="
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
+ mirror://gentoo/${BIS_P}
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
+"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
+
+LICENSE="OPENLDAP GPL-2"
+# Subslot added for bug #835654
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+
+IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
+IUSE_OVERLAY="overlays perl autoca"
+IUSE_OPTIONAL="debug gnutls iodbc ipv6 odbc sasl ssl selinux static-libs +syslog test"
+IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
+IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
+IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
+REQUIRED_USE="
+ cxx? ( sasl )
+ pbkdf2? ( ssl )
+ test? ( cleartext sasl debug )
+ autoca? ( !gnutls )
+ ?? ( test minimal )
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
+RESTRICT="!test? ( test )"
+
+SYSTEM_LMDB_VER=0.9.33
+# openssl is needed to generate lanman-passwords required by samba
+COMMON_DEPEND="
+ kernel_linux? ( sys-apps/util-linux )
+ ssl? (
+ !gnutls? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
+ gnutls? (
+ >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
+ >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ sasl? ( dev-libs/cyrus-sasl:= )
+ !minimal? (
+ dev-libs/libltdl
+ sys-fs/e2fsprogs
+ >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
+ argon2? ( app-crypt/argon2:= )
+ crypt? ( virtual/libcrypt:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ odbc? ( !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc ) )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ samba? (
+ dev-libs/openssl:0=
+ )
+ smbkrb5passwd? (
+ dev-libs/openssl:0=
+ kerberos? ( app-crypt/heimdal )
+ )
+ kerberos? (
+ virtual/krb5
+ kinit? ( !app-crypt/heimdal )
+ )
+ )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-apps/groff
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-ldap )
+"
+
+# The user/group are only used for running daemons which are
+# disabled in minimal builds, so elide the accounts too.
+BDEPEND="
+ !minimal? (
+ acct-group/ldap
+ acct-user/ldap
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
+"
+
+# for tracking versions
+OPENLDAP_VERSIONTAG=".version-tag"
+OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # USE=cxx
+ /usr/include/LDAPAsynConnection.h
+ /usr/include/LDAPAttrType.h
+ /usr/include/LDAPAttribute.h
+ /usr/include/LDAPAttributeList.h
+ /usr/include/LDAPConnection.h
+ /usr/include/LDAPConstraints.h
+ /usr/include/LDAPControl.h
+ /usr/include/LDAPControlSet.h
+ /usr/include/LDAPEntry.h
+ /usr/include/LDAPEntryList.h
+ /usr/include/LDAPException.h
+ /usr/include/LDAPExtResult.h
+ /usr/include/LDAPMessage.h
+ /usr/include/LDAPMessageQueue.h
+ /usr/include/LDAPModList.h
+ /usr/include/LDAPModification.h
+ /usr/include/LDAPObjClass.h
+ /usr/include/LDAPRebind.h
+ /usr/include/LDAPRebindAuth.h
+ /usr/include/LDAPReferenceList.h
+ /usr/include/LDAPResult.h
+ /usr/include/LDAPSaslBindResult.h
+ /usr/include/LDAPSchema.h
+ /usr/include/LDAPSearchReference.h
+ /usr/include/LDAPSearchResult.h
+ /usr/include/LDAPSearchResults.h
+ /usr/include/LDAPUrl.h
+ /usr/include/LDAPUrlList.h
+ /usr/include/LdifReader.h
+ /usr/include/LdifWriter.h
+ /usr/include/SaslInteraction.h
+ /usr/include/SaslInteractionHandler.h
+ /usr/include/StringList.h
+ /usr/include/TlsOptions.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
+ "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
+ "${FILESDIR}"/${PN}-2.6.1-cloak.patch
+ "${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
+)
+
+openldap_filecount() {
+ local dir="$1"
+ find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
+}
+
+openldap_find_versiontags() {
+ # scan for all datadirs
+ local openldap_datadirs=()
+ if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
+ openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
+ fi
+ openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
+
+ einfo
+ einfo "Scanning datadir(s) from slapd.conf and"
+ einfo "the default installdir for Versiontags"
+ einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
+ einfo
+
+ # scan datadirs if we have a version tag
+ openldap_found_tag=0
+ have_files=0
+ for each in ${openldap_datadirs[@]} ; do
+ CURRENT_TAGDIR="${EROOT}$(sed "s:\/::" <<< ${each})"
+ CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
+ if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
+ einfo "- Checking ${each}..."
+ if [[ -r "${CURRENT_TAG}" ]] ; then
+ # yey, we have one :)
+ einfo " Found Versiontag in ${each}"
+ source "${CURRENT_TAG}"
+ if [[ "${OLDPF}" == "" ]] ; then
+ eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
+ eerror "Please delete it"
+ eerror
+ die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
+ fi
+
+ OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
+
+ [[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
+
+ # are we on the same branch?
+ if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
+ ewarn " Versiontag doesn't match current major release!"
+ if [[ "${have_files}" == "1" ]] ; then
+ eerror " Versiontag says other major and you (probably) have datafiles!"
+ echo
+ openldap_upgrade_howto
+ else
+ einfo " No real problem, seems there's no database."
+ fi
+ else
+ einfo " Versiontag is fine here :)"
+ fi
+ else
+ einfo " Non-tagged dir ${each}"
+ [[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
+ if [[ "${have_files}" == "1" ]] ; then
+ einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
+ echo
+
+ eerror
+ eerror "Your OpenLDAP Installation has a non tagged datadir that"
+ eerror "possibly contains a database at ${CURRENT_TAGDIR}"
+ eerror
+ eerror "Please export data if any entered and empty or remove"
+ eerror "the directory, installation has been stopped so you"
+ eerror "can take required action"
+ eerror
+ eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
+ eerror
+ openldap_upgrade_howto
+ die "Please move the datadir ${CURRENT_TAGDIR} away"
+ fi
+ fi
+ einfo
+ fi
+ done
+ [[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
+
+ # Now we must check for the major version of sys-libs/db linked against.
+ # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
+ SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
+ if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
+ OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
+ | awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
+ local fail=0
+
+ # This will not cover detection of cn=Config based configuration, but
+ # it's hopefully good enough.
+ if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.6.x has dropped support for Shell backend."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted away from backend shell!"
+ echo
+ fail=1
+ fi
+ if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted to mdb!"
+ echo
+ fail=1
+ elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ :
+ # Nothing wrong here.
+ elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was not built against"
+ eerror " any version of sys-libs/db, but the new one will build"
+ eerror " against ${NEWVER} and your database may be inaccessible."
+ echo
+ fail=1
+ elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will not be"
+ eerror " built against any version and your database may be"
+ eerror " inaccessible."
+ echo
+ fail=1
+ elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will build against"
+ eerror " ${NEWVER} and your database would be inaccessible."
+ echo
+ fail=1
+ fi
+ [[ "${fail}" == "1" ]] && openldap_upgrade_howto
+ fi
+
+ echo
+ einfo
+ einfo "All datadirs are fine, proceeding with merge now..."
+ einfo
+}
+
+openldap_upgrade_howto() {
+ local d l i
+ eerror
+ eerror "A (possible old) installation of OpenLDAP was detected,"
+ eerror "installation will not proceed for now."
+ eerror
+ eerror "As major version upgrades can corrupt your database,"
+ eerror "you need to dump your database and re-create it afterwards."
+ eerror
+ eerror "Additionally, rebuilding against different major versions of the"
+ eerror "sys-libs/db libraries will cause your database to be inaccessible."
+ eerror ""
+ d="$(date -u +%s)"
+ l="/root/ldapdump.${d}"
+ i="${l}.raw"
+ eerror " 1. /etc/init.d/slapd stop"
+ eerror " 2. slapcat -l ${i}"
+ eerror " 3. grep -E -v '^(entry|context)CSN:' <${i} >${l}"
+ eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
+ eerror " 5. emerge --update \=net-nds/${PF}"
+ eerror " 6. etc-update, and ensure that you apply the changes"
+ eerror " 7. slapadd -l ${l}"
+ eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
+ eerror " 9. /etc/init.d/slapd start"
+ eerror "10. Check that your data is intact."
+ eerror "11. Set up the new replication system."
+ eerror
+ if [[ "${FORCE_UPGRADE}" != "1" ]]; then
+ die "You need to upgrade your database first"
+ else
+ eerror "You have the magical FORCE_UPGRADE=1 in place."
+ eerror "Don't say you weren't warned about data loss."
+ fi
+}
+
+pkg_setup() {
+ if ! use sasl && use cxx ; then
+ die "To build the ldapc++ library you must emerge openldap with sasl support"
+ fi
+ # Bug #322787
+ if use minimal && ! has_version "net-nds/openldap" ; then
+ einfo "No datadir scan needed, openldap not installed"
+ elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
+ einfo "Skipping scan for previous datadirs as requested by minimal useflag"
+ else
+ openldap_find_versiontags
+ fi
+}
+
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
+src_prepare() {
+ # The system copy of dev-db/lmdb must match the version that this copy
+ # of OpenLDAP shipped with! See bug #588792.
+ #
+ # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
+ # the bundled lmdb's header to find out the version.
+ local bundled_lmdb_version=$(
+ sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
+ libraries/liblmdb/lmdb.h || die
+ )
+ printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
+
+ if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
+ eerror "Source lmdb version: ${bundled_lmdb_version}"
+ eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
+ die "Ebuild needs to update SYSTEM_LMDB_VER!"
+ fi
+
+ rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
+
+ local filename
+ for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
+ iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
+ mv "${filename}.utf8" "${filename}"
+ done
+
+ default
+
+ sed -i \
+ -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
+ -e '/MKDIR.*.(DESTDIR)\/run/d' \
+ -e '/MKDIR.*.(DESTDIR).*.(runstatedir)/d' \
+ servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
+
+ pushd build &>/dev/null || die "pushd build"
+ einfo "Making sure upstream build strip does not do stripping too early"
+ sed -i.orig \
+ -e '/^STRIP/s,-s,,g' \
+ top.mk || die "Failed to remove too early stripping"
+ popd &>/dev/null || die
+
+ # Fails with OpenSSL 3, bug #848894
+ # https://bugs.openldap.org/show_bug.cgi?id=10009
+ rm tests/scripts/test076-authid-rewrite || die
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+build_contrib_module() {
+ # <dir> [<target>]
+ pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
+ einfo "Compiling contrib-module: $1"
+ local target="${2:-all}"
+ emake \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
+ "${target}"
+ popd &>/dev/null || die
+}
+
+multilib_src_configure() {
+ # Optional Features
+ myconf+=(
+ --enable-option-checking
+ $(use_enable debug)
+ --enable-dynamic
+ $(use_enable syslog)
+ $(use_enable ipv6)
+ --enable-local
+ )
+
+ # Optional Packages
+ myconf+=(
+ --without-fetch
+ )
+
+ if use experimental ; then
+ # connectionless ldap per bug #342439
+ # connectionless is a unsupported feature according to Howard Chu
+ # see https://bugs.openldap.org/show_bug.cgi?id=9739
+ # (see also bug #892009)
+ append-flags -DLDAP_CONNECTIONLESS
+ fi
+
+ if ! use minimal && multilib_is_native_abi; then
+ # SLAPD (Standalone LDAP Daemon) Options
+ # overlay chaining requires '--enable-ldap' #296567
+ # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
+ myconf+=(
+ --enable-ldap=yes
+ --enable-slapd
+ $(use_enable cleartext)
+ $(use_enable crypt)
+ $(multilib_native_use_enable sasl spasswd)
+ --disable-slp
+ $(use_enable tcpd wrappers)
+ )
+ if use experimental ; then
+ myconf+=(
+ --enable-dynacl
+ # ACI build as dynamic module not supported (yet)
+ --enable-aci=yes
+ )
+ fi
+
+ for option in modules rlookups slapi; do
+ myconf+=( --enable-${option} )
+ done
+
+ # static SLAPD backends
+ for backend in mdb; do
+ myconf+=( --enable-${backend}=yes )
+ done
+
+ # module SLAPD backends
+ for backend in asyncmeta dnssrv meta null passwd relay sock; do
+ # missing modules: wiredtiger (not available in portage)
+ myconf+=( --enable-${backend}=mod )
+ done
+
+ use perl && myconf+=( --enable-perl=mod )
+
+ if use odbc ; then
+ myconf+=( --enable-sql=mod )
+ if use iodbc ; then
+ myconf+=( --with-odbc="iodbc" )
+ append-cflags -I"${EPREFIX}"/usr/include/iodbc
+ else
+ myconf+=( --with-odbc="unixodbc" )
+ fi
+ fi
+
+ use overlays && myconf+=( --enable-overlays=mod )
+ use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
+ # compile-in the syncprov
+ myconf+=( --enable-syncprov=yes )
+
+ # SLAPD Password Module Options
+ myconf+=(
+ $(use_enable argon2)
+ )
+
+ # Optional Packages
+ myconf+=(
+ $(use_with systemd)
+ $(multilib_native_use_with sasl cyrus-sasl)
+ )
+ else
+ myconf+=(
+ --disable-backends
+ --disable-slapd
+ --disable-mdb
+ --disable-overlays
+ --disable-autoca
+ --disable-syslog
+ --without-systemd
+ )
+ fi
+
+ # Library Generation & Linking Options
+ myconf+=(
+ $(use_enable static-libs static)
+ --enable-shared
+ --enable-versioning
+ --with-pic
+ )
+
+ # some cross-compiling tests don't pan out well.
+ tc-is-cross-compiler && myconf+=(
+ --with-yielding-select=yes
+ )
+
+ local ssl_lib="no"
+ if use ssl || ( ! use minimal && use samba ) ; then
+ if use gnutls ; then
+ myconf+=( --with-tls="gnutls" )
+ else
+ # disable MD2 hash function
+ append-cflags -DOPENSSL_NO_MD2
+ myconf+=( --with-tls="openssl" )
+ fi
+ else
+ myconf+=( --with-tls="no" )
+ fi
+
+ tc-export AR CC CXX
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
+ --localstatedir="${EPREFIX}"/var \
+ --runstatedir="${EPREFIX}"/run \
+ --sharedstatedir="${EPREFIX}"/var/lib \
+ "${myconf[@]}"
+
+ # argument '--runstatedir' seems to have no effect therefore this workaround
+ sed -i \
+ -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
+ configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
+
+ sed -i \
+ -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
+ doc/guide/admin/security.sdf || die 'could not fix run path in doc'
+
+ emake depend
+}
+
+src_configure_cxx() {
+ # This needs the libraries built by the first build run.
+ # we have to run it AFTER the main build, not just after the main configure
+ local myconf_ldapcpp=(
+ --with-libldap="${E}/lib"
+ --with-ldap-includes="${S}/include"
+ )
+
+ mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+
+ local LDFLAGS="${LDFLAGS}"
+ local CPPFLAGS="${CPPFLAGS}"
+
+ append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
+ append-cppflags -I"${BUILD_DIR}"/include
+
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ econf \
+ "${myconf_ldapcpp[@]}"
+ popd &>/dev/null || die "popd contrib/ldapc++"
+}
+
+multilib_src_compile() {
+ tc-export AR CC CXX
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh
+
+ if ! use minimal && multilib_is_native_abi ; then
+ if use cxx ; then
+ einfo "Building contrib library: ldapc++"
+ src_configure_cxx
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+ emake
+ popd &>/dev/null || die
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Building contrib-module: smbk5pwd"
+ pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
+
+ MY_DEFS="-DDO_SHADOW"
+ if use samba ; then
+ MY_DEFS="${MY_DEFS} -DDO_SAMBA"
+ MY_KRB5_INC=""
+ fi
+ if use kerberos ; then
+ MY_DEFS="${MY_DEFS} -DDO_KRB5"
+ MY_KRB5_INC="$(krb5-config --cflags)"
+ fi
+
+ emake \
+ DEFS="${MY_DEFS}" \
+ KRB5_INC="${MY_KRB5_INC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use overlays ; then
+ einfo "Building contrib-module: samba4"
+ pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
+
+ emake \
+ CC="$(tc-getCC)" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use kerberos ; then
+ if use kinit ; then
+ build_contrib_module "kinit" "kinit.c" "kinit"
+ fi
+ build_contrib_module "passwd" "pw-kerberos.la"
+ fi
+
+ if use pbkdf2; then
+ build_contrib_module "passwd/pbkdf2"
+ fi
+
+ if use sha2 ; then
+ build_contrib_module "passwd/sha2"
+ fi
+
+ # We could build pw-radius if GNURadius would install radlib.h
+ build_contrib_module "passwd" "pw-netscape.la"
+
+ #build_contrib_module "acl" "posixgroup.la" # example code only
+ #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
+ build_contrib_module "addpartial"
+ build_contrib_module "allop"
+ build_contrib_module "allowed"
+ build_contrib_module "autogroup"
+ build_contrib_module "cloak"
+ # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
+ build_contrib_module "denyop"
+ build_contrib_module "dsaschema"
+ build_contrib_module "dupent"
+ build_contrib_module "lastbind"
+ # lastmod may not play well with other overlays
+ build_contrib_module "lastmod"
+ build_contrib_module "noopsrch"
+ #build_contrib_module "nops" https://bugs.gentoo.org/641576
+ #build_contrib_module "nssov" RESO:LATER
+ build_contrib_module "trace"
+ # build slapi-plugins
+ pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
+ einfo "Building contrib-module: addrdnvalues plugin"
+ $(tc-getCC) -shared \
+ -I"${BUILD_DIR}"/include \
+ -I../../../include \
+ ${CPPFLAGS} \
+ ${CFLAGS} \
+ -fPIC \
+ ${LDFLAGS} \
+ -o libaddrdnvalues-plugin.so \
+ addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
+ popd &>/dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cd tests || die
+ pwd
+
+ # Increase various test timeouts/delays, bug #894012
+ # We can't just double everything as there's a cumulative effect.
+ export SLEEP0=2 # originally 1
+ export SLEEP1=10 # originally 7
+ export SLEEP2=20 # originally 15
+ export TIMEOUT=16 # originally 8
+
+ # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
+ # emake partests => runs ALL of the tests in parallel
+ # wt/WiredTiger is not supported in Gentoo
+ TESTS=( lloadd mdb )
+ #TESTS+=( pldif ) # not done by default, so also exclude here
+ #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
+
+ emake -Onone "${TESTS[@]}"
+ fi
+}
+
+multilib_src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ install
+
+ if ! use minimal && multilib_is_native_abi; then
+ # openldap modules go here
+ # TODO: write some code to populate slapd.conf with moduleload statements
+ keepdir /usr/$(get_libdir)/openldap/openldap/
+
+ # initial data storage dir
+ keepdir /var/lib/openldap-data
+ use prefix || fowners ldap:ldap /var/lib/openldap-data
+ fperms 0700 /var/lib/openldap-data
+
+ echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+
+ # use our config
+ rm "${ED}"/etc/openldap/slapd.conf
+ insinto /etc/openldap
+ newins "${FILESDIR}"/${PN}-2.6.3-slapd-conf slapd.conf
+ configfile="${ED}"/etc/openldap/slapd.conf
+
+ # populate with built backends
+ einfo "populate config with built backends"
+ for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
+ einfo "Adding $(basename ${x})"
+ sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
+ done
+ sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
+ -i "${configfile}" || die
+ use prefix || fowners root:ldap /etc/openldap/slapd.conf
+ fperms 0640 /etc/openldap/slapd.conf
+ cp "${configfile}" "${configfile}".default || die
+
+ # install our own init scripts and systemd unit files
+ einfo "Install init scripts"
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
+ doinitd "${T}"/slapd
+ newconfd "${FILESDIR}"/slapd-confd-2.6.1 slapd
+
+ if use systemd; then
+ # The systemd unit uses Type=notify, so it is useless without USE=systemd
+ einfo "Install systemd service"
+ rm -rf "${ED}"/{,usr/}lib/systemd
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
+ systemd_dounit "${T}"/slapd.service
+ systemd_install_serviced "${FILESDIR}"/slapd.service.conf
+ newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
+ fi
+
+ # if built without SLP, we don't need to be before avahi
+ sed -i \
+ -e '/before/{s/avahi-daemon//g}' \
+ "${ED}"/etc/init.d/slapd \
+ || die
+
+ if use cxx ; then
+ einfo "Install the ldapc++ library"
+ cd "${BUILD_DIR}/contrib/ldapc++" || die
+ emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ cd "${S}"/contrib/ldapc++ || die
+ newdoc README ldapc++-README
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Install the smbk5pwd module"
+ cd "${S}/contrib/slapd-modules/smbk5pwd" || die
+ emake DESTDIR="${D}" \
+ prefix="${EPREFIX}/usr" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README smbk5pwd-README
+ fi
+
+ if use overlays ; then
+ einfo "Install the samba4 module"
+ cd "${S}/contrib/slapd-modules/samba4" || die
+ emake DESTDIR="${D}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README samba4-README
+ fi
+
+ einfo "Installing contrib modules"
+ cd "${S}/contrib/slapd-modules" || die
+ for l in */*.la */*/*.la; do
+ [[ -e ${l} ]] || continue
+ libtool --mode=install cp ${l} \
+ "${ED}"/usr/$(get_libdir)/openldap/openldap || \
+ die "installing ${l} failed"
+ done
+
+ dodoc "${FILESDIR}"/DB_CONFIG.fast.example
+ docinto contrib
+ doman */*.5
+ #newdoc acl/README*
+ newdoc addpartial/README addpartial-README
+ newdoc allop/README allop-README
+ newdoc allowed/README allowed-README
+ newdoc autogroup/README autogroup-README
+ newdoc dsaschema/README dsaschema-README
+ newdoc passwd/README passwd-README
+ cd "${S}/contrib/slapi-plugins" || die
+ insinto /usr/$(get_libdir)/openldap/openldap
+ doins */*.so
+ docinto contrib
+ newdoc addrdnvalues/README addrdnvalues-README
+
+ insinto /etc/openldap/schema
+ newins "${DISTDIR}"/${BIS_P} ${BIS_PN}
+
+ docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
+ docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
+
+ dosbin "${S}"/contrib/slapd-tools/statslog
+ newdoc "${S}"/contrib/slapd-tools/README README.statslog
+ fi
+
+ if ! use static-libs ; then
+ find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
+ docinto rfc ; dodoc doc/rfc/*.txt
+}
+
+pkg_preinst() {
+ # keep old libs if any
+ preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+ # bug 440470, only display the getting started help there was no openldap before,
+ # or we are going to a non-minimal build
+ ! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
+ OPENLDAP_PRINT_MESSAGES=$((! $?))
+}
+
+pkg_postinst() {
+ if ! use minimal ; then
+ if use systemd; then
+ tmpfiles_process slapd.conf
+ fi
+
+ # You cannot build SSL certificates during src_install that will make
+ # binary packages containing your SSL key, which is both a security risk
+ # and a misconfiguration if multiple machines use the same key and cert.
+ if use ssl; then
+ install_cert /etc/openldap/ssl/ldap
+ use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "add 'TLS_REQCERT allow' if you want to use them."
+ fi
+
+ if use prefix; then
+ # Warn about prefix issues with slapd
+ eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
+ eerror "to start up, and requires that certain files directories be owned by"
+ eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
+ eerror "directories, you will have to manually fix this yourself."
+ fi
+
+ # These lines force the permissions of various content to be correct
+ if [[ -d "${EROOT}"/var/run/openldap ]]; then
+ use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
+ chmod 0755 "${EROOT}"/var/run/openldap || die
+ fi
+ use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
+ chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
+ use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
+ fi
+
+ if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
+ elog "Getting started using OpenLDAP? There is some documentation available:"
+ elog "Gentoo Guide to OpenLDAP Authentication"
+ elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
+ fi
+
+ preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+}
diff --git a/net-nds/openldap/openldap-2.5.20.ebuild b/net-nds/openldap/openldap-2.5.20.ebuild
new file mode 100644
index 000000000000..c91b2b423518
--- /dev/null
+++ b/net-nds/openldap/openldap-2.5.20.ebuild
@@ -0,0 +1,881 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Re cleanups:
+# 2.5.x is an LTS release so we want to keep it for a while.
+
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
+
+MY_PV="$(ver_rs 1-2 _)"
+
+DESCRIPTION="LDAP suite of application and development tools"
+HOMEPAGE="https://www.openldap.org/"
+SRC_URI="
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
+"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
+
+LICENSE="OPENLDAP GPL-2"
+# Subslot added for bug #835654
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
+IUSE_OVERLAY="overlays perl autoca"
+IUSE_OPTIONAL="debug gnutls iodbc ipv6 odbc sasl ssl selinux static-libs +syslog test"
+IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
+IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
+IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
+REQUIRED_USE="
+ cxx? ( sasl )
+ pbkdf2? ( ssl )
+ test? ( cleartext sasl debug )
+ autoca? ( !gnutls )
+ ?? ( test minimal )
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
+RESTRICT="!test? ( test )"
+
+SYSTEM_LMDB_VER=0.9.33
+# openssl is needed to generate lanman-passwords required by samba
+COMMON_DEPEND="
+ kernel_linux? ( sys-apps/util-linux )
+ ssl? (
+ !gnutls? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
+ gnutls? (
+ >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
+ >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ sasl? ( dev-libs/cyrus-sasl:= )
+ !minimal? (
+ dev-libs/libltdl
+ sys-fs/e2fsprogs
+ >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
+ argon2? ( app-crypt/argon2:= )
+ crypt? ( virtual/libcrypt:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ odbc? ( !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc ) )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ samba? (
+ dev-libs/openssl:0=
+ )
+ smbkrb5passwd? (
+ dev-libs/openssl:0=
+ kerberos? ( app-crypt/heimdal )
+ )
+ kerberos? (
+ virtual/krb5
+ kinit? ( !app-crypt/heimdal )
+ )
+ )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-apps/groff
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-ldap )
+"
+
+# The user/group are only used for running daemons which are
+# disabled in minimal builds, so elide the accounts too.
+BDEPEND="
+ !minimal? (
+ acct-group/ldap
+ acct-user/ldap
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
+"
+
+# for tracking versions
+OPENLDAP_VERSIONTAG=".version-tag"
+OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # USE=cxx
+ /usr/include/LDAPAsynConnection.h
+ /usr/include/LDAPAttrType.h
+ /usr/include/LDAPAttribute.h
+ /usr/include/LDAPAttributeList.h
+ /usr/include/LDAPConnection.h
+ /usr/include/LDAPConstraints.h
+ /usr/include/LDAPControl.h
+ /usr/include/LDAPControlSet.h
+ /usr/include/LDAPEntry.h
+ /usr/include/LDAPEntryList.h
+ /usr/include/LDAPException.h
+ /usr/include/LDAPExtResult.h
+ /usr/include/LDAPMessage.h
+ /usr/include/LDAPMessageQueue.h
+ /usr/include/LDAPModList.h
+ /usr/include/LDAPModification.h
+ /usr/include/LDAPObjClass.h
+ /usr/include/LDAPRebind.h
+ /usr/include/LDAPRebindAuth.h
+ /usr/include/LDAPReferenceList.h
+ /usr/include/LDAPResult.h
+ /usr/include/LDAPSaslBindResult.h
+ /usr/include/LDAPSchema.h
+ /usr/include/LDAPSearchReference.h
+ /usr/include/LDAPSearchResult.h
+ /usr/include/LDAPSearchResults.h
+ /usr/include/LDAPUrl.h
+ /usr/include/LDAPUrlList.h
+ /usr/include/LdifReader.h
+ /usr/include/LdifWriter.h
+ /usr/include/SaslInteraction.h
+ /usr/include/SaslInteractionHandler.h
+ /usr/include/StringList.h
+ /usr/include/TlsOptions.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
+ "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
+ "${FILESDIR}"/${PN}-2.6.1-cloak.patch
+ "${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
+)
+
+openldap_filecount() {
+ local dir="$1"
+ find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
+}
+
+openldap_find_versiontags() {
+ # scan for all datadirs
+ local openldap_datadirs=()
+ if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
+ openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
+ fi
+ openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
+
+ einfo
+ einfo "Scanning datadir(s) from slapd.conf and"
+ einfo "the default installdir for Versiontags"
+ einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
+ einfo
+
+ # scan datadirs if we have a version tag
+ openldap_found_tag=0
+ have_files=0
+ for each in ${openldap_datadirs[@]} ; do
+ CURRENT_TAGDIR="${EROOT}$(sed "s:\/::" <<< ${each})"
+ CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
+ if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
+ einfo "- Checking ${each}..."
+ if [[ -r "${CURRENT_TAG}" ]] ; then
+ # yey, we have one :)
+ einfo " Found Versiontag in ${each}"
+ source "${CURRENT_TAG}"
+ if [[ "${OLDPF}" == "" ]] ; then
+ eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
+ eerror "Please delete it"
+ eerror
+ die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
+ fi
+
+ OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
+
+ [[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
+
+ # are we on the same branch?
+ if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
+ ewarn " Versiontag doesn't match current major release!"
+ if [[ "${have_files}" == "1" ]] ; then
+ eerror " Versiontag says other major and you (probably) have datafiles!"
+ echo
+ openldap_upgrade_howto
+ else
+ einfo " No real problem, seems there's no database."
+ fi
+ else
+ einfo " Versiontag is fine here :)"
+ fi
+ else
+ einfo " Non-tagged dir ${each}"
+ [[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
+ if [[ "${have_files}" == "1" ]] ; then
+ einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
+ echo
+
+ eerror
+ eerror "Your OpenLDAP Installation has a non tagged datadir that"
+ eerror "possibly contains a database at ${CURRENT_TAGDIR}"
+ eerror
+ eerror "Please export data if any entered and empty or remove"
+ eerror "the directory, installation has been stopped so you"
+ eerror "can take required action"
+ eerror
+ eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
+ eerror
+ openldap_upgrade_howto
+ die "Please move the datadir ${CURRENT_TAGDIR} away"
+ fi
+ fi
+ einfo
+ fi
+ done
+ [[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
+
+ # Now we must check for the major version of sys-libs/db linked against.
+ # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
+ SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
+ if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
+ OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
+ | awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
+ local fail=0
+
+ # This will not cover detection of cn=Config based configuration, but
+ # it's hopefully good enough.
+ if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.6.x has dropped support for Shell backend."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted away from backend shell!"
+ echo
+ fail=1
+ fi
+ if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted to mdb!"
+ echo
+ fail=1
+ elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ :
+ # Nothing wrong here.
+ elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was not built against"
+ eerror " any version of sys-libs/db, but the new one will build"
+ eerror " against ${NEWVER} and your database may be inaccessible."
+ echo
+ fail=1
+ elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will not be"
+ eerror " built against any version and your database may be"
+ eerror " inaccessible."
+ echo
+ fail=1
+ elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will build against"
+ eerror " ${NEWVER} and your database would be inaccessible."
+ echo
+ fail=1
+ fi
+ [[ "${fail}" == "1" ]] && openldap_upgrade_howto
+ fi
+
+ echo
+ einfo
+ einfo "All datadirs are fine, proceeding with merge now..."
+ einfo
+}
+
+openldap_upgrade_howto() {
+ local d l i
+ eerror
+ eerror "A (possible old) installation of OpenLDAP was detected,"
+ eerror "installation will not proceed for now."
+ eerror
+ eerror "As major version upgrades can corrupt your database,"
+ eerror "you need to dump your database and re-create it afterwards."
+ eerror
+ eerror "Additionally, rebuilding against different major versions of the"
+ eerror "sys-libs/db libraries will cause your database to be inaccessible."
+ eerror ""
+ d="$(date -u +%s)"
+ l="/root/ldapdump.${d}"
+ i="${l}.raw"
+ eerror " 1. /etc/init.d/slapd stop"
+ eerror " 2. slapcat -l ${i}"
+ eerror " 3. grep -E -v '^(entry|context)CSN:' <${i} >${l}"
+ eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
+ eerror " 5. emerge --update \=net-nds/${PF}"
+ eerror " 6. etc-update, and ensure that you apply the changes"
+ eerror " 7. slapadd -l ${l}"
+ eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
+ eerror " 9. /etc/init.d/slapd start"
+ eerror "10. Check that your data is intact."
+ eerror "11. Set up the new replication system."
+ eerror
+ if [[ "${FORCE_UPGRADE}" != "1" ]]; then
+ die "You need to upgrade your database first"
+ else
+ eerror "You have the magical FORCE_UPGRADE=1 in place."
+ eerror "Don't say you weren't warned about data loss."
+ fi
+}
+
+pkg_setup() {
+ if ! use sasl && use cxx ; then
+ die "To build the ldapc++ library you must emerge openldap with sasl support"
+ fi
+ # Bug #322787
+ if use minimal && ! has_version "net-nds/openldap" ; then
+ einfo "No datadir scan needed, openldap not installed"
+ elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
+ einfo "Skipping scan for previous datadirs as requested by minimal useflag"
+ else
+ openldap_find_versiontags
+ fi
+}
+
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
+src_prepare() {
+ # The system copy of dev-db/lmdb must match the version that this copy
+ # of OpenLDAP shipped with! See bug #588792.
+ #
+ # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
+ # the bundled lmdb's header to find out the version.
+ local bundled_lmdb_version=$(
+ sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
+ libraries/liblmdb/lmdb.h || die
+ )
+ printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
+
+ if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
+ eerror "Source lmdb version: ${bundled_lmdb_version}"
+ eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
+ die "Ebuild needs to update SYSTEM_LMDB_VER!"
+ fi
+
+ rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
+
+ local filename
+ for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
+ iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
+ mv "${filename}.utf8" "${filename}"
+ done
+
+ default
+
+ sed -i \
+ -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
+ -e '/MKDIR.*.(DESTDIR)\/run/d' \
+ -e '/MKDIR.*.(DESTDIR).*.(runstatedir)/d' \
+ servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
+
+ pushd build &>/dev/null || die "pushd build"
+ einfo "Making sure upstream build strip does not do stripping too early"
+ sed -i.orig \
+ -e '/^STRIP/s,-s,,g' \
+ top.mk || die "Failed to remove too early stripping"
+ popd &>/dev/null || die
+
+ # Fails with OpenSSL 3, bug #848894
+ # https://bugs.openldap.org/show_bug.cgi?id=10009
+ rm tests/scripts/test076-authid-rewrite || die
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+build_contrib_module() {
+ # <dir> [<target>]
+ pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
+ einfo "Compiling contrib-module: $1"
+ local target="${2:-all}"
+ emake \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
+ "${target}"
+ popd &>/dev/null || die
+}
+
+multilib_src_configure() {
+ # Optional Features
+ myconf+=(
+ --enable-option-checking
+ $(use_enable debug)
+ --enable-dynamic
+ $(use_enable syslog)
+ $(use_enable ipv6)
+ --enable-local
+ )
+
+ # Optional Packages
+ myconf+=(
+ --without-fetch
+ )
+
+ if use experimental ; then
+ # connectionless ldap per bug #342439
+ # connectionless is a unsupported feature according to Howard Chu
+ # see https://bugs.openldap.org/show_bug.cgi?id=9739
+ # (see also bug #892009)
+ append-flags -DLDAP_CONNECTIONLESS
+ fi
+
+ if ! use minimal && multilib_is_native_abi; then
+ # SLAPD (Standalone LDAP Daemon) Options
+ # overlay chaining requires '--enable-ldap' #296567
+ # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
+ myconf+=(
+ --enable-ldap=yes
+ --enable-slapd
+ $(use_enable cleartext)
+ $(use_enable crypt)
+ $(multilib_native_use_enable sasl spasswd)
+ --disable-slp
+ $(use_enable tcpd wrappers)
+ )
+ if use experimental ; then
+ myconf+=(
+ --enable-dynacl
+ # ACI build as dynamic module not supported (yet)
+ --enable-aci=yes
+ )
+ fi
+
+ for option in modules rlookups slapi; do
+ myconf+=( --enable-${option} )
+ done
+
+ # static SLAPD backends
+ for backend in mdb; do
+ myconf+=( --enable-${backend}=yes )
+ done
+
+ # module SLAPD backends
+ for backend in asyncmeta dnssrv meta null passwd relay sock; do
+ # missing modules: wiredtiger (not available in portage)
+ myconf+=( --enable-${backend}=mod )
+ done
+
+ use perl && myconf+=( --enable-perl=mod )
+
+ if use odbc ; then
+ myconf+=( --enable-sql=mod )
+ if use iodbc ; then
+ myconf+=( --with-odbc="iodbc" )
+ append-cflags -I"${EPREFIX}"/usr/include/iodbc
+ else
+ myconf+=( --with-odbc="unixodbc" )
+ fi
+ fi
+
+ use overlays && myconf+=( --enable-overlays=mod )
+ use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
+ # compile-in the syncprov
+ myconf+=( --enable-syncprov=yes )
+
+ # SLAPD Password Module Options
+ myconf+=(
+ $(use_enable argon2)
+ )
+
+ # Optional Packages
+ myconf+=(
+ $(use_with systemd)
+ $(multilib_native_use_with sasl cyrus-sasl)
+ )
+ else
+ myconf+=(
+ --disable-backends
+ --disable-slapd
+ --disable-mdb
+ --disable-overlays
+ --disable-autoca
+ --disable-syslog
+ --without-systemd
+ )
+ fi
+
+ # Library Generation & Linking Options
+ myconf+=(
+ $(use_enable static-libs static)
+ --enable-shared
+ --enable-versioning
+ --with-pic
+ )
+
+ # some cross-compiling tests don't pan out well.
+ tc-is-cross-compiler && myconf+=(
+ --with-yielding-select=yes
+ )
+
+ local ssl_lib="no"
+ if use ssl || ( ! use minimal && use samba ) ; then
+ if use gnutls ; then
+ myconf+=( --with-tls="gnutls" )
+ else
+ # disable MD2 hash function
+ append-cflags -DOPENSSL_NO_MD2
+ myconf+=( --with-tls="openssl" )
+ fi
+ else
+ myconf+=( --with-tls="no" )
+ fi
+
+ tc-export AR CC CXX
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
+ --localstatedir="${EPREFIX}"/var \
+ --runstatedir="${EPREFIX}"/run \
+ --sharedstatedir="${EPREFIX}"/var/lib \
+ "${myconf[@]}"
+
+ # argument '--runstatedir' seems to have no effect therefore this workaround
+ sed -i \
+ -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
+ configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
+
+ sed -i \
+ -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
+ doc/guide/admin/security.sdf || die 'could not fix run path in doc'
+
+ emake depend
+}
+
+src_configure_cxx() {
+ # This needs the libraries built by the first build run.
+ # we have to run it AFTER the main build, not just after the main configure
+ local myconf_ldapcpp=(
+ --with-libldap="${E}/lib"
+ --with-ldap-includes="${S}/include"
+ )
+
+ mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+
+ local LDFLAGS="${LDFLAGS}"
+ local CPPFLAGS="${CPPFLAGS}"
+
+ append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
+ append-cppflags -I"${BUILD_DIR}"/include
+
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ econf \
+ "${myconf_ldapcpp[@]}"
+ popd &>/dev/null || die "popd contrib/ldapc++"
+}
+
+multilib_src_compile() {
+ tc-export AR CC CXX
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh
+
+ if ! use minimal && multilib_is_native_abi ; then
+ if use cxx ; then
+ einfo "Building contrib library: ldapc++"
+ src_configure_cxx
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+ emake
+ popd &>/dev/null || die
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Building contrib-module: smbk5pwd"
+ pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
+
+ MY_DEFS="-DDO_SHADOW"
+ if use samba ; then
+ MY_DEFS="${MY_DEFS} -DDO_SAMBA"
+ MY_KRB5_INC=""
+ fi
+ if use kerberos ; then
+ MY_DEFS="${MY_DEFS} -DDO_KRB5"
+ MY_KRB5_INC="$(krb5-config --cflags)"
+ fi
+
+ emake \
+ DEFS="${MY_DEFS}" \
+ KRB5_INC="${MY_KRB5_INC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use overlays ; then
+ einfo "Building contrib-module: samba4"
+ pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
+
+ emake \
+ CC="$(tc-getCC)" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use kerberos ; then
+ if use kinit ; then
+ build_contrib_module "kinit" "kinit.c" "kinit"
+ fi
+ build_contrib_module "passwd" "pw-kerberos.la"
+ fi
+
+ if use pbkdf2; then
+ build_contrib_module "passwd/pbkdf2"
+ fi
+
+ if use sha2 ; then
+ build_contrib_module "passwd/sha2"
+ fi
+
+ # We could build pw-radius if GNURadius would install radlib.h
+ build_contrib_module "passwd" "pw-netscape.la"
+
+ #build_contrib_module "acl" "posixgroup.la" # example code only
+ #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
+ build_contrib_module "addpartial"
+ build_contrib_module "allop"
+ build_contrib_module "allowed"
+ build_contrib_module "autogroup"
+ build_contrib_module "cloak"
+ # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
+ build_contrib_module "denyop"
+ build_contrib_module "dsaschema"
+ build_contrib_module "dupent"
+ build_contrib_module "lastbind"
+ # lastmod may not play well with other overlays
+ build_contrib_module "lastmod"
+ build_contrib_module "noopsrch"
+ #build_contrib_module "nops" https://bugs.gentoo.org/641576
+ #build_contrib_module "nssov" RESO:LATER
+ build_contrib_module "trace"
+ # build slapi-plugins
+ pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
+ einfo "Building contrib-module: addrdnvalues plugin"
+ $(tc-getCC) -shared \
+ -I"${BUILD_DIR}"/include \
+ -I../../../include \
+ ${CPPFLAGS} \
+ ${CFLAGS} \
+ -fPIC \
+ ${LDFLAGS} \
+ -o libaddrdnvalues-plugin.so \
+ addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
+ popd &>/dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cd tests || die
+ pwd
+
+ # Increase various test timeouts/delays, bug #894012
+ # We can't just double everything as there's a cumulative effect.
+ export SLEEP0=2 # originally 1
+ export SLEEP1=10 # originally 7
+ export SLEEP2=20 # originally 15
+ export TIMEOUT=16 # originally 8
+
+ # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
+ # emake partests => runs ALL of the tests in parallel
+ # wt/WiredTiger is not supported in Gentoo
+ TESTS=( lloadd mdb )
+ #TESTS+=( pldif ) # not done by default, so also exclude here
+ #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
+
+ emake -Onone "${TESTS[@]}"
+ fi
+}
+
+multilib_src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ install
+
+ if ! use minimal && multilib_is_native_abi; then
+ # openldap modules go here
+ # TODO: write some code to populate slapd.conf with moduleload statements
+ keepdir /usr/$(get_libdir)/openldap/openldap/
+
+ # initial data storage dir
+ keepdir /var/lib/openldap-data
+ use prefix || fowners ldap:ldap /var/lib/openldap-data
+ fperms 0700 /var/lib/openldap-data
+
+ echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+
+ # use our config
+ rm "${ED}"/etc/openldap/slapd.conf
+ insinto /etc/openldap
+ newins "${FILESDIR}"/${PN}-2.6.3-slapd-conf slapd.conf
+ configfile="${ED}"/etc/openldap/slapd.conf
+
+ # populate with built backends
+ einfo "populate config with built backends"
+ for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
+ einfo "Adding $(basename ${x})"
+ sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
+ done
+ sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
+ -i "${configfile}" || die
+ use prefix || fowners root:ldap /etc/openldap/slapd.conf
+ fperms 0640 /etc/openldap/slapd.conf
+ cp "${configfile}" "${configfile}".default || die
+
+ # install our own init scripts and systemd unit files
+ einfo "Install init scripts"
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
+ doinitd "${T}"/slapd
+ newconfd "${FILESDIR}"/slapd-confd-2.6.1 slapd
+
+ if use systemd; then
+ # The systemd unit uses Type=notify, so it is useless without USE=systemd
+ einfo "Install systemd service"
+ rm -rf "${ED}"/{,usr/}lib/systemd
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
+ systemd_dounit "${T}"/slapd.service
+ systemd_install_serviced "${FILESDIR}"/slapd.service.conf
+ newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
+ fi
+
+ # if built without SLP, we don't need to be before avahi
+ sed -i \
+ -e '/before/{s/avahi-daemon//g}' \
+ "${ED}"/etc/init.d/slapd \
+ || die
+
+ if use cxx ; then
+ einfo "Install the ldapc++ library"
+ cd "${BUILD_DIR}/contrib/ldapc++" || die
+ emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ cd "${S}"/contrib/ldapc++ || die
+ newdoc README ldapc++-README
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Install the smbk5pwd module"
+ cd "${S}/contrib/slapd-modules/smbk5pwd" || die
+ emake DESTDIR="${D}" \
+ prefix="${EPREFIX}/usr" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README smbk5pwd-README
+ fi
+
+ if use overlays ; then
+ einfo "Install the samba4 module"
+ cd "${S}/contrib/slapd-modules/samba4" || die
+ emake DESTDIR="${D}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README samba4-README
+ fi
+
+ einfo "Installing contrib modules"
+ cd "${S}/contrib/slapd-modules" || die
+ for l in */*.la */*/*.la; do
+ [[ -e ${l} ]] || continue
+ libtool --mode=install cp ${l} \
+ "${ED}"/usr/$(get_libdir)/openldap/openldap || \
+ die "installing ${l} failed"
+ done
+
+ dodoc "${FILESDIR}"/DB_CONFIG.fast.example
+ docinto contrib
+ doman */*.5
+ #newdoc acl/README*
+ newdoc addpartial/README addpartial-README
+ newdoc allop/README allop-README
+ newdoc allowed/README allowed-README
+ newdoc autogroup/README autogroup-README
+ newdoc dsaschema/README dsaschema-README
+ newdoc passwd/README passwd-README
+ cd "${S}/contrib/slapi-plugins" || die
+ insinto /usr/$(get_libdir)/openldap/openldap
+ doins */*.so
+ docinto contrib
+ newdoc addrdnvalues/README addrdnvalues-README
+
+ docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
+ docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
+
+ dosbin "${S}"/contrib/slapd-tools/statslog
+ newdoc "${S}"/contrib/slapd-tools/README README.statslog
+ fi
+
+ if ! use static-libs ; then
+ find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
+ docinto rfc ; dodoc doc/rfc/*.txt
+}
+
+pkg_preinst() {
+ # keep old libs if any
+ preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+ # bug 440470, only display the getting started help there was no openldap before,
+ # or we are going to a non-minimal build
+ ! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
+ OPENLDAP_PRINT_MESSAGES=$((! $?))
+}
+
+pkg_postinst() {
+ if ! use minimal ; then
+ if use systemd; then
+ tmpfiles_process slapd.conf
+ fi
+
+ # You cannot build SSL certificates during src_install that will make
+ # binary packages containing your SSL key, which is both a security risk
+ # and a misconfiguration if multiple machines use the same key and cert.
+ if use ssl; then
+ install_cert /etc/openldap/ssl/ldap
+ use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "add 'TLS_REQCERT allow' if you want to use them."
+ fi
+
+ if use prefix; then
+ # Warn about prefix issues with slapd
+ eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
+ eerror "to start up, and requires that certain files directories be owned by"
+ eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
+ eerror "directories, you will have to manually fix this yourself."
+ fi
+
+ # These lines force the permissions of various content to be correct
+ if [[ -d "${EROOT}"/var/run/openldap ]]; then
+ use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
+ chmod 0755 "${EROOT}"/var/run/openldap || die
+ fi
+ use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
+ chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
+ use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
+ fi
+
+ if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
+ elog "Getting started using OpenLDAP? There is some documentation available:"
+ elog "Gentoo Guide to OpenLDAP Authentication"
+ elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
+ fi
+
+ preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+}
diff --git a/net-nds/openldap/openldap-2.6.12.ebuild b/net-nds/openldap/openldap-2.6.12.ebuild
new file mode 100644
index 000000000000..611d7b3cdace
--- /dev/null
+++ b/net-nds/openldap/openldap-2.6.12.ebuild
@@ -0,0 +1,893 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Re cleanups:
+# 2.6.12 is an LTS release so we want to keep it for a while.
+
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
+
+MY_PV="$(ver_rs 1-2 _)"
+
+DESCRIPTION="LDAP suite of application and development tools"
+HOMEPAGE="https://www.openldap.org/"
+SRC_URI="
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
+"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
+
+LICENSE="OPENLDAP GPL-2"
+# Subslot added for bug #835654
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
+IUSE_OVERLAY="overlays perl autoca"
+IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
+IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
+IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
+IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
+REQUIRED_USE="
+ cxx? ( sasl )
+ pbkdf2? ( ssl )
+ test? ( cleartext sasl debug )
+ autoca? ( !gnutls )
+ ?? ( test minimal )
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
+RESTRICT="!test? ( test )"
+
+SYSTEM_LMDB_VER=0.9.35
+# openssl is needed to generate lanman-passwords required by samba
+COMMON_DEPEND="
+ kernel_linux? ( sys-apps/util-linux )
+ ssl? (
+ !gnutls? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
+ gnutls? (
+ >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
+ >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ sasl? ( dev-libs/cyrus-sasl:= )
+ !minimal? (
+ dev-libs/libevent:=
+ dev-libs/libltdl
+ sys-fs/e2fsprogs
+ >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
+ argon2? ( app-crypt/argon2:= )
+ crypt? ( virtual/libcrypt:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ odbc? ( !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc ) )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ samba? (
+ dev-libs/openssl:0=
+ )
+ smbkrb5passwd? (
+ dev-libs/openssl:0=
+ kerberos? ( app-crypt/heimdal )
+ )
+ kerberos? (
+ virtual/krb5
+ kinit? ( !app-crypt/heimdal )
+ )
+ )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-apps/groff
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-ldap )
+"
+
+# The user/group are only used for running daemons which are
+# disabled in minimal builds, so elide the accounts too.
+BDEPEND="
+ !minimal? (
+ acct-group/ldap
+ acct-user/ldap
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
+"
+
+# for tracking versions
+OPENLDAP_VERSIONTAG=".version-tag"
+OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # USE=cxx
+ /usr/include/LDAPAsynConnection.h
+ /usr/include/LDAPAttrType.h
+ /usr/include/LDAPAttribute.h
+ /usr/include/LDAPAttributeList.h
+ /usr/include/LDAPConnection.h
+ /usr/include/LDAPConstraints.h
+ /usr/include/LDAPControl.h
+ /usr/include/LDAPControlSet.h
+ /usr/include/LDAPEntry.h
+ /usr/include/LDAPEntryList.h
+ /usr/include/LDAPException.h
+ /usr/include/LDAPExtResult.h
+ /usr/include/LDAPMessage.h
+ /usr/include/LDAPMessageQueue.h
+ /usr/include/LDAPModList.h
+ /usr/include/LDAPModification.h
+ /usr/include/LDAPObjClass.h
+ /usr/include/LDAPRebind.h
+ /usr/include/LDAPRebindAuth.h
+ /usr/include/LDAPReferenceList.h
+ /usr/include/LDAPResult.h
+ /usr/include/LDAPSaslBindResult.h
+ /usr/include/LDAPSchema.h
+ /usr/include/LDAPSearchReference.h
+ /usr/include/LDAPSearchResult.h
+ /usr/include/LDAPSearchResults.h
+ /usr/include/LDAPUrl.h
+ /usr/include/LDAPUrlList.h
+ /usr/include/LdifReader.h
+ /usr/include/LdifWriter.h
+ /usr/include/SaslInteraction.h
+ /usr/include/SaslInteractionHandler.h
+ /usr/include/StringList.h
+ /usr/include/TlsOptions.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
+ "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
+ "${FILESDIR}"/${PN}-2.6.1-cloak.patch
+ "${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
+)
+
+openldap_filecount() {
+ local dir="$1"
+ find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
+}
+
+openldap_find_versiontags() {
+ # scan for all datadirs
+ local openldap_datadirs=()
+ if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
+ openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
+ fi
+ openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
+
+ einfo
+ einfo "Scanning datadir(s) from slapd.conf and"
+ einfo "the default installdir for Versiontags"
+ einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
+ einfo
+
+ # scan datadirs if we have a version tag
+ openldap_found_tag=0
+ have_files=0
+ for each in ${openldap_datadirs[@]} ; do
+ CURRENT_TAGDIR="${EROOT}$(sed "s:\/::" <<< ${each})"
+ CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
+ if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
+ einfo "- Checking ${each}..."
+ if [[ -r "${CURRENT_TAG}" ]] ; then
+ # yey, we have one :)
+ einfo " Found Versiontag in ${each}"
+ source "${CURRENT_TAG}"
+ if [[ "${OLDPF}" == "" ]] ; then
+ eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
+ eerror "Please delete it"
+ eerror
+ die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
+ fi
+
+ OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
+
+ [[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
+
+ # are we on the same branch?
+ if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
+ ewarn " Versiontag doesn't match current major release!"
+ if [[ "${have_files}" == "1" ]] ; then
+ eerror " Versiontag says other major and you (probably) have datafiles!"
+ echo
+ openldap_upgrade_howto
+ else
+ einfo " No real problem, seems there's no database."
+ fi
+ else
+ einfo " Versiontag is fine here :)"
+ fi
+ else
+ einfo " Non-tagged dir ${each}"
+ [[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
+ if [[ "${have_files}" == "1" ]] ; then
+ einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
+ echo
+
+ eerror
+ eerror "Your OpenLDAP Installation has a non tagged datadir that"
+ eerror "possibly contains a database at ${CURRENT_TAGDIR}"
+ eerror
+ eerror "Please export data if any entered and empty or remove"
+ eerror "the directory, installation has been stopped so you"
+ eerror "can take required action"
+ eerror
+ eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
+ eerror
+ openldap_upgrade_howto
+ die "Please move the datadir ${CURRENT_TAGDIR} away"
+ fi
+ fi
+ einfo
+ fi
+ done
+ [[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
+
+ # Now we must check for the major version of sys-libs/db linked against.
+ # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
+ SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
+ if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
+ OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
+ | awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
+ local fail=0
+
+ # This will not cover detection of cn=Config based configuration, but
+ # it's hopefully good enough.
+ if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted away from backend shell!"
+ echo
+ fail=1
+ fi
+ if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted to mdb!"
+ echo
+ fail=1
+ elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ :
+ # Nothing wrong here.
+ elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was not built against"
+ eerror " any version of sys-libs/db, but the new one will build"
+ eerror " against ${NEWVER} and your database may be inaccessible."
+ echo
+ fail=1
+ elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will not be"
+ eerror " built against any version and your database may be"
+ eerror " inaccessible."
+ echo
+ fail=1
+ elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will build against"
+ eerror " ${NEWVER} and your database would be inaccessible."
+ echo
+ fail=1
+ fi
+ [[ "${fail}" == "1" ]] && openldap_upgrade_howto
+ fi
+
+ echo
+ einfo
+ einfo "All datadirs are fine, proceeding with merge now..."
+ einfo
+}
+
+openldap_upgrade_howto() {
+ local d l i
+ eerror
+ eerror "A (possible old) installation of OpenLDAP was detected,"
+ eerror "installation will not proceed for now."
+ eerror
+ eerror "As major version upgrades can corrupt your database,"
+ eerror "you need to dump your database and re-create it afterwards."
+ eerror
+ eerror "Additionally, rebuilding against different major versions of the"
+ eerror "sys-libs/db libraries will cause your database to be inaccessible."
+ eerror ""
+ d="$(date -u +%s)"
+ l="/root/ldapdump.${d}"
+ i="${l}.raw"
+ eerror " 1. /etc/init.d/slapd stop"
+ eerror " 2. slapcat -l ${i}"
+ eerror " 3. grep -E -v '^(entry|context)CSN:' <${i} >${l}"
+ eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
+ eerror " 5. emerge --update \=net-nds/${PF}"
+ eerror " 6. etc-update, and ensure that you apply the changes"
+ eerror " 7. slapadd -l ${l}"
+ eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
+ eerror " 9. /etc/init.d/slapd start"
+ eerror "10. Check that your data is intact."
+ eerror "11. Set up the new replication system."
+ eerror
+ if [[ "${FORCE_UPGRADE}" != "1" ]]; then
+ die "You need to upgrade your database first"
+ else
+ eerror "You have the magical FORCE_UPGRADE=1 in place."
+ eerror "Don't say you weren't warned about data loss."
+ fi
+}
+
+pkg_setup() {
+ if ! use sasl && use cxx ; then
+ die "To build the ldapc++ library you must emerge openldap with sasl support"
+ fi
+ # Bug #322787
+ if use minimal && ! has_version "net-nds/openldap" ; then
+ einfo "No datadir scan needed, openldap not installed"
+ elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
+ einfo "Skipping scan for previous datadirs as requested by minimal useflag"
+ else
+ openldap_find_versiontags
+ fi
+}
+
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
+src_prepare() {
+ # The system copy of dev-db/lmdb must match the version that this copy
+ # of OpenLDAP shipped with! See bug #588792.
+ #
+ # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
+ # the bundled lmdb's header to find out the version.
+ local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
+ libraries/liblmdb/lmdb.h || die)
+ printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
+
+ if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
+ eerror "Source lmdb version: ${bundled_lmdb_version}"
+ eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
+ die "Ebuild needs to update SYSTEM_LMDB_VER!"
+ fi
+
+ rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
+
+ local filename
+ for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
+ iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
+ mv "${filename}.utf8" "${filename}"
+ done
+
+ default
+
+ sed -i \
+ -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
+ -e '/MKDIR.*.(DESTDIR)\/run/d' \
+ servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
+
+ pushd build &>/dev/null || die "pushd build"
+ einfo "Making sure upstream build strip does not do stripping too early"
+ sed -i.orig \
+ -e '/^STRIP/s,-s,,g' \
+ top.mk || die "Failed to remove too early stripping"
+ popd &>/dev/null || die
+
+ # Fails with OpenSSL 3, bug #848894
+ # https://bugs.openldap.org/show_bug.cgi?id=10009
+ rm tests/scripts/test076-authid-rewrite || die
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+build_contrib_module() {
+ # <dir> [<target>]
+ pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
+ einfo "Compiling contrib-module: $1"
+ local target="${2:-all}"
+ emake \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
+ STRIP=/bin/true \
+ "${target}"
+ popd &>/dev/null || die
+}
+
+multilib_src_configure() {
+ # Workaround for bug #923334, #938553, #946816
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ # Optional Features
+ myconf+=(
+ --enable-option-checking
+ $(use_enable debug)
+ --enable-dynamic
+ $(use_enable syslog)
+ --enable-ipv6
+ --enable-local
+ )
+
+ # Optional Packages
+ myconf+=(
+ --without-fetch
+ $(multilib_native_use_with sasl cyrus-sasl)
+ )
+
+ if use experimental ; then
+ # connectionless ldap per bug #342439
+ # connectionless is a unsupported feature according to Howard Chu
+ # see https://bugs.openldap.org/show_bug.cgi?id=9739
+ # (see also bug #892009)
+ append-flags -DLDAP_CONNECTIONLESS
+ fi
+
+ if ! use minimal && multilib_is_native_abi; then
+ # SLAPD (Standalone LDAP Daemon) Options
+ # overlay chaining requires '--enable-ldap' #296567
+ # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
+ myconf+=(
+ --enable-ldap=yes
+ --enable-slapd
+ $(use_enable cleartext)
+ $(use_enable crypt)
+ $(multilib_native_use_enable sasl spasswd)
+ --disable-slp
+ $(use_enable tcpd wrappers)
+ )
+ if use experimental ; then
+ myconf+=(
+ --enable-dynacl
+ # ACI build as dynamic module not supported (yet)
+ --enable-aci=yes
+ )
+ fi
+
+ for option in modules rlookups slapi; do
+ myconf+=( --enable-${option} )
+ done
+
+ # static SLAPD backends
+ for backend in mdb; do
+ myconf+=( --enable-${backend}=yes )
+ done
+
+ # module SLAPD backends
+ for backend in asyncmeta dnssrv meta null passwd relay sock; do
+ # missing modules: wiredtiger (not available in portage)
+ myconf+=( --enable-${backend}=mod )
+ done
+
+ use perl && myconf+=( --enable-perl=mod )
+
+ if use odbc ; then
+ myconf+=( --enable-sql=mod )
+ if use iodbc ; then
+ myconf+=( --with-odbc="iodbc" )
+ append-cflags -I"${EPREFIX}"/usr/include/iodbc
+ else
+ myconf+=( --with-odbc="unixodbc" )
+ fi
+ fi
+
+ use overlays && myconf+=( --enable-overlays=mod )
+ use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
+ # compile-in the syncprov
+ myconf+=( --enable-syncprov=yes )
+
+ # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
+ myconf+=( --enable-balancer=yes )
+
+ # SLAPD Password Module Options
+ myconf+=(
+ $(use_enable argon2)
+ )
+
+ # Optional Packages
+ myconf+=(
+ $(use_with systemd)
+ )
+ else
+ myconf+=(
+ --disable-backends
+ --disable-slapd
+ --disable-mdb
+ --disable-overlays
+ --disable-autoca
+ --disable-syslog
+ --without-systemd
+ )
+ fi
+
+ # Library Generation & Linking Options
+ myconf+=(
+ $(use_enable static-libs static)
+ --enable-shared
+ --enable-versioning
+ --with-pic
+ )
+
+ # some cross-compiling tests don't pan out well.
+ tc-is-cross-compiler && myconf+=(
+ --with-yielding-select=yes
+ )
+
+ local ssl_lib="no"
+ if use ssl || ( ! use minimal && use samba ) ; then
+ if use gnutls ; then
+ myconf+=( --with-tls="gnutls" )
+ else
+ # disable MD2 hash function
+ append-cflags -DOPENSSL_NO_MD2
+ myconf+=( --with-tls="openssl" )
+ fi
+ else
+ myconf+=( --with-tls="no" )
+ fi
+
+ tc-export AR CC CXX
+
+ ECONF_SOURCE="${S}" \
+ STRIP=/bin/true \
+ econf \
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
+ --localstatedir="${EPREFIX}"/var \
+ --runstatedir="${EPREFIX}"/run \
+ --sharedstatedir="${EPREFIX}"/var/lib \
+ "${myconf[@]}"
+
+ # argument '--runstatedir' seems to have no effect therefore this workaround
+ sed -i \
+ -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
+ configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
+
+ sed -i \
+ -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
+ doc/guide/admin/security.sdf || die 'could not fix run path in doc'
+
+ emake depend
+}
+
+src_configure_cxx() {
+ # This needs the libraries built by the first build run.
+ # we have to run it AFTER the main build, not just after the main configure
+ local myconf_ldapcpp=(
+ --with-libldap="${E}/lib"
+ --with-ldap-includes="${S}/include"
+ )
+
+ mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+
+ local LDFLAGS="${LDFLAGS}"
+ local CPPFLAGS="${CPPFLAGS}"
+
+ append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
+ append-cppflags -I"${BUILD_DIR}"/include
+
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ STRIP=/bin/true \
+ econf \
+ "${myconf_ldapcpp[@]}"
+ popd &>/dev/null || die "popd contrib/ldapc++"
+}
+
+multilib_src_compile() {
+ tc-export AR CC CXX
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP="/bin/true"
+
+ if ! use minimal && multilib_is_native_abi ; then
+ if use cxx ; then
+ einfo "Building contrib library: ldapc++"
+ src_configure_cxx
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+ emake
+ popd &>/dev/null || die
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Building contrib-module: smbk5pwd"
+ pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
+
+ MY_DEFS="-DDO_SHADOW"
+ if use samba ; then
+ MY_DEFS="${MY_DEFS} -DDO_SAMBA"
+ MY_KRB5_INC=""
+ fi
+ if use kerberos ; then
+ MY_DEFS="${MY_DEFS} -DDO_KRB5"
+ MY_KRB5_INC="$(krb5-config --cflags)"
+ fi
+
+ emake \
+ DEFS="${MY_DEFS}" \
+ KRB5_INC="${MY_KRB5_INC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use overlays ; then
+ einfo "Building contrib-module: samba4"
+ pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
+
+ emake \
+ CC="$(tc-getCC)" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ STRIP=/bin/true
+ popd &>/dev/null || die
+ fi
+
+ if use kerberos ; then
+ if use kinit ; then
+ build_contrib_module "kinit" "kinit.c" "kinit"
+ fi
+ build_contrib_module "passwd" "pw-kerberos.la"
+ fi
+
+ if use pbkdf2; then
+ build_contrib_module "passwd/pbkdf2"
+ fi
+
+ if use sha2 ; then
+ build_contrib_module "passwd/sha2"
+ fi
+
+ # We could build pw-radius if GNURadius would install radlib.h
+ build_contrib_module "passwd" "pw-netscape.la"
+
+ #build_contrib_module "acl" "posixgroup.la" # example code only
+ #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
+ build_contrib_module "addpartial"
+ build_contrib_module "allop"
+ build_contrib_module "allowed"
+ build_contrib_module "autogroup"
+ build_contrib_module "cloak"
+ # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
+ build_contrib_module "denyop"
+ build_contrib_module "dsaschema"
+ build_contrib_module "dupent"
+ build_contrib_module "lastbind"
+ # lastmod may not play well with other overlays
+ build_contrib_module "lastmod"
+ build_contrib_module "noopsrch"
+ #build_contrib_module "nops" https://bugs.gentoo.org/641576
+ #build_contrib_module "nssov" RESO:LATER
+ build_contrib_module "trace"
+ # build slapi-plugins
+ pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
+ einfo "Building contrib-module: addrdnvalues plugin"
+ $(tc-getCC) -shared \
+ -I"${BUILD_DIR}"/include \
+ -I../../../include \
+ ${CPPFLAGS} \
+ ${CFLAGS} \
+ -fPIC \
+ ${LDFLAGS} \
+ -o libaddrdnvalues-plugin.so \
+ addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
+ popd &>/dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cd tests || die
+ pwd
+
+ # Increase various test timeouts/delays, bug #894012
+ # We can't just double everything as there's a cumulative effect.
+ export SLEEP0=2 # originally 1
+ export SLEEP1=10 # originally 7
+ export SLEEP2=20 # originally 15
+ export TIMEOUT=16 # originally 8
+
+ # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
+ # emake partests => runs ALL of the tests in parallel
+ # wt/WiredTiger is not supported in Gentoo
+ TESTS=( plloadd pmdb )
+ #TESTS+=( pldif ) # not done by default, so also exclude here
+ #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
+
+ emake -Onone "${TESTS[@]}"
+ fi
+}
+
+multilib_src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP=/bin/true \
+ install
+
+ if ! use minimal && multilib_is_native_abi; then
+ # openldap modules go here
+ # TODO: write some code to populate slapd.conf with moduleload statements
+ keepdir /usr/$(get_libdir)/openldap/openldap/
+
+ # initial data storage dir
+ keepdir /var/lib/openldap-data
+ use prefix || fowners ldap:ldap /var/lib/openldap-data
+ fperms 0700 /var/lib/openldap-data
+
+ echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+
+ # use our config
+ rm "${ED}"/etc/openldap/slapd.conf
+ insinto /etc/openldap
+ newins "${FILESDIR}"/${PN}-2.6.3-slapd-conf slapd.conf
+ configfile="${ED}"/etc/openldap/slapd.conf
+
+ # populate with built backends
+ einfo "populate config with built backends"
+ for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
+ einfo "Adding $(basename ${x})"
+ sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
+ done
+ sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
+ -i "${configfile}" || die
+ use prefix || fowners root:ldap /etc/openldap/slapd.conf
+ fperms 0640 /etc/openldap/slapd.conf
+ cp "${configfile}" "${configfile}".default || die
+
+ # install our own init scripts and systemd unit files
+ einfo "Install init scripts"
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
+ doinitd "${T}"/slapd
+ newconfd "${FILESDIR}"/slapd-confd-2.6.1 slapd
+
+ if use systemd; then
+ # The systemd unit uses Type=notify, so it is useless without USE=systemd
+ einfo "Install systemd service"
+ rm -rf "${ED}"/{,usr/}lib/systemd
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
+ systemd_dounit "${T}"/slapd.service
+ systemd_install_serviced "${FILESDIR}"/slapd.service.conf
+ newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
+ fi
+
+ # if built without SLP, we don't need to be before avahi
+ sed -i \
+ -e '/before/{s/avahi-daemon//g}' \
+ "${ED}"/etc/init.d/slapd \
+ || die
+
+ if use cxx ; then
+ einfo "Install the ldapc++ library"
+ cd "${BUILD_DIR}/contrib/ldapc++" || die
+ emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ cd "${S}"/contrib/ldapc++ || die
+ newdoc README ldapc++-README
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Install the smbk5pwd module"
+ cd "${S}/contrib/slapd-modules/smbk5pwd" || die
+ emake DESTDIR="${D}" \
+ prefix="${EPREFIX}/usr" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README smbk5pwd-README
+ fi
+
+ if use overlays ; then
+ einfo "Install the samba4 module"
+ cd "${S}/contrib/slapd-modules/samba4" || die
+ emake DESTDIR="${D}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README samba4-README
+ fi
+
+ einfo "Installing contrib modules"
+ cd "${S}/contrib/slapd-modules" || die
+ for l in */*.la */*/*.la; do
+ [[ -e ${l} ]] || continue
+ libtool --mode=install cp ${l} \
+ "${ED}"/usr/$(get_libdir)/openldap/openldap || \
+ die "installing ${l} failed"
+ done
+
+ dodoc "${FILESDIR}"/DB_CONFIG.fast.example
+ docinto contrib
+ doman */*.5
+ #newdoc acl/README*
+ newdoc addpartial/README addpartial-README
+ newdoc allop/README allop-README
+ newdoc allowed/README allowed-README
+ newdoc autogroup/README autogroup-README
+ newdoc dsaschema/README dsaschema-README
+ newdoc passwd/README passwd-README
+ cd "${S}/contrib/slapi-plugins" || die
+ insinto /usr/$(get_libdir)/openldap/openldap
+ doins */*.so
+ docinto contrib
+ newdoc addrdnvalues/README addrdnvalues-README
+
+ docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
+ docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
+
+ dosbin "${S}"/contrib/slapd-tools/statslog
+ newdoc "${S}"/contrib/slapd-tools/README README.statslog
+ fi
+
+ if ! use static-libs ; then
+ find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
+ docinto rfc ; dodoc doc/rfc/*.txt
+ rmdir -p "${D}"/var/openldap-lloadd # Created but not used by any part of current codebase.
+}
+
+pkg_preinst() {
+ # keep old libs if any
+ preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+ # bug 440470, only display the getting started help there was no openldap before,
+ # or we are going to a non-minimal build
+ ! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
+ OPENLDAP_PRINT_MESSAGES=$((! $?))
+}
+
+pkg_postinst() {
+ if ! use minimal ; then
+ if use systemd; then
+ tmpfiles_process slapd.conf
+ fi
+
+ # You cannot build SSL certificates during src_install that will make
+ # binary packages containing your SSL key, which is both a security risk
+ # and a misconfiguration if multiple machines use the same key and cert.
+ if use ssl; then
+ install_cert /etc/openldap/ssl/ldap
+ use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "add 'TLS_REQCERT allow' if you want to use them."
+ fi
+
+ if use prefix; then
+ # Warn about prefix issues with slapd
+ eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
+ eerror "to start up, and requires that certain files directories be owned by"
+ eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
+ eerror "directories, you will have to manually fix this yourself."
+ fi
+
+ # These lines force the permissions of various content to be correct
+ if [[ -d "${EROOT}"/var/run/openldap ]]; then
+ use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
+ chmod 0755 "${EROOT}"/var/run/openldap || die
+ fi
+ use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
+ chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
+ use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
+ fi
+
+ if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
+ elog "Getting started using OpenLDAP? There is some documentation available:"
+ elog "Gentoo Guide to OpenLDAP Authentication"
+ elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
+ fi
+
+ preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+}
diff --git a/net-nds/openldap/openldap-2.6.13.ebuild b/net-nds/openldap/openldap-2.6.13.ebuild
new file mode 100644
index 000000000000..9886e5e610fa
--- /dev/null
+++ b/net-nds/openldap/openldap-2.6.13.ebuild
@@ -0,0 +1,893 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Re cleanups:
+# 2.6.x and 2.5.x are both maintained streams. We keep the latest of each.
+
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles verify-sig
+
+MY_PV="$(ver_rs 1-2 _)"
+
+DESCRIPTION="LDAP suite of application and development tools"
+HOMEPAGE="https://www.openldap.org/"
+SRC_URI="
+ https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz
+ verify-sig? ( https://openldap.org/software/download/OpenLDAP/${PN}-release/${P}.tgz.asc )
+"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openldap.asc
+
+LICENSE="OPENLDAP GPL-2"
+# Subslot added for bug #835654
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
+IUSE_OVERLAY="overlays perl autoca"
+IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
+IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
+IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
+IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
+REQUIRED_USE="
+ cxx? ( sasl )
+ pbkdf2? ( ssl )
+ test? ( cleartext sasl debug )
+ autoca? ( !gnutls )
+ ?? ( test minimal )
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
+RESTRICT="!test? ( test )"
+
+SYSTEM_LMDB_VER=0.9.35
+# openssl is needed to generate lanman-passwords required by samba
+COMMON_DEPEND="
+ kernel_linux? ( sys-apps/util-linux )
+ ssl? (
+ !gnutls? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
+ gnutls? (
+ >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
+ >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ sasl? ( dev-libs/cyrus-sasl:= )
+ !minimal? (
+ dev-libs/libevent:=
+ dev-libs/libltdl
+ sys-fs/e2fsprogs
+ >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
+ argon2? ( app-crypt/argon2:= )
+ crypt? ( virtual/libcrypt:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ odbc? ( !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc ) )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ samba? (
+ dev-libs/openssl:0=
+ )
+ smbkrb5passwd? (
+ dev-libs/openssl:0=
+ kerberos? ( app-crypt/heimdal )
+ )
+ kerberos? (
+ virtual/krb5
+ kinit? ( !app-crypt/heimdal )
+ )
+ )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-apps/groff
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-ldap )
+"
+
+# The user/group are only used for running daemons which are
+# disabled in minimal builds, so elide the accounts too.
+BDEPEND="
+ !minimal? (
+ acct-group/ldap
+ acct-user/ldap
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openldap-20201216 )
+"
+
+# for tracking versions
+OPENLDAP_VERSIONTAG=".version-tag"
+OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # USE=cxx
+ /usr/include/LDAPAsynConnection.h
+ /usr/include/LDAPAttrType.h
+ /usr/include/LDAPAttribute.h
+ /usr/include/LDAPAttributeList.h
+ /usr/include/LDAPConnection.h
+ /usr/include/LDAPConstraints.h
+ /usr/include/LDAPControl.h
+ /usr/include/LDAPControlSet.h
+ /usr/include/LDAPEntry.h
+ /usr/include/LDAPEntryList.h
+ /usr/include/LDAPException.h
+ /usr/include/LDAPExtResult.h
+ /usr/include/LDAPMessage.h
+ /usr/include/LDAPMessageQueue.h
+ /usr/include/LDAPModList.h
+ /usr/include/LDAPModification.h
+ /usr/include/LDAPObjClass.h
+ /usr/include/LDAPRebind.h
+ /usr/include/LDAPRebindAuth.h
+ /usr/include/LDAPReferenceList.h
+ /usr/include/LDAPResult.h
+ /usr/include/LDAPSaslBindResult.h
+ /usr/include/LDAPSchema.h
+ /usr/include/LDAPSearchReference.h
+ /usr/include/LDAPSearchResult.h
+ /usr/include/LDAPSearchResults.h
+ /usr/include/LDAPUrl.h
+ /usr/include/LDAPUrlList.h
+ /usr/include/LdifReader.h
+ /usr/include/LdifWriter.h
+ /usr/include/SaslInteraction.h
+ /usr/include/SaslInteractionHandler.h
+ /usr/include/StringList.h
+ /usr/include/TlsOptions.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
+ "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
+ "${FILESDIR}"/${PN}-2.6.1-cloak.patch
+ "${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
+)
+
+openldap_filecount() {
+ local dir="$1"
+ find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
+}
+
+openldap_find_versiontags() {
+ # scan for all datadirs
+ local openldap_datadirs=()
+ if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
+ openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
+ fi
+ openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
+
+ einfo
+ einfo "Scanning datadir(s) from slapd.conf and"
+ einfo "the default installdir for Versiontags"
+ einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
+ einfo
+
+ # scan datadirs if we have a version tag
+ openldap_found_tag=0
+ have_files=0
+ for each in ${openldap_datadirs[@]} ; do
+ CURRENT_TAGDIR="${EROOT}$(sed "s:\/::" <<< ${each})"
+ CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
+ if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
+ einfo "- Checking ${each}..."
+ if [[ -r "${CURRENT_TAG}" ]] ; then
+ # yey, we have one :)
+ einfo " Found Versiontag in ${each}"
+ source "${CURRENT_TAG}"
+ if [[ "${OLDPF}" == "" ]] ; then
+ eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
+ eerror "Please delete it"
+ eerror
+ die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
+ fi
+
+ OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
+
+ [[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
+
+ # are we on the same branch?
+ if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
+ ewarn " Versiontag doesn't match current major release!"
+ if [[ "${have_files}" == "1" ]] ; then
+ eerror " Versiontag says other major and you (probably) have datafiles!"
+ echo
+ openldap_upgrade_howto
+ else
+ einfo " No real problem, seems there's no database."
+ fi
+ else
+ einfo " Versiontag is fine here :)"
+ fi
+ else
+ einfo " Non-tagged dir ${each}"
+ [[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
+ if [[ "${have_files}" == "1" ]] ; then
+ einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
+ echo
+
+ eerror
+ eerror "Your OpenLDAP Installation has a non tagged datadir that"
+ eerror "possibly contains a database at ${CURRENT_TAGDIR}"
+ eerror
+ eerror "Please export data if any entered and empty or remove"
+ eerror "the directory, installation has been stopped so you"
+ eerror "can take required action"
+ eerror
+ eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
+ eerror
+ openldap_upgrade_howto
+ die "Please move the datadir ${CURRENT_TAGDIR} away"
+ fi
+ fi
+ einfo
+ fi
+ done
+ [[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
+
+ # Now we must check for the major version of sys-libs/db linked against.
+ # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
+ SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
+ if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
+ OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
+ | awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
+ local fail=0
+
+ # This will not cover detection of cn=Config based configuration, but
+ # it's hopefully good enough.
+ if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted away from backend shell!"
+ echo
+ fail=1
+ fi
+ if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted to mdb!"
+ echo
+ fail=1
+ elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ :
+ # Nothing wrong here.
+ elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was not built against"
+ eerror " any version of sys-libs/db, but the new one will build"
+ eerror " against ${NEWVER} and your database may be inaccessible."
+ echo
+ fail=1
+ elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will not be"
+ eerror " built against any version and your database may be"
+ eerror " inaccessible."
+ echo
+ fail=1
+ elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will build against"
+ eerror " ${NEWVER} and your database would be inaccessible."
+ echo
+ fail=1
+ fi
+ [[ "${fail}" == "1" ]] && openldap_upgrade_howto
+ fi
+
+ echo
+ einfo
+ einfo "All datadirs are fine, proceeding with merge now..."
+ einfo
+}
+
+openldap_upgrade_howto() {
+ local d l i
+ eerror
+ eerror "A (possible old) installation of OpenLDAP was detected,"
+ eerror "installation will not proceed for now."
+ eerror
+ eerror "As major version upgrades can corrupt your database,"
+ eerror "you need to dump your database and re-create it afterwards."
+ eerror
+ eerror "Additionally, rebuilding against different major versions of the"
+ eerror "sys-libs/db libraries will cause your database to be inaccessible."
+ eerror ""
+ d="$(date -u +%s)"
+ l="/root/ldapdump.${d}"
+ i="${l}.raw"
+ eerror " 1. /etc/init.d/slapd stop"
+ eerror " 2. slapcat -l ${i}"
+ eerror " 3. grep -E -v '^(entry|context)CSN:' <${i} >${l}"
+ eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
+ eerror " 5. emerge --update \=net-nds/${PF}"
+ eerror " 6. etc-update, and ensure that you apply the changes"
+ eerror " 7. slapadd -l ${l}"
+ eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
+ eerror " 9. /etc/init.d/slapd start"
+ eerror "10. Check that your data is intact."
+ eerror "11. Set up the new replication system."
+ eerror
+ if [[ "${FORCE_UPGRADE}" != "1" ]]; then
+ die "You need to upgrade your database first"
+ else
+ eerror "You have the magical FORCE_UPGRADE=1 in place."
+ eerror "Don't say you weren't warned about data loss."
+ fi
+}
+
+pkg_setup() {
+ if ! use sasl && use cxx ; then
+ die "To build the ldapc++ library you must emerge openldap with sasl support"
+ fi
+ # Bug #322787
+ if use minimal && ! has_version "net-nds/openldap" ; then
+ einfo "No datadir scan needed, openldap not installed"
+ elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
+ einfo "Skipping scan for previous datadirs as requested by minimal useflag"
+ else
+ openldap_find_versiontags
+ fi
+}
+
+src_unpack() {
+ use verify-sig &&
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tgz{,.asc}
+ default
+}
+
+src_prepare() {
+ # The system copy of dev-db/lmdb must match the version that this copy
+ # of OpenLDAP shipped with! See bug #588792.
+ #
+ # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
+ # the bundled lmdb's header to find out the version.
+ local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
+ libraries/liblmdb/lmdb.h || die)
+ printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
+
+ if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
+ eerror "Source lmdb version: ${bundled_lmdb_version}"
+ eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
+ die "Ebuild needs to update SYSTEM_LMDB_VER!"
+ fi
+
+ rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
+
+ local filename
+ for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
+ iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
+ mv "${filename}.utf8" "${filename}"
+ done
+
+ default
+
+ sed -i \
+ -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
+ -e '/MKDIR.*.(DESTDIR)\/run/d' \
+ servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
+
+ pushd build &>/dev/null || die "pushd build"
+ einfo "Making sure upstream build strip does not do stripping too early"
+ sed -i.orig \
+ -e '/^STRIP/s,-s,,g' \
+ top.mk || die "Failed to remove too early stripping"
+ popd &>/dev/null || die
+
+ # Fails with OpenSSL 3, bug #848894
+ # https://bugs.openldap.org/show_bug.cgi?id=10009
+ rm tests/scripts/test076-authid-rewrite || die
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+build_contrib_module() {
+ # <dir> [<target>]
+ pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
+ einfo "Compiling contrib-module: $1"
+ local target="${2:-all}"
+ emake \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
+ STRIP=/bin/true \
+ "${target}"
+ popd &>/dev/null || die
+}
+
+multilib_src_configure() {
+ # Workaround for bug #923334, #938553, #946816
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ # Optional Features
+ myconf+=(
+ --enable-option-checking
+ $(use_enable debug)
+ --enable-dynamic
+ $(use_enable syslog)
+ --enable-ipv6
+ --enable-local
+ )
+
+ # Optional Packages
+ myconf+=(
+ --without-fetch
+ $(multilib_native_use_with sasl cyrus-sasl)
+ )
+
+ if use experimental ; then
+ # connectionless ldap per bug #342439
+ # connectionless is a unsupported feature according to Howard Chu
+ # see https://bugs.openldap.org/show_bug.cgi?id=9739
+ # (see also bug #892009)
+ append-flags -DLDAP_CONNECTIONLESS
+ fi
+
+ if ! use minimal && multilib_is_native_abi; then
+ # SLAPD (Standalone LDAP Daemon) Options
+ # overlay chaining requires '--enable-ldap' #296567
+ # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
+ myconf+=(
+ --enable-ldap=yes
+ --enable-slapd
+ $(use_enable cleartext)
+ $(use_enable crypt)
+ $(multilib_native_use_enable sasl spasswd)
+ --disable-slp
+ $(use_enable tcpd wrappers)
+ )
+ if use experimental ; then
+ myconf+=(
+ --enable-dynacl
+ # ACI build as dynamic module not supported (yet)
+ --enable-aci=yes
+ )
+ fi
+
+ for option in modules rlookups slapi; do
+ myconf+=( --enable-${option} )
+ done
+
+ # static SLAPD backends
+ for backend in mdb; do
+ myconf+=( --enable-${backend}=yes )
+ done
+
+ # module SLAPD backends
+ for backend in asyncmeta dnssrv meta null passwd relay sock; do
+ # missing modules: wiredtiger (not available in portage)
+ myconf+=( --enable-${backend}=mod )
+ done
+
+ use perl && myconf+=( --enable-perl=mod )
+
+ if use odbc ; then
+ myconf+=( --enable-sql=mod )
+ if use iodbc ; then
+ myconf+=( --with-odbc="iodbc" )
+ append-cflags -I"${EPREFIX}"/usr/include/iodbc
+ else
+ myconf+=( --with-odbc="unixodbc" )
+ fi
+ fi
+
+ use overlays && myconf+=( --enable-overlays=mod )
+ use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
+ # compile-in the syncprov
+ myconf+=( --enable-syncprov=yes )
+
+ # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
+ myconf+=( --enable-balancer=yes )
+
+ # SLAPD Password Module Options
+ myconf+=(
+ $(use_enable argon2)
+ )
+
+ # Optional Packages
+ myconf+=(
+ $(use_with systemd)
+ )
+ else
+ myconf+=(
+ --disable-backends
+ --disable-slapd
+ --disable-mdb
+ --disable-overlays
+ --disable-autoca
+ --disable-syslog
+ --without-systemd
+ )
+ fi
+
+ # Library Generation & Linking Options
+ myconf+=(
+ $(use_enable static-libs static)
+ --enable-shared
+ --enable-versioning
+ --with-pic
+ )
+
+ # some cross-compiling tests don't pan out well.
+ tc-is-cross-compiler && myconf+=(
+ --with-yielding-select=yes
+ )
+
+ local ssl_lib="no"
+ if use ssl || ( ! use minimal && use samba ) ; then
+ if use gnutls ; then
+ myconf+=( --with-tls="gnutls" )
+ else
+ # disable MD2 hash function
+ append-cflags -DOPENSSL_NO_MD2
+ myconf+=( --with-tls="openssl" )
+ fi
+ else
+ myconf+=( --with-tls="no" )
+ fi
+
+ tc-export AR CC CXX
+
+ ECONF_SOURCE="${S}" \
+ STRIP=/bin/true \
+ econf \
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
+ --localstatedir="${EPREFIX}"/var \
+ --runstatedir="${EPREFIX}"/run \
+ --sharedstatedir="${EPREFIX}"/var/lib \
+ "${myconf[@]}"
+
+ # argument '--runstatedir' seems to have no effect therefore this workaround
+ sed -i \
+ -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
+ configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
+
+ sed -i \
+ -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
+ doc/guide/admin/security.sdf || die 'could not fix run path in doc'
+
+ emake depend
+}
+
+src_configure_cxx() {
+ # This needs the libraries built by the first build run.
+ # we have to run it AFTER the main build, not just after the main configure
+ local myconf_ldapcpp=(
+ --with-libldap="${E}/lib"
+ --with-ldap-includes="${S}/include"
+ )
+
+ mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+
+ local LDFLAGS="${LDFLAGS}"
+ local CPPFLAGS="${CPPFLAGS}"
+
+ append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
+ append-cppflags -I"${BUILD_DIR}"/include
+
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ STRIP=/bin/true \
+ econf \
+ "${myconf_ldapcpp[@]}"
+ popd &>/dev/null || die "popd contrib/ldapc++"
+}
+
+multilib_src_compile() {
+ tc-export AR CC CXX
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP="/bin/true"
+
+ if ! use minimal && multilib_is_native_abi ; then
+ if use cxx ; then
+ einfo "Building contrib library: ldapc++"
+ src_configure_cxx
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+ emake
+ popd &>/dev/null || die
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Building contrib-module: smbk5pwd"
+ pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
+
+ MY_DEFS="-DDO_SHADOW"
+ if use samba ; then
+ MY_DEFS="${MY_DEFS} -DDO_SAMBA"
+ MY_KRB5_INC=""
+ fi
+ if use kerberos ; then
+ MY_DEFS="${MY_DEFS} -DDO_KRB5"
+ MY_KRB5_INC="$(krb5-config --cflags)"
+ fi
+
+ emake \
+ DEFS="${MY_DEFS}" \
+ KRB5_INC="${MY_KRB5_INC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use overlays ; then
+ einfo "Building contrib-module: samba4"
+ pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
+
+ emake \
+ CC="$(tc-getCC)" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ STRIP=/bin/true
+ popd &>/dev/null || die
+ fi
+
+ if use kerberos ; then
+ if use kinit ; then
+ build_contrib_module "kinit" "kinit.c" "kinit"
+ fi
+ build_contrib_module "passwd" "pw-kerberos.la"
+ fi
+
+ if use pbkdf2; then
+ build_contrib_module "passwd/pbkdf2"
+ fi
+
+ if use sha2 ; then
+ build_contrib_module "passwd/sha2"
+ fi
+
+ # We could build pw-radius if GNURadius would install radlib.h
+ build_contrib_module "passwd" "pw-netscape.la"
+
+ #build_contrib_module "acl" "posixgroup.la" # example code only
+ #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
+ build_contrib_module "addpartial"
+ build_contrib_module "allop"
+ build_contrib_module "allowed"
+ build_contrib_module "autogroup"
+ build_contrib_module "cloak"
+ # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
+ build_contrib_module "denyop"
+ build_contrib_module "dsaschema"
+ build_contrib_module "dupent"
+ build_contrib_module "lastbind"
+ # lastmod may not play well with other overlays
+ build_contrib_module "lastmod"
+ build_contrib_module "noopsrch"
+ #build_contrib_module "nops" https://bugs.gentoo.org/641576
+ #build_contrib_module "nssov" RESO:LATER
+ build_contrib_module "trace"
+ # build slapi-plugins
+ pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
+ einfo "Building contrib-module: addrdnvalues plugin"
+ $(tc-getCC) -shared \
+ -I"${BUILD_DIR}"/include \
+ -I../../../include \
+ ${CPPFLAGS} \
+ ${CFLAGS} \
+ -fPIC \
+ ${LDFLAGS} \
+ -o libaddrdnvalues-plugin.so \
+ addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
+ popd &>/dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cd tests || die
+ pwd
+
+ # Increase various test timeouts/delays, bug #894012
+ # We can't just double everything as there's a cumulative effect.
+ export SLEEP0=2 # originally 1
+ export SLEEP1=10 # originally 7
+ export SLEEP2=20 # originally 15
+ export TIMEOUT=16 # originally 8
+
+ # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
+ # emake partests => runs ALL of the tests in parallel
+ # wt/WiredTiger is not supported in Gentoo
+ TESTS=( plloadd pmdb )
+ #TESTS+=( pldif ) # not done by default, so also exclude here
+ #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
+
+ emake -Onone "${TESTS[@]}"
+ fi
+}
+
+multilib_src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP=/bin/true \
+ install
+
+ if ! use minimal && multilib_is_native_abi; then
+ # openldap modules go here
+ # TODO: write some code to populate slapd.conf with moduleload statements
+ keepdir /usr/$(get_libdir)/openldap/openldap/
+
+ # initial data storage dir
+ keepdir /var/lib/openldap-data
+ use prefix || fowners ldap:ldap /var/lib/openldap-data
+ fperms 0700 /var/lib/openldap-data
+
+ echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+
+ # use our config
+ rm "${ED}"/etc/openldap/slapd.conf
+ insinto /etc/openldap
+ newins "${FILESDIR}"/${PN}-2.6.3-slapd-conf slapd.conf
+ configfile="${ED}"/etc/openldap/slapd.conf
+
+ # populate with built backends
+ einfo "populate config with built backends"
+ for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
+ einfo "Adding $(basename ${x})"
+ sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
+ done
+ sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
+ -i "${configfile}" || die
+ use prefix || fowners root:ldap /etc/openldap/slapd.conf
+ fperms 0640 /etc/openldap/slapd.conf
+ cp "${configfile}" "${configfile}".default || die
+
+ # install our own init scripts and systemd unit files
+ einfo "Install init scripts"
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
+ doinitd "${T}"/slapd
+ newconfd "${FILESDIR}"/slapd-confd-2.6.1 slapd
+
+ if use systemd; then
+ # The systemd unit uses Type=notify, so it is useless without USE=systemd
+ einfo "Install systemd service"
+ rm -rf "${ED}"/{,usr/}lib/systemd
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
+ systemd_dounit "${T}"/slapd.service
+ systemd_install_serviced "${FILESDIR}"/slapd.service.conf
+ newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
+ fi
+
+ # if built without SLP, we don't need to be before avahi
+ sed -i \
+ -e '/before/{s/avahi-daemon//g}' \
+ "${ED}"/etc/init.d/slapd \
+ || die
+
+ if use cxx ; then
+ einfo "Install the ldapc++ library"
+ cd "${BUILD_DIR}/contrib/ldapc++" || die
+ emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ cd "${S}"/contrib/ldapc++ || die
+ newdoc README ldapc++-README
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Install the smbk5pwd module"
+ cd "${S}/contrib/slapd-modules/smbk5pwd" || die
+ emake DESTDIR="${D}" \
+ prefix="${EPREFIX}/usr" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README smbk5pwd-README
+ fi
+
+ if use overlays ; then
+ einfo "Install the samba4 module"
+ cd "${S}/contrib/slapd-modules/samba4" || die
+ emake DESTDIR="${D}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README samba4-README
+ fi
+
+ einfo "Installing contrib modules"
+ cd "${S}/contrib/slapd-modules" || die
+ for l in */*.la */*/*.la; do
+ [[ -e ${l} ]] || continue
+ libtool --mode=install cp ${l} \
+ "${ED}"/usr/$(get_libdir)/openldap/openldap || \
+ die "installing ${l} failed"
+ done
+
+ dodoc "${FILESDIR}"/DB_CONFIG.fast.example
+ docinto contrib
+ doman */*.5
+ #newdoc acl/README*
+ newdoc addpartial/README addpartial-README
+ newdoc allop/README allop-README
+ newdoc allowed/README allowed-README
+ newdoc autogroup/README autogroup-README
+ newdoc dsaschema/README dsaschema-README
+ newdoc passwd/README passwd-README
+ cd "${S}/contrib/slapi-plugins" || die
+ insinto /usr/$(get_libdir)/openldap/openldap
+ doins */*.so
+ docinto contrib
+ newdoc addrdnvalues/README addrdnvalues-README
+
+ docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
+ docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
+
+ dosbin "${S}"/contrib/slapd-tools/statslog
+ newdoc "${S}"/contrib/slapd-tools/README README.statslog
+ fi
+
+ if ! use static-libs ; then
+ find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
+ docinto rfc ; dodoc doc/rfc/*.txt
+ rmdir -p "${D}"/var/openldap-lloadd # Created but not used by any part of current codebase.
+}
+
+pkg_preinst() {
+ # keep old libs if any
+ preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+ # bug 440470, only display the getting started help there was no openldap before,
+ # or we are going to a non-minimal build
+ ! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
+ OPENLDAP_PRINT_MESSAGES=$((! $?))
+}
+
+pkg_postinst() {
+ if ! use minimal ; then
+ if use systemd; then
+ tmpfiles_process slapd.conf
+ fi
+
+ # You cannot build SSL certificates during src_install that will make
+ # binary packages containing your SSL key, which is both a security risk
+ # and a misconfiguration if multiple machines use the same key and cert.
+ if use ssl; then
+ install_cert /etc/openldap/ssl/ldap
+ use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "add 'TLS_REQCERT allow' if you want to use them."
+ fi
+
+ if use prefix; then
+ # Warn about prefix issues with slapd
+ eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
+ eerror "to start up, and requires that certain files directories be owned by"
+ eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
+ eerror "directories, you will have to manually fix this yourself."
+ fi
+
+ # These lines force the permissions of various content to be correct
+ if [[ -d "${EROOT}"/var/run/openldap ]]; then
+ use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
+ chmod 0755 "${EROOT}"/var/run/openldap || die
+ fi
+ use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
+ chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
+ use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
+ fi
+
+ if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
+ elog "Getting started using OpenLDAP? There is some documentation available:"
+ elog "Gentoo Guide to OpenLDAP Authentication"
+ elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
+ fi
+
+ preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+}
diff --git a/net-nds/openldap/openldap-2.6.8-r1.ebuild b/net-nds/openldap/openldap-2.6.8-r1.ebuild
new file mode 100644
index 000000000000..4525d2599106
--- /dev/null
+++ b/net-nds/openldap/openldap-2.6.8-r1.ebuild
@@ -0,0 +1,894 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Re cleanups:
+# 2.5.x is an LTS release so we want to keep it for a while.
+
+inherit autotools flag-o-matic multilib multilib-minimal preserve-libs
+inherit ssl-cert toolchain-funcs systemd tmpfiles
+
+MY_PV="$(ver_rs 1-2 _)"
+
+BIS_PN=rfc2307bis.schema
+BIS_PV=20140524
+BIS_P="${BIS_PN}-${BIS_PV}"
+
+DESCRIPTION="LDAP suite of application and development tools"
+HOMEPAGE="https://www.openldap.org/"
+SRC_URI="
+ https://gitlab.com/openldap/${PN}/-/archive/OPENLDAP_REL_ENG_${MY_PV}/${PN}-OPENLDAP_REL_ENG_${MY_PV}.tar.bz2
+ mirror://gentoo/${BIS_P}
+"
+S="${WORKDIR}"/${PN}-OPENLDAP_REL_ENG_${MY_PV}
+
+LICENSE="OPENLDAP GPL-2"
+# Subslot added for bug #835654
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+
+IUSE_DAEMON="argon2 +cleartext crypt experimental minimal samba tcpd"
+IUSE_OVERLAY="overlays perl autoca"
+IUSE_OPTIONAL="debug gnutls iodbc odbc sasl ssl selinux static-libs +syslog test"
+IUSE_CONTRIB="kerberos kinit pbkdf2 sha2 smbkrb5passwd"
+IUSE_CONTRIB="${IUSE_CONTRIB} cxx"
+IUSE="systemd ${IUSE_DAEMON} ${IUSE_BACKEND} ${IUSE_OVERLAY} ${IUSE_OPTIONAL} ${IUSE_CONTRIB}"
+REQUIRED_USE="
+ cxx? ( sasl )
+ pbkdf2? ( ssl )
+ test? ( cleartext sasl debug )
+ autoca? ( !gnutls )
+ ?? ( test minimal )
+ kerberos? ( ?? ( kinit smbkrb5passwd ) )
+"
+RESTRICT="!test? ( test )"
+
+SYSTEM_LMDB_VER=0.9.33
+# openssl is needed to generate lanman-passwords required by samba
+COMMON_DEPEND="
+ kernel_linux? ( sys-apps/util-linux )
+ ssl? (
+ !gnutls? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
+ gnutls? (
+ >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}]
+ >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ sasl? ( dev-libs/cyrus-sasl:= )
+ !minimal? (
+ dev-libs/libevent:=
+ dev-libs/libltdl
+ sys-fs/e2fsprogs
+ >=dev-db/lmdb-${SYSTEM_LMDB_VER}:=
+ argon2? ( app-crypt/argon2:= )
+ crypt? ( virtual/libcrypt:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ odbc? ( !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc ) )
+ perl? ( dev-lang/perl:=[-build(-)] )
+ samba? (
+ dev-libs/openssl:0=
+ )
+ smbkrb5passwd? (
+ dev-libs/openssl:0=
+ kerberos? ( app-crypt/heimdal )
+ )
+ kerberos? (
+ virtual/krb5
+ kinit? ( !app-crypt/heimdal )
+ )
+ )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-apps/groff
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-ldap )
+"
+
+# The user/group are only used for running daemons which are
+# disabled in minimal builds, so elide the accounts too.
+BDEPEND="
+ !minimal? (
+ acct-group/ldap
+ acct-user/ldap
+ )
+"
+
+# for tracking versions
+OPENLDAP_VERSIONTAG=".version-tag"
+OPENLDAP_DEFAULTDIR_VERSIONTAG="/var/lib/openldap-data"
+
+MULTILIB_WRAPPED_HEADERS=(
+ # USE=cxx
+ /usr/include/LDAPAsynConnection.h
+ /usr/include/LDAPAttrType.h
+ /usr/include/LDAPAttribute.h
+ /usr/include/LDAPAttributeList.h
+ /usr/include/LDAPConnection.h
+ /usr/include/LDAPConstraints.h
+ /usr/include/LDAPControl.h
+ /usr/include/LDAPControlSet.h
+ /usr/include/LDAPEntry.h
+ /usr/include/LDAPEntryList.h
+ /usr/include/LDAPException.h
+ /usr/include/LDAPExtResult.h
+ /usr/include/LDAPMessage.h
+ /usr/include/LDAPMessageQueue.h
+ /usr/include/LDAPModList.h
+ /usr/include/LDAPModification.h
+ /usr/include/LDAPObjClass.h
+ /usr/include/LDAPRebind.h
+ /usr/include/LDAPRebindAuth.h
+ /usr/include/LDAPReferenceList.h
+ /usr/include/LDAPResult.h
+ /usr/include/LDAPSaslBindResult.h
+ /usr/include/LDAPSchema.h
+ /usr/include/LDAPSearchReference.h
+ /usr/include/LDAPSearchResult.h
+ /usr/include/LDAPSearchResults.h
+ /usr/include/LDAPUrl.h
+ /usr/include/LDAPUrlList.h
+ /usr/include/LdifReader.h
+ /usr/include/LdifWriter.h
+ /usr/include/SaslInteraction.h
+ /usr/include/SaslInteractionHandler.h
+ /usr/include/StringList.h
+ /usr/include/TlsOptions.h
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.28-fix-dash.patch
+ "${FILESDIR}"/${PN}-2.6.1-system-mdb.patch
+ "${FILESDIR}"/${PN}-2.6.1-cloak.patch
+ "${FILESDIR}"/${PN}-2.6.1-flags.patch
+ "${FILESDIR}"/${PN}-2.6.1-fix-missing-mapping.v2.patch
+ "${FILESDIR}"/${PN}-2.6.x-gnutls-pointer-error.patch
+ "${FILESDIR}"/${PN}-2.5.19-gcc14-SDWORD-vs-SQLINTEGER.patch
+)
+
+openldap_filecount() {
+ local dir="$1"
+ find "${dir}" -type f ! -name '.*' ! -name 'DB_CONFIG*' | wc -l
+}
+
+openldap_find_versiontags() {
+ # scan for all datadirs
+ local openldap_datadirs=()
+ if [[ -f "${EROOT}"/etc/openldap/slapd.conf ]]; then
+ openldap_datadirs=( $(awk '{if($1 == "directory") print $2 }' "${EROOT}"/etc/openldap/slapd.conf) )
+ fi
+ openldap_datadirs+=( ${OPENLDAP_DEFAULTDIR_VERSIONTAG} )
+
+ einfo
+ einfo "Scanning datadir(s) from slapd.conf and"
+ einfo "the default installdir for Versiontags"
+ einfo "(${OPENLDAP_DEFAULTDIR_VERSIONTAG} may appear twice)"
+ einfo
+
+ # scan datadirs if we have a version tag
+ openldap_found_tag=0
+ have_files=0
+ for each in ${openldap_datadirs[@]} ; do
+ CURRENT_TAGDIR="${EROOT}$(sed "s:\/::" <<< ${each})"
+ CURRENT_TAG="${CURRENT_TAGDIR}/${OPENLDAP_VERSIONTAG}"
+ if [[ -d "${CURRENT_TAGDIR}" ]] && [[ "${openldap_found_tag}" == 0 ]] ; then
+ einfo "- Checking ${each}..."
+ if [[ -r "${CURRENT_TAG}" ]] ; then
+ # yey, we have one :)
+ einfo " Found Versiontag in ${each}"
+ source "${CURRENT_TAG}"
+ if [[ "${OLDPF}" == "" ]] ; then
+ eerror "Invalid Versiontag found in ${CURRENT_TAGDIR}"
+ eerror "Please delete it"
+ eerror
+ die "Please kill the invalid versiontag in ${CURRENT_TAGDIR}"
+ fi
+
+ OLD_MAJOR=$(ver_cut 2-3 ${OLDPF})
+
+ [[ "$(openldap_filecount ${CURRENT_TAGDIR})" -gt 0 ]] && have_files=1
+
+ # are we on the same branch?
+ if [[ "${OLD_MAJOR}" != "${PV:0:3}" ]] ; then
+ ewarn " Versiontag doesn't match current major release!"
+ if [[ "${have_files}" == "1" ]] ; then
+ eerror " Versiontag says other major and you (probably) have datafiles!"
+ echo
+ openldap_upgrade_howto
+ else
+ einfo " No real problem, seems there's no database."
+ fi
+ else
+ einfo " Versiontag is fine here :)"
+ fi
+ else
+ einfo " Non-tagged dir ${each}"
+ [[ "$(openldap_filecount ${each})" -gt 0 ]] && have_files=1
+ if [[ "${have_files}" == "1" ]] ; then
+ einfo " EEK! Non-empty non-tagged datadir, counting `ls -a ${each} | wc -l` files"
+ echo
+
+ eerror
+ eerror "Your OpenLDAP Installation has a non tagged datadir that"
+ eerror "possibly contains a database at ${CURRENT_TAGDIR}"
+ eerror
+ eerror "Please export data if any entered and empty or remove"
+ eerror "the directory, installation has been stopped so you"
+ eerror "can take required action"
+ eerror
+ eerror "For a HOWTO on exporting the data, see instructions in the ebuild"
+ eerror
+ openldap_upgrade_howto
+ die "Please move the datadir ${CURRENT_TAGDIR} away"
+ fi
+ fi
+ einfo
+ fi
+ done
+ [[ "${have_files}" == "1" ]] && einfo "DB files present" || einfo "No DB files present"
+
+ # Now we must check for the major version of sys-libs/db linked against.
+ # TODO: remove this as we dropped bdb support (gone upstream) in 2.6.1?
+ SLAPD_PATH="${EROOT}/usr/$(get_libdir)/openldap/slapd"
+ if [[ "${have_files}" == "1" ]] && [[ -f "${SLAPD_PATH}" ]]; then
+ OLDVER="$(/usr/bin/ldd ${SLAPD_PATH} \
+ | awk '/libdb-/{gsub("^libdb-","",$1);gsub(".so$","",$1);print $1}')"
+ local fail=0
+
+ # This will not cover detection of cn=Config based configuration, but
+ # it's hopefully good enough.
+ if grep -sq '^backend.*shell' "${EROOT}"/etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Shell backend."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted away from backend shell!"
+ echo
+ fail=1
+ fi
+ if has_version "${CATEGORY}/${PN}[berkdb]" || grep -sq '^backend.*(bdb|hdb)' /etc/openldap/slapd.conf; then
+ eerror " OpenLDAP >= 2.5.x has dropped support for Berkeley DB."
+ eerror " You will need to migrate per upstream's migration notes"
+ eerror " at https://www.openldap.org/doc/admin25/appendix-upgrading.html."
+ eerror " Your existing database will not be accessible until it is"
+ eerror " converted to mdb!"
+ echo
+ fail=1
+ elif [[ -z "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ :
+ # Nothing wrong here.
+ elif [[ -z "${OLDVER}" ]] && [[ -n "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was not built against"
+ eerror " any version of sys-libs/db, but the new one will build"
+ eerror " against ${NEWVER} and your database may be inaccessible."
+ echo
+ fail=1
+ elif [[ -n "${OLDVER}" ]] && [[ -z "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will not be"
+ eerror " built against any version and your database may be"
+ eerror " inaccessible."
+ echo
+ fail=1
+ elif [[ "${OLDVER}" != "${NEWVER}" ]]; then
+ eerror " Your existing version of OpenLDAP was built against"
+ eerror " sys-libs/db:${OLDVER}, but the new one will build against"
+ eerror " ${NEWVER} and your database would be inaccessible."
+ echo
+ fail=1
+ fi
+ [[ "${fail}" == "1" ]] && openldap_upgrade_howto
+ fi
+
+ echo
+ einfo
+ einfo "All datadirs are fine, proceeding with merge now..."
+ einfo
+}
+
+openldap_upgrade_howto() {
+ local d l i
+ eerror
+ eerror "A (possible old) installation of OpenLDAP was detected,"
+ eerror "installation will not proceed for now."
+ eerror
+ eerror "As major version upgrades can corrupt your database,"
+ eerror "you need to dump your database and re-create it afterwards."
+ eerror
+ eerror "Additionally, rebuilding against different major versions of the"
+ eerror "sys-libs/db libraries will cause your database to be inaccessible."
+ eerror ""
+ d="$(date -u +%s)"
+ l="/root/ldapdump.${d}"
+ i="${l}.raw"
+ eerror " 1. /etc/init.d/slapd stop"
+ eerror " 2. slapcat -l ${i}"
+ eerror " 3. grep -E -v '^(entry|context)CSN:' <${i} >${l}"
+ eerror " 4. mv /var/lib/openldap-data/ /var/lib/openldap-data-backup/"
+ eerror " 5. emerge --update \=net-nds/${PF}"
+ eerror " 6. etc-update, and ensure that you apply the changes"
+ eerror " 7. slapadd -l ${l}"
+ eerror " 8. chown ldap:ldap /var/lib/openldap-data/*"
+ eerror " 9. /etc/init.d/slapd start"
+ eerror "10. Check that your data is intact."
+ eerror "11. Set up the new replication system."
+ eerror
+ if [[ "${FORCE_UPGRADE}" != "1" ]]; then
+ die "You need to upgrade your database first"
+ else
+ eerror "You have the magical FORCE_UPGRADE=1 in place."
+ eerror "Don't say you weren't warned about data loss."
+ fi
+}
+
+pkg_setup() {
+ if ! use sasl && use cxx ; then
+ die "To build the ldapc++ library you must emerge openldap with sasl support"
+ fi
+ # Bug #322787
+ if use minimal && ! has_version "net-nds/openldap" ; then
+ einfo "No datadir scan needed, openldap not installed"
+ elif use minimal && has_version 'net-nds/openldap[minimal]' ; then
+ einfo "Skipping scan for previous datadirs as requested by minimal useflag"
+ else
+ openldap_find_versiontags
+ fi
+}
+
+src_prepare() {
+ # The system copy of dev-db/lmdb must match the version that this copy
+ # of OpenLDAP shipped with! See bug #588792.
+ #
+ # Fish out MDB_VERSION_MAJOR/MDB_VERSION_MINOR/MDB_VERSION_PATCH from
+ # the bundled lmdb's header to find out the version.
+ local bundled_lmdb_version=$(sed -En '/^#define MDB_VERSION_(MAJOR|MINOR|PATCH)(\s+)?/{s/[^0-9.]//gp}' \
+ libraries/liblmdb/lmdb.h || die)
+ printf -v bundled_lmdb_version "%s." ${bundled_lmdb_version}
+
+ if [[ ${SYSTEM_LMDB_VER}. != ${bundled_lmdb_version} ]] ; then
+ eerror "Source lmdb version: ${bundled_lmdb_version}"
+ eerror "Ebuild lmdb version: ${SYSTEM_LMDB_VER}"
+ die "Ebuild needs to update SYSTEM_LMDB_VER!"
+ fi
+
+ rm -r libraries/liblmdb || die 'could not removed bundled lmdb directory'
+
+ local filename
+ for filename in doc/drafts/draft-ietf-ldapext-acl-model-xx.txt; do
+ iconv -f iso-8859-1 -t utf-8 "${filename}" > "${filename}.utf8"
+ mv "${filename}.utf8" "${filename}"
+ done
+
+ default
+
+ sed -i \
+ -e "s:\$(localstatedir)/run:${EPREFIX}/run:" \
+ -e '/MKDIR.*.(DESTDIR)\/run/d' \
+ servers/slapd/Makefile.in || die 'adjusting slapd Makefile.in failed'
+
+ pushd build &>/dev/null || die "pushd build"
+ einfo "Making sure upstream build strip does not do stripping too early"
+ sed -i.orig \
+ -e '/^STRIP/s,-s,,g' \
+ top.mk || die "Failed to remove too early stripping"
+ popd &>/dev/null || die
+
+ # Fails with OpenSSL 3, bug #848894
+ # https://bugs.openldap.org/show_bug.cgi?id=10009
+ rm tests/scripts/test076-authid-rewrite || die
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+build_contrib_module() {
+ # <dir> [<target>]
+ pushd "${S}/contrib/slapd-modules/$1" &>/dev/null || die "pushd contrib/slapd-modules/$1"
+ einfo "Compiling contrib-module: $1"
+ local target="${2:-all}"
+ emake \
+ CC="${CC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ prefix="${EPREFIX}/usr" \
+ STRIP=/bin/true \
+ "${target}"
+ popd &>/dev/null || die
+}
+
+multilib_src_configure() {
+ # Workaround for bug #923334, #938553, #946816
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ # Optional Features
+ myconf+=(
+ --enable-option-checking
+ $(use_enable debug)
+ --enable-dynamic
+ $(use_enable syslog)
+ --enable-ipv6
+ --enable-local
+ )
+
+ # Optional Packages
+ myconf+=(
+ --without-fetch
+ $(multilib_native_use_with sasl cyrus-sasl)
+ )
+
+ if use experimental ; then
+ # connectionless ldap per bug #342439
+ # connectionless is a unsupported feature according to Howard Chu
+ # see https://bugs.openldap.org/show_bug.cgi?id=9739
+ # (see also bug #892009)
+ append-flags -DLDAP_CONNECTIONLESS
+ fi
+
+ if ! use minimal && multilib_is_native_abi; then
+ # SLAPD (Standalone LDAP Daemon) Options
+ # overlay chaining requires '--enable-ldap' #296567
+ # see https://www.openldap.org/doc/admin26/overlays.html#Chaining
+ myconf+=(
+ --enable-ldap=yes
+ --enable-slapd
+ $(use_enable cleartext)
+ $(use_enable crypt)
+ $(multilib_native_use_enable sasl spasswd)
+ --disable-slp
+ $(use_enable tcpd wrappers)
+ )
+ if use experimental ; then
+ myconf+=(
+ --enable-dynacl
+ # ACI build as dynamic module not supported (yet)
+ --enable-aci=yes
+ )
+ fi
+
+ for option in modules rlookups slapi; do
+ myconf+=( --enable-${option} )
+ done
+
+ # static SLAPD backends
+ for backend in mdb; do
+ myconf+=( --enable-${backend}=yes )
+ done
+
+ # module SLAPD backends
+ for backend in asyncmeta dnssrv meta null passwd relay sock; do
+ # missing modules: wiredtiger (not available in portage)
+ myconf+=( --enable-${backend}=mod )
+ done
+
+ use perl && myconf+=( --enable-perl=mod )
+
+ if use odbc ; then
+ myconf+=( --enable-sql=mod )
+ if use iodbc ; then
+ myconf+=( --with-odbc="iodbc" )
+ append-cflags -I"${EPREFIX}"/usr/include/iodbc
+ else
+ myconf+=( --with-odbc="unixodbc" )
+ fi
+ fi
+
+ use overlays && myconf+=( --enable-overlays=mod )
+ use autoca && myconf+=( --enable-autoca=mod ) || myconf+=( --enable-autoca=no )
+ # compile-in the syncprov
+ myconf+=( --enable-syncprov=yes )
+
+ # Build the standalone load balancer (lloadd) - also available as a slapd module; --enable-balancer=mod
+ myconf+=( --enable-balancer=yes )
+
+ # SLAPD Password Module Options
+ myconf+=(
+ $(use_enable argon2)
+ )
+
+ # Optional Packages
+ myconf+=(
+ $(use_with systemd)
+ )
+ else
+ myconf+=(
+ --disable-backends
+ --disable-slapd
+ --disable-mdb
+ --disable-overlays
+ --disable-autoca
+ --disable-syslog
+ --without-systemd
+ )
+ fi
+
+ # Library Generation & Linking Options
+ myconf+=(
+ $(use_enable static-libs static)
+ --enable-shared
+ --enable-versioning
+ --with-pic
+ )
+
+ # some cross-compiling tests don't pan out well.
+ tc-is-cross-compiler && myconf+=(
+ --with-yielding-select=yes
+ )
+
+ local ssl_lib="no"
+ if use ssl || ( ! use minimal && use samba ) ; then
+ if use gnutls ; then
+ myconf+=( --with-tls="gnutls" )
+ else
+ # disable MD2 hash function
+ append-cflags -DOPENSSL_NO_MD2
+ myconf+=( --with-tls="openssl" )
+ fi
+ else
+ myconf+=( --with-tls="no" )
+ fi
+
+ tc-export AR CC CXX
+
+ ECONF_SOURCE="${S}" \
+ STRIP=/bin/true \
+ econf \
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)/openldap \
+ --localstatedir="${EPREFIX}"/var \
+ --runstatedir="${EPREFIX}"/run \
+ --sharedstatedir="${EPREFIX}"/var/lib \
+ "${myconf[@]}"
+
+ # argument '--runstatedir' seems to have no effect therefore this workaround
+ sed -i \
+ -e 's:^runstatedir=.*:runstatedir=${EPREFIX}/run:' \
+ configure contrib/ldapc++/configure contrib/ldaptcl/configure || die 'could not set runstatedir'
+
+ sed -i \
+ -e "s:/var/run/sasl2/mux:${EPREFIX}/run/sasl2/mux:" \
+ doc/guide/admin/security.sdf || die 'could not fix run path in doc'
+
+ emake depend
+}
+
+src_configure_cxx() {
+ # This needs the libraries built by the first build run.
+ # we have to run it AFTER the main build, not just after the main configure
+ local myconf_ldapcpp=(
+ --with-libldap="${E}/lib"
+ --with-ldap-includes="${S}/include"
+ )
+
+ mkdir -p "${BUILD_DIR}"/contrib/ldapc++ || die "could not create ${BUILD_DIR}/contrib/ldapc++ directory"
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+
+ local LDFLAGS="${LDFLAGS}"
+ local CPPFLAGS="${CPPFLAGS}"
+
+ append-ldflags -L"${BUILD_DIR}"/libraries/liblber/.libs -L"${BUILD_DIR}"/libraries/libldap/.libs
+ append-cppflags -I"${BUILD_DIR}"/include
+
+ ECONF_SOURCE="${S}"/contrib/ldapc++ \
+ STRIP=/bin/true \
+ econf \
+ "${myconf_ldapcpp[@]}"
+ popd &>/dev/null || die "popd contrib/ldapc++"
+}
+
+multilib_src_compile() {
+ tc-export AR CC CXX
+ emake \
+ CC="$(tc-getCC)" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP="/bin/true"
+
+ if ! use minimal && multilib_is_native_abi ; then
+ if use cxx ; then
+ einfo "Building contrib library: ldapc++"
+ src_configure_cxx
+ pushd "${BUILD_DIR}/contrib/ldapc++" &>/dev/null || die "pushd contrib/ldapc++"
+ emake
+ popd &>/dev/null || die
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Building contrib-module: smbk5pwd"
+ pushd "${S}/contrib/slapd-modules/smbk5pwd" &>/dev/null || die "pushd contrib/slapd-modules/smbk5pwd"
+
+ MY_DEFS="-DDO_SHADOW"
+ if use samba ; then
+ MY_DEFS="${MY_DEFS} -DDO_SAMBA"
+ MY_KRB5_INC=""
+ fi
+ if use kerberos ; then
+ MY_DEFS="${MY_DEFS} -DDO_KRB5"
+ MY_KRB5_INC="$(krb5-config --cflags)"
+ fi
+
+ emake \
+ DEFS="${MY_DEFS}" \
+ KRB5_INC="${MY_KRB5_INC}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap"
+ popd &>/dev/null || die
+ fi
+
+ if use overlays ; then
+ einfo "Building contrib-module: samba4"
+ pushd "${S}/contrib/slapd-modules/samba4" &>/dev/null || die "pushd contrib/slapd-modules/samba4"
+
+ emake \
+ CC="$(tc-getCC)" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" \
+ STRIP=/bin/true
+ popd &>/dev/null || die
+ fi
+
+ if use kerberos ; then
+ if use kinit ; then
+ build_contrib_module "kinit" "kinit.c" "kinit"
+ fi
+ build_contrib_module "passwd" "pw-kerberos.la"
+ fi
+
+ if use pbkdf2; then
+ build_contrib_module "passwd/pbkdf2"
+ fi
+
+ if use sha2 ; then
+ build_contrib_module "passwd/sha2"
+ fi
+
+ # We could build pw-radius if GNURadius would install radlib.h
+ build_contrib_module "passwd" "pw-netscape.la"
+
+ #build_contrib_module "acl" "posixgroup.la" # example code only
+ #build_contrib_module "acl" "gssacl.la" # example code only, also needs kerberos
+ build_contrib_module "addpartial"
+ build_contrib_module "allop"
+ build_contrib_module "allowed"
+ build_contrib_module "autogroup"
+ build_contrib_module "cloak"
+ # build_contrib_module "comp_match" # really complex, adds new external deps, questionable demand
+ build_contrib_module "denyop"
+ build_contrib_module "dsaschema"
+ build_contrib_module "dupent"
+ build_contrib_module "lastbind"
+ # lastmod may not play well with other overlays
+ build_contrib_module "lastmod"
+ build_contrib_module "noopsrch"
+ #build_contrib_module "nops" https://bugs.gentoo.org/641576
+ #build_contrib_module "nssov" RESO:LATER
+ build_contrib_module "trace"
+ # build slapi-plugins
+ pushd "${S}/contrib/slapi-plugins/addrdnvalues" &>/dev/null || die "pushd contrib/slapi-plugins/addrdnvalues"
+ einfo "Building contrib-module: addrdnvalues plugin"
+ $(tc-getCC) -shared \
+ -I"${BUILD_DIR}"/include \
+ -I../../../include \
+ ${CPPFLAGS} \
+ ${CFLAGS} \
+ -fPIC \
+ ${LDFLAGS} \
+ -o libaddrdnvalues-plugin.so \
+ addrdnvalues.c || die "Building libaddrdnvalues-plugin.so failed"
+ popd &>/dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ cd tests || die
+ pwd
+
+ # Increase various test timeouts/delays, bug #894012
+ # We can't just double everything as there's a cumulative effect.
+ export SLEEP0=2 # originally 1
+ export SLEEP1=10 # originally 7
+ export SLEEP2=20 # originally 15
+ export TIMEOUT=16 # originally 8
+
+ # emake test => runs only lloadd & mdb, in serial; skips ldif,sql,wt,regression
+ # emake partests => runs ALL of the tests in parallel
+ # wt/WiredTiger is not supported in Gentoo
+ TESTS=( plloadd pmdb )
+ #TESTS+=( pldif ) # not done by default, so also exclude here
+ #use odbc && TESTS+=( psql ) # not done by default, so also exclude here
+
+ emake -Onone "${TESTS[@]}"
+ fi
+}
+
+multilib_src_install() {
+ emake \
+ CC="$(tc-getCC)" \
+ DESTDIR="${D}" \
+ SHELL="${EPREFIX}"/bin/sh \
+ STRIP=/bin/true \
+ install
+
+ if ! use minimal && multilib_is_native_abi; then
+ # openldap modules go here
+ # TODO: write some code to populate slapd.conf with moduleload statements
+ keepdir /usr/$(get_libdir)/openldap/openldap/
+
+ # initial data storage dir
+ keepdir /var/lib/openldap-data
+ use prefix || fowners ldap:ldap /var/lib/openldap-data
+ fperms 0700 /var/lib/openldap-data
+
+ echo "OLDPF='${PF}'" > "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# do NOT delete this. it is used" >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+ echo "# to track versions for upgrading." >> "${ED}${OPENLDAP_DEFAULTDIR_VERSIONTAG}/${OPENLDAP_VERSIONTAG}"
+
+ # use our config
+ rm "${ED}"/etc/openldap/slapd.conf
+ insinto /etc/openldap
+ newins "${FILESDIR}"/${PN}-2.6.3-slapd-conf slapd.conf
+ configfile="${ED}"/etc/openldap/slapd.conf
+
+ # populate with built backends
+ einfo "populate config with built backends"
+ for x in "${ED}"/usr/$(get_libdir)/openldap/openldap/back_*.so; do
+ einfo "Adding $(basename ${x})"
+ sed -e "/###INSERTDYNAMICMODULESHERE###$/a# moduleload\t$(basename ${x})" -i "${configfile}" || die
+ done
+ sed -e "s:###INSERTDYNAMICMODULESHERE###$:# modulepath\t${EPREFIX}/usr/$(get_libdir)/openldap/openldap:" \
+ -i "${configfile}" || die
+ use prefix || fowners root:ldap /etc/openldap/slapd.conf
+ fperms 0640 /etc/openldap/slapd.conf
+ cp "${configfile}" "${configfile}".default || die
+
+ # install our own init scripts and systemd unit files
+ einfo "Install init scripts"
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-initd-2.4.40-r2 > "${T}"/slapd || die
+ doinitd "${T}"/slapd
+ newconfd "${FILESDIR}"/slapd-confd-2.6.1 slapd
+
+ if use systemd; then
+ # The systemd unit uses Type=notify, so it is useless without USE=systemd
+ einfo "Install systemd service"
+ rm -rf "${ED}"/{,usr/}lib/systemd
+ sed -e "s,/usr/lib/,/usr/$(get_libdir)/," "${FILESDIR}"/slapd-2.6.1.service > "${T}"/slapd.service || die
+ systemd_dounit "${T}"/slapd.service
+ systemd_install_serviced "${FILESDIR}"/slapd.service.conf
+ newtmpfiles "${FILESDIR}"/slapd.tmpfilesd slapd.conf
+ fi
+
+ # if built without SLP, we don't need to be before avahi
+ sed -i \
+ -e '/before/{s/avahi-daemon//g}' \
+ "${ED}"/etc/init.d/slapd \
+ || die
+
+ if use cxx ; then
+ einfo "Install the ldapc++ library"
+ cd "${BUILD_DIR}/contrib/ldapc++" || die
+ emake DESTDIR="${D}" libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ cd "${S}"/contrib/ldapc++ || die
+ newdoc README ldapc++-README
+ fi
+
+ if use smbkrb5passwd ; then
+ einfo "Install the smbk5pwd module"
+ cd "${S}/contrib/slapd-modules/smbk5pwd" || die
+ emake DESTDIR="${D}" \
+ prefix="${EPREFIX}/usr" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README smbk5pwd-README
+ fi
+
+ if use overlays ; then
+ einfo "Install the samba4 module"
+ cd "${S}/contrib/slapd-modules/samba4" || die
+ emake DESTDIR="${D}" \
+ LDAP_BUILD="${BUILD_DIR}" \
+ libexecdir="${EPREFIX}/usr/$(get_libdir)/openldap" install
+ newdoc README samba4-README
+ fi
+
+ einfo "Installing contrib modules"
+ cd "${S}/contrib/slapd-modules" || die
+ for l in */*.la */*/*.la; do
+ [[ -e ${l} ]] || continue
+ libtool --mode=install cp ${l} \
+ "${ED}"/usr/$(get_libdir)/openldap/openldap || \
+ die "installing ${l} failed"
+ done
+
+ dodoc "${FILESDIR}"/DB_CONFIG.fast.example
+ docinto contrib
+ doman */*.5
+ #newdoc acl/README*
+ newdoc addpartial/README addpartial-README
+ newdoc allop/README allop-README
+ newdoc allowed/README allowed-README
+ newdoc autogroup/README autogroup-README
+ newdoc dsaschema/README dsaschema-README
+ newdoc passwd/README passwd-README
+ cd "${S}/contrib/slapi-plugins" || die
+ insinto /usr/$(get_libdir)/openldap/openldap
+ doins */*.so
+ docinto contrib
+ newdoc addrdnvalues/README addrdnvalues-README
+
+ insinto /etc/openldap/schema
+ newins "${DISTDIR}"/${BIS_P} ${BIS_PN}
+
+ docinto back-sock ; dodoc "${S}"/servers/slapd/back-sock/searchexample*
+ docinto back-perl ; dodoc "${S}"/servers/slapd/back-perl/SampleLDAP.pm
+
+ dosbin "${S}"/contrib/slapd-tools/statslog
+ newdoc "${S}"/contrib/slapd-tools/README README.statslog
+ fi
+
+ if ! use static-libs ; then
+ find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ANNOUNCEMENT CHANGES COPYRIGHT README
+ docinto rfc ; dodoc doc/rfc/*.txt
+ rmdir -p "${D}"/var/openldap-lloadd # Created but not used by any part of current codebase.
+}
+
+pkg_preinst() {
+ # keep old libs if any
+ preserve_old_lib /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+ # bug 440470, only display the getting started help there was no openldap before,
+ # or we are going to a non-minimal build
+ ! has_version net-nds/openldap || has_version 'net-nds/openldap[minimal]'
+ OPENLDAP_PRINT_MESSAGES=$((! $?))
+}
+
+pkg_postinst() {
+ if ! use minimal ; then
+ if use systemd; then
+ tmpfiles_process slapd.conf
+ fi
+
+ # You cannot build SSL certificates during src_install that will make
+ # binary packages containing your SSL key, which is both a security risk
+ # and a misconfiguration if multiple machines use the same key and cert.
+ if use ssl; then
+ install_cert /etc/openldap/ssl/ldap
+ use prefix || chown ldap:ldap "${EROOT}"/etc/openldap/ssl/ldap.*
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "Self-signed SSL certificates are treated harshly by OpenLDAP 2.[12]"
+ ewarn "add 'TLS_REQCERT allow' if you want to use them."
+ fi
+
+ if use prefix; then
+ # Warn about prefix issues with slapd
+ eerror "slapd might NOT be usable on Prefix systems as it requires root privileges"
+ eerror "to start up, and requires that certain files directories be owned by"
+ eerror "ldap:ldap. As Prefix does not support changing ownership of files and"
+ eerror "directories, you will have to manually fix this yourself."
+ fi
+
+ # These lines force the permissions of various content to be correct
+ if [[ -d "${EROOT}"/var/run/openldap ]]; then
+ use prefix || { chown ldap:ldap "${EROOT}"/var/run/openldap || die; }
+ chmod 0755 "${EROOT}"/var/run/openldap || die
+ fi
+ use prefix || chown root:ldap "${EROOT}"/etc/openldap/slapd.conf{,.default}
+ chmod 0640 "${EROOT}"/etc/openldap/slapd.conf{,.default} || die
+ use prefix || chown ldap:ldap "${EROOT}"/var/lib/openldap-data
+ fi
+
+ if has_version 'net-nds/openldap[-minimal]' && ((${OPENLDAP_PRINT_MESSAGES})); then
+ elog "Getting started using OpenLDAP? There is some documentation available:"
+ elog "Gentoo Guide to OpenLDAP Authentication"
+ elog "(https://wiki.gentoo.org/wiki/Centralized_authentication_using_OpenLDAP)"
+ fi
+
+ preserve_old_lib_notify /usr/$(get_libdir)/{liblber,libldap,libldap_r}-2.4$(get_libname 0)
+}
diff --git a/net-nds/phpldapadmin/Manifest b/net-nds/phpldapadmin/Manifest
new file mode 100644
index 000000000000..45d9f235d654
--- /dev/null
+++ b/net-nds/phpldapadmin/Manifest
@@ -0,0 +1,2 @@
+DIST phpldapadmin-1.2.6.6.tar.gz 1132820 BLAKE2B e153d9ac3e844a1a08235c43a096a7418a2d67128bc216fe09f7a00c4f4bdf39e7646842d0c0189c5c42beb3a7823959c7d5fa21b8721f96d0204f87e9b16aad SHA512 398bb6c36a3c9b64016bebc6debeaf8048c4b6b9ebdc7a2bfa8acfa4d4458990a0a59d4e32a2abef772baba667dd495309eff2d68e39847f25a50ad79a06984d
+DIST phpldapadmin-1.2.6.7.tar.gz 1133418 BLAKE2B f1f19c52694f1c6299b2f52fef73702ae330cfc1276bacbfeeb70989505e33548e9bb01d0cd2814cdcea363da4ed54210c6c38642defd752b63511410d7248dd SHA512 4a0ea1cb5bfeeb6a6a242b29137cdd26c014788d771ce9cf5dcef771756b38575a2fd3e04d00cd3ff5181bf8891037bc347d4f933c67958376d2246fa72752c7
diff --git a/net-nds/phpldapadmin/files/phpldapadmin-1.2.1.1-fix-magic-quotes.patch b/net-nds/phpldapadmin/files/phpldapadmin-1.2.1.1-fix-magic-quotes.patch
new file mode 100644
index 000000000000..3a2f3a48223c
--- /dev/null
+++ b/net-nds/phpldapadmin/files/phpldapadmin-1.2.1.1-fix-magic-quotes.patch
@@ -0,0 +1,23 @@
+diff -urN phpldapadmin-1.2.1.1/lib/emuhash_functions.php phpldapadmin-1.2.1.1-new/lib/emuhash_functions.php
+--- phpldapadmin-1.2.1.1/lib/emuhash_functions.php 2011-05-11 09:40:18.000000000 +0000
++++ phpldapadmin-1.2.1.1-new/lib/emuhash_functions.php 2011-10-20 15:55:05.597714125 +0000
+@@ -59,8 +59,8 @@
+ global $emuhash_emu;
+
+ if (PHP_VERSION < 6) {
+- $current_magic_quotes = @get_magic_quotes_runtime();
+- @set_magic_quotes_runtime(0);
++ $current_magic_quotes = ini_get('magic_quotes_runtime');
++ ini_set('magic_quotes_runtime', 0);;
+ }
+
+ $tmpfile = tempnam($emuhash_emu['tmpdir'],'emuhash');
+@@ -78,7 +78,7 @@
+ unlink($tmpfile);
+
+ if (PHP_VERSION < 6)
+- @set_magic_quotes_runtime($current_magic_quotes);
++ ini_set('magic_quotes_runtime', $current_magic_quotes);
+
+ return $pass;
+ }
diff --git a/net-nds/phpldapadmin/files/phpldapadmin-1.2.6.4-getDN-htmlspecialchars.patch b/net-nds/phpldapadmin/files/phpldapadmin-1.2.6.4-getDN-htmlspecialchars.patch
new file mode 100644
index 000000000000..0e6ae997fc48
--- /dev/null
+++ b/net-nds/phpldapadmin/files/phpldapadmin-1.2.6.4-getDN-htmlspecialchars.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/897680
+
+This fixes an error you get under php-8.1 when "$server->getContainer($base->getDN())"
+returns a null object (that's the case if you have a short, one component, rootdn in your
+"$servers->setValue('server','base',array(...)" config.
+--- a/lib/HTMLTree.php
++++ b/lib/HTMLTree.php
+@@ -98,7 +98,7 @@
+ $this->javascript .= '<div>';
+ $this->javascript .= '<input type="hidden" name="cmd" value="template_engine" />';
+ $this->javascript .= sprintf('<input type="hidden" name="server_id" value="%s" />',$server->getIndex());
+- $this->javascript .= sprintf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($server->getContainer($base->getDN())));
++ $this->javascript .= sprintf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($server->getContainer($base->getDN()) ?? ''));
+ $this->javascript .= sprintf('<input type="hidden" name="rdn" value="%s" />',get_rdn($base->getDN()));
+ $this->javascript .= sprintf('<input type="hidden" name="rdn_attribute[]" value="%s" />',$rdn[0]);
+ $this->javascript .= sprintf('<input type="hidden" name="new_values[%s][]" value="%s" />',$rdn[0],$rdn[1]);
diff --git a/net-nds/phpldapadmin/files/postinstall2-en.txt b/net-nds/phpldapadmin/files/postinstall2-en.txt
new file mode 100644
index 000000000000..005ead72e8d3
--- /dev/null
+++ b/net-nds/phpldapadmin/files/postinstall2-en.txt
@@ -0,0 +1,4 @@
+phpLDAPadmin is installed. You will need to
+configure it by creating/editing the config file:
+
+${MY_INSTALLDIR}/config/config.php
diff --git a/net-nds/phpldapadmin/metadata.xml b/net-nds/phpldapadmin/metadata.xml
new file mode 100644
index 000000000000..bf0841398648
--- /dev/null
+++ b/net-nds/phpldapadmin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>web-apps@gentoo.org</email>
+ <name>Gentoo Webapps</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:phpldapadmin_project:phpldapadmin</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/phpldapadmin/phpldapadmin-1.2.6.6.ebuild b/net-nds/phpldapadmin/phpldapadmin-1.2.6.6.ebuild
new file mode 100644
index 000000000000..456ed8fc030c
--- /dev/null
+++ b/net-nds/phpldapadmin/phpldapadmin-1.2.6.6.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit webapp
+
+MY_PN="phpLDAPadmin"
+DESCRIPTION="phpLDAPadmin is a web-based tool for managing all aspects of your LDAP server"
+HOMEPAGE="https://github.com/leenooks/phpLDAPadmin"
+SRC_URI="https://github.com/leenooks/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+RDEPEND="
+ >=dev-lang/php-8.0[hash(+),ldap,session,xml,nls]
+ dev-libs/openssl
+ virtual/httpd-php
+"
+BDEPEND="
+ media-libs/libpng
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.2.1.1-fix-magic-quotes.patch"
+ "${FILESDIR}/${PN}-1.2.6.4-getDN-htmlspecialchars.patch"
+)
+
+need_httpd_cgi
+
+src_prepare() {
+ mv config/config.php.example config/config.php || die
+ default
+ # fix QA notice about broken IDAT window length
+ pngfix --out=network.png htdocs/images/default/network.png; [[ $? -lt 16 ]] || die
+ pngfix --out=document.png htdocs/images/default/document.png; [[ $? -lt 16 ]] || die
+ mv -f network.png document.png htdocs/images/default/ || die
+}
+
+src_install() {
+ webapp_src_preinst
+
+ dodoc INSTALL.md
+
+ # Restrict config file access - bug 280836
+ chown root:apache "config/config.php"
+ chmod 640 "config/config.php"
+
+ insinto "${MY_HTDOCSDIR}"
+ doins -r *
+
+ webapp_configfile "${MY_HTDOCSDIR}/config/config.php"
+ webapp_postinst_txt en "${FILESDIR}"/postinstall2-en.txt
+
+ webapp_src_install
+}
diff --git a/net-nds/phpldapadmin/phpldapadmin-1.2.6.7.ebuild b/net-nds/phpldapadmin/phpldapadmin-1.2.6.7.ebuild
new file mode 100644
index 000000000000..c8007c7d88d4
--- /dev/null
+++ b/net-nds/phpldapadmin/phpldapadmin-1.2.6.7.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit webapp
+
+MY_PN="phpLDAPadmin"
+DESCRIPTION="phpLDAPadmin is a web-based tool for managing all aspects of your LDAP server"
+HOMEPAGE="https://github.com/leenooks/phpLDAPadmin"
+SRC_URI="https://github.com/leenooks/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+RDEPEND="
+ >=dev-lang/php-8.0[hash(+),ldap,session,xml,nls]
+ dev-libs/openssl
+ virtual/httpd-php
+"
+BDEPEND="
+ media-libs/libpng
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.2.1.1-fix-magic-quotes.patch"
+ "${FILESDIR}/${PN}-1.2.6.4-getDN-htmlspecialchars.patch"
+)
+
+need_httpd_cgi
+
+src_prepare() {
+ mv config/config.php.example config/config.php || die
+ default
+ # fix QA notice about broken IDAT window length
+ pngfix --out=network.png htdocs/images/default/network.png; [[ $? -lt 16 ]] || die
+ pngfix --out=document.png htdocs/images/default/document.png; [[ $? -lt 16 ]] || die
+ mv -f network.png document.png htdocs/images/default/ || die
+}
+
+src_install() {
+ webapp_src_preinst
+
+ dodoc INSTALL.md
+
+ # Restrict config file access - bug 280836
+ chown root:apache "config/config.php"
+ chmod 640 "config/config.php"
+
+ insinto "${MY_HTDOCSDIR}"
+ doins -r *
+
+ webapp_configfile "${MY_HTDOCSDIR}/config/config.php"
+ webapp_postinst_txt en "${FILESDIR}"/postinstall2-en.txt
+
+ webapp_src_install
+}
diff --git a/net-nds/rpcbind/Manifest b/net-nds/rpcbind/Manifest
new file mode 100644
index 000000000000..f6ac967b64e3
--- /dev/null
+++ b/net-nds/rpcbind/Manifest
@@ -0,0 +1,2 @@
+DIST rpcbind-1.2.7.tar.bz2 125792 BLAKE2B f1e79b304ce5fe06c1c256d3512d999daffca782d956440f612b8a957ad7ddb35356b47aa4f4105d5b24d820daab32ec3a0f4a3b8ac76bb7adf5c3ed22d2ef01 SHA512 ca1517bdab86221d13c645042cc31b25b4d2b574d63ebaa20da4f5392b611cf58811f267214293e953f504d364e5daaa5875eab7aa68a04b89e68fd5508e3926
+DIST rpcbind-1.2.8.tar.bz2 129079 BLAKE2B 70bef658aafc4b1b626a7e9ff312b34748e0142a0a93d058c28d6599545281464f27a5546abe287f0dd369e5264cb38940f85e5e6c128cb0e0f7aaa4b841ab77 SHA512 66f3955a67c4d0142ec635614ceafbc9bdbea985f2edaeec903f17efaf3c2e98f6483e8e6b7f1358cf8d2c1c877b281d153a3bf1b6748b6d259ae7ad1465ee71
diff --git a/net-nds/rpcbind/files/rpcbind.confd b/net-nds/rpcbind/files/rpcbind.confd
new file mode 100644
index 000000000000..ddc09172d10d
--- /dev/null
+++ b/net-nds/rpcbind/files/rpcbind.confd
@@ -0,0 +1,4 @@
+# /etc/conf.d/rpcbind
+
+# Options for `rpcbind`.
+#RPCBIND_OPTS="-l"
diff --git a/net-nds/rpcbind/files/rpcbind.initd b/net-nds/rpcbind/files/rpcbind.initd
new file mode 100644
index 000000000000..18329778c38c
--- /dev/null
+++ b/net-nds/rpcbind/files/rpcbind.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use net
+ before inetd xinetd
+ provide portmap
+}
+
+start() {
+ ebegin "Starting rpcbind"
+ start-stop-daemon --start --quiet --exec /sbin/rpcbind -- ${RPCBIND_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping rpcbind"
+ start-stop-daemon --stop --quiet --exec /sbin/rpcbind
+ eend $?
+}
diff --git a/net-nds/rpcbind/metadata.xml b/net-nds/rpcbind/metadata.xml
new file mode 100644
index 000000000000..a6d386e36a16
--- /dev/null
+++ b/net-nds/rpcbind/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="remotecalls">Enable remote calls</flag>
+ <flag name="warmstarts">Enables rpcbind to cache configuration for warm restarts</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:rpcbind_project:rpcbind</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/rpcbind/rpcbind-1.2.7.ebuild b/net-nds/rpcbind/rpcbind-1.2.7.ebuild
new file mode 100644
index 000000000000..480a4631ca87
--- /dev/null
+++ b/net-nds/rpcbind/rpcbind-1.2.7.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="portmap replacement which supports RPC over various protocols"
+HOMEPAGE="https://sourceforge.net/projects/rpcbind/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://linux-nfs.org/~steved/rpcbind.git"
+ inherit autotools git-r3
+else
+ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.bz2"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+# GPL-2 for init script (bug #426104)
+LICENSE="BSD GPL-2"
+SLOT="0"
+IUSE="debug remotecalls selinux systemd tcpd warmstarts"
+REQUIRED_USE="systemd? ( warmstarts )"
+
+DEPEND="
+ >=net-libs/libtirpc-0.2.3:=
+ systemd? ( sys-apps/systemd:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-rpcbind )
+"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+ [[ ${PV} == "9999" ]] && eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ --sbindir="${EPREFIX}"/sbin
+ --with-statedir="${EPREFIX}"/run/${PN}
+ --with-systemdsystemunitdir=$(usex systemd "$(systemd_get_systemunitdir)" "no")
+ $(use_enable debug)
+ $(use_enable remotecalls rmtcalls)
+ $(use_enable warmstarts)
+ $(use_enable tcpd libwrap)
+ )
+
+ # Avoid using rpcsvc headers
+ # https://bugs.gentoo.org/705224
+ export ac_cv_header_rpcsvc_mount_h=no
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-nds/rpcbind/rpcbind-1.2.8.ebuild b/net-nds/rpcbind/rpcbind-1.2.8.ebuild
new file mode 100644
index 000000000000..480a4631ca87
--- /dev/null
+++ b/net-nds/rpcbind/rpcbind-1.2.8.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="portmap replacement which supports RPC over various protocols"
+HOMEPAGE="https://sourceforge.net/projects/rpcbind/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://linux-nfs.org/~steved/rpcbind.git"
+ inherit autotools git-r3
+else
+ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.bz2"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+# GPL-2 for init script (bug #426104)
+LICENSE="BSD GPL-2"
+SLOT="0"
+IUSE="debug remotecalls selinux systemd tcpd warmstarts"
+REQUIRED_USE="systemd? ( warmstarts )"
+
+DEPEND="
+ >=net-libs/libtirpc-0.2.3:=
+ systemd? ( sys-apps/systemd:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-rpcbind )
+"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+ [[ ${PV} == "9999" ]] && eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ --sbindir="${EPREFIX}"/sbin
+ --with-statedir="${EPREFIX}"/run/${PN}
+ --with-systemdsystemunitdir=$(usex systemd "$(systemd_get_systemunitdir)" "no")
+ $(use_enable debug)
+ $(use_enable remotecalls rmtcalls)
+ $(use_enable warmstarts)
+ $(use_enable tcpd libwrap)
+ )
+
+ # Avoid using rpcsvc headers
+ # https://bugs.gentoo.org/705224
+ export ac_cv_header_rpcsvc_mount_h=no
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-nds/rpcbind/rpcbind-9999.ebuild b/net-nds/rpcbind/rpcbind-9999.ebuild
new file mode 100644
index 000000000000..a553446a231c
--- /dev/null
+++ b/net-nds/rpcbind/rpcbind-9999.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd
+
+DESCRIPTION="portmap replacement which supports RPC over various protocols"
+HOMEPAGE="https://sourceforge.net/projects/rpcbind/"
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://linux-nfs.org/~steved/rpcbind.git"
+ inherit autotools git-r3
+else
+ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.bz2"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+# GPL-2 for init script (bug #426104)
+LICENSE="BSD GPL-2"
+SLOT="0"
+IUSE="debug remotecalls selinux systemd tcpd warmstarts"
+REQUIRED_USE="systemd? ( warmstarts )"
+
+DEPEND="
+ >=net-libs/libtirpc-0.2.3:=
+ systemd? ( sys-apps/systemd:= )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-rpcbind )
+"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+ [[ ${PV} == "9999" ]] && eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/sbin
+ --sbindir="${EPREFIX}"/sbin
+ --with-statedir="${EPREFIX}"/run/${PN}
+ --with-systemdsystemunitdir=$(usex systemd "$(systemd_get_systemunitdir)" "no")
+ $(use_enable debug)
+ $(use_enable remotecalls rmtcalls)
+ $(use_enable warmstarts)
+ $(use_enable tcpd libwrap)
+ )
+
+ # Avoid using rpcsvc headers
+ # https://bugs.gentoo.org/705224
+ export ac_cv_header_rpcsvc_mount_h=no
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-nds/shelldap/Manifest b/net-nds/shelldap/Manifest
new file mode 100644
index 000000000000..a291cefe9ef1
--- /dev/null
+++ b/net-nds/shelldap/Manifest
@@ -0,0 +1 @@
+DIST shelldap-1.5.2.tar.gz 25639 BLAKE2B 5c667c44de804279a4a524a050fd09297fcc17180a53e28cda44add63ceb49e24303ea6d824111d37e50120c6c46a341d16278c0a5e2fe6fd396a4e883a1f4e8 SHA512 48944ad82ee91c48ffd6b07cda45470112bcea4d663884aacfc56f61e8cf317dff78b4cc0936e7ce949de54e43faf4f41ced6d6bf908c7ab53956ca019d3e7b4
diff --git a/net-nds/shelldap/metadata.xml b/net-nds/shelldap/metadata.xml
new file mode 100644
index 000000000000..134be6e40bbe
--- /dev/null
+++ b/net-nds/shelldap/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>azamat.hackimov@gmail.com</email>
+ <name>Azamat Hackimov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ A handy shell-like interface for browsing LDAP servers and editing their
+ content. It keeps command history, has sane autocompletes, credential caching,
+ site-wide and individual configs, and it's fun to say.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/shelldap/shelldap-1.5.2.ebuild b/net-nds/shelldap/shelldap-1.5.2.ebuild
new file mode 100644
index 000000000000..18511c22dd50
--- /dev/null
+++ b/net-nds/shelldap/shelldap-1.5.2.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GENTOO_DEPEND_ON_PERL=noslotop
+inherit perl-module
+
+DESCRIPTION="A handy shell-like interface for browsing LDAP servers and editing their content"
+HOMEPAGE="https://github.com/mahlonsmith/shelldap"
+SRC_URI="https://github.com/mahlonsmith/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="+readline sasl"
+
+RDEPEND="dev-perl/Algorithm-Diff
+ sasl? ( dev-perl/Authen-SASL )
+ dev-perl/IO-Socket-SSL
+ dev-perl/perl-ldap
+ dev-perl/TermReadKey
+ readline? ( dev-perl/Term-ReadLine-Gnu )
+ dev-perl/Term-Shell
+ dev-perl/Tie-IxHash
+ dev-perl/YAML-Syck
+ virtual/perl-Data-Dumper
+ virtual/perl-File-Temp
+ virtual/perl-Getopt-Long
+ virtual/perl-Digest-MD5"
+
+src_configure() { :; }
+
+src_compile() {
+ pod2man --name "${PN}" < "${PN}" > "${PN}.1" || die 'creating manpage failed'
+}
+
+src_install() {
+ doman "${PN}.1"
+ dobin "${PN}"
+ dodoc USAGE
+}
diff --git a/net-nds/yp-tools/Manifest b/net-nds/yp-tools/Manifest
new file mode 100644
index 000000000000..8dd0677a751e
--- /dev/null
+++ b/net-nds/yp-tools/Manifest
@@ -0,0 +1 @@
+DIST yp-tools-4.2.3.tar.gz 195247 BLAKE2B 5e068f6856876dbf55c25030730195222fd331a06b8d57aa8a797a42c90538289a61ea8de1a2fee2d173e3444f76f82d111fc1120c287f90b7dbad1a2be23313 SHA512 2fcdaaeb8af4c3f62aa571a488c04561356681fc18b919ef728cfc1941578870cce74b136959f49e4ab04f988a79252163c1abe30b357788cb0b5faca7b5d147
diff --git a/net-nds/yp-tools/files/domainname.service b/net-nds/yp-tools/files/domainname.service
new file mode 100644
index 000000000000..8f170adf794c
--- /dev/null
+++ b/net-nds/yp-tools/files/domainname.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=NIS Domainname
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/nisdomainname $NISDOMAINNAME
+RemainAfterExit=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-nds/yp-tools/files/domainname.service.conf b/net-nds/yp-tools/files/domainname.service.conf
new file mode 100644
index 000000000000..592de3b3d88a
--- /dev/null
+++ b/net-nds/yp-tools/files/domainname.service.conf
@@ -0,0 +1,3 @@
+# NIS domain to be set by domainname.service
+[Service]
+Environment="NISDOMAINNAME=local"
diff --git a/net-nds/yp-tools/metadata.xml b/net-nds/yp-tools/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-nds/yp-tools/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-nds/yp-tools/yp-tools-4.2.3-r1.ebuild b/net-nds/yp-tools/yp-tools-4.2.3-r1.ebuild
new file mode 100644
index 000000000000..f15a2c52de90
--- /dev/null
+++ b/net-nds/yp-tools/yp-tools-4.2.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd
+
+DESCRIPTION="Network Information Service tools"
+HOMEPAGE="https://www.thkukuk.de/nis/"
+SRC_URI="https://github.com/thkukuk/yp-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~mips ~ppc ppc64 ~riscv ~sparc x86"
+IUSE="nls"
+
+# Always uses libtirpc if present
+DEPEND="
+ net-libs/libtirpc:=
+ >=net-libs/libnsl-1.2.0:0=
+ virtual/libcrypt:=
+ nls? ( virtual/libintl )"
+RDEPEND="${DEPEND}
+ !sys-apps/net-tools[nis(-)]"
+BDEPEND="virtual/pkgconfig
+ nls? ( sys-devel/gettext )"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --disable-static \
+ --sysconfdir="${EPREFIX}"/etc/yp \
+ $(use_enable nls)
+}
+
+src_install() {
+ default
+
+ insinto /etc/yp
+ doins etc/nicknames
+
+ systemd_dounit "${FILESDIR}"/domainname.service
+ systemd_install_serviced "${FILESDIR}"/domainname.service.conf
+}