···186186`lib.fakeHash` as a stub hash. Building the package (and thus the
187187vendored dependencies) will then inform you of the correct hash.
188188189189+### Cargo features {#cargo-features}
190190+191191+You can disable default features using `buildNoDefaultFeatures`, and
192192+extra features can be added with `buildFeatures`.
193193+194194+If you want to use different features for check phase, you can use
195195+`checkNoDefaultFeatures` and `checkFeatures`. They are only passed to
196196+`cargo test` and not `cargo build`. If left unset, they default to
197197+`buildNoDefaultFeatures` and `buildFeatures`.
198198+199199+For example:
200200+201201+```nix
202202+rustPlatform.buildRustPackage rec {
203203+ pname = "myproject";
204204+ version = "1.0.0";
205205+206206+ buildNoDefaultFeatures = true;
207207+ buildFeatures = [ "color" "net" ];
208208+209209+ # disable network features in tests
210210+ checkFeatures = [ "color" ];
211211+212212+ # ...
213213+}
214214+```
215215+189216### Cross compilation {#cross-compilation}
190217191218By default, Rust packages are compiled for the host platform, just like any
···261288Please note that the code will be compiled twice here: once in `release` mode
262289for the `buildPhase`, and again in `debug` mode for the `checkPhase`.
263290264264-Test flags, e.g., `--features xxx/yyy`, can be passed to `cargo test` via the
291291+Test flags, e.g., `--package foo`, can be passed to `cargo test` via the
265292`cargoTestFlags` attribute.
266293267294Another attribute, called `checkFlags`, is used to pass arguments to the test
···421448* `cargoBuildHook`: use Cargo to build a crate. If the crate to be
422449 built is a crate in e.g. a Cargo workspace, the relative path to the
423450 crate to build can be set through the optional `buildAndTestSubdir`
424424- environment variable. Additional Cargo build flags can be passed
425425- through `cargoBuildFlags`.
451451+ environment variable. Features can be specified with
452452+ `cargoBuildNoDefaultFeatures` and `cargoBuildFeatures`. Additional
453453+ Cargo build flags can be passed through `cargoBuildFlags`.
426454* `maturinBuildHook`: use [Maturin](https://github.com/PyO3/maturin)
427455 to build a Python wheel. Similar to `cargoBuildHook`, the optional
428456 variable `buildAndTestSubdir` can be used to build a crate in a
429457 Cargo workspace. Additional Maturin flags can be passed through
430458 `maturinBuildFlags`.
431459* `cargoCheckHook`: run tests using Cargo. The build type for checks
432432- can be set using `cargoCheckType`. Additional flags can be passed to
433433- the tests using `checkFlags` and `checkFlagsArray`. By default,
434434- tests are run in parallel. This can be disabled by setting
435435- `dontUseCargoParallelTests`.
460460+ can be set using `cargoCheckType`. Features can be specified with
461461+ `cargoCheckNoDefaultFeaatures` and `cargoCheckFeatures`. Additional
462462+ flags can be passed to the tests using `checkFlags` and
463463+ `checkFlagsArray`. By default, tests are run in parallel. This can
464464+ be disabled by setting `dontUseCargoParallelTests`.
436465* `cargoInstallHook`: install binaries and static/shared libraries
437466 that were built using `cargoBuildHook`.
438467
···13171317 </listitem>
13181318 <listitem>
13191319 <para>
13201320+ The <literal>fluidsynth_1</literal> attribute has been
13211321+ removed, as this legacy version is no longer needed in
13221322+ nixpkgs. The actively maintained 2.x series is available as
13231323+ <literal>fluidsynth</literal> unchanged.
13241324+ </para>
13251325+ </listitem>
13261326+ <listitem>
13271327+ <para>
13201328 Nextcloud 20 (<literal>pkgs.nextcloud20</literal>) has been
13211329 dropped because it was EOLed by upstream in 2021-10.
13221330 </para>
+2
nixos/doc/manual/release-notes/rl-2111.section.md
···393393- The `services.mosquitto` module has been rewritten to support multiple listeners and per-listener configuration.
394394 Module configurations from previous releases will no longer work and must be updated.
395395396396+- The `fluidsynth_1` attribute has been removed, as this legacy version is no longer needed in nixpkgs. The actively maintained 2.x series is available as `fluidsynth` unchanged.
397397+396398- Nextcloud 20 (`pkgs.nextcloud20`) has been dropped because it was EOLed by upstream in 2021-10.
397399398400- The `virtualisation.pathsInNixDB` option was renamed
+46
nixos/modules/security/pam.nix
···197197 '';
198198 };
199199200200+ ttyAudit = {
201201+ enable = mkOption {
202202+ type = types.bool;
203203+ default = false;
204204+ description = ''
205205+ Enable or disable TTY auditing for specified users
206206+ '';
207207+ };
208208+209209+ enablePattern = mkOption {
210210+ type = types.nullOr types.str;
211211+ default = null;
212212+ description = ''
213213+ For each user matching one of comma-separated
214214+ glob patterns, enable TTY auditing
215215+ '';
216216+ };
217217+218218+ disablePattern = mkOption {
219219+ type = types.nullOr types.str;
220220+ default = null;
221221+ description = ''
222222+ For each user matching one of comma-separated
223223+ glob patterns, disable TTY auditing
224224+ '';
225225+ };
226226+227227+ openOnly = mkOption {
228228+ type = types.bool;
229229+ default = false;
230230+ description = ''
231231+ Set the TTY audit flag when opening the session,
232232+ but do not restore it when closing the session.
233233+ Using this option is necessary for some services
234234+ that don't fork() to run the authenticated session,
235235+ such as sudo.
236236+ '';
237237+ };
238238+ };
239239+200240 forwardXAuth = mkOption {
201241 default = false;
202242 type = types.bool;
···482522 "session ${
483523 if config.boot.isContainer then "optional" else "required"
484524 } pam_loginuid.so"}
525525+ ${optionalString cfg.ttyAudit.enable
526526+ "session required ${pkgs.pam}/lib/security/pam_tty_audit.so
527527+ open_only=${toString cfg.ttyAudit.openOnly}
528528+ ${optionalString (cfg.ttyAudit.enablePattern != null) "enable=${cfg.ttyAudit.enablePattern}"}
529529+ ${optionalString (cfg.ttyAudit.disablePattern != null) "disable=${cfg.ttyAudit.disablePattern}"}
530530+ "}
485531 ${optionalString cfg.makeHomeDir
486532 "session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=${config.security.pam.makeHomeDir.skelDirectory} umask=0077"}
487533 ${optionalString cfg.updateWtmp
···44 name = "kexec";
55 meta = with lib.maintainers; {
66 maintainers = [ eelco ];
77- # Currently hangs forever; last output is:
88- # machine # [ 10.239914] dhcpcd[707]: eth0: adding default route via fe80::2
99- # machine: waiting for the VM to finish booting
1010- # machine # Cannot find the ESP partition mount point.
1111- # machine # [ 28.681197] nscd[692]: 692 checking for monitored file `/etc/netgroup': No such file or directory
1212- broken = true;
137 };
148159 machine = { ... }:
···1812 testScript =
1913 ''
2014 machine.wait_for_unit("multi-user.target")
1515+ machine.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(</proc/cmdline)"')
2116 machine.execute("systemctl kexec >&2 &", check_return=False)
2217 machine.connected = False
1818+ machine.connect()
2319 machine.wait_for_unit("multi-user.target")
2020+ machine.shutdown()
2421 '';
2522})
+9
pkgs/applications/audio/cdparanoia/default.nix
···3535 cp ${gnu-config}/config.guess configure.guess
3636 '';
37373838+ # Build system reuses the same object file names for shared and static
3939+ # library. Occasionally fails in the middle:
4040+ # gcc -O2 -fsigned-char -g -O2 -c scan_devices.c
4141+ # rm -f *.o core *~ *.out
4242+ # gcc -O2 -fsigned-char -g -O2 -fpic -c scan_devices.c
4343+ # gcc -fpic -shared -o libcdda_interface.so.0.10.2 ... scan_devices.o ...
4444+ # scan_devices.o: file not recognized: file format not recognized
4545+ enableParallelBuilding = false;
4646+3847 meta = with lib; {
3948 homepage = "https://xiph.org/paranoia";
4049 description = "A tool and library for reading digital audio from CDs";
+6
pkgs/applications/audio/espeak-ng/default.nix
···3535 "--with-mbrola=${if mbrolaSupport then "yes" else "no"}"
3636 ];
37373838+ # Current release lacks dependencies on local espeak-ng:
3939+ # cd dictsource && ESPEAK_DATA_PATH=/build/espeak-ng LD_LIBRARY_PATH=../src: ../src/espeak-ng --compile=yue && cd ..
4040+ # bash: line 1: ../src/espeak-ng: No such file or directory
4141+ # Should be fixed in next release: https://github.com/espeak-ng/espeak-ng/pull/1029
4242+ enableParallelBuilding = false;
4343+3844 postInstall = lib.optionalString stdenv.isLinux ''
3945 patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
4046 '';
···110110 # When LTO for Darwin is fixed, the following will need updating as lld
111111 # doesn't work on it. For now it is fine since ltoSupport implies no Darwin.
112112 buildStdenv = if ltoSupport
113113- then overrideCC stdenv llvmPackages.clangUseLLVM
113113+ # LTO requires LLVM bintools including ld.lld and llvm-ar.
114114+ then overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override {
115115+ inherit (llvmPackages) bintools;
116116+ })
114117 else stdenv;
115118116119 # --enable-release adds -ffunction-sections & LTO that require a big amount of
···131134 ] ++
132135 lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch ++
133136 lib.optional (lib.versionAtLeast version "90") ./no-buildconfig-ffx90.patch ++
137137+ # This fixes a race condition causing deadlock.
138138+ # https://phabricator.services.mozilla.com/D128657
139139+ lib.optional (lib.versionAtLeast version "94") (fetchpatch {
140140+ url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/9c7f25d45bb1dd6b1a865780bc249cdaa619aa83/trunk/0002-Bug-1735905-Upgrade-cubeb-pulse-to-fix-a-race-condit.patch";
141141+ sha256 = "l4bMK/YDXcDpIjPy9DPuUSFyDpzVQca201A4h9eav5g=";
142142+ }) ++
134143 patches;
135144136145 # Ignore trivial whitespace changes in patches, this fixes compatibility of
+2
pkgs/applications/office/libreoffice/default.nix
···7878 tar -xf ${srcs.translations}
7979 '';
80808181+ patches = [ ./skip-failed-test-with-icu70.patch ];
8282+8183 ### QT/KDE
8284 #
8385 # We have to resort to the ugly patching of configure.ac as it assumes that
···99 "--with-commons-logging-jar=${commonsLogging}/share/java/commons-logging-1.2.jar"
1010 "--without-system-qrcodegen"
1111 ];
1212- patches = [ ../xdg-open-brief.patch ]; # drop this when switching to 7.2
1212+ patches = attrs.patches or [] ++ [ ../xdg-open-brief.patch ]; # drop this when switching to 7.2
1313}
···77 for pc in $(find "$prefix" -name '*.pc'); do
88 # Do not fail immediately. It's nice to see all errors when
99 # there are multiple pkgconfig files.
1010- if ! pkg-config --validate "$pc"; then
1010+ if ! $PKG_CONFIG --validate "$pc"; then
1111 bail=1
1212 fi
1313 done
···7474 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
7575 ]);
76767777+ # -j flag is explicitly rejected by the build system:
7878+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
7979+ # Note: it does not make build sequential. Build system
8080+ # still runs in parallel.
8181+ enableParallelBuilding = false;
8282+7783 buildFlags = [ "all" ];
78847985 installPhase = ''
+6
pkgs/development/compilers/openjdk/12.nix
···8383 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
8484 ];
85858686+ # -j flag is explicitly rejected by the build system:
8787+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
8888+ # Note: it does not make build sequential. Build system
8989+ # still runs in parallel.
9090+ enableParallelBuilding = false;
9191+8692 buildFlags = [ "all" ];
87938894 installPhase = ''
+6
pkgs/development/compilers/openjdk/13.nix
···8383 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
8484 ]);
85858686+ # -j flag is explicitly rejected by the build system:
8787+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
8888+ # Note: it does not make build sequential. Build system
8989+ # still runs in parallel.
9090+ enableParallelBuilding = false;
9191+8692 buildFlags = [ "all" ];
87938894 installPhase = ''
+6
pkgs/development/compilers/openjdk/14.nix
···7878 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
7979 ]);
80808181+ # -j flag is explicitly rejected by the build system:
8282+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
8383+ # Note: it does not make build sequential. Build system
8484+ # still runs in parallel.
8585+ enableParallelBuilding = false;
8686+8187 buildFlags = [ "all" ];
82888389 installPhase = ''
+6
pkgs/development/compilers/openjdk/15.nix
···7878 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
7979 ]);
80808181+ # -j flag is explicitly rejected by the build system:
8282+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
8383+ # Note: it does not make build sequential. Build system
8484+ # still runs in parallel.
8585+ enableParallelBuilding = false;
8686+8187 buildFlags = [ "all" ];
82888389 installPhase = ''
+6
pkgs/development/compilers/openjdk/16.nix
···8484 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
8585 ]);
86868787+ # -j flag is explicitly rejected by the build system:
8888+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
8989+ # Note: it does not make build sequential. Build system
9090+ # still runs in parallel.
9191+ enableParallelBuilding = false;
9292+8793 buildFlags = [ "all" ];
88948995 installPhase = ''
+6
pkgs/development/compilers/openjdk/17.nix
···8686 "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
8787 ]);
88888989+ # -j flag is explicitly rejected by the build system:
9090+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
9191+ # Note: it does not make build sequential. Build system
9292+ # still runs in parallel.
9393+ enableParallelBuilding = false;
9494+8995 buildFlags = [ "images" ];
90969197 installPhase = ''
+6
pkgs/development/compilers/openjdk/8.nix
···155155 "-lgtk-x11-2.0" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
156156 ]);
157157158158+ # -j flag is explicitly rejected by the build system:
159159+ # Error: 'make -jN' is not supported, use 'make JOBS=N'
160160+ # Note: it does not make build sequential. Build system
161161+ # still runs in parallel.
162162+ enableParallelBuilding = false;
163163+158164 buildFlags = [ "all" ];
159165160166 doCheck = false; # fails with "No rule to make target 'y'."
-63
pkgs/development/compilers/rust/1_55.nix
···11-# New rust versions should first go to staging.
22-# Things to check after updating:
33-# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
44-# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
55-# This testing can be also done by other volunteers as part of the pull
66-# request review, in case platforms cannot be covered.
77-# 2. The LLVM version used for building should match with rust upstream.
88-# Check the version number in the src/llvm-project git submodule in:
99-# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
1010-# 3. Firefox and Thunderbird should still build on x86_64-linux.
1111-1212-{ stdenv, lib
1313-, buildPackages
1414-, newScope, callPackage
1515-, CoreFoundation, Security, SystemConfiguration
1616-, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
1717-, makeRustPlatform
1818-, llvmPackages_11
1919-, llvmPackages_12, llvm_12
2020-} @ args:
2121-2222-import ./default.nix {
2323- rustcVersion = "1.55.0";
2424- rustcSha256 = "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj";
2525-2626- llvmSharedForBuild = pkgsBuildBuild.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
2727- llvmSharedForHost = pkgsBuildHost.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
2828- llvmSharedForTarget = pkgsBuildTarget.llvmPackages_12.libllvm.override { enableSharedLibraries = true; };
2929-3030- llvmBootstrapForDarwin = llvmPackages_11;
3131-3232- # For use at runtime
3333- llvmShared = llvm_12.override { enableSharedLibraries = true; };
3434-3535- # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
3636- llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_12;
3737-3838- # Note: the version MUST be one version prior to the version we're
3939- # building
4040- bootstrapVersion = "1.54.0";
4141-4242- # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
4343- bootstrapHashes = {
4444- i686-unknown-linux-gnu = "1cd06090463711d50d98374ef52c1a84b9f4e3e35febaaef4890fb10536ceb3a";
4545- x86_64-unknown-linux-gnu = "350354495b1d4b6dd2ec7cf96aa9bc61d031951cf667a31e8cf401dc508639e6";
4646- x86_64-unknown-linux-musl = "3571db0018fcd32f3b579a32b2301826dbd1cce44b373aed8e8a31c2a6f52fe8";
4747- arm-unknown-linux-gnueabihf = "77f4e4c2195f75466c6de0b1d8fd7fb8cef3d12666e3aae777dcfd0d71d080ca";
4848- armv7-unknown-linux-gnueabihf = "dd01ccb6a53d5e895a6755a78c213ae601a347366688941d5c543b5af5835d6d";
4949- aarch64-unknown-linux-gnu = "33a50c5366a57aaab43c1c19e4a49ab7d8ffcd99a72925c315fb1f9389139e6f";
5050- aarch64-unknown-linux-musl = "49d94116a357ea13f5a3231de2472f59210028c3cf81f158b8a367c3155ac544";
5151- x86_64-apple-darwin = "5eb27a4f5f7a4699bc70cf1848e340ddd74e151488bfcb26853fd584958e3d33";
5252- aarch64-apple-darwin = "801b3b15b992b0321261de8b8ea2728e9a74822c6cb99bf978b34e217c7825ba";
5353- powerpc64le-unknown-linux-gnu = "67cadf7ac5bd2e3d5fb4baede69846059f17c4e099f771329b266d08b875ed71";
5454- riscv64gc-unknown-linux-gnu = "6113a6cce3500033d0dc0d170b54c5f22562ef3025fd58d804c822a2499c74d7";
5555- };
5656-5757- selectRustPackage = pkgs: pkgs.rust_1_55;
5858-5959- rustcPatches = [
6060- ];
6161-}
6262-6363-(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_12" "llvm_12"])
+63
pkgs/development/compilers/rust/1_56.nix
···11+# New rust versions should first go to staging.
22+# Things to check after updating:
33+# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin:
44+# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github
55+# This testing can be also done by other volunteers as part of the pull
66+# request review, in case platforms cannot be covered.
77+# 2. The LLVM version used for building should match with rust upstream.
88+# Check the version number in the src/llvm-project git submodule in:
99+# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
1010+# 3. Firefox and Thunderbird should still build on x86_64-linux.
1111+1212+{ stdenv, lib
1313+, buildPackages
1414+, newScope, callPackage
1515+, CoreFoundation, Security, SystemConfiguration
1616+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
1717+, makeRustPlatform
1818+, llvmPackages_11
1919+, llvmPackages_13, llvm_13
2020+} @ args:
2121+2222+import ./default.nix {
2323+ rustcVersion = "1.56.1";
2424+ rustcSha256 = "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3";
2525+2626+ llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
2727+ llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
2828+ llvmSharedForTarget = pkgsBuildTarget.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
2929+3030+ llvmBootstrapForDarwin = llvmPackages_11;
3131+3232+ # For use at runtime
3333+ llvmShared = llvm_13.override { enableSharedLibraries = true; };
3434+3535+ # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox
3636+ llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_13;
3737+3838+ # Note: the version MUST be one version prior to the version we're
3939+ # building
4040+ bootstrapVersion = "1.55.0";
4141+4242+ # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
4343+ bootstrapHashes = {
4444+ i686-unknown-linux-gnu = "6e42b6c44d2eb4170f4144423fa3c33338d8d5c3ea00b03bbac200c877bc9e98";
4545+ x86_64-unknown-linux-gnu = "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac";
4646+ x86_64-unknown-linux-musl = "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2";
4747+ arm-unknown-linux-gnueabihf = "483444153d35cda51c6aec2c24bc4c97fa4fd30b28df4b60bf9763bd6e06da3a";
4848+ armv7-unknown-linux-gnueabihf = "8c72f0eb75b10db970fb546c3b41f5e97df294d5dbbf0b8fa96e17f2b281ee9c";
4949+ aarch64-unknown-linux-gnu = "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156";
5050+ aarch64-unknown-linux-musl = "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28";
5151+ x86_64-apple-darwin = "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3";
5252+ aarch64-apple-darwin = "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a";
5353+ powerpc64le-unknown-linux-gnu = "12bf6447d338cbe2b55539b84e6369b17e7eefe938d1ba7e3dd69781c9cc9812";
5454+ riscv64gc-unknown-linux-gnu = "effceb45346fef3b0b54b357336e6f374f788b803bb1bee4084f25eace8907f3";
5555+ };
5656+5757+ selectRustPackage = pkgs: pkgs.rust_1_56;
5858+5959+ rustcPatches = [
6060+ ];
6161+}
6262+6363+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_11" "llvmPackages_13" "llvm_13"])
···4848 "--with-smooth-scaling"
4949 ] ++ lib.optional enableX11 "--enable-x11";
50505151+ # Disable parallel building as parallel builds fail due to incomplete
5252+ # depends between autogenerated CoreSlave.h and it's include sites:
5353+ # CC prealloc_surface_pool_bridge.lo
5454+ # prealloc_surface_pool_bridge.c:41:10:
5555+ # fatal error: core/CoreSlave.h: No such file or directory
5656+ #
5757+ # Dependencies are specified manually in src/core/Makefile.am. Instead
5858+ # of fixing them one by one locally let's disable parallel builds until
5959+ # upstream fixes them.
6060+ enableParallelBuilding = false;
6161+5162 meta = with lib; {
5263 description = "Graphics and input library designed with embedded systems in mind";
5364 longDescription = ''
···11+This patch lets GLib's GDesktopAppInfo API watch and notice changes
22+to the Nix user and system profiles. That way, the list of available
33+applications shown by the desktop environment is immediately updated
44+when the user installs or removes any
55+(see <https://issues.guix.gnu.org/35594>).
66+77+It does so by monitoring /nix/var/nix/profiles (for changes to the system
88+profile) and /nix/var/nix/profiles/per-user/USER (for changes to the user
99+profile) as well as /etc/profiles/per-user (for chanes to the user
1010+environment profile) and crawling their share/applications sub-directory when
1111+changes happen.
1212+1313+diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
1414+index b779b30..31069f7 100644
1515+--- a/gio/gdesktopappinfo.c
1616++++ b/gio/gdesktopappinfo.c
1717+@@ -150,6 +150,7 @@ typedef struct
1818+ gchar *alternatively_watching;
1919+ gboolean is_config;
2020+ gboolean is_setup;
2121++ gchar *nix_profile_watch_dir;
2222+ GFileMonitor *monitor;
2323+ GHashTable *app_names;
2424+ GHashTable *mime_tweaks;
2525+@@ -181,6 +182,7 @@ desktop_file_dir_unref (DesktopFileDir *dir)
2626+ {
2727+ desktop_file_dir_reset (dir);
2828+ g_free (dir->path);
2929++ g_free (dir->nix_profile_watch_dir);
3030+ g_free (dir);
3131+ }
3232+ }
3333+@@ -205,6 +207,14 @@ desktop_file_dir_get_alternative_dir (DesktopFileDir *dir)
3434+ {
3535+ gchar *parent;
3636+3737++ /* If DIR is a profile, watch the specified directory--e.g.,
3838++ * /nix/var/nix/profiles/per-user/$USER/ for the user profile. Do not watch
3939++ * ~/.nix-profile or /run/current-system/sw because GFileMonitor does
4040++ * not pass IN_DONT_FOLLOW and thus cannot notice any change.
4141++ * /etc/profiles/per-user is monitored directly for the same reason. */
4242++ if (dir->nix_profile_watch_dir != NULL)
4343++ return g_strdup (dir->nix_profile_watch_dir);
4444++
4545+ /* If the directory itself exists then we need no alternative. */
4646+ if (g_access (dir->path, R_OK | X_OK) == 0)
4747+ return NULL;
4848+@@ -250,11 +260,11 @@ desktop_file_dir_changed (GFileMonitor *monitor,
4949+ *
5050+ * If this is a notification for a parent directory (because the
5151+ * desktop directory didn't exist) then we shouldn't fire the signal
5252+- * unless something actually changed.
5353++ * unless something actually changed or it's part of a Nix profile.
5454+ */
5555+ g_mutex_lock (&desktop_file_dir_lock);
5656+5757+- if (dir->alternatively_watching)
5858++ if (dir->alternatively_watching && dir->nix_profile_watch_dir == NULL)
5959+ {
6060+ gchar *alternative_dir;
6161+6262+@@ -1556,6 +1566,40 @@ desktop_file_dirs_lock (void)
6363+ for (i = 0; dirs[i]; i++)
6464+ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_new (dirs[i]));
6565+6666++ {
6767++ /* Monitor the system and user profile under /nix/var/nix/profiles and
6868++ * treat modifications to them as if they were modifications to their
6969++ * /share sub-directory. */
7070++ const gchar *user;
7171++ DesktopFileDir *system_profile_dir, *user_profile_dir, *user_env_dir;
7272++
7373++ system_profile_dir =
7474++ desktop_file_dir_new ("/nix/var/nix/profiles/system/sw/share");
7575++ system_profile_dir->nix_profile_watch_dir = g_strdup ("/nix/var/nix/profiles");
7676++ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (system_profile_dir));
7777++
7878++ user = g_get_user_name ();
7979++ if (user != NULL)
8080++ {
8181++ gchar *profile_dir, *user_data_dir, *env_dir, *env_data_dir;
8282++
8383++ profile_dir = g_build_filename ("/nix/var/nix/profiles/per-user", user, NULL);
8484++ user_data_dir = g_build_filename (profile_dir, "profile", "share", NULL);
8585++ user_profile_dir = desktop_file_dir_new (user_data_dir);
8686++ user_profile_dir->nix_profile_watch_dir = profile_dir;
8787++
8888++ env_dir = g_build_filename ("/etc/profiles/per-user", NULL);
8989++ env_data_dir = g_build_filename (env_dir, user, "share", NULL);
9090++ user_env_dir = desktop_file_dir_new (env_data_dir);
9191++ user_env_dir->nix_profile_watch_dir = env_dir;
9292++
9393++ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (user_profile_dir));
9494++ g_ptr_array_add (desktop_file_dirs, desktop_file_dir_ref (user_env_dir));
9595++ g_free (user_data_dir);
9696++ g_free (env_data_dir);
9797++ }
9898++ }
9999++
100100+ /* The list of directories will never change after this, unless
101101+ * g_get_user_config_dir() changes due to %G_TEST_OPTION_ISOLATE_DIRS. */
102102+ desktop_file_dirs_config_dir = user_config_dir;
···11-{ lib, stdenv, fetchurl, pkg-config, glib, expat, pam, perl, fetchpatch
22-, intltool, spidermonkey_78, gobject-introspection, libxslt, docbook_xsl, dbus
33-, docbook_xml_dtd_412, gtk-doc, coreutils
44-, useSystemd ? (stdenv.isLinux && !stdenv.hostPlatform.isMusl), systemd, elogind
11+{ lib
22+, stdenv
33+, fetchFromGitLab
44+, pkg-config
55+, glib
66+, expat
77+, pam
88+, meson
99+, ninja
1010+, perl
1111+, rsync
1212+, python3
1313+, fetchpatch
1414+, gettext
1515+, spidermonkey_78
1616+, gobject-introspection
1717+, libxslt
1818+, docbook-xsl-nons
1919+, dbus
2020+, docbook_xml_dtd_412
2121+, gtk-doc
2222+, coreutils
2323+, useSystemd ? stdenv.isLinux
2424+, systemd
2525+, elogind
526# needed until gobject-introspection does cross-compile (https://github.com/NixOS/nixpkgs/pull/88222)
627, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
728# A few tests currently fail on musl (polkitunixusertest, polkitunixgrouptest, polkitidentitytest segfault).
···1233}:
13341435let
1515-1636 system = "/run/current-system/sw";
1737 setuid = "/run/wrappers/bin";
1818-1938in
2020-2139stdenv.mkDerivation rec {
2240 pname = "polkit";
2323- version = "0.119";
4141+ version = "0.120";
4242+4343+ outputs = [ "bin" "dev" "out" ]; # small man pages in $bin
24442525- src = fetchurl {
2626- url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.gz";
2727- sha256 = "0p0zzmr0kh3mpmqya4q27y4h9b920zp5ya0i8909ahp9hvdrymy8";
4545+ # Tarballs do not contain subprojects.
4646+ src = fetchFromGitLab {
4747+ domain = "gitlab.freedesktop.org";
4848+ owner = "polkit";
4949+ repo = "polkit";
5050+ rev = version;
5151+ sha256 = "oEaRf1g13zKMD+cP1iwIA6jaCDwvNfGy2i8xY8vuVSo=";
2852 };
29533030- patches = lib.optionals stdenv.hostPlatform.isMusl [
5454+ patches = [
5555+ # Allow changing base for paths in pkg-config file as before.
5656+ # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/100
5757+ (fetchpatch {
5858+ url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/7ba07551dfcd4ef9a87b8f0d9eb8b91fabcb41b3.patch";
5959+ sha256 = "ebbLILncq1hAZTBMsLm+vDGw6j0iQ0crGyhzyLZQgKA=";
6060+ })
6161+ ] ++ lib.optionals stdenv.hostPlatform.isMusl [
3162 # Make netgroup support optional (musl does not have it)
3263 # Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/10
3364 # We use the version of the patch that Alpine uses successfully.
3465 (fetchpatch {
3566 name = "make-innetgr-optional.patch";
3636- url = "https://git.alpinelinux.org/aports/plain/main/polkit/make-innetgr-optional.patch?id=391e7de6ced1a96c2dac812e0b12f1d7e0ea705e";
3737- sha256 = "1p9qqqhnrfyjvvd50qh6vpl256kyfblm1qnhz5pm09klrl1bh1n4";
6767+ url = "https://git.alpinelinux.org/aports/plain/community/polkit/make-innetgr-optional.patch?id=424ecbb6e9e3a215c978b58c05e5c112d88dddfc";
6868+ sha256 = "0iyiksqk29sizwaa4623bv683px1fny67639qpb1him89hza00wy";
3869 })
3970 ];
40714141- postPatch = lib.optionalString stdenv.isDarwin ''
4242- sed -i -e "s/-Wl,--as-needed//" configure.ac
4343- '';
7272+ nativeBuildInputs = [
7373+ glib
7474+ gtk-doc
7575+ pkg-config
7676+ gettext
7777+ meson
7878+ ninja
7979+ perl
8080+ rsync
8181+ (python3.withPackages (pp: with pp; [
8282+ dbus-python
8383+ (python-dbusmock.overridePythonAttrs (attrs: {
8484+ # Avoid dependency cycle.
8585+ doCheck = false;
8686+ }))
8787+ ]))
44884545- outputs = [ "bin" "dev" "out" ]; # small man pages in $bin
8989+ # man pages
9090+ libxslt
9191+ docbook-xsl-nons
9292+ docbook_xml_dtd_412
9393+ ];
46944747- nativeBuildInputs =
4848- [ glib gtk-doc pkg-config intltool perl ]
4949- ++ [ libxslt docbook_xsl docbook_xml_dtd_412 ]; # man pages
5050- buildInputs =
5151- [ expat pam spidermonkey_78 ]
9595+ buildInputs = [
9696+ expat
9797+ pam
9898+ spidermonkey_78
9999+ ] ++ lib.optionals stdenv.isLinux [
52100 # On Linux, fall back to elogind when systemd support is off.
5353- ++ lib.optional stdenv.isLinux (if useSystemd then systemd else elogind)
5454- ++ lib.optional withIntrospection gobject-introspection;
101101+ (if useSystemd then systemd else elogind)
102102+ ] ++ lib.optionals withIntrospection [
103103+ gobject-introspection
104104+ ];
5510556106 propagatedBuildInputs = [
57107 glib # in .pc Requires
58108 ];
591096060- preConfigure = ''
6161- chmod +x test/mocklibc/bin/mocklibc{,-test}.in
6262- patchShebangs .
110110+ checkInputs = [
111111+ dbus
112112+ ];
113113+114114+ mesonFlags = [
115115+ "--datadir=${system}/share"
116116+ "--sysconfdir=/etc"
117117+ "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
118118+ "-Dpolkitd_user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
119119+ "-Dos_type=redhat" # only affects PAM includes
120120+ "-Dintrospection=${lib.boolToString withIntrospection}"
121121+ "-Dtests=${lib.boolToString doCheck}"
122122+ "-Dgtk_doc=${lib.boolToString true}"
123123+ "-Dman=true"
124124+ ] ++ lib.optionals stdenv.isLinux [
125125+ "-Dsession_tracking=${if useSystemd then "libsystemd-login" else "libelogind"}"
126126+ ];
127127+128128+ # HACK: We want to install policy files files to $out/share but polkit
129129+ # should read them from /run/current-system/sw/share on a NixOS system.
130130+ # Similarly for config files in /etc.
131131+ # With autotools, it was possible to override Make variables
132132+ # at install time but Meson does not support this
133133+ # so we need to convince it to install all files to a temporary
134134+ # location using DESTDIR and then move it to proper one in postInstall.
135135+ DESTDIR = "${placeholder "out"}/dest";
136136+137137+ inherit doCheck;
138138+139139+ postPatch = ''
140140+ patchShebangs test/polkitbackend/polkitbackendjsauthoritytest-wrapper.py
6314164142 # ‘libpolkit-agent-1.so’ should call the setuid wrapper on
65143 # NixOS. Hard-coding the path is kinda ugly. Maybe we can just
···69147 substituteInPlace test/data/etc/polkit-1/rules.d/10-testing.rules \
70148 --replace /bin/true ${coreutils}/bin/true \
71149 --replace /bin/false ${coreutils}/bin/false
7272-7373- '' + lib.optionalString useSystemd /* bogus chroot detection */ ''
7474- sed '/libsystemd autoconfigured/s/.*/:/' -i configure
75150 '';
761517777- configureFlags = [
7878- "--datadir=${system}/share"
7979- "--sysconfdir=/etc"
8080- "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
8181- "--with-polkitd-user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
8282- "--with-os-type=NixOS" # not recognized but prevents impurities on non-NixOS
8383- (if withIntrospection then "--enable-introspection" else "--disable-introspection")
8484- ] ++ lib.optional (!doCheck) "--disable-test";
152152+ postConfigure = ''
153153+ # Unpacked by meson
154154+ chmod +x subprojects/mocklibc-1.0/bin/mocklibc
155155+ patchShebangs subprojects/mocklibc-1.0/bin/mocklibc
156156+ '';
851578686- makeFlags = [
8787- "INTROSPECTION_GIRDIR=${placeholder "out"}/share/gir-1.0"
8888- "INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
8989- ];
9090-9191- installFlags = [
9292- "datadir=${placeholder "out"}/share"
9393- "sysconfdir=${placeholder "out"}/etc"
9494- ];
9595-9696- inherit doCheck;
9797- checkInputs = [ dbus ];
98158 checkPhase = ''
99159 runHook preCheck
100160101101- # unfortunately this test needs python-dbusmock, but python-dbusmock needs polkit,
102102- # leading to a circular dependency
103103- substituteInPlace test/Makefile --replace polkitbackend ""
104104-105161 # tests need access to the system bus
106106- dbus-run-session --config-file=${./system_bus.conf} -- sh -c 'DBUS_SYSTEM_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS make check'
162162+ dbus-run-session --config-file=${./system_bus.conf} -- sh -c 'DBUS_SYSTEM_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS meson test --print-errorlogs'
107163108164 runHook postCheck
165165+ '';
166166+167167+ postInstall = ''
168168+ # Move stuff from DESTDIR to proper location.
169169+ # We use rsync to merge the directories.
170170+ rsync --archive "${DESTDIR}/etc" "$out"
171171+ rm --recursive "${DESTDIR}/etc"
172172+ rsync --archive "${DESTDIR}${system}"/* "$out"
173173+ rm --recursive "${DESTDIR}${system}"/*
174174+ rmdir --parents --ignore-fail-on-non-empty "${DESTDIR}${system}"
175175+ for o in $outputs; do
176176+ rsync --archive "${DESTDIR}/''${!o}" "$(dirname "''${!o}")"
177177+ rm --recursive "${DESTDIR}/''${!o}"
178178+ done
179179+ # Ensure the DESTDIR is removed.
180180+ destdirContainer="$(dirname "${DESTDIR}")"
181181+ pushd "$destdirContainer"; rmdir --parents "''${DESTDIR##$destdirContainer/}${builtins.storeDir}"; popd
109182 '';
110183111184 meta = with lib; {
+7
pkgs/development/libraries/portaudio/default.nix
···29293030 propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ];
31313232+ # Disable parallel build as it fails as:
3333+ # make: *** No rule to make target '../../../lib/libportaudio.la',
3434+ # needed by 'libportaudiocpp.la'. Stop.
3535+ # Next release should address it with
3636+ # https://github.com/PortAudio/portaudio/commit/28d2781d9216115543aa3f0a0ffb7b4ee0fac551.patch
3737+ enableParallelBuilding = false;
3838+3239 # not sure why, but all the headers seem to be installed by the make install
3340 installPhase = ''
3441 make install
···1414 configureFlagsArray+=("ac_cv_check_sjlj=ssjlj")
1515 '';
16161717+ # Fails parallel build due to missing dependency on autogenrated
1818+ # 'pth_p.h' file:
1919+ # ./shtool scpp -o pth_p.h ...
2020+ # ./libtool --mode=compile --quiet gcc -c -I. -O2 -pipe pth_uctx.c
2121+ # pth_uctx.c:31:10: fatal error: pth_p.h: No such file
2222+ enableParallelBuilding = false;
2323+1724 meta = with lib; {
1825 description = "The GNU Portable Threads library";
1926 homepage = "https://www.gnu.org/software/pth";
+4-67
pkgs/development/libraries/qt-5/5.15/default.nix
···2233# Updates
4455-Before a major version update, make a copy of this directory. (We like to
66-keep the old version around for a short time after major updates.) Add a
77-top-level attribute to `top-level/all-packages.nix`.
88-99-1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
1010-2. From the top of the Nixpkgs tree, run
1111- `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
1212-3. Check that the new packages build correctly.
1313-4. Commit the changes and open a pull request.
55+Run `./fetch.sh` to update package sources from Git.
66+Check for any minor version changes.
147158*/
169···28212922let
30232424+ srcs = import ./srcs.nix { inherit lib fetchgit fetchFromGitHub; };
2525+3126 qtCompatVersion = srcs.qtbase.version;
32273328 stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
34293535- mirror = "https://download.qt.io";
3636- srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
3737- # qtwebkit does not have an official release tarball on the qt mirror and is
3838- # mostly maintained by the community.
3939- qtwebkit = rec {
4040- src = fetchFromGitHub {
4141- owner = "qt";
4242- repo = "qtwebkit";
4343- rev = "v${version}";
4444- sha256 = "0x8rng96h19xirn7qkz3lydal6v4vn00bcl0s3brz36dfs0z8wpg";
4545- };
4646- version = "5.212.0-alpha4";
4747- };
4848- qtwebengine =
4949- let
5050- branchName = "5.15.6";
5151- rev = "v${branchName}-lts";
5252- in
5353- {
5454- version = "${branchName}-${lib.substring 0 7 rev}";
5555-5656- src = fetchgit {
5757- url = "https://github.com/qt/qtwebengine.git";
5858- sha256 = "17bw9yf04zmr9ck5jkrd435c8b03zpf937vn2nwgsr8p78wkg3kr";
5959- inherit rev branchName;
6060- fetchSubmodules = true;
6161- leaveDotGit = true;
6262- name = "qtwebengine-${lib.substring 0 7 rev}.tar.gz";
6363- postFetch = ''
6464- # remove submodule .git directory
6565- rm -rf "$out/src/3rdparty/.git"
6666-6767- # compress to not exceed the 2GB output limit
6868- # try to make a deterministic tarball
6969- tar -I 'gzip -n' \
7070- --sort=name \
7171- --mtime=1970-01-01 \
7272- --owner=root --group=root \
7373- --numeric-owner --mode=go=rX,u+rw,a-s \
7474- --transform='s@^@source/@' \
7575- -cf temp -C "$out" .
7676- rm -r "$out"
7777- mv temp "$out"
7878- '';
7979- };
8080- };
8181- };
8282-8330 patches = {
8431 qtbase = lib.optionals stdenv.isDarwin [
8532 ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
···10754 ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch
10855 ./qtbase.patch.d/0010-qtbase-assert.patch
10956 ./qtbase.patch.d/0011-fix-header_module.patch
110110- (fetchpatch { # This can be removed when https://codereview.qt-project.org/c/qt/qtbase/+/339323 is included in an release.
111111- name = "0014-gcc11-compat.patch";
112112- url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=049e14870c13235cd066758f29c42dc96c1ccdf8";
113113- sha256 = "1cb2hwi859hds0fa2cbap014qaa7mah9p0rcxcm2cvj2ybl33qfc";
114114- })
115115- (fetchpatch { # This can be removed when https://codereview.qt-project.org/c/qt/qtbase/+/363880/3 is included in an release.
116116- name = "qtbase-mysql-version-vs-functionality-check.patch";
117117- url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=211369133cf40b2f522caaff259c19069ed23ca4";
118118- sha256 = "19kq9h10qm344fpdqa9basrbzh1y5kr48c6jzz3nvk61pk4ja1k4";
119119- })
12057 ];
12158 qtdeclarative = [ ./qtdeclarative.patch ];
12259 qtscript = [ ./qtscript.patch ];
···115115 sed -i '/PATHS.*NO_DEFAULT_PATH/ d' src/corelib/Qt5CoreMacros.cmake
116116 sed -i 's/NO_DEFAULT_PATH//' src/gui/Qt5GuiConfigExtras.cmake.in
117117 sed -i '/PATHS.*NO_DEFAULT_PATH/ d' mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
118118+ '' + lib.optionalString (compareVersion "5.15.0" >= 0) ''
119119+ patchShebangs ./bin
118120 '' + (
119121 if stdenv.isDarwin then ''
120122 sed -i \
···149151 ''}
150152151153 NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PREFIX=\"$qtPluginPrefix\""
154154+ '' + lib.optionalString (compareVersion "5.15.0" >= 0) ''
155155+ ./bin/syncqt.pl -version $version
152156 '';
153157154158 postConfigure = ''
+17
pkgs/development/libraries/qt-5/qtModule.nix
···3131 ${args.preConfigure or ""}
32323333 fixQtBuiltinPaths . '*.pr?'
3434+ '' + lib.optionalString (builtins.compareVersions "5.15.0" version <= 0)
3535+ # Note: We use ${version%%-*} to remove any tag from the end of the version
3636+ # string. Version tags are added by Nixpkgs maintainers and not reflected in
3737+ # the source version.
3838+ ''
3939+ if [[ -z "$dontCheckQtModuleVersion" ]] \
4040+ && grep -q '^MODULE_VERSION' .qmake.conf 2>/dev/null \
4141+ && ! grep -q -F "''${version%%-*}" .qmake.conf 2>/dev/null
4242+ then
4343+ echo >&2 "error: could not find version ''${version%%-*} in .qmake.conf"
4444+ echo >&2 "hint: check .qmake.conf and update the package version in Nixpkgs"
4545+ exit 1
4646+ fi
4747+4848+ if [[ -z "$dontSyncQt" && -f sync.profile ]]; then
4949+ syncqt.pl -version "''${version%%-*}"
5050+ fi
3451 '';
35523653 dontWrapQtApps = args.dontWrapQtApps or true;
···4343 }
44444545 preDistPhases+=" pytestcachePhase"
4646+4747+ # pytest generates it's own bytecode files to improve assertion messages.
4848+ # These files similar to cpython's bytecode files but are never laoded
4949+ # by python interpreter directly. We remove them for a few reasons:
5050+ # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
5151+ # (file headers are generatedt by pytest directly and contain timestamps)
5252+ # - files are not needed after tests are finished
5353+ pytestRemoveBytecodePhase () {
5454+ # suffix is defined at:
5555+ # https://github.com/pytest-dev/pytest/blob/4.6.11/src/_pytest/assertion/rewrite.py#L32-L47
5656+ find $out -name "*-PYTEST.py[co]" -delete
5757+ }
5858+ preDistPhases+=" pytestRemoveBytecodePhase"
4659 '';
47604861 meta = with lib; {
+13
pkgs/development/python-modules/pytest/5.nix
···6767 find $out -name .pytest_cache -type d -exec rm -rf {} +
6868 }
6969 preDistPhases+=" pytestcachePhase"
7070+7171+ # pytest generates it's own bytecode files to improve assertion messages.
7272+ # These files similar to cpython's bytecode files but are never laoded
7373+ # by python interpreter directly. We remove them for a few reasons:
7474+ # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
7575+ # (file headers are generatedt by pytest directly and contain timestamps)
7676+ # - files are not needed after tests are finished
7777+ pytestRemoveBytecodePhase () {
7878+ # suffix is defined at:
7979+ # https://github.com/pytest-dev/pytest/blob/5.4.3/src/_pytest/assertion/rewrite.py#L42-L45
8080+ find $out -name "*-pytest-*.py[co]" -delete
8181+ }
8282+ preDistPhases+=" pytestRemoveBytecodePhase"
7083 '';
71847285 pythonImportsCheck = [
···8282 find $out -name .pytest_cache -type d -exec rm -rf {} +
8383 }
8484 preDistPhases+=" pytestcachePhase"
8585+8686+ # pytest generates it's own bytecode files to improve assertion messages.
8787+ # These files similar to cpython's bytecode files but are never laoded
8888+ # by python interpreter directly. We remove them for a few reasons:
8989+ # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
9090+ # (file headers are generatedt by pytest directly and contain timestamps)
9191+ # - files are not needed after tests are finished
9292+ pytestRemoveBytecodePhase () {
9393+ # suffix is defined at:
9494+ # https://github.com/pytest-dev/pytest/blob/6.2.5/src/_pytest/assertion/rewrite.py#L51-L53
9595+ find $out -name "*-pytest-*.py[co]" -delete
9696+ }
9797+ preDistPhases+=" pytestRemoveBytecodePhase"
8598 '';
869987100 pythonImportsCheck = [
···11+From: Nick Clifton <nickc@redhat.com>
22+Date: Thu, 26 Nov 2020 17:08:33 +0000 (+0000)
33+Subject: Prevent a memory allocation failure when parsing corrupt DWARF debug sections.
44+X-Git-Tag: binutils-2_36~485
55+X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=647cebce12a6b0a26960220caff96ff38978cf24;hp=239ca5e497dda2c151009d664d500086a5c2173a
66+77+Prevent a memory allocation failure when parsing corrupt DWARF debug sections.
88+99+ PR 26946
1010+ * dwarf2.c (read_section): Check for debug sections with excessive
1111+ sizes.
1212+---
1313+1414+diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
1515+index 977bf43a6a1..8bbfc81d3e7 100644
1616+--- a/bfd/dwarf2.c
1717++++ b/bfd/dwarf2.c
1818+@@ -531,22 +531,24 @@ read_section (bfd * abfd,
1919+ bfd_byte ** section_buffer,
2020+ bfd_size_type * section_size)
2121+ {
2222+- asection *msec;
2323+ const char *section_name = sec->uncompressed_name;
2424+ bfd_byte *contents = *section_buffer;
2525+- bfd_size_type amt;
2626+2727+ /* The section may have already been read. */
2828+ if (contents == NULL)
2929+ {
3030++ bfd_size_type amt;
3131++ asection *msec;
3232++ ufile_ptr filesize;
3333++
3434+ msec = bfd_get_section_by_name (abfd, section_name);
3535+- if (! msec)
3636++ if (msec == NULL)
3737+ {
3838+ section_name = sec->compressed_name;
3939+ if (section_name != NULL)
4040+ msec = bfd_get_section_by_name (abfd, section_name);
4141+ }
4242+- if (! msec)
4343++ if (msec == NULL)
4444+ {
4545+ _bfd_error_handler (_("DWARF error: can't find %s section."),
4646+ sec->uncompressed_name);
4747+@@ -554,12 +556,23 @@ read_section (bfd * abfd,
4848+ return FALSE;
4949+ }
5050+5151+- *section_size = msec->rawsize ? msec->rawsize : msec->size;
5252++ amt = bfd_get_section_limit_octets (abfd, msec);
5353++ filesize = bfd_get_file_size (abfd);
5454++ if (amt >= filesize)
5555++ {
5656++ /* PR 26946 */
5757++ _bfd_error_handler (_("DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)"),
5858++ section_name, (long) amt, (long) filesize);
5959++ bfd_set_error (bfd_error_bad_value);
6060++ return FALSE;
6161++ }
6262++ *section_size = amt;
6363+ /* Paranoia - alloc one extra so that we can make sure a string
6464+ section is NUL terminated. */
6565+- amt = *section_size + 1;
6666++ amt += 1;
6767+ if (amt == 0)
6868+ {
6969++ /* Paranoia - this should never happen. */
7070+ bfd_set_error (bfd_error_no_memory);
7171+ return FALSE;
7272+ }
7373+
+3-2
pkgs/development/tools/misc/binutils/default.nix
···2727let
2828 reuseLibs = enableShared && withAllTargets;
29293030- version = "2.35.1";
3030+ version = "2.35.2";
3131 basename = "binutils";
3232 # The targetPrefix prepended to binary names to allow multiple binuntils on the
3333 # PATH to both be usable.
···4242 # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
4343 normal-src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
4444 url = "mirror://gnu/binutils/${basename}-${version}.tar.bz2";
4545- sha256 = "sha256-Mg56HQ9G/Nn0E/EEbiFsviO7K85t62xqYzBEJeSLGUI=";
4545+ sha256 = "sha256-z6dkTb7PRZHhNutAfBwdoWV4vSsD8MLorNzroZS7nWE=";
4646 });
4747in
4848···8484 ./gold-Update-GNU_PROPERTY_X86_XXX-macros.patch
85858686 ./CVE-2020-35448.patch
8787+ ./CVE-2021-3487.patch
8788 ] ++ lib.optional stdenv.targetPlatform.isiOS ./support-ios.patch
8889 ++ # This patch was suggested by Nick Clifton to fix
8990 # https://sourceware.org/bugzilla/show_bug.cgi?id=16177
···129129 XDP_SOCKETS = whenAtLeast "4.19" yes;
130130 XDP_SOCKETS_DIAG = whenAtLeast "5.1" yes;
131131 WAN = yes;
132132+ TCP_CONG_ADVANCED = yes;
132133 TCP_CONG_CUBIC = yes; # This is the default congestion control algorithm since 2.6.19
133134 # Required by systemd per-cgroup firewalling
134135 CGROUP_BPF = option yes;
···759760 DVB_DYNAMIC_MINORS = option yes; # we use udev
760761761762 EFI_STUB = yes; # EFI bootloader in the bzImage itself
763763+ EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER =
764764+ whenAtLeast "5.8" yes; # initrd kernel parameter for EFI
762765 CGROUPS = yes; # used by systemd
763766 FHANDLE = yes; # used by systemd
764767 SECCOMP = yes; # used by systemd >= 231
+7-1
pkgs/os-specific/linux/kernel/manual-config.nix
···128128 # See also https://kernelnewbies.org/BuildId
129129 sed -i Makefile -e 's|--build-id=[^ ]*|--build-id=none|'
130130131131- patchShebangs scripts
131131+ # Some linux-hardened patches now remove certain files in the scripts directory, so we cannot
132132+ # patch all scripts until after patches are applied.
133133+ # However, scripts/ld-version.sh is still ran when generating a configfile for a kernel, so it needs
134134+ # to be patched prior to patchPhase
135135+ patchShebangs scripts/ld-version.sh
132136 '';
133137134138 postPatch = ''
···142146 --replace NIXOS_RANDSTRUCT_SEED \
143147 $(echo ${randstructSeed}${src} ${configfile} | sha256sum | cut -d ' ' -f 1 | tr -d '\n')
144148 fi
149149+150150+ patchShebangs scripts
145151 '';
146152147153 configurePhase = ''
···11-From 31732478745f7a200004fb8ec013f54dbc536f2e Mon Sep 17 00:00:00 2001
11+From 8edd810e74e2308f34eba6e8072e559e69307830 Mon Sep 17 00:00:00 2001
22From: Nikolay Amiantov <ab@fmap.me>
33Date: Thu, 25 Jul 2019 20:45:55 +0300
44Subject: [PATCH 14/19] systemd-shutdown: execute scripts in
···2323 /* The log target defaults to console, but the original systemd process will pass its log target in through a
2424 * command line argument, which will override this default. Also, ensure we'll never log to the journal or
2525--
2626-2.32.0
2626+2.33.0
2727
···11-From 93413acd3ef3a637a0f31a1d133b103e1dc81fd6 Mon Sep 17 00:00:00 2001
22-From: Yu Watanabe <watanabe.yu+github@gmail.com>
33-Date: Mon, 23 Aug 2021 06:16:48 +0900
44-Subject: [PATCH] path-util: make find_executable() work without /proc mounted
55-66-Follow-up for 888f65ace6296ed61285d31db846babf1c11885e.
77-88-Hopefully fixes #20514.
99----
1010- src/basic/path-util.c | 6 +++++-
1111- 1 file changed, 5 insertions(+), 1 deletion(-)
1212-1313-diff --git a/src/basic/path-util.c b/src/basic/path-util.c
1414-index d11f254a9f6a..a21981616b59 100644
1515---- a/src/basic/path-util.c
1616-+++ b/src/basic/path-util.c
1717-@@ -630,7 +630,11 @@ static int check_x_access(const char *path, int *ret_fd) {
1818- return r;
1919-2020- r = access_fd(fd, X_OK);
2121-- if (r < 0)
2222-+ if (r == -ENOSYS) {
2323-+ /* /proc is not mounted. Fallback to access(). */
2424-+ if (access(path, X_OK) < 0)
2525-+ return -errno;
2626-+ } else if (r < 0)
2727- return r;
2828-2929- if (ret_fd)
+60-32
pkgs/os-specific/linux/systemd/default.nix
···44, lib
55, fetchFromGitHub
66, fetchpatch
77+, fetchzip
78, buildPackages
89, ninja
910, meson
···7576, withHomed ? false
7677, withHostnamed ? true
7778, withHwdb ? true
7878-, withImportd ? true
7979+, withImportd ? !stdenv.hostPlatform.isMusl
7980, withLibBPF ? false # currently fails while generating BPF objects
8081, withLocaled ? true
8182, withLogind ? true
8283, withMachined ? true
8384, withNetworkd ? true
8484-, withNss ? true
8585+, withNss ? !stdenv.hostPlatform.isMusl
8586, withOomd ? false
8687, withPCRE2 ? true
8788, withPolkit ? true
8889, withPortabled ? false
8989-, withRemote ? true
9090+, withRemote ? !stdenv.hostPlatform.isMusl
9091, withResolved ? true
9192, withShellCompletions ? true
9293, withTimedated ? true
9394, withTimesyncd ? true
9494-, withTpm2Tss ? true
9595-, withUserDb ? true
9595+, withTpm2Tss ? !stdenv.hostPlatform.isMusl
9696+, withUserDb ? !stdenv.hostPlatform.isMusl
9697, libfido2
9798, p11-kit
9899···119120assert withCryptsetup -> (cryptsetup != null);
120121let
121122 wantCurl = withRemote || withImportd;
122122- version = "249.4";
123123+ version = "249.5";
123124in
124125stdenv.mkDerivation {
125126 inherit pname version;
···130131 owner = "systemd";
131132 repo = "systemd-stable";
132133 rev = "v${version}";
133133- sha256 = "0pqi9gbk9kgwvd0idf13ybxz7s4h5przn01bwj6fna44jr0wy41c";
134134+ sha256 = "0bir2syy20rdi59sv8xp8nw1c92zl9z0wmv7ggsll8dca7niqwbp";
134135 };
135136136137 # If these need to be regenerated, `git am path/to/00*.patch` them into a
···155156 ./0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
156157 ./0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
157158 ./0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
158158- ./0018-logind-seat-debus-show-CanMultiSession-again.patch
159159- ./0019-pkg-config-derive-prefix-from-prefix.patch
160160-161161- # In v249 a bunch of meson files had been touched as part of the migration to
162162- # jinja2 for templating. Unfortunately some of those files lost the `install_sysconfdir_samples` check.
163163- # The following two patches are part of a PR that was filed to fix those cases.
164164- # https://github.com/systemd/systemd/pull/20303
165165- ./0020-core-respect-install_sysconfdir_samples-in-meson-fil.patch
166166- ./0021-login-respect-install_sysconfdir_samples-in-meson-fi.patch
159159+ ./0018-pkg-config-derive-prefix-from-prefix.patch
167160168168- # In v248 or v249 we started to get in trouble due to our /etc/systemd/sytem being
169169- # a symlink and thus being treated differently by systemd. With the below
170170- # patch we mitigate that effect by special casing all our root unit dirs
171171- # if they are symlinks. This does exactly what we need (AFAICT).
172172- ./0022-core-Handle-lookup-paths-being-symlinks.patch
161161+ # In v248 or v249 we started to get in trouble due to our
162162+ # /etc/systemd/system being a symlink and thus being treated differently by
163163+ # systemd. With the below patch we mitigate that effect by special casing
164164+ # all our root unit dirs if they are symlinks. This does exactly what we
165165+ # need (AFAICT).
166166+ ./0019-core-handle-lookup-paths-being-symlinks.patch
167167+ ] ++ lib.optional stdenv.hostPlatform.isMusl (let
168168+ oe-core = fetchzip {
169169+ url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-14c6e5a4b72d0e4665279158a0740dd1dc21f72f.tar.bz2";
170170+ sha256 = "1jixya4czkr5p5rdcw3d6ips8zzr82dvnanvzvgjh67730scflya";
171171+ };
172172+ musl-patches = oe-core + "/meta/recipes-core/systemd/systemd";
173173+ in [
174174+ (musl-patches + "/0002-don-t-use-glibc-specific-qsort_r.patch")
175175+ (musl-patches + "/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch")
176176+ (musl-patches + "/0004-add-fallback-parse_printf_format-implementation.patch")
177177+ (musl-patches + "/0005-src-basic-missing.h-check-for-missing-strndupa.patch")
178178+ (musl-patches + "/0006-Include-netinet-if_ether.h.patch")
179179+ (musl-patches + "/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch")
180180+ (musl-patches + "/0008-add-missing-FTW_-macros-for-musl.patch")
181181+ (musl-patches + "/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch")
182182+ (musl-patches + "/0010-Use-uintmax_t-for-handling-rlim_t.patch")
183183+ (musl-patches + "/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch")
184184+ (musl-patches + "/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch")
185185+ (musl-patches + "/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch")
186186+ (musl-patches + "/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch")
187187+ (musl-patches + "/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch")
188188+ (musl-patches + "/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch")
189189+ (musl-patches + "/0017-missing_type.h-add-__compar_d_fn_t-definition.patch")
190190+ (musl-patches + "/0018-avoid-redefinition-of-prctl_mm_map-structure.patch")
191191+ (musl-patches + "/0019-Handle-missing-LOCK_EX.patch")
192192+ (musl-patches + "/0021-test-json.c-define-M_PIl.patch")
193193+ (musl-patches + "/0022-do-not-disable-buffer-in-writing-files.patch")
194194+ (musl-patches + "/0025-Handle-__cpu_mask-usage.patch")
195195+ (musl-patches + "/0026-Handle-missing-gshadow.patch")
196196+ (musl-patches + "/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch")
173197174174- # The way files are being tested for being executable changed in v248/v249
175175- # which caused our confinement setup to fail as we do not mount /proc by
176176- # default.
177177- # The issue has been reported upstream and this patch carries the upstream
178178- # fix for the same. Upstream now has a test for this scenario.
179179- # https://github.com/systemd/systemd/issues/20514
180180- ./0023-path-util-make-find_executable-work-without-proc-mounted.patch
181181- ];
198198+ # Being discussed upstream: https://lists.openembedded.org/g/openembedded-core/topic/86411771#157056
199199+ ./musl.diff
200200+ ]);
182201183202 postPatch = ''
184203 substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/"
···458477 "-Dnss-systemd=false"
459478 ] ++ lib.optionals withLibBPF [
460479 "-Dbpf-framework=true"
461461- ] ++ lib.optional withTpm2Tss "-Dtpm2=true";
480480+ ] ++ lib.optionals withTpm2Tss [
481481+ "-Dtpm2=true"
482482+ ] ++ lib.optionals stdenv.hostPlatform.isMusl [
483483+ "-Dgshadow=false"
484484+ "-Dutmp=false"
485485+ "-Didn=false"
486486+ ];
462487463488 preConfigure = ''
464489 mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org")
···520545 --replace "SYSTEMD_CGROUP_AGENT_PATH" "_SYSTEMD_CGROUP_AGENT_PATH"
521546 '';
522547523523- NIX_CFLAGS_COMPILE = toString [
548548+ NIX_CFLAGS_COMPILE = toString ([
524549 # Can't say ${polkit.bin}/bin/pkttyagent here because that would
525550 # lead to a cyclic dependency.
526551 "-UPOLKIT_AGENT_BINARY_PATH"
···534559535560 "-USYSTEMD_BINARY_PATH"
536561 "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\""
537537- ];
562562+563563+ ] ++ lib.optionals stdenv.hostPlatform.isMusl [
564564+ "-D__UAPI_DEF_ETHHDR=0"
565565+ ]);
538566539567 doCheck = false; # fails a bunch of tests
540568
···11import ./base.nix rec {
22- rev = "887cd2207e6858ff2c0fe6e461dd309a435c8d5a"; # use rev as tags have disappeared before
33- version = "2.47.3";
44- sha256 = "sha256-WUu3eAycG/oHTnT7HiZvf0B45I8miYolwRi9fHfA3uA=";
55- }
22+ rev = "3425dae078262591d04fec107ec71ab010651852"; # use rev as tags have disappeared before
33+ version = "2.49.3";
44+ sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0";
55+}
+5
pkgs/tools/inputmethods/m17n-lib/default.nix
···15151616 buildInputs = [ m17n_db ];
17171818+ # Fails parallel build due to missing intra-package depends:
1919+ # https://savannah.nongnu.org/bugs/index.php?61377
2020+ # make[2]: *** No rule to make target '../src/libm17n-core.la', needed by 'libm17n.la'. Stop.
2121+ enableParallelBuilding = false;
2222+1823 meta = {
1924 homepage = "https://www.nongnu.org/m17n/";
2025 description = "Multilingual text processing library (runtime)";
···11+On darwin, providing SystemConfiguration to curl currently results in a
22+reference loop, so we have to disable the check for it and the feature
33+which requires it (NAT64).
44+55+Patching actual configure script here as we also don't want to require
66+autoconf in the bootstrap loop just to regenerate a patched configure.ac.
77+88+--- a/configure 2021-10-16 00:51:59.000000000 +0100
99++++ b/configure 2021-10-16 01:06:46.000000000 +0100
1010+@@ -20810,7 +20810,7 @@
1111+ if test "x$build_for_macos" != xno; then
1212+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1313+ printf "%s\n" "yes" >&6; }
1414+- LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration"
1515++ LDFLAGS="$LDFLAGS -framework CoreFoundation"
1616+ else
1717+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
1818+ printf "%s\n" "no" >&6; }
1919+@@ -22211,9 +22211,6 @@
2020+ fi
2121+2222+2323+-if test "$HAVE_GETHOSTBYNAME" != "1"; then
2424+- as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5
2525+-fi
2626+2727+2828+ curl_includes_winsock2="\
2929+diff --git a/lib/curl_setup.h b/lib/curl_setup.h
3030+index 99048c489..19abfbbac 100644
3131+--- a/lib/curl_setup.h
3232++++ b/lib/curl_setup.h
3333+@@ -247,19 +247,6 @@
3434+ # include "setup-win32.h"
3535+ #endif
3636+3737+-/*
3838+- * Use getaddrinfo to resolve the IPv4 address literal. If the current network
3939+- * interface doesn't support IPv4, but supports IPv6, NAT64, and DNS64,
4040+- * performing this task will result in a synthesized IPv6 address.
4141+- */
4242+-#if defined(__APPLE__) && !defined(USE_ARES)
4343+-#include <TargetConditionals.h>
4444+-#define USE_RESOLVE_ON_IPS 1
4545+-# if defined(TARGET_OS_OSX) && TARGET_OS_OSX
4646+-# define CURL_OSX_CALL_COPYPROXIES 1
4747+-# endif
4848+-#endif
4949+-
5050+ #ifdef USE_LWIPSOCK
5151+ # include <lwip/init.h>
5252+ # include <lwip/sockets.h>
···11-{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config
11+{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
22, libcap, ncurses, jansson
33, withGtk ? false, gtk3 }:
44···1212 rev = "v${version}";
1313 sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6";
1414 };
1515+1616+ patches = [
1717+ # pull patch to fix build failure against ncurses-6.3:
1818+ # https://github.com/traviscross/mtr/pull/411
1919+ (fetchpatch {
2020+ name = "ncurses-6.3.patch";
2121+ url = "https://github.com/traviscross/mtr/commit/aeb493e08eabcb4e6178bda0bb84e9cd01c9f213.patch";
2222+ sha256 = "1qk8lf4sha18g36mr84vbdvll2s8khgbzyyq0as3ifx44lv0qlf2";
2323+ })
2424+ ];
15251626 # we need this before autoreconfHook does its thing
1727 postPatch = ''
+1-1
pkgs/tools/networking/unbound/default.nix
···8282 "--with-libhiredis=${hiredis}"
8383 ];
84848585- PROTOC_C = if withDNSTAP then "${protobufc}/bin/protoc-c" else null;
8585+ PROTOC_C = lib.optionalString withDNSTAP "${protobufc}/bin/protoc-c";
86868787 # Remove references to compile-time dependencies that are included in the configure flags
8888 postConfigure = let