repo/gentoo:master commit in: net-fs/samba/

"Ben Kohler" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786725316.9ad514cdb1e2e7ab5d755fb9d33c9d5a5dcbd16e.bkohler@gentoo>
commit:     9ad514cdb1e2e7ab5d755fb9d33c9d5a5dcbd16e
Author:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 14 16:34:50 2026 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Aug 14 16:35:16 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ad514cd

net-fs/samba: add 4.24.6

Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 net-fs/samba/Manifest            |   1 +
 net-fs/samba/samba-4.24.6.ebuild | 400 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 401 insertions(+)

diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest
index ebeca87da364..3a252eba7e4b 100644
--- a/net-fs/samba/Manifest
+++ b/net-fs/samba/Manifest
@@ -3,3 +3,4 @@ DIST samba-4.23.11.tar.gz 43369240 BLAKE2B 618fc0cf119e65129549f63e6271428d71df6
 DIST samba-4.23.9.tar.gz 43340009 BLAKE2B 106fd5170015a1175bdd8221ece532f6b18dd7deb4ccaf22504cfaf6ca1706f5204d5be7d92455f8d7cc49e368c1142d3432fe1d1272c6cf50c57e54d8b37785 SHA512 8d6cd716e36db5f6e96bcd1bc3848f51b55f3c0ed039650fc0f78c15f03ae2f5669cf106166fb7f20feacb539b5296ec47212b72f7baf519c3e20b310bd8b950
 DIST samba-4.24.4.tar.gz 43431734 BLAKE2B 7d8406ed473f88a009628b64e070611dbac2b70da3d49857f5add1a8066dac93c762d6947fe3f3ed12b316e4041f0af42fa897a842ab1110dd629146848d0f5f SHA512 3f6b8a99491d82fcb90115288e547b330afd452f7ed15f288085644a0ea9ccbd45645c5a75f2d5db6d2d888ff280e87ec252b48e0c064a0ca33cac39f24f123d
 DIST samba-4.24.5.tar.gz 43445051 BLAKE2B 4796e3ae5e70c1d11d9326566677f0909423c5aad140309bfd9b3f8a3dedefe49660d0a0d502a681726ed7a961779587c33c9da29ecf69664b00a2ca958e64af SHA512 dadaee50c61cc8076bd5f4e6e3a8be13b6aa6aeff33991277c7f5398ba9dea32e8d966c0206dec9cad240b935768b707f9c9dd6b60c3db433dcf8ddb30134088
+DIST samba-4.24.6.tar.gz 43449390 BLAKE2B cd28c61285624de1e45f6f55684adae3df42ca3579106412f4ed58889ebf0ee7e8bb1b7501878910eafebf1884d019f23b3da75b71850cdca8da751f70423e0a SHA512 fb4e4602c0a36ab26ce04457e0ae259eda6f00411468f91227d234385b545e230103c1053820b17193e8f5a1967dc3bf637777e946c72ecbe1f2e82901af737f

diff --git a/net-fs/samba/samba-4.24.6.ebuild b/net-fs/samba/samba-4.24.6.ebuild
new file mode 100644
index 000000000000..301efdce1a13
--- /dev/null
+++ b/net-fs/samba/samba-4.24.6.ebuild
@@ -0,0 +1,400 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} )
+PYTHON_REQ_USE="threads(+),xml(+)"
+inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info optfeature 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/2.11.0"
+IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg"
+IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota"
+IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5"
+IUSE+=" systemd test unwind winbind zeroconf"
+
+# ldap needs ads (bug #941578)
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+	addc? ( json python !system-mitkrb5 winbind )
+	ads? ( acl ldap python winbind )
+	cluster? ( ads )
+	gpg? ( addc )
+	ldap? ( ads )
+	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.4"
+TDB_VERSION="1.4.15"
+TEVENT_VERSION="0.17.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}]
+	>=net-libs/ngtcp2-1.12.0[gnutls,${MULTILIB_USEDEP}]
+	>=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}]
+	!sys-libs/ldb
+	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}]
+	virtual/zlib:=[${MULTILIB_USEDEP}]
+	virtual/libcrypt:=[${MULTILIB_USEDEP}]
+	virtual/libiconv
+	$(python_gen_cond_dep '
+		addc? (
+			dev-python/cryptography[${PYTHON_USEDEP}]
+			dev-python/dnspython:=[${PYTHON_USEDEP}]
+			dev-python/markdown[${PYTHON_USEDEP}]
+			net-dns/bind[gssapi]
+		)
+		ads? (
+			dev-python/cryptography[${PYTHON_USEDEP}]
+			dev-python/dnspython:=[${PYTHON_USEDEP}]
+			dev-python/markdown[${PYTHON_USEDEP}]
+			net-dns/bind[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}] )
+	lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] )
+	pam? ( sys-libs/pam )
+	python? (
+		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? ( llvm-runtimes/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/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
+
+	# bug #943942
+	append-cflags -std=gnu17
+
+	# 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
+
+	bundled_libs="libquic,${bundled_libs}"
+
+	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_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 ads)
+		$(use_with debug lttng)
+		$(use_with ldap)
+		$(use_with profiling-data)
+		--private-libraries='!ldb'
+		$(usex lmdb '' --without-ldb-lmdb)
+		# 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-ldflags $(test-flags-CCLD -Wl,--undefined-version) # bug 914898
+
+	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
+
+	if use addc || use ads ; then
+		optfeature "Hide passwords from command line when using samba-tool or samba-gpupdate" dev-python/setproctitle
+	fi
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.