samba: Revert style changes and get rid of some dependencies

Packages like glusterfs are now optional dependencies. A bunch of
dependencies like subunit are gone: as far as I can tell, these are
only used by Samba's test suite, which we're not even running, so
they're pointless.

Fixes #8067.
This commit is contained in:
Eelco Dolstra 2015-06-01 15:28:05 +02:00
parent 789f20eba8
commit 0645f5eab7
3 changed files with 61 additions and 160 deletions

View File

@ -1,7 +1,7 @@
# Packages that make up the GNU/Hurd operating system (aka. GNU).
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
, texinfo, glibcCross, hurdPartedCross, libuuid, samba_light
, texinfo, glibcCross, hurdPartedCross, libuuid, samba
, gccCrossStageStatic, gccCrossStageFinal
, forceNativeDrv, forceSystem, newScope, platform, config, crossSystem
, overrides ? {} }:
@ -91,7 +91,6 @@ let
mig_raw = callPackage ./mig {};
smbfs = callPackage ./smbfs {
samba = samba_light;
hurd = gnu.hurdCross;
};

View File

@ -1,48 +1,23 @@
{ stdenv, fetchurl, python, pkgconfig, perl, libxslt, docbook_xsl
{ lib, stdenv, fetchurl, python, pkgconfig, perl, libxslt, docbook_xsl
, docbook_xml_dtd_42, docbook_xml_dtd_45, readline, talloc, ntdb, tdb, tevent
, ldb, popt, iniparser, subunit, libbsd, nss_wrapper, socket_wrapper
, uid_wrapper, libarchive
, ldb, popt, iniparser, libbsd, libarchive, libiconv, gettext
, kerberos, zlib, openldap, cups, pam, avahi, acl, libaio, fam, libceph, glusterfs
, gnutls, libgcrypt, libgpgerror
, ncurses, libunwind, libibverbs, librdmacm, systemd
# source3/wscript optionals
, kerberos ? null
, zlib ? null
, openldap ? null
, cups ? null
, pam ? null
, avahi ? null
, acl ? null
, libaio ? null
, fam ? null
, libceph ? null
, glusterfs ? null
# buildtools/wafsamba/wscript optionals
, libiconv ? null
, gettext ? null
# source4/lib/tls/wscript optionals
, gnutls ? null
, libgcrypt ? null
, libgpgerror ? null
# other optionals
, ncurses ? null
, libunwind ? null
, dbus ? null
, libibverbs ? null
, librdmacm ? null
, systemd ? null
, enableKerberos ? false
, enableInfiniband ? false
, enableLDAP ? false
, enablePrinting ? false
, enableMDNS ? false
, enableDomainController ? false
, enableRegedit ? true
, enableCephFS ? false
, enableGlusterFS ? false
}:
assert kerberos != null -> zlib != null;
with lib;
let
bundledLibs = if kerberos != null && kerberos.implementation == "heimdal" then "NONE" else "com_err";
hasGnutls = gnutls != null && libgcrypt != null && libgpgerror != null;
isKrb5OrNull = if kerberos != null && kerberos.implementation == "krb5" then true else null;
hasInfinibandOrNull = if libibverbs != null && librdmacm != null then true else null;
in
with stdenv.lib;
stdenv.mkDerivation rec {
name = "samba-4.2.1";
@ -51,25 +26,26 @@ stdenv.mkDerivation rec {
sha256 = "1hsakc8h6rs48xr6i55m90pd53hpxcqjjnlwq8i2rp0nq4ws5sip";
};
patches = [
./4.x-no-persistent-install.patch
./4.x-fix-ctdb-deps.patch
] ++ optional (kerberos != null) ./4.x-heimdal-compat.patch;
patches =
[ ./4.x-no-persistent-install.patch
./4.x-fix-ctdb-deps.patch
] ++ stdenv.lib.optional enableKerberos ./4.x-heimdal-compat.patch;
buildInputs = [
python pkgconfig perl libxslt docbook_xsl docbook_xml_dtd_42
docbook_xml_dtd_45 readline talloc ntdb tdb tevent ldb popt iniparser
subunit libbsd nss_wrapper socket_wrapper uid_wrapper
libarchive
kerberos zlib openldap cups pam avahi acl libaio fam libceph glusterfs
libiconv gettext
gnutls libgcrypt libgpgerror
ncurses libunwind dbus libibverbs librdmacm systemd
];
buildInputs =
[ python pkgconfig perl libxslt docbook_xsl docbook_xml_dtd_42 /*
docbook_xml_dtd_45 */ readline talloc ntdb tdb tevent ldb popt iniparser
libbsd libarchive zlib acl fam libiconv gettext libunwind
]
++ optionals stdenv.isLinux [ libaio pam systemd ]
++ optional enableKerberos kerberos
++ optionals (enableInfiniband && stdenv.isLinux) [ libibverbs librdmacm ]
++ optional enableLDAP openldap
++ optional (enablePrinting && stdenv.isLinux) cups
++ optional enableMDNS avahi
++ optional enableDomainController gnutls
++ optional enableRegedit ncurses
++ optional (enableCephFS && stdenv.isLinux) libceph
++ optional (enableGlusterFS && stdenv.isLinux) glusterfs;
postPatch = ''
# Removes absolute paths in scripts
@ -79,70 +55,24 @@ stdenv.mkDerivation rec {
sed -i "s,\(XML_CATALOG_FILES=\"\),\1$XML_CATALOG_FILES ,g" buildtools/wafsamba/wafsamba.py
'';
configureFlags =
[ "--with-static-modules=NONE"
"--with-shared-modules=ALL"
"--enable-fhs"
"--sysconfdir=/etc"
"--localstatedir=/var"
"--bundled-libraries=${if enableKerberos && kerberos.implementation == "heimdal" then "NONE" else "com_err"}"
"--private-libraries=NONE"
"--builtin-libraries=replace"
]
++ optional (enableKerberos != null && kerberos.implementation == "krb5") "--with-system-mitkrb5"
++ optional (!enableDomainController) "--without-ad-dc"
++ optionals (!enableLDAP) [ "--without-ldap" "--without-ads" ];
enableParallelBuilding = true;
configureFlags = [
# source3/wscript options
(mkWith true "static-modules" "NONE")
(mkWith true "shared-modules" "ALL")
(mkWith true "winbind" null)
(mkWith (openldap != null) "ads" null)
(mkWith (openldap != null) "ldap" null)
(mkEnable (cups != null) "cups" null)
(mkEnable (cups != null) "iprint" null)
(mkWith (pam != null) "pam" null)
(mkWith (pam != null) "pam_smbpass" null)
(mkWith true "quotas" null)
(mkWith true "sendfile-support" null)
(mkWith true "utmp" null)
(mkWith true "utmp" null)
(mkEnable true "pthreadpool" null)
(mkEnable (avahi != null) "avahi" null)
(mkWith true "iconv" null)
(mkWith (acl != null) "acl-support" null)
(mkWith true "dnsupdate" null)
(mkWith true "syslog" null)
(mkWith true "automount" null)
(mkWith (libaio != null) "aio-support" null)
(mkWith (fam != null) "fam" null)
(mkWith (libarchive != null) "libarchive" null)
(mkWith true "cluster-support" null)
(mkWith (ncurses != null) "regedit" null)
(mkWith libceph "libcephfs" libceph)
(mkEnable (glusterfs != null) "glusterfs" null)
# dynconfig/wscript options
(mkEnable true "fhs" null)
(mkOther "sysconfdir" "/etc")
(mkOther "localstatedir" "/var")
# buildtools/wafsamba/wscript options
(mkOther "bundled-libraries" bundledLibs)
(mkOther "private-libraries" "NONE")
(mkOther "builtin-libraries" "replace")
(mkWith libiconv "libiconv" libiconv)
(mkWith (gettext != null) "gettext" gettext)
# source4/lib/tls/wscript options
(mkEnable hasGnutls "gnutls" null)
# wscript options
(mkWith isKrb5OrNull "system-mitkrb5" null)
(if hasGnutls then null else "--without-ad-dc")
# ctdb/wscript
(mkEnable hasInfinibandOrNull "infiniband" null)
(mkEnable null "pmda" null)
];
stripAllList = [ "bin" "sbin" ];
postInstall = ''
# Remove unecessary components
rm -r $out/{lib,share}/ctdb-tests
rm $out/bin/ctdb_run{_cluster,}_tests
'';
postFixup = ''
export SAMBA_LIBS="$(find $out -type f -name \*.so -exec dirname {} \; | sort | uniq)"
read -r -d "" SCRIPT << EOF

View File

@ -8986,15 +8986,7 @@ let
python = python2;
kerberos = heimdal;
gnutls = gnutls33;
cups = if stdenv.isDarwin then null else cups;
pam = if stdenv.isDarwin then null else pam;
libaio = if stdenv.isDarwin then null else libaio;
libceph = if stdenv.isDarwin then null else libceph;
glusterfs = if stdenv.isDarwin then null else glusterfs;
dbus = if stdenv.isLinux then dbus else null;
libibverbs = if stdenv.isLinux then libibverbs else null;
librdmacm = if stdenv.isLinux then librdmacm else null;
systemd = if stdenv.isLinux then systemd else null;
# enableLDAP
};
samba = samba4;
@ -9012,39 +9004,19 @@ let
libunwind = null;
});
samba4_light = lowPrio (samba4.override {
# source3/wscript optionals
kerberos = null;
zlib = null;
openldap = null;
cups = null;
pam = null;
avahi = null;
acl = null;
libaio = null;
fam = null;
libceph = null;
glusterfs = null;
# buildtools/wafsamba/wscript optionals
libiconv = null;
gettext = null;
# source4/lib/tls/wscript optionals
gnutls = null;
libgcrypt = null;
libgpgerror = null;
# other optionals
ncurses = null;
libunwind = null;
dbus = null;
libibverbs = null;
librdmacm = null;
systemd = null;
samba4Full = lowPrio (samba4.override {
enableKerberos = true;
enableInfiniband = true;
enableLDAP = true;
enablePrinting = true;
enableMDNS = true;
enableDomainController = true;
enableRegedit = true;
enableCephFS = true;
enableGlusterFS = true;
});
samba_light = samba4_light;
sambaFull = samba4Full;
shairport-sync = callPackage ../servers/shairport-sync { };