From 6adc5cedae266349bd7440099379b2fa9e959ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 21 Aug 2012 15:29:07 +0200 Subject: [PATCH 1/5] stdenv: Add `isGlibc' function. --- pkgs/stdenv/generic/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 749de01deff..7a8c74506b7 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -30,7 +30,7 @@ let lib.filter lib.isDerivation initialPath; } - // { + // rec { meta = { description = "The default build environment for Unix packages in Nixpkgs"; @@ -96,6 +96,9 @@ let || result.system == "armv7l-linux" || result.system == "mips64el-linux"; isGNU = result.system == "i686-gnu"; # GNU/Hurd + isGlibc = isGNU # useful for `stdenvNative' + || isLinux + || result.system = "x86_64-kfreebsd-gnu"; isSunOS = result.system == "i686-solaris" || result.system == "x86_64-solaris"; isCygwin = result.system == "i686-cygwin"; From d53cb937f5e8489f40cb09b9a7fc1749159f7f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 21 Aug 2012 15:29:37 +0200 Subject: [PATCH 2/5] libiconvOrNull: Do not use an external libiconv on glibc systems. --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 485f28f1d9c..17d303c5db4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4146,7 +4146,7 @@ let libiconvOrEmpty = if (libiconvOrNull == null) then [] else libiconv; - libiconvOrNull = if gcc ? libc then null else libiconv; + libiconvOrNull = if ((gcc ? libc) || stdenv.isGlibc) then null else libiconv; libiconvOrLibc = if (libiconvOrNull == null) then gcc.libc else libiconv; From f959a26e3335f8896a35fa5eb1f93f6346b74ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 21 Aug 2012 15:30:50 +0200 Subject: [PATCH 3/5] stdenv: Fix typo. --- pkgs/stdenv/generic/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 7a8c74506b7..a3284bea8e4 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -98,7 +98,7 @@ let isGNU = result.system == "i686-gnu"; # GNU/Hurd isGlibc = isGNU # useful for `stdenvNative' || isLinux - || result.system = "x86_64-kfreebsd-gnu"; + || result.system == "x86_64-kfreebsd-gnu"; isSunOS = result.system == "i686-solaris" || result.system == "x86_64-solaris"; isCygwin = result.system == "i686-cygwin"; From 11602dad82867c7f82424cead91b84c8810bb764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 21 Aug 2012 15:53:43 +0200 Subject: [PATCH 4/5] glib: Use `libiconvOrNull' instead of `libiconv'. --- pkgs/development/libraries/glib/2.30.x.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib/2.30.x.nix b/pkgs/development/libraries/glib/2.30.x.nix index 092fa7f27e0..72baf0154d9 100644 --- a/pkgs/development/libraries/glib/2.30.x.nix +++ b/pkgs/development/libraries/glib/2.30.x.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib, libffi +{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrNull, zlib, libffi , python, pcre }: # TODO: @@ -20,7 +20,11 @@ stdenv.mkDerivation rec { }; # configure script looks for d-bus but it is only needed for tests - buildInputs = [ pcre ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv; + buildInputs = [ pcre ] + ++ (if libiconvOrNull != null + then [ libiconvOrNull ] + else []); + buildNativeInputs = [ perl pkgconfig gettext python ]; propagatedBuildInputs = [ zlib libffi ]; From 45ce8c915dfd64a0de6eb21c7ec1a8135d18c330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 21 Aug 2012 16:58:55 +0200 Subject: [PATCH 5/5] libiconvOrNull: Fix libc check. --- pkgs/top-level/all-packages.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 17d303c5db4..80c5ee77ec6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4146,7 +4146,10 @@ let libiconvOrEmpty = if (libiconvOrNull == null) then [] else libiconv; - libiconvOrNull = if ((gcc ? libc) || stdenv.isGlibc) then null else libiconv; + libiconvOrNull = + if ((gcc ? libc && (gcc.libc != null)) || stdenv.isGlibc) + then null + else libiconv; libiconvOrLibc = if (libiconvOrNull == null) then gcc.libc else libiconv;