summaryrefslogtreecommitdiff
path: root/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-nds/389-ds-base/389-ds-base-3.0.2.ebuild')
-rw-r--r--net-nds/389-ds-base/389-ds-base-3.0.2.ebuild338
1 files changed, 338 insertions, 0 deletions
diff --git a/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild b/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild
new file mode 100644
index 000000000000..eb95bd5965db
--- /dev/null
+++ b/net-nds/389-ds-base/389-ds-base-3.0.2.ebuild
@@ -0,0 +1,338 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.21.0
+ adler@1.0.2
+ ahash@0.7.7
+ atty@0.2.14
+ autocfg@1.1.0
+ backtrace@0.3.69
+ base64@0.13.1
+ bitflags@1.3.2
+ bitflags@2.4.2
+ byteorder@1.5.0
+ cbindgen@0.26.0
+ cc@1.0.83
+ cfg-if@1.0.0
+ clap@3.2.25
+ clap_lex@0.2.4
+ concread@0.2.21
+ crossbeam-channel@0.5.11
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-queue@0.3.11
+ crossbeam-utils@0.8.19
+ crossbeam@0.8.4
+ errno@0.3.8
+ fastrand@2.0.1
+ fernet@0.1.4
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ getrandom@0.2.12
+ gimli@0.28.1
+ hashbrown@0.12.3
+ heck@0.4.1
+ hermit-abi@0.1.19
+ indexmap@1.9.3
+ instant@0.1.12
+ itoa@1.0.10
+ jobserver@0.1.27
+ libc@0.2.152
+ linux-raw-sys@0.4.13
+ lock_api@0.4.11
+ log@0.4.20
+ lru@0.7.8
+ memchr@2.7.1
+ miniz_oxide@0.7.1
+ object@0.32.2
+ once_cell@1.19.0
+ openssl-macros@0.1.1
+ openssl-sys@0.9.99
+ openssl@0.10.63
+ 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.13
+ pkg-config@0.3.29
+ ppv-lite86@0.2.17
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.78
+ quote@1.0.35
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.2.16
+ redox_syscall@0.4.1
+ rustc-demangle@0.1.23
+ rustix@0.38.30
+ ryu@1.0.16
+ scopeguard@1.2.0
+ serde@1.0.196
+ serde_derive@1.0.196
+ serde_json@1.0.113
+ smallvec@1.13.1
+ strsim@0.10.0
+ syn@1.0.109
+ syn@2.0.48
+ tempfile@3.9.0
+ termcolor@1.4.1
+ textwrap@0.16.0
+ tokio-macros@2.2.0
+ tokio@1.35.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.6
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.52.0
+ windows-targets@0.52.0
+ windows_aarch64_gnullvm@0.52.0
+ windows_aarch64_msvc@0.52.0
+ windows_i686_gnu@0.52.0
+ windows_i686_msvc@0.52.0
+ windows_x86_64_gnu@0.52.0
+ windows_x86_64_gnullvm@0.52.0
+ windows_x86_64_msvc@0.52.0
+ zeroize@1.7.0
+ zeroize_derive@1.4.2
+"
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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
+ sys-libs/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
+ >=virtual/rust-1.70
+ ${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 )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-db-gentoo.patch"
+)
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # 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_enable test cmocka)
+ --enable-rust-offline
+ --with-pythonexec="${PYTHON}"
+ --with-fhs
+ --with-openldap
+ --with-db-inc="${EPREFIX}"/usr/include/db5.3
+ --disable-cockpit
+ )
+
+ # https://github.com/389ds/389-ds-base/issues/4292 part 2
+ # creates wrongly named unit file if == no
+ use systemd && myconf+=(
+ $(use_with systemd)
+ $(use_with systemdgroupname "dirsrv.target")
+ $(use_with tmpfiles-d "/usr/lib/tmpfiles.d")
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ )
+
+ 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
+}