From 6f8c0fe54f3340a62a5a97c1fff0a56b3f82f7d3 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 7 Apr 2019 00:30:42 +0100 Subject: net-fs/samba : version bump --- net-fs/samba/Manifest | 3 +- net-fs/samba/files/4.4/samba4.confd | 23 +- net-fs/samba/files/4.4/samba4.initd-r1 | 4 +- net-fs/samba/files/4.4/system-auth-winbind.pam | 18 ++ .../files/samba-4.7.3-krb-cross-compile.patch | 40 +++ .../files/samba-4.8.6-no-pydsdb-when-no-addc.patch | 36 +++ net-fs/samba/files/samba-4.9.2-timespec.patch | 21 ++ net-fs/samba/files/talloc-disable-python.patch | 34 +++ net-fs/samba/samba-4.5.15-r1.ebuild | 285 -------------------- net-fs/samba/samba-4.8.6-r1337.ebuild | 288 +++++++++++++++++++++ 10 files changed, 455 insertions(+), 297 deletions(-) create mode 100644 net-fs/samba/files/4.4/system-auth-winbind.pam create mode 100644 net-fs/samba/files/samba-4.7.3-krb-cross-compile.patch create mode 100644 net-fs/samba/files/samba-4.8.6-no-pydsdb-when-no-addc.patch create mode 100644 net-fs/samba/files/samba-4.9.2-timespec.patch create mode 100644 net-fs/samba/files/talloc-disable-python.patch delete mode 100644 net-fs/samba/samba-4.5.15-r1.ebuild create mode 100644 net-fs/samba/samba-4.8.6-r1337.ebuild diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest index b306ac84..7c9274a7 100644 --- a/net-fs/samba/Manifest +++ b/net-fs/samba/Manifest @@ -1,2 +1 @@ -DIST samba-4.5.11-disable-python-patches.tar.xz 6292 BLAKE2B c2a32a1059a02bc1c87ce5f604cbc5878c654b8f693c8486b5ba63b37513444915a7b6389fe82b7e31ab2f9577dd8462eddba60b4f4f756b4ed1145ce7bd90ae SHA512 f0e3076e3e1ecaae3f06b3ef30efc81719fb3f63a1041dcbdae4b62ca4cf693732f9eb16f047d046d4930136fed82194e82b455ea888e12cf845b3e6a122d57d -DIST samba-4.5.15.tar.gz 21020181 BLAKE2B 0d113c4d3147102e2cc192a14d145c46930b8f772683bc27e90b264e43c5660298e468c494de41e80fb2dcd80a0dbef0b9ce1f74dc9e89eca52865ceba605382 SHA512 e77d746767d55ff933cddbb4d6e0f97f0b12e630c564852bee02f5f9764633167f1c098df7606af2a1930a9bdd4665fb79d7748ff07532db4e9a581fb639450c +DIST samba-4.8.6.tar.gz 17723841 BLAKE2B 38da52e14b4417f26462eef2226c4498e54d2c276b4056e8c6d6c66079f33bcda24c1eab30b29bc7413280ec89a74a55e043e8274ac50f9a25bae7563717ff34 SHA512 f6afab5ca466bd8653a56c205b71ce94ecf0ad0c6e4c9d64cbba7b1e56f1987bc2022e6b629d87eb6078e3f6ba53833c19cfb41e40b6d589e4317ea9d85de273 diff --git a/net-fs/samba/files/4.4/samba4.confd b/net-fs/samba/files/4.4/samba4.confd index 58b2c782..629a6050 100644 --- a/net-fs/samba/files/4.4/samba4.confd +++ b/net-fs/samba/files/4.4/samba4.confd @@ -6,6 +6,8 @@ # accordingly. daemon_list="smbd nmbd" +piddir="/run/samba" + #---------------------------------------------------------------------------- # Daemons calls: _ #---------------------------------------------------------------------------- @@ -17,22 +19,27 @@ my_service_POST="" # Daemons calls: _ #---------------------------------------------------------------------------- smbd_start_options="-D" -smbd_start="start-stop-daemon --start --exec /usr/sbin/smbd -- ${smbd_start_options}" -smbd_stop="start-stop-daemon --stop --exec /usr/sbin/smbd" +smbd_command="/usr/sbin/smbd" +smbd_start="start-stop-daemon --start --exec ${smbd_command} -- ${smbd_start_options}" +smbd_stop="start-stop-daemon --stop --exec ${smbd_command}" smbd_reload="killall -HUP smbd" nmbd_start_options="-D" -nmbd_start="start-stop-daemon --start --exec /usr/sbin/nmbd -- ${nmbd_start_options}" -nmbd_stop="start-stop-daemon --stop --exec /usr/sbin/nmbd" +nmbd_command="/usr/sbin/nmbd" +nmbd_start="start-stop-daemon --start --exec ${nmbd_command} -- ${nmbd_start_options}" +nmbd_stop="start-stop-daemon --stop --exec ${nmbd_command}" nmbd_reload="killall -HUP nmbd" samba4_start_options="" -samba4_start="start-stop-daemon --start --exec /usr/sbin/samba -- ${samba4_start_options}" -samba4_stop="start-stop-daemon --stop --exec /usr/sbin/samba" +samba4_command="/usr/sbin/samba" +samba4_pidfile="${piddir}/samba.pid" +samba4_start="start-stop-daemon --start --exec ${samba4_command} --pidfile ${samba4_pidfile} -- ${samba4_start_options}" +samba4_stop="start-stop-daemon --stop --exec ${samba4_command} --pidfile ${samba4_pidfile}" samba4_reload="killall -HUP samba" winbind_start_options="" -winbind_start="start-stop-daemon --start --exec /usr/sbin/winbindd -- ${winbind_start_options}" -winbind_stop="start-stop-daemon --stop --exec /usr/sbin/winbindd" +winbind_command="/usr/sbin/winbindd" +winbind_start="start-stop-daemon --start --exec ${winbind_command} -- ${winbind_start_options}" +winbind_stop="start-stop-daemon --stop --exec ${winbind_command}" winbind_reload="killall -HUP winbindd" diff --git a/net-fs/samba/files/4.4/samba4.initd-r1 b/net-fs/samba/files/4.4/samba4.initd-r1 index 52a9b68b..05bd1fcf 100644 --- a/net-fs/samba/files/4.4/samba4.initd-r1 +++ b/net-fs/samba/files/4.4/samba4.initd-r1 @@ -1,9 +1,9 @@ #!/sbin/openrc-run -# Copyright 1999-2016 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License, v2 or later extra_started_commands="reload" -piddir="/run/samba" +[ -z "${piddir}" ] && piddir="/run/samba" depend() { after slapd diff --git a/net-fs/samba/files/4.4/system-auth-winbind.pam b/net-fs/samba/files/4.4/system-auth-winbind.pam new file mode 100644 index 00000000..8d6746b7 --- /dev/null +++ b/net-fs/samba/files/4.4/system-auth-winbind.pam @@ -0,0 +1,18 @@ +#%PAM-1.0 +# $Id$ + +auth required pam_env.so +auth sufficient pam_winbind.so +auth sufficient pam_unix.so likeauth nullok use_first_pass +auth required pam_deny.so + +account sufficient pam_winbind.so +account required pam_unix.so + +password required pam_cracklib.so retry=3 +password sufficient pam_unix.so nullok use_authtok md5 shadow +password required pam_deny.so + +session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 +session required pam_limits.so +session required pam_unix.so diff --git a/net-fs/samba/files/samba-4.7.3-krb-cross-compile.patch b/net-fs/samba/files/samba-4.7.3-krb-cross-compile.patch new file mode 100644 index 00000000..9fad9fca --- /dev/null +++ b/net-fs/samba/files/samba-4.7.3-krb-cross-compile.patch @@ -0,0 +1,40 @@ +https://lists.samba.org/archive/samba-technical/2017-December/124344.html +https://git.samba.org/?p=samba.git;a=commit;h=70f92025ae504cda97ff3a130f19035450967836 + +From 70f92025ae504cda97ff3a130f19035450967836 Mon Sep 17 00:00:00 2001 +From: Zentaro Kavanagh +Date: Mon, 11 Dec 2017 12:41:16 -0800 +Subject: [PATCH] Remove unsupported colon from configure msg. + +- When cross-compiling an answers file must be supplied via + --cross-compile --cross-answers=. +- The lines in the answer file have the form; + Config Msg: Answer +- The colon is used to delimit the msg and the answer when reading + the answers file. +- WAF doesn't support the message containing a colon. +- It's not possible to override this variable so cross compile fails. + +Signed-off-by: Zentaro Kavanagh +Reviewed-by: Uri Simchoni +Reviewed-by: Andrew Bartlett +--- + wscript_configure_system_mitkrb5 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5 +index 9c351131ad1a..803dad7ab63b 100644 +--- a/wscript_configure_system_mitkrb5 ++++ b/wscript_configure_system_mitkrb5 +@@ -282,7 +282,7 @@ conf.CHECK_CODE(''' + ''', + 'HAVE_WRFILE_KEYTAB', + headers='krb5.h', lib='krb5', execute=True, +- msg="Checking whether the WRFILE:-keytab is supported"); ++ msg="Checking whether the WRFILE -keytab is supported"); + # Check for KRB5_DEPRECATED handling + conf.CHECK_CODE('''#define KRB5_DEPRECATED 1 + #include ''', +-- +2.15.1 + diff --git a/net-fs/samba/files/samba-4.8.6-no-pydsdb-when-no-addc.patch b/net-fs/samba/files/samba-4.8.6-no-pydsdb-when-no-addc.patch new file mode 100644 index 00000000..1093b1de --- /dev/null +++ b/net-fs/samba/files/samba-4.8.6-no-pydsdb-when-no-addc.patch @@ -0,0 +1,36 @@ +Do not install the python DSDB modules when ADDC is disabled. +This is a change integrated upstream in 4.9.1 (or earlier). + +Without this, the python dsdb_dns.so module is installed, which +is linked to libdnsserver-common.so that is NOT installed, and so +potential breakage ensues. + +--- a/source4/dsdb/wscript_build 2018-01-17 03:08:39.000000000 -0500 ++++ b/source4/dsdb/wscript_build 2018-11-08 10:43:58.064486832 -0500 +@@ -63,10 +63,11 @@ + ) + + bld.SAMBA_PYTHON('python_dsdb', + source='pydsdb.c', + # the dependency on dcerpc here is because gensec + # depends on dcerpc but the waf circular dependency finder + # removes it so we end up with unresolved symbols. + deps='samdb pyldb-util dcerpc com_err pyrpc_util pyparam_util dsdb_garbage_collect_tombstones', +- realname='samba/dsdb.so' ++ realname='samba/dsdb.so', ++ enabled=bld.AD_DC_BUILD_IS_ENABLED() + ) +--- a/source4/dns_server/wscript_build 2018-11-08 11:49:03.450296286 -0500 ++++ b/source4/dns_server/wscript_build 2018-11-08 11:49:23.327864408 -0500 +@@ -64,9 +64,10 @@ + private_library=True, + deps='samba-hostconfig samdb-common gensec popt dnsserver_common', + enabled=bld.AD_DC_BUILD_IS_ENABLED()) + + + bld.SAMBA_PYTHON('python_dsdb_dns', + source='pydns.c', + deps='samdb pyldb-util pyrpc_util dnsserver_common pytalloc-util', +- realname='samba/dsdb_dns.so') ++ realname='samba/dsdb_dns.so', ++ enabled=bld.AD_DC_BUILD_IS_ENABLED()) diff --git a/net-fs/samba/files/samba-4.9.2-timespec.patch b/net-fs/samba/files/samba-4.9.2-timespec.patch new file mode 100644 index 00000000..c82f4af4 --- /dev/null +++ b/net-fs/samba/files/samba-4.9.2-timespec.patch @@ -0,0 +1,21 @@ +From 11e8c14b78e2423041f3846882f74cd6490a3e44 Mon Sep 17 00:00:00 2001 +From: Joan Karadimov +Date: Thu, 18 Oct 2018 18:16:17 +0300 +Subject: [PATCH] Fix compatibility issues with the timespec struct + +--- + source3/include/libsmbclient.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/source3/include/libsmbclient.h b/source3/include/libsmbclient.h +index 5e4a1715402..6487ea7a8aa 100644 +--- a/source3/include/libsmbclient.h ++++ b/source3/include/libsmbclient.h +@@ -78,6 +78,7 @@ extern "C" { + #include + #include + #include ++#include + #include + + #define SMBC_BASE_FD 10000 /* smallest file descriptor returned */ diff --git a/net-fs/samba/files/talloc-disable-python.patch b/net-fs/samba/files/talloc-disable-python.patch new file mode 100644 index 00000000..6ef45eb3 --- /dev/null +++ b/net-fs/samba/files/talloc-disable-python.patch @@ -0,0 +1,34 @@ +--- a/lib/talloc/wscript 2017-04-28 04:57:26.000000000 -0400 ++++ b/lib/talloc/wscript 2017-07-05 14:30:42.700580464 -0400 +@@ -74,19 +74,22 @@ + implied_deps='replace'): + conf.define('USING_SYSTEM_TALLOC', 1) + +- using_system_pytalloc_util = True +- if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, +- implied_deps='talloc replace'): ++ if conf.env.disable_python: + using_system_pytalloc_util = False +- +- # We need to get a pytalloc-util for all the python versions +- # we are building for +- if conf.env['EXTRA_PYTHON']: +- name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] +- if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, ++ else: ++ using_system_pytalloc_util = True ++ if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', minversion=VERSION, + implied_deps='talloc replace'): + using_system_pytalloc_util = False + ++ # We need to get a pytalloc-util for all the python versions ++ # we are building for ++ if conf.env['EXTRA_PYTHON']: ++ name = 'pytalloc-util' + conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG'] ++ if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION, ++ implied_deps='talloc replace'): ++ using_system_pytalloc_util = False ++ + if using_system_pytalloc_util: + conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1) + diff --git a/net-fs/samba/samba-4.5.15-r1.ebuild b/net-fs/samba/samba-4.5.15-r1.ebuild deleted file mode 100644 index 26f83294..00000000 --- a/net-fs/samba/samba-4.5.15-r1.ebuild +++ /dev/null @@ -1,285 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE='threads(+),xml(+)' - -inherit python-single-r1 waf-utils multilib-minimal linux-info systemd eutils - -MY_PV="${PV/_rc/rc}" -MY_P="${PN}-${MY_PV}" - -SRC_PATH="stable" -[[ ${PV} = *_rc* ]] && SRC_PATH="rc" - -SRC_URI="mirror://samba/${SRC_PATH}/${MY_P}.tar.gz - https://dev.gentoo.org/~polynomial-c/samba-4.5.11-disable-python-patches.tar.xz" -[[ ${PV} = *_rc* ]] || \ -KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" - -DESCRIPTION="Samba Suite Version 4" -HOMEPAGE="http://www.samba.org/" -LICENSE="GPL-3" - -SLOT="0" - -IUSE="acl addc addns ads client cluster cups dmapi fam gnutls gpg iprint ldap pam -quota selinux syslog system-heimdal +system-mitkrb5 systemd test winbind zeroconf" - -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 -) - -# sys-apps/attr is an automagic dependency (see bug #489748) -CDEPEND="${PYTHON_DEPS} - >=app-arch/libarchive-3.1.2[${MULTILIB_USEDEP}] - dev-lang/perl:= - dev-libs/libaio[${MULTILIB_USEDEP}] - dev-libs/libbsd[${MULTILIB_USEDEP}] - dev-libs/iniparser:0 - dev-libs/popt[${MULTILIB_USEDEP}] - dev-python/subunit[${PYTHON_USEDEP},${MULTILIB_USEDEP}] - sys-apps/attr[${MULTILIB_USEDEP}] - >=sys-libs/ldb-1.1.27[ldap(+)?,python(+),${MULTILIB_USEDEP}] - =sys-libs/talloc-2.1.8[python,${PYTHON_USEDEP},${MULTILIB_USEDEP}] - >=sys-libs/tdb-1.3.10[python,${PYTHON_USEDEP},${MULTILIB_USEDEP}] - >=sys-libs/tevent-0.9.31-r1[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - virtual/libiconv - pam? ( virtual/pam ) - acl? ( virtual/acl ) - addns? ( net-dns/bind-tools[gssapi] ) - cluster? ( !dev-db/ctdb ) - cups? ( net-print/cups ) - dmapi? ( sys-apps/dmapi ) - fam? ( virtual/fam ) - gnutls? ( - dev-libs/libgcrypt:0 - >=net-libs/gnutls-1.4.0 - ) - gpg? ( app-crypt/gpgme ) - ldap? ( net-nds/openldap[${MULTILIB_USEDEP}] ) - system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl,${MULTILIB_USEDEP}] ) - system-mitkrb5? ( app-crypt/mit-krb5[${MULTILIB_USEDEP}] ) - systemd? ( sys-apps/systemd:0= )" -DEPEND="${CDEPEND} - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - virtual/pkgconfig - test? ( - !system-mitkrb5? ( - >=sys-libs/nss_wrapper-1.1.3 - >=net-dns/resolv_wrapper-1.1.4 - >=net-libs/socket_wrapper-1.1.7 - >=sys-libs/uid_wrapper-1.2.1 - ) - )" -RDEPEND="${CDEPEND} - client? ( net-fs/cifs-utils[ads?] ) - selinux? ( sec-policy/selinux-samba ) - net-fs/samba-config-redcore - !dev-perl/Parse-Yapp -" - -REQUIRED_USE="addc? ( gnutls !system-mitkrb5 ) - ads? ( acl gnutls ldap ) - gpg? ( addc ) - ?? ( system-heimdal system-mitkrb5 ) - ${PYTHON_REQUIRED_USE}" - -S="${WORKDIR}/${MY_P}" - -PATCHES=( - "${FILESDIR}/${PN}-4.4.0-pam.patch" - "${FILESDIR}/${PN}-4.5.1-compile_et_fix.patch" - "${FILESDIR}/${PN}-glibc-2.26-no_rpc.patch" #637320 -) - -#CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" -CONFDIR="${FILESDIR}/4.4" - -WAF_BINARY="${S}/buildtools/bin/waf" - -SHAREDMODS="" - -pkg_setup() { - python-single-r1_pkg_setup - if use cluster ; then - SHAREDMODS="idmap_rid,idmap_tdb2,idmap_ad" - elif use ads ; then - SHAREDMODS="idmap_ad" - fi -} - -src_prepare() { - default - - # install the patches from tarball(s) - eapply "${WORKDIR}/patches" - - # ugly hackaround for bug #592502 - cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die - - sed -e 's:::' \ - -i source4/dsdb/samdb/ldb_modules/password_hash.c \ - || die - - # Friggin' WAF shit - 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 - - local myconf=() - myconf=( - --enable-fhs - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" - --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" - --with-piddir="${EPREFIX}/run/${PN}" - --without-lttng - --bundled-libraries="${bundled_libs}" - --builtin-libraries=NONE - --disable-rpath - --disable-rpath-install - --nopyc - --nopyo - --disable-cephfs - ) - if multilib_is_native_abi ; then - myconf+=( - $(use_with acl acl-support) - $(usex addc '' '--without-ad-dc') - $(use_with addns dnsupdate) - $(use_with ads) - $(use_with cluster cluster-support) - $(use_enable cups) - $(use_with dmapi) - $(use_with fam) - $(use_enable gnutls) - $(use_with gpg gpgme) - $(use_enable iprint) - $(use_with ldap) - $(use_with pam) - $(usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') - $(use_with quota quotas) - $(use_with syslog) - $(use_with systemd) - $(usex system-mitkrb5 '--with-system-mitkrb5' '') - $(use_with winbind) - $(usex test '--enable-selftest' '') - $(use_enable zeroconf avahi) - --with-shared-modules=${SHAREDMODS} - ) - else - myconf+=( - --without-acl-support - --without-ad-dc - --without-dnsupdate - --without-ads - --disable-avahi - --without-cluster-support - --disable-cups - --without-dmapi - --without-fam - --disable-gnutls - --without-gpgme - --disable-iprint - $(use_with ldap) - --without-pam - --without-quotas - --without-syslog - --without-systemd - $(usex system-mitkrb5 '--with-system-mitkrb5' '') - --without-winbind - --disable-python - ) - fi - - CPPFLAGS="-I${SYSROOT}${EPREFIX}/usr/include/et ${CPPFLAGS}" \ - waf-utils_src_configure ${myconf[@]} -} - -multilib_src_compile() { - waf-utils_src_compile -} - -multilib_src_install() { - waf-utils_src_install - - # Make all .so files executable - find "${D}" -type f -name "*.so" -exec chmod +x {} + - - 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 (#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 - - systemd_dotmpfilesd "${FILESDIR}"/samba.conf - systemd_dounit "${FILESDIR}"/nmbd.service - systemd_dounit "${FILESDIR}"/smbd.{service,socket} - systemd_newunit "${FILESDIR}"/smbd_at.service 'smbd@.service' - systemd_dounit "${FILESDIR}"/winbindd.service - systemd_dounit "${FILESDIR}"/samba.service - fi -} - -multilib_src_test() { - if multilib_is_native_abi ; then - "${WAF_BINARY}" test || die "test failed" - fi -} - -pkg_postinst() { - ewarn "Be aware the this release contains the best of all of Samba's" - ewarn "technology parts, both a file server (that you can reasonably expect" - ewarn "to upgrade existing Samba 3.x releases to) and the AD domain" - ewarn "controller work previously known as 'samba4'." - - elog "For further information and migration steps make sure to read " - elog "http://samba.org/samba/history/${P}.html " - elog "http://samba.org/samba/history/${PN}-4.5.0.html and" - elog "http://wiki.samba.org/index.php/Samba4/HOWTO " -} diff --git a/net-fs/samba/samba-4.8.6-r1337.ebuild b/net-fs/samba/samba-4.8.6-r1337.ebuild new file mode 100644 index 00000000..f8f7ddd2 --- /dev/null +++ b/net-fs/samba/samba-4.8.6-r1337.ebuild @@ -0,0 +1,288 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE='threads(+),xml(+)' + +inherit python-single-r1 waf-utils multilib-minimal linux-info systemd + +MY_PV="${PV/_rc/rc}" +MY_P="${PN}-${MY_PV}" + +SRC_PATH="stable" +[[ ${PV} = *_rc* ]] && SRC_PATH="rc" + +SRC_URI="mirror://samba/${SRC_PATH}/${MY_P}.tar.gz" +[[ ${PV} = *_rc* ]] || \ +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 ~sparc x86" + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="https://www.samba.org/" +LICENSE="GPL-3" + +SLOT="0" + +IUSE="acl addc addns ads ceph client cluster cups debug dmapi fam gnutls gpg iprint ldap pam python +quota selinux syslog system-heimdal +system-mitkrb5 systemd test winbind zeroconf" + +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 +) + +# sys-apps/attr is an automagic dependency (see bug #489748) +CDEPEND=" + >=app-arch/libarchive-3.1.2[${MULTILIB_USEDEP}] + dev-lang/perl:= + dev-libs/libaio[${MULTILIB_USEDEP}] + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/iniparser:0 + dev-libs/popt[${MULTILIB_USEDEP}] + dev-python/subunit[${PYTHON_USEDEP},${MULTILIB_USEDEP}] + >=dev-util/cmocka-1.1.1[${MULTILIB_USEDEP}] + net-libs/libnsl:=[${MULTILIB_USEDEP}] + sys-apps/attr[${MULTILIB_USEDEP}] + >=sys-libs/ldb-1.3.6[ldap(+)?,python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}] + =sys-libs/talloc-2.1.11[python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}] + >=sys-libs/tdb-1.3.15[python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}] + >=sys-libs/tevent-0.9.36[python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + virtual/libiconv + pam? ( virtual/pam ) + acl? ( virtual/acl ) + addns? ( + net-dns/bind-tools[gssapi] + dev-python/dnspython:=[${PYTHON_USEDEP}] + ) + ceph? ( sys-cluster/ceph ) + cluster? ( + net-libs/rpcsvc-proto + !dev-db/ctdb + ) + cups? ( net-print/cups ) + debug? ( dev-util/lttng-ust ) + dmapi? ( sys-apps/dmapi ) + fam? ( virtual/fam ) + gnutls? ( + dev-libs/libgcrypt:0 + >=net-libs/gnutls-1.4.0 + ) + gpg? ( app-crypt/gpgme ) + ldap? ( net-nds/openldap[${MULTILIB_USEDEP}] ) + system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl,${MULTILIB_USEDEP}] ) + system-mitkrb5? ( >=app-crypt/mit-krb5-1.15.1[${MULTILIB_USEDEP}] ) + systemd? ( sys-apps/systemd:0= ) +" +DEPEND="${CDEPEND} + ${PYTHON_DEPS} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + net-libs/libtirpc[${MULTILIB_USEDEP}] + virtual/pkgconfig + || ( + net-libs/rpcsvc-proto + =sys-libs/nss_wrapper-1.1.3 + >=net-dns/resolv_wrapper-1.1.4 + >=net-libs/socket_wrapper-1.1.7 + >=sys-libs/uid_wrapper-1.2.1 + ) + )" +RDEPEND="${CDEPEND} + python? ( ${PYTHON_DEPS} ) + client? ( net-fs/cifs-utils[ads?] ) + selinux? ( sec-policy/selinux-samba ) + !dev-perl/Parse-Yapp + net-fs/samba-config-redcore +" + +REQUIRED_USE=" + addc? ( python gnutls winbind ) + addns? ( python ) + ads? ( acl gnutls ldap winbind ) + cluster? ( ads ) + gpg? ( addc ) + test? ( python ) + ?? ( system-heimdal system-mitkrb5 ) + ${PYTHON_REQUIRED_USE} +" + +# 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" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}/${PN}-4.4.0-pam.patch" + "${FILESDIR}/${PN}-4.5.1-compile_et_fix.patch" + "${FILESDIR}/${PN}-4.8.6-no-pydsdb-when-no-addc.patch" +) + +#CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" +CONFDIR="${FILESDIR}/4.4" + +WAF_BINARY="${S}/buildtools/bin/waf" + +SHAREDMODS="" + +pkg_setup() { + python-single-r1_pkg_setup + if use cluster ; then + SHAREDMODS="idmap_rid,idmap_tdb2,idmap_ad" + elif use ads ; then + SHAREDMODS="idmap_ad" + fi +} + +src_prepare() { + default + + # un-bundle dnspython + sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die + + # unbundle iso8601 unless tests are enabled + use test || sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die + + # ugly hackaround for bug #592502 + cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die + + sed -e 's:::' \ + -i source4/dsdb/samdb/ldb_modules/password_hash.c \ + || die + + # Friggin' WAF shit + 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 + + 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 + $(multilib_native_use_with acl acl-support) + $(multilib_native_usex addc '' '--without-ad-dc') + $(multilib_native_use_with addns dnsupdate) + $(multilib_native_use_with ads) + $(multilib_native_use_enable ceph cephfs) + $(multilib_native_use_with cluster cluster-support) + $(multilib_native_use_enable cups) + $(multilib_native_use_with dmapi) + $(multilib_native_use_with fam) + $(multilib_native_use_with gpg gpgme) + $(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 syslog) + $(multilib_native_use_with systemd) + $(multilib_native_use_with winbind) + $(multilib_native_usex python '' '--disable-python') + $(multilib_native_use_enable zeroconf avahi) + $(multilib_native_usex test '--enable-selftest' '') + $(usex system-mitkrb5 '--with-system-mitkrb5' '') + $(use_enable gnutls) + $(use_with debug lttng) + $(use_with ldap) + ) + multilib_is_native_abi && myconf+=( --with-shared-modules=${SHAREDMODS} ) + + CPPFLAGS="-I${SYSROOT}${EPREFIX}/usr/include/et ${CPPFLAGS}" \ + waf-utils_src_configure ${myconf[@]} +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_install() { + waf-utils_src_install + + # Make all .so files executable + find "${ED}" -type f -name "*.so" -exec chmod +x {} + + + 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 (#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 + + systemd_dotmpfilesd "${FILESDIR}"/samba.conf + systemd_dounit "${FILESDIR}"/nmbd.service + systemd_dounit "${FILESDIR}"/smbd.{service,socket} + systemd_newunit "${FILESDIR}"/smbd_at.service 'smbd@.service' + systemd_dounit "${FILESDIR}"/winbindd.service + systemd_dounit "${FILESDIR}"/samba.service + fi +} + +multilib_src_test() { + if multilib_is_native_abi ; then + "${WAF_BINARY}" test || die "test failed" + fi +} + +pkg_postinst() { + ewarn "Be aware the this release contains the best of all of Samba's" + ewarn "technology parts, both a file server (that you can reasonably expect" + ewarn "to upgrade existing Samba 3.x releases to) and the AD domain" + ewarn "controller work previously known as 'samba4'." + + elog "For further information and migration steps make sure to read " + elog "https://samba.org/samba/history/${P}.html " + elog "https://wiki.samba.org/index.php/Samba4/HOWTO " +} -- cgit v1.2.3