diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 686e125f100c..539eeb7b1721 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -455,7 +455,7 @@ rec { getDev = getOutput "dev"; /* Pick the outputs of packages to place in buildInputs */ - chooseDevOutputs = drvs: builtins.map (drv: if drv.outputUnspecified or false then drv.dev or drv else drv) drvs; + chooseDevOutputs = drvs: builtins.map getDev drvs; /*** deprecated stuff ***/ diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 0c5f900dd412..34ad2532d41d 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -1,5 +1,12 @@ -{ fetchurl, stdenv, acl, openssl, libxml2, attr, zlib, bzip2, e2fsprogs, xz, lzo -, sharutils }: +{ + fetchurl, stdenv, pkgconfig, + acl, attr, bzip2, e2fsprogs, libxml2, lzo, openssl, sharutils, xz, zlib, + + # Optional but increases closure only negligibly. + xarSupport ? true, +}: + +assert xarSupport -> libxml2 != null; stdenv.mkDerivation rec { name = "libarchive-${version}"; @@ -10,12 +17,16 @@ stdenv.mkDerivation rec { sha256 = "1lngng84k1kkljl74q0cdqc3s82vn2kimfm02dgm4d6m7x71mvkj"; }; - buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz lzo ] ++ - stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ sharutils zlib bzip2 openssl xz lzo ] + ++ stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ] + ++ stdenv.lib.optional xarSupport libxml2; # Without this, pkgconfig-based dependencies are unhappy propagatedBuildInputs = stdenv.lib.optionals stdenv.isLinux [ attr acl ]; + configureFlags = stdenv.lib.optional (!xarSupport) "--without-xml2"; + preBuild = if stdenv.isCygwin then '' echo "#include " >> config.h '' else null;