diff options
Diffstat (limited to 'net-fs')
34 files changed, 1805 insertions, 386 deletions
diff --git a/net-fs/btfs/btfs-2.24.ebuild b/net-fs/btfs/btfs-2.24.ebuild index 38bd3d6bbeba..0a84c213ddc8 100644 --- a/net-fs/btfs/btfs-2.24.ebuild +++ b/net-fs/btfs/btfs-2.24.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit autotools python-r1 DESCRIPTION="a bittorrent filesystem based on FUSE" @@ -15,12 +15,16 @@ SLOT="0" KEYWORDS="~amd64 ~arm64 ~x86" REQUIRED_USE="${PYTHON_REQUIRED_USE}" -DEPEND=">=sys-fs/fuse-2.8.0:0 +DEPEND=" + >=sys-fs/fuse-2.8.0:0 >=net-misc/curl-7.22.0 dev-libs/boost:= - >=net-libs/libtorrent-rasterbar-0.16.0:=" -RDEPEND="${DEPEND} - ${PYTHON_DEPS}" + >=net-libs/libtorrent-rasterbar-0.16.0:= +" +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} +" BDEPEND="virtual/pkgconfig" src_prepare() { diff --git a/net-fs/cifs-utils/Manifest b/net-fs/cifs-utils/Manifest index e5ae19ed0795..16707337f470 100644 --- a/net-fs/cifs-utils/Manifest +++ b/net-fs/cifs-utils/Manifest @@ -1,2 +1 @@ -DIST cifs-utils-6.15.tar.bz2 416592 BLAKE2B 8af926bf255c5b3a66bf52ccca99632aacb9ed1c83ad7db5543b32df2f3bcd4be9a9cd17b744ec115d1568d07084e2bd2d03849aa9ab97cff2862f39bcf137b8 SHA512 eedb8066563db584595a8ba7cb7a603e6b763ac2c1261430d605c327fcc5a831acd48b58ea55dd243af778dfdc827ab8c6daf4015764ff550dcffc2182773510 DIST cifs-utils-7.0.tar.bz2 418638 BLAKE2B 514d35f243d0ef7b866068a9a53a4b1704d2856d491d56aa469e8e3919b4030cb920a7f60d08851b0a23d28a020d1ddf7daa8b9ac412f1567a0a60d2f6ee6774 SHA512 4c57741af0c4567a78f352c73caca998881666a5ed36536275cfa775efd66ff1a44ebe539a8ed96c409c5b08a1378266964ce667a27e9fc7f2d43999c63dd0eb diff --git a/net-fs/cifs-utils/cifs-utils-6.15-r1.ebuild b/net-fs/cifs-utils/cifs-utils-6.15-r1.ebuild deleted file mode 100644 index 469484d3dbd1..000000000000 --- a/net-fs/cifs-utils/cifs-utils-6.15-r1.ebuild +++ /dev/null @@ -1,145 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) - -inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1 - -DESCRIPTION="Tools for Managing Linux CIFS Client Filesystems" -HOMEPAGE="https://wiki.samba.org/index.php/LinuxCIFS_utils https://git.samba.org/cifs-utils.git/?p=cifs-utils.git" -SRC_URI="https://ftp.samba.org/pub/linux-cifs/${PN}/${P}.tar.bz2" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~x86-linux" -IUSE="+acl +ads +caps creds pam +python systemd" - -RDEPEND=" - ads? ( - sys-apps/keyutils:= - sys-libs/talloc - virtual/krb5 - ) - caps? ( sys-libs/libcap-ng ) - creds? ( sys-apps/keyutils:= ) - pam? ( - sys-apps/keyutils:= - sys-libs/pam - ) - python? ( ${PYTHON_DEPS} ) -" -DEPEND="${RDEPEND}" -BDEPEND="dev-python/docutils" -PDEPEND=" - acl? ( >=net-fs/samba-4.0.0_alpha1 ) -" - -REQUIRED_USE=" - acl? ( ads ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -DOCS="doc/linux-cifs-client-guide.odt" - -PATCHES=( - "${FILESDIR}/${PN}-6.12-ln_in_destdir.patch" #766594 - "${FILESDIR}/${PN}-6.15-musl.patch" -) - -pkg_setup() { - linux-info_pkg_setup - - if ! linux_config_exists || ! linux_chkconfig_present CIFS; then - ewarn "You must enable CIFS support in your kernel config, " - ewarn "to be able to mount samba shares. You can find it at" - ewarn - ewarn " File systems" - ewarn " Network File Systems" - ewarn " CIFS support" - ewarn - ewarn "and recompile your kernel ..." - fi - - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - - if has_version app-crypt/heimdal ; then - # https://bugs.gentoo.org/612584 - eapply "${FILESDIR}/${PN}-6.7-heimdal.patch" - fi - - eautoreconf -} - -src_configure() { - # bug #927809 - filter-flags -fno-semantic-interposition - - local myeconfargs=( - --enable-man - --enable-smbinfo - $(use_enable acl cifsacl cifsidmap) - $(use_enable ads cifsupcall) - $(use_with caps libcap) - $(use_enable creds cifscreds) - $(use_enable pam) - $(use_with pam pamdir $(getpam_mod_dir)) - $(use_enable python pythontools) - # mount.cifs can get passwords from systemd - $(use_enable systemd) - ) - ROOTSBINDIR="${EPREFIX}"/sbin \ - econf "${myeconfargs[@]}" -} - -src_install() { - default - - # remove empty directories - find "${ED}" -type d -empty -delete || die - - if use acl ; then - dodir /etc/cifs-utils - dosym ../../usr/$(get_libdir)/cifs-utils/idmapwb.so \ - /etc/cifs-utils/idmap-plugin - dodir /etc/request-key.d - echo 'create cifs.idmap * * /usr/sbin/cifs.idmap %k' \ - > "${ED}/etc/request-key.d/cifs.idmap.conf" - fi - - if use ads ; then - dodir /etc/request-key.d - echo 'create dns_resolver * * /usr/sbin/cifs.upcall %k' \ - > "${ED}/etc/request-key.d/cifs.upcall.conf" - echo 'create cifs.spnego * * /usr/sbin/cifs.upcall %k' \ - > "${ED}/etc/request-key.d/cifs.spnego.conf" - fi - - dobashcomp bash-completion/smbinfo - use python && python_fix_shebang "${ED}" -} - -pkg_postinst() { - # Inform about set-user-ID bit of mount.cifs - ewarn "setuid use flag was dropped due to multiple security implications" - ewarn "such as CVE-2009-2948, CVE-2011-3585 and CVE-2012-1586" - ewarn "You are free to set setuid flags by yourself" - - # Inform about upcall usage - if use acl ; then - einfo "The cifs.idmap utility has been enabled by creating the" - einfo "configuration file /etc/request-key.d/cifs.idmap.conf" - einfo "This enables you to get and set CIFS acls." - fi - - if use ads ; then - einfo "The cifs.upcall utility has been enabled by creating the" - einfo "configuration file /etc/request-key.d/cifs.upcall.conf" - einfo "This enables you to mount DFS shares." - fi -} diff --git a/net-fs/cifs-utils/cifs-utils-7.0-r1.ebuild b/net-fs/cifs-utils/cifs-utils-7.0-r1.ebuild index 8720d8f3a066..aa0f9fee761f 100644 --- a/net-fs/cifs-utils/cifs-utils-7.0-r1.ebuild +++ b/net-fs/cifs-utils/cifs-utils-7.0-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{9..12} ) inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1 @@ -37,7 +37,6 @@ PDEPEND=" " REQUIRED_USE=" - acl? ( ads ) python? ( ${PYTHON_REQUIRED_USE} ) " diff --git a/net-fs/cifs-utils/cifs-utils-7.0.ebuild b/net-fs/cifs-utils/cifs-utils-7.0.ebuild index 469484d3dbd1..95cf49c09822 100644 --- a/net-fs/cifs-utils/cifs-utils-7.0.ebuild +++ b/net-fs/cifs-utils/cifs-utils-7.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{9..12} ) inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1 diff --git a/net-fs/curlftpfs/curlftpfs-0.9.2-r4.ebuild b/net-fs/curlftpfs/curlftpfs-0.9.2-r5.ebuild index 8fc39ff713c1..c291639f1821 100644 --- a/net-fs/curlftpfs/curlftpfs-0.9.2-r4.ebuild +++ b/net-fs/curlftpfs/curlftpfs-0.9.2-r5.ebuild @@ -1,25 +1,26 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools +inherit autotools flag-o-matic DESCRIPTION="File system for accessing ftp hosts based on FUSE" -HOMEPAGE="http://curlftpfs.sourceforge.net/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" +HOMEPAGE="https://curlftpfs.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 arm ~arm64 x86 ~amd64-linux ~x86-linux" -IUSE="" RESTRICT="test" # bug 258460 -RDEPEND=">=net-misc/curl-7.17.0 +RDEPEND=" + >=net-misc/curl-7.17.0 >=sys-fs/fuse-2.2:0= - >=dev-libs/glib-2.0" -DEPEND="${RDEPEND} - virtual/pkgconfig" + >=dev-libs/glib-2.0 +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" PATCHES=( "${FILESDIR}"/${P}-64bit_filesize.patch @@ -39,6 +40,15 @@ src_prepare() { eautoreconf } +src_configure() { + # -Werror=lto-type-mismatch + # https://bugs.gentoo.org/861299 + # https://sourceforge.net/p/curlftpfs/bugs/76/ + filter-lto + + default +} + src_install() { default dodoc README diff --git a/net-fs/davfs2/davfs2-1.6.0-r1.ebuild b/net-fs/davfs2/davfs2-1.6.0-r1.ebuild deleted file mode 100644 index fdd0b7931658..000000000000 --- a/net-fs/davfs2/davfs2-1.6.0-r1.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools - -DESCRIPTION="Linux FUSE (or coda) driver that allows you to mount a WebDAV resource" -HOMEPAGE="https://savannah.nongnu.org/projects/davfs2" -SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ppc x86" -IUSE="nls split-usr" -RESTRICT="test" - -RDEPEND="dev-libs/libxml2 - net-libs/neon - sys-libs/zlib - nls? ( virtual/libintl virtual/libiconv ) -" -DEPEND="${RDEPEND} - nls? ( sys-devel/gettext ) -" -RDEPEND="${RDEPEND} - acct-group/davfs2 - acct-user/davfs2 -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.6.0-neon-0.32-support.patch -) - -src_prepare() { - local f - - # Let the package manager handle man page compression - while IFS="" read -d $'\0' -r f ; do - sed -e '/^manual[58]_DATA/ s/[.]gz//g' -i "${f}" || die - done < <(find "${S}"/man -type f -name 'Makefile.in' -print0) - - default - eautoreconf -} - -src_configure() { - local ssbindir - if use split-usr; then - ssbindir=${EPREFIX}/sbin - else - ssbindir=${EPREFIX}/usr/sbin - fi - - econf --enable-largefile $(use_enable nls) ssbindir="${ssbindir}" -} - -pkg_postinst() { - elog - elog "Quick setup:" - elog " (as root)" - elog " # gpasswd -a \${your_user} davfs2" - elog " # echo 'https://path/to/dav /home/\${your_user}/dav davfs rw,user,noauto 0 0' >> /etc/fstab" - elog " (as user)" - elog " \$ mkdir -p ~/dav" - elog " \$ mount ~/dav" - elog -} diff --git a/net-fs/davfs2/davfs2-1.6.0-r2.ebuild b/net-fs/davfs2/davfs2-1.6.0-r2.ebuild index d1c70c69d9e6..2f0191604584 100644 --- a/net-fs/davfs2/davfs2-1.6.0-r2.ebuild +++ b/net-fs/davfs2/davfs2-1.6.0-r2.ebuild @@ -16,7 +16,7 @@ IUSE="nls" RESTRICT="test" RDEPEND="dev-libs/libxml2 - net-libs/neon + <net-libs/neon-0.33.0 sys-libs/zlib nls? ( virtual/libintl virtual/libiconv ) " diff --git a/net-fs/davfs2/davfs2-1.6.1-r2.ebuild b/net-fs/davfs2/davfs2-1.6.1-r3.ebuild index 27aa924e32d7..4685ec7210b8 100644 --- a/net-fs/davfs2/davfs2-1.6.1-r2.ebuild +++ b/net-fs/davfs2/davfs2-1.6.1-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,7 +18,7 @@ RESTRICT="test" RDEPEND="dev-libs/libxml2 acct-group/davfs2 acct-user/davfs2 - net-libs/neon:= + net-libs/neon:0/27 sys-libs/zlib nls? ( virtual/libintl virtual/libiconv ) " @@ -26,6 +26,10 @@ BDEPEND=" nls? ( sys-devel/gettext ) " +PATCHES=( + "${FILESDIR}"/${PN}-1.6.1-neon-version-support.patch +) + src_prepare() { local f diff --git a/net-fs/davfs2/davfs2-1.7.0.ebuild b/net-fs/davfs2/davfs2-1.7.0-r1.ebuild index 3ac4673512f8..16f1eca17df8 100644 --- a/net-fs/davfs2/davfs2-1.7.0.ebuild +++ b/net-fs/davfs2/davfs2-1.7.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -18,7 +18,7 @@ RESTRICT="test" RDEPEND="dev-libs/libxml2 acct-group/davfs2 acct-user/davfs2 - net-libs/neon:= + net-libs/neon:0/27 sys-libs/zlib nls? ( virtual/libintl virtual/libiconv ) " @@ -26,6 +26,10 @@ BDEPEND=" nls? ( sys-devel/gettext ) " +PATCHES=( + "${FILESDIR}"/${PN}-1.6.1-neon-version-support.patch +) + src_prepare() { local f diff --git a/net-fs/davfs2/files/davfs2-1.6.1-neon-version-support.patch b/net-fs/davfs2/files/davfs2-1.6.1-neon-version-support.patch new file mode 100644 index 000000000000..b002b49be6d3 --- /dev/null +++ b/net-fs/davfs2/files/davfs2-1.6.1-neon-version-support.patch @@ -0,0 +1,14 @@ +# Gentoo bug https://bugs.gentoo.org/925705 + +diff -Naur davfs2-1.7.0-orig/configure.ac davfs2-1.7.0/configure.ac +--- davfs2-1.7.0-orig/configure.ac 2022-09-08 13:17:15.000000000 -0700 ++++ davfs2-1.7.0/configure.ac 2024-04-05 03:39:20.044039872 -0700 +@@ -36,7 +36,7 @@ + # Checks for libraries. + AM_GNU_GETTEXT_VERSION(0.19.8) + AM_GNU_GETTEXT([external]) +-NE_REQUIRE_VERSIONS([0], [27 28 29 30 31 32]) ++NE_REQUIRE_VERSIONS([0], [27 28 29 30 31 32 33]) + DAV_CHECK_NEON + + # Checks for header files. diff --git a/net-fs/ksmbd-tools/Manifest b/net-fs/ksmbd-tools/Manifest index 86efb4106a01..0f98fa9569f0 100644 --- a/net-fs/ksmbd-tools/Manifest +++ b/net-fs/ksmbd-tools/Manifest @@ -1,3 +1,2 @@ -DIST ksmbd-tools-3.4.4.tar.gz 75481 BLAKE2B 84c215b0ccad01956185d42b858eb0de6a3407fc32c59628964ab38a2946fe5123fc73cc06cb04e8864199751f26e509ae5f6ebf6f5e7eb5f1fb8f21a4452a48 SHA512 b7be00e38eb126a0d5b8b3d9dde7c997b4012b29604d899a5f2fe3a77a3c30ac5d4bf00b7fc88d57150fd574af38bd2823c736d272a2cd596d40ccbe14a15320 -DIST ksmbd-tools-3.4.6.tar.gz 86976 BLAKE2B 2f18d41a5ef84d1d5293cab2dc51147649d723117f31b4a0360ff314d98544624c6c0280b11ec2df260514981995bdbac598347063fb6576447c511e88134c4e SHA512 396423a43ccb02fafb721717a36ea1efdc8449414cf9f7737cf44bafd991cde0a5d31689b5f43f96924357df058c1b5fbf90369b9aec2b293ae1a7b68c256d27 DIST ksmbd-tools-3.4.8.tar.gz 88898 BLAKE2B 4bd4fa77e7d89de4f48427e6867807b27a9be91e4f27079d4a5b231c4925aef73489bced1e4569361105fe7e04671fa8d6f3394154b36072f9d4ec77fded7466 SHA512 f5372ea7fd4b754482374cdeefa011bebe32c37a26acc180c34c61f37cf08125b5b4626128cae413cd517a74af326188f3f9e7cf459308e4305d86e7c6702436 +DIST ksmbd-tools-3.5.2.tar.gz 463604 BLAKE2B f54ff13719dd7e7167d065a7aaf5393fc18f67611be0a22fc4914e6d2afd25e751db85c27ff3adde482e1d9c4192161b76dc92f9c066dcc41cae7c820510483c SHA512 20035501e63798f5a23d3d9502ff4a50b04f74a03154bc4bfdfabb37dcf106410cd1355c2612cc46a0e52742f8e213dad4862790661781691e77760c56f40386 diff --git a/net-fs/ksmbd-tools/files/ksmbd.initd-r1 b/net-fs/ksmbd-tools/files/ksmbd.initd-r1 new file mode 100644 index 000000000000..82375f1ad8d3 --- /dev/null +++ b/net-fs/ksmbd-tools/files/ksmbd.initd-r1 @@ -0,0 +1,41 @@ +#!/sbin/openrc-run +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +KSMBD_CONF="${KSMBD_CONF:-/etc/ksmbd/ksmbd.conf}" +KSMBD_OPTS="${KSMBD_OPTS:-}" + +depend() { + need localmount + use net +} + +description="ksmbd userspace daemon" + +command="/usr/sbin/ksmbd.mountd" +command_control="/usr/sbin/ksmbd.control" +command_args="--config=${KSMBD_CONF} ${KSMBD_OPTS}" + +extra_started_commands="reload" + +required_files="${KSMBD_CONF}" + +reload() { + ebegin "Reloading ${RC_SVCNAME}" + "${command_control}" --reload + eend $? +} + +start_pre() { + /sbin/modprobe -q ksmbd || return 0 +} + +stop() { + ebegin "Stopping ${RC_SVCNAME}" + "${command_control}" --shutdown + eend $? +} + +stop_post() { + /sbin/modprobe -r -q ksmbd || return 0 +} diff --git a/net-fs/ksmbd-tools/ksmbd-tools-3.4.4.ebuild b/net-fs/ksmbd-tools/ksmbd-tools-3.4.4.ebuild deleted file mode 100644 index 727d4cd275f0..000000000000 --- a/net-fs/ksmbd-tools/ksmbd-tools-3.4.4.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools linux-info systemd - -DESCRIPTION="cifsd/ksmbd kernel server userspace utilities" -HOMEPAGE="https://github.com/cifsd-team/ksmbd-tools" -SRC_URI="https://github.com/cifsd-team/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64" - -DEPEND=" - dev-libs/glib:2 - dev-libs/libnl:3 -" - -RDEPEND="${DEPEND}" -BDEPEND="virtual/pkgconfig" - -pkg_setup() { - # we don't want to die() here to be able to build binpkgs - kernel_is -lt 5 15 && eerror "kernel >= 5.15 required for ${PN}" - CONFIG_CHECK="~SMB_SERVER" - ERROR_SMB_SERVER="CONFIG_SMB_SERVER is not set: ksmbd is not enabled in kernel, ${PN} will not work" - # use krb5 && CONFIG_CHECK+=" ~SMB_SERVER_KERBEROS5" - linux-info_pkg_setup -} - -src_prepare() { - eautoreconf - default -} - -src_configure() { - # TODO: add kerberos support, explicitly disable for now - # tools are expected to recide in /sbin, not /usr/sbin - econf --prefix="${EPREFIX}/" --enable-krb5=no -} - -src_install() { - default - - local DOCS=( README README.md Documentation/configuration.txt smb.conf.example ) - einstalldocs - - insinto /etc/ksmbd - doins smb.conf.example - - newinitd "${FILESDIR}/initd" ksmbd - newconfd "${FILESDIR}/confd" ksmbd - - dosym ksmbd.addshare /sbin/smbshareadd - dosym ksmbd.adduser /sbin/smbuseradd - - systemd_dounit ksmbd.service -} diff --git a/net-fs/ksmbd-tools/ksmbd-tools-3.4.6-r1.ebuild b/net-fs/ksmbd-tools/ksmbd-tools-3.4.6-r1.ebuild deleted file mode 100644 index 3cc23c1bbc48..000000000000 --- a/net-fs/ksmbd-tools/ksmbd-tools-3.4.6-r1.ebuild +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright 2022-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools linux-info systemd - -DESCRIPTION="cifsd/ksmbd kernel server userspace utilities" -HOMEPAGE="https://github.com/cifsd-team/ksmbd-tools" -SRC_URI="https://github.com/cifsd-team/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64" - -DEPEND=" - dev-libs/glib:2 - dev-libs/libnl:3 -" - -RDEPEND="${DEPEND}" -BDEPEND="virtual/pkgconfig" - -pkg_setup() { - # we don't want to die() here to be able to build binpkgs - kernel_is -lt 5 15 && eerror "kernel >= 5.15 required for ${PN}" - CONFIG_CHECK="~SMB_SERVER" - ERROR_SMB_SERVER="CONFIG_SMB_SERVER is not set: ksmbd is not enabled in kernel, ${PN} will not work" - # use krb5 && CONFIG_CHECK+=" ~SMB_SERVER_KERBEROS5" - linux-info_pkg_setup -} - -src_prepare() { - eautoreconf - default -} - -src_configure() { - # TODO: add kerberos support, explicitly disable for now - # tools are expected to reside in /sbin, not /usr/sbin - econf \ - --prefix="${EPREFIX:-}" \ - --enable-krb5=no \ - --with-rundir="${EPREFIX}/run" \ - --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" -} - -src_install() { - default - - local DOCS=( README.md ksmbd.conf.example ) - einstalldocs - - insinto /etc/ksmbd - doins ksmbd.conf.example - - newinitd "${FILESDIR}/ksmbd.initd" ksmbd - newconfd "${FILESDIR}/ksmbd.confd" ksmbd - - dosym ksmbd.addshare /sbin/smbshareadd - dosym ksmbd.adduser /sbin/smbuseradd -} - -pkg_postinst() { - local ver - for ver in ${REPLACING_VERSIONS}; do - if ver_test ${ver} -lt 3.4.6; then - ewarn "Upgrade from version <${CATEGORY}/${PN}-3.4.6 detected" - ewarn "${PN} config file moved to ${EPREFIX}/etc/ksmbd/ksmbd.conf" - ewarn "Please migrate from old ${EPREFIX}/etc/ksmbd/smb.conf" - fi - done - unset ver -} diff --git a/net-fs/ksmbd-tools/ksmbd-tools-3.5.2.ebuild b/net-fs/ksmbd-tools/ksmbd-tools-3.5.2.ebuild new file mode 100644 index 000000000000..c8ff8da17db4 --- /dev/null +++ b/net-fs/ksmbd-tools/ksmbd-tools-3.5.2.ebuild @@ -0,0 +1,70 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info meson systemd + +DESCRIPTION="cifsd/ksmbd kernel server userspace utilities" +HOMEPAGE="https://github.com/cifsd-team/ksmbd-tools" +SRC_URI="https://github.com/cifsd-team/ksmbd-tools/releases/download/${PV}/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64" + +DEPEND=" + dev-libs/glib:2 + dev-libs/libnl:3 +" + +RDEPEND="${DEPEND}" +BDEPEND="virtual/pkgconfig" + +pkg_setup() { + # we don't want to die() here to be able to build binpkgs + kernel_is -lt 5 15 && eerror "kernel >= 5.15 required for ${PN}" + CONFIG_CHECK="~SMB_SERVER" + ERROR_SMB_SERVER="CONFIG_SMB_SERVER is not set: ksmbd is not enabled in kernel, ${PN} will not work" + # use krb5 && CONFIG_CHECK+=" ~SMB_SERVER_KERBEROS5" + linux-info_pkg_setup +} + +src_configure() { + local emesonargs=( + -Drundir="${EPREFIX}"/run + -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)" + # TODO: add kerberos support, explicitly disable for now + -Dkrb5=disabled + ) + + meson_src_configure +} + +src_install() { + meson_src_install + + local DOCS=( README.md ksmbd.conf.example ) + einstalldocs + + insinto /etc/ksmbd + doins ksmbd.conf.example + + newinitd "${FILESDIR}/ksmbd.initd-r1" ksmbd + newconfd "${FILESDIR}/ksmbd.confd" ksmbd + + dosym ksmbd.addshare /usr/sbin/smbshareadd + dosym ksmbd.adduser /usr/sbin/smbuseradd +} + +pkg_postinst() { + local ver + for ver in ${REPLACING_VERSIONS}; do + if ver_test ${ver} -lt 3.4.6; then + ewarn "Upgrade from version <${CATEGORY}/${PN}-3.4.6 detected" + ewarn "${PN} config file moved to ${EPREFIX}/etc/ksmbd/ksmbd.conf" + ewarn "Please migrate from old ${EPREFIX}/etc/ksmbd/smb.conf" + fi + done + unset ver +} diff --git a/net-fs/libnfs/libnfs-5.0.3.ebuild b/net-fs/libnfs/libnfs-5.0.3.ebuild index 4d724238c890..f1f29dc19bc3 100644 --- a/net-fs/libnfs/libnfs-5.0.3.ebuild +++ b/net-fs/libnfs/libnfs-5.0.3.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://github.com/sahlberg/${PN}/archive/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 x86" S="${WORKDIR}"/${PN}-${P} fi diff --git a/net-fs/nfs-utils/nfs-utils-2.6.4-r11.ebuild b/net-fs/nfs-utils/nfs-utils-2.6.4-r11.ebuild index b64941485bd6..f05dfd7a5a6c 100644 --- a/net-fs/nfs-utils/nfs-utils-2.6.4-r11.ebuild +++ b/net-fs/nfs-utils/nfs-utils-2.6.4-r11.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == *_rc* ]] ; then SRC_URI="http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=snapshot;h=refs/tags/${PN}-${MY_PV};sf=tgz -> ${P}.tar.gz" S="${WORKDIR}/${PN}-${PN}-${MY_PV}" else - SRC_URI="mirror://sourceforge/nfs/${P}.tar.bz2" + SRC_URI="https://downloads.sourceforge.net/nfs/${P}.tar.bz2" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi diff --git a/net-fs/openafs/metadata.xml b/net-fs/openafs/metadata.xml index 63b5d6301dc9..ccc902021cc8 100644 --- a/net-fs/openafs/metadata.xml +++ b/net-fs/openafs/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>bircoph@gentoo.org</email> - <name>Andrew Savchenko</name> -</maintainer> +<!-- maintainer-needed --> <use> <flag name="apidoc">Build API documentation using <pkg>app-text/doxygen</pkg>. May take a *long* time to build.</flag> diff --git a/net-fs/s3backer/Manifest b/net-fs/s3backer/Manifest index 2f0d6ca8b1b8..4456927cf5a7 100644 --- a/net-fs/s3backer/Manifest +++ b/net-fs/s3backer/Manifest @@ -1 +1,2 @@ DIST s3backer-1.6.3.tar.gz 129742 BLAKE2B 05f8b94e9b5e6ffd11b20d5945a9705f1830f3f358c2777695d0c5066bb044bd314d65259ecde299a51288908fcd869b8c516b30b0fbf66975b46a021d4d5bd6 SHA512 f7db1d733a0426df22c1b7d9c1150f8dbfedd0ba2e9120bd61026a481ed52a16f7f09e9e4fcd072cb656da0536cf98472f369eec0195a03b3f105fb3c9a8ba99 +DIST s3backer-2.1.2.tar.gz 156281 BLAKE2B 5891dbcecbd08b73d69218894d29ec56323d53ff9b594a853d42d6a621787392061895ae3168d6671b65db1b62cdca26959a122250e8878d740c2d806c9d305f SHA512 58e8bd5909b5f714ead7add9dcfe798d626628519e75f4f4347175c92fdf652e08f6ae00c2d9bf34fa859d46c111b846047ee4e613b94e81b7a7cdfc8e26fd9a diff --git a/net-fs/s3backer/metadata.xml b/net-fs/s3backer/metadata.xml index f18a0fb25a1f..af27462af85c 100644 --- a/net-fs/s3backer/metadata.xml +++ b/net-fs/s3backer/metadata.xml @@ -9,6 +9,11 @@ <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> + <use> + <flag name="nbd"> + Support export as an nbd device + </flag> + </use> <upstream> <remote-id type="google-code">s3backer</remote-id> <remote-id type="github">archiecobbs/s3backer</remote-id> diff --git a/net-fs/s3backer/s3backer-1.6.3.ebuild b/net-fs/s3backer/s3backer-1.6.3.ebuild index 8ed0433a2964..5795b7fcbfd6 100644 --- a/net-fs/s3backer/s3backer-1.6.3.ebuild +++ b/net-fs/s3backer/s3backer-1.6.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -13,12 +13,13 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -DEPEND="dev-libs/expat +RDEPEND="dev-libs/expat dev-libs/openssl:0= net-misc/curl sys-fs/fuse:0 sys-libs/zlib" -RDEPEND="${DEPEND}" +DEPEND="${RDEPEND} + elibc_musl? ( sys-libs/queue-standalone )" src_prepare() { default diff --git a/net-fs/s3backer/s3backer-2.1.2.ebuild b/net-fs/s3backer/s3backer-2.1.2.ebuild new file mode 100644 index 000000000000..edc38736a8af --- /dev/null +++ b/net-fs/s3backer/s3backer-2.1.2.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="A filesystem that contains a single file backed by Amazon S3" +HOMEPAGE="https://github.com/archiecobbs/s3backer" +SRC_URI="https://github.com/archiecobbs/s3backer/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="nbd" + +RDEPEND=" + dev-libs/expat + dev-libs/openssl:0= + net-misc/curl + sys-fs/fuse:0 + sys-libs/zlib + nbd? ( sys-block/nbd sys-block/nbdkit ) +" +DEPEND="${RDEPEND} + elibc_musl? ( sys-libs/queue-standalone ) +" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + default + + # s3backer builds support for nbdkit if it finds nbdkit during build, no config is needed. + # yet it will still build support for nbd if USE="-nbd" but nbdkit is installed + + sed -e "/docdir=/s:packages/\$(PACKAGE):${PF}:" \ + -e "/doc_DATA=/d" \ + -i Makefile.am || die + + eautoreconf +} + +src_compile() { + emake CFLAGS="${CFLAGS}" +} + +src_install() { + default + + # skip /run/s3backer-nbd if present + rm -rf "${ED}/run" +} diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest index a182c2ae7d90..74c51f123cc5 100644 --- a/net-fs/samba/Manifest +++ b/net-fs/samba/Manifest @@ -1,4 +1,8 @@ DIST samba-4.18.10.tar.gz 41352009 BLAKE2B 191928a3b0b2ff203de83a208dd61ac047bc666b744b0ba16a8f9a7e2e072438e2980bf0096ac95cc44003526b2098e763a29b4317083a1e3192f7e3cae2ab85 SHA512 19fed2644b1cb5a5bddca6c7eb2da11b4faf224b060b52ac9131f321d194dc650ea3082051960253e2ce627cdc06ef396778fa0f95e3e9b79f74cd1422577d80 +DIST samba-4.18.11.tar.gz 41352059 BLAKE2B b2a39079286c5c0ca7beec99597ef6004c37eb81e7772b010c78b95b468b48d0370941717b8b919f0308e5313be4fc6a09374460eb2a0d2d7b26e3a8cea996d0 SHA512 7ae0f739070133c803fff3daf27ae2b0adff7336affb4898b07e5ca13bd6658228e8796565374e5a2c14e0b16ae84f404d3a62454096cacccc120520d379199f DIST samba-4.18.8.tar.gz 41335959 BLAKE2B d25711f1e781ed16fc224476979a07a5362f92ac943dd0bccfdf445434d0e6838281d5ceae27963267f914720ad6db647078520dc0e78c6ae652faec7d773e73 SHA512 2924c360f6299129527457547b13c1b282e2907a0ecde1036dbca894c752935d693914b4846a9eab436b33798c53c9974692e51fd071301b1174598be944a246 DIST samba-4.18.9.tar.gz 41332779 BLAKE2B 8a0769c73d42b941b6f69d62243dd2b93d66748231465b853320cf1bf4b3dd8a912ac7bddfaa9c8b1941788951c2ccd630dabb23cf94965bc1d1e4cb5d74d123 SHA512 93a6c878bca583f59208df2a7865bbd453f7a65dc2f39a863797ef807bdeced4d632c5edd4579e341f8cf3b0b2fbe41e68a815a1510518bdd43e9a25a973c94c DIST samba-4.19.4.tar.gz 41839810 BLAKE2B b5916478d9385eff93d852b61eaa835e04eef7d813175b7011dfab518d3115707895a67f34fc4bb6afc2a1e3b2f60af8d30cd5a32b59d8ec48977c7eefd1b906 SHA512 9a66f685cb1b5b89c59c75ccb67292b3f792b40b30ca76dfc483e805f5bb680bac027117a28a117f42713452fca41c439bed1724ba7d436fe0b0cb30a34f5b45 +DIST samba-4.19.6.tar.gz 41847853 BLAKE2B 42a1756f3cb1cd48da5abe043357e15b294148b88fdcb2502394372628a17a729ffb5ea070a967face2dfb76e319cdf6fa56d611c369baddf54e998164d782ca SHA512 23172f4393deb9c520182ffb1acb3cf3e53391d4276fffe98527f2f514f969c0952e6e59bcd90f11385dc51367a7bb9cd0534fa9fc3814f16bfb88f41609d0f5 +DIST samba-4.20.0.tar.gz 42433302 BLAKE2B 97cdfdaf118fcd9b44aef0134d211e243a6e2468d90449b9c5ac55c9a8c4dc1e63bf9eb2be9878dc70609c830f90b08b4d1dbf80d7e947c10219043def970d24 SHA512 e820739706992ef3b4e3a7a771ad5d8efc6b87d5ccdcee7ebd41483d90fa3cc0420ba9680d059e71d7083c9c12b0d36deafcdce0224560f49bbfc3a277e7e77c +DIST samba-4.20.1.tar.gz 42441898 BLAKE2B 5516b3d74705ee829971119d9931ccd339aaa857647dc46e40fda96f65ec5ba695db107f91075a46e1a7135cfdcc0a56ee67aa3475649b314260be03e4e44657 SHA512 bea2bacae5b3272045399057ddf88d8f38203dde04c718b0088fd45792cccd68047b413e66bca7418b19db8580879358b86531a8d6f2d76fbcd902c331050a84 diff --git a/net-fs/samba/files/cmocka-config_h.patch b/net-fs/samba/files/cmocka-config_h.patch new file mode 100644 index 000000000000..124928450cd6 --- /dev/null +++ b/net-fs/samba/files/cmocka-config_h.patch @@ -0,0 +1,23 @@ +--- ./third_party/cmocka/cmocka.h.orig 2024-03-26 10:23:03.378410042 +0100 ++++ ./third_party/cmocka/cmocka.h 2024-03-26 10:24:51.526922405 +0100 +@@ -14,6 +14,11 @@ + * See the License for the specific language governing permissions and + * limitations under the License. + */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ + #ifndef CMOCKA_H_ + #define CMOCKA_H_ + +@@ -111,7 +114,7 @@ + ((LargestIntegralType)(value)) + + /* Smallest integral type capable of holding a pointer. */ +-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) ++#if !defined(HAVE_UINTPTR_T) && !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t) + # if defined(_WIN32) + /* WIN32 is an ILP32 platform */ + typedef unsigned int uintptr_t; diff --git a/net-fs/samba/samba-4.18.10.ebuild b/net-fs/samba/samba-4.18.10.ebuild index aad41632fada..be5091996562 100644 --- a/net-fs/samba/samba-4.18.10.ebuild +++ b/net-fs/samba/samba-4.18.10.ebuild @@ -146,6 +146,7 @@ BDEPEND="${PYTHON_DEPS} PATCHES=( "${FILESDIR}"/${PN}-4.18.4-pam.patch "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch + "${FILESDIR}"/cmocka-config_h.patch ) CONFDIR="${FILESDIR}/4.4" diff --git a/net-fs/samba/samba-4.18.11.ebuild b/net-fs/samba/samba-4.18.11.ebuild new file mode 100644 index 000000000000..853948ccc18f --- /dev/null +++ b/net-fs/samba/samba-4.18.11.ebuild @@ -0,0 +1,384 @@ +# 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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3" +SLOT="0" +IUSE="acl addc ads ceph client cluster cpu_flags_x86_aes 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.0" +TDB_VERSION="1.4.8" +TEVENT_VERSION="0.14.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.7.2:=[ldap(+)?,${MULTILIB_USEDEP}] + <sys-libs/ldb-2.8.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 + --accel-aes=$(usex cpu_flags_x86_aes intelaesni none) + $(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" + 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.18.8.ebuild b/net-fs/samba/samba-4.18.8.ebuild index 8135362ec56e..6d1877fa6e7b 100644 --- a/net-fs/samba/samba-4.18.8.ebuild +++ b/net-fs/samba/samba-4.18.8.ebuild @@ -146,6 +146,7 @@ BDEPEND="${PYTHON_DEPS} PATCHES=( "${FILESDIR}"/${PN}-4.18.4-pam.patch "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch + "${FILESDIR}"/cmocka-config_h.patch ) CONFDIR="${FILESDIR}/4.4" diff --git a/net-fs/samba/samba-4.18.9.ebuild b/net-fs/samba/samba-4.18.9.ebuild index 66c20828dd28..1acb8412bd5c 100644 --- a/net-fs/samba/samba-4.18.9.ebuild +++ b/net-fs/samba/samba-4.18.9.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..11} ) +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 @@ -146,6 +146,7 @@ BDEPEND="${PYTHON_DEPS} PATCHES=( "${FILESDIR}"/${PN}-4.18.4-pam.patch "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch + "${FILESDIR}"/cmocka-config_h.patch ) CONFDIR="${FILESDIR}/4.4" diff --git a/net-fs/samba/samba-4.19.4.ebuild b/net-fs/samba/samba-4.19.4.ebuild index 14523d446af3..9903c474ab38 100644 --- a/net-fs/samba/samba-4.19.4.ebuild +++ b/net-fs/samba/samba-4.19.4.ebuild @@ -146,6 +146,7 @@ BDEPEND="${PYTHON_DEPS} PATCHES=( "${FILESDIR}"/${PN}-4.18.4-pam.patch "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch + "${FILESDIR}"/cmocka-config_h.patch ) CONFDIR="${FILESDIR}/4.4" diff --git a/net-fs/samba/samba-4.19.6.ebuild b/net-fs/samba/samba-4.19.6.ebuild new file mode 100644 index 000000000000..4493fa08886d --- /dev/null +++ b/net-fs/samba/samba-4.19.6.ebuild @@ -0,0 +1,383 @@ +# 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 ~ia64 ~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.0:=[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" + 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.0.ebuild b/net-fs/samba/samba-4.20.0.ebuild new file mode 100644 index 000000000000..5cdececc5c61 --- /dev/null +++ b/net-fs/samba/samba-4.20.0.ebuild @@ -0,0 +1,383 @@ +# 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 ~ia64 ~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.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.0:=[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 $(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" + 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.1.ebuild b/net-fs/samba/samba-4.20.1.ebuild new file mode 100644 index 000000000000..5cdececc5c61 --- /dev/null +++ b/net-fs/samba/samba-4.20.1.ebuild @@ -0,0 +1,383 @@ +# 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 ~ia64 ~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.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.0:=[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 $(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" + 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/smbnetfs/smbnetfs-0.6.3.ebuild b/net-fs/smbnetfs/smbnetfs-0.6.3.ebuild index a332b0bef370..7cbf21c76ce2 100644 --- a/net-fs/smbnetfs/smbnetfs-0.6.3.ebuild +++ b/net-fs/smbnetfs/smbnetfs-0.6.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -6,7 +6,7 @@ inherit readme.gentoo-r1 DESCRIPTION="FUSE filesystem for SMB shares" HOMEPAGE="https://sourceforge.net/projects/smbnetfs" -SRC_URI="mirror://sourceforge/project/${PN}/${PN}/SMBNetFS-${PV}/${P}.tar.bz2" +SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/SMBNetFS-${PV}/${P}.tar.bz2" LICENSE="GPL-2" SLOT="0" |