Refactor mkFlag / shouldUsePkg into the nixpkgs libraries
This commit is contained in:
@@ -8,16 +8,9 @@
|
||||
#, 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;
|
||||
@@ -97,7 +90,7 @@ stdenv.mkDerivation rec {
|
||||
rmdir $out/libexec
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = {
|
||||
description = "an implementation of Kerberos 5 (and some more stuff) largely written in Sweden";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
|
||||
@@ -5,16 +5,9 @@
|
||||
, 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
|
||||
@@ -38,13 +31,13 @@ stdenv.mkDerivation rec {
|
||||
# Also make sure includes are fixed for callers who don't use libgpgcrypt-config
|
||||
postInstall = ''
|
||||
sed -i 's,#include <gpg-error.h>,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h
|
||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin && optLibcap != null) ''
|
||||
'' + optionalString (!stdenv.isDarwin && optLibcap != null) ''
|
||||
sed -i 's,\(-lcap\),-L${optLibcap}/lib \1,' $out/lib/libgcrypt.la
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = {
|
||||
homepage = https://www.gnu.org/software/libgcrypt/;
|
||||
description = "General-pupose cryptographic library";
|
||||
license = licenses.lgpl2Plus;
|
||||
|
||||
@@ -5,16 +5,8 @@
|
||||
, 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;
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
, 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"
|
||||
|
||||
@@ -7,16 +7,8 @@
|
||||
, 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"
|
||||
|
||||
@@ -6,16 +6,8 @@
|
||||
|
||||
#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;
|
||||
@@ -25,6 +17,7 @@ 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";
|
||||
|
||||
@@ -8,23 +8,11 @@
|
||||
, 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 = shouldUsePkg gpm;
|
||||
optGpm = stdenv.shouldUsePkg gpm;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "ncurses-5.9";
|
||||
@@ -119,7 +107,7 @@ stdenv.mkDerivation rec {
|
||||
echo "INPUT(-lncurses)" > $out/lib/libcurses.so
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = {
|
||||
description = "Free software emulation of curses in SVR4 and more";
|
||||
|
||||
longDescription = ''
|
||||
|
||||
@@ -8,16 +8,9 @@
|
||||
, 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;
|
||||
@@ -50,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ optJansson optBoost optLibxml2 optJemalloc ]
|
||||
++ stdenv.lib.optionals hasApp [ optOpenssl optLibev optZlib ];
|
||||
++ optionals hasApp [ optOpenssl optLibev optZlib ];
|
||||
|
||||
configureFlags = [
|
||||
(mkEnable false "werror" null)
|
||||
@@ -68,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||
(mkWith false "cython" null)
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = {
|
||||
homepage = http://nghttp2.org/;
|
||||
description = "an implementation of HTTP/2 in C";
|
||||
license = licenses.mit;
|
||||
|
||||
@@ -5,17 +5,8 @@
|
||||
, gperftools ? null, leveldb ? null
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
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 && any (x: x == stdenv.system) pkg.meta.platforms then pkg else null;
|
||||
|
||||
optLz4 = shouldUsePkg lz4;
|
||||
optSnappy = shouldUsePkg snappy;
|
||||
optZlib = shouldUsePkg zlib;
|
||||
@@ -24,6 +15,7 @@ let
|
||||
optGperftools = shouldUsePkg gperftools;
|
||||
optLeveldb = shouldUsePkg leveldb;
|
||||
in
|
||||
with stdenv.lib;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "wiredtiger-${version}";
|
||||
version = "2.6.0";
|
||||
|
||||
Reference in New Issue
Block a user