commit: 57910ecc3e953e124784addd6b73019e1a4b7e86 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> AuthorDate: Wed Sep 9 13:37:47 2015 +0000 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> CommitDate: Wed Sep 9 13:40:36 2015 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57910ecc
net-fs/samba: Fixed compilation without gnutls (bug #559996). Added two new USE flags: -addc controls installation of Active Directory Domain Controller functionality -system-mitkrb5 uses app-crypt/mit-krb5 instead of app-crypt/heimdal Re-added pam USE flag although samba still unconditionally links against libpam when being found on the system. USE flag controls installation of pam modules for now. Slightly reworked ebuilds. Added missing files for samba-4.3 Package-Manager: portage-2.2.20.1 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org> net-fs/samba/files/4.3/samba4.confd | 38 +++++++++ net-fs/samba/files/4.3/samba4.initd-r1 | 56 +++++++++++++ net-fs/samba/metadata.xml | 53 ++++++------ .../{samba-4.3.0.ebuild => samba-4.2.4-r1.ebuild} | 97 ++++++++++++---------- net-fs/samba/samba-4.3.0.ebuild | 96 +++++++++++---------- 5 files changed, 229 insertions(+), 111 deletions(-) diff --git a/net-fs/samba/files/4.3/samba4.confd b/net-fs/samba/files/4.3/samba4.confd new file mode 100644 index 0000000..58b2c78 --- /dev/null +++ b/net-fs/samba/files/4.3/samba4.confd @@ -0,0 +1,38 @@ +# Add "winbind" to the daemon_list if you also want winbind to start. +# Replace "smbd nmbd" by "samba4" if you want the active directory domain controller part or the ntvfs +# file server part or the rpc proxy to start. +# Note that samba4 controls 'smbd' by itself, thus it can't be started manually. You can, however, +# tweak the behaviour of a samba4-controlled smbd by modifying your '/etc/samba/smb.conf' file +# accordingly. +daemon_list="smbd nmbd" + +#---------------------------------------------------------------------------- +# Daemons calls: <daemon_name>_<command_option> +#---------------------------------------------------------------------------- +my_service_name="samba" +my_service_PRE="unset TMP TMPDIR" +my_service_POST="" + +#---------------------------------------------------------------------------- +# Daemons calls: <daemon_name>_<command_option> +#---------------------------------------------------------------------------- +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_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_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_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_reload="killall -HUP winbindd" + diff --git a/net-fs/samba/files/4.3/samba4.initd-r1 b/net-fs/samba/files/4.3/samba4.initd-r1 new file mode 100644 index 0000000..ff42552 --- /dev/null +++ b/net-fs/samba/files/4.3/samba4.initd-r1 @@ -0,0 +1,56 @@ +#!/sbin/runscript +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Id$ + +extra_started_commands="reload" +piddir="/var/run/samba" + +depend() { + after slapd + need net + use cupsd +} + +DAEMONNAME="${SVCNAME##samba.}" +[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME} + +signal_do() { + local signal="$1" + [ -z "${signal}" ] && return 0 + + local result=0 last_result=0 daemon= cmd_exec= + for daemon in ${daemon_list} ; do + eval cmd_exec=\$${daemon}_${signal} + if [ -n "${cmd_exec}" ]; then + ebegin "${my_service_name} -> ${signal}: ${daemon}" + #echo ${cmd} '->' ${!cmd} + ${cmd_exec} > /dev/null + last_result=$? + eend ${last_result} + fi + result=$(( ${result} + ${last_result} )) + done + return ${result} +} + +start() { + ${my_service_PRE} + [ -d "${piddir}" ] || mkdir -p "${piddir}" + signal_do start && return 0 + + eerror "Error: starting services (see system logs)" + signal_do stop + return 1 +} +stop() { + ${my_service_PRE} + if signal_do stop ; then + ${my_service_POST} + return 0 + fi +} +reload() { + ${my_service_PRE} + signal_do reload +} diff --git a/net-fs/samba/metadata.xml b/net-fs/samba/metadata.xml index d0c82d3..643dad1 100644 --- a/net-fs/samba/metadata.xml +++ b/net-fs/samba/metadata.xml @@ -2,29 +2,32 @@ <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <herd>samba</herd> -<maintainer> - <email>sa...@gentoo.org</email> - <name>Samba Team</name> -</maintainer> -<longdescription> -Samba is an Open Source/Free Software suite that provides seamless file and print services to SMB/CIFS clients. Integration with various accounting and antivirus backends. License: GNU General Public License. -</longdescription> -<use> - <flag name="ads">Enable Active Directory support</flag> - <flag name="swat">Enables support for swat configuration gui</flag> - <flag name="winbind">Enables support for the winbind auth daemon</flag> - <flag name="client">Enables the client part</flag> - <flag name="server">Enables the server part</flag> - <flag name="netapi">Enable building of netapi bits</flag> - <flag name="addns">Enable AD DNS integration</flag> - <flag name="aio">Enable asynchronous IO support</flag> - <flag name="cluster">Enable support for clustering</flag> - <flag name="dmapi">Enable support for DMAPI. This currently works only in combination with XFS.</flag> - <flag name="ldb">Enable the ldb tools</flag> - <flag name="quota">Enables support for user quotas</flag> - <flag name="smbclient">Enable smbclient tool</flag> - <flag name="smbsharemodes">Enable special smb share modes (?) </flag> - <flag name="smbtav2">Enable Samba Traffic Analyzer version 2 </flag> - <flag name="iprint">Enabling iPrint technology by Novell</flag> -</use> + <maintainer> + <email>sa...@gentoo.org</email> + <name>Samba Team</name> + </maintainer> + <longdescription> + Samba is an Open Source/Free Software suite that provides seamless file and print services to SMB/CIFS clients. Integration with various accounting and antivirus backends. License: GNU General Public License. + </longdescription> + <use> + <flag name="addc">Enable Active Directory Domain Controller support</flag> + <flag name="ads">Enable Active Directory support</flag> + <flag name="swat">Enables support for swat configuration gui</flag> + <flag name="winbind">Enables support for the winbind auth daemon</flag> + <flag name="client">Enables the client part</flag> + <flag name="server">Enables the server part</flag> + <flag name="netapi">Enable building of netapi bits</flag> + <flag name="addns">Enable AD DNS integration</flag> + <flag name="aio">Enable asynchronous IO support</flag> + <flag name="cluster">Enable support for clustering</flag> + <flag name="dmapi">Enable support for DMAPI. This currently works only in combination with XFS.</flag> + <flag name="ldb">Enable the ldb tools</flag> + <flag name="quota">Enables support for user quotas</flag> + <flag name="smbclient">Enable smbclient tool</flag> + <flag name="smbsharemodes">Enable special smb share modes (?) </flag> + <flag name="smbtav2">Enable Samba Traffic Analyzer version 2 </flag> + <flag name="system-mitkrb5">Use <pkg>app-crypt/mit-krb5</pkg> instead of + <pkg>app-crypt/heimdal</pkg>.</flag> + <flag name="iprint">Enabling iPrint technology by Novell</flag> + </use> </pkgmetadata> diff --git a/net-fs/samba/samba-4.3.0.ebuild b/net-fs/samba/samba-4.2.4-r1.ebuild similarity index 67% copy from net-fs/samba/samba-4.3.0.ebuild copy to net-fs/samba/samba-4.2.4-r1.ebuild index 98a9e44..edc4797 100644 --- a/net-fs/samba/samba-4.3.0.ebuild +++ b/net-fs/samba/samba-4.2.4-r1.ebuild @@ -24,13 +24,12 @@ LICENSE="GPL-3" SLOT="0" -IUSE="acl addns ads aio avahi client cluster cups dmapi fam gnutls iprint -ldap quota selinux syslog systemd test winbind" +IUSE="acl addc addns ads aio avahi client cluster cups dmapi fam gnutls iprint +ldap pam quota selinux syslog +system-mitkrb5 systemd test winbind" # sys-apps/attr is an automagic dependency (see bug #489748) # sys-libs/pam is an automagic dependency (see bug #489770) CDEPEND="${PYTHON_DEPS} - >=app-crypt/heimdal-1.5[-ssl] dev-libs/iniparser:0 dev-libs/popt sys-libs/readline:= @@ -42,6 +41,7 @@ CDEPEND="${PYTHON_DEPS} >=sys-libs/ldb-1.1.20 sys-libs/ncurses:0= >=sys-libs/nss_wrapper-1.0.2 + >=sys-libs/ntdb-1.0[python,${PYTHON_USEDEP}] >=sys-libs/talloc-2.1.2[python,${PYTHON_USEDEP}] >=sys-libs/tdb-1.3.6[python,${PYTHON_USEDEP}] >=sys-libs/tevent-0.9.25 @@ -58,6 +58,8 @@ CDEPEND="${PYTHON_DEPS} gnutls? ( dev-libs/libgcrypt:0 >=net-libs/gnutls-1.4.0 ) ldap? ( net-nds/openldap ) + system-mitkrb5? ( app-crypt/mit-krb5 ) + !system-mitkrb5? ( >=app-crypt/heimdal-1.5[-ssl] ) systemd? ( sys-apps/systemd:0= )" DEPEND="${CDEPEND} virtual/pkgconfig" @@ -66,11 +68,10 @@ RDEPEND="${CDEPEND} selinux? ( sec-policy/selinux-samba ) " -REQUIRED_USE="ads? ( acl gnutls ldap ) +REQUIRED_USE="addc? ( gnutls ) + ads? ( acl gnutls ldap ) ${PYTHON_REQUIRED_USE}" -RESTRICT="mirror" - S="${WORKDIR}/${MY_P}" PATCHES=( "${FILESDIR}/${PN}-4.2.3-heimdal_compilefix.patch" ) @@ -81,7 +82,7 @@ WAF_BINARY="${S}/buildtools/bin/waf" pkg_setup() { python-single-r1_pkg_setup - if use aio; then + if use aio ; then if ! linux_config_exists || ! linux_chkconfig_present AIO; then ewarn "You must enable AIO support in your kernel config, " ewarn "to be able to support asynchronous I/O. " @@ -93,6 +94,14 @@ pkg_setup() { ewarn "and recompile your kernel..." fi fi + if ! use pam ; then + ewarn "You have pam USE flag disabled!" + ewarn "Unfortunately we still have to hard depend on virtual/pam as samba upstream" + ewarn "still unconditionally links libauth4-samba4.so library to libpam.so once being" + ewarn "found on the sytem." + ewarn "Disabling the pam USE flag only disables installation of samba's pam authenti-" + ewarn "cation modules." + fi } src_prepare() { @@ -100,45 +109,47 @@ src_prepare() { } src_configure() { - local myconf='' - use "cluster" && myconf+=" --with-ctdb-dir=/usr" - use "test" && myconf+=" --enable-selftest" - myconf="${myconf} \ - --enable-fhs \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --with-modulesdir=/usr/$(get_libdir)/samba \ - --with-pammodulesdir=/$(get_libdir)/security \ - --with-piddir=/var/run/${PN} \ - --disable-rpath \ - --disable-rpath-install \ - --nopyc \ - --nopyo \ - --bundled-libraries=NONE \ - --builtin-libraries=NONE \ - $(use_with addns dnsupdate) \ - $(use_with acl acl-support) \ - $(use_with ads) \ - $(use_with aio aio-support) \ - $(use_enable avahi) \ - $(use_with cluster cluster-support) \ - $(use_enable cups) \ - $(use_with dmapi) \ - $(use_with fam) \ - $(use_enable gnutls) \ - $(use_enable iprint) \ - $(use_with ldap) \ - --with-pam \ - --with-pam_smbpass \ - $(use_with quota quotas) \ - $(use_with syslog) \ - $(use_with systemd) \ + local myconf=() + myconf=( + --enable-fhs + --sysconfdir=/etc + --localstatedir=/var + --with-modulesdir=/usr/$(get_libdir)/samba + --with-piddir=/var/run/${PN} + --bundled-libraries=NONE + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + $(use_with acl acl-support) + $(usex addc '' '--without-ad-dc') + $(use_with addns dnsupdate) + $(use_with ads) + $(usex ads '--with-shared-modules=idmap_ad' '') + $(use_with aio aio-support) + $(usex cluster '--with-ctdb-dir=/usr' '') + $(use_enable avahi) + $(use_with cluster cluster-support) + $(use_enable cups) + $(use_with dmapi) + $(use_with fam) + $(use_enable gnutls) + $(use_enable iprint) + $(use_with ldap) + $(use_with pam) + $(use_with pam pam_smbpass) + $(usex pam "--with-pammodulesdir=/$(get_libdir)/security" '') + $(use_with quota quotas) + $(use_with syslog) + $(use_with systemd) + $(usex system-mitkrb5 '--with-system-mitkrb5' '') $(use_with winbind) - " - use "ads" && myconf+=" --with-shared-modules=idmap_ad" + $(usex test '--enable-selftest' '') + ) CPPFLAGS="-I${SYSROOT}/usr/include/et ${CPPFLAGS}" \ - waf-utils_src_configure ${myconf} + waf-utils_src_configure ${myconf[@]} } src_install() { diff --git a/net-fs/samba/samba-4.3.0.ebuild b/net-fs/samba/samba-4.3.0.ebuild index 98a9e44..1875ddb 100644 --- a/net-fs/samba/samba-4.3.0.ebuild +++ b/net-fs/samba/samba-4.3.0.ebuild @@ -24,13 +24,12 @@ LICENSE="GPL-3" SLOT="0" -IUSE="acl addns ads aio avahi client cluster cups dmapi fam gnutls iprint -ldap quota selinux syslog systemd test winbind" +IUSE="acl addc addns ads aio avahi client cluster cups dmapi fam gnutls iprint +ldap pam quota selinux syslog +system-mitkrb5 systemd test winbind" # sys-apps/attr is an automagic dependency (see bug #489748) # sys-libs/pam is an automagic dependency (see bug #489770) CDEPEND="${PYTHON_DEPS} - >=app-crypt/heimdal-1.5[-ssl] dev-libs/iniparser:0 dev-libs/popt sys-libs/readline:= @@ -58,6 +57,8 @@ CDEPEND="${PYTHON_DEPS} gnutls? ( dev-libs/libgcrypt:0 >=net-libs/gnutls-1.4.0 ) ldap? ( net-nds/openldap ) + system-mitkrb5? ( app-crypt/mit-krb5 ) + !system-mitkrb5? ( >=app-crypt/heimdal-1.5[-ssl] ) systemd? ( sys-apps/systemd:0= )" DEPEND="${CDEPEND} virtual/pkgconfig" @@ -66,11 +67,10 @@ RDEPEND="${CDEPEND} selinux? ( sec-policy/selinux-samba ) " -REQUIRED_USE="ads? ( acl gnutls ldap ) +REQUIRED_USE="addc? ( gnutls ) + ads? ( acl gnutls ldap ) ${PYTHON_REQUIRED_USE}" -RESTRICT="mirror" - S="${WORKDIR}/${MY_P}" PATCHES=( "${FILESDIR}/${PN}-4.2.3-heimdal_compilefix.patch" ) @@ -81,7 +81,7 @@ WAF_BINARY="${S}/buildtools/bin/waf" pkg_setup() { python-single-r1_pkg_setup - if use aio; then + if use aio ; then if ! linux_config_exists || ! linux_chkconfig_present AIO; then ewarn "You must enable AIO support in your kernel config, " ewarn "to be able to support asynchronous I/O. " @@ -93,6 +93,14 @@ pkg_setup() { ewarn "and recompile your kernel..." fi fi + if ! use pam ; then + ewarn "You have pam USE flag disabled!" + ewarn "Unfortunately we still have to hard depend on virtual/pam as samba upstream" + ewarn "still unconditionally links libauth4-samba4.so library to libpam.so once being" + ewarn "found on the sytem." + ewarn "Disabling the pam USE flag only disables installation of samba's pam authenti-" + ewarn "cation modules." + fi } src_prepare() { @@ -100,45 +108,47 @@ src_prepare() { } src_configure() { - local myconf='' - use "cluster" && myconf+=" --with-ctdb-dir=/usr" - use "test" && myconf+=" --enable-selftest" - myconf="${myconf} \ - --enable-fhs \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --with-modulesdir=/usr/$(get_libdir)/samba \ - --with-pammodulesdir=/$(get_libdir)/security \ - --with-piddir=/var/run/${PN} \ - --disable-rpath \ - --disable-rpath-install \ - --nopyc \ - --nopyo \ - --bundled-libraries=NONE \ - --builtin-libraries=NONE \ - $(use_with addns dnsupdate) \ - $(use_with acl acl-support) \ - $(use_with ads) \ - $(use_with aio aio-support) \ - $(use_enable avahi) \ - $(use_with cluster cluster-support) \ - $(use_enable cups) \ - $(use_with dmapi) \ - $(use_with fam) \ - $(use_enable gnutls) \ - $(use_enable iprint) \ - $(use_with ldap) \ - --with-pam \ - --with-pam_smbpass \ - $(use_with quota quotas) \ - $(use_with syslog) \ - $(use_with systemd) \ + local myconf=() + myconf=( + --enable-fhs + --sysconfdir=/etc + --localstatedir=/var + --with-modulesdir=/usr/$(get_libdir)/samba + --with-piddir=/var/run/${PN} + --bundled-libraries=NONE + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + $(use_with acl acl-support) + $(usex addc '' '--without-ad-dc') + $(use_with addns dnsupdate) + $(use_with ads) + $(usex ads '--with-shared-modules=idmap_ad' '') + $(use_with aio aio-support) + $(usex cluster '--with-ctdb-dir=/usr' '') + $(use_enable avahi) + $(use_with cluster cluster-support) + $(use_enable cups) + $(use_with dmapi) + $(use_with fam) + $(use_enable gnutls) + $(use_enable iprint) + $(use_with ldap) + $(use_with pam) + $(use_with pam pam_smbpass) + $(usex pam "--with-pammodulesdir=/$(get_libdir)/security" '') + $(use_with quota quotas) + $(use_with syslog) + $(use_with systemd) + $(usex system-mitkrb5 '--with-system-mitkrb5' '') $(use_with winbind) - " - use "ads" && myconf+=" --with-shared-modules=idmap_ad" + $(usex test '--enable-selftest' '') + ) CPPFLAGS="-I${SYSROOT}/usr/include/et ${CPPFLAGS}" \ - waf-utils_src_configure ${myconf} + waf-utils_src_configure ${myconf[@]} } src_install() {