diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index 5468c9f2336..4908662591c 100644 --- a/pkgs/development/libraries/gettext/default.nix +++ b/pkgs/development/libraries/gettext/default.nix @@ -1,8 +1,10 @@ -{ stdenv, fetchurl, libiconv }: +{ stdenv, fetchurl, libiconvOrEmpty }: + +with { inherit (stdenv.lib) optionals optionalAttrs; }; stdenv.mkDerivation (rec { name = "gettext-0.18.1.1"; - + src = fetchurl { url = "mirror://gnu/gettext/${name}.tar.gz"; sha256 = "1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k"; @@ -11,7 +13,7 @@ stdenv.mkDerivation (rec { patches = [ ./no-gets.patch ]; configureFlags = [ "--disable-csharp" ] - ++ (stdenv.lib.optionals stdenv.isCygwin + ++ (optionals stdenv.isCygwin [ # We have a static libiconv, so we can only build the static lib. "--disable-shared" "--enable-static" @@ -30,12 +32,12 @@ stdenv.mkDerivation (rec { fi ''; - buildInputs = stdenv.lib.optional (!stdenv.isLinux) libiconv; - + buildInputs = libiconvOrEmpty; + enableParallelBuilding = true; - + crossAttrs = { - buildInputs = stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) + buildInputs = optional (stdenv.gccCross.libc ? libiconv) stdenv.gccCross.libc.libiconv.crossDrv; # Gettext fails to guess the cross compiler configureFlags = "CXX=${stdenv.cross.config}-g++"; @@ -70,9 +72,11 @@ stdenv.mkDerivation (rec { }; } -// +// optionalAttrs stdenv.isDarwin { + makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0"; +} -stdenv.lib.optionalAttrs stdenv.isCygwin { +// optionalAttrs stdenv.isCygwin { patchPhase = # Make sure `error.c' gets compiled and is part of `libgettextlib.la'. # This fixes: diff --git a/pkgs/tools/misc/coreutils/8.19.nix b/pkgs/tools/misc/coreutils/8.19.nix deleted file mode 100644 index 23db167f307..00000000000 --- a/pkgs/tools/misc/coreutils/8.19.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ stdenv, fetchurl, perl, gmp ? null -, aclSupport ? false, acl ? null -, selinuxSupport? false, libselinux ? null, libsepol ? null -}: - -assert aclSupport -> acl != null; -assert selinuxSupport -> libselinux != null && libsepol != null; - -stdenv.mkDerivation rec { - name = "coreutils-8.19"; - - src = fetchurl { - url = "mirror://gnu/coreutils/${name}.tar.xz"; - sha256 = "1rx9x3fp848w4nny7irdkcpkan9fcx24d99v5dkwgkyq7wc76f5d"; - }; - - nativeBuildInputs = [ perl ]; - buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl - ++ stdenv.lib.optional selinuxSupport libselinux - ++ stdenv.lib.optional selinuxSupport libsepol; - - crossAttrs = ({ - buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl.crossDrv - ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv - ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv - ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) - stdenv.gccCross.libc.libiconv.crossDrv; - - # Needed for fstatfs() - # I don't know why it is not properly detected cross building with glibc. - configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ]; - doCheck = false; - } - - // - - # XXX: Temporary workaround to allow GNU/Hurd builds with newer libcs. - (stdenv.lib.optionalAttrs (stdenv.cross.config == "i586-pc-gnu") { - patches = [ ./gets-undeclared.patch ]; - })); - - # The tests are known broken on Cygwin - # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025), - # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351), - # and {Open,Free}BSD. - doCheck = stdenv ? glibc; - - enableParallelBuilding = true; - - NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; - - meta = { - homepage = http://www.gnu.org/software/coreutils/; - description = "The basic file, shell and text manipulation utilities of the GNU operating system"; - - longDescription = '' - The GNU Core Utilities are the basic file, shell and text - manipulation utilities of the GNU operating system. These are - the core utilities which are expected to exist on every - operating system. - ''; - - license = "GPLv3+"; - - maintainers = [ ]; - }; -} - diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index da3e8d09a23..65a3bec555e 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -6,8 +6,11 @@ assert aclSupport -> acl != null; assert selinuxSupport -> libselinux != null && libsepol != null; + +with { inherit (stdenv.lib) optional optionals optionalString optionalAttrs; }; + let - self = stdenv.mkDerivation rec { + self = stdenv.mkDerivation (rec { name = "coreutils-8.21"; src = fetchurl { @@ -17,16 +20,14 @@ let nativeBuildInputs = [ perl ]; buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl - ++ stdenv.lib.optional selinuxSupport libselinux - ++ stdenv.lib.optional selinuxSupport libsepol; + ++ optional aclSupport acl + ++ optionals selinuxSupport [ libselinux libsepol ]; crossAttrs = { buildInputs = [ gmp ] - ++ stdenv.lib.optional aclSupport acl.crossDrv - ++ stdenv.lib.optional selinuxSupport libselinux.crossDrv - ++ stdenv.lib.optional selinuxSupport libsepol.crossDrv - ++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) + ++ optional aclSupport acl.crossDrv + ++ optionals selinuxSupport [ libselinux.crossDrv libsepol.crossDrv ] + ++ optional (stdenv.gccCross.libc ? libiconv) stdenv.gccCross.libc.libiconv.crossDrv; buildPhase = '' @@ -57,7 +58,7 @@ let enableParallelBuilding = true; - NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; + NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; meta = { homepage = http://www.gnu.org/software/coreutils/; @@ -74,6 +75,8 @@ let maintainers = [ ]; }; - }; + } // optionalAttrs stdenv.isDarwin { + makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0"; + }); in self diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f64684c8a3e..3bb5373dd2b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -665,11 +665,7 @@ let convmv = callPackage ../tools/misc/convmv { }; - coreutils = (if stdenv.isDarwin then - # 8.20 doesn't build on Darwin - callPackage ../tools/misc/coreutils/8.19.nix - else - callPackage ../tools/misc/coreutils) + coreutils = callPackage ../tools/misc/coreutils { # TODO: Add ACL support for cross-Linux. aclSupport = crossSystem == null && stdenv.isLinux;