From ef8619b4b2ed2589285f543e7ae409ac8bd07405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 12 Dec 2010 23:21:35 +0000 Subject: [PATCH] GNU Parted: Allow cross-GNU builds. svn path=/nixpkgs/branches/stdenv-updates/; revision=25088 --- pkgs/tools/misc/parted/default.nix | 22 +++++++++++++++++----- pkgs/top-level/all-packages.nix | 21 +++++++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix index c4061949424e..622753e2303a 100644 --- a/pkgs/tools/misc/parted/default.nix +++ b/pkgs/tools/misc/parted/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, devicemapper, libuuid, gettext, readline -, utillinuxng, xz }: +, utillinuxng, xz, enableStatic ? false, hurd ? null }: stdenv.mkDerivation rec { name = "parted-2.3"; @@ -9,14 +9,26 @@ stdenv.mkDerivation rec { sha256 = "0sabj81nawcjm8ww34lxg65ka8crv3w2ab4crh8ypw5agg681836"; }; - buildInputs = [ xz libuuid gettext readline libuuid devicemapper ]; + buildNativeInputs = [ xz ]; + buildInputs = [ libuuid ] + ++ stdenv.lib.optional (readline != null) readline + ++ stdenv.lib.optional (gettext != null) gettext + ++ stdenv.lib.optional (devicemapper != null) devicemapper + ++ stdenv.lib.optional (hurd != null) hurd; - configureFlags = "--with-readline"; + configureFlags = + (if (readline != null) + then [ "--with-readline" ] + else [ "--without-readline" ]) + ++ stdenv.lib.optional (devicemapper == null) "--disable-device-mapper" + ++ stdenv.lib.optional enableStatic "--enable-static"; doCheck = true; - # The `t0400-loop-clobber-infloop.sh' test wants `mkswap'. - preCheck = "export PATH=\"${utillinuxng}/sbin:$PATH\""; + preCheck = + stdenv.lib.optionalString doCheck + # The `t0400-loop-clobber-infloop.sh' test wants `mkswap'. + "export PATH=\"${utillinuxng}/sbin:$PATH\""; meta = { description = "GNU Parted, a tool to create, destroy, resize, check, and copy partitions"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3a1ac4010e3d..7cb15b9126ef 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1014,6 +1014,18 @@ let parted = callPackage ../tools/misc/parted { }; + hurdPartedCross = (callPackage ../tools/misc/parted { + # Needs the Hurd's libstore. + hurd = hurdCrossIntermediate; + + # The Hurd wants a libparted.a. + enableStatic = true; + + gettext = null; + readline = null; + devicemapper = null; + }).hostDrv; + patch = gnupatch; pbzip2 = callPackage ../tools/compression/pbzip2 { }; @@ -4588,10 +4600,11 @@ let # intermediate GCC. gccCross = gccCrossStageStatic; - # This intermediate Hurd is only needed to build libpthread, which really - # only needs libihash. - buildTarget = "libihash"; - installTarget = "libihash-install"; + # This intermediate Hurd is only needed to build libpthread, which needs + # libihash, and to build Parted, which needs libstore and + # libshouldbeinlibc. + buildTarget = "libihash libstore libshouldbeinlibc"; + installTarget = "libihash-install libstore-install libshouldbeinlibc-install"; }); hurdHeaders = callPackage ../os-specific/gnu/hurd {