coreutils,gettext: don't change hash except for darwin

Also some style cleanup.
Note that defining an empty-string variable *does* change the hash.
I would like to change this behaviour one day
(clean up attrs when compiling the derivation).
This commit is contained in:
Vladimír Čunát 2013-09-14 14:56:10 +02:00
parent 055e646bfc
commit 961c2fe7c3
2 changed files with 26 additions and 25 deletions

View File

@ -1,4 +1,6 @@
{ stdenv, fetchurl, libiconv }: { stdenv, fetchurl, libiconvOrEmpty }:
with { inherit (stdenv.lib) optionals optionalAttrs; };
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "gettext-0.18.1.1"; name = "gettext-0.18.1.1";
@ -11,7 +13,7 @@ stdenv.mkDerivation (rec {
patches = [ ./no-gets.patch ]; patches = [ ./no-gets.patch ];
configureFlags = [ "--disable-csharp" ] configureFlags = [ "--disable-csharp" ]
++ (stdenv.lib.optionals stdenv.isCygwin ++ (optionals stdenv.isCygwin
[ # We have a static libiconv, so we can only build the static lib. [ # We have a static libiconv, so we can only build the static lib.
"--disable-shared" "--enable-static" "--disable-shared" "--enable-static"
@ -19,9 +21,6 @@ stdenv.mkDerivation (rec {
"--config-cache" "--config-cache"
]); ]);
makeFlags = stdenv.lib.optionalString stdenv.isDarwin
"CFLAGS=-D_FORTIFY_SOURCE=0";
# On cross building, gettext supposes that the wchar.h from libc # On cross building, gettext supposes that the wchar.h from libc
# does not fulfill gettext needs, so it tries to work with its # 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 # own wchar.h file, which does not cope well with the system's
@ -33,12 +32,12 @@ stdenv.mkDerivation (rec {
fi fi
''; '';
buildInputs = stdenv.lib.optional (!stdenv.isLinux) libiconv; buildInputs = libiconvOrEmpty;
enableParallelBuilding = true; enableParallelBuilding = true;
crossAttrs = { crossAttrs = {
buildInputs = stdenv.lib.optional (stdenv.gccCross.libc ? libiconv) buildInputs = optional (stdenv.gccCross.libc ? libiconv)
stdenv.gccCross.libc.libiconv.crossDrv; stdenv.gccCross.libc.libiconv.crossDrv;
# Gettext fails to guess the cross compiler # Gettext fails to guess the cross compiler
configureFlags = "CXX=${stdenv.cross.config}-g++"; 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 = patchPhase =
# Make sure `error.c' gets compiled and is part of `libgettextlib.la'. # Make sure `error.c' gets compiled and is part of `libgettextlib.la'.
# This fixes: # This fixes:

View File

@ -6,8 +6,11 @@
assert aclSupport -> acl != null; assert aclSupport -> acl != null;
assert selinuxSupport -> libselinux != null && libsepol != null; assert selinuxSupport -> libselinux != null && libsepol != null;
with { inherit (stdenv.lib) optional optionals optionalString optionalAttrs; };
let let
self = stdenv.mkDerivation rec { self = stdenv.mkDerivation (rec {
name = "coreutils-8.21"; name = "coreutils-8.21";
src = fetchurl { src = fetchurl {
@ -17,16 +20,14 @@ let
nativeBuildInputs = [ perl ]; nativeBuildInputs = [ perl ];
buildInputs = [ gmp ] buildInputs = [ gmp ]
++ stdenv.lib.optional aclSupport acl ++ optional aclSupport acl
++ stdenv.lib.optional selinuxSupport libselinux ++ optionals selinuxSupport [ libselinux libsepol ];
++ stdenv.lib.optional selinuxSupport libsepol;
crossAttrs = { crossAttrs = {
buildInputs = [ gmp ] buildInputs = [ gmp ]
++ stdenv.lib.optional aclSupport acl.crossDrv ++ optional aclSupport acl.crossDrv
++ stdenv.lib.optional selinuxSupport libselinux.crossDrv ++ optionals selinuxSupport [ libselinux.crossDrv libsepol.crossDrv ]
++ stdenv.lib.optional selinuxSupport libsepol.crossDrv ++ optional (stdenv.gccCross.libc ? libiconv)
++ stdenv.lib.optional (stdenv.gccCross.libc ? libiconv)
stdenv.gccCross.libc.libiconv.crossDrv; stdenv.gccCross.libc.libiconv.crossDrv;
buildPhase = '' buildPhase = ''
@ -57,10 +58,7 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
makeFlags = stdenv.lib.optionalString stdenv.isDarwin
"CFLAGS=-D_FORTIFY_SOURCE=0";
meta = { meta = {
homepage = http://www.gnu.org/software/coreutils/; homepage = http://www.gnu.org/software/coreutils/;
@ -77,6 +75,8 @@ let
maintainers = [ ]; maintainers = [ ];
}; };
}; } // optionalAttrs stdenv.isDarwin {
makeFlags = "CFLAGS=-D_FORTIFY_SOURCE=0";
});
in in
self self