From 3096d03435bb177af8c4868a8efa637b393f2715 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 1 Jun 2015 20:52:03 +0200 Subject: Revert "Refactor mkFlag / shouldUsePkg into the nixpkgs libraries" This reverts commit 25a148fa196b944b3f134527da87e43d88c066f9. --- pkgs/development/libraries/kerberos/heimdal.nix | 13 ++++++++++--- pkgs/development/libraries/libgcrypt/default.nix | 15 +++++++++++---- pkgs/development/libraries/libmicrohttpd/default.nix | 10 +++++++++- pkgs/development/libraries/libssh/default.nix | 3 ++- pkgs/development/libraries/libssh2/default.nix | 10 +++++++++- pkgs/development/libraries/libxml2/default.nix | 11 +++++++++-- pkgs/development/libraries/ncurses/default.nix | 18 +++++++++++++++--- pkgs/development/libraries/nghttp2/default.nix | 15 +++++++++++---- pkgs/development/libraries/wiredtiger/default.nix | 12 ++++++++++-- 9 files changed, 86 insertions(+), 21 deletions(-) (limited to 'pkgs/development') diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix index 6050891ba272..b0de8c151460 100644 --- a/pkgs/development/libraries/kerberos/heimdal.nix +++ b/pkgs/development/libraries/kerberos/heimdal.nix @@ -8,9 +8,16 @@ #, sqlite, db, ncurses, openssl, cyrus_sasl }: -with stdenv; -with stdenv.lib; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + optOpenldap = shouldUsePkg openldap; optLibcap_ng = shouldUsePkg libcap_ng; optSqlite = shouldUsePkg sqlite; @@ -90,7 +97,7 @@ stdenv.mkDerivation rec { rmdir $out/libexec ''; - meta = { + meta = with stdenv.lib; { description = "an implementation of Kerberos 5 (and some more stuff) largely written in Sweden"; license = licenses.bsd3; platforms = platforms.linux; diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix index 702d54392a6e..7d327a499bcc 100644 --- a/pkgs/development/libraries/libgcrypt/default.nix +++ b/pkgs/development/libraries/libgcrypt/default.nix @@ -5,9 +5,16 @@ , libcap ? null, pth ? null }: -with stdenv; -with stdenv.lib; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + optLibcap = shouldUsePkg libcap; #optPth = shouldUsePkg pth; optPth = null; # Broken as of 1.6.3 @@ -31,13 +38,13 @@ stdenv.mkDerivation rec { # Also make sure includes are fixed for callers who don't use libgpgcrypt-config postInstall = '' sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h - '' + optionalString (!stdenv.isDarwin && optLibcap != null) '' + '' + stdenv.lib.optionalString (!stdenv.isDarwin && optLibcap != null) '' sed -i 's,\(-lcap\),-L${optLibcap}/lib \1,' $out/lib/libgcrypt.la ''; doCheck = true; - meta = { + meta = with stdenv.lib; { homepage = https://www.gnu.org/software/libgcrypt/; description = "General-pupose cryptographic library"; license = licenses.lgpl2Plus; diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix index c7892716c9d6..9eca6bd84b99 100644 --- a/pkgs/development/libraries/libmicrohttpd/default.nix +++ b/pkgs/development/libraries/libmicrohttpd/default.nix @@ -5,8 +5,16 @@ , openssl ? null, zlib ? null, libgcrypt ? null, gnutls ? null }: -with stdenv; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + optOpenssl = shouldUsePkg openssl; optZlib = shouldUsePkg zlib; hasSpdy = optOpenssl != null && optZlib != null; diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix index 8ea2ac72da0b..17bcf227c0e8 100644 --- a/pkgs/development/libraries/libssh/default.nix +++ b/pkgs/development/libraries/libssh/default.nix @@ -7,8 +7,9 @@ , openssl ? null, libgcrypt ? null }: -with stdenv; let + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + # Prefer openssl cryptoStr = if shouldUsePkg openssl != null then "openssl" else if shouldUsePkg libgcrypt != null then "libgcrypt" diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix index a8e8777f06ca..3434fde1a623 100644 --- a/pkgs/development/libraries/libssh2/default.nix +++ b/pkgs/development/libraries/libssh2/default.nix @@ -7,8 +7,16 @@ , openssl ? null, libgcrypt ? null }: -with stdenv; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + # Prefer openssl cryptoStr = if shouldUsePkg openssl != null then "openssl" else if shouldUsePkg libgcrypt != null then "libgcrypt" diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix index 77050a1d3b38..0d70a6502feb 100644 --- a/pkgs/development/libraries/libxml2/default.nix +++ b/pkgs/development/libraries/libxml2/default.nix @@ -6,8 +6,16 @@ #TODO: share most stuff between python and non-python builds, perhaps via multiple-output -with stdenv; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + optIcu = shouldUsePkg icu; optPython = shouldUsePkg python; optReadline = shouldUsePkg readline; @@ -17,7 +25,6 @@ let sitePackages = if optPython == null then null else "\${out}/lib/${python.libPrefix}/site-packages"; in -with stdenv.lib; stdenv.mkDerivation rec { name = "libxml2-${version}"; version = "2.9.2"; diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index f0519fa981df..bea4754a1f53 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -8,11 +8,23 @@ , unicode ? true }: -with stdenv.lib; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg_: let + pkg = (builtins.tryEval pkg_).value; + in if stdenv.lib.any (x: x == stdenv.system) (pkg.meta.platforms or []) + then pkg + else null; + buildShared = !stdenv.isDarwin; - optGpm = stdenv.shouldUsePkg gpm; + optGpm = shouldUsePkg gpm; in stdenv.mkDerivation rec { name = "ncurses-5.9"; @@ -124,7 +136,7 @@ stdenv.mkDerivation rec { ln -svf libncurses.so $out/lib/libcurses.so ''; - meta = { + meta = with stdenv.lib; { description = "Free software emulation of curses in SVR4 and more"; longDescription = '' diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix index d8fd36ecba63..bc8c599a901f 100644 --- a/pkgs/development/libraries/nghttp2/default.nix +++ b/pkgs/development/libraries/nghttp2/default.nix @@ -8,9 +8,16 @@ , prefix ? "" }: -with stdenv; -with stdenv.lib; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + isLib = prefix == "lib"; optOpenssl = if isLib then null else shouldUsePkg openssl; @@ -43,7 +50,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ optJansson optBoost optLibxml2 optJemalloc ] - ++ optionals hasApp [ optOpenssl optLibev optZlib ]; + ++ stdenv.lib.optionals hasApp [ optOpenssl optLibev optZlib ]; configureFlags = [ (mkEnable false "werror" null) @@ -61,7 +68,7 @@ stdenv.mkDerivation rec { (mkWith false "cython" null) ]; - meta = { + meta = with stdenv.lib; { homepage = http://nghttp2.org/; description = "an implementation of HTTP/2 in C"; license = licenses.mit; diff --git a/pkgs/development/libraries/wiredtiger/default.nix b/pkgs/development/libraries/wiredtiger/default.nix index 514dcd5972af..da4dc9d6bbc3 100644 --- a/pkgs/development/libraries/wiredtiger/default.nix +++ b/pkgs/development/libraries/wiredtiger/default.nix @@ -5,8 +5,17 @@ , gperftools ? null, leveldb ? null }: -with stdenv; +with stdenv.lib; let + mkFlag = trueStr: falseStr: cond: name: val: + if cond == null then null else + "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; + mkEnable = mkFlag "enable-" "disable-"; + mkWith = mkFlag "with-" "without-"; + mkOther = mkFlag "" "" true; + + shouldUsePkg = pkg: if pkg != null && any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; + optLz4 = shouldUsePkg lz4; optSnappy = shouldUsePkg snappy; optZlib = shouldUsePkg zlib; @@ -15,7 +24,6 @@ let optGperftools = shouldUsePkg gperftools; optLeveldb = shouldUsePkg leveldb; in -with stdenv.lib; stdenv.mkDerivation rec { name = "wiredtiger-${version}"; version = "2.6.0"; -- cgit 1.4.1