GNU Parted: Allow cross-GNU builds.

svn path=/nixpkgs/branches/stdenv-updates/; revision=25088
This commit is contained in:
Ludovic Courtès 2010-12-12 23:21:35 +00:00
parent 0847b74a2c
commit ef8619b4b2
2 changed files with 34 additions and 9 deletions

View file

@ -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";

View file

@ -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 {