···937938Flags passed to the `strip` command applied to the files in the directories listed in `stripDebugList`. Defaults to `-S` (i.e. `--strip-debug`).
9390000000000000000000000940##### `dontPatchELF` {#var-stdenv-dontPatchELF}
941942If set, the `patchelf` command is not used to remove unnecessary `RPATH` entries. Only applies to Linux.
···937938Flags passed to the `strip` command applied to the files in the directories listed in `stripDebugList`. Defaults to `-S` (i.e. `--strip-debug`).
939940+##### `stripExclude` {#var-stdenv-stripExclude}
941+942+A list of filenames or path patterns to avoid stripping. A file is excluded if its name _or_ path (from the derivation root) matches.
943+944+This example prevents all `*.rlib` files from being stripped:
945+946+```nix
947+stdenv.mkDerivation {
948+ # ...
949+ stripExclude = [ "*.rlib" ]
950+}
951+```
952+953+This example prevents files within certain paths from being stripped:
954+955+```nix
956+stdenv.mkDerivation {
957+ # ...
958+ stripExclude = [ "lib/modules/*/build/* ]
959+}
960+```
961+962##### `dontPatchELF` {#var-stdenv-dontPatchELF}
963964If set, the `patchelf` command is not used to remove unnecessary `RPATH` entries. Only applies to Linux.
···2122 self = python3Packages.buildPythonApplication rec {
23 pname = "mercurial${lib.optionalString fullBuild "-full"}";
24- version = "6.5.1";
2526 src = fetchurl {
27 url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
28- sha256 = "sha256-M/fejYs2B/orQIzeS4cl4RfrCtQZJqeH6qtAnKik/C8=";
29 };
3031 format = "other";
···35 cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
36 inherit src;
37 name = "mercurial-${version}";
38- sha256 = "sha256-tPv0UeZOsHDGKzXWeA/fFio7d3EN+KGioDu/1WH1drc=";
39 sourceRoot = "mercurial-${version}/rust";
40 } else null;
41 cargoRoot = if rustSupport then "rust" else null;
···90 description = "A fast, lightweight SCM system for very large distributed projects";
91 homepage = "https://www.mercurial-scm.org";
92 downloadPage = "https://www.mercurial-scm.org/release/";
093 license = licenses.gpl2Plus;
94 maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
95 platforms = platforms.unix;
···2122 self = python3Packages.buildPythonApplication rec {
23 pname = "mercurial${lib.optionalString fullBuild "-full"}";
24+ version = "6.5.2";
2526 src = fetchurl {
27 url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
28+ sha256 = "sha256-r8OdcGeXZZPIMyuOl6Eq/Tk7VQN8X7nDyrGkLHVg9go=";
29 };
3031 format = "other";
···35 cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
36 inherit src;
37 name = "mercurial-${version}";
38+ sha256 = "sha256-dcyHmLkRadNK30Vv0XsCEaZGTIcF/L29lLe58ggB3Lg=";
39 sourceRoot = "mercurial-${version}/rust";
40 } else null;
41 cargoRoot = if rustSupport then "rust" else null;
···90 description = "A fast, lightweight SCM system for very large distributed projects";
91 homepage = "https://www.mercurial-scm.org";
92 downloadPage = "https://www.mercurial-scm.org/release/";
93+ changelog = "https://wiki.mercurial-scm.org/Release${versions.majorMinor version}";
94 license = licenses.gpl2Plus;
95 maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
96 platforms = platforms.unix;
+3-1
pkgs/build-support/cc-wrapper/default.nix
···107 && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
108 && !(stdenv.targetPlatform.isiOS or false)
109 && gccForLibs != null;
00110111 # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
112 isGccArchSupported = arch:
···374 ''
375 + optionalString useGccForLibs ''
376 echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
377- echo "-L${gccForLibs.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags
378 ''
379380 # TODO We would like to connect this to `useGccForLibs`, but we cannot yet
···107 && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
108 && !(stdenv.targetPlatform.isiOS or false)
109 && gccForLibs != null;
110+ gccForLibs_solib = getLib gccForLibs
111+ + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}";
112113 # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
114 isGccArchSupported = arch:
···376 ''
377 + optionalString useGccForLibs ''
378 echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
379+ echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags
380 ''
381382 # TODO We would like to connect this to `useGccForLibs`, but we cannot yet
···69 # try to detect share/doc/${shareDocName}
70 # Note: sadly, $configureScript detection comes later in configurePhase,
71 # and reordering would cause more trouble than worth.
72- if [ -z "$shareDocName" ]; then
73- local confScript="$configureScript"
74 if [ -z "$confScript" ] && [ -x ./configure ]; then
75 confScript=./configure
76 fi
···69 # try to detect share/doc/${shareDocName}
70 # Note: sadly, $configureScript detection comes later in configurePhase,
71 # and reordering would cause more trouble than worth.
72+ if [ -z "${shareDocName:-}" ]; then
73+ local confScript="${configureScript:-}"
74 if [ -z "$confScript" ] && [ -x ./configure ]; then
75 confScript=./configure
76 fi
+1-1
pkgs/build-support/setup-hooks/patch-shebangs.sh
···75 read -r oldInterpreterLine < "$f"
76 read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"
7778- if [[ -z "$pathName" ]]; then
79 if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
80 pathName=HOST_PATH
81 else
···75 read -r oldInterpreterLine < "$f"
76 read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"
7778+ if [[ -z "${pathName:-}" ]]; then
79 if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
80 pathName=HOST_PATH
81 else
···21 while IFS= read -r -d $'\0' i; do
22 if ! isELF "$i"; then continue; fi
2300024 # Extract the Build ID. FIXME: there's probably a cleaner way.
25 local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')"
26 if [ "${#id}" != 40 ]; then
···21 while IFS= read -r -d $'\0' i; do
22 if ! isELF "$i"; then continue; fi
2324+ [ -z "${READELF:-}" ] && echo "_separateDebugInfo: '\$READELF' variable is empty, skipping." 1>&2 && break
25+ [ -z "${OBJCOPY:-}" ] && echo "_separateDebugInfo: '\$OBJCOPY' variable is empty, skipping." 1>&2 && break
26+27 # Extract the Build ID. FIXME: there's probably a cleaner way.
28 local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')"
29 if [ "${#id}" != 40 ]; then
+9-1
pkgs/build-support/setup-hooks/strip.sh
···49 local ranlibCmd="$2"
50 local paths="$3"
51 local stripFlags="$4"
052 local pathsNew=
5354 [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1
55 [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1
00000005657 local p
58 for p in ${paths}; do
···67 local striperr
68 striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"
69 # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
70- find $paths -type f -a '!' -path "$prefix/lib/debug/*" -print0 |
71 # Make sure we process files under symlinks only once. Otherwise
72 # 'strip` can corrupt files when writes to them in parallel:
73 # https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
···49 local ranlibCmd="$2"
50 local paths="$3"
51 local stripFlags="$4"
52+ local excludeFlags=()
53 local pathsNew=
5455 [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1
56 [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1
57+58+ local pattern
59+ if [ -n "${stripExclude:-}" ]; then
60+ for pattern in "${stripExclude[@]}"; do
61+ excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')' )
62+ done
63+ fi
6465 local p
66 for p in ${paths}; do
···75 local striperr
76 striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"
77 # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
78+ find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 |
79 # Make sure we process files under symlinks only once. Otherwise
80 # 'strip` can corrupt files when writes to them in parallel:
81 # https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
···55 outputs = [ "out" "dev" ];
5657 patches = [
58- ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
59 ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15
60 ./gnu-install-dirs.patch
61 ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch
···55 outputs = [ "out" "dev" ];
5657 patches = [
58+ ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
59 ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15
60 ./gnu-install-dirs.patch
61 ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch
+2-2
pkgs/development/compilers/llvm/10/default.nix
···137 ./lldb/procfs.patch
138 ./lldb/gnu-install-dirs.patch
139 ];
140- inherit llvm_meta release_version;
141 };
142143 # Below, is the LLVM bootstrapping logic. It handles building a
···147 # doesn’t support like LLVM. Probably we should move to some other
148 # file.
149150- bintools-unwrapped = callPackage ./bintools {};
151152 bintoolsNoLibc = wrapBintoolsWith {
153 bintools = tools.bintools-unwrapped;
···137 ./lldb/procfs.patch
138 ./lldb/gnu-install-dirs.patch
139 ];
140+ inherit llvm_meta;
141 };
142143 # Below, is the LLVM bootstrapping logic. It handles building a
···147 # doesn’t support like LLVM. Probably we should move to some other
148 # file.
149150+ bintools-unwrapped = callPackage ../common/bintools.nix { };
151152 bintoolsNoLibc = wrapBintoolsWith {
153 bintools = tools.bintools-unwrapped;
···56 outputs = [ "out" "dev" ];
5758 patches = [
59- ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
60 ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
61 ./gnu-install-dirs.patch
62 # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
···56 outputs = [ "out" "dev" ];
5758 patches = [
59+ ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
60 ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
61 ./gnu-install-dirs.patch
62 # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
+2-2
pkgs/development/compilers/llvm/11/default.nix
···152 ./lldb/procfs.patch
153 ./lldb/gnu-install-dirs.patch
154 ];
155- inherit llvm_meta release_version;
156 };
157158 # Below, is the LLVM bootstrapping logic. It handles building a
···162 # doesn’t support like LLVM. Probably we should move to some other
163 # file.
164165- bintools-unwrapped = callPackage ./bintools {};
166167 bintoolsNoLibc = wrapBintoolsWith {
168 bintools = tools.bintools-unwrapped;
···152 ./lldb/procfs.patch
153 ./lldb/gnu-install-dirs.patch
154 ];
155+ inherit llvm_meta;
156 };
157158 # Below, is the LLVM bootstrapping logic. It handles building a
···162 # doesn’t support like LLVM. Probably we should move to some other
163 # file.
164165+ bintools-unwrapped = callPackage ../common/bintools.nix { };
166167 bintoolsNoLibc = wrapBintoolsWith {
168 bintools = tools.bintools-unwrapped;
···45 ];
4647 patches = [
48- ./purity.patch
49 # make clang -xhip use $PATH to find executables
50 ./HIP-use-PATH-7.patch
51 # Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is
···45 ];
4647 patches = [
48+ ../../common/clang/5-8-purity.patch
49 # make clang -xhip use $PATH to find executables
50 ./HIP-use-PATH-7.patch
51 # Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is
···149 # doesn’t support like LLVM. Probably we should move to some other
150 # file.
151152- bintools-unwrapped = callPackage ./bintools {};
153154 bintoolsNoLibc = wrapBintoolsWith {
155 bintools = tools.bintools-unwrapped;
···149 # doesn’t support like LLVM. Probably we should move to some other
150 # file.
151152+ bintools-unwrapped = callPackage ../common/bintools.nix { };
153154 bintoolsNoLibc = wrapBintoolsWith {
155 bintools = tools.bintools-unwrapped;
···45 ];
4647 patches = [
48- ./purity.patch
49 ./xpc.patch
50 # Backport for -static-pie, which the latter touches, and which is nice in
51 # its own right.
···45 ];
4647 patches = [
48+ ../../common/clang/5-8-purity.patch
49 ./xpc.patch
50 # Backport for -static-pie, which the latter touches, and which is nice in
51 # its own right.
···150 # doesn’t support like LLVM. Probably we should move to some other
151 # file.
152153- bintools-unwrapped = callPackage ./bintools {};
154155 bintoolsNoLibc = wrapBintoolsWith {
156 bintools = tools.bintools-unwrapped;
···150 # doesn’t support like LLVM. Probably we should move to some other
151 # file.
152153+ bintools-unwrapped = callPackage ../common/bintools.nix { };
154155 bintoolsNoLibc = wrapBintoolsWith {
156 bintools = tools.bintools-unwrapped;
···56 patches = [
57 # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
58 ../../common/compiler-rt/glibc.patch
59- ./codesign.patch # Revert compiler-rt commit that makes codesign mandatory
60 ./gnu-install-dirs.patch
61 ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
62 # Fix build on armv6l
···56 patches = [
57 # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
58 ../../common/compiler-rt/glibc.patch
59+ ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
60 ./gnu-install-dirs.patch
61 ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
62 # Fix build on armv6l
+1-1
pkgs/development/compilers/llvm/9/default.nix
···150 # doesn’t support like LLVM. Probably we should move to some other
151 # file.
152153- bintools-unwrapped = callPackage ./bintools {};
154155 bintoolsNoLibc = wrapBintoolsWith {
156 bintools = tools.bintools-unwrapped;
···150 # doesn’t support like LLVM. Probably we should move to some other
151 # file.
152153+ bintools-unwrapped = callPackage ../common/bintools.nix { };
154155 bintoolsNoLibc = wrapBintoolsWith {
156 bintools = tools.bintools-unwrapped;
···1{ self, callPackage, fetchFromGitHub, lib, passthruFun }:
23-callPackage ./default.nix {
4- version = "2.0.5-2022-09-13";
0056 src = fetchFromGitHub {
7 owner = "LuaJIT";
8 repo = "LuaJIT";
9- rev = "46e62cd963a426e83a60f691dcbbeb742c7b3ba2";
10- hash = "sha256-/XR9+6NjXs2TrUVKJNkH2h970BkDNFqMDJTWcy/bswU=";
11 };
1213 extraMeta = { # this isn't precise but it at least stops the useless Hydra build
···1{ self, callPackage, fetchFromGitHub, lib, passthruFun }:
23+callPackage ./default.nix rec {
4+ # The patch version is the timestamp of the git commit,
5+ # obtain via `cat $(nix-build -A luajit_2_0.src)/.relver`
6+ version = "2.0.1693340858";
78 src = fetchFromGitHub {
9 owner = "LuaJIT";
10 repo = "LuaJIT";
11+ rev = "c6ee7e19d107b4f9a140bb2ccf99162e26318c69";
12+ hash = "sha256-3/7ASZRniytw5RkOy0F9arHkZevq6dxmya+Ba3A5IIA=";
13 };
1415 extraMeta = { # this isn't precise but it at least stops the useless Hydra build
···36 hash = "sha256-Q94avvKjPdwdGt5ADo30cf2V4T7MCTubDHJxTtbG4xQ=";
37 };
3839+ patches = [
40+ # Commit 902bc919 from upstream, mangled slightly to apply onto 1.3.1.
41+ # There is currently (2023-09-12) no confirmation that this is the fix for
42+ # CVE-2023-4863, but it is linked to the right crbug, and matches the
43+ # description of that (critical sev, exploited in the wild) CVE.
44+ ./CVE-2023-4863.patch
45+ ];
46+47 configureFlags = [
48 (lib.enableFeature threadingSupport "threading")
49 (lib.enableFeature openglSupport "gl")
···1-{ buildPythonPackage
2-, lib
3, cmake
004, pybind11
5, zxing-cpp
6-, numpy
7-, pillow
8}:
910buildPythonPackage rec {
11 pname = "zxing_cpp";
12- inherit (zxing-cpp) src version;
1314 sourceRoot = "${src.name}/wrappers/python";
15- patches = [
16- ./use-nixpkgs-pybind11.patch
17- ];
18 dontUseCmakeConfigure = true;
1920 propagatedBuildInputs = [
···29 nativeCheckInputs = [
30 pillow
31 ];
32-33- meta = with lib; {
34- homepage = "https://github.com/zxing-cpp/zxing-cpp";
35- description = "Python bindings for C++ port of zxing (a Java barcode image processing library)";
36- longDescription = ''
37- ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D barcode
38- image processing library implemented in C++.
39-40- It was originally ported from the Java ZXing Library but has been
41- developed further and now includes many improvements in terms of quality
42- and performance. It can both read and write barcodes in a number of
43- formats.
44- '';
45- license = licenses.asl20;
46- maintainers = with maintainers; [ lukegb ];
47- platforms = with platforms; unix;
48- };
49}
···2829 enableParallelBuilding = false; # parallel building fails on some linux machines
300031 meta = with lib; {
32 homepage = "https://cdrtools.sourceforge.net/private/cdrecord.html";
33 description = "Highly portable CD/DVD/BluRay command line recording software";
···2829 enableParallelBuilding = false; # parallel building fails on some linux machines
3031+ hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify";
32+33 meta = with lib; {
34 homepage = "https://cdrtools.sourceforge.net/private/cdrecord.html";
35 description = "Highly portable CD/DVD/BluRay command line recording software";
···21 })
22 ];
2300024 buildInputs = [ openssl zlib ];
2526 meta = with lib; {
···21 })
22 ];
2324+ # Our version is good; the check is bad.
25+ configureFlags = [ "--without-zlib-version-check" ];
26+27 buildInputs = [ openssl zlib ];
2829 meta = with lib; {
-1
pkgs/top-level/aliases.nix
···1878 inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17
18791880 ### W ###
1881- wafHook = waf.hook; # Added 2023-08-23
1882 wavesurfer = throw "wavesurfer has been removed: depended on snack which has been removed"; # Added 2022-04-21
1883 waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
1884 way-cooler = throw "way-cooler is abandoned by its author: https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"; # Added 2020-01-13
···1878 inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17
18791880 ### W ###
01881 wavesurfer = throw "wavesurfer has been removed: depended on snack which has been removed"; # Added 2022-04-21
1882 waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
1883 way-cooler = throw "way-cooler is abandoned by its author: https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"; # Added 2020-01-13