diff --git a/pkgs/os-specific/gnu/default.nix b/pkgs/os-specific/gnu/default.nix index 94bfec0a18ec..457b670319e0 100644 --- a/pkgs/os-specific/gnu/default.nix +++ b/pkgs/os-specific/gnu/default.nix @@ -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; }; diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix index 877850f532b4..6a6e2469e783 100644 --- a/pkgs/servers/samba/4.x.nix +++ b/pkgs/servers/samba/4.x.nix @@ -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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 18a1a43c99c0..d642c4188c74 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };