summaryrefslogtreecommitdiff
path: root/net-fs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-10-12 04:04:10 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-10-12 04:04:10 +0100
commit3980ecf15e6202ac2f2015045b549600e709b721 (patch)
tree6f854410381fa9d52df5a548314626b48329f1c3 /net-fs
parent61af1efe96cf1037982d2fc90af0749b5ec5a0c6 (diff)
gentoo auto-resync : 12:10:2024 - 04:04:10
Diffstat (limited to 'net-fs')
-rw-r--r--net-fs/Manifest.gzbin3356 -> 3363 bytes
-rw-r--r--net-fs/samba/Manifest8
-rw-r--r--net-fs/samba/samba-4.19.7.ebuild2
-rw-r--r--net-fs/samba/samba-4.19.8.ebuild385
-rw-r--r--net-fs/samba/samba-4.20.5.ebuild385
-rw-r--r--net-fs/samba/samba-4.21.0.ebuild385
6 files changed, 1163 insertions, 2 deletions
diff --git a/net-fs/Manifest.gz b/net-fs/Manifest.gz
index 588a31deed92..c085682c6124 100644
--- a/net-fs/Manifest.gz
+++ b/net-fs/Manifest.gz
Binary files differ
diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest
index 2a5a45251aa9..983a8b123853 100644
--- a/net-fs/samba/Manifest
+++ b/net-fs/samba/Manifest
@@ -9,10 +9,16 @@ DIST samba-4.18.11.tar.gz 41352059 BLAKE2B b2a39079286c5c0ca7beec99597ef6004c37e
DIST samba-4.18.9.tar.gz 41332779 BLAKE2B 8a0769c73d42b941b6f69d62243dd2b93d66748231465b853320cf1bf4b3dd8a912ac7bddfaa9c8b1941788951c2ccd630dabb23cf94965bc1d1e4cb5d74d123 SHA512 93a6c878bca583f59208df2a7865bbd453f7a65dc2f39a863797ef807bdeced4d632c5edd4579e341f8cf3b0b2fbe41e68a815a1510518bdd43e9a25a973c94c
DIST samba-4.19.6.tar.gz 41847853 BLAKE2B 42a1756f3cb1cd48da5abe043357e15b294148b88fdcb2502394372628a17a729ffb5ea070a967face2dfb76e319cdf6fa56d611c369baddf54e998164d782ca SHA512 23172f4393deb9c520182ffb1acb3cf3e53391d4276fffe98527f2f514f969c0952e6e59bcd90f11385dc51367a7bb9cd0534fa9fc3814f16bfb88f41609d0f5
DIST samba-4.19.7.tar.gz 41851647 BLAKE2B 9bd58363d4cd30f900b286be7c7e172ed0308c4527308d15309a5f3881ba9b1d4c3dd2a37f19d63fdf80a36bd89c9b6001ab2a5aefb724f10721e3a0dc09fa94 SHA512 a837a6255be6268a48c9f41ccad5db040c69b596936a37b011a4c8e3ec68f27ebd1947b86d26b544a7b546ed426dadc450353dff9553698ca4e6e0a3af162ad3
+DIST samba-4.19.8.tar.gz 41878540 BLAKE2B 8d0e720ad572b6c17d90b5f9822eae6bdbaedcc05397fb79a77fc3838a6c9fac852f7ef31d47433efe057b39d97652c7391c4d28b33c4b8f95503129e0bb8470 SHA512 90d5bc6f52d7905b00b846e024220c0eec999d83f0343522e1cf76038e7630280bd0c039ce553e3024f8ebf91ab9b5f18d9395bd46811e1a3bc97261d1f69ca7
DIST samba-4.20.2.tar.gz 42458953 BLAKE2B dffa86c8f3abca45e0b9dd29e723fbc13c0dac6c2b50d6240151ec0ae261fa5d9f43cc57403fa0b35624fd05f8cb50e2945d26b5f5205be48ccb60db0e64c1f7 SHA512 ff2c24314c6a35cc42db36a9021241b1323e810bf746e3975bc103f26daf395cd3c32da72e7172e322dee480587bbb1daac939e9851ff65be493be6fb4fc3eda
+DIST samba-4.20.5.tar.gz 42503174 BLAKE2B c0e3eed4b7ee02697f379d2f1697ba05536885345fbd6a28959f167686176a2b228306c7a691a3f63940944dc219523a7683f9f41a0150bae94e691c6a89b6cc SHA512 a666fc76dad2d9a68e802454555d2e93f7f71c2781ca5d11cf2fe8af046990b4be6677bbc754298613173849efb4387c16c2fd5557d65ba8b5a1ac02bd8c542a
+DIST samba-4.21.0.tar.gz 42625973 BLAKE2B 0889f2be3b78affee88250114397de87a77da77d9674815ec5605780a6bb3e2e28dbbae53b66695196408f4aef550acce793e6397045fbea4bb236fdd095ce1a SHA512 5d1d7f89d46f29a772bb56c060934e6868e5a3962915f3c5ab2daff3c3f49863af36c89f989066dd496cf5d0ed8cc63ad9c93f2cfe0b98797baa87b50bc5bf3f
EBUILD samba-4.18.11.ebuild 11638 BLAKE2B 36fff90c4916bc65d54c49322edd390e27d012330113cdb3cdaa4ec634e81520e5a6dca4002b58c1b73b8982ce1c7041327ba283492d4c48c1aeca289debece5 SHA512 a077a3248815d083307dc464558e7911ed64d9f025da988646dcf5f12dfdc5e1a0c8fb4ac04cdbd5865a3a5cf852f723e889409abc9b6d5979f36697b7cc9d8b
EBUILD samba-4.18.9.ebuild 11587 BLAKE2B 1c69b21134e526d21397ea5d05eb1954df818289eaf8c46c3baaef4c6255da5381da32b838253c6c1df433882a9d2c3bb71f324cc4b52a292a577192cbf8eb63 SHA512 dd32313fbe60dafbaf668c97245a51adfa9135bb1a31fa7335ecdf0a60681a368b049e0e4cb72c37c3fac850e764bac3de44ebdb721569717c0593fd70c395f1
EBUILD samba-4.19.6.ebuild 11558 BLAKE2B 46c2cc2d4412d1631ea9480d3664e75163a713119e7d570373a194f4f7814d23dc6c4abe0d23194eb3cb213f6e17e009e2a8c03f39d83cbf1fa27d19c4f7b665 SHA512 96eeceb673c2e448d6f27e53b30115511f15eb5c2c16c9b597d8d08a32485404b00fc3ff4d070e4fb4386aab7c7f83ea0460067c609bdd61539496469d2121e7
-EBUILD samba-4.19.7.ebuild 11560 BLAKE2B 84a1e91641033e557df8ed7cf6faeec66bdd9e46ffba4f432e12ba0aabea982c3ad242b0bc1e24facb7673df666cc8a00ca05936dc553dcf7b03f5b279cb214c SHA512 3612c2f195b60c1a7130b80e2d32097dc87c694259fd33085f9a54a2fcd6bacf897e8802e10ffb515421cf630ccc01453be091683a69b7dd6225ffbbef6f1786
+EBUILD samba-4.19.7.ebuild 11559 BLAKE2B 902cfbe639fcb8bfcbbe2cac5ae9b2957008627a07b90135ade8fc6a46a640c34bff388338c07ecbb30f72cb43d464dbab7d1da036718b461cebefe033d47099 SHA512 c0046e5e52795516dc9a4b1a6875be30140da9b50a715c4b1f9c80df0831516e05297ae69527b46cb2233ff0e396fa282f2f5dca506e2b7ce28825739384da78
+EBUILD samba-4.19.8.ebuild 11564 BLAKE2B 6e2eebc67174b5fc26d5ba90837808194f6062f85ab6bbbf860cd83120f6733dbf4988e777082341b5ccd9f891455e51816a436e85caea8f556c1712579447cb SHA512 00340aad873d29e7593d9bcdd444589754f60e914e09dda75649a183021b6c50b328400b83029efefd1a749a3d283ac303e482e8860e0df57074dcddc0c3f672
EBUILD samba-4.20.2.ebuild 11588 BLAKE2B f7bad7222dfe70434090f34edee90eb4069102deb864d75b8828bf85c0ceaf2e3b6b8ccf7620ef80c6a47d9a93827bc9640b9cad82f81e3735ef06e459501a08 SHA512 04bf31c57957efe4da843aa2859a8e5930beea870915f13a72aaef5230b989f3c2c008730ef3abe7ac64f89adcd0e3a61fa3f58ca13147b512c9f4badffae061
+EBUILD samba-4.20.5.ebuild 11588 BLAKE2B f7bad7222dfe70434090f34edee90eb4069102deb864d75b8828bf85c0ceaf2e3b6b8ccf7620ef80c6a47d9a93827bc9640b9cad82f81e3735ef06e459501a08 SHA512 04bf31c57957efe4da843aa2859a8e5930beea870915f13a72aaef5230b989f3c2c008730ef3abe7ac64f89adcd0e3a61fa3f58ca13147b512c9f4badffae061
+EBUILD samba-4.21.0.ebuild 11588 BLAKE2B ffbe3a8e06cdcd648c4ca635eb528e0c736cc2c5b8d0313446e2ed8ed32d0b40fc86b3dc881e332b338e975cd4fb2945d55cd0339a9bc7142c9996ce3e4b0b22 SHA512 949d8bbd8a36d61c4abeb997783353eab1285ae1076f08adcdf7ae715c137632f68b4d5b3196531fb8bbfef4c353d732b61085edd00015b9c136c6b0d5d20f2a
MISC metadata.xml 2066 BLAKE2B 1d3a5757c3226cede70b5fabb63b27bf0a5b86bf27643a30ebfe743d0758e57ce1e69b14ba6795de4c656b3d5da5b3f9d90d11074520c24d6459220f62723b04 SHA512 0a7963f9abddd4cc3b303c93dcd4b7dc30ca5660e64750d77bcd3bce0a95291c46208d9a1143303c168febb2d65cdad0018c475130dc04c16d79df2019d8e9aa
diff --git a/net-fs/samba/samba-4.19.7.ebuild b/net-fs/samba/samba-4.19.7.ebuild
index 7efa1092013c..3a30f5514553 100644
--- a/net-fs/samba/samba-4.19.7.ebuild
+++ b/net-fs/samba/samba-4.19.7.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == *_rc* ]]; then
SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz"
else
SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz"
- KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv sparc x86"
fi
S="${WORKDIR}/${MY_P}"
diff --git a/net-fs/samba/samba-4.19.8.ebuild b/net-fs/samba/samba-4.19.8.ebuild
new file mode 100644
index 000000000000..5035cef13434
--- /dev/null
+++ b/net-fs/samba/samba-4.19.8.ebuild
@@ -0,0 +1,385 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="threads(+),xml(+)"
+inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles
+
+DESCRIPTION="Samba Suite Version 4"
+HOMEPAGE="https://samba.org/"
+
+MY_PV="${PV/_rc/rc}"
+MY_P="${PN}-${MY_PV}"
+if [[ ${PV} == *_rc* ]]; then
+ SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz"
+else
+ SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg"
+IUSE+=" iprint json ldap llvm-libunwind pam profiling-data python quota +regedit selinux"
+IUSE+=" snapper spotlight syslog system-heimdal +system-mitkrb5 systemd test unwind winbind"
+IUSE+=" zeroconf"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ addc? ( json python !system-mitkrb5 winbind )
+ ads? ( acl ldap python winbind )
+ cluster? ( ads )
+ gpg? ( addc )
+ spotlight? ( json )
+ test? ( python )
+ !ads? ( !addc )
+ ?? ( system-heimdal system-mitkrb5 )
+"
+
+# the test suite is messed, it uses system-installed samba
+# bits instead of what was built, tests things disabled via use
+# flags, and generally just fails to work in a way ebuilds could
+# rely on in its current state
+RESTRICT="test"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/samba-4.0/policy.h
+ /usr/include/samba-4.0/dcerpc_server.h
+ /usr/include/samba-4.0/ctdb.h
+ /usr/include/samba-4.0/ctdb_client.h
+ /usr/include/samba-4.0/ctdb_protocol.h
+ /usr/include/samba-4.0/ctdb_private.h
+ /usr/include/samba-4.0/ctdb_typesafe_cb.h
+ /usr/include/samba-4.0/ctdb_version.h
+)
+
+TALLOC_VERSION="2.4.1"
+TDB_VERSION="1.4.9"
+TEVENT_VERSION="0.15.0"
+
+COMMON_DEPEND="
+ >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}]
+ dev-lang/perl:=
+ dev-libs/icu:=[${MULTILIB_USEDEP}]
+ dev-libs/libbsd[${MULTILIB_USEDEP}]
+ dev-libs/libtasn1:=[${MULTILIB_USEDEP}]
+ dev-libs/popt[${MULTILIB_USEDEP}]
+ dev-perl/Parse-Yapp
+ >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}]
+ >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}]
+ >=sys-libs/ldb-2.8.1:=[ldap(+)?,${MULTILIB_USEDEP}]
+ <sys-libs/ldb-2.9.0:=[ldap(+)?,${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ sys-libs/liburing:=[${MULTILIB_USEDEP}]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ virtual/libcrypt:=[${MULTILIB_USEDEP}]
+ virtual/libiconv
+ $(python_gen_cond_dep '
+ addc? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
+ )
+ ads? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ net-dns/bind-tools[gssapi]
+ )
+ ')
+ acl? ( virtual/acl )
+ ceph? ( sys-cluster/ceph )
+ cluster? ( net-libs/rpcsvc-proto )
+ cups? ( net-print/cups )
+ debug? ( dev-util/lttng-ust )
+ fam? ( virtual/fam )
+ gpg? ( app-crypt/gpgme:= )
+ json? ( dev-libs/jansson:= )
+ ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
+ pam? ( sys-libs/pam )
+ python? (
+ sys-libs/ldb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ snapper? ( sys-apps/dbus )
+ system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] )
+ system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] )
+ !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) )
+ systemd? ( sys-apps/systemd:= )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ !llvm-libunwind? ( sys-libs/libunwind:= )
+ )
+ zeroconf? ( net-dns/avahi[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-perl/JSON
+ net-libs/libtirpc[${MULTILIB_USEDEP}]
+ net-libs/rpcsvc-proto
+ spotlight? ( dev-libs/glib )
+ test? (
+ >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}]
+ $(python_gen_cond_dep "dev-python/subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" )
+ !system-mitkrb5? (
+ >=net-dns/resolv_wrapper-1.1.4
+ >=net-libs/socket_wrapper-1.1.9
+ >=sys-libs/nss_wrapper-1.1.3
+ >=sys-libs/uid_wrapper-1.2.1
+ )
+ )"
+RDEPEND="${COMMON_DEPEND}
+ client? ( net-fs/cifs-utils[ads?] )
+ python? ( ${PYTHON_DEPS} )
+ selinux? ( sec-policy/selinux-samba )
+"
+BDEPEND="${PYTHON_DEPS}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.18.4-pam.patch
+ "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch
+)
+
+CONFDIR="${FILESDIR}/4.4"
+WAF_BINARY="${S}/buildtools/bin/waf"
+SHAREDMODS=""
+
+pkg_setup() {
+ # Package fails to build with distcc
+ export DISTCC_DISABLE=1
+ export PYTHONHASHSEED=1
+
+ python-single-r1_pkg_setup
+
+ SHAREDMODS="$(usev !snapper '!')vfs_snapper"
+ if use cluster ; then
+ SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad"
+ elif use ads ; then
+ SHAREDMODS+=",idmap_ad"
+ fi
+}
+
+check_samba_dep_versions() {
+ actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die)
+ if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then
+ eerror "Source talloc version: ${TALLOC_VERSION}"
+ eerror "Ebuild talloc version: ${actual_talloc_version}"
+ die "Ebuild needs to fix TALLOC_VERSION!"
+ fi
+
+ actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die)
+ if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then
+ eerror "Source tdb version: ${TDB_VERSION}"
+ eerror "Ebuild tdb version: ${actual_tdb_version}"
+ die "Ebuild needs to fix TDB_VERSION!"
+ fi
+
+ actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die)
+ if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then
+ eerror "Source tevent version: ${TEVENT_VERSION}"
+ eerror "Ebuild tevent version: ${actual_tevent_version}"
+ die "Ebuild needs to fix TEVENT_VERSION!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ check_samba_dep_versions
+
+ # Unbundle dnspython
+ sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die
+
+ # Unbundle iso8601 unless tests are enabled
+ if ! use test ; then
+ sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die
+ fi
+
+ # Ugly hackaround for bug #592502
+ #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die
+
+ sed -e 's:<gpgme\.h>:<gpgme/gpgme.h>:' \
+ -i source4/dsdb/samdb/ldb_modules/password_hash.c \
+ || die
+
+ # WAF
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # When specifying libs for samba build you must append NONE to the end to
+ # stop it automatically including things
+ local bundled_libs="NONE"
+ if ! use system-heimdal && ! use system-mitkrb5 ; then
+ bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE"
+ fi
+
+ # We "use" bundled cmocka when we're not running tests as we're
+ # not using it anyway. Means we avoid making users install it for
+ # no reason. bug #802531
+ if ! use test ; then
+ bundled_libs="cmocka,${bundled_libs}"
+ fi
+
+ # bug #874633
+ if use llvm-libunwind ; then
+ mkdir -p "${T}"/${ABI}/pkgconfig || die
+
+ local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}"
+
+ cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die
+ exec_prefix=\${prefix}
+ libdir=/usr/$(get_libdir)
+ includedir=\${prefix}/include
+
+ Name: libunwind-generic
+ Description: libunwind generic library
+ Version: 1.70
+ Libs: -L\${libdir} -lunwind
+ Cflags: -I\${includedir}
+ EOF
+ fi
+
+ local myconf=(
+ --enable-fhs
+ --sysconfdir="${EPREFIX}/etc"
+ --localstatedir="${EPREFIX}/var"
+ --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba"
+ --with-piddir="${EPREFIX}/run/${PN}"
+ --bundled-libraries="${bundled_libs}"
+ --builtin-libraries=NONE
+ --disable-rpath
+ --disable-rpath-install
+ --nopyc
+ --nopyo
+ --without-winexe
+ $(multilib_native_use_with acl acl-support)
+ $(multilib_native_usex addc '' '--without-ad-dc')
+ $(multilib_native_use_with ads)
+ $(multilib_native_use_enable ceph cephfs)
+ $(multilib_native_use_with cluster cluster-support)
+ $(multilib_native_use_enable cups)
+ --without-dmapi
+ $(multilib_native_use_with fam)
+ $(multilib_native_use_enable glusterfs)
+ $(multilib_native_use_with gpg gpgme)
+ $(multilib_native_use_with json)
+ $(multilib_native_use_enable iprint)
+ $(multilib_native_use_with pam)
+ $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '')
+ $(multilib_native_use_with quota quotas)
+ $(multilib_native_use_with regedit)
+ $(multilib_native_use_enable spotlight)
+ $(multilib_native_use_with syslog)
+ $(multilib_native_use_with systemd)
+ --systemd-install-services
+ --with-systemddir="$(systemd_get_systemunitdir)"
+ $(multilib_native_use_with unwind libunwind)
+ $(multilib_native_use_with winbind)
+ $(multilib_native_usex python '' '--disable-python')
+ $(multilib_native_use_enable zeroconf avahi)
+ $(multilib_native_usex test '--enable-selftest' '')
+ $(usev system-mitkrb5 "--with-system-mitkrb5 $(multilib_native_usex addc --with-experimental-mit-ad-dc '')")
+ $(use_with debug lttng)
+ $(use_with ldap)
+ $(use_with profiling-data)
+ # bug #683148
+ --jobs 1
+ )
+
+ if multilib_is_native_abi ; then
+ myconf+=( --with-shared-modules=${SHAREDMODS} )
+ else
+ myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper )
+ fi
+
+ append-cppflags "-I${ESYSROOT}/usr/include/et"
+
+ waf-utils_src_configure ${myconf[@]}
+}
+
+multilib_src_compile() {
+ waf-utils_src_compile
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi ; then
+ "${WAF_BINARY}" test || die "Test failed"
+ fi
+}
+
+multilib_src_install() {
+ waf-utils_src_install
+
+ # Make all .so files executable
+ find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die
+ # smbspool_krb5_wrapper must only be accessible to root, bug #880739
+ find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die
+
+ # Remove empty runtime dirs created by build system (bug #892341)
+ find "${ED}"/{run,var} -type d -empty -delete || die
+
+ if multilib_is_native_abi ; then
+ # Install ldap schema for server (bug #491002)
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins examples/LDAP/samba.schema
+ fi
+
+ # Create symlink for cups (bug #552310)
+ if use cups ; then
+ dosym ../../../bin/smbspool \
+ /usr/libexec/cups/backend/smb
+ fi
+
+ # Install example config file
+ insinto /etc/samba
+ doins examples/smb.conf.default
+
+ # Fix paths in example file (bug #603964)
+ sed \
+ -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \
+ -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \
+ -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \
+ -i "${ED}"/etc/samba/smb.conf.default || die
+
+ # Install init script and conf.d file
+ newinitd "${CONFDIR}/samba4.initd-r1" samba
+ newconfd "${CONFDIR}/samba4.confd" samba
+
+ dotmpfiles "${FILESDIR}"/samba.conf
+ if ! use addc ; then
+ rm "${D}/$(systemd_get_systemunitdir)/samba.service" \
+ || die
+ fi
+
+ # Preserve functionality for old gentoo-specific unit names
+ dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service"
+ dosym smb.service "$(systemd_get_systemunitdir)/smbd.service"
+ dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service"
+
+ use python && python_optimize
+ fi
+
+ if use pam && use winbind ; then
+ newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind
+ # bugs #376853 and #590374
+ insinto /etc/security
+ doins examples/pam_winbind/pam_winbind.conf
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process samba.conf
+}
diff --git a/net-fs/samba/samba-4.20.5.ebuild b/net-fs/samba/samba-4.20.5.ebuild
new file mode 100644
index 000000000000..5bd9e9da5ca0
--- /dev/null
+++ b/net-fs/samba/samba-4.20.5.ebuild
@@ -0,0 +1,385 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="threads(+),xml(+)"
+inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles
+
+DESCRIPTION="Samba Suite Version 4"
+HOMEPAGE="https://samba.org/"
+
+MY_PV="${PV/_rc/rc}"
+MY_P="${PN}-${MY_PV}"
+if [[ ${PV} == *_rc* ]]; then
+ SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz"
+else
+ SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg"
+IUSE+=" iprint json ldap llvm-libunwind pam profiling-data python quota +regedit selinux"
+IUSE+=" snapper spotlight syslog system-heimdal +system-mitkrb5 systemd test unwind winbind"
+IUSE+=" zeroconf"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ addc? ( json python !system-mitkrb5 winbind )
+ ads? ( acl ldap python winbind )
+ cluster? ( ads )
+ gpg? ( addc )
+ spotlight? ( json )
+ test? ( python )
+ !ads? ( !addc )
+ ?? ( system-heimdal system-mitkrb5 )
+"
+
+# the test suite is messed, it uses system-installed samba
+# bits instead of what was built, tests things disabled via use
+# flags, and generally just fails to work in a way ebuilds could
+# rely on in its current state
+RESTRICT="test"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/samba-4.0/policy.h
+ /usr/include/samba-4.0/dcerpc_server.h
+ /usr/include/samba-4.0/ctdb.h
+ /usr/include/samba-4.0/ctdb_client.h
+ /usr/include/samba-4.0/ctdb_protocol.h
+ /usr/include/samba-4.0/ctdb_private.h
+ /usr/include/samba-4.0/ctdb_typesafe_cb.h
+ /usr/include/samba-4.0/ctdb_version.h
+)
+
+TALLOC_VERSION="2.4.2"
+TDB_VERSION="1.4.10"
+TEVENT_VERSION="0.16.1"
+
+COMMON_DEPEND="
+ >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}]
+ dev-lang/perl:=
+ dev-libs/icu:=[${MULTILIB_USEDEP}]
+ dev-libs/libbsd[${MULTILIB_USEDEP}]
+ dev-libs/libtasn1:=[${MULTILIB_USEDEP}]
+ dev-libs/popt[${MULTILIB_USEDEP}]
+ dev-perl/Parse-Yapp
+ >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}]
+ >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}]
+ >=sys-libs/ldb-2.9.1:=[ldap(+)?,${MULTILIB_USEDEP}]
+ <sys-libs/ldb-2.10.0:=[ldap(+)?,${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ sys-libs/liburing:=[${MULTILIB_USEDEP}]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ virtual/libcrypt:=[${MULTILIB_USEDEP}]
+ virtual/libiconv
+ $(python_gen_cond_dep '
+ addc? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
+ )
+ ads? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ net-dns/bind-tools[gssapi]
+ )
+ ')
+ acl? ( virtual/acl )
+ ceph? ( sys-cluster/ceph )
+ cluster? ( net-libs/rpcsvc-proto )
+ cups? ( net-print/cups )
+ debug? ( dev-util/lttng-ust )
+ fam? ( virtual/fam )
+ gpg? ( app-crypt/gpgme:= )
+ json? ( dev-libs/jansson:= )
+ ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
+ pam? ( sys-libs/pam )
+ python? (
+ sys-libs/ldb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ snapper? ( sys-apps/dbus )
+ system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] )
+ system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] )
+ !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) )
+ systemd? ( sys-apps/systemd:= )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ !llvm-libunwind? ( sys-libs/libunwind:= )
+ )
+ zeroconf? ( net-dns/avahi[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-perl/JSON
+ net-libs/libtirpc[${MULTILIB_USEDEP}]
+ net-libs/rpcsvc-proto
+ spotlight? ( dev-libs/glib )
+ test? (
+ >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}]
+ $(python_gen_cond_dep "dev-python/subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" )
+ !system-mitkrb5? (
+ >=net-dns/resolv_wrapper-1.1.4
+ >=net-libs/socket_wrapper-1.1.9
+ >=sys-libs/nss_wrapper-1.1.3
+ >=sys-libs/uid_wrapper-1.2.1
+ )
+ )"
+RDEPEND="${COMMON_DEPEND}
+ client? ( net-fs/cifs-utils[ads?] )
+ python? ( ${PYTHON_DEPS} )
+ selinux? ( sec-policy/selinux-samba )
+"
+BDEPEND="${PYTHON_DEPS}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.18.4-pam.patch
+ "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch
+)
+
+CONFDIR="${FILESDIR}/4.4"
+WAF_BINARY="${S}/buildtools/bin/waf"
+SHAREDMODS=""
+
+pkg_setup() {
+ # Package fails to build with distcc
+ export DISTCC_DISABLE=1
+ export PYTHONHASHSEED=1
+
+ python-single-r1_pkg_setup
+
+ SHAREDMODS="$(usev !snapper '!')vfs_snapper"
+ if use cluster ; then
+ SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad"
+ elif use ads ; then
+ SHAREDMODS+=",idmap_ad"
+ fi
+}
+
+check_samba_dep_versions() {
+ actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die)
+ if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then
+ eerror "Source talloc version: ${TALLOC_VERSION}"
+ eerror "Ebuild talloc version: ${actual_talloc_version}"
+ die "Ebuild needs to fix TALLOC_VERSION!"
+ fi
+
+ actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die)
+ if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then
+ eerror "Source tdb version: ${TDB_VERSION}"
+ eerror "Ebuild tdb version: ${actual_tdb_version}"
+ die "Ebuild needs to fix TDB_VERSION!"
+ fi
+
+ actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die)
+ if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then
+ eerror "Source tevent version: ${TEVENT_VERSION}"
+ eerror "Ebuild tevent version: ${actual_tevent_version}"
+ die "Ebuild needs to fix TEVENT_VERSION!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ check_samba_dep_versions
+
+ # Unbundle dnspython
+ sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die
+
+ # Unbundle iso8601 unless tests are enabled
+ if ! use test ; then
+ sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die
+ fi
+
+ # Ugly hackaround for bug #592502
+ #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die
+
+ sed -e 's:<gpgme\.h>:<gpgme/gpgme.h>:' \
+ -i source4/dsdb/samdb/ldb_modules/password_hash.c \
+ || die
+
+ # WAF
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # When specifying libs for samba build you must append NONE to the end to
+ # stop it automatically including things
+ local bundled_libs="NONE"
+ if ! use system-heimdal && ! use system-mitkrb5 ; then
+ bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE"
+ fi
+
+ # We "use" bundled cmocka when we're not running tests as we're
+ # not using it anyway. Means we avoid making users install it for
+ # no reason. bug #802531
+ if ! use test ; then
+ bundled_libs="cmocka,${bundled_libs}"
+ fi
+
+ # bug #874633
+ if use llvm-libunwind ; then
+ mkdir -p "${T}"/${ABI}/pkgconfig || die
+
+ local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}"
+
+ cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die
+ exec_prefix=\${prefix}
+ libdir=/usr/$(get_libdir)
+ includedir=\${prefix}/include
+
+ Name: libunwind-generic
+ Description: libunwind generic library
+ Version: 1.70
+ Libs: -L\${libdir} -lunwind
+ Cflags: -I\${includedir}
+ EOF
+ fi
+
+ local myconf=(
+ --enable-fhs
+ --sysconfdir="${EPREFIX}/etc"
+ --localstatedir="${EPREFIX}/var"
+ --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba"
+ --with-piddir="${EPREFIX}/run/${PN}"
+ --bundled-libraries="${bundled_libs}"
+ --builtin-libraries=NONE
+ --disable-rpath
+ --disable-rpath-install
+ --nopyc
+ --nopyo
+ --without-winexe
+ $(multilib_native_use_with acl acl-support)
+ $(multilib_native_usex addc '' '--without-ad-dc')
+ $(multilib_native_use_with ads)
+ $(multilib_native_use_enable ceph cephfs)
+ $(multilib_native_use_with cluster cluster-support)
+ $(multilib_native_use_enable cups)
+ --without-dmapi
+ $(multilib_native_use_with fam)
+ $(multilib_native_use_enable glusterfs)
+ $(multilib_native_use_with gpg gpgme)
+ $(multilib_native_use_with json)
+ $(multilib_native_use_enable iprint)
+ $(multilib_native_use_with pam)
+ $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '')
+ $(multilib_native_use_with quota quotas)
+ $(multilib_native_use_with regedit)
+ $(multilib_native_use_enable spotlight)
+ $(multilib_native_use_with syslog)
+ $(multilib_native_use_with systemd)
+ --systemd-install-services
+ --with-systemddir="$(systemd_get_systemunitdir)"
+ $(multilib_native_use_with unwind libunwind)
+ $(multilib_native_use_with winbind)
+ $(multilib_native_usex python '' '--disable-python')
+ $(multilib_native_use_enable zeroconf avahi)
+ $(multilib_native_usex test '--enable-selftest' '')
+ $(usev system-mitkrb5 "--with-system-mitkrb5 ${ESYSROOT}/usr $(multilib_native_usex addc --with-experimental-mit-ad-dc '')")
+ $(use_with debug lttng)
+ $(use_with ldap)
+ $(use_with profiling-data)
+ # bug #683148
+ --jobs 1
+ )
+
+ if multilib_is_native_abi ; then
+ myconf+=( --with-shared-modules=${SHAREDMODS} )
+ else
+ myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper )
+ fi
+
+ append-cppflags "-I${ESYSROOT}/usr/include/et"
+
+ waf-utils_src_configure ${myconf[@]}
+}
+
+multilib_src_compile() {
+ waf-utils_src_compile
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi ; then
+ "${WAF_BINARY}" test || die "Test failed"
+ fi
+}
+
+multilib_src_install() {
+ waf-utils_src_install
+
+ # Make all .so files executable
+ find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die
+ # smbspool_krb5_wrapper must only be accessible to root, bug #880739
+ find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die
+
+ # Remove empty runtime dirs created by build system (bug #892341)
+ find "${ED}"/{run,var} -type d -empty -delete || die
+
+ if multilib_is_native_abi ; then
+ # Install ldap schema for server (bug #491002)
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins examples/LDAP/samba.schema
+ fi
+
+ # Create symlink for cups (bug #552310)
+ if use cups ; then
+ dosym ../../../bin/smbspool \
+ /usr/libexec/cups/backend/smb
+ fi
+
+ # Install example config file
+ insinto /etc/samba
+ doins examples/smb.conf.default
+
+ # Fix paths in example file (bug #603964)
+ sed \
+ -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \
+ -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \
+ -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \
+ -i "${ED}"/etc/samba/smb.conf.default || die
+
+ # Install init script and conf.d file
+ newinitd "${CONFDIR}/samba4.initd-r1" samba
+ newconfd "${CONFDIR}/samba4.confd" samba
+
+ dotmpfiles "${FILESDIR}"/samba.conf
+ if ! use addc ; then
+ rm "${D}/$(systemd_get_systemunitdir)/samba.service" \
+ || die
+ fi
+
+ # Preserve functionality for old gentoo-specific unit names
+ dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service"
+ dosym smb.service "$(systemd_get_systemunitdir)/smbd.service"
+ dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service"
+
+ use python && python_optimize
+ fi
+
+ if use pam && use winbind ; then
+ newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind
+ # bugs #376853 and #590374
+ insinto /etc/security
+ doins examples/pam_winbind/pam_winbind.conf
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process samba.conf
+}
diff --git a/net-fs/samba/samba-4.21.0.ebuild b/net-fs/samba/samba-4.21.0.ebuild
new file mode 100644
index 000000000000..dfe4e18e4c44
--- /dev/null
+++ b/net-fs/samba/samba-4.21.0.ebuild
@@ -0,0 +1,385 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="threads(+),xml(+)"
+inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles
+
+DESCRIPTION="Samba Suite Version 4"
+HOMEPAGE="https://samba.org/"
+
+MY_PV="${PV/_rc/rc}"
+MY_P="${PN}-${MY_PV}"
+if [[ ${PV} == *_rc* ]]; then
+ SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz"
+else
+ SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg"
+IUSE+=" iprint json ldap llvm-libunwind pam profiling-data python quota +regedit selinux"
+IUSE+=" snapper spotlight syslog system-heimdal +system-mitkrb5 systemd test unwind winbind"
+IUSE+=" zeroconf"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ addc? ( json python !system-mitkrb5 winbind )
+ ads? ( acl ldap python winbind )
+ cluster? ( ads )
+ gpg? ( addc )
+ spotlight? ( json )
+ test? ( python )
+ !ads? ( !addc )
+ ?? ( system-heimdal system-mitkrb5 )
+"
+
+# the test suite is messed, it uses system-installed samba
+# bits instead of what was built, tests things disabled via use
+# flags, and generally just fails to work in a way ebuilds could
+# rely on in its current state
+RESTRICT="test"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/samba-4.0/policy.h
+ /usr/include/samba-4.0/dcerpc_server.h
+ /usr/include/samba-4.0/ctdb.h
+ /usr/include/samba-4.0/ctdb_client.h
+ /usr/include/samba-4.0/ctdb_protocol.h
+ /usr/include/samba-4.0/ctdb_private.h
+ /usr/include/samba-4.0/ctdb_typesafe_cb.h
+ /usr/include/samba-4.0/ctdb_version.h
+)
+
+TALLOC_VERSION="2.4.2"
+TDB_VERSION="1.4.12"
+TEVENT_VERSION="0.16.1"
+
+COMMON_DEPEND="
+ >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}]
+ dev-lang/perl:=
+ dev-libs/icu:=[${MULTILIB_USEDEP}]
+ dev-libs/libbsd[${MULTILIB_USEDEP}]
+ dev-libs/libtasn1:=[${MULTILIB_USEDEP}]
+ dev-libs/popt[${MULTILIB_USEDEP}]
+ dev-perl/Parse-Yapp
+ >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}]
+ >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}]
+ >=sys-libs/ldb-2.9.1:=[ldap(+)?,${MULTILIB_USEDEP}]
+ <sys-libs/ldb-2.10.0:=[ldap(+)?,${MULTILIB_USEDEP}]
+ sys-libs/libcap[${MULTILIB_USEDEP}]
+ sys-libs/liburing:=[${MULTILIB_USEDEP}]
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ virtual/libcrypt:=[${MULTILIB_USEDEP}]
+ virtual/libiconv
+ $(python_gen_cond_dep '
+ addc? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
+ )
+ ads? (
+ dev-python/dnspython:=[${PYTHON_USEDEP}]
+ net-dns/bind-tools[gssapi]
+ )
+ ')
+ acl? ( virtual/acl )
+ ceph? ( sys-cluster/ceph )
+ cluster? ( net-libs/rpcsvc-proto )
+ cups? ( net-print/cups )
+ debug? ( dev-util/lttng-ust )
+ fam? ( virtual/fam )
+ gpg? ( app-crypt/gpgme:= )
+ json? ( dev-libs/jansson:= )
+ ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
+ pam? ( sys-libs/pam )
+ python? (
+ sys-libs/ldb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}]
+ )
+ snapper? ( sys-apps/dbus )
+ system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] )
+ system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] )
+ !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) )
+ systemd? ( sys-apps/systemd:= )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind:= )
+ !llvm-libunwind? ( sys-libs/libunwind:= )
+ )
+ zeroconf? ( net-dns/avahi[dbus] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-perl/JSON
+ net-libs/libtirpc[${MULTILIB_USEDEP}]
+ net-libs/rpcsvc-proto
+ spotlight? ( dev-libs/glib )
+ test? (
+ >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}]
+ $(python_gen_cond_dep "dev-python/subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" )
+ !system-mitkrb5? (
+ >=net-dns/resolv_wrapper-1.1.4
+ >=net-libs/socket_wrapper-1.1.9
+ >=sys-libs/nss_wrapper-1.1.3
+ >=sys-libs/uid_wrapper-1.2.1
+ )
+ )"
+RDEPEND="${COMMON_DEPEND}
+ client? ( net-fs/cifs-utils[ads?] )
+ python? ( ${PYTHON_DEPS} )
+ selinux? ( sec-policy/selinux-samba )
+"
+BDEPEND="${PYTHON_DEPS}
+ app-text/docbook-xsl-stylesheets
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.18.4-pam.patch
+ "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch
+)
+
+CONFDIR="${FILESDIR}/4.4"
+WAF_BINARY="${S}/buildtools/bin/waf"
+SHAREDMODS=""
+
+pkg_setup() {
+ # Package fails to build with distcc
+ export DISTCC_DISABLE=1
+ export PYTHONHASHSEED=1
+
+ python-single-r1_pkg_setup
+
+ SHAREDMODS="$(usev !snapper '!')vfs_snapper"
+ if use cluster ; then
+ SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad"
+ elif use ads ; then
+ SHAREDMODS+=",idmap_ad"
+ fi
+}
+
+check_samba_dep_versions() {
+ actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die)
+ if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then
+ eerror "Source talloc version: ${TALLOC_VERSION}"
+ eerror "Ebuild talloc version: ${actual_talloc_version}"
+ die "Ebuild needs to fix TALLOC_VERSION!"
+ fi
+
+ actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die)
+ if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then
+ eerror "Source tdb version: ${TDB_VERSION}"
+ eerror "Ebuild tdb version: ${actual_tdb_version}"
+ die "Ebuild needs to fix TDB_VERSION!"
+ fi
+
+ actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die)
+ if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then
+ eerror "Source tevent version: ${TEVENT_VERSION}"
+ eerror "Ebuild tevent version: ${actual_tevent_version}"
+ die "Ebuild needs to fix TEVENT_VERSION!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ check_samba_dep_versions
+
+ # Unbundle dnspython
+ sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die
+
+ # Unbundle iso8601 unless tests are enabled
+ if ! use test ; then
+ sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die
+ fi
+
+ # Ugly hackaround for bug #592502
+ #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die
+
+ sed -e 's:<gpgme\.h>:<gpgme/gpgme.h>:' \
+ -i source4/dsdb/samdb/ldb_modules/password_hash.c \
+ || die
+
+ # WAF
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # When specifying libs for samba build you must append NONE to the end to
+ # stop it automatically including things
+ local bundled_libs="NONE"
+ if ! use system-heimdal && ! use system-mitkrb5 ; then
+ bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE"
+ fi
+
+ # We "use" bundled cmocka when we're not running tests as we're
+ # not using it anyway. Means we avoid making users install it for
+ # no reason. bug #802531
+ if ! use test ; then
+ bundled_libs="cmocka,${bundled_libs}"
+ fi
+
+ # bug #874633
+ if use llvm-libunwind ; then
+ mkdir -p "${T}"/${ABI}/pkgconfig || die
+
+ local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}"
+
+ cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die
+ exec_prefix=\${prefix}
+ libdir=/usr/$(get_libdir)
+ includedir=\${prefix}/include
+
+ Name: libunwind-generic
+ Description: libunwind generic library
+ Version: 1.70
+ Libs: -L\${libdir} -lunwind
+ Cflags: -I\${includedir}
+ EOF
+ fi
+
+ local myconf=(
+ --enable-fhs
+ --sysconfdir="${EPREFIX}/etc"
+ --localstatedir="${EPREFIX}/var"
+ --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba"
+ --with-piddir="${EPREFIX}/run/${PN}"
+ --bundled-libraries="${bundled_libs}"
+ --builtin-libraries=NONE
+ --disable-rpath
+ --disable-rpath-install
+ --nopyc
+ --nopyo
+ --without-winexe
+ $(multilib_native_use_with acl acl-support)
+ $(multilib_native_usex addc '' '--without-ad-dc')
+ $(multilib_native_use_with ads)
+ $(multilib_native_use_enable ceph cephfs)
+ $(multilib_native_use_with cluster cluster-support)
+ $(multilib_native_use_enable cups)
+ --without-dmapi
+ $(multilib_native_use_with fam)
+ $(multilib_native_use_enable glusterfs)
+ $(multilib_native_use_with gpg gpgme)
+ $(multilib_native_use_with json)
+ $(multilib_native_use_enable iprint)
+ $(multilib_native_use_with pam)
+ $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '')
+ $(multilib_native_use_with quota quotas)
+ $(multilib_native_use_with regedit)
+ $(multilib_native_use_enable spotlight)
+ $(multilib_native_use_with syslog)
+ $(multilib_native_use_with systemd)
+ --systemd-install-services
+ --with-systemddir="$(systemd_get_systemunitdir)"
+ $(multilib_native_use_with unwind libunwind)
+ $(multilib_native_use_with winbind)
+ $(multilib_native_usex python '' '--disable-python')
+ $(multilib_native_use_enable zeroconf avahi)
+ $(multilib_native_usex test '--enable-selftest' '')
+ $(usev system-mitkrb5 "--with-system-mitkrb5 ${ESYSROOT}/usr $(multilib_native_usex addc --with-experimental-mit-ad-dc '')")
+ $(use_with debug lttng)
+ $(use_with ldap)
+ $(use_with profiling-data)
+ # bug #683148
+ --jobs 1
+ )
+
+ if multilib_is_native_abi ; then
+ myconf+=( --with-shared-modules=${SHAREDMODS} )
+ else
+ myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper )
+ fi
+
+ append-cppflags "-I${ESYSROOT}/usr/include/et"
+
+ waf-utils_src_configure ${myconf[@]}
+}
+
+multilib_src_compile() {
+ waf-utils_src_compile
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi ; then
+ "${WAF_BINARY}" test || die "Test failed"
+ fi
+}
+
+multilib_src_install() {
+ waf-utils_src_install
+
+ # Make all .so files executable
+ find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die
+ # smbspool_krb5_wrapper must only be accessible to root, bug #880739
+ find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die
+
+ # Remove empty runtime dirs created by build system (bug #892341)
+ find "${ED}"/{run,var} -type d -empty -delete || die
+
+ if multilib_is_native_abi ; then
+ # Install ldap schema for server (bug #491002)
+ if use ldap ; then
+ insinto /etc/openldap/schema
+ doins examples/LDAP/samba.schema
+ fi
+
+ # Create symlink for cups (bug #552310)
+ if use cups ; then
+ dosym ../../../bin/smbspool \
+ /usr/libexec/cups/backend/smb
+ fi
+
+ # Install example config file
+ insinto /etc/samba
+ doins examples/smb.conf.default
+
+ # Fix paths in example file (bug #603964)
+ sed \
+ -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \
+ -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \
+ -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \
+ -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \
+ -i "${ED}"/etc/samba/smb.conf.default || die
+
+ # Install init script and conf.d file
+ newinitd "${CONFDIR}/samba4.initd-r1" samba
+ newconfd "${CONFDIR}/samba4.confd" samba
+
+ dotmpfiles "${FILESDIR}"/samba.conf
+ if ! use addc ; then
+ rm "${D}/$(systemd_get_systemunitdir)/samba.service" \
+ || die
+ fi
+
+ # Preserve functionality for old gentoo-specific unit names
+ dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service"
+ dosym smb.service "$(systemd_get_systemunitdir)/smbd.service"
+ dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service"
+
+ use python && python_optimize
+ fi
+
+ if use pam && use winbind ; then
+ newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind
+ # bugs #376853 and #590374
+ insinto /etc/security
+ doins examples/pam_winbind/pam_winbind.conf
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process samba.conf
+}