Merge pull request #212812 from Shawn8901/remove_with_lib_3

treewide: remove global with lib; statements in pkgs/development
This commit is contained in:
Weijia Wang 2023-01-27 04:49:58 +01:00 committed by GitHub
commit ac7a109da4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
84 changed files with 391 additions and 524 deletions

View file

@ -17,8 +17,6 @@
, ... , ...
}@attrs: }@attrs:
with lib;
let let
debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "+debug_info"; debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "+debug_info";
@ -107,4 +105,4 @@ let
}; };
}); });
in in
fix pkg lib.fix pkg

View file

@ -5,8 +5,6 @@
, hexPkg ? name , hexPkg ? name
, ... }@attrs: , ... }@attrs:
with lib;
let let
pkg = self: builder (attrs // { pkg = self: builder (attrs // {
@ -17,4 +15,4 @@ let
}; };
}); });
in in
fix pkg lib.fix pkg

View file

@ -15,7 +15,6 @@
, ... , ...
}@attrs: }@attrs:
with lib;
let let
shell = drv: stdenv.mkDerivation { shell = drv: stdenv.mkDerivation {
name = "interactive-shell-${drv.name}"; name = "interactive-shell-${drv.name}";
@ -90,5 +89,5 @@ let
}; };
}); });
in in
fix pkg lib.fix pkg

View file

@ -16,8 +16,6 @@
, ... , ...
}@attrs: }@attrs:
with lib;
let let
debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info"; debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "debug-info";
@ -30,7 +28,7 @@ let
buildInputs = [ drv ]; buildInputs = [ drv ];
}; };
customPhases = filterAttrs customPhases = lib.filterAttrs
(_: v: v != null) (_: v: v != null)
{ inherit setupHook configurePhase buildPhase installPhase; }; { inherit setupHook configurePhase buildPhase installPhase; };
@ -40,7 +38,7 @@ let
inherit version; inherit version;
buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ]; buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ];
propagatedBuildInputs = unique beamDeps; propagatedBuildInputs = lib.unique beamDeps;
inherit src; inherit src;
@ -85,4 +83,4 @@ let
}; };
} // customPhases); } // customPhases);
in in
fix pkg lib.fix pkg

View file

@ -6,8 +6,6 @@
, meta ? { } , meta ? { }
}: }:
with lib;
stdenv.mkDerivation ({ stdenv.mkDerivation ({
pname = "hex-source-${pkg}"; pname = "hex-source-${pkg}";
inherit version; inherit version;

View file

@ -7,8 +7,6 @@
, meta ? { } , meta ? { }
}: }:
with lib;
stdenv.mkDerivation ({ stdenv.mkDerivation ({
pname = "rebar-deps-${name}"; pname = "rebar-deps-${name}";
inherit version; inherit version;

View file

@ -22,15 +22,13 @@
, ... , ...
}@attrs: }@attrs:
with lib;
let let
shell = drv: stdenv.mkDerivation { shell = drv: stdenv.mkDerivation {
name = "interactive-shell-${drv.pname}"; name = "interactive-shell-${drv.pname}";
buildInputs = [ drv ]; buildInputs = [ drv ];
}; };
customPhases = filterAttrs customPhases = lib.filterAttrs
(_: v: v != null) (_: v: v != null)
{ inherit setupHook configurePhase buildPhase installPhase; }; { inherit setupHook configurePhase buildPhase installPhase; };
@ -105,4 +103,4 @@ let
} // (if attrs ? passthru then attrs.passthru else { })); } // (if attrs ? passthru then attrs.passthru else { }));
} // customPhases); } // customPhases);
in in
fix pkg lib.fix pkg

View file

@ -3,7 +3,6 @@
, bison, flex , bison, flex
, makeWrapper }: , makeWrapper }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "intercal"; pname = "intercal";
@ -31,7 +30,7 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/ick --suffix PATH ':' ${stdenv.cc}/bin wrapProgram $out/bin/ick --suffix PATH ':' ${stdenv.cc}/bin
''; '';
meta = { meta = with lib; {
description = "The original esoteric programming language"; description = "The original esoteric programming language";
longDescription = '' longDescription = ''
INTERCAL, an abbreviation for "Compiler Language With No INTERCAL, an abbreviation for "Compiler Language With No

View file

@ -1,8 +1,6 @@
{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, writeScript { stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, writeScript
, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }: , common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }:
with lib;
let let
repo = "git@github.com:scala/scala.git"; repo = "git@github.com:scala/scala.git";
@ -102,7 +100,7 @@ stdenv.mkDerivation rec {
''; '';
}; };
meta = { meta = with lib; {
description = "A general purpose programming language"; description = "A general purpose programming language";
longDescription = '' longDescription = ''
Scala is a general purpose programming language designed to express Scala is a general purpose programming language designed to express

View file

@ -1,11 +1,9 @@
{ lib, stdenv, fetchurl, autoconf, bison, boost, flex, texinfo, zlib, gputils ? null { lib, stdenv, fetchurl, autoconf, bison, boost, flex, texinfo, zlib, gputils ? null
, excludePorts ? [] }: , excludePorts ? [] }:
with lib;
let let
# choices: mcs51 z80 z180 r2k r3ka gbz80 tlcs90 ds390 ds400 pic14 pic16 hc08 s08 stm8 # choices: mcs51 z80 z180 r2k r3ka gbz80 tlcs90 ds390 ds400 pic14 pic16 hc08 s08 stm8
excludedPorts = excludePorts ++ (optionals (gputils == null) [ "pic14" "pic16" ]); excludedPorts = excludePorts ++ (lib.optionals (gputils == null) [ "pic14" "pic16" ]);
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -29,7 +27,7 @@ stdenv.mkDerivation rec {
fi fi
''; '';
meta = { meta = with lib; {
description = "Small Device C Compiler"; description = "Small Device C Compiler";
longDescription = '' longDescription = ''
SDCC is a retargettable, optimizing ANSI - C compiler suite that targets SDCC is a retargettable, optimizing ANSI - C compiler suite that targets

View file

@ -1,6 +1,5 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, doxygen, cmake, readline }: { lib, stdenv, fetchFromGitHub, pkg-config, doxygen, cmake, readline }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lolcode"; pname = "lolcode";
@ -19,7 +18,7 @@ stdenv.mkDerivation rec {
# Maybe it clashes with lci scientific logic software package... # Maybe it clashes with lci scientific logic software package...
postInstall = "mv $out/bin/lci $out/bin/lolcode-lci"; postInstall = "mv $out/bin/lci $out/bin/lolcode-lci";
meta = { meta = with lib; {
homepage = "http://lolcode.org"; homepage = "http://lolcode.org";
description = "An esoteric programming language"; description = "An esoteric programming language";
longDescription = '' longDescription = ''

View file

@ -12,8 +12,6 @@ assert (enableCrypt -> (libxcrypt != null));
# cgit) that are needed here should be included directly in Nixpkgs as # cgit) that are needed here should be included directly in Nixpkgs as
# files. # files.
with lib;
let let
libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr"; libc = if stdenv.cc.libc or null != null then stdenv.cc.libc else "/usr";
@ -33,7 +31,7 @@ let
strictDeps = true; strictDeps = true;
# TODO: Add a "dev" output containing the header files. # TODO: Add a "dev" output containing the header files.
outputs = [ "out" "man" "devdoc" ] ++ outputs = [ "out" "man" "devdoc" ] ++
optional crossCompiling "mini"; lib.optional crossCompiling "mini";
setOutputFlags = false; setOutputFlags = false;
# On FreeBSD, if Perl is built with threads support, having # On FreeBSD, if Perl is built with threads support, having
@ -57,9 +55,9 @@ let
# Enable TLS/SSL verification in HTTP::Tiny by default # Enable TLS/SSL verification in HTTP::Tiny by default
./http-tiny-verify-ssl-by-default.patch ./http-tiny-verify-ssl-by-default.patch
] ]
++ optional stdenv.isSunOS ./ld-shared.patch ++ lib.optional stdenv.isSunOS ./ld-shared.patch
++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] ++ lib.optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
++ optional crossCompiling ./MakeMaker-cross.patch; ++ lib.optional crossCompiling ./MakeMaker-cross.patch;
# This is not done for native builds because pwd may need to come from # This is not done for native builds because pwd may need to come from
# bootstrap tools when building bootstrap perl. # bootstrap tools when building bootstrap perl.
@ -93,18 +91,18 @@ let
"-Dlocincpth=${libcInc}/include" "-Dlocincpth=${libcInc}/include"
"-Dloclibpth=${libcLib}/lib" "-Dloclibpth=${libcLib}/lib"
] ]
++ optionals ((builtins.match ''5\.[0-9]*[13579]\..+'' version) != null) [ "-Dusedevel" "-Uversiononly" ] ++ lib.optionals ((builtins.match ''5\.[0-9]*[13579]\..+'' version) != null) [ "-Dusedevel" "-Uversiononly" ]
++ optional stdenv.isSunOS "-Dcc=gcc" ++ lib.optional stdenv.isSunOS "-Dcc=gcc"
++ optional enableThreading "-Dusethreads" ++ lib.optional enableThreading "-Dusethreads"
++ optional (!enableCrypt) "-A clear:d_crypt_r" ++ lib.optional (!enableCrypt) "-A clear:d_crypt_r"
++ optional stdenv.hostPlatform.isStatic "--all-static" ++ lib.optional stdenv.hostPlatform.isStatic "--all-static"
++ optionals (!crossCompiling) [ ++ lib.optionals (!crossCompiling) [
"-Dprefix=${placeholder "out"}" "-Dprefix=${placeholder "out"}"
"-Dman1dir=${placeholder "out"}/share/man/man1" "-Dman1dir=${placeholder "out"}/share/man/man1"
"-Dman3dir=${placeholder "out"}/share/man/man3" "-Dman3dir=${placeholder "out"}/share/man/man3"
]; ];
configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; configureScript = lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure";
dontAddStaticConfigureFlags = true; dontAddStaticConfigureFlags = true;
@ -138,9 +136,9 @@ let
OLD_ZLIB = False OLD_ZLIB = False
GZIP_OS_CODE = AUTO_DETECT GZIP_OS_CODE = AUTO_DETECT
EOF EOF
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" "" substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
'' + optionalString (!enableThreading) '' '' + lib.optionalString (!enableThreading) ''
# We need to do this because the bootstrap doesn't have a static libpthread # We need to do this because the bootstrap doesn't have a static libpthread
sed -i 's,\(libswanted.*\)pthread,\1,g' Configure sed -i 's,\(libswanted.*\)pthread,\1,g' Configure
''; '';
@ -183,7 +181,7 @@ let
}" /no-such-path \ }" /no-such-path \
--replace "${stdenv.cc}" /no-such-path \ --replace "${stdenv.cc}" /no-such-path \
--replace "$man" /no-such-path --replace "$man" /no-such-path
'' + optionalString crossCompiling '' + lib.optionalString crossCompiling
'' ''
mkdir -p $mini/lib/perl5/cross_perl/${version} mkdir -p $mini/lib/perl5/cross_perl/${version}
for dir in cnf/{stub,cpan}; do for dir in cnf/{stub,cpan}; do
@ -207,7 +205,7 @@ let
"$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch" "$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
''; # */ ''; # */
meta = { meta = with lib; {
homepage = "https://www.perl.org/"; homepage = "https://www.perl.org/";
description = "The standard implementation of the Perl 5 programmming language"; description = "The standard implementation of the Perl 5 programmming language";
license = licenses.artistic1; license = licenses.artistic1;
@ -215,7 +213,7 @@ let
platforms = platforms.all; platforms = platforms.all;
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
}; };
} // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { } // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022 crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022
perl-cross-src = fetchFromGitHub { perl-cross-src = fetchFromGitHub {

View file

@ -1,5 +1,4 @@
{ lib, stdenv, fetchurl, jdk, w3m, openssl, makeWrapper }: { lib, stdenv, fetchurl, jdk, w3m, openssl, makeWrapper }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "picoLisp"; pname = "picoLisp";
@ -9,11 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "0l51x98bn1hh6kv40sdgp0x09pzg5i8yxbcjvm9n5bxsd6bbk5w2"; sha256 = "0l51x98bn1hh6kv40sdgp0x09pzg5i8yxbcjvm9n5bxsd6bbk5w2";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [openssl] ++ optional stdenv.is64bit jdk; buildInputs = [openssl] ++ lib.optional stdenv.is64bit jdk;
patchPhase = '' patchPhase = ''
sed -i "s/which java/command -v java/g" mkAsm sed -i "s/which java/command -v java/g" mkAsm
${optionalString stdenv.isAarch32 '' ${lib.optionalString stdenv.isAarch32 ''
sed -i s/-m32//g Makefile sed -i s/-m32//g Makefile
cat >>Makefile <<EOF cat >>Makefile <<EOF
ext.o: ext.c ext.o: ext.c
@ -23,7 +22,7 @@ stdenv.mkDerivation rec {
EOF EOF
''} ''}
''; '';
sourceRoot = ''picoLisp/src${optionalString stdenv.is64bit "64"}''; sourceRoot = ''picoLisp/src${lib.optionalString stdenv.is64bit "64"}'';
postBuild = '' postBuild = ''
cd ../src; make gate cd ../src; make gate
''; '';
@ -49,7 +48,7 @@ stdenv.mkDerivation rec {
ln -s "$out/lib/picolisp/lib/el" "$out/share/emacs/site-lisp" ln -s "$out/lib/picolisp/lib/el" "$out/share/emacs/site-lisp"
''; '';
meta = { meta = with lib; {
# darwin: build times out # darwin: build times out
broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
description = "A simple Lisp with an integrated database"; description = "A simple Lisp with an integrated database";

View file

@ -54,8 +54,6 @@ assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations))
assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode)) assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode))
"Deterministic builds are not achieved when (default unoptimized) bytecode is created."; "Deterministic builds are not achieved when (default unoptimized) bytecode is created.";
with lib;
let let
buildPackages = pkgsBuildHost; buildPackages = pkgsBuildHost;
inherit (passthru) pythonForBuild; inherit (passthru) pythonForBuild;
@ -133,9 +131,9 @@ let
# * https://github.com/python/cpython/commit/e6b247c8e524 # * https://github.com/python/cpython/commit/e6b247c8e524
../3.7/no-win64-workaround.patch ../3.7/no-win64-workaround.patch
] ++ optionals (x11Support && stdenv.isDarwin) [ ] ++ lib.optionals (x11Support && stdenv.isDarwin) [
./use-correct-tcl-tk-on-darwin.patch ./use-correct-tcl-tk-on-darwin.patch
] ++ optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
# Disable the use of ldconfig in ctypes.util.find_library (since # Disable the use of ldconfig in ctypes.util.find_library (since
# ldconfig doesn't work on NixOS), and don't use # ldconfig doesn't work on NixOS), and don't use
@ -147,7 +145,7 @@ let
# Fix ctypes.util.find_library with gcc10. # Fix ctypes.util.find_library with gcc10.
./find_library-gcc10.patch ./find_library-gcc10.patch
] ++ optionals stdenv.hostPlatform.isCygwin [ ] ++ lib.optionals stdenv.hostPlatform.isCygwin [
./2.5.2-ctypes-util-find_library.patch ./2.5.2-ctypes-util-find_library.patch
./2.5.2-tkinter-x11.patch ./2.5.2-tkinter-x11.patch
./2.6.2-ssl-threads.patch ./2.6.2-ssl-threads.patch
@ -158,7 +156,7 @@ let
./2.7.3-dylib.patch ./2.7.3-dylib.patch
./2.7.3-getpath-exe-extension.patch ./2.7.3-getpath-exe-extension.patch
./2.7.3-no-libm.patch ./2.7.3-no-libm.patch
] ++ optionals hasDistutilsCxxPatch [ ] ++ lib.optionals hasDistutilsCxxPatch [
# Patch from http://bugs.python.org/issue1222585 adapted to work with # Patch from http://bugs.python.org/issue1222585 adapted to work with
# `patch -p1' and with a last hunk removed # `patch -p1' and with a last hunk removed
@ -166,7 +164,7 @@ let
# only works for GCC and Apple Clang. This makes distutils to call C++ # only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed. # compiler when needed.
./python-2.7-distutils-C++.patch ./python-2.7-distutils-C++.patch
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
./cross-compile.patch ./cross-compile.patch
]; ];
@ -175,31 +173,31 @@ let
for i in /usr /sw /opt /pkg; do for i in /usr /sw /opt /pkg; do
substituteInPlace ./setup.py --replace $i /no-such-path substituteInPlace ./setup.py --replace $i /no-such-path
done done
'' + optionalString (stdenv ? cc && stdenv.cc.libc != null) '' '' + lib.optionalString (stdenv ? cc && stdenv.cc.libc != null) ''
for i in Lib/plat-*/regen; do for i in Lib/plat-*/regen; do
substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/ substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/
done done
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"' substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
substituteInPlace Lib/multiprocessing/__init__.py \ substituteInPlace Lib/multiprocessing/__init__.py \
--replace 'os.popen(comm)' 'os.popen("${coreutils}/bin/nproc")' --replace 'os.popen(comm)' 'os.popen("${coreutils}/bin/nproc")'
''; '';
configureFlags = optionals enableOptimizations [ configureFlags = lib.optionals enableOptimizations [
"--enable-optimizations" "--enable-optimizations"
] ++ optionals (!static) [ ] ++ lib.optionals (!static) [
"--enable-shared" "--enable-shared"
] ++ [ ] ++ [
"--with-threads" "--with-threads"
"--with-system-ffi" "--with-system-ffi"
"--with-system-expat" "--with-system-expat"
"--enable-unicode=ucs${toString ucsEncoding}" "--enable-unicode=ucs${toString ucsEncoding}"
] ++ optionals stdenv.hostPlatform.isCygwin [ ] ++ lib.optionals stdenv.hostPlatform.isCygwin [
"ac_cv_func_bind_textdomain_codeset=yes" "ac_cv_func_bind_textdomain_codeset=yes"
] ++ optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
"--disable-toolbox-glue" "--disable-toolbox-glue"
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"PYTHON_FOR_BUILD=${getBin buildPackages.python}/bin/python" "PYTHON_FOR_BUILD=${lib.getBin buildPackages.python}/bin/python"
"ac_cv_buggy_getaddrinfo=no" "ac_cv_buggy_getaddrinfo=no"
# Assume little-endian IEEE 754 floating point when cross compiling # Assume little-endian IEEE 754 floating point when cross compiling
"ac_cv_little_endian_double=yes" "ac_cv_little_endian_double=yes"
@ -223,23 +221,23 @@ let
] ]
# Never even try to use lchmod on linux, # Never even try to use lchmod on linux,
# don't rely on detecting glibc-isms. # don't rely on detecting glibc-isms.
++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no" ++ lib.optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no"
++ optional static "LDFLAGS=-static"; ++ lib.optional static "LDFLAGS=-static";
strictDeps = true; strictDeps = true;
buildInputs = buildInputs =
optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++ lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++
[ bzip2 openssl zlib libffi expat db gdbm ncurses sqlite readline ] [ bzip2 openssl zlib libffi expat db gdbm ncurses sqlite readline ]
++ optionals x11Support [ tcl tk libX11 ] ++ lib.optionals x11Support [ tcl tk libX11 ]
++ optional (stdenv.isDarwin && configd != null) configd; ++ lib.optional (stdenv.isDarwin && configd != null) configd;
nativeBuildInputs = nativeBuildInputs =
[ autoreconfHook ] [ autoreconfHook ]
++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform)
[ buildPackages.stdenv.cc buildPackages.python ]; [ buildPackages.stdenv.cc buildPackages.python ];
mkPaths = paths: { mkPaths = paths: {
C_INCLUDE_PATH = makeSearchPathOutput "dev" "include" paths; C_INCLUDE_PATH = lib.makeSearchPathOutput "dev" "include" paths;
LIBRARY_PATH = makeLibraryPath paths; LIBRARY_PATH = lib.makeLibraryPath paths;
}; };
# Python 2.7 needs this # Python 2.7 needs this
@ -258,13 +256,13 @@ in with passthru; stdenv.mkDerivation ({
LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH; inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH;
NIX_CFLAGS_COMPILE = optionalString (stdenv.targetPlatform.system == "x86_64-darwin") "-msse2" NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.targetPlatform.system == "x86_64-darwin") "-msse2"
+ optionalString stdenv.hostPlatform.isMusl " -DTHREAD_STACK_SIZE=0x100000"; + lib.optionalString stdenv.hostPlatform.isMusl " -DTHREAD_STACK_SIZE=0x100000";
DETERMINISTIC_BUILD = 1; DETERMINISTIC_BUILD = 1;
setupHook = python-setup-hook sitePackages; setupHook = python-setup-hook sitePackages;
postPatch = optionalString (x11Support && (tix != null)) '' postPatch = lib.optionalString (x11Support && (tix != null)) ''
substituteInPlace "Lib/lib-tk/Tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" substituteInPlace "Lib/lib-tk/Tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
''; '';
@ -291,18 +289,18 @@ in with passthru; stdenv.mkDerivation ({
# Determinism: Windows installers were not deterministic. # Determinism: Windows installers were not deterministic.
# We're also not interested in building Windows installers. # We're also not interested in building Windows installers.
find "$out" -name 'wininst*.exe' | xargs -r rm -f find "$out" -name 'wininst*.exe' | xargs -r rm -f
'' + optionalString stripBytecode '' '' + lib.optionalString stripBytecode ''
# Determinism: deterministic bytecode # Determinism: deterministic bytecode
# First we delete all old bytecode. # First we delete all old bytecode.
find $out -name "*.pyc" -delete find $out -name "*.pyc" -delete
'' + optionalString rebuildBytecode '' '' + lib.optionalString rebuildBytecode ''
# We build 3 levels of optimized bytecode. Note the default level, without optimizations, # We build 3 levels of optimized bytecode. Note the default level, without optimizations,
# is not reproducible yet. https://bugs.python.org/issue29708 # is not reproducible yet. https://bugs.python.org/issue29708
# Not creating bytecode will result in a large performance loss however, so we do build it. # Not creating bytecode will result in a large performance loss however, so we do build it.
find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i -
find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
'' + optionalString stdenv.hostPlatform.isCygwin '' '' + lib.optionalString stdenv.hostPlatform.isCygwin ''
cp libpython2.7.dll.a $out/lib cp libpython2.7.dll.a $out/lib
''; '';
@ -311,14 +309,14 @@ in with passthru; stdenv.mkDerivation ({
postFixup = '' postFixup = ''
# Include a sitecustomize.py file. Note it causes an error when it's in postInstall with 2.7. # Include a sitecustomize.py file. Note it causes an error when it's in postInstall with 2.7.
cp ${../../sitecustomize.py} $out/${sitePackages}/sitecustomize.py cp ${../../sitecustomize.py} $out/${sitePackages}/sitecustomize.py
'' + optionalString strip2to3 '' '' + lib.optionalString strip2to3 ''
rm -R $out/bin/2to3 $out/lib/python*/lib2to3 rm -R $out/bin/2to3 $out/lib/python*/lib2to3
'' + optionalString stripConfig '' '' + lib.optionalString stripConfig ''
rm -R $out/bin/python*-config $out/lib/python*/config* rm -R $out/bin/python*-config $out/lib/python*/config*
'' + optionalString stripIdlelib '' '' + lib.optionalString stripIdlelib ''
# Strip IDLE # Strip IDLE
rm -R $out/bin/idle* $out/lib/python*/idlelib rm -R $out/bin/idle* $out/lib/python*/idlelib
'' + optionalString stripTests '' '' + lib.optionalString stripTests ''
# Strip tests # Strip tests
rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} rm -R $out/lib/python*/test $out/lib/python*/**/test{,s}
''; '';

View file

@ -3,8 +3,6 @@
, makePythonHook , makePythonHook
, makeWrapper }: , makeWrapper }:
with lib;
makePythonHook { makePythonHook {
deps = makeWrapper; deps = makeWrapper;
substitutions.sitePackages = python.sitePackages; substitutions.sitePackages = python.sitePackages;
@ -19,7 +17,7 @@ makePythonHook {
mkStringSkipper = labelNum: quote: let mkStringSkipper = labelNum: quote: let
label = "q${toString labelNum}"; label = "q${toString labelNum}";
isSingle = elem quote [ "\"" "'\"'\"'" ]; isSingle = lib.elem quote [ "\"" "'\"'\"'" ];
endQuote = if isSingle then "[^\\\\]${quote}" else quote; endQuote = if isSingle then "[^\\\\]${quote}" else quote;
in '' in ''
/^[a-z]?${quote}/ { /^[a-z]?${quote}/ {
@ -45,8 +43,8 @@ makePythonHook {
:r :r
/\\$|,$/{N;br} /\\$|,$/{N;br}
/__future__|^ |^ *(#.*)?$/{n;br} /__future__|^ |^ *(#.*)?$/{n;br}
${concatImapStrings mkStringSkipper quoteVariants} ${lib.concatImapStrings mkStringSkipper quoteVariants}
/^[^# ]/i ${replaceStrings ["\n"] [";"] preamble} /^[^# ]/i ${lib.replaceStrings ["\n"] [";"] preamble}
} }
''; '';
} ./wrap.sh } ./wrap.sh

View file

@ -1,6 +1,6 @@
# Contains the ruby version heuristics # Contains the ruby version heuristics
{ lib }: { lib }:
with lib;
let let
# The returned set should be immutable # The returned set should be immutable
rubyVersion = major: minor: tiny: tail: rubyVersion = major: minor: tiny: tail:
@ -10,15 +10,15 @@ let
# Contains the patch number "223" if tail is "p223" or null # Contains the patch number "223" if tail is "p223" or null
patchLevel = patchLevel =
let let
p = removePrefix "p" tail; p = lib.removePrefix "p" tail;
isPosInt = num: isPosInt = num:
0 == stringLength 0 == lib.stringLength
(replaceStrings (lib.replaceStrings
["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"] ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"]
["" "" "" "" "" "" "" "" "" "" ] ["" "" "" "" "" "" "" "" "" "" ]
num); num);
in in
if hasPrefix "p" tail && isPosInt p then p if lib.hasPrefix "p" tail && isPosInt p then p
else null; else null;
# Shortcuts # Shortcuts
@ -28,11 +28,11 @@ let
# Ruby separates lib and gem folders by ABI version which isn't very # Ruby separates lib and gem folders by ABI version which isn't very
# consistent. # consistent.
libDir = libDir =
if versionAtLeast majMinTiny "2.1.0" then if lib.versionAtLeast majMinTiny "2.1.0" then
"${majMin}.0" "${majMin}.0"
else if versionAtLeast majMinTiny "2.0.0" then else if lib.versionAtLeast majMinTiny "2.0.0" then
"2.0.0" "2.0.0"
else if versionAtLeast majMinTiny "1.9.1" then else if lib.versionAtLeast majMinTiny "1.9.1" then
"1.9.1" "1.9.1"
else else
throw "version ${majMinTiny} is not supported"; throw "version ${majMinTiny} is not supported";

View file

@ -1,6 +1,5 @@
{ lib, pkgs }: { lib, pkgs }:
with lib;
with pkgs.javaPackages; with pkgs.javaPackages;
let let
@ -10,7 +9,7 @@ let
poms = import ./poms.nix { inherit fetchMaven; }; poms = import ./poms.nix { inherit fetchMaven; };
in { in {
# Maven needs all of these to function # Maven needs all of these to function
mavenMinimal = flatten mavenMinimal = lib.flatten
collections.mavenLibs_2_0_6 collections.mavenLibs_2_0_6
++ collections.mavenLibs_2_0_9 ++ collections.mavenLibs_2_0_9
++ collections.mavenLibs_2_2_1 ++ collections.mavenLibs_2_2_1

View file

@ -11,17 +11,15 @@
# NOTE: When editing this expression see if the same change applies to # NOTE: When editing this expression see if the same change applies to
# SDL2 expression too # SDL2 expression too
with lib;
let let
extraPropagatedBuildInputs = [ ] extraPropagatedBuildInputs = [ ]
++ optionals x11Support [ libXext libICE libXrandr ] ++ lib.optionals x11Support [ libXext libICE libXrandr ]
++ optionals (openglSupport && stdenv.isLinux) [ libGL libGLU ] ++ lib.optionals (openglSupport && stdenv.isLinux) [ libGL libGLU ]
++ optionals (openglSupport && stdenv.isDarwin) [ OpenGL GLUT ] ++ lib.optionals (openglSupport && stdenv.isDarwin) [ OpenGL GLUT ]
++ optional alsaSupport alsa-lib ++ lib.optional alsaSupport alsa-lib
++ optional pulseaudioSupport libpulseaudio ++ lib.optional pulseaudioSupport libpulseaudio
++ optional stdenv.isDarwin Cocoa; ++ lib.optional stdenv.isDarwin Cocoa;
rpath = makeLibraryPath extraPropagatedBuildInputs; rpath = lib.makeLibraryPath extraPropagatedBuildInputs;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -40,13 +38,13 @@ stdenv.mkDerivation rec {
outputBin = "dev"; # sdl-config outputBin = "dev"; # sdl-config
nativeBuildInputs = [ pkg-config ] nativeBuildInputs = [ pkg-config ]
++ optional stdenv.isLinux libcap; ++ lib.optional stdenv.isLinux libcap;
propagatedBuildInputs = [ libiconv ] ++ extraPropagatedBuildInputs; propagatedBuildInputs = [ libiconv ] ++ extraPropagatedBuildInputs;
buildInputs = [ ] buildInputs = [ ]
++ optional (!stdenv.hostPlatform.isMinGW && alsaSupport) audiofile ++ lib.optional (!stdenv.hostPlatform.isMinGW && alsaSupport) audiofile
++ optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreServices Kernel OpenGL ]; ++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreServices Kernel OpenGL ];
configureFlags = [ configureFlags = [
"--disable-oss" "--disable-oss"
@ -58,9 +56,9 @@ stdenv.mkDerivation rec {
# SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) # SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
# #
# Please try revert the change that introduced this comment when updating SDL. # Please try revert the change that introduced this comment when updating SDL.
] ++ optional stdenv.isDarwin "--disable-x11-shared" ] ++ lib.optional stdenv.isDarwin "--disable-x11-shared"
++ optional (!x11Support) "--without-x" ++ lib.optional (!x11Support) "--without-x"
++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"; ++ lib.optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib";
patches = [ patches = [
./find-headers.patch ./find-headers.patch

View file

@ -55,8 +55,6 @@
# NOTE: When editing this expression see if the same change applies to # NOTE: When editing this expression see if the same change applies to
# SDL expression too # SDL expression too
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "SDL2"; pname = "SDL2";
version = "2.24.2"; version = "2.24.2";
@ -88,40 +86,40 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ pkg-config ]; depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ pkg-config ] ++ optionals waylandSupport [ wayland wayland-scanner ]; nativeBuildInputs = [ pkg-config ] ++ lib.optionals waylandSupport [ wayland wayland-scanner ];
propagatedBuildInputs = dlopenPropagatedBuildInputs; propagatedBuildInputs = dlopenPropagatedBuildInputs;
dlopenPropagatedBuildInputs = [ ] dlopenPropagatedBuildInputs = [ ]
# Propagated for #include <GLES/gl.h> in SDL_opengles.h. # Propagated for #include <GLES/gl.h> in SDL_opengles.h.
++ optional openglSupport libGL ++ lib.optional openglSupport libGL
# Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h. # Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h.
++ optionals x11Support [ libX11 xorgproto ]; ++ lib.optionals x11Support [ libX11 xorgproto ];
dlopenBuildInputs = optionals alsaSupport [ alsa-lib audiofile ] dlopenBuildInputs = lib.optionals alsaSupport [ alsa-lib audiofile ]
++ optional dbusSupport dbus ++ lib.optional dbusSupport dbus
++ optional libdecorSupport libdecor ++ lib.optional libdecorSupport libdecor
++ optional pipewireSupport pipewire ++ lib.optional pipewireSupport pipewire
++ optional pulseaudioSupport libpulseaudio ++ lib.optional pulseaudioSupport libpulseaudio
++ optional udevSupport udev ++ lib.optional udevSupport udev
++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ] ++ lib.optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ]
++ optionals drmSupport [ libdrm mesa ]; ++ lib.optionals drmSupport [ libdrm mesa ];
buildInputs = [ libiconv ] buildInputs = [ libiconv ]
++ dlopenBuildInputs ++ dlopenBuildInputs
++ optional ibusSupport ibus ++ lib.optional ibusSupport ibus
++ optional fcitxSupport fcitx ++ lib.optional fcitxSupport fcitx
++ optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ]; ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
enableParallelBuilding = true; enableParallelBuilding = true;
configureFlags = [ configureFlags = [
"--disable-oss" "--disable-oss"
] ++ optional (!x11Support) "--without-x" ] ++ lib.optional (!x11Support) "--without-x"
++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib" ++ lib.optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles" ++ lib.optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
++ optional stdenv.isDarwin "--disable-sdltest"; ++ lib.optional stdenv.isDarwin "--disable-sdltest";
# We remove libtool .la files when static libs are requested, # We remove libtool .la files when static libs are requested,
# because they make the builds of downstream libs like `SDL_tff` # because they make the builds of downstream libs like `SDL_tff`
@ -156,9 +154,9 @@ stdenv.mkDerivation rec {
# list the symbols used in this way. # list the symbols used in this way.
postFixup = postFixup =
let let
rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs); rpath = lib.makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs);
in in
optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") '' lib.optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") ''
for lib in $out/lib/*.so* ; do for lib in $out/lib/*.so* ; do
if ! [[ -L "$lib" ]]; then if ! [[ -L "$lib" ]]; then
patchelf --set-rpath "$(patchelf --print-rpath $lib):${rpath}" "$lib" patchelf --set-rpath "$(patchelf --print-rpath $lib):${rpath}" "$lib"

View file

@ -10,8 +10,6 @@ assert sslSupport -> openssl != null;
assert bdbSupport -> db != null; assert bdbSupport -> db != null;
assert ldapSupport -> openldap != null; assert ldapSupport -> openldap != null;
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "apr-util"; pname = "apr-util";
version = "1.6.1"; version = "1.6.1";
@ -22,21 +20,21 @@ stdenv.mkDerivation rec {
}; };
patches = [ ./fix-libxcrypt-build.patch ] patches = [ ./fix-libxcrypt-build.patch ]
++ optional stdenv.isFreeBSD ./include-static-dependencies.patch; ++ lib.optional stdenv.isFreeBSD ./include-static-dependencies.patch;
NIX_CFLAGS_LINK = [ "-lcrypt" ]; NIX_CFLAGS_LINK = [ "-lcrypt" ];
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
outputBin = "dev"; outputBin = "dev";
nativeBuildInputs = [ makeWrapper ] ++ optional stdenv.isFreeBSD autoreconfHook; nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isFreeBSD autoreconfHook;
configureFlags = [ "--with-apr=${apr.dev}" "--with-expat=${expat.dev}" ] configureFlags = [ "--with-apr=${apr.dev}" "--with-expat=${expat.dev}" ]
++ optional (!stdenv.isCygwin) "--with-crypto" ++ lib.optional (!stdenv.isCygwin) "--with-crypto"
++ optional sslSupport "--with-openssl=${openssl.dev}" ++ lib.optional sslSupport "--with-openssl=${openssl.dev}"
++ optional bdbSupport "--with-berkeley-db=${db.dev}" ++ lib.optional bdbSupport "--with-berkeley-db=${db.dev}"
++ optional ldapSupport "--with-ldap=ldap" ++ lib.optional ldapSupport "--with-ldap=ldap"
++ optionals stdenv.isCygwin ++ lib.optionals stdenv.isCygwin
[ "--without-pgsql" "--without-sqlite2" "--without-sqlite3" [ "--without-pgsql" "--without-sqlite2" "--without-sqlite3"
"--without-freetds" "--without-berkeley-db" "--without-crypto" ] "--without-freetds" "--without-berkeley-db" "--without-crypto" ]
; ;
@ -53,10 +51,10 @@ stdenv.mkDerivation rec {
''; '';
propagatedBuildInputs = [ apr expat libiconv libxcrypt ] propagatedBuildInputs = [ apr expat libiconv libxcrypt ]
++ optional sslSupport openssl ++ lib.optional sslSupport openssl
++ optional bdbSupport db ++ lib.optional bdbSupport db
++ optional ldapSupport openldap ++ lib.optional ldapSupport openldap
++ optional stdenv.isFreeBSD cyrus_sasl; ++ lib.optional stdenv.isFreeBSD cyrus_sasl;
postInstall = '' postInstall = ''
for f in $out/lib/*.la $out/lib/apr-util-1/*.la $dev/bin/apu-1-config; do for f in $out/lib/*.la $out/lib/apr-util-1/*.la $dev/bin/apu-1-config; do

View file

@ -2,8 +2,6 @@
, version, sha256, ... , version, sha256, ...
}: }:
with lib;
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "asio"; pname = "asio";
inherit version; inherit version;
@ -17,7 +15,7 @@ stdenv.mkDerivation {
buildInputs = [ openssl ]; buildInputs = [ openssl ];
meta = { meta = with lib; {
homepage = "http://asio.sourceforge.net/"; homepage = "http://asio.sourceforge.net/";
description = "Cross-platform C++ library for network and low-level I/O programming"; description = "Cross-platform C++ library for network and low-level I/O programming";
license = licenses.boost; license = licenses.boost;

View file

@ -1,7 +1,5 @@
{lib, stdenv, fetchurl, aspell, which, writeScript}: {lib, stdenv, fetchurl, aspell, which, writeScript}:
with lib;
/* HOWTO: /* HOWTO:
* Add some of these to your profile or systemPackages. * Add some of these to your profile or systemPackages.
@ -105,7 +103,7 @@ let
homepage = "http://ftp.gnu.org/gnu/aspell/dict/0index.html"; homepage = "http://ftp.gnu.org/gnu/aspell/dict/0index.html";
} // (args.meta or {}); } // (args.meta or {});
} // lib.optionalAttrs (stdenv.isDarwin && elem language [ "is" "nb" ]) { } // lib.optionalAttrs (stdenv.isDarwin && lib.elem language [ "is" "nb" ]) {
# tar: Cannot open: Illegal byte sequence # tar: Cannot open: Illegal byte sequence
unpackPhase = '' unpackPhase = ''
runHook preUnpack runHook preUnpack
@ -115,7 +113,7 @@ let
runHook postUnpack runHook postUnpack
''; '';
postPatch = getAttr language { postPatch = lib.getAttr language {
is = '' is = ''
cp icelandic.alias íslenska.alias cp icelandic.alias íslenska.alias
sed -i 's/ .slenska\.alias/ íslenska.alias/g' Makefile.pre sed -i 's/ .slenska\.alias/ íslenska.alias/g' Makefile.pre
@ -137,7 +135,7 @@ let
preBuild = '' preBuild = ''
# Aspell can't handle multiple data-dirs # Aspell can't handle multiple data-dirs
# Copy everything we might possibly need # Copy everything we might possibly need
${concatMapStringsSep "\n" (p: '' ${lib.concatMapStringsSep "\n" (p: ''
cp -a ${p}/lib/aspell/* . cp -a ${p}/lib/aspell/* .
'') ([ aspell ] ++ langInputs)} '') ([ aspell ] ++ langInputs)}
export ASPELL_CONF="data-dir $(pwd)" export ASPELL_CONF="data-dir $(pwd)"

View file

@ -34,20 +34,19 @@ assert enableNumpy -> enablePython;
# Boost <1.69 can't be built on linux with clang >8, because pth was removed # Boost <1.69 can't be built on linux with clang >8, because pth was removed
assert with lib; (stdenv.isLinux && toolset == "clang" && versionAtLeast stdenv.cc.version "8.0.0") -> versionAtLeast version "1.69"; assert with lib; (stdenv.isLinux && toolset == "clang" && versionAtLeast stdenv.cc.version "8.0.0") -> versionAtLeast version "1.69";
with lib;
let let
variant = concatStringsSep "," variant = lib.concatStringsSep ","
(optional enableRelease "release" ++ (lib.optional enableRelease "release" ++
optional enableDebug "debug"); lib.optional enableDebug "debug");
threading = concatStringsSep "," threading = lib.concatStringsSep ","
(optional enableSingleThreaded "single" ++ (lib.optional enableSingleThreaded "single" ++
optional enableMultiThreaded "multi"); lib.optional enableMultiThreaded "multi");
link = concatStringsSep "," link = lib.concatStringsSep ","
(optional enableShared "shared" ++ (lib.optional enableShared "shared" ++
optional enableStatic "static"); lib.optional enableStatic "static");
runtime-link = if enableShared then "shared" else "static"; runtime-link = if enableShared then "shared" else "static";
@ -61,16 +60,16 @@ let
# [0]: https://github.com/boostorg/build/commit/0ef40cb86728f1cd804830fef89a6d39153ff632 # [0]: https://github.com/boostorg/build/commit/0ef40cb86728f1cd804830fef89a6d39153ff632
# [1]: https://github.com/boostorg/build/commit/316e26ca718afc65d6170029284521392524e4f8 # [1]: https://github.com/boostorg/build/commit/316e26ca718afc65d6170029284521392524e4f8
jobs = jobs =
if versionOlder version "1.58" then if lib.versionOlder version "1.58" then
"$(($NIX_BUILD_CORES<=64 ? $NIX_BUILD_CORES : 64))" "$(($NIX_BUILD_CORES<=64 ? $NIX_BUILD_CORES : 64))"
else if versionOlder version "1.65" then else if lib.versionOlder version "1.65" then
"$(($NIX_BUILD_CORES<=256 ? $NIX_BUILD_CORES : 256))" "$(($NIX_BUILD_CORES<=256 ? $NIX_BUILD_CORES : 256))"
else else
"$NIX_BUILD_CORES"; "$NIX_BUILD_CORES";
needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || (stdenv.isDarwin && enableShared); needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || (stdenv.isDarwin && enableShared);
b2Args = concatStringsSep " " ([ b2Args = lib.concatStringsSep " " ([
"--includedir=$dev/include" "--includedir=$dev/include"
"--libdir=$out/lib" "--libdir=$out/lib"
"-j${jobs}" "-j${jobs}"
@ -82,12 +81,12 @@ let
"-sEXPAT_LIBPATH=${expat.out}/lib" "-sEXPAT_LIBPATH=${expat.out}/lib"
# TODO: make this unconditional # TODO: make this unconditional
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform || ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform ||
# required on mips; see 61d9f201baeef4c4bb91ad8a8f5f89b747e0dfe4 # required on mips; see 61d9f201baeef4c4bb91ad8a8f5f89b747e0dfe4
(stdenv.hostPlatform.isMips && versionAtLeast version "1.79")) [ (stdenv.hostPlatform.isMips && lib.versionAtLeast version "1.79")) [
"address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}" "address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}"
"architecture=${if stdenv.hostPlatform.isMips64 "architecture=${if stdenv.hostPlatform.isMips64
then if versionOlder version "1.78" then "mips1" else "mips" then if lib.versionOlder version "1.78" then "mips1" else "mips"
else if stdenv.hostPlatform.parsed.cpu.name == "s390x" then "s390x" else if stdenv.hostPlatform.parsed.cpu.name == "s390x" then "s390x"
else toString stdenv.hostPlatform.parsed.cpu.family}" else toString stdenv.hostPlatform.parsed.cpu.family}"
"binary-format=${toString stdenv.hostPlatform.parsed.kernel.execFormat.name}" "binary-format=${toString stdenv.hostPlatform.parsed.kernel.execFormat.name}"
@ -100,13 +99,13 @@ let
else if stdenv.hostPlatform.isMips32 then "o32" else if stdenv.hostPlatform.isMips32 then "o32"
else if stdenv.hostPlatform.isMips64n64 then "n64" else if stdenv.hostPlatform.isMips64n64 then "n64"
else "sysv"}" else "sysv"}"
] ++ optional (link != "static") "runtime-link=${runtime-link}" ] ++ lib.optional (link != "static") "runtime-link=${runtime-link}"
++ optional (variant == "release") "debug-symbols=off" ++ lib.optional (variant == "release") "debug-symbols=off"
++ optional (toolset != null) "toolset=${toolset}" ++ lib.optional (toolset != null) "toolset=${toolset}"
++ optional (!enablePython) "--without-python" ++ lib.optional (!enablePython) "--without-python"
++ optional needUserConfig "--user-config=user-config.jam" ++ lib.optional needUserConfig "--user-config=user-config.jam"
++ optional (stdenv.buildPlatform.isDarwin && stdenv.hostPlatform.isLinux) "pch=off" ++ lib.optional (stdenv.buildPlatform.isDarwin && stdenv.hostPlatform.isLinux) "pch=off"
++ optionals (stdenv.hostPlatform.libc == "msvcrt") [ ++ lib.optionals (stdenv.hostPlatform.libc == "msvcrt") [
"threadapi=win32" "threadapi=win32"
] ++ extraB2Args ] ++ extraB2Args
); );
@ -121,38 +120,38 @@ stdenv.mkDerivation {
patchFlags = []; patchFlags = [];
patches = patches patches = patches
++ optional stdenv.isDarwin ./darwin-no-system-python.patch ++ lib.optional stdenv.isDarwin ./darwin-no-system-python.patch
# Fix boost-context segmentation faults on ppc64 due to ABI violation # Fix boost-context segmentation faults on ppc64 due to ABI violation
++ optional (versionAtLeast version "1.61" && ++ lib.optional (lib.versionAtLeast version "1.61" &&
versionOlder version "1.71") (fetchpatch { lib.versionOlder version "1.71") (fetchpatch {
url = "https://github.com/boostorg/context/commit/2354eca9b776a6739112833f64754108cc0d1dc5.patch"; url = "https://github.com/boostorg/context/commit/2354eca9b776a6739112833f64754108cc0d1dc5.patch";
sha256 = "067m4bjpmcanqvg28djax9a10avmdwhlpfx6gn73kbqqq70dnz29"; sha256 = "067m4bjpmcanqvg28djax9a10avmdwhlpfx6gn73kbqqq70dnz29";
stripLen = 1; stripLen = 1;
extraPrefix = "libs/context/"; extraPrefix = "libs/context/";
}) })
# Fix compiler warning with GCC >= 8; TODO: patch may apply to older versions # Fix compiler warning with GCC >= 8; TODO: patch may apply to older versions
++ optional (versionAtLeast version "1.65" && versionOlder version "1.67") ++ lib.optional (lib.versionAtLeast version "1.65" && lib.versionOlder version "1.67")
(fetchpatch { (fetchpatch {
url = "https://github.com/boostorg/mpl/commit/f48fd09d021db9a28bd7b8452c175897e1af4485.patch"; url = "https://github.com/boostorg/mpl/commit/f48fd09d021db9a28bd7b8452c175897e1af4485.patch";
sha256 = "15d2a636hhsb1xdyp44x25dyqfcaws997vnp9kl1mhzvxjzz7hb0"; sha256 = "15d2a636hhsb1xdyp44x25dyqfcaws997vnp9kl1mhzvxjzz7hb0";
stripLen = 1; stripLen = 1;
}) })
++ optional (versionAtLeast version "1.65" && versionOlder version "1.70") (fetchpatch { ++ lib.optional (lib.versionAtLeast version "1.65" && lib.versionOlder version "1.70") (fetchpatch {
# support for Mips64n64 appeared in boost-context 1.70; this patch won't apply to pre-1.65 cleanly # support for Mips64n64 appeared in boost-context 1.70; this patch won't apply to pre-1.65 cleanly
url = "https://github.com/boostorg/context/commit/e3f744a1862164062d579d1972272d67bdaa9c39.patch"; url = "https://github.com/boostorg/context/commit/e3f744a1862164062d579d1972272d67bdaa9c39.patch";
sha256 = "sha256-qjQy1b4jDsIRrI+UYtcguhvChrMbGWO0UlEzEJHYzRI="; sha256 = "sha256-qjQy1b4jDsIRrI+UYtcguhvChrMbGWO0UlEzEJHYzRI=";
stripLen = 1; stripLen = 1;
extraPrefix = "libs/context/"; extraPrefix = "libs/context/";
}) })
++ optional (versionAtLeast version "1.70" && versionOlder version "1.73") ./cmake-paths.patch ++ lib.optional (lib.versionAtLeast version "1.70" && lib.versionOlder version "1.73") ./cmake-paths.patch
++ optional (versionAtLeast version "1.73") ./cmake-paths-173.patch ++ lib.optional (lib.versionAtLeast version "1.73") ./cmake-paths-173.patch
++ optional (version == "1.77.0") (fetchpatch { ++ lib.optional (version == "1.77.0") (fetchpatch {
url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch"; url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch";
relative = "include"; relative = "include";
sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4="; sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4=";
}); });
meta = { meta = with lib; {
homepage = "http://boost.org/"; homepage = "http://boost.org/";
description = "Collection of C++ libraries"; description = "Collection of C++ libraries";
license = licenses.boost; license = licenses.boost;
@ -175,7 +174,7 @@ stdenv.mkDerivation {
inherit boostBuildPatches; inherit boostBuildPatches;
}; };
preConfigure = optionalString useMpi '' preConfigure = lib.optionalString useMpi ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using mpi : ${mpi}/bin/mpiCC ; using mpi : ${mpi}/bin/mpiCC ;
EOF EOF
@ -183,7 +182,7 @@ stdenv.mkDerivation {
# On darwin we need to add the `$out/lib` to the libraries' rpath explicitly, # On darwin we need to add the `$out/lib` to the libraries' rpath explicitly,
# otherwise the dynamic linker is unable to resolve the reference to @rpath # otherwise the dynamic linker is unable to resolve the reference to @rpath
# when the boost libraries want to load each other at runtime. # when the boost libraries want to load each other at runtime.
+ optionalString (stdenv.isDarwin && enableShared) '' + lib.optionalString (stdenv.isDarwin && enableShared) ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using clang-darwin : : ${stdenv.cc.targetPrefix}c++ using clang-darwin : : ${stdenv.cc.targetPrefix}c++
: <linkflags>"-rpath $out/lib/" : <linkflags>"-rpath $out/lib/"
@ -196,7 +195,7 @@ stdenv.mkDerivation {
# uniform way for clang and gcc (which works thanks to our cc-wrapper). # uniform way for clang and gcc (which works thanks to our cc-wrapper).
# We pass toolset later which will make b2 invoke everything in the right # We pass toolset later which will make b2 invoke everything in the right
# way -- the other toolset in user-config.jam will be ignored. # way -- the other toolset in user-config.jam will be ignored.
+ optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using gcc : cross : ${stdenv.cc.targetPrefix}c++ using gcc : cross : ${stdenv.cc.targetPrefix}c++
: <archiver>$AR : <archiver>$AR
@ -210,7 +209,7 @@ stdenv.mkDerivation {
EOF EOF
'' ''
# b2 needs to be explicitly told how to find Python when cross-compiling # b2 needs to be explicitly told how to find Python when cross-compiling
+ optionalString enablePython '' + lib.optionalString enablePython ''
cat << EOF >> user-config.jam cat << EOF >> user-config.jam
using python : : ${python.interpreter} using python : : ${python.interpreter}
: ${python}/include/python${python.pythonVersion} : ${python}/include/python${python.pythonVersion}
@ -225,11 +224,11 @@ stdenv.mkDerivation {
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ which boost-build ] nativeBuildInputs = [ which boost-build ]
++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = [ expat zlib bzip2 libiconv ] buildInputs = [ expat zlib bzip2 libiconv ]
++ optional enableIcu icu ++ lib.optional enableIcu icu
++ optionals enablePython [ libxcrypt python ] ++ lib.optionals enablePython [ libxcrypt python ]
++ optional enableNumpy python.pkgs.numpy; ++ lib.optional enableNumpy python.pkgs.numpy;
configureScript = "./bootstrap.sh"; configureScript = "./bootstrap.sh";
configurePlatforms = []; configurePlatforms = [];
@ -239,7 +238,7 @@ stdenv.mkDerivation {
"--includedir=$(dev)/include" "--includedir=$(dev)/include"
"--libdir=$(out)/lib" "--libdir=$(out)/lib"
"--with-bjam=b2" # prevent bootstrapping b2 in configurePhase "--with-bjam=b2" # prevent bootstrapping b2 in configurePhase
] ++ optional (toolset != null) "--with-toolset=${toolset}" ] ++ lib.optional (toolset != null) "--with-toolset=${toolset}"
++ [ (if enableIcu then "--with-icu=${icu.dev}" else "--without-icu") ]; ++ [ (if enableIcu then "--with-icu=${icu.dev}" else "--without-icu") ];
buildPhase = '' buildPhase = ''
@ -265,7 +264,7 @@ stdenv.mkDerivation {
# Make boost header paths relative so that they are not runtime dependencies # Make boost header paths relative so that they are not runtime dependencies
cd "$dev" && find include \( -name '*.hpp' -or -name '*.h' -or -name '*.ipp' \) \ cd "$dev" && find include \( -name '*.hpp' -or -name '*.h' -or -name '*.ipp' \) \
-exec sed '1s/^\xef\xbb\xbf//;1i#line 1 "{}"' -i '{}' \; -exec sed '1s/^\xef\xbb\xbf//;1i#line 1 "{}"' -i '{}' \;
'' + optionalString (stdenv.hostPlatform.libc == "msvcrt") '' '' + lib.optionalString (stdenv.hostPlatform.libc == "msvcrt") ''
$RANLIB "$out/lib/"*.a $RANLIB "$out/lib/"*.a
''; '';

View file

@ -2,7 +2,6 @@
, pam, libxcrypt, fixDarwinDylibNames, autoreconfHook, enableLdap ? false , pam, libxcrypt, fixDarwinDylibNames, autoreconfHook, enableLdap ? false
, buildPackages, pruneLibtoolFiles, nixosTests }: , buildPackages, pruneLibtoolFiles, nixosTests }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cyrus-sasl"; pname = "cyrus-sasl";
version = "2.1.28"; version = "2.1.28";
@ -50,7 +49,7 @@ stdenv.mkDerivation rec {
inherit (nixosTests) parsedmarc postfix; inherit (nixosTests) parsedmarc postfix;
}; };
meta = { meta = with lib; {
homepage = "https://www.cyrusimap.org/sasl"; homepage = "https://www.cyrusimap.org/sasl";
description = "Library for adding authentication support to connection-based protocols"; description = "Library for adding authentication support to connection-based protocols";
platforms = platforms.unix; platforms = platforms.unix;

View file

@ -5,7 +5,6 @@
assert mp4v2Support -> (mp4v2 != null); assert mp4v2Support -> (mp4v2 != null);
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "faac"; pname = "faac";
version = "1.30"; version = "1.30";
@ -16,19 +15,19 @@ stdenv.mkDerivation rec {
}; };
configureFlags = [ ] configureFlags = [ ]
++ optional mp4v2Support "--with-external-mp4v2" ++ lib.optional mp4v2Support "--with-external-mp4v2"
++ optional drmSupport "--enable-drm"; ++ lib.optional drmSupport "--enable-drm";
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ ] buildInputs = [ ]
++ optional mp4v2Support mp4v2; ++ lib.optional mp4v2Support mp4v2;
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with lib; {
description = "Open source MPEG-4 and MPEG-2 AAC encoder"; description = "Open source MPEG-4 and MPEG-2 AAC encoder";
license = licenses.unfreeRedistributable; license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ codyopel ]; maintainers = with maintainers; [ codyopel ];

View file

@ -11,7 +11,6 @@
, vlc , vlc
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "faad2"; pname = "faad2";
version = "2.10.1"; version = "2.10.1";
@ -24,7 +23,7 @@ stdenv.mkDerivation rec {
}; };
configureFlags = [] configureFlags = []
++ optional drmSupport "--with-drm"; ++ lib.optional drmSupport "--with-drm";
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
@ -34,7 +33,7 @@ stdenv.mkDerivation rec {
ocaml-faad = ocamlPackages.faad; ocaml-faad = ocamlPackages.faad;
}; };
meta = { meta = with lib; {
description = "An open source MPEG-4 and MPEG-2 AAC decoder"; description = "An open source MPEG-4 and MPEG-2 AAC decoder";
homepage = "https://sourceforge.net/projects/faac/"; homepage = "https://sourceforge.net/projects/faac/";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;

View file

@ -14,9 +14,7 @@
, withDoc ? stdenv.cc.isGNU , withDoc ? stdenv.cc.isGNU
}: }:
with lib; assert lib.elem precision [ "single" "double" "long-double" "quad-precision" ];
assert elem precision [ "single" "double" "long-double" "quad-precision" ];
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fftw-${precision}"; pname = "fftw-${precision}";
@ -31,32 +29,32 @@ stdenv.mkDerivation rec {
}; };
outputs = [ "out" "dev" "man" ] outputs = [ "out" "dev" "man" ]
++ optional withDoc "info"; # it's dev-doc only ++ lib.optional withDoc "info"; # it's dev-doc only
outputBin = "dev"; # fftw-wisdom outputBin = "dev"; # fftw-wisdom
nativeBuildInputs = [ gfortran ]; nativeBuildInputs = [ gfortran ];
buildInputs = optionals stdenv.cc.isClang [ buildInputs = lib.optionals stdenv.cc.isClang [
# TODO: This may mismatch the LLVM version sin the stdenv, see #79818. # TODO: This may mismatch the LLVM version sin the stdenv, see #79818.
llvmPackages.openmp llvmPackages.openmp
] ++ optional enableMpi mpi; ] ++ lib.optional enableMpi mpi;
configureFlags = configureFlags =
[ "--enable-shared" [ "--enable-shared"
"--enable-threads" "--enable-threads"
] ]
++ optional (precision != "double") "--enable-${precision}" ++ lib.optional (precision != "double") "--enable-${precision}"
# all x86_64 have sse2 # all x86_64 have sse2
# however, not all float sizes fit # however, not all float sizes fit
++ optional (stdenv.isx86_64 && (precision == "single" || precision == "double") ) "--enable-sse2" ++ lib.optional (stdenv.isx86_64 && (precision == "single" || precision == "double") ) "--enable-sse2"
++ optional enableAvx "--enable-avx" ++ lib.optional enableAvx "--enable-avx"
++ optional enableAvx2 "--enable-avx2" ++ lib.optional enableAvx2 "--enable-avx2"
++ optional enableAvx512 "--enable-avx512" ++ lib.optional enableAvx512 "--enable-avx512"
++ optional enableFma "--enable-fma" ++ lib.optional enableFma "--enable-fma"
++ [ "--enable-openmp" ] ++ [ "--enable-openmp" ]
++ optional enableMpi "--enable-mpi" ++ lib.optional enableMpi "--enable-mpi"
# doc generation causes Fortran wrapper generation which hard-codes gcc # doc generation causes Fortran wrapper generation which hard-codes gcc
++ optional (!withDoc) "--disable-doc"; ++ lib.optional (!withDoc) "--disable-doc";
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -15,7 +15,6 @@
, xorgserver , xorgserver
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "geis"; pname = "geis";
@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
gappsWrapperArgs+=(--set PYTHONPATH "$program_PYTHONPATH") gappsWrapperArgs+=(--set PYTHONPATH "$program_PYTHONPATH")
''; '';
meta = { meta = with lib; {
description = "A library for input gesture recognition"; description = "A library for input gesture recognition";
homepage = "https://launchpad.net/geis"; homepage = "https://launchpad.net/geis";
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -2,8 +2,6 @@
, AGL, OpenGL , AGL, OpenGL
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "glew"; pname = "glew";
version = "1.10.0"; version = "1.10.0";
@ -20,7 +18,7 @@ stdenv.mkDerivation rec {
patchPhase = '' patchPhase = ''
sed -i 's|lib64|lib|' config/Makefile.linux sed -i 's|lib64|lib|' config/Makefile.linux
${optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' ${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile sed -i -e 's/\(INSTALL.*\)-s/\1/' Makefile
''} ''}
''; '';

View file

@ -4,7 +4,6 @@
, idnSupport ? true, libidn , idnSupport ? true, libidn
}: }:
with lib;
stdenv.mkDerivation rec{ stdenv.mkDerivation rec{
pname = "gloox"; pname = "gloox";
@ -16,11 +15,11 @@ stdenv.mkDerivation rec{
}; };
buildInputs = [ ] buildInputs = [ ]
++ optional zlibSupport zlib ++ lib.optional zlibSupport zlib
++ optional sslSupport openssl ++ lib.optional sslSupport openssl
++ optional idnSupport libidn; ++ lib.optional idnSupport libidn;
meta = { meta = with lib; {
description = "A portable high-level Jabber/XMPP library for C++"; description = "A portable high-level Jabber/XMPP library for C++";
homepage = "http://camaya.net/gloox"; homepage = "http://camaya.net/gloox";
license = licenses.gpl3; license = licenses.gpl3;

View file

@ -7,8 +7,6 @@
, fetchpatch, buildPackages , fetchpatch, buildPackages
}: }:
with lib;
let let
gtkCleanImmodulesCache = substituteAll { gtkCleanImmodulesCache = substituteAll {
@ -44,7 +42,7 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./patches/2.0-immodules.cache.patch ./patches/2.0-immodules.cache.patch
./patches/gtk2-theme-paths.patch ./patches/gtk2-theme-paths.patch
] ++ optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
(fetchpatch { (fetchpatch {
url = "https://bug557780.bugzilla-attachments.gnome.org/attachment.cgi?id=306776"; url = "https://bug557780.bugzilla-attachments.gnome.org/attachment.cgi?id=306776";
sha256 = "0sp8f1r5c4j2nlnbqgv7s7nxa4cfwigvm033hvhb1ld652pjag4r"; sha256 = "0sp8f1r5c4j2nlnbqgv7s7nxa4cfwigvm033hvhb1ld652pjag4r";
@ -54,13 +52,13 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = with xorg; propagatedBuildInputs = with xorg;
[ glib cairo pango gdk-pixbuf atk ] [ glib cairo pango gdk-pixbuf atk ]
++ optionals (stdenv.isLinux || stdenv.isDarwin) [ ++ lib.optionals (stdenv.isLinux || stdenv.isDarwin) [
libXrandr libXrender libXcomposite libXi libXcursor libXrandr libXrender libXcomposite libXi libXcursor
] ]
++ optionals stdenv.isDarwin [ libXdamage ] ++ lib.optionals stdenv.isDarwin [ libXdamage ]
++ optional xineramaSupport libXinerama ++ lib.optional xineramaSupport libXinerama
++ optionals cupsSupport [ cups ] ++ lib.optionals cupsSupport [ cups ]
++ optionals stdenv.isDarwin [ AppKit Cocoa ]; ++ lib.optionals stdenv.isDarwin [ AppKit Cocoa ];
preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then '' preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then ''
MACOSX_DEPLOYMENT_TARGET=10.16 MACOSX_DEPLOYMENT_TARGET=10.16
@ -69,7 +67,7 @@ stdenv.mkDerivation rec {
configureFlags = [ configureFlags = [
"--with-gdktarget=${gdktarget}" "--with-gdktarget=${gdktarget}"
"--with-xinput=yes" "--with-xinput=yes"
] ++ optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
"--disable-glibtest" "--disable-glibtest"
"--disable-introspection" "--disable-introspection"
"--disable-visibility" "--disable-visibility"
@ -94,7 +92,7 @@ stdenv.mkDerivation rec {
inherit gdktarget; inherit gdktarget;
}; };
meta = { meta = with lib; {
description = "A multi-platform toolkit for creating graphical user interfaces"; description = "A multi-platform toolkit for creating graphical user interfaces";
homepage = "https://www.gtk.org/"; homepage = "https://www.gtk.org/";
license = licenses.lgpl2Plus; license = licenses.lgpl2Plus;

View file

@ -1,10 +1,9 @@
{ stdenv, lib, hunspell, makeWrapper, dicts ? [] }: { stdenv, lib, hunspell, makeWrapper, dicts ? [] }:
with lib;
let let
searchPath = makeSearchPath "share/hunspell" dicts; searchPath = lib.makeSearchPath "share/hunspell" dicts;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = (appendToName "with-dicts" hunspell).name; name = (lib.appendToName "with-dicts" hunspell).name;
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildCommand = '' buildCommand = ''
makeWrapper ${hunspell.bin}/bin/hunspell $out/bin/hunspell --prefix DICPATH : ${lib.escapeShellArg searchPath} makeWrapper ${hunspell.bin}/bin/hunspell $out/bin/hunspell --prefix DICPATH : ${lib.escapeShellArg searchPath}

View file

@ -3,8 +3,6 @@
, glib, dbus-glib, json-glib , glib, dbus-glib, json-glib
, gtk2, libindicator-gtk2, libdbusmenu-gtk2, libappindicator-gtk2 }: , gtk2, libindicator-gtk2, libdbusmenu-gtk2, libappindicator-gtk2 }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "indicator-application-gtk2"; pname = "indicator-application-gtk2";
version = "12.10.0.1"; version = "12.10.0.1";
@ -45,7 +43,7 @@ stdenv.mkDerivation rec {
"localstatedir=\${TMPDIR}" "localstatedir=\${TMPDIR}"
]; ];
meta = { meta = with lib; {
description = "Indicator to take menus from applications and place them in the panel (GTK 2 library for Xfce/LXDE)"; description = "Indicator to take menus from applications and place them in the panel (GTK 2 library for Xfce/LXDE)";
homepage = "https://launchpad.net/indicators-gtk2"; homepage = "https://launchpad.net/indicators-gtk2";
license = licenses.gpl3; license = licenses.gpl3;

View file

@ -4,7 +4,6 @@
, CoreFoundation, Security, SystemConfiguration , CoreFoundation, Security, SystemConfiguration
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "heimdal"; pname = "heimdal";
version = "7.8.0"; version = "7.8.0";
@ -22,9 +21,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkg-config python3 perl bison flex texinfo ] nativeBuildInputs = [ autoreconfHook pkg-config python3 perl bison flex texinfo ]
++ (with perlPackages; [ JSON ]); ++ (with perlPackages; [ JSON ]);
buildInputs = optionals (stdenv.isLinux) [ libcap_ng ] buildInputs = lib.optionals (stdenv.isLinux) [ libcap_ng ]
++ [ db sqlite openssl libedit openldap pam] ++ [ db sqlite openssl libedit openldap pam]
++ optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ]; ++ lib.optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ];
## ugly, X should be made an option ## ugly, X should be made an option
configureFlags = [ configureFlags = [
@ -42,7 +41,7 @@ stdenv.mkDerivation rec {
"--with-berkeley-db" "--with-berkeley-db"
"--with-berkeley-db-include=${db.dev}/include" "--with-berkeley-db-include=${db.dev}/include"
"--with-openldap=${openldap.dev}" "--with-openldap=${openldap.dev}"
] ++ optionals (stdenv.isLinux) [ ] ++ lib.optionals (stdenv.isLinux) [
"--with-capng" "--with-capng"
]; ];
@ -91,7 +90,7 @@ stdenv.mkDerivation rec {
# hx_locl.h:67:25: fatal error: pkcs10_asn1.h: No such file or directory # hx_locl.h:67:25: fatal error: pkcs10_asn1.h: No such file or directory
#enableParallelBuilding = true; #enableParallelBuilding = true;
meta = { meta = with lib; {
description = "An implementation of Kerberos 5 (and some more stuff)"; description = "An implementation of Kerberos 5 (and some more stuff)";
license = licenses.bsd3; license = licenses.bsd3;
platforms = platforms.unix; platforms = platforms.unix;

View file

@ -11,7 +11,6 @@
, debugSupport ? false # Debugging (disables optimizations) , debugSupport ? false # Debugging (disables optimizations)
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lame"; pname = "lame";
version = "3.100"; version = "3.100";
@ -25,24 +24,24 @@ stdenv.mkDerivation rec {
outputMan = "out"; outputMan = "out";
nativeBuildInputs = [ ] nativeBuildInputs = [ ]
++ optional nasmSupport nasm; ++ lib.optional nasmSupport nasm;
buildInputs = [ ] buildInputs = [ ]
#++ optional efenceSupport libefence #++ optional efenceSupport libefence
#++ optional mp3xSupport gtk1 #++ optional mp3xSupport gtk1
++ optional sndfileFileIOSupport libsndfile; ++ lib.optional sndfileFileIOSupport libsndfile;
configureFlags = [ configureFlags = [
(enableFeature nasmSupport "nasm") (lib.enableFeature nasmSupport "nasm")
(enableFeature cpmlSupport "cpml") (lib.enableFeature cpmlSupport "cpml")
#(enableFeature efenceSupport "efence") #(enableFeature efenceSupport "efence")
(if sndfileFileIOSupport then "--with-fileio=sndfile" else "--with-fileio=lame") (if sndfileFileIOSupport then "--with-fileio=sndfile" else "--with-fileio=lame")
(enableFeature analyzerHooksSupport "analyzer-hooks") (lib.enableFeature analyzerHooksSupport "analyzer-hooks")
(enableFeature decoderSupport "decoder") (lib.enableFeature decoderSupport "decoder")
(enableFeature frontendSupport "frontend") (lib.enableFeature frontendSupport "frontend")
(enableFeature frontendSupport "dynamic-frontends") (lib.enableFeature frontendSupport "dynamic-frontends")
#(enableFeature mp3xSupport "mp3x") #(enableFeature mp3xSupport "mp3x")
(enableFeature mp3rtpSupport "mp3rtp") (lib.enableFeature mp3rtpSupport "mp3rtp")
(if debugSupport then "--enable-debug=alot" else "") (if debugSupport then "--enable-debug=alot" else "")
]; ];
@ -52,7 +51,7 @@ stdenv.mkDerivation rec {
sed -i '/lame_init_old/d' include/libmp3lame.sym sed -i '/lame_init_old/d' include/libmp3lame.sym
''; '';
meta = { meta = with lib; {
description = "A high quality MPEG Audio Layer III (MP3) encoder"; description = "A high quality MPEG Audio Layer III (MP3) encoder";
homepage = "http://lame.sourceforge.net"; homepage = "http://lame.sourceforge.net";
license = licenses.lgpl2; license = licenses.lgpl2;

View file

@ -8,7 +8,6 @@
assert fontconfigSupport -> fontconfig != null; assert fontconfigSupport -> fontconfig != null;
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libass"; pname = "libass";
version = "0.16.0"; version = "0.16.0";
@ -19,18 +18,18 @@ stdenv.mkDerivation rec {
}; };
configureFlags = [ configureFlags = [
(enableFeature fontconfigSupport "fontconfig") (lib.enableFeature fontconfigSupport "fontconfig")
(enableFeature rasterizerSupport "rasterizer") (lib.enableFeature rasterizerSupport "rasterizer")
(enableFeature largeTilesSupport "large-tiles") (lib.enableFeature largeTilesSupport "large-tiles")
]; ];
nativeBuildInputs = [ pkg-config yasm ]; nativeBuildInputs = [ pkg-config yasm ];
buildInputs = [ freetype fribidi harfbuzz ] buildInputs = [ freetype fribidi harfbuzz ]
++ optional fontconfigSupport fontconfig ++ lib.optional fontconfigSupport fontconfig
++ optional stdenv.isDarwin libiconv; ++ lib.optional stdenv.isDarwin libiconv;
meta = { meta = with lib; {
description = "Portable ASS/SSA subtitle renderer"; description = "Portable ASS/SSA subtitle renderer";
homepage = "https://github.com/libass/libass"; homepage = "https://github.com/libass/libass";
license = licenses.isc; license = licenses.isc;

View file

@ -1,5 +1,4 @@
{ lib, collectd }: { lib, collectd }:
with lib;
collectd.overrideAttrs (oldAttrs: { collectd.overrideAttrs (oldAttrs: {
pname = "libcollectdclient"; pname = "libcollectdclient";

View file

@ -5,8 +5,6 @@
# cgit) that are needed here should be included directly in Nixpkgs as # cgit) that are needed here should be included directly in Nixpkgs as
# files. # files.
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libidn2"; pname = "libidn2";
version = "2.3.2"; version = "2.3.2";
@ -20,14 +18,14 @@ stdenv.mkDerivation rec {
# Beware: non-bootstrap libidn2 is overridden by ./hack.nix # Beware: non-bootstrap libidn2 is overridden by ./hack.nix
outputs = [ "bin" "dev" "out" "info" "devdoc" ]; outputs = [ "bin" "dev" "out" "info" "devdoc" ];
patches = optional stdenv.isDarwin ./fix-error-darwin.patch; patches = lib.optional stdenv.isDarwin ./fix-error-darwin.patch;
enableParallelBuilding = true; enableParallelBuilding = true;
# The above patch causes the documentation to be regenerated, so the # The above patch causes the documentation to be regenerated, so the
# documentation tools are required. # documentation tools are required.
nativeBuildInputs = optionals stdenv.isDarwin [ help2man texinfo ]; nativeBuildInputs = lib.optionals stdenv.isDarwin [ help2man texinfo ];
buildInputs = [ libunistring ] ++ optional stdenv.isDarwin libiconv; buildInputs = [ libunistring ] ++ lib.optional stdenv.isDarwin libiconv;
depsBuildBuild = [ buildPackages.stdenv.cc ]; depsBuildBuild = [ buildPackages.stdenv.cc ];
meta = { meta = {

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchurl, darwin, disablePosixThreads ? false }: { lib, stdenv, fetchurl, darwin, disablePosixThreads ? false }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libmcrypt"; pname = "libmcrypt";
version = "2.5.8"; version = "2.5.8";
@ -11,15 +9,15 @@ stdenv.mkDerivation rec {
sha256 = "0gipgb939vy9m66d3k8il98rvvwczyaw2ixr8yn6icds9c3nrsz4"; sha256 = "0gipgb939vy9m66d3k8il98rvvwczyaw2ixr8yn6icds9c3nrsz4";
}; };
buildInputs = optional stdenv.isDarwin darwin.cctools; buildInputs = lib.optional stdenv.isDarwin darwin.cctools;
configureFlags = optionals disablePosixThreads configureFlags = lib.optionals disablePosixThreads
[ "--disable-posix-threads" ]; [ "--disable-posix-threads" ];
meta = { meta = {
description = "Replacement for the old crypt() package and crypt(1) command, with extensions"; description = "Replacement for the old crypt() package and crypt(1) command, with extensions";
homepage = "http://mcrypt.sourceforge.net"; homepage = "http://mcrypt.sourceforge.net";
license = "GPL"; license = "GPL";
platforms = platforms.all; platforms = lib.platforms.all;
}; };
} }

View file

@ -17,8 +17,6 @@
, libva , libva
}: }:
with lib;
mkDerivation rec { mkDerivation rec {
pname = "libqtav"; pname = "libqtav";
version = "unstable-2020-09-10"; version = "unstable-2020-09-10";
@ -64,7 +62,7 @@ mkDerivation rec {
stripDebugList = [ "lib" "libexec" "bin" "qml" ]; stripDebugList = [ "lib" "libexec" "bin" "qml" ];
meta = { meta = with lib; {
description = "A multimedia playback framework based on Qt + FFmpeg"; description = "A multimedia playback framework based on Qt + FFmpeg";
#license = licenses.lgpl21; # For the libraries / headers only. #license = licenses.lgpl21; # For the libraries / headers only.
license = licenses.gpl3; # With the examples (under bin) and most likely some of the optional dependencies used. license = licenses.gpl3; # With the examples (under bin) and most likely some of the optional dependencies used.

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch }: { lib, stdenv, fetchFromGitHub, autoreconfHook, fetchpatch }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libspf2"; pname = "libspf2";
version = "2.2.12"; version = "2.2.12";
@ -35,7 +33,7 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
meta = { meta = with lib; {
description = "Implementation of the Sender Policy Framework for SMTP " + description = "Implementation of the Sender Policy Framework for SMTP " +
"authorization (Helsinki Systems fork)"; "authorization (Helsinki Systems fork)";
homepage = "https://github.com/helsinki-systems/libspf2"; homepage = "https://github.com/helsinki-systems/libspf2";

View file

@ -1,6 +1,5 @@
{ lib, stdenv, fetchurl, pkg-config, cmake, perl }: { lib, stdenv, fetchurl, pkg-config, cmake, perl }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libtap"; pname = "libtap";

View file

@ -3,7 +3,6 @@
, gtk-doc, docbook_xml_dtd_45, docbook_xsl , gtk-doc, docbook_xml_dtd_45, docbook_xsl
, libxslt, libxml2 }: , libxslt, libxml2 }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
majorVer = "3.0"; majorVer = "3.0";
@ -23,8 +22,8 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = "https://wiki.gnome.org/Attic/LibUnique"; homepage = "https://wiki.gnome.org/Attic/LibUnique";
description = "A library for writing single instance applications"; description = "A library for writing single instance applications";
license = licenses.lgpl21; license = lib.licenses.lgpl21;
maintainers = [ maintainers.AndersonTorres ]; maintainers = [ lib.maintainers.AndersonTorres ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
}; };
} }

View file

@ -1,7 +1,5 @@
{ stdenv, fetchurl, lib, glib }: { stdenv, fetchurl, lib, glib }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libutempter"; pname = "libutempter";
version = "1.2.1"; version = "1.2.1";
@ -28,7 +26,7 @@ stdenv.mkDerivation rec {
"mandir=\${out}/share/man" "mandir=\${out}/share/man"
]; ];
meta = { meta = with lib; {
homepage = "https://github.com/altlinux/libutempter"; homepage = "https://github.com/altlinux/libutempter";
description = "Interface for terminal emulators such as screen and xterm to record user sessions to utmp and wtmp files"; description = "Interface for terminal emulators such as screen and xterm to record user sessions to utmp and wtmp files";
longDescription = '' longDescription = ''

View file

@ -77,13 +77,11 @@
, zfs , zfs
}: }:
with lib;
let let
inherit (stdenv) isDarwin isLinux isx86_64; inherit (stdenv) isDarwin isLinux isx86_64;
binPath = makeBinPath ([ binPath = lib.makeBinPath ([
dnsmasq dnsmasq
] ++ optionals isLinux [ ] ++ lib.optionals isLinux [
bridge-utils bridge-utils
dmidecode dmidecode
dnsmasq dnsmasq
@ -95,10 +93,10 @@ let
numad numad
pmutils pmutils
systemd systemd
] ++ optionals enableIscsi [ ] ++ lib.optionals enableIscsi [
libiscsi libiscsi
openiscsi openiscsi
] ++ optionals enableZfs [ ] ++ lib.optionals enableZfs [
zfs zfs
]); ]);
in in
@ -148,17 +146,17 @@ stdenv.mkDerivation rec {
substituteInPlace meson.build \ substituteInPlace meson.build \
--replace "'dbus-daemon'," "'${lib.getBin dbus}/bin/dbus-daemon'," --replace "'dbus-daemon'," "'${lib.getBin dbus}/bin/dbus-daemon',"
'' + optionalString isLinux '' '' + lib.optionalString isLinux ''
sed -i 's,define PARTED "parted",define PARTED "${parted}/bin/parted",' \ sed -i 's,define PARTED "parted",define PARTED "${parted}/bin/parted",' \
src/storage/storage_backend_disk.c \ src/storage/storage_backend_disk.c \
src/storage/storage_util.c src/storage/storage_util.c
'' + optionalString isDarwin '' '' + lib.optionalString isDarwin ''
sed -i '/qemucapabilitiestest/d' tests/meson.build sed -i '/qemucapabilitiestest/d' tests/meson.build
sed -i '/vircryptotest/d' tests/meson.build sed -i '/vircryptotest/d' tests/meson.build
sed -i '/domaincapstest/d' tests/meson.build sed -i '/domaincapstest/d' tests/meson.build
sed -i '/qemufirmwaretest/d' tests/meson.build sed -i '/qemufirmwaretest/d' tests/meson.build
sed -i '/qemuvhostusertest/d' tests/meson.build sed -i '/qemuvhostusertest/d' tests/meson.build
'' + optionalString (isDarwin && isx86_64) '' '' + lib.optionalString (isDarwin && isx86_64) ''
sed -i '/qemucaps2xmltest/d' tests/meson.build sed -i '/qemucaps2xmltest/d' tests/meson.build
sed -i '/qemuhotplugtest/d' tests/meson.build sed -i '/qemuhotplugtest/d' tests/meson.build
sed -i '/virnetdaemontest/d' tests/meson.build sed -i '/virnetdaemontest/d' tests/meson.build
@ -178,9 +176,9 @@ stdenv.mkDerivation rec {
perl perl
perlPackages.XMLXPath perlPackages.XMLXPath
] ]
++ optional (!isDarwin) rpcsvc-proto ++ lib.optional (!isDarwin) rpcsvc-proto
# NOTE: needed for rpcgen # NOTE: needed for rpcgen
++ optional isDarwin darwin.developer_cmds; ++ lib.optional isDarwin darwin.developer_cmds;
buildInputs = [ buildInputs = [
bash bash
@ -197,7 +195,7 @@ stdenv.mkDerivation rec {
readline readline
xhtml1 xhtml1
yajl yajl
] ++ optionals isLinux [ ] ++ lib.optionals isLinux [
acl acl
attr attr
audit audit
@ -213,17 +211,17 @@ stdenv.mkDerivation rec {
parted parted
systemd systemd
util-linux util-linux
] ++ optionals isDarwin [ ] ++ lib.optionals isDarwin [
AppKit AppKit
Carbon Carbon
gmp gmp
libiconv libiconv
] ]
++ optionals enableCeph [ ceph ] ++ lib.optionals enableCeph [ ceph ]
++ optionals enableGlusterfs [ glusterfs ] ++ lib.optionals enableGlusterfs [ glusterfs ]
++ optionals enableIscsi [ libiscsi openiscsi ] ++ lib.optionals enableIscsi [ libiscsi openiscsi ]
++ optionals enableXen [ xen ] ++ lib.optionals enableXen [ xen ]
++ optionals enableZfs [ zfs ]; ++ lib.optionals enableZfs [ zfs ];
preConfigure = preConfigure =
let let
@ -348,7 +346,7 @@ stdenv.mkDerivation rec {
# Added in nixpkgs: # Added in nixpkgs:
gettext() { "${gettext}/bin/gettext" "$@"; } gettext() { "${gettext}/bin/gettext" "$@"; }
' '
'' + optionalString isLinux '' '' + lib.optionalString isLinux ''
for f in $out/lib/systemd/system/*.service ; do for f in $out/lib/systemd/system/*.service ; do
substituteInPlace $f --replace /bin/kill ${coreutils}/bin/kill substituteInPlace $f --replace /bin/kill ${coreutils}/bin/kill
done done
@ -372,7 +370,7 @@ stdenv.mkDerivation rec {
passthru.tests.libvirtd = nixosTests.libvirtd; passthru.tests.libvirtd = nixosTests.libvirtd;
meta = { meta = with lib; {
description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes"; description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes";
homepage = "https://libvirt.org/"; homepage = "https://libvirt.org/";
changelog = "https://gitlab.com/libvirt/libvirt/-/raw/v${version}/NEWS.rst"; changelog = "https://gitlab.com/libvirt/libvirt/-/raw/v${version}/NEWS.rst";

View file

@ -10,8 +10,6 @@
libvirt, libvirt,
xenSupport ? true }: xenSupport ? true }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libvmi"; pname = "libvmi";
version = "0.12.0"; version = "0.12.0";
@ -24,16 +22,16 @@ stdenv.mkDerivation rec {
sha256 = "0wbi2nasb1gbci6cq23g6kq7i10rwi1y7r44rl03icr5prqjpdyv"; sha256 = "0wbi2nasb1gbci6cq23g6kq7i10rwi1y7r44rl03icr5prqjpdyv";
}; };
buildInputs = [ glib libvirt json_c ] ++ (optional xenSupport xen); buildInputs = [ glib libvirt json_c ] ++ (lib.optional xenSupport xen);
nativeBuildInputs = [ autoreconfHook bison flex pkg-config ]; nativeBuildInputs = [ autoreconfHook bison flex pkg-config ];
configureFlags = optional (!xenSupport) "--disable-xen"; configureFlags = lib.optional (!xenSupport) "--disable-xen";
# libvmi uses dlopen() for the xen libraries, however autoPatchelfHook doesn't work here # libvmi uses dlopen() for the xen libraries, however autoPatchelfHook doesn't work here
postFixup = optionalString xenSupport '' postFixup = lib.optionalString xenSupport ''
libvmi="$out/lib/libvmi.so.${libVersion}" libvmi="$out/lib/libvmi.so.${libVersion}"
oldrpath=$(patchelf --print-rpath "$libvmi") oldrpath=$(patchelf --print-rpath "$libvmi")
patchelf --set-rpath "$oldrpath:${makeLibraryPath [ xen ]}" "$libvmi" patchelf --set-rpath "$oldrpath:${lib.makeLibraryPath [ xen ]}" "$libvmi"
''; '';
meta = with lib; { meta = with lib; {

View file

@ -1,7 +1,5 @@
{ stdenv, lib, fetchFromGitHub, autoreconfHook }: { stdenv, lib, fetchFromGitHub, autoreconfHook }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libytnef"; pname = "libytnef";
version = "2.0"; version = "2.0";
@ -15,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
meta = { meta = with lib; {
inherit (src.meta) homepage; inherit (src.meta) homepage;
description = "Yeraze's TNEF Stream Reader - for winmail.dat files"; description = "Yeraze's TNEF Stream Reader - for winmail.dat files";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;

View file

@ -36,13 +36,11 @@
- libOSMesa is in $osmesa (~4 MB) - libOSMesa is in $osmesa (~4 MB)
*/ */
with lib;
let let
# Release calendar: https://www.mesa3d.org/release-calendar.html # Release calendar: https://www.mesa3d.org/release-calendar.html
# Release frequency: https://www.mesa3d.org/releasing.html#schedule # Release frequency: https://www.mesa3d.org/releasing.html#schedule
version = "22.3.3"; version = "22.3.3";
branch = versions.major version; branch = lib.versions.major version;
withLibdrm = lib.meta.availableOn stdenv.hostPlatform libdrm; withLibdrm = lib.meta.availableOn stdenv.hostPlatform libdrm;
@ -115,43 +113,43 @@ self = stdenv.mkDerivation {
"-Ddisk-cache-key=${placeholder "drivers"}" "-Ddisk-cache-key=${placeholder "drivers"}"
"-Ddri-search-path=${libglvnd.driverLink}/lib/dri" "-Ddri-search-path=${libglvnd.driverLink}/lib/dri"
"-Dplatforms=${concatStringsSep "," eglPlatforms}" "-Dplatforms=${lib.concatStringsSep "," eglPlatforms}"
"-Dgallium-drivers=${concatStringsSep "," galliumDrivers}" "-Dgallium-drivers=${lib.concatStringsSep "," galliumDrivers}"
"-Dvulkan-drivers=${concatStringsSep "," vulkanDrivers}" "-Dvulkan-drivers=${lib.concatStringsSep "," vulkanDrivers}"
"-Ddri-drivers-path=${placeholder "drivers"}/lib/dri" "-Ddri-drivers-path=${placeholder "drivers"}/lib/dri"
"-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau" "-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau"
"-Domx-libs-path=${placeholder "drivers"}/lib/bellagio" "-Domx-libs-path=${placeholder "drivers"}/lib/bellagio"
"-Dva-libs-path=${placeholder "drivers"}/lib/dri" "-Dva-libs-path=${placeholder "drivers"}/lib/dri"
"-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d" "-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d"
"-Dgallium-nine=${boolToString enableGalliumNine}" # Direct3D in Wine "-Dgallium-nine=${lib.boolToString enableGalliumNine}" # Direct3D in Wine
"-Dosmesa=${boolToString enableOSMesa}" # used by wine "-Dosmesa=${lib.boolToString enableOSMesa}" # used by wine
"-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12) "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
# To enable non-mesa gbm backends to be found (e.g. Nvidia) # To enable non-mesa gbm backends to be found (e.g. Nvidia)
"-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm" "-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm"
] ++ optionals stdenv.isLinux [ ] ++ lib.optionals stdenv.isLinux [
"-Dglvnd=true" "-Dglvnd=true"
] ++ optionals enableOpenCL [ ] ++ lib.optionals enableOpenCL [
"-Dgallium-opencl=icd" # Enable the gallium OpenCL frontend "-Dgallium-opencl=icd" # Enable the gallium OpenCL frontend
"-Dgallium-rusticl=true" "-Drust_std=2021" "-Dgallium-rusticl=true" "-Drust_std=2021"
"-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib" "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib"
] ++ optional enablePatentEncumberedCodecs ] ++ lib.optional enablePatentEncumberedCodecs
"-Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec" "-Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec"
++ optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}"; ++ lib.optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}";
buildInputs = with xorg; [ buildInputs = with xorg; [
expat llvmPackages.libllvm libglvnd xorgproto expat llvmPackages.libllvm libglvnd xorgproto
libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr
libffi libvdpau libelf libXvMC libffi libvdpau libelf libXvMC
libpthreadstubs openssl /*or another sha1 provider*/ libpthreadstubs openssl /*or another sha1 provider*/
] ++ lib.optionals (elem "wayland" eglPlatforms) [ wayland wayland-protocols ] ] ++ lib.optionals (lib.elem "wayland" eglPlatforms) [ wayland wayland-protocols ]
++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ] ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ]
++ lib.optionals stdenv.isDarwin [ libunwind ] ++ lib.optionals stdenv.isDarwin [ libunwind ]
++ lib.optionals enableOpenCL [ libclc llvmPackages.clang llvmPackages.clang-unwrapped rustc rust-bindgen' spirv-llvm-translator_14 ] ++ lib.optionals enableOpenCL [ libclc llvmPackages.clang llvmPackages.clang-unwrapped rustc rust-bindgen' spirv-llvm-translator_14 ]
++ lib.optional withValgrind valgrind-light ++ lib.optional withValgrind valgrind-light
# Mesa will not build zink when gallium-drivers=auto # Mesa will not build zink when gallium-drivers=auto
++ lib.optional (elem "zink" galliumDrivers) vulkan-loader; ++ lib.optional (lib.elem "zink" galliumDrivers) vulkan-loader;
depsBuildBuild = [ pkg-config ]; depsBuildBuild = [ pkg-config ];
@ -160,21 +158,21 @@ self = stdenv.mkDerivation {
intltool bison flex file intltool bison flex file
python3Packages.python python3Packages.Mako python3Packages.python python3Packages.Mako
jdupes glslang jdupes glslang
] ++ lib.optionals (elem "wayland" eglPlatforms) [ ] ++ lib.optionals (lib.elem "wayland" eglPlatforms) [
wayland-scanner wayland-scanner
]; ];
propagatedBuildInputs = with xorg; [ propagatedBuildInputs = with xorg; [
libXdamage libXxf86vm libXdamage libXxf86vm
] ++ optional withLibdrm libdrm ] ++ lib.optional withLibdrm libdrm
++ optionals stdenv.isDarwin [ OpenGL Xplugin ]; ++ lib.optionals stdenv.isDarwin [ OpenGL Xplugin ];
doCheck = false; doCheck = false;
postInstall = '' postInstall = ''
# Some installs don't have any drivers so this directory is never created. # Some installs don't have any drivers so this directory is never created.
mkdir -p $drivers $osmesa mkdir -p $drivers $osmesa
'' + optionalString stdenv.isLinux '' '' + lib.optionalString stdenv.isLinux ''
mkdir -p $drivers/lib mkdir -p $drivers/lib
if [ -n "$(shopt -s nullglob; echo "$out/lib/libxatracker"*)" -o -n "$(shopt -s nullglob; echo "$out/lib/libvulkan_"*)" ]; then if [ -n "$(shopt -s nullglob; echo "$out/lib/libxatracker"*)" -o -n "$(shopt -s nullglob; echo "$out/lib/libvulkan_"*)" ]; then
@ -199,7 +197,7 @@ self = stdenv.mkDerivation {
for js in $drivers/share/vulkan/icd.d/*.json; do for js in $drivers/share/vulkan/icd.d/*.json; do
substituteInPlace "$js" --replace "$out" "$drivers" substituteInPlace "$js" --replace "$out" "$drivers"
done done
'' + optionalString enableOpenCL '' '' + lib.optionalString enableOpenCL ''
# Move OpenCL stuff # Move OpenCL stuff
mkdir -p $opencl/lib mkdir -p $opencl/lib
mv -t "$opencl/lib/" \ mv -t "$opencl/lib/" \
@ -221,7 +219,7 @@ self = stdenv.mkDerivation {
done done
''; '';
postFixup = optionalString stdenv.isLinux '' postFixup = lib.optionalString stdenv.isLinux ''
# set the default search path for DRI drivers; used e.g. by X server # set the default search path for DRI drivers; used e.g. by X server
substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace "$drivers" "${libglvnd.driverLink}" substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace "$drivers" "${libglvnd.driverLink}"
[ -f "$dev/lib/pkgconfig/d3d.pc" ] && substituteInPlace "$dev/lib/pkgconfig/d3d.pc" --replace "$drivers" "${libglvnd.driverLink}" [ -f "$dev/lib/pkgconfig/d3d.pc" ] && substituteInPlace "$dev/lib/pkgconfig/d3d.pc" --replace "$drivers" "${libglvnd.driverLink}"
@ -252,7 +250,7 @@ self = stdenv.mkDerivation {
done done
''; '';
NIX_CFLAGS_COMPILE = optionals stdenv.isDarwin [ "-fno-common" ] ++ lib.optionals enableOpenCL [ NIX_CFLAGS_COMPILE = lib.optionals stdenv.isDarwin [ "-fno-common" ] ++ lib.optionals enableOpenCL [
"-UPIPE_SEARCH_DIR" "-UPIPE_SEARCH_DIR"
"-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\"" "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\""
]; ];
@ -274,7 +272,7 @@ self = stdenv.mkDerivation {
}; };
}; };
meta = { meta = with lib; {
description = "An open source 3D graphics library"; description = "An open source 3D graphics library";
longDescription = '' longDescription = ''
The Mesa project began as an open-source implementation of the OpenGL The Mesa project began as an open-source implementation of the OpenGL

View file

@ -1,10 +1,10 @@
{ stdenv, lib, nuspell, makeWrapper, dicts ? [] }: { stdenv, lib, nuspell, makeWrapper, dicts ? [] }:
with lib;
let let
searchPath = makeSearchPath "share/hunspell" dicts; searchPath = lib.makeSearchPath "share/hunspell" dicts;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = (appendToName "with-dicts" nuspell).name; name = (lib.appendToName "with-dicts" nuspell).name;
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
buildCommand = '' buildCommand = ''
makeWrapper ${nuspell}/bin/nuspell $out/bin/nuspell --prefix DICPATH : ${lib.escapeShellArg searchPath} makeWrapper ${nuspell}/bin/nuspell $out/bin/nuspell --prefix DICPATH : ${lib.escapeShellArg searchPath}

View file

@ -3,7 +3,6 @@
OpenCL, Cocoa OpenCL, Cocoa
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "opencascade-oce"; pname = "opencascade-oce";
version = "0.18.3"; version = "0.18.3";
@ -20,7 +19,7 @@ stdenv.mkDerivation rec {
libGL libGLU libXmu freetype fontconfig expat freeimage vtk_8 libGL libGLU libXmu freetype fontconfig expat freeimage vtk_8
gl2ps tbb gl2ps tbb
] ]
++ optionals stdenv.isDarwin [OpenCL Cocoa] ++ lib.optionals stdenv.isDarwin [OpenCL Cocoa]
; ;
cmakeFlags = [ cmakeFlags = [
@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
"-DOCE_WITH_GL2PS=ON" "-DOCE_WITH_GL2PS=ON"
"-DOCE_MULTITHREAD_LIBRARY=TBB" "-DOCE_MULTITHREAD_LIBRARY=TBB"
] ]
++ optionals stdenv.isDarwin ["-DOCE_OSX_USE_COCOA=ON" "-DOCE_WITH_OPENCL=ON"]; ++ lib.optionals stdenv.isDarwin ["-DOCE_OSX_USE_COCOA=ON" "-DOCE_WITH_OPENCL=ON"];
patches = [ patches = [
# Use fontconfig instead of hardcoded directory list # Use fontconfig instead of hardcoded directory list
@ -56,7 +55,7 @@ stdenv.mkDerivation rec {
--replace FONTCONFIG_LIBRARIES FONTCONFIG_LINK_LIBRARIES --replace FONTCONFIG_LIBRARIES FONTCONFIG_LINK_LIBRARIES
''; '';
meta = { meta = with lib; {
description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation"; description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
homepage = "https://github.com/tpaviot/oce"; homepage = "https://github.com/tpaviot/oce";
maintainers = [ maintainers.viric ]; maintainers = [ maintainers.viric ];

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchzip }: { lib, stdenv, fetchzip }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.94"; version = "0.94";
pname = "pcg-c"; pname = "pcg-c";
@ -31,8 +29,8 @@ stdenv.mkDerivation rec {
algorithms for random number generation. Unlike many general-purpose RNGs, algorithms for random number generation. Unlike many general-purpose RNGs,
they are also hard to predict. they are also hard to predict.
''; '';
platforms = platforms.unix; platforms = lib.platforms.unix;
maintainers = [ maintainers.linus ]; maintainers = [ lib.maintainers.linus ];
broken = stdenv.isi686; # https://github.com/imneme/pcg-c/issues/11 broken = stdenv.isi686; # https://github.com/imneme/pcg-c/issues/11
}; };
} }

View file

@ -3,9 +3,7 @@
, variant ? null , variant ? null
}: }:
with lib; assert lib.elem variant [ null "cpp" "pcre16" "pcre32" ];
assert elem variant [ null "cpp" "pcre16" "pcre32" ];
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pcre" pname = "pcre"
@ -21,11 +19,11 @@ stdenv.mkDerivation rec {
outputs = [ "bin" "dev" "out" "doc" "man" ]; outputs = [ "bin" "dev" "out" "doc" "man" ];
# Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51 # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51
configureFlags = optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto" ++ [ configureFlags = lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto" ++ [
"--enable-unicode-properties" "--enable-unicode-properties"
"--disable-cpp" "--disable-cpp"
] ]
++ optional (variant != null) "--enable-${variant}"; ++ lib.optional (variant != null) "--enable-${variant}";
# https://bugs.exim.org/show_bug.cgi?id=2173 # https://bugs.exim.org/show_bug.cgi?id=2173
patches = [ ./stacksize-detection.patch ]; patches = [ ./stacksize-detection.patch ];
@ -40,7 +38,7 @@ stdenv.mkDerivation rec {
postFixup = '' postFixup = ''
moveToOutput bin/pcre-config "$dev" moveToOutput bin/pcre-config "$dev"
'' + optionalString (variant != null) '' '' + lib.optionalString (variant != null) ''
ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib,*a} ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib,*a}
''; '';
@ -57,7 +55,7 @@ stdenv.mkDerivation rec {
PCRE library is free, even for building proprietary software. PCRE library is free, even for building proprietary software.
''; '';
platforms = platforms.all; platforms = lib.platforms.all;
maintainers = with maintainers; [ ]; maintainers = with lib.maintainers; [ ];
}; };
} }

View file

@ -3,8 +3,6 @@
, debug ? false , debug ? false
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "phonon-backend-gstreamer"; pname = "phonon-backend-gstreamer";
version = "4.10.0"; version = "4.10.0";

View file

@ -12,8 +12,6 @@
, debug ? false , debug ? false
}: }:
with lib;
let let
soname = "phonon4qt5"; soname = "phonon4qt5";
buildsystemdir = "share/cmake/${soname}"; buildsystemdir = "share/cmake/${soname}";

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchurl, gfortran, opencl-headers, clblas, ocl-icd, mkl, intel-ocl }: { lib, stdenv, fetchurl, gfortran, opencl-headers, clblas, ocl-icd, mkl, intel-ocl }:
with lib;
let let
incfile = builtins.toFile "make.inc.custom" '' incfile = builtins.toFile "make.inc.custom" ''
CC = g++ CC = g++

View file

@ -32,8 +32,6 @@
, python3 , python3
}: }:
with lib;
let blas64_ = blas64; in let blas64_ = blas64; in
let let
@ -121,7 +119,7 @@ let
blas64 = blas64 =
if blas64_ != null if blas64_ != null
then blas64_ then blas64_
else hasPrefix "x86_64" stdenv.hostPlatform.system; else lib.hasPrefix "x86_64" stdenv.hostPlatform.system;
# Convert flag values to format OpenBLAS's build expects. # Convert flag values to format OpenBLAS's build expects.
# `toString` is almost what we need other than bools, # `toString` is almost what we need other than bools,
# which we need to map {true -> 1, false -> 0} # which we need to map {true -> 1, false -> 0}
@ -129,7 +127,7 @@ let
mkMakeFlagValue = val: mkMakeFlagValue = val:
if !builtins.isBool val then toString val if !builtins.isBool val then toString val
else if val then "1" else "0"; else if val then "1" else "0";
mkMakeFlagsFromConfig = mapAttrsToList (var: val: "${var}=${mkMakeFlagValue val}"); mkMakeFlagsFromConfig = lib.mapAttrsToList (var: val: "${var}=${mkMakeFlagValue val}");
shlibExt = stdenv.hostPlatform.extensions.sharedLibrary; shlibExt = stdenv.hostPlatform.extensions.sharedLibrary;

View file

@ -1,6 +1,5 @@
{ gnustep, lib, fetchFromGitHub , libxml2, openssl { gnustep, lib, fetchFromGitHub , libxml2, openssl
, openldap, mariadb, libmysqlclient, postgresql }: , openldap, mariadb, libmysqlclient, postgresql }:
with lib;
gnustep.stdenv.mkDerivation rec { gnustep.stdenv.mkDerivation rec {
pname = "sope"; pname = "sope";
@ -15,10 +14,10 @@ gnustep.stdenv.mkDerivation rec {
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
nativeBuildInputs = [ gnustep.make ]; nativeBuildInputs = [ gnustep.make ];
buildInputs = flatten ([ gnustep.base libxml2 openssl ] buildInputs = lib.flatten ([ gnustep.base libxml2 openssl ]
++ optional (openldap != null) openldap ++ lib.optional (openldap != null) openldap
++ optionals (mariadb != null) [ libmysqlclient mariadb ] ++ lib.optionals (mariadb != null) [ libmysqlclient mariadb ]
++ optional (postgresql != null) postgresql); ++ lib.optional (postgresql != null) postgresql);
postPatch = '' postPatch = ''
# Exclude NIX_ variables # Exclude NIX_ variables
@ -30,9 +29,9 @@ gnustep.stdenv.mkDerivation rec {
''; '';
configureFlags = [ "--prefix=" "--disable-debug" "--enable-xml" "--with-ssl=ssl" ] configureFlags = [ "--prefix=" "--disable-debug" "--enable-xml" "--with-ssl=ssl" ]
++ optional (openldap != null) "--enable-openldap" ++ lib.optional (openldap != null) "--enable-openldap"
++ optional (mariadb != null) "--enable-mysql" ++ lib.optional (mariadb != null) "--enable-mysql"
++ optional (postgresql != null) "--enable-postgresql"; ++ lib.optional (postgresql != null) "--enable-postgresql";
# Yes, this is ugly. # Yes, this is ugly.
preFixup = '' preFixup = ''
@ -40,7 +39,7 @@ gnustep.stdenv.mkDerivation rec {
rm -rf $out/nix/store rm -rf $out/nix/store
''; '';
meta = { meta = with lib; {
description = "An extensive set of frameworks which form a complete Web application server environment"; description = "An extensive set of frameworks which form a complete Web application server environment";
license = licenses.publicDomain; license = licenses.publicDomain;
homepage = "https://github.com/inverse-inc/sope"; homepage = "https://github.com/inverse-inc/sope";

View file

@ -1,11 +1,9 @@
lib: version: lib: version:
with lib;
let let
fragments = splitVersion version; fragments = lib.splitVersion version;
major = head fragments; major = lib.head fragments;
minor = concatMapStrings (fixedWidthNumber 2) (tail fragments); minor = lib.concatMapStrings (lib.fixedWidthNumber 2) (lib.tail fragments);
in in
major + minor + "00" major + minor + "00"

View file

@ -9,14 +9,12 @@
, enableDeserialize ? false , enableDeserialize ? false
}: }:
with lib;
let let
archiveVersion = import ./archive-version.nix lib; archiveVersion = import ./archive-version.nix lib;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sqlite${optionalString interactive "-interactive"}"; pname = "sqlite${lib.optionalString interactive "-interactive"}";
version = "3.40.1"; version = "3.40.1";
# nixpkgs-update: no auto update # nixpkgs-update: no auto update
@ -29,14 +27,14 @@ stdenv.mkDerivation rec {
outputs = [ "bin" "dev" "out" ]; outputs = [ "bin" "dev" "out" ];
separateDebugInfo = stdenv.isLinux; separateDebugInfo = stdenv.isLinux;
buildInputs = [ zlib ] ++ optionals interactive [ readline ncurses ]; buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ];
# required for aarch64 but applied for all arches for simplicity # required for aarch64 but applied for all arches for simplicity
preConfigure = '' preConfigure = ''
patchShebangs configure patchShebangs configure
''; '';
configureFlags = [ "--enable-threadsafe" ] ++ optional interactive "--enable-readline"; configureFlags = [ "--enable-threadsafe" ] ++ lib.optional interactive "--enable-readline";
NIX_CFLAGS_COMPILE = toString ([ NIX_CFLAGS_COMPILE = toString ([
"-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_COLUMN_METADATA"
@ -94,7 +92,7 @@ stdenv.mkDerivation rec {
inherit sqldiff sqlite-analyzer tracker; inherit sqldiff sqlite-analyzer tracker;
}; };
meta = { meta = with lib; {
description = "A self-contained, serverless, zero-configuration, transactional SQL database engine"; description = "A self-contained, serverless, zero-configuration, transactional SQL database engine";
downloadPage = "https://sqlite.org/download.html"; downloadPage = "https://sqlite.org/download.html";
homepage = "https://www.sqlite.org/"; homepage = "https://www.sqlite.org/";

View file

@ -1,7 +1,6 @@
{ lib, stdenv, fetchFromGitHub, cmake, openssl { lib, stdenv, fetchFromGitHub, cmake, openssl
}: }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "srt"; pname = "srt";
version = "1.5.1"; version = "1.5.1";
@ -28,7 +27,7 @@ stdenv.mkDerivation rec {
"-UCMAKE_INSTALL_LIBDIR" "-UCMAKE_INSTALL_LIBDIR"
]; ];
meta = { meta = with lib; {
description = "Secure, Reliable, Transport"; description = "Secure, Reliable, Transport";
homepage = "https://github.com/Haivision/srt"; homepage = "https://github.com/Haivision/srt";
license = licenses.mpl20; license = licenses.mpl20;

View file

@ -1,7 +1,5 @@
{lib, stdenv, fetchFromGitHub, cmake}: {lib, stdenv, fetchFromGitHub, cmake}:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "unittest-cpp"; pname = "unittest-cpp";
version = "2.0.0"; version = "2.0.0";
@ -20,7 +18,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = "https://github.com/unittest-cpp/unittest-cpp"; homepage = "https://github.com/unittest-cpp/unittest-cpp";
description = "Lightweight unit testing framework for C++"; description = "Lightweight unit testing framework for C++";
license = licenses.mit; license = lib.licenses.mit;
maintainers = []; maintainers = [];
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
}; };

View file

@ -1,6 +1,5 @@
{ lib, stdenv, fetchurl, yasm, autoconf, automake, libtool }: { lib, stdenv, fetchurl, yasm, autoconf, automake, libtool }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "xvidcore"; pname = "xvidcore";
version = "1.3.7"; version = "1.3.7";
@ -13,7 +12,7 @@ stdenv.mkDerivation rec {
preConfigure = '' preConfigure = ''
# Configure script is not in the root of the source directory # Configure script is not in the root of the source directory
cd build/generic cd build/generic
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
# Undocumented darwin hack # Undocumented darwin hack
substituteInPlace configure --replace "-no-cpp-precomp" "" substituteInPlace configure --replace "-no-cpp-precomp" ""
''; '';
@ -21,22 +20,22 @@ stdenv.mkDerivation rec {
configureFlags = [ ] configureFlags = [ ]
# Undocumented darwin hack (assembly is probably disabled due to an # Undocumented darwin hack (assembly is probably disabled due to an
# issue with nasm, however yasm is now used) # issue with nasm, however yasm is now used)
++ optional stdenv.isDarwin "--enable-macosx_module --disable-assembly"; ++ lib.optional stdenv.isDarwin "--enable-macosx_module --disable-assembly";
nativeBuildInputs = [ ] nativeBuildInputs = [ ]
++ optional (!stdenv.isDarwin) yasm; ++ lib.optional (!stdenv.isDarwin) yasm;
buildInputs = [ ] buildInputs = [ ]
# Undocumented darwin hack # Undocumented darwin hack
++ optionals stdenv.isDarwin [ autoconf automake libtool ]; ++ lib.optionals stdenv.isDarwin [ autoconf automake libtool ];
# Don't remove static libraries (e.g. 'libs/*.a') on darwin. They're needed to # Don't remove static libraries (e.g. 'libs/*.a') on darwin. They're needed to
# compile ffmpeg (and perhaps other things). # compile ffmpeg (and perhaps other things).
postInstall = optionalString (!stdenv.isDarwin) '' postInstall = lib.optionalString (!stdenv.isDarwin) ''
rm $out/lib/*.a rm $out/lib/*.a
''; '';
meta = { meta = with lib; {
description = "MPEG-4 video codec for PC"; description = "MPEG-4 video codec for PC";
homepage = "https://www.xvid.com/"; homepage = "https://www.xvid.com/";
license = licenses.gpl2; license = licenses.gpl2;

View file

@ -1,9 +1,7 @@
{ stdenv, lib, fetchurl, unzip, autoPatchelfHook }: { stdenv, lib, fetchurl, unzip, autoPatchelfHook }:
with lib;
let let
archPostfix = optionalString (stdenv.is64bit && !stdenv.isDarwin) "_64"; archPostfix = lib.optionalString (stdenv.is64bit && !stdenv.isDarwin) "_64";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "msp-debug-stack-bin"; pname = "msp-debug-stack-bin";
version = "3.15.1.1"; version = "3.15.1.1";
@ -26,7 +24,7 @@ in stdenv.mkDerivation rec {
install -Dm0644 -t $out/include Inc/*.h install -Dm0644 -t $out/include Inc/*.h
''; '';
meta = { meta = with lib; {
description = "Unfree binary release of the TI MSP430 FET debug driver"; description = "Unfree binary release of the TI MSP430 FET debug driver";
homepage = "https://www.ti.com/tool/MSPDS"; homepage = "https://www.ti.com/tool/MSPDS";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];

View file

@ -6,11 +6,10 @@
, libusb1 ? null , libusb1 ? null
}: }:
with lib;
assert stdenv.isLinux -> libusb1 != null; assert stdenv.isLinux -> libusb1 != null;
let let
hidapiDriver = optionalString stdenv.isLinux "-libusb"; hidapiDriver = lib.optionalString stdenv.isLinux "-libusb";
in stdenv.mkDerivation { in stdenv.mkDerivation {
pname = "msp-debug-stack"; pname = "msp-debug-stack";
@ -33,7 +32,7 @@ in stdenv.mkDerivation {
preBuild = '' preBuild = ''
rm ThirdParty/src/pugixml.cpp rm ThirdParty/src/pugixml.cpp
rm ThirdParty/include/pugi{config,xml}.hpp rm ThirdParty/include/pugi{config,xml}.hpp
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
makeFlagsArray+=(OUTNAME="-install_name ") makeFlagsArray+=(OUTNAME="-install_name ")
''; '';
@ -44,9 +43,9 @@ in stdenv.mkDerivation {
nativeBuildInputs = [ unzip ]; nativeBuildInputs = [ unzip ];
buildInputs = [ boost hidapi pugixml ] buildInputs = [ boost hidapi pugixml ]
++ optional stdenv.isLinux libusb1; ++ lib.optional stdenv.isLinux libusb1;
meta = { meta = with lib; {
description = "TI MSP430 FET debug driver"; description = "TI MSP430 FET debug driver";
homepage = "https://www.ti.com/tool/MSPDS"; homepage = "https://www.ti.com/tool/MSPDS";
license = licenses.bsd3; license = licenses.bsd3;

View file

@ -11,7 +11,7 @@
, version ? if lib.versionAtLeast ocaml.version "4.08" then "1.16.5" , version ? if lib.versionAtLeast ocaml.version "4.08" then "1.16.5"
else if lib.versionAtLeast ocaml.version "4.07" then "1.15.2" else "1.14.1" else if lib.versionAtLeast ocaml.version "4.07" then "1.15.2" else "1.14.1"
}: }:
with lib;
let fetched = coqPackages.metaFetch ({ let fetched = coqPackages.metaFetch ({
release."1.16.5".sha256 = "sha256-tKX5/cVPoBeHiUe+qn7c5FIRYCwY0AAukN7vSd/Nz9A="; release."1.16.5".sha256 = "sha256-tKX5/cVPoBeHiUe+qn7c5FIRYCwY0AAukN7vSd/Nz9A=";
release."1.15.2".sha256 = "sha256-XgopNP83POFbMNyl2D+gY1rmqGg03o++Ngv3zJfCn2s="; release."1.15.2".sha256 = "sha256-XgopNP83POFbMNyl2D+gY1rmqGg03o++Ngv3zJfCn2s=";
@ -31,17 +31,17 @@ buildDunePackage rec {
pname = "elpi"; pname = "elpi";
inherit (fetched) version src; inherit (fetched) version src;
patches = lib.optional (versionAtLeast version "1.16" || version == "dev") patches = lib.optional (lib.versionAtLeast version "1.16" || version == "dev")
./atd_2_10.patch; ./atd_2_10.patch;
minimalOCamlVersion = "4.04"; minimalOCamlVersion = "4.04";
buildInputs = [ perl ncurses ] buildInputs = [ perl ncurses ]
++ optional (versionAtLeast version "1.15" || version == "dev") menhir ++ lib.optional (lib.versionAtLeast version "1.15" || version == "dev") menhir
++ optional (versionAtLeast version "1.16" || version == "dev") atdgen; ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen;
propagatedBuildInputs = [ re stdlib-shims ] propagatedBuildInputs = [ re stdlib-shims ]
++ (if versionAtLeast version "1.15" || version == "dev" ++ (if lib.versionAtLeast version "1.15" || version == "dev"
then [ menhirLib ] then [ menhirLib ]
else [ camlp5 ] else [ camlp5 ]
) )
@ -50,7 +50,7 @@ buildDunePackage rec {
else [ ppxlib_0_15 ppx_deriving_0_15 ] else [ ppxlib_0_15 ppx_deriving_0_15 ]
); );
meta = { meta = with lib; {
description = "Embeddable λProlog Interpreter"; description = "Embeddable λProlog Interpreter";
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
maintainers = [ maintainers.vbgl ]; maintainers = [ maintainers.vbgl ];

View file

@ -1,8 +1,6 @@
{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg }: { stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, topkg }:
with lib; lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
throwIfNot (versionAtLeast ocaml.version "4.08")
"mtime is not available for OCaml ${ocaml.version}" "mtime is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -21,7 +19,7 @@ stdenv.mkDerivation rec {
inherit (topkg) buildPhase installPhase; inherit (topkg) buildPhase installPhase;
meta = { meta = with lib; {
description = "Monotonic wall-clock time for OCaml"; description = "Monotonic wall-clock time for OCaml";
homepage = "https://erratique.ch/software/mtime"; homepage = "https://erratique.ch/software/mtime";
inherit (ocaml.meta) platforms; inherit (ocaml.meta) platforms;

View file

@ -5,8 +5,6 @@
htmlcBackend ? true # depends on js_of_ocaml htmlcBackend ? true # depends on js_of_ocaml
}: }:
with lib;
let let
inherit (lib) optionals versionOlder; inherit (lib) optionals versionOlder;
@ -38,14 +36,14 @@ stdenv.mkDerivation {
strictDeps = true; strictDeps = true;
buildPhase = topkg.buildPhase buildPhase = topkg.buildPhase
+ " --with-uutf ${boolToString pdfBackend}" + " --with-uutf ${lib.boolToString pdfBackend}"
+ " --with-otfm ${boolToString pdfBackend}" + " --with-otfm ${lib.boolToString pdfBackend}"
+ " --with-js_of_ocaml ${boolToString htmlcBackend}" + " --with-js_of_ocaml ${lib.boolToString htmlcBackend}"
+ " --with-cairo2 false"; + " --with-cairo2 false";
inherit (topkg) installPhase; inherit (topkg) installPhase;
meta = { meta = with lib; {
description = "Declarative 2D vector graphics for OCaml"; description = "Declarative 2D vector graphics for OCaml";
longDescription = '' longDescription = ''
Vg is an OCaml module for declarative 2D vector graphics. In Vg, images Vg is an OCaml module for declarative 2D vector graphics. In Vg, images

View file

@ -1,6 +1,5 @@
{ lib, buildPythonPackage, fetchPypi, mock, nose, pytest, six }: { lib, buildPythonPackage, fetchPypi, mock, nose, pytest, six }:
with lib;
buildPythonPackage rec { buildPythonPackage rec {
pname = "mohawk"; pname = "mohawk";
version = "1.1.0"; version = "1.1.0";
@ -21,7 +20,7 @@ buildPythonPackage rec {
meta = { meta = {
description = "Python library for Hawk HTTP authorization."; description = "Python library for Hawk HTTP authorization.";
homepage = "https://github.com/kumar303/mohawk"; homepage = "https://github.com/kumar303/mohawk";
license = licenses.mpl20; license = lib.licenses.mpl20;
maintainers = [ ]; maintainers = [ ];
}; };
} }

View file

@ -1,8 +1,6 @@
{ lib, stdenv, fetchurl, jre, writeScript, common-updater-scripts, git, nixfmt { lib, stdenv, fetchurl, jre, writeScript, common-updater-scripts, git, nixfmt
, nix, coreutils, gnused, disableRemoteLogging ? true }: , nix, coreutils, gnused, disableRemoteLogging ? true }:
with lib;
let let
repo = "git@github.com:lihaoyi/Ammonite.git"; repo = "git@github.com:lihaoyi/Ammonite.git";
@ -22,7 +20,7 @@ let
installPhase = '' installPhase = ''
install -Dm755 $src $out/bin/amm install -Dm755 $src $out/bin/amm
sed -i '0,/java/{s|java|${jre}/bin/java|}' $out/bin/amm sed -i '0,/java/{s|java|${jre}/bin/java|}' $out/bin/amm
'' + optionalString (disableRemoteLogging) '' '' + lib.optionalString (disableRemoteLogging) ''
sed -i "0,/ammonite.Main/{s|ammonite.Main'|ammonite.Main' --no-remote-logging|}" $out/bin/amm sed -i "0,/ammonite.Main/{s|ammonite.Main'|ammonite.Main' --no-remote-logging|}" $out/bin/amm
sed -i '1i #!/bin/sh' $out/bin/amm sed -i '1i #!/bin/sh' $out/bin/amm
''; '';
@ -66,7 +64,7 @@ let
runHook postInstallCheck runHook postInstallCheck
''; '';
meta = { meta = with lib; {
description = "Improved Scala REPL"; description = "Improved Scala REPL";
longDescription = '' longDescription = ''
The Ammonite-REPL is an improved Scala REPL, re-implemented from first principles. The Ammonite-REPL is an improved Scala REPL, re-implemented from first principles.

View file

@ -1,7 +1,5 @@
{ lib, fetchFromGitHub, buildGoModule }: { lib, fetchFromGitHub, buildGoModule }:
with lib;
buildGoModule rec { buildGoModule rec {
pname = "butane"; pname = "butane";
version = "0.17.0"; version = "0.17.0";
@ -27,7 +25,7 @@ buildGoModule rec {
mv $out/bin/{internal,butane} mv $out/bin/{internal,butane}
''; '';
meta = { meta = with lib; {
description = "Translates human-readable Butane configs into machine-readable Ignition configs"; description = "Translates human-readable Butane configs into machine-readable Ignition configs";
license = licenses.asl20; license = licenses.asl20;
homepage = "https://github.com/coreos/butane"; homepage = "https://github.com/coreos/butane";

View file

@ -18,13 +18,12 @@
, zlib , zlib
}: }:
with lib;
let let
pVersion = "1.13.0.20220615"; pVersion = "1.13.0.20220615";
pVersionTriple = splitVersion pVersion; pVersionTriple = lib.splitVersion pVersion;
majorVersion = elemAt pVersionTriple 0; majorVersion = lib.elemAt pVersionTriple 0;
minorVersion = elemAt pVersionTriple 1; minorVersion = lib.elemAt pVersionTriple 1;
patchVersion = elemAt pVersionTriple 2; patchVersion = lib.elemAt pVersionTriple 2;
baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}"; baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
jdk = jdk11; jdk = jdk11;
in in

View file

@ -1,5 +1,4 @@
{ lib, stdenv, makeWrapper, requireFile, gcc, unzip }: { lib, stdenv, makeWrapper, requireFile, gcc, unzip }:
with lib;
# v2.1: last version with NHM/WSM arch support # v2.1: last version with NHM/WSM arch support
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -17,17 +16,17 @@ stdenv.mkDerivation rec {
cp bin/iaca $out/bin/ cp bin/iaca $out/bin/
cp lib/* $out/lib cp lib/* $out/lib
''; '';
preFixup = let libPath = makeLibraryPath [ stdenv.cc.cc.lib gcc ]; in '' preFixup = let libPath = lib.makeLibraryPath [ stdenv.cc.cc.lib gcc ]; in ''
patchelf \ patchelf \
--set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 \ --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 \
--set-rpath $out/lib:"${libPath}" \ --set-rpath $out/lib:"${libPath}" \
$out/bin/iaca $out/bin/iaca
''; '';
postFixup = "wrapProgram $out/bin/iaca --set LD_LIBRARY_PATH $out/lib"; postFixup = "wrapProgram $out/bin/iaca --set LD_LIBRARY_PATH $out/lib";
meta = { meta = with lib; {
description = "Intel Architecture Code Analyzer"; description = "Intel Architecture Code Analyzer";
homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/"; homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ kazcw ]; maintainers = with maintainers; [ kazcw ];

View file

@ -1,5 +1,4 @@
{ lib, stdenv, requireFile, unzip }: { lib, stdenv, requireFile, unzip }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iaca"; pname = "iaca";
@ -15,10 +14,10 @@ stdenv.mkDerivation rec {
cp iaca $out/bin cp iaca $out/bin
patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $out/bin/iaca patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $out/bin/iaca
''; '';
meta = { meta = with lib; {
description = "Intel Architecture Code Analyzer"; description = "Intel Architecture Code Analyzer";
homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/"; homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ kazcw ]; maintainers = with maintainers; [ kazcw ];

View file

@ -1,7 +1,5 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
with lib;
buildGoModule rec { buildGoModule rec {
pname = "kind"; pname = "kind";
version = "0.17.0"; version = "0.17.0";
@ -36,11 +34,11 @@ buildGoModule rec {
done done
''; '';
meta = { meta = with lib; {
description = "Kubernetes IN Docker - local clusters for testing Kubernetes"; description = "Kubernetes IN Docker - local clusters for testing Kubernetes";
homepage = "https://github.com/kubernetes-sigs/kind"; homepage = "https://github.com/kubernetes-sigs/kind";
maintainers = with maintainers; [ offline rawkode ]; maintainers = with maintainers; [ offline rawkode ];
license = lib.licenses.asl20; license = licenses.asl20;
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View file

@ -9,11 +9,10 @@
, which , which
}: }:
with lib;
let let
nodejs = nodejs-16_x; nodejs = nodejs-16_x;
inherit (builtins) elemAt; inherit (builtins) elemAt;
info = splitString "-" stdenv.hostPlatform.system; info = lib.splitString "-" stdenv.hostPlatform.system;
arch = elemAt info 0; arch = elemAt info 0;
plat = elemAt info 1; plat = elemAt info 1;
shas = shas =
@ -50,7 +49,7 @@ in stdenv.mkDerivation rec {
sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
''; '';
meta = { meta = with lib; {
description = "Visualize logs and time-stamped data"; description = "Visualize logs and time-stamped data";
homepage = "http://www.elasticsearch.org/overview/kibana"; homepage = "http://www.elasticsearch.org/overview/kibana";
license = licenses.elastic; license = licenses.elastic;

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchurl, libiconv, vanilla ? false }: { lib, stdenv, fetchurl, libiconv, vanilla ? false }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pkg-config"; pname = "pkg-config";
version = "0.29.2"; version = "0.29.2";
@ -17,20 +15,20 @@ stdenv.mkDerivation rec {
# Process Requires.private properly, see # Process Requires.private properly, see
# http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to # http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to
# https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/28 # https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/28
patches = optional (!vanilla) ./requires-private.patch patches = lib.optional (!vanilla) ./requires-private.patch
++ optional stdenv.isCygwin ./2.36.3-not-win32.patch; ++ lib.optional stdenv.isCygwin ./2.36.3-not-win32.patch;
# These three tests fail due to a (desired) behavior change from our ./requires-private.patch # These three tests fail due to a (desired) behavior change from our ./requires-private.patch
postPatch = if vanilla then null else '' postPatch = if vanilla then null else ''
rm -f check/check-requires-private check/check-gtk check/missing rm -f check/check-requires-private check/check-gtk check/missing
''; '';
buildInputs = optional (stdenv.isCygwin || stdenv.isDarwin || stdenv.isSunOS) libiconv; buildInputs = lib.optional (stdenv.isCygwin || stdenv.isDarwin || stdenv.isSunOS) libiconv;
configureFlags = [ "--with-internal-glib" ] configureFlags = [ "--with-internal-glib" ]
++ optionals (stdenv.isSunOS) [ "--with-libiconv=gnu" "--with-system-library-path" "--with-system-include-path" "CFLAGS=-DENABLE_NLS" ] ++ lib.optionals (stdenv.isSunOS) [ "--with-libiconv=gnu" "--with-system-library-path" "--with-system-include-path" "CFLAGS=-DENABLE_NLS" ]
# Can't run these tests while cross-compiling # Can't run these tests while cross-compiling
++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform)
[ "glib_cv_stack_grows=no" [ "glib_cv_stack_grows=no"
"glib_cv_uscore=no" "glib_cv_uscore=no"
"ac_cv_func_posix_getpwuid_r=yes" "ac_cv_func_posix_getpwuid_r=yes"
@ -42,7 +40,7 @@ stdenv.mkDerivation rec {
postInstall = ''rm -f "$out"/bin/*-pkg-config''; # clean the duplicate file postInstall = ''rm -f "$out"/bin/*-pkg-config''; # clean the duplicate file
meta = { meta = with lib; {
description = "A tool that allows packages to find out information about other packages"; description = "A tool that allows packages to find out information about other packages";
homepage = "http://pkg-config.freedesktop.org/wiki/"; homepage = "http://pkg-config.freedesktop.org/wiki/";
platforms = platforms.all; platforms = platforms.all;

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchFromGitHub, libuuid, cacert, Foundation, readline }: { lib, stdenv, fetchFromGitHub, libuuid, cacert, Foundation, readline }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "premake5"; pname = "premake5";
version = "5.0.0-beta2"; version = "5.0.0-beta2";
@ -13,13 +11,13 @@ stdenv.mkDerivation rec {
sha256 = "sha256-2R5gq4jaQsp8Ny1oGuIYkef0kn2UG9jMf20vq0714oY="; sha256 = "sha256-2R5gq4jaQsp8Ny1oGuIYkef0kn2UG9jMf20vq0714oY=";
}; };
buildInputs = [ libuuid ] ++ optionals stdenv.isDarwin [ Foundation readline ]; buildInputs = [ libuuid ] ++ lib.optionals stdenv.isDarwin [ Foundation readline ];
patches = [ ./no-curl-ca.patch ]; patches = [ ./no-curl-ca.patch ];
patchPhase = '' patchPhase = ''
substituteInPlace contrib/curl/premake5.lua \ substituteInPlace contrib/curl/premake5.lua \
--replace "ca = nil" "ca = '${cacert}/etc/ssl/certs/ca-bundle.crt'" --replace "ca = nil" "ca = '${cacert}/etc/ssl/certs/ca-bundle.crt'"
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
substituteInPlace premake5.lua \ substituteInPlace premake5.lua \
--replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.5 --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.5
''; '';
@ -42,7 +40,7 @@ stdenv.mkDerivation rec {
homepage = "https://premake.github.io"; homepage = "https://premake.github.io";
description = "A simple build configuration and project generation tool using lua"; description = "A simple build configuration and project generation tool using lua";
license = lib.licenses.bsd3; license = lib.licenses.bsd3;
platforms = platforms.darwin ++ platforms.linux; platforms = lib.platforms.darwin ++ lib.platforms.linux;
broken = stdenv.isDarwin && stdenv.isAarch64; broken = stdenv.isDarwin && stdenv.isAarch64;
}; };
} }

View file

@ -3,8 +3,6 @@
, withDocumentation ? false, withClangPlugins ? true , withDocumentation ? false, withClangPlugins ? true
}: }:
with lib;
let let
# Fetch clang from qt vendor, this contains submodules like this: # Fetch clang from qt vendor, this contains submodules like this:
# clang<-clang-tools-extra<-clazy. # clang<-clang-tools-extra<-clazy.
@ -31,7 +29,7 @@ mkDerivation rec {
}; };
buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative elfutils.dev ] ++ buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative elfutils.dev ] ++
optionals withClangPlugins [ llvmPackages_8.libclang lib.optionals withClangPlugins [ llvmPackages_8.libclang
clang_qt_vendor clang_qt_vendor
llvmPackages_8.llvm ]; llvmPackages_8.llvm ];
@ -47,9 +45,9 @@ mkDerivation rec {
doCheck = true; doCheck = true;
buildFlags = optional withDocumentation "docs"; buildFlags = lib.optional withDocumentation "docs";
installFlags = [ "INSTALL_ROOT=$(out)" ] ++ optional withDocumentation "install_docs"; installFlags = [ "INSTALL_ROOT=$(out)" ] ++ lib.optional withDocumentation "install_docs";
qtWrapperArgs = [ "--set-default PERFPROFILER_PARSER_FILEPATH ${lib.getBin perf}/bin" ]; qtWrapperArgs = [ "--set-default PERFPROFILER_PARSER_FILEPATH ${lib.getBin perf}/bin" ];
@ -58,7 +56,7 @@ mkDerivation rec {
--replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls' --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls'
substituteInPlace src/libs/libs.pro \ substituteInPlace src/libs/libs.pro \
--replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls' --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls'
'' + optionalString withClangPlugins '' '' + lib.optionalString withClangPlugins ''
# Fix paths for llvm/clang includes directories. # Fix paths for llvm/clang includes directories.
substituteInPlace src/shared/clang/clang_defines.pri \ substituteInPlace src/shared/clang/clang_defines.pri \
--replace '$$clean_path($${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include)' '${clang_qt_vendor}/lib/clang/8.0.0/include' \ --replace '$$clean_path($${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include)' '${clang_qt_vendor}/lib/clang/8.0.0/include' \
@ -72,8 +70,8 @@ mkDerivation rec {
--replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," " LLVM_CXXFLAGS += -fno-rtti"]}' --replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," " LLVM_CXXFLAGS += -fno-rtti"]}'
''; '';
preBuild = optionalString withDocumentation '' preBuild = lib.optionalString withDocumentation ''
ln -s ${getLib qtbase}/$qtDocPrefix $NIX_QT5_TMP/share ln -s ${lib.getLib qtbase}/$qtDocPrefix $NIX_QT5_TMP/share
''; '';
postInstall = '' postInstall = ''
@ -92,7 +90,7 @@ mkDerivation rec {
''; '';
homepage = "https://wiki.qt.io/Category:Tools::QtCreator"; homepage = "https://wiki.qt.io/Category:Tools::QtCreator";
license = "LGPL"; license = "LGPL";
maintainers = [ maintainers.akaWolf ]; maintainers = [ lib.maintainers.akaWolf ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ]; platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
}; };
} }

View file

@ -1,7 +1,5 @@
{ stdenv, lib, fetchurl, zlib, unzip }: { stdenv, lib, fetchurl, zlib, unzip }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sauce-connect"; pname = "sauce-connect";
version = "4.5.4"; version = "4.5.4";
@ -24,7 +22,7 @@ stdenv.mkDerivation rec {
patchPhase = lib.optionalString stdenv.isLinux '' patchPhase = lib.optionalString stdenv.isLinux ''
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$out/lib:${makeLibraryPath [zlib]}" \ --set-rpath "$out/lib:${lib.makeLibraryPath [zlib]}" \
bin/sc bin/sc
''; '';
@ -35,7 +33,7 @@ stdenv.mkDerivation rec {
dontStrip = true; dontStrip = true;
meta = { meta = with lib; {
description = "A secure tunneling app for executing tests securely when testing behind firewalls"; description = "A secure tunneling app for executing tests securely when testing behind firewalls";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = licenses.unfree;

View file

@ -1,7 +1,5 @@
{ lib, stdenv, fetchurl }: { lib, stdenv, fetchurl }:
with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "htmlunit-driver-standalone"; pname = "htmlunit-driver-standalone";
version = "2.27"; version = "2.27";
@ -15,7 +13,7 @@ stdenv.mkDerivation rec {
installPhase = "install -D $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar"; installPhase = "install -D $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar";
meta = { meta = with lib; {
homepage = "https://github.com/SeleniumHQ/htmlunit-driver"; homepage = "https://github.com/SeleniumHQ/htmlunit-driver";
description = "A WebDriver server for running Selenium tests on the HtmlUnit headless browser"; description = "A WebDriver server for running Selenium tests on the HtmlUnit headless browser";
maintainers = with maintainers; [ coconnor offline ]; maintainers = with maintainers; [ coconnor offline ];

View file

@ -1,6 +1,5 @@
{ lib, stdenv, fetchurl, makeWrapper, jdk, selenium-server-standalone }: { lib, stdenv, fetchurl, makeWrapper, jdk, selenium-server-standalone }:
with lib;
let let
pname = "selendroid-standalone"; pname = "selendroid-standalone";
pluginName = "selendroid-grid-plugin-${version}"; pluginName = "selendroid-grid-plugin-${version}";
@ -39,7 +38,7 @@ stdenv.mkDerivation {
--add-flags "-capabilityMatcher io.selendroid.grid.SelendroidCapabilityMatcher" --add-flags "-capabilityMatcher io.selendroid.grid.SelendroidCapabilityMatcher"
''; '';
meta = { meta = with lib; {
homepage = "http://selendroid.io/"; homepage = "http://selendroid.io/";
description = "Test automation for native or hybrid Android apps and the mobile web"; description = "Test automation for native or hybrid Android apps and the mobile web";
maintainers = with maintainers; [ offline ]; maintainers = with maintainers; [ offline ];

View file

@ -1,8 +1,6 @@
{ lib, stdenv, fetchurl, makeWrapper, jre { lib, stdenv, fetchurl, makeWrapper, jre
, htmlunit-driver, chromedriver, chromeSupport ? true }: , htmlunit-driver, chromedriver, chromeSupport ? true }:
with lib;
let let
minorVersion = "3.141"; minorVersion = "3.141";
patchVersion = "59"; patchVersion = "59";
@ -26,11 +24,11 @@ in stdenv.mkDerivation rec {
cp $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar cp $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar
makeWrapper ${jre}/bin/java $out/bin/selenium-server \ makeWrapper ${jre}/bin/java $out/bin/selenium-server \
--add-flags "-cp $out/share/lib/${pname}-${version}/${pname}-${version}.jar:${htmlunit-driver}/share/lib/${htmlunit-driver.name}/${htmlunit-driver.name}.jar" \ --add-flags "-cp $out/share/lib/${pname}-${version}/${pname}-${version}.jar:${htmlunit-driver}/share/lib/${htmlunit-driver.name}/${htmlunit-driver.name}.jar" \
${optionalString chromeSupport "--add-flags -Dwebdriver.chrome.driver=${chromedriver}/bin/chromedriver"} \ ${lib.optionalString chromeSupport "--add-flags -Dwebdriver.chrome.driver=${chromedriver}/bin/chromedriver"} \
--add-flags "org.openqa.grid.selenium.GridLauncherV3" --add-flags "org.openqa.grid.selenium.GridLauncherV3"
''; '';
meta = { meta = with lib; {
homepage = "http://www.seleniumhq.org/"; homepage = "http://www.seleniumhq.org/";
description = "Selenium Server for remote WebDriver"; description = "Selenium Server for remote WebDriver";
sourceProvenance = with sourceTypes; [ binaryBytecode ]; sourceProvenance = with sourceTypes; [ binaryBytecode ];

View file

@ -1,7 +1,5 @@
{ buildGoModule, fetchFromGitHub, lib, patchResolver ? true }: { buildGoModule, fetchFromGitHub, lib, patchResolver ? true }:
with lib;
buildGoModule rec { buildGoModule rec {
pname = "summon"; pname = "summon";
version = "0.8.2"; version = "0.8.2";
@ -19,7 +17,7 @@ buildGoModule rec {
# Patches provider resolver to support resolving unqualified names # Patches provider resolver to support resolving unqualified names
# from $PATH, e.g. `summon -p gopass` instead of `summon -p $(which gopass)` # from $PATH, e.g. `summon -p gopass` instead of `summon -p $(which gopass)`
patches = optionals patchResolver [ ./resolve-paths.patch ]; patches = lib.optionals patchResolver [ ./resolve-paths.patch ];
postInstall = '' postInstall = ''
mv $out/bin/cmd $out/bin/summon mv $out/bin/cmd $out/bin/summon

View file

@ -9,25 +9,23 @@
, procps, icu , procps, icu
}: }:
with lib;
{ enableNpm ? true, version, sha256, patches ? [] } @args: { enableNpm ? true, version, sha256, patches ? [] } @args:
let let
inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices; inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
majorVersion = versions.major version; majorVersion = lib.versions.major version;
minorVersion = versions.minor version; minorVersion = lib.versions.minor version;
pname = if enableNpm then "nodejs" else "nodejs-slim"; pname = if enableNpm then "nodejs" else "nodejs-slim";
useSharedHttpParser = !stdenv.isDarwin && versionOlder "${majorVersion}.${minorVersion}" "11.4"; useSharedHttpParser = !stdenv.isDarwin && lib.versionOlder "${majorVersion}.${minorVersion}" "11.4";
sharedLibDeps = { inherit openssl zlib libuv; } // (optionalAttrs useSharedHttpParser { inherit http-parser; }); sharedLibDeps = { inherit openssl zlib libuv; } // (lib.optionalAttrs useSharedHttpParser { inherit http-parser; });
sharedConfigureFlags = concatMap (name: [ sharedConfigureFlags = lib.concatMap (name: [
"--shared-${name}" "--shared-${name}"
"--shared-${name}-libpath=${getLib sharedLibDeps.${name}}/lib" "--shared-${name}-libpath=${lib.getLib sharedLibDeps.${name}}/lib"
/** Closure notes: we explicitly avoid specifying --shared-*-includes, /** Closure notes: we explicitly avoid specifying --shared-*-includes,
* as that would put the paths into bin/nodejs. * as that would put the paths into bin/nodejs.
* Including pkg-config in build inputs would also have the same effect! * Including pkg-config in build inputs would also have the same effect!
@ -38,10 +36,10 @@ let
copyLibHeaders = copyLibHeaders =
map map
(name: "${getDev sharedLibDeps.${name}}/include/*") (name: "${lib.getDev sharedLibDeps.${name}}/include/*")
(builtins.attrNames sharedLibDeps); (builtins.attrNames sharedLibDeps);
extraConfigFlags = optionals (!enableNpm) [ "--without-npm" ]; extraConfigFlags = lib.optionals (!enableNpm) [ "--without-npm" ];
self = stdenv.mkDerivation { self = stdenv.mkDerivation {
inherit pname version; inherit pname version;
@ -54,11 +52,11 @@ let
CXX_host = "c++"; CXX_host = "c++";
depsBuildBuild = [ buildPackages.stdenv.cc openssl libuv zlib ]; depsBuildBuild = [ buildPackages.stdenv.cc openssl libuv zlib ];
buildInputs = optionals stdenv.isDarwin [ CoreServices ApplicationServices ] buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ]
++ [ zlib libuv openssl http-parser icu ]; ++ [ zlib libuv openssl http-parser icu ];
nativeBuildInputs = [ which pkg-config python ] nativeBuildInputs = [ which pkg-config python ]
++ optionals stdenv.isDarwin [ xcbuild ]; ++ lib.optionals stdenv.isDarwin [ xcbuild ];
outputs = [ "out" "libv8" ]; outputs = [ "out" "libv8" ];
setOutputFlags = false; setOutputFlags = false;
@ -67,9 +65,9 @@ let
configureFlags = let configureFlags = let
isCross = stdenv.hostPlatform != stdenv.buildPlatform; isCross = stdenv.hostPlatform != stdenv.buildPlatform;
inherit (stdenv.hostPlatform) gcc isAarch32; inherit (stdenv.hostPlatform) gcc isAarch32;
in sharedConfigureFlags ++ optionals (versionOlder version "19") [ in sharedConfigureFlags ++ lib.optionals (lib.versionOlder version "19") [
"--without-dtrace" "--without-dtrace"
] ++ (optionals isCross [ ] ++ (lib.optionals isCross [
"--cross-compiling" "--cross-compiling"
"--without-intl" "--without-intl"
"--without-snapshot" "--without-snapshot"
@ -86,9 +84,9 @@ let
else if platform.isS390 && platform.is64bit then "s390x" else if platform.isS390 && platform.is64bit then "s390x"
else if platform.isRiscV && platform.is64bit then "riscv64" else if platform.isRiscV && platform.is64bit then "riscv64"
else throw "unsupported cpu ${stdenv.hostPlatform.uname.processor}"}" else throw "unsupported cpu ${stdenv.hostPlatform.uname.processor}"}"
]) ++ (optionals (isCross && isAarch32 && hasAttr "fpu" gcc) [ ]) ++ (lib.optionals (isCross && isAarch32 && lib.hasAttr "fpu" gcc) [
"--with-arm-fpu=${gcc.fpu}" "--with-arm-fpu=${gcc.fpu}"
]) ++ (optionals (isCross && isAarch32 && hasAttr "float-abi" gcc) [ ]) ++ (lib.optionals (isCross && isAarch32 && lib.hasAttr "float-abi" gcc) [
"--with-arm-float-abi=${gcc.float-abi}" "--with-arm-float-abi=${gcc.float-abi}"
]) ++ extraConfigFlags; ]) ++ extraConfigFlags;
@ -122,7 +120,7 @@ let
substituteInPlace $a \ substituteInPlace $a \
--replace "/usr/bin/env" "${coreutils}/bin/env" --replace "/usr/bin/env" "${coreutils}/bin/env"
done done
'' + optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin ''
sed -i -e "s|tr1/type_traits|type_traits|g" \ sed -i -e "s|tr1/type_traits|type_traits|g" \
-e "s|std::tr1|std|" src/util.h -e "s|std::tr1|std|" src/util.h
''; '';
@ -133,7 +131,7 @@ let
postInstall = '' postInstall = ''
PATH=$out/bin:$PATH patchShebangs $out PATH=$out/bin:$PATH patchShebangs $out
${optionalString (enableNpm && stdenv.hostPlatform == stdenv.buildPlatform) '' ${lib.optionalString (enableNpm && stdenv.hostPlatform == stdenv.buildPlatform) ''
mkdir -p $out/share/bash-completion/completions/ mkdir -p $out/share/bash-completion/completions/
HOME=$TMPDIR $out/bin/npm completion > $out/share/bash-completion/completions/npm HOME=$TMPDIR $out/bin/npm completion > $out/share/bash-completion/completions/npm
for dir in "$out/lib/node_modules/npm/man/"*; do for dir in "$out/lib/node_modules/npm/man/"*; do
@ -145,7 +143,7 @@ let
''} ''}
# install the missing headers for node-gyp # install the missing headers for node-gyp
cp -r ${concatStringsSep " " copyLibHeaders} $out/include/node cp -r ${lib.concatStringsSep " " copyLibHeaders} $out/include/node
# assemble a static v8 library and put it in the 'libv8' output # assemble a static v8 library and put it in the 'libv8' output
mkdir -p $libv8/lib mkdir -p $libv8/lib
@ -183,7 +181,7 @@ let
inherit majorVersion; inherit majorVersion;
}; };
meta = { meta = with lib; {
description = "Event-driven I/O framework for the V8 JavaScript engine"; description = "Event-driven I/O framework for the V8 JavaScript engine";
homepage = "https://nodejs.org"; homepage = "https://nodejs.org";
changelog = "https://github.com/nodejs/node/releases/tag/v${version}"; changelog = "https://github.com/nodejs/node/releases/tag/v${version}";