diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix index dbc17ffa1bb2..4908662591cb 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" @@ -19,9 +21,6 @@ stdenv.mkDerivation (rec { "--config-cache" ]); - makeFlags = stdenv.lib.optionalString stdenv.isDarwin - "CFLAGS=-D_FORTIFY_SOURCE=0"; - # On cross building, gettext supposes that the wchar.h from libc # does not fulfill gettext needs, so it tries to work with its # own wchar.h file, which does not cope well with the system's @@ -33,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++"; @@ -73,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/default.nix b/pkgs/tools/misc/coreutils/default.nix index c4066c89d1d7..65a3bec555ef 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,10 +58,7 @@ let enableParallelBuilding = true; - NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; - - makeFlags = stdenv.lib.optionalString stdenv.isDarwin - "CFLAGS=-D_FORTIFY_SOURCE=0"; + NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; meta = { homepage = http://www.gnu.org/software/coreutils/; @@ -77,6 +75,8 @@ let maintainers = [ ]; }; - }; + } // optionalAttrs stdenv.isDarwin { + makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0"; + }); in self