diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix index 4abf799d0155..bd524b6d9317 100644 --- a/pkgs/applications/audio/moc/default.nix +++ b/pkgs/applications/audio/moc/default.nix @@ -24,11 +24,7 @@ , withDebug ? false }: -let - opt = lib.optional; - mkFlag = c: f: if c then "--with-${f}" else "--without-${f}"; - -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "moc"; version = "2.5.2"; @@ -39,56 +35,56 @@ in stdenv.mkDerivation rec { }; patches = [] - ++ opt ffmpegSupport ./moc-ffmpeg4.patch - ++ opt pulseSupport ./pulseaudio.patch; + ++ lib.optional ffmpegSupport ./moc-ffmpeg4.patch + ++ lib.optional pulseSupport ./pulseaudio.patch; nativeBuildInputs = [ pkg-config ] - ++ opt pulseSupport autoreconfHook; + ++ lib.optional pulseSupport autoreconfHook; buildInputs = [ ncurses db popt libtool ] # Sound sub-systems - ++ opt alsaSupport alsa-lib - ++ opt pulseSupport libpulseaudio - ++ opt jackSupport libjack2 + ++ lib.optional alsaSupport alsa-lib + ++ lib.optional pulseSupport libpulseaudio + ++ lib.optional jackSupport libjack2 # Audio formats - ++ opt (aacSupport || mp3Support) libid3tag - ++ opt aacSupport faad2 - ++ opt flacSupport flac - ++ opt midiSupport timidity - ++ opt modplugSupport libmodplug - ++ opt mp3Support libmad + ++ lib.optional (aacSupport || mp3Support) libid3tag + ++ lib.optional aacSupport faad2 + ++ lib.optional flacSupport flac + ++ lib.optional midiSupport timidity + ++ lib.optional modplugSupport libmodplug + ++ lib.optional mp3Support libmad ++ lib.optionals musepackSupport [ libmpc libmpcdec taglib ] - ++ opt vorbisSupport libvorbis - ++ opt speexSupport speex - ++ opt ffmpegSupport ffmpeg - ++ opt sndfileSupport libsndfile - ++ opt wavpackSupport wavpack + ++ lib.optional vorbisSupport libvorbis + ++ lib.optional speexSupport speex + ++ lib.optional ffmpegSupport ffmpeg + ++ lib.optional sndfileSupport libsndfile + ++ lib.optional wavpackSupport wavpack # Misc - ++ opt curlSupport curl - ++ opt samplerateSupport libsamplerate + ++ lib.optional curlSupport curl + ++ lib.optional samplerateSupport libsamplerate ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ]; configureFlags = [ # Sound sub-systems - (mkFlag alsaSupport "alsa") - (mkFlag pulseSupport "pulse") - (mkFlag jackSupport "jack") - (mkFlag ossSupport "oss") + (lib.withFeature alsaSupport "alsa") + (lib.withFeature pulseSupport "pulse") + (lib.withFeature jackSupport "jack") + (lib.withFeature ossSupport "oss") # Audio formats - (mkFlag aacSupport "aac") - (mkFlag flacSupport "flac") - (mkFlag midiSupport "timidity") - (mkFlag modplugSupport "modplug") - (mkFlag mp3Support "mp3") - (mkFlag musepackSupport "musepack") - (mkFlag vorbisSupport "vorbis") - (mkFlag speexSupport "speex") - (mkFlag ffmpegSupport "ffmpeg") - (mkFlag sndfileSupport "sndfile") - (mkFlag wavpackSupport "wavpack") + (lib.withFeature aacSupport "aac") + (lib.withFeature flacSupport "flac") + (lib.withFeature midiSupport "timidity") + (lib.withFeature modplugSupport "modplug") + (lib.withFeature mp3Support "mp3") + (lib.withFeature musepackSupport "musepack") + (lib.withFeature vorbisSupport "vorbis") + (lib.withFeature speexSupport "speex") + (lib.withFeature ffmpegSupport "ffmpeg") + (lib.withFeature sndfileSupport "sndfile") + (lib.withFeature wavpackSupport "wavpack") # Misc - (mkFlag curlSupport "curl") - (mkFlag samplerateSupport "samplerate") + (lib.withFeature curlSupport "curl") + (lib.withFeature samplerateSupport "samplerate") ("--enable-debug=" + (if withDebug then "yes" else "no")) "--disable-cache" "--without-rcc" diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix index ec79f8cf6008..94f2ab39b96f 100644 --- a/pkgs/development/libraries/lame/default.nix +++ b/pkgs/development/libraries/lame/default.nix @@ -11,10 +11,6 @@ , debugSupport ? false # Debugging (disables optimizations) }: -let - mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}"; -in - with lib; stdenv.mkDerivation rec { pname = "lame"; @@ -37,16 +33,16 @@ stdenv.mkDerivation rec { ++ optional sndfileFileIOSupport libsndfile; configureFlags = [ - (mkFlag nasmSupport "nasm") - (mkFlag cpmlSupport "cpml") - #(mkFlag efenceSupport "efence") + (enableFeature nasmSupport "nasm") + (enableFeature cpmlSupport "cpml") + #(enableFeature efenceSupport "efence") (if sndfileFileIOSupport then "--with-fileio=sndfile" else "--with-fileio=lame") - (mkFlag analyzerHooksSupport "analyzer-hooks") - (mkFlag decoderSupport "decoder") - (mkFlag frontendSupport "frontend") - (mkFlag frontendSupport "dynamic-frontends") - #(mkFlag mp3xSupport "mp3x") - (mkFlag mp3rtpSupport "mp3rtp") + (enableFeature analyzerHooksSupport "analyzer-hooks") + (enableFeature decoderSupport "decoder") + (enableFeature frontendSupport "frontend") + (enableFeature frontendSupport "dynamic-frontends") + #(enableFeature mp3xSupport "mp3x") + (enableFeature mp3rtpSupport "mp3rtp") (if debugSupport then "--enable-debug=alot" else "") ]; diff --git a/pkgs/development/libraries/libass/default.nix b/pkgs/development/libraries/libass/default.nix index 704dcd2c73d0..15e0396142f4 100644 --- a/pkgs/development/libraries/libass/default.nix +++ b/pkgs/development/libraries/libass/default.nix @@ -8,10 +8,6 @@ assert fontconfigSupport -> fontconfig != null; -let - mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}"; -in - with lib; stdenv.mkDerivation rec { pname = "libass"; @@ -23,9 +19,9 @@ stdenv.mkDerivation rec { }; configureFlags = [ - (mkFlag fontconfigSupport "fontconfig") - (mkFlag rasterizerSupport "rasterizer") - (mkFlag largeTilesSupport "large-tiles") + (enableFeature fontconfigSupport "fontconfig") + (enableFeature rasterizerSupport "rasterizer") + (enableFeature largeTilesSupport "large-tiles") ]; nativeBuildInputs = [ pkg-config yasm ]; diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix index 4b379660a84e..f9963ce3e636 100644 --- a/pkgs/development/libraries/libinfinity/default.nix +++ b/pkgs/development/libraries/libinfinity/default.nix @@ -9,8 +9,6 @@ assert avahiSupport -> avahi != null; assert gtkWidgets -> gtk3 != null; let - mkFlag = flag: feature: (if flag then "--with-" else "--without-") + feature; - self = stdenv.mkDerivation rec { pname = "libinfinity"; version = "0.7.2"; @@ -29,13 +27,13 @@ let propagatedBuildInputs = [ gnutls ]; configureFlags = [ - "--enable-gtk-doc" - "--enable-introspection" - (mkFlag gtkWidgets "inftextgtk") - (mkFlag gtkWidgets "infgtk") - "--with-infinoted" - "--with-libdaemon" - (mkFlag avahiSupport "avahi") + (lib.enableFeature true "gtk-doc") + (lib.enableFeature true "introspection") + (lib.withFeature gtkWidgets "inftextgtk") + (lib.withFeature gtkWidgets "infgtk") + (lib.withFeature true "infinoted") + (lib.withFeature true "libdaemon") + (lib.withFeature avahiSupport "avahi") ]; passthru = { diff --git a/pkgs/development/libraries/wiredtiger/default.nix b/pkgs/development/libraries/wiredtiger/default.nix index b6064c42b5c9..69fc38c9a74e 100644 --- a/pkgs/development/libraries/wiredtiger/default.nix +++ b/pkgs/development/libraries/wiredtiger/default.nix @@ -7,13 +7,6 @@ with lib; let - mkFlag = trueStr: falseStr: cond: name: val: "--" - + (if cond then trueStr else falseStr) - + name - + optionalString (val != null && cond != false) "=${val}"; - mkEnable = mkFlag "enable-" "disable-"; - mkWith = mkFlag "with-" "without-"; - shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null; optLz4 = shouldUsePkg lz4; @@ -39,19 +32,19 @@ stdenv.mkDerivation rec { buildInputs = [ optLz4 optSnappy optZlib optBzip2 optDb optGperftools optLeveldb ]; configureFlags = [ - (mkWith false "attach" null) - (mkWith true "builtins" "") - (mkEnable (optBzip2 != null) "bzip2" null) - (mkEnable false "diagnostic" null) - (mkEnable false "java" null) - (mkEnable (optLeveldb != null) "leveldb" null) - (mkEnable false "python" null) - (mkEnable (optSnappy != null) "snappy" null) - (mkEnable (optLz4 != null) "lz4" null) - (mkEnable (optGperftools != null) "tcmalloc" null) - (mkEnable (optZlib != null) "zlib" null) - (mkWith (optDb != null) "berkeleydb" optDb) - (mkWith false "helium" null) + (withFeature false "attach") + (withFeatureAs true "builtins" "") + (enableFeature (optBzip2 != null) "bzip2") + (enableFeature false "diagnostic") + (enableFeature false "java") + (enableFeature (optLeveldb != null) "leveldb") + (enableFeature false "python") + (enableFeature (optSnappy != null) "snappy") + (enableFeature (optLz4 != null) "lz4") + (enableFeature (optGperftools != null) "tcmalloc") + (enableFeature (optZlib != null) "zlib") + (withFeatureAs (optDb != null) "berkeleydb" optDb) + (withFeature false "helium") ]; preConfigure = '' diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix index a2105a8b14d1..d752c1bb8aee 100644 --- a/pkgs/servers/shishi/default.nix +++ b/pkgs/servers/shishi/default.nix @@ -6,14 +6,6 @@ }: let - mkFlag = trueStr: falseStr: cond: name: val: "--" - + (if cond then trueStr else falseStr) - + name - + lib.optionalString (val != null && cond != false) "=${val}"; - mkEnable = mkFlag "enable-" "disable-"; - mkWith = mkFlag "with-" "without-"; - mkOther = mkFlag "" "" true; - shouldUsePkg = pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null; optPam = shouldUsePkg pam; @@ -37,19 +29,19 @@ stdenv.mkDerivation rec { buildInputs = [ libgcrypt libgpg-error libtasn1 optPam optLibidn optGnutls ]; configureFlags = [ - (mkOther "sysconfdir" "/etc") - (mkOther "localstatedir" "/var") - (mkEnable true "libgcrypt" null) - (mkEnable (optPam != null) "pam" null) - (mkEnable true "ipv6" null) - (mkWith (optLibidn != null) "stringprep" null) - (mkEnable (optGnutls != null) "starttls" null) - (mkEnable true "des" null) - (mkEnable true "3des" null) - (mkEnable true "aes" null) - (mkEnable true "md" null) - (mkEnable false "null" null) - (mkEnable true "arcfour" null) + "--sysconfdir=/etc" + "--localstatedir=/var" + (enableFeature true "libgcrypt") + (enableFeature (optPam != null) "pam") + (enableFeature true "ipv6") + (withFeature (optLibidn != null) "stringprep") + (enableFeature (optGnutls != null) "starttls") + (enableFeature true "des") + (enableFeature true "3des") + (enableFeature true "aes") + (enableFeature true "md") + (enableFeature false "null") + (enableFeature true "arcfour") ]; NIX_CFLAGS_COMPILE diff --git a/pkgs/tools/security/pinentry/default.nix b/pkgs/tools/security/pinentry/default.nix index 2de900483f09..68e72171eca4 100644 --- a/pkgs/tools/security/pinentry/default.nix +++ b/pkgs/tools/security/pinentry/default.nix @@ -16,18 +16,13 @@ let then mkDerivation else stdenv.mkDerivation; - mkFlag = pfxTrue: pfxFalse: cond: name: - "--${if cond then pfxTrue else pfxFalse}-${name}"; - mkEnable = mkFlag "enable" "disable"; - mkWith = mkFlag "with" "without"; - - mkEnablePinentry = f: + enableFeaturePinentry = f: let info = flavorInfo.${f}; flag = flavorInfo.${f}.flag or null; in optionalString (flag != null) - (mkEnable (elem f enabledFlavors) ("pinentry-" + flag)); + (enableFeature (elem f enabledFlavors) ("pinentry-" + flag)); flavorInfo = { curses = { bin = "curses"; flag = "curses"; buildInputs = [ ncurses ]; }; @@ -68,9 +63,9 @@ pinentryMkDerivation rec { ]; configureFlags = [ - (mkWith (libcap != null) "libcap") - (mkEnable (libsecret != null) "libsecret") - ] ++ (map mkEnablePinentry (attrNames flavorInfo)); + (withFeature (libcap != null) "libcap") + (enableFeature (libsecret != null) "libsecret") + ] ++ (map enableFeaturePinentry (attrNames flavorInfo)); postInstall = concatStrings (flip map enabledFlavors (f: diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix index c0894f31a012..6876d441c52e 100644 --- a/pkgs/tools/system/rsyslog/default.nix +++ b/pkgs/tools/system/rsyslog/default.nix @@ -9,9 +9,6 @@ }: with lib; -let - mkFlag = cond: name: if cond then "--enable-${name}" else "--disable-${name}"; -in stdenv.mkDerivation rec { pname = "rsyslog"; version = "8.2204.1"; @@ -36,72 +33,72 @@ stdenv.mkDerivation rec { "--sysconfdir=/etc" "--localstatedir=/var" "--with-systemdsystemunitdir=\${out}/etc/systemd/system" - (mkFlag true "largefile") - (mkFlag true "regexp") - (mkFlag (libkrb5 != null) "gssapi-krb5") - (mkFlag true "klog") - (mkFlag true "kmsg") - (mkFlag (systemd != null) "imjournal") - (mkFlag true "inet") - (mkFlag (jemalloc != null) "jemalloc") - (mkFlag true "unlimited-select") - (mkFlag false "debug") - (mkFlag false "debug-symbols") - (mkFlag true "debugless") - (mkFlag false "valgrind") - (mkFlag false "diagtools") - (mkFlag true "usertools") - (mkFlag (libmysqlclient != null) "mysql") - (mkFlag (postgresql != null) "pgsql") - (mkFlag (libdbi != null) "libdbi") - (mkFlag (net-snmp != null) "snmp") - (mkFlag (libuuid != null) "uuid") - (mkFlag (curl != null) "elasticsearch") - (mkFlag (gnutls != null) "gnutls") - (mkFlag (libgcrypt != null) "libgcrypt") - (mkFlag true "rsyslogrt") - (mkFlag true "rsyslogd") - (mkFlag true "mail") - (mkFlag (liblognorm != null) "mmnormalize") - (mkFlag (libmaxminddb != null) "mmdblookup") - (mkFlag true "mmjsonparse") - (mkFlag true "mmaudit") - (mkFlag true "mmanon") - (mkFlag true "mmutf8fix") - (mkFlag true "mmcount") - (mkFlag true "mmsequence") - (mkFlag true "mmfields") - (mkFlag true "mmpstrucdata") - (mkFlag (openssl != null) "mmrfc5424addhmac") - (mkFlag (librelp != null) "relp") - (mkFlag (libksi != null) "ksi-ls12") - (mkFlag (liblogging != null) "liblogging-stdlog") - (mkFlag (liblogging != null) "rfc3195") - (mkFlag true "imfile") - (mkFlag false "imsolaris") - (mkFlag true "imptcp") - (mkFlag true "impstats") - (mkFlag true "omprog") - (mkFlag (libnet != null) "omudpspoof") - (mkFlag true "omstdout") - (mkFlag (systemd != null) "omjournal") - (mkFlag true "pmlastmsg") - (mkFlag true "pmcisconames") - (mkFlag true "pmciscoios") - (mkFlag true "pmaixforwardedfrom") - (mkFlag true "pmsnare") - (mkFlag true "omruleset") - (mkFlag true "omuxsock") - (mkFlag true "mmsnmptrapd") - (mkFlag (hadoop != null) "omhdfs") - (mkFlag (rdkafka != null) "omkafka") - (mkFlag (libmongo-client != null) "ommongodb") - (mkFlag (czmq != null) "imczmq") - (mkFlag (czmq != null) "omczmq") - (mkFlag (rabbitmq-c != null) "omrabbitmq") - (mkFlag (hiredis != null) "omhiredis") - (mkFlag (curl != null) "omhttpfs") - (mkFlag true "generate-man-pages") + (enableFeature true "largefile") + (enableFeature true "regexp") + (enableFeature (libkrb5 != null) "gssapi-krb5") + (enableFeature true "klog") + (enableFeature true "kmsg") + (enableFeature (systemd != null) "imjournal") + (enableFeature true "inet") + (enableFeature (jemalloc != null) "jemalloc") + (enableFeature true "unlimited-select") + (enableFeature false "debug") + (enableFeature false "debug-symbols") + (enableFeature true "debugless") + (enableFeature false "valgrind") + (enableFeature false "diagtools") + (enableFeature true "usertools") + (enableFeature (libmysqlclient != null) "mysql") + (enableFeature (postgresql != null) "pgsql") + (enableFeature (libdbi != null) "libdbi") + (enableFeature (net-snmp != null) "snmp") + (enableFeature (libuuid != null) "uuid") + (enableFeature (curl != null) "elasticsearch") + (enableFeature (gnutls != null) "gnutls") + (enableFeature (libgcrypt != null) "libgcrypt") + (enableFeature true "rsyslogrt") + (enableFeature true "rsyslogd") + (enableFeature true "mail") + (enableFeature (liblognorm != null) "mmnormalize") + (enableFeature (libmaxminddb != null) "mmdblookup") + (enableFeature true "mmjsonparse") + (enableFeature true "mmaudit") + (enableFeature true "mmanon") + (enableFeature true "mmutf8fix") + (enableFeature true "mmcount") + (enableFeature true "mmsequence") + (enableFeature true "mmfields") + (enableFeature true "mmpstrucdata") + (enableFeature (openssl != null) "mmrfc5424addhmac") + (enableFeature (librelp != null) "relp") + (enableFeature (libksi != null) "ksi-ls12") + (enableFeature (liblogging != null) "liblogging-stdlog") + (enableFeature (liblogging != null) "rfc3195") + (enableFeature true "imfile") + (enableFeature false "imsolaris") + (enableFeature true "imptcp") + (enableFeature true "impstats") + (enableFeature true "omprog") + (enableFeature (libnet != null) "omudpspoof") + (enableFeature true "omstdout") + (enableFeature (systemd != null) "omjournal") + (enableFeature true "pmlastmsg") + (enableFeature true "pmcisconames") + (enableFeature true "pmciscoios") + (enableFeature true "pmaixforwardedfrom") + (enableFeature true "pmsnare") + (enableFeature true "omruleset") + (enableFeature true "omuxsock") + (enableFeature true "mmsnmptrapd") + (enableFeature (hadoop != null) "omhdfs") + (enableFeature (rdkafka != null) "omkafka") + (enableFeature (libmongo-client != null) "ommongodb") + (enableFeature (czmq != null) "imczmq") + (enableFeature (czmq != null) "omczmq") + (enableFeature (rabbitmq-c != null) "omrabbitmq") + (enableFeature (hiredis != null) "omhiredis") + (enableFeature (curl != null) "omhttpfs") + (enableFeature true "generate-man-pages") ]; passthru.tests = {