diff options
author | Lars Wendler <polynomial-c@gentoo.org> | 2015-09-09 15:37:47 +0200 |
---|---|---|
committer | Lars Wendler <polynomial-c@gentoo.org> | 2015-09-09 15:40:36 +0200 |
commit | 57910ecc3e953e124784addd6b73019e1a4b7e86 (patch) | |
tree | 21afacc393dca00f754f743fe6aa52deb5764d6b /net-fs | |
parent | sys-kernel/kergen: Version Bump (diff) | |
download | gentoo-57910ecc3e953e124784addd6b73019e1a4b7e86.tar.gz gentoo-57910ecc3e953e124784addd6b73019e1a4b7e86.tar.bz2 gentoo-57910ecc3e953e124784addd6b73019e1a4b7e86.zip |
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@gentoo.org>
Diffstat (limited to 'net-fs')
-rw-r--r-- | net-fs/samba/files/4.3/samba4.confd | 38 | ||||
-rw-r--r-- | net-fs/samba/files/4.3/samba4.initd-r1 | 56 | ||||
-rw-r--r-- | net-fs/samba/metadata.xml | 53 | ||||
-rw-r--r-- | net-fs/samba/samba-4.2.4-r1.ebuild | 197 | ||||
-rw-r--r-- | net-fs/samba/samba-4.3.0.ebuild | 96 |
5 files changed, 372 insertions, 68 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 000000000000..58b2c7827bdf --- /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 000000000000..ff42552e5d43 --- /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 d0c82d3de21f..643dad17497f 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>samba@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>samba@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.2.4-r1.ebuild b/net-fs/samba/samba-4.2.4-r1.ebuild new file mode 100644 index 000000000000..edc4797ee5b6 --- /dev/null +++ b/net-fs/samba/samba-4.2.4-r1.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE='threads(+)' + +inherit python-single-r1 waf-utils multilib 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" +KEYWORDS="~amd64 ~x86" +[[ ${PV} = *_rc* ]] && KEYWORDS="" + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="http://www.samba.org/" +LICENSE="GPL-3" + +SLOT="0" + +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} + dev-libs/iniparser:0 + dev-libs/popt + sys-libs/readline:= + virtual/libiconv + dev-python/subunit[${PYTHON_USEDEP}] + >=net-libs/socket_wrapper-1.1.2 + sys-apps/attr + sys-libs/libcap + >=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 + >=sys-libs/uid_wrapper-1.0.1 + sys-libs/zlib + virtual/pam + acl? ( virtual/acl ) + addns? ( net-dns/bind-tools[gssapi] ) + aio? ( dev-libs/libaio ) + cluster? ( >=dev-db/ctdb-1.0.114_p1 ) + cups? ( net-print/cups ) + dmapi? ( sys-apps/dmapi ) + fam? ( virtual/fam ) + 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" +RDEPEND="${CDEPEND} + client? ( net-fs/cifs-utils[ads?] ) + selinux? ( sec-policy/selinux-samba ) +" + +REQUIRED_USE="addc? ( gnutls ) + ads? ( acl gnutls ldap ) + ${PYTHON_REQUIRED_USE}" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( "${FILESDIR}/${PN}-4.2.3-heimdal_compilefix.patch" ) + +CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" + +WAF_BINARY="${S}/buildtools/bin/waf" + +pkg_setup() { + python-single-r1_pkg_setup + 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. " + ewarn "You can find it at" + ewarn + ewarn "General Support" + ewarn " Enable AIO support " + ewarn + 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() { + epatch ${PATCHES[@]} +} + +src_configure() { + 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) + $(usex test '--enable-selftest' '') + ) + + CPPFLAGS="-I${SYSROOT}/usr/include/et ${CPPFLAGS}" \ + waf-utils_src_configure ${myconf[@]} +} + +src_install() { + waf-utils_src_install + + # install ldap schema for server (bug #491002) + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + # Make all .so files executable + find "${D}" -type f -name "*.so" -exec chmod +x {} + + + # install example config file + insinto /etc/samba + doins examples/smb.conf.default + + # 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 +} + +src_test() { + "${WAF_BINARY}" test || die "test failed" +} + +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.2.0.html and" + elog "http://wiki.samba.org/index.php/Samba4/HOWTO " +} diff --git a/net-fs/samba/samba-4.3.0.ebuild b/net-fs/samba/samba-4.3.0.ebuild index 98a9e44d95e4..1875ddbb1d74 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() { |