···887888Use `--prefix` to explicitly set dependencies in `PATH`.889890-:::{note}891`--prefix` essentially hard-codes dependencies into the wrapper.892They cannot be overridden without rebuilding the package.893:::
···887888Use `--prefix` to explicitly set dependencies in `PATH`.889890+::: {.note}891`--prefix` essentially hard-codes dependencies into the wrapper.892They cannot be overridden without rebuilding the package.893:::
···1349 the npm install step prunes dev dependencies.1350 </para>1351 </listitem>000000001352 </itemizedlist>1353 </section>1354</section>
···1349 the npm install step prunes dev dependencies.1350 </para>1351 </listitem>1352+ <listitem>1353+ <para>1354+ boot.kernel.sysctl is defined as a freeformType and adds a1355+ custom merge option for <quote>net.core.rmem_max</quote>1356+ (taking the highest value defined to avoid conflicts between 21357+ services trying to set that value)1358+ </para>1359+ </listitem>1360 </itemizedlist>1361 </section>1362</section>
+2
nixos/doc/manual/release-notes/rl-2211.section.md
···403404- The `nodePackages` package set now defaults to the LTS release in the `nodejs` package again, instead of being pinned to `nodejs-14_x`. Several updates to node2nix have been made for compatibility with newer Node.js and npm versions and a new `postRebuild` hook has been added for packages to perform extra build steps before the npm install step prunes dev dependencies.40500406<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
···403404- The `nodePackages` package set now defaults to the LTS release in the `nodejs` package again, instead of being pinned to `nodejs-14_x`. Several updates to node2nix have been made for compatibility with newer Node.js and npm versions and a new `postRebuild` hook has been added for packages to perform extra build steps before the npm install step prunes dev dependencies.405406+- boot.kernel.sysctl is defined as a freeformType and adds a custom merge option for "net.core.rmem_max" (taking the highest value defined to avoid conflicts between 2 services trying to set that value)407+408<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+15-1
nixos/modules/config/sysctl.nix
···21 options = {2223 boot.kernel.sysctl = mkOption {0000000000000024 default = {};25 example = literalExpression ''26 { "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }27 '';28- type = types.attrsOf sysctlOption;29 description = lib.mdDoc ''30 Runtime parameters of the Linux kernel, as set by31 {manpage}`sysctl(8)`. Note that sysctl···48 parameter may be a string, integer, boolean, or null49 (signifying the option will not appear at all).50 '';051 };5253 };
···21 options = {2223 boot.kernel.sysctl = mkOption {24+ type = types.submodule {25+ freeformType = types.attrsOf sysctlOption;26+ options."net.core.rmem_max" = mkOption {27+ type = types.nullOr types.ints.unsigned // {28+ merge = loc: defs:29+ foldl30+ (a: b: if b.value == null then null else lib.max a b.value)31+ 032+ (filterOverrides defs);33+ };34+ default = null;35+ description = lib.mdDoc "The maximum socket receive buffer size. In case of conflicting values, the highest will be used.";36+ };37+ };38 default = {};39 example = literalExpression ''40 { "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }41 '';042 description = lib.mdDoc ''43 Runtime parameters of the Linux kernel, as set by44 {manpage}`sysctl(8)`. Note that sysctl···35 parameter may be a string, integer, boolean, or null36 (signifying the option will not appear at all).37 '';38+39 };4041 };
+1-1
nixos/modules/services/torrent/transmission.nix
···431 # https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-udp.c?rev=11956.432 # at least up to the values hardcoded here:433 (mkIf cfg.settings.utp-enabled {434- "net.core.rmem_max" = mkDefault "4194304"; # 4MB435 "net.core.wmem_max" = mkDefault "1048576"; # 1MB436 })437 (mkIf cfg.performanceNetParameters {
···431 # https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-udp.c?rev=11956.432 # at least up to the values hardcoded here:433 (mkIf cfg.settings.utp-enabled {434+ "net.core.rmem_max" = mkDefault 4194304; # 4MB435 "net.core.wmem_max" = mkDefault "1048576"; # 1MB436 })437 (mkIf cfg.performanceNetParameters {
···1+{ lib2+, buildPythonPackage3+, fetchPypi4+, pythonOlder5+}:6+7+buildPythonPackage rec {8+ pname = "stubserver";9+ version = "1.1";10+ format = "setuptools";11+12+ disabled = pythonOlder "3.7";13+14+ src = fetchPypi {15+ inherit pname version;16+ hash = "sha256-j9R7wpvb07FuN5EhIpE7xTSf26AniQZN4iLpxMjNYKA=";17+ };18+19+ # Tests are not shipped and the source not tagged20+ doCheck = false;21+22+ pythonImportsCheck = [23+ "stubserver"24+ ];25+26+ meta = with lib; {27+ description = "Web and FTP server for use in unit and7or acceptance tests";28+ homepage = "https://github.com/tarttelin/Python-Stub-Server";29+ license = licenses.bsd2;30+ maintainers = with maintainers; [ fab ];31+ };32+}
···2, pkg-config, qemu, syslinux, util-linux }:34let5- version = "0.7.3";6 # list of all theoretically available targets7 targets = [8 "genode"···2122 src = fetchurl {23 url = "https://github.com/Solo5/solo5/releases/download/v${version}/solo5-v${version}.tar.gz";24- sha256 = "sha256-8LftT22XzmmWxgYez+BAHDX4HOyl5DrwrpuO2+bqqcY=";25 };26-27- patches = [ ./fix_paths.patch ./test_sleep.patch ];2829 hardeningEnable = [ "pie" ];30
···2, pkg-config, qemu, syslinux, util-linux }:34let5+ version = "0.7.4";6 # list of all theoretically available targets7 targets = [8 "genode"···2122 src = fetchurl {23 url = "https://github.com/Solo5/solo5/releases/download/v${version}/solo5-v${version}.tar.gz";24+ sha256 = "sha256-ovDdaS2cDufe5gTgi+t2C8waWiRC40/2flLLJlz+NvU=";25 };002627 hardeningEnable = [ "pie" ];28
-29
pkgs/os-specific/solo5/fix_paths.patch
···1-diff --git a/toolchain/cc.in b/toolchain/cc.in2-index 337562a..0ec9315 1006443---- a/toolchain/cc.in4-+++ b/toolchain/cc.in5-@@ -30,9 +30,9 @@6- # symbols.7-8- prog="$(basename $0)"9--I="$(dirname $0)/../include"10-+I="$(realpath $0 | xargs dirname)/../include"11- [ ! -d "${I}" ] && echo "$prog: Could not determine include path" 1>&2 && exit 112--L="$(dirname $0)/../lib/@@CONFIG_TARGET_TRIPLE@@"13-+L="$(realpath $0 | xargs dirname)/../lib/@@CONFIG_TARGET_TRIPLE@@"14- [ ! -d "${L}" ] && echo "$prog: Could not determine library path" 1>&2 && exit 115- # we can't really tell if 'cc' is called with no input, but work around the16- # most obvious cases and stop them from "succeeding" and producing an "a.out"17-diff --git a/toolchain/ld.in b/toolchain/ld.in18-index 01dffa8..13dca2c 10064419---- a/toolchain/ld.in20-+++ b/toolchain/ld.in21-@@ -28,7 +28,7 @@22- # linking a unikernel. No default for ABI is provided, as it is expected that a23- # caller directly using 'ld' knows what they are doing.24-25--L="$(dirname $0)/../lib/@@CONFIG_TARGET_TRIPLE@@"26-+L="$(realpath $0 | xargs dirname)/../lib/@@CONFIG_TARGET_TRIPLE@@"27- [ ! -d "${L}" ] && echo "$0: Could not determine library path" 1>&2 && exit 128- # ld accepts -z solo5-abi=ABI, but does not provide a default ABI29- # this is intentional
···00000000000000000000000000000
-22
pkgs/os-specific/solo5/test_sleep.patch
···1-diff --git a/tests/test_time/test_time.c b/tests/test_time/test_time.c2-index 931500b..cde64ad 1006443---- a/tests/test_time/test_time.c4-+++ b/tests/test_time/test_time.c5-@@ -110,7 +110,8 @@ int solo5_app_main(const struct solo5_start_info *si __attribute__((unused)))6- /*7- * Verify that we did not sleep less than requested (see above).8- */9-- if (delta < NSEC_PER_SEC) {10-+ const solo5_time_t slack = 100000000ULL;11-+ if (delta < NSEC_PER_SEC - slack) {12- printf("[%d] ERROR: slept too little (expected at least %llu ns)\n",13- iters, (unsigned long long)NSEC_PER_SEC);14- failed = true;15-@@ -120,7 +121,6 @@ int solo5_app_main(const struct solo5_start_info *si __attribute__((unused)))16- * Verify that we did not sleep more than requested, within reason17- * (scheduling delays, general inaccuracy of the current timing code).18- */19-- const solo5_time_t slack = 100000000ULL;20- if (delta > (NSEC_PER_SEC + slack)) {21- printf("[%d] ERROR: slept too much (expected at most %llu ns)\n",22- iters, (unsigned long long)slack);
···20 hash = "sha256-j5HjGcIqq93Ca9OBqEgSotoSXyw+q6Fqxa3hKk1ctwQ=";21 };2223+ postPatch = ''24+ # Avoid blanket -Werror as it triggers on any minor compiler25+ # warnings like deprecated functions or invalid indentat8ion.26+ # Leave fixing these problems to upstream.27+ substituteInPlace CMakeLists.txt --replace ';-Werror;' ';'28+ '';29+30 nativeBuildInputs = [31 cmake32 ninja···30 wayland31 wayland-protocols32 qtwayland0000033 ];3435 meta = with lib; {
···1563 wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name1564 wmii_hg = wmii;1565 ws = throw "ws has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-030001566 wxGTK31-gtk2 = throw "'wxGTK31-gtk2' has been removed from nixpkgs as it depends on deprecated GTK2"; # Added 2022-10-271567 wxGTK31-gtk3 = throw "'wxGTK31-gtk3' has been renamed to/replaced by 'wxGTK31'"; # Added 2022-10-271568 wxmupen64plus = throw "wxmupen64plus was removed because the upstream disappeared"; # Added 2022-01-31
···1563 wormhole-rs = magic-wormhole-rs; # Added 2022-05-30. preserve, reason: Arch package name, main binary name1564 wmii_hg = wmii;1565 ws = throw "ws has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-031566+ wxGTK = throw "wxGTK28 has been removed from nixpkgs as it has reached end of life"; # Added 2022-11-041567+ wxGTK28 = throw "wxGTK28 has been removed from nixpkgs as it has reached end of life"; # Added 2022-11-041568+ wxGTK29 = throw "wxGTK29 has been removed from nixpkgs as it has reached end of life"; # Added 2022-11-041569 wxGTK31-gtk2 = throw "'wxGTK31-gtk2' has been removed from nixpkgs as it depends on deprecated GTK2"; # Added 2022-10-271570 wxGTK31-gtk3 = throw "'wxGTK31-gtk3' has been renamed to/replaced by 'wxGTK31'"; # Added 2022-10-271571 wxmupen64plus = throw "wxmupen64plus was removed because the upstream disappeared"; # Added 2022-01-31