Skip to content

Commit

Permalink
net-fs/samba: add 4.7.0_rc3
Browse files Browse the repository at this point in the history
Adding a first draft of samba-4.7

There may be patches available upstream or already included that will allow
Active Directory flag to be enabled while retaining system-mitkrb5; future
revisions will make the necessary adjustments if it can be made to work.

Package-Manager: Portage-2.3.6, Repoman-2.3.1
  • Loading branch information
axs-gentoo committed Aug 11, 2017
1 parent 216e7ef commit 0a2e00c
Show file tree
Hide file tree
Showing 3 changed files with 331 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-fs/samba/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ DIST samba-4.6.0-disable-python-patches.tar.xz 7544 SHA256 508adeea65604ef8f4da0
DIST samba-4.6.6.tar.gz 21120791 SHA256 fc31c809f7d85ae30f2b7dcddcb8404201b626047458cb5f2b743d4f6f3f1a8e SHA512 e06bdc83f44c449212f2e45a902e2ca547505a75e970166259b91d2093fb442cdfd456e724d0e842b674b4b8d5bdbe9072996d768c08ebd979a44b2494a59799 WHIRLPOOL eee4bc7e6d5a102b4ab7146354afd7501bc4ad6a3af1aa63ffecf7eb54dc04f113248048157ca9e8c9cd3c21a0931b0fae1d8dc7232e29a92ebbf5d6cccd4c55
DIST samba-4.6.7-disable-python-patches.tar.xz 8896 SHA256 33702adba80e9886625fda8cba46d4017ae603f5d9cf9d3dc78e5ef30ff6f5eb SHA512 c45e548a49735e17b568bebf07dc7409de3de0f93256d1dcf345d2723a27d22a51d860ed921785354fda691f83be4eca3b9d618d5c332438ebf97518a01983eb WHIRLPOOL 1cb176480b8583369e1085c8e122958112c0d13aa8ba78cd57dfd04b17c7d8f0a0664a43d277deba86775f1944eab052f4fb9459f64506215ae25184c86cbe40
DIST samba-4.6.7.tar.gz 21137329 SHA256 9ef24393de08390f236cabccd6a420b5cea304e959cbf1a99ff317325db3ddfa SHA512 394c28204bae4134e6a9d2e5b8f087a425dc4ac4ceecd8b29315acff1a92349d40ef0b6a9cc34f5ad18ff5ec9979199837c87f687858cb4e6687968284303aa5 WHIRLPOOL 14282c4a88a22f932099ef47dc50f57c5fef87d6909d529d3eb837b6e958f490a5fd64ce1a5dfdd36eab5ac82b41583736953be2be279f70f0491c61fd1d0d92
DIST samba-4.7.0rc3.tar.gz 16789893 SHA256 b162e861889d92024a9083a5ef63d22a06f5065c3d48ee8f5e103f886428b89e SHA512 f943f41e45bda040e8b7e4c4ed170fcad10694d46a530ff4d3e049f3b7d9566ffd92dfb7654df9a9ad2ba65e813dc2a186624a241f6b1d774108c7541009bded WHIRLPOOL 9bea73b5f6db8f3d453b24c0dfebb5396b28efc811f3dfe54ca8914764624be61f7f6fdcb9f8b0d3c8463fc7a39cb6e6eadefa08e900db8f025c63ae38705fde
DIST samba-disable-python-patches-4.2.12.tar.xz 6052 SHA256 8903eacbabdfaf7b64cbde03d7c367d1efdc92e54090f0f4b9ed5d2a462b1c18 SHA512 c527d0a052d3211e5b12c17bc94db56cc5e5545189ed65a760c0656c94c22e27a4b159e6439eb0370873e1619873a741f3b3bd10d3876b38eb3914a87eace372 WHIRLPOOL ad63db55d5dc96f56e6c9b30c2092e2f6e206b0ed5d13c249879d10753c8db2f475c5d4e651e2fc042ad992b648d3b4465f1b28c6b4bbf821cf503d27f741f7e
DIST samba-disable-python-patches-4.5.0_rc1.tar.xz 6204 SHA256 fa0d776e04e3222c0dc4761e376717f4154937cdcb85f4117b8978dfb770a78e SHA512 920089ba3c6e8e7d913b1d7ef1017262a19d1af41215adb30cfc98a57556efc4b0116931d4ef774c01124149d8eca2be3a23814ce7e11daf0180d2c111799927 WHIRLPOOL 6d55710895435ad012e23f8c252e5276966241014710349ca7fa9cf037e8742030b8e053f7cb71309a0a45f48d2235d55393243bf4d19476a22dd39bb1b7748d
34 changes: 34 additions & 0 deletions net-fs/samba/files/talloc-disable-python.patch
Original file line number Diff line number Diff line change
@@ -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)

296 changes: 296 additions & 0 deletions net-fs/samba/samba-4.7.0_rc3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,296 @@
# Copyright 1999-2017 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"
[[ ${PV} = *_rc* ]] || \
KEYWORDS="~amd64 ~arm64 ~hppa ~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 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.0.0[${MULTILIB_USEDEP}]
sys-apps/attr[${MULTILIB_USEDEP}]
>=sys-libs/ldb-1.2.1[ldap(+)?,python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
sys-libs/libcap
sys-libs/ncurses:0=[${MULTILIB_USEDEP}]
sys-libs/readline:0=
>=sys-libs/talloc-2.1.9[python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
>=sys-libs/tdb-1.3.14[python?,${PYTHON_USEDEP},${MULTILIB_USEDEP}]
>=sys-libs/tevent-0.9.33[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}]
)
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}
${PYTHON_DEPS}
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}
python? ( ${PYTHON_DEPS} )
client? ( net-fs/cifs-utils[ads?] )
selinux? ( sec-policy/selinux-samba )
!dev-perl/Parse-Yapp
"

REQUIRED_USE="addc? ( python gnutls !system-mitkrb5 )
test? ( python )
addns? ( python )
ads? ( acl gnutls ldap )
gpg? ( addc )
?? ( 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}"/talloc-disable-python.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:<gpgme\.h>:<gpgme/gpgme.h>:' \
-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}"
--bundled-libraries="${bundled_libs}"
--builtin-libraries=NONE
--disable-rpath
--disable-rpath-install
--nopyc
--nopyo
)
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 python '' '--disable-python')
$(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 /usr/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 '[email protected]'
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 "
}

0 comments on commit 0a2e00c

Please sign in to comment.