From ea9bc3357b94092f1d340badfdddd3a0ed49d987 Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Wed, 18 Jan 2023 15:52:54 +0100 Subject: [PATCH 01/38] perlPackages.MojoliciousPluginI18N: init at 1.6 --- pkgs/top-level/perl-packages.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 58940bb1e5ae..f8dc9c13ffe3 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -15815,6 +15815,21 @@ let }; }; + MojoliciousPluginI18N = buildPerlModule { + pname = "Mojolicious-Plugin-I18N"; + version = "1.6"; + src = fetchurl { + url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz"; + hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0="; + }; + propagatedBuildInputs = [ Mojolicious ]; + meta = { + homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N"; + description = "Internationalization Plugin for Mojolicious"; + license = with lib.licenses; [ artistic1 gpl1Plus ]; + }; + }; + MojoliciousPluginMail = buildPerlModule { pname = "Mojolicious-Plugin-Mail"; version = "1.5"; From d97724aca4d2310bdf584b560456b8f9f7376fff Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Wed, 18 Jan 2023 15:53:24 +0100 Subject: [PATCH 02/38] perlPackages.Yancy: init at 1.088 --- pkgs/top-level/perl-packages.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index f8dc9c13ffe3..0038979a613e 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -27758,6 +27758,22 @@ let }; }; + Yancy = buildPerlPackage { + pname = "Yancy"; + version = "1.088"; + src = fetchurl { + url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz"; + hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo="; + }; + buildInputs = [ FileShareDirInstall ]; + propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ]; + meta = { + homepage = "http://preaction.me/yancy/"; + description = "The Best Web Framework Deserves the Best CMS"; + license = with lib.licenses; [ artistic1 gpl1Plus ]; + }; + }; + WebMachine = buildPerlPackage { pname = "Web-Machine"; version = "0.17"; From 4a33cdf644e5deff70008927ff939694e0bb11dc Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Fri, 28 Apr 2023 13:21:17 +0200 Subject: [PATCH 03/38] perlPackages.CPANAudit: init at 20230309.004 --- pkgs/top-level/perl-packages.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 64ec8c6f4671..3822cda125df 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -4486,6 +4486,22 @@ with self; { }; }; + CPANAudit = buildPerlPackage { + pname = "CPAN-Audit"; + version = "20230309.004"; + src = fetchurl { + url = "mirror://cpan/authors/id/B/BD/BDFOY/CPAN-Audit-20230309.004.tar.gz"; + hash = "sha256-RzrvktoYTMY1SqiG8QvwRnjvovHpmxZ/o+nvXOGmS14="; + }; + buildInputs = [ CaptureTiny YAMLTiny ]; + propagatedBuildInputs = [ CPANDistnameInfo IOInteractive JSON ModuleCPANfile ModuleExtractVERSION PerlIOgzip Mojolicious ]; + meta = { + homepage = "https://github.com/briandfoy/cpan-audit"; + description = "Audit CPAN distributions for known vulnerabilities"; + license = with lib.licenses; [ artistic1 gpl1Plus ]; + }; + }; + CPANMini = buildPerlPackage { pname = "CPAN-Mini"; version = "1.111016"; From 183651dabaaeb2b5e387f184322a0b4cf4164cee Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Fri, 28 Apr 2023 13:22:02 +0200 Subject: [PATCH 04/38] perlPackages.ModuleExtractVERSION: init at 1.116 --- pkgs/top-level/perl-packages.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 3822cda125df..ac6d26d9af26 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -15477,6 +15477,20 @@ with self; { }; }; + ModuleExtractVERSION = buildPerlPackage { + pname = "Module-Extract-VERSION"; + version = "1.116"; + src = fetchurl { + url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz"; + hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg="; + }; + meta = { + homepage = "https://github.com/briandfoy/module-extract-version"; + description = "Extract a module version safely"; + license = lib.licenses.artistic2; + }; + }; + ModuleFind = buildPerlPackage { pname = "Module-Find"; version = "0.15"; From 1ed6468c276a295f5a336f126ef695ab25f58acb Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 5 May 2023 21:00:50 +0200 Subject: [PATCH 05/38] nixos.tinyproxy: init --- nixos/modules/module-list.nix | 1 + .../modules/services/networking/tinyproxy.nix | 103 ++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 nixos/modules/services/networking/tinyproxy.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4e0a44c40923..f3bd8c9d4385 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1034,6 +1034,7 @@ ./services/networking/thelounge.nix ./services/networking/tinc.nix ./services/networking/tinydns.nix + ./services/networking/tinyproxy.nix ./services/networking/tmate-ssh-server.nix ./services/networking/tox-bootstrapd.nix ./services/networking/tox-node.nix diff --git a/nixos/modules/services/networking/tinyproxy.nix b/nixos/modules/services/networking/tinyproxy.nix new file mode 100644 index 000000000000..9bcd8bfd814b --- /dev/null +++ b/nixos/modules/services/networking/tinyproxy.nix @@ -0,0 +1,103 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.tinyproxy; + mkValueStringTinyproxy = with lib; v: + if true == v then "yes" + else if false == v then "no" + else generators.mkValueStringDefault {} v; + mkKeyValueTinyproxy = { + mkValueString ? mkValueStringDefault {} + }: sep: k: v: + if null == v then "" + else "${lib.strings.escape [sep] k}${sep}${mkValueString v}"; + + settingsFormat = (pkgs.formats.keyValue { + mkKeyValue = mkKeyValueTinyproxy { + mkValueString = mkValueStringTinyproxy; + } " "; + listsAsDuplicateKeys= true; + }); + configFile = settingsFormat.generate "tinyproxy.conf" cfg.settings; + +in +{ + + options = { + services.tinyproxy = { + enable = mkEnableOption (lib.mdDoc "Tinyproxy daemon"); + package = mkPackageOptionMD pkgs "tinyproxy" {}; + settings = mkOption { + description = lib.mdDoc "Configuration for [tinyproxy](https://tinyproxy.github.io/)."; + default = { }; + example = literalExpression ''{ + Port 8888; + Listen 127.0.0.1; + Timeout 600; + Allow 127.0.0.1; + Anonymous = ['"Host"' '"Authorization"']; + ReversePath = '"/example/" "http://www.example.com/"'; + }''; + type = types.submodule ({name, ...}: { + freeformType = settingsFormat.type; + options = { + Listen = mkOption { + type = types.str; + default = "127.0.0.1"; + description = lib.mdDoc '' + Specify which address to listen to. + ''; + }; + Port = mkOption { + type = types.int; + default = 8888; + description = lib.mdDoc '' + Specify which port to listen to. + ''; + }; + Anonymous = mkOption { + type = types.listOf types.str; + default = []; + description = lib.mdDoc '' + If an `Anonymous` keyword is present, then anonymous proxying is enabled. The headers listed with `Anonymous` are allowed through, while all others are denied. If no Anonymous keyword is present, then all headers are allowed through. You must include quotes around the headers. + ''; + }; + Filter = mkOption { + type = types.nullOr types.path; + default = null; + description = lib.mdDoc '' + Tinyproxy supports filtering of web sites based on URLs or domains. This option specifies the location of the file containing the filter rules, one rule per line. + ''; + }; + }; + }); + }; + }; + }; + config = mkIf cfg.enable { + systemd.services.tinyproxy = { + description = "TinyProxy daemon"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = "tinyproxy"; + Group = "tinyproxy"; + Type = "simple"; + ExecStart = "${getExe pkgs.tinyproxy} -d -c ${configFile}"; + ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID"; + KillSignal = "SIGINT"; + TimeoutStopSec = "30s"; + Restart = "on-failure"; + }; + }; + + users.users.tinyproxy = { + group = "tinyproxy"; + isSystemUser = true; + }; + users.groups.tinyproxy = {}; + }; + meta.maintainers = with maintainers; [ tcheronneau ]; +} From ae31454d41ae6d706f80a9deb3cf5c4d5c89c334 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 5 May 2023 21:02:11 +0200 Subject: [PATCH 06/38] nixosTests.tinyproxy: init --- nixos/tests/all-tests.nix | 1 + nixos/tests/tinyproxy.nix | 20 ++++++++++++++++++++ pkgs/tools/networking/tinyproxy/default.nix | 2 ++ 3 files changed, 23 insertions(+) create mode 100644 nixos/tests/tinyproxy.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 5ceb39d0be51..17fa3ac1373c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -734,6 +734,7 @@ in { timezone = handleTest ./timezone.nix {}; tinc = handleTest ./tinc {}; tinydns = handleTest ./tinydns.nix {}; + tinyproxy = handleTest ./tinyproxy.nix {}; tinywl = handleTest ./tinywl.nix {}; tmate-ssh-server = handleTest ./tmate-ssh-server.nix { }; tomcat = handleTest ./tomcat.nix {}; diff --git a/nixos/tests/tinyproxy.nix b/nixos/tests/tinyproxy.nix new file mode 100644 index 000000000000..b8448d4c23b6 --- /dev/null +++ b/nixos/tests/tinyproxy.nix @@ -0,0 +1,20 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "tinyproxy"; + + nodes.machine = { config, pkgs, ... }: { + services.tinyproxy = { + enable = true; + settings = { + Listen = "127.0.0.1"; + Port = 8080; + }; + }; + }; + + testScript = '' + machine.wait_for_unit("tinyproxy.service") + machine.wait_for_open_port(8080) + + machine.succeed('curl -s http://localhost:8080 |grep -i tinyproxy') + ''; +}) diff --git a/pkgs/tools/networking/tinyproxy/default.nix b/pkgs/tools/networking/tinyproxy/default.nix index 12c8a0d0447e..8778b90b2b02 100644 --- a/pkgs/tools/networking/tinyproxy/default.nix +++ b/pkgs/tools/networking/tinyproxy/default.nix @@ -4,6 +4,7 @@ , fetchpatch , autoreconfHook , perl +, nixosTests , withDebug ? false }: @@ -30,6 +31,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook perl ]; configureFlags = lib.optionals withDebug [ "--enable-debug" ]; # Enable debugging support code and methods. + passthru.tests = { inherit (nixosTests) tinyproxy; }; meta = with lib; { homepage = "https://tinyproxy.github.io/"; From f89d78b6744008c877b2e855efb5826009f99f1b Mon Sep 17 00:00:00 2001 From: Thomas Churchman Date: Thu, 6 Jul 2023 23:09:10 +0200 Subject: [PATCH 07/38] pdfstudioviewer: mark broken --- pkgs/applications/misc/pdfstudio/common.nix | 2 ++ pkgs/applications/misc/pdfstudio/default.nix | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/pkgs/applications/misc/pdfstudio/common.nix b/pkgs/applications/misc/pdfstudio/common.nix index f6ee41786950..e7d061123039 100644 --- a/pkgs/applications/misc/pdfstudio/common.nix +++ b/pkgs/applications/misc/pdfstudio/common.nix @@ -5,6 +5,7 @@ , version , desktopName , longDescription +, broken ? false , buildFHSEnv , extraBuildInputs ? [ ] , jdk @@ -85,6 +86,7 @@ buildFHSEnv { ''; meta = with lib; { + inherit broken; homepage = "https://www.qoppa.com/${pname}/"; description = "An easy to use, full-featured PDF editing software"; longDescription = longDescription; diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix index b6787ce0adf1..c6e575a97a69 100644 --- a/pkgs/applications/misc/pdfstudio/default.nix +++ b/pkgs/applications/misc/pdfstudio/default.nix @@ -40,6 +40,10 @@ in sha256 = "sha256-QXNsH1T+ItV3s9r8CnwgRUo1mhVbe8LkEun9gUmlVQg="; }; jdk = jdk17; + + # Bad hash, got sha256-afRhx9VCVRFUJoUnqs1bzF0yXpz3yEgLiFjMRB9xvsk= + # Likely unstable. + broken = true; }; pdfstudio2021 = callPackage ./common.nix rec { From 746bbc964e39218dd3b028989b5019c795327039 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 2 Aug 2023 05:42:08 +0000 Subject: [PATCH 08/38] python310Packages.robotframework: 6.0.2 -> 6.1.1 --- pkgs/development/python-modules/robotframework/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix index d5d72ac95790..122e2ff326ff 100644 --- a/pkgs/development/python-modules/robotframework/default.nix +++ b/pkgs/development/python-modules/robotframework/default.nix @@ -2,13 +2,13 @@ buildPythonPackage rec { pname = "robotframework"; - version = "6.0.2"; + version = "6.1.1"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-c7pPcDgqyqWQtiMbLQbQd0nAgx4TIFUFHrlBVDNdr8M="; + hash = "sha256-vtP0TVkCMrm0CRXlpZvVTBf7yd8+3p+nRArMWyQUn4k="; }; nativeCheckInputs = [ jsonschema ]; From 6943a9a6febe3eb9fb8310082ff420896f8fae1e Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Tue, 5 Sep 2023 19:49:10 -0400 Subject: [PATCH 09/38] timidity: fix build with clang 16 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Work around failing configure tests. Specify the expected value explictly except when that doesn’t work. Otherwise, patch the configure script to perform the test correctly with clang 16; * Add libobjc on Darwin; and * Use memstreamHook on x86_64-darwin; --- .../misc/timidity/configure-compat.patch | 33 +++++++++++++++++++ pkgs/tools/misc/timidity/default.nix | 32 +++++++++++++++--- pkgs/top-level/all-packages.nix | 1 + 3 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 pkgs/tools/misc/timidity/configure-compat.patch diff --git a/pkgs/tools/misc/timidity/configure-compat.patch b/pkgs/tools/misc/timidity/configure-compat.patch new file mode 100644 index 000000000000..4368f389e0f8 --- /dev/null +++ b/pkgs/tools/misc/timidity/configure-compat.patch @@ -0,0 +1,33 @@ +--- a/configure 2018-08-28 19:33:39.000000000 -0400 ++++ b/configure 2023-09-05 19:44:27.311279263 -0400 +@@ -6874,6 +6874,7 @@ + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include ++#include + #if ((' ' & 0x0FF) == 0x020) + # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +@@ -7731,6 +7732,7 @@ + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include ++#include + #if ((' ' & 0x0FF) == 0x020) + # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +@@ -10311,8 +10313,13 @@ + if test "$cross_compiling" = yes; then + ac_cv_func_fork_works=cross + else +- cat >conftest.$ac_ext <<_ACEOF ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++ cat confdefs.h >>conftest.$ac_ext ++ cat >>conftest.$ac_ext <<_ACEOF + /* By Ruediger Kuhlmann. */ ++ #include + #include + #if HAVE_UNISTD_H + # include diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix index d9750b438256..e88ba3fea352 100644 --- a/pkgs/tools/misc/timidity/default.nix +++ b/pkgs/tools/misc/timidity/default.nix @@ -1,6 +1,14 @@ -{ lib, stdenv, fetchurl -, pkg-config, buildPackages -, CoreAudio, alsa-lib, libjack2, ncurses +{ lib +, stdenv +, fetchurl +, pkg-config +, memstreamHook +, CoreAudio +, libobjc +, libjack2 +, ncurses +, alsa-lib +, buildPackages }: stdenv.mkDerivation rec { @@ -12,9 +20,15 @@ stdenv.mkDerivation rec { sha256 = "1xf8n6dqzvi6nr2asags12ijbj1lwk1hgl3s27vm2szib8ww07qn"; }; - patches = [ ./timidity-iA-Oj.patch ]; + patches = [ + ./timidity-iA-Oj.patch + # Fixes misdetection of features by clang 16. The configure script itself is patched because + # it is old and does not work nicely with autoreconfHook. + ./configure-compat.patch + ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config ] + ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ memstreamHook ]; buildInputs = [ libjack2 ncurses @@ -22,6 +36,7 @@ stdenv.mkDerivation rec { alsa-lib ] ++ lib.optionals stdenv.isDarwin [ CoreAudio + libobjc ]; configureFlags = [ @@ -36,6 +51,13 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.isDarwin [ "--enable-audio=darwin,jack" "lib_cv_va_val_copy=no" + "timidity_cv_ccoption_rdynamic=yes" + # These configure tests fail because of incompatible function pointer conversions. + "ac_cv_func_vprintf=yes" + "ac_cv_func_popen=yes" + "ac_cv_func_vsnprintf=yes" + "ac_cv_func_snprintf=yes" + "ac_cv_func_open_memstream=yes" ]; makeFlags = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1ea2269aa8a6..f09519e418f5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35993,6 +35993,7 @@ with pkgs; timidity = callPackage ../tools/misc/timidity { inherit (darwin.apple_sdk.frameworks) CoreAudio; + inherit (darwin) libobjc; }; tint2 = callPackage ../applications/misc/tint2 { }; From 18d983908399e4a5a0066c2b129963af9df351eb Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Sat, 27 May 2023 12:29:52 +0200 Subject: [PATCH 10/38] rnginline: 0.0.2 -> 1.0.0 Changelog: https://github.com/h4l/rnginline/blob/1.0.0/CHANGELOG.md --- .../python-modules/rnginline/default.nix | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/pkgs/development/python-modules/rnginline/default.nix b/pkgs/development/python-modules/rnginline/default.nix index 10beaf00bd40..d006fc950d80 100644 --- a/pkgs/development/python-modules/rnginline/default.nix +++ b/pkgs/development/python-modules/rnginline/default.nix @@ -1,37 +1,42 @@ { lib , fetchPypi , buildPythonPackage +, poetry-core , lxml -, docopt -, six +, docopt-ng +, typing-extensions +, importlib-metadata +, importlib-resources , pytestCheckHook , mock -, fetchpatch }: buildPythonPackage rec { pname = "rnginline"; - version = "0.0.2"; + version = "1.0.0"; src = fetchPypi { inherit pname version; - hash = "sha256-j4W4zwHA4yA6iAFVa/LDKp00eeCX3PbmWkjd2LSUGfk="; + hash = "sha256-JWqzs+OqOynIAWYVgGrZiuiCqObAgGe6rBt0DcP3U6E="; }; - patches = [ - # Fix failing tests. Should be included in releases after 0.0.2 - # https://github.com/h4l/rnginline/issues/3 - (fetchpatch { - url = "https://github.com/h4l/rnginline/commit/b1d1c8cda2a17d46627309950f2442021749c07e.patch"; - hash = "sha256-XbisEwun2wPOp7eqW2YDVdayJ4sjAMG/ezFwgoCKe9o="; - name = "fix_tests_failing_collect.patch"; - }) + format = "pyproject"; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace 'importlib-metadata = "^6.6.0"' 'importlib-metadata = "^6.0.0"' + ''; + + nativeBuildInputs = [ + poetry-core ]; propagatedBuildInputs = [ - docopt + docopt-ng lxml - six + typing-extensions + importlib-metadata + importlib-resources ]; nativeCheckInputs = [ From bf591aaecf0f24bbc852ec76f1cf66bce79a7e5b Mon Sep 17 00:00:00 2001 From: gbtb Date: Thu, 5 Oct 2023 03:41:51 +1000 Subject: [PATCH 11/38] rocketchat-desktop: 3.9.8 -> 3.9.9 --- .../instant-messengers/rocketchat-desktop/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix index c4fdf9352046..d3c6a33d248b 100644 --- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix @@ -4,11 +4,11 @@ let in stdenv.mkDerivation rec { pname = "rocketchat-desktop"; - version = "3.9.8"; + version = "3.9.9"; src = fetchurl { url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat-${version}-linux-amd64.deb"; - hash = "sha256-sx4WRAeitbBrz6jFvD0WF/EzR7cx4tOPoczbJ+tkw1s="; + hash = "sha256-50mVmE+q2VYJXIv2iD6ppS83We0aJRT9vje+zpJcdq0="; }; nativeBuildInputs = [ From 2f4249e4665e6f08277afd371aaf6da8973e8602 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 5 Oct 2023 15:13:36 +0100 Subject: [PATCH 12/38] sway: add patch to drop ambient capabilities Co-authored-by: Rouven Czerwinski --- .../window-managers/sway/default.nix | 2 + .../sway/drop_ambient_capabilities.patch | 41 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 pkgs/applications/window-managers/sway/drop_ambient_capabilities.patch diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix index 6e11d842fe92..a830a6a5752d 100644 --- a/pkgs/applications/window-managers/sway/default.nix +++ b/pkgs/applications/window-managers/sway/default.nix @@ -44,6 +44,8 @@ stdenv.mkDerivation (finalAttrs: { # Use /run/current-system/sw/share and /etc instead of /nix/store # references: ./sway-config-nixos-paths.patch + # Drop ambient capabilities after getting SCHED_RR + ./drop_ambient_capabilities.patch ]; strictDeps = true; diff --git a/pkgs/applications/window-managers/sway/drop_ambient_capabilities.patch b/pkgs/applications/window-managers/sway/drop_ambient_capabilities.patch new file mode 100644 index 000000000000..17010ede25a7 --- /dev/null +++ b/pkgs/applications/window-managers/sway/drop_ambient_capabilities.patch @@ -0,0 +1,41 @@ +From e7d9098e81289ae99d07ec3eac1fec1d303b8fe4 Mon Sep 17 00:00:00 2001 +From: Thiago Kenji Okada +Date: Thu, 5 Oct 2023 15:23:35 +0100 +Subject: [PATCH] drop ambient capabilities + +Within NixOS the only possibility to gain cap_sys_nice is using the +security.wrapper infrastructure. However to pass the capabilities to the +wrapped program, they are raised to the ambient set. To fix this we make +sure to drop the ambient capabilities during sway startup and realtime +setup. Otherwise all programs started by sway also gain cap_sys_nice, +which is not something we want. + +Co-authored-by: Rouven Czerwinski +--- + sway/realtime.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sway/realtime.c b/sway/realtime.c +index 11154af0..06f872a8 100644 +--- a/sway/realtime.c ++++ b/sway/realtime.c +@@ -3,6 +3,7 @@ + #include + #include + #include "sway/server.h" ++#include "sys/prctl.h" + #include "log.h" + + static void child_fork_callback(void) { +@@ -10,6 +11,8 @@ static void child_fork_callback(void) { + + param.sched_priority = 0; + ++ prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0); ++ + int ret = pthread_setschedparam(pthread_self(), SCHED_OTHER, ¶m); + if (ret != 0) { + sway_log(SWAY_ERROR, "Failed to reset scheduler policy on fork"); +-- +2.42.0 + From 63fce4ce48e3706db40010ce3b0a432c70caa1ab Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Wed, 4 Oct 2023 22:09:54 +0100 Subject: [PATCH 13/38] nixos/sway: add enableRealtime option This option wraps the `sway` binary to allow it to request realtime scheduling (SCHED_RR). This allow for possible lower latency, specially when the system is under high load. Available since Sway 1.8. See: - https://github.com/swaywm/sway/pull/6994 - https://github.com/swaywm/sway/releases/tag/1.8 --- nixos/modules/programs/wayland/sway.nix | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nixos/modules/programs/wayland/sway.nix b/nixos/modules/programs/wayland/sway.nix index 698d9c2b46c4..de739faabee9 100644 --- a/nixos/modules/programs/wayland/sway.nix +++ b/nixos/modules/programs/wayland/sway.nix @@ -42,6 +42,11 @@ in { and "man 5 sway" for more information''); + enableRealtime = mkEnableOption (lib.mdDoc '' + add CAP_SYS_NICE capability on `sway` binary for realtime scheduling + privileges. This may improve latency and reduce stuttering, specially in + high load scenarios'') // { default = true; }; + package = mkOption { type = with types; nullOr package; default = defaultSwayPackage; @@ -149,6 +154,14 @@ in { "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config"; }; }; + security.wrappers = mkIf (cfg.enableRealtime && cfg.package != null) { + sway = { + owner = "root"; + group = "root"; + source = "${cfg.package}/bin/sway"; + capabilities = "cap_sys_nice+ep"; + }; + }; # To make a Sway session available if a display manager like SDDM is enabled: services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; } (import ./wayland-session.nix { inherit lib pkgs; }) From 4b36cd01b3736081d4935e50584d5aa33db36604 Mon Sep 17 00:00:00 2001 From: whonore Date: Fri, 6 Oct 2023 10:55:12 -0400 Subject: [PATCH 14/38] dafny: 4.2.0 -> 4.3.0 --- .../science/logic/dafny/default.nix | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/science/logic/dafny/default.nix b/pkgs/applications/science/logic/dafny/default.nix index 2b30d3aeeb45..7da1958af386 100644 --- a/pkgs/applications/science/logic/dafny/default.nix +++ b/pkgs/applications/science/logic/dafny/default.nix @@ -8,28 +8,36 @@ buildDotnetModule rec { pname = "Dafny"; - version = "4.2.0"; + version = "4.3.0"; src = fetchFromGitHub { owner = "dafny-lang"; repo = "dafny"; rev = "v${version}"; - sha256 = "sha256-RSGaOgGf3m94t3SKnvSPqz0VHhWr6NmIMtGsmOynMaM="; + hash = "sha256-bnKaaqh1/921SRwnwqgYb31SJ8vguEBtzywPTz79S6I="; }; - postPatch = '' - cp ${writeScript "fake-gradlew-for-dafny" '' - mkdir -p build/libs/ - javac $(find -name "*.java" | grep "^./src/main") -d classes - jar cf build/libs/DafnyRuntime-${version}.jar -C classes dafny - ''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew + postPatch = + # This version number seems to be hardcoded and didn't get updated with the + # version bump from 4.2.0 to 4.3.0. + let dafnyRuntimeJarVersion = "4.2.0"; + in '' + cp ${ + writeScript "fake-gradlew-for-dafny" '' + mkdir -p build/libs/ + javac $(find -name "*.java" | grep "^./src/main") -d classes + jar cf build/libs/DafnyRuntime-${dafnyRuntimeJarVersion}.jar -C classes dafny + ''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew - # Needed to fix - # "error NETSDK1129: The 'Publish' target is not supported without specifying a target framework. The current project targets multiple frameworks, you must specify the framework for the published application." - substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \ - --replace TargetFrameworks TargetFramework \ - --replace "netstandard2.0;net452" net6.0 - ''; + # Needed to fix + # "error NETSDK1129: The 'Publish' target is not supported without + # specifying a target framework. The current project targets multiple + # frameworks, you must specify the framework for the published + # application." + substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \ + --replace TargetFrameworks TargetFramework \ + --replace "netstandard2.0;net452" net6.0 + ''; buildInputs = [ jdk11 ]; nugetDeps = ./deps.nix; From 4bf1ec4409cf36d4a44c24302f2dff95205cbc69 Mon Sep 17 00:00:00 2001 From: Yaya Date: Sat, 7 Oct 2023 21:50:47 +0200 Subject: [PATCH 15/38] snipe-it: 6.2.1 -> 6.2.2 https://github.com/snipe/snipe-it/releases/tag/v6.2.2 --- pkgs/servers/web-apps/snipe-it/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/snipe-it/default.nix b/pkgs/servers/web-apps/snipe-it/default.nix index 7d511db2654d..a4fa8aee8b59 100644 --- a/pkgs/servers/web-apps/snipe-it/default.nix +++ b/pkgs/servers/web-apps/snipe-it/default.nix @@ -36,13 +36,13 @@ let in package.override rec { pname = "snipe-it"; - version = "6.2.1"; + version = "6.2.2"; src = fetchFromGitHub { owner = "snipe"; repo = pname; rev = "v${version}"; - sha256 = "0kx5j9a2fbj9zy0i9r01z3lsbqlf488kn5b42fjs47nfzk1yznvx"; + sha256 = "11i9ijkl7am5k48y7r5k6nki2827cd7mw3dr1xj8dvb8diwaskqi"; }; passthru.tests = nixosTests.snipe-it; From f9f7fd208a95b6610b6778c4e1b77aaa1cc8c8e4 Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Mon, 9 Oct 2023 03:06:32 +0200 Subject: [PATCH 16/38] varnish72: drop, varnish73: drop All of them are EOL according to https://endoflife.date/varnish --- nixos/tests/all-tests.nix | 2 -- pkgs/servers/varnish/default.nix | 12 +----------- pkgs/servers/varnish/packages.nix | 10 +--------- pkgs/top-level/aliases.nix | 4 ++++ pkgs/top-level/all-packages.nix | 6 +++--- 5 files changed, 9 insertions(+), 25 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index da788cc159c8..9cf6cfccc0e9 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -855,8 +855,6 @@ in { uwsgi = handleTest ./uwsgi.nix {}; v2ray = handleTest ./v2ray.nix {}; varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; }; - varnish72 = handleTest ./varnish.nix { package = pkgs.varnish72; }; - varnish73 = handleTest ./varnish.nix { package = pkgs.varnish73; }; vault = handleTest ./vault.nix {}; vault-agent = handleTest ./vault-agent.nix {}; vault-dev = handleTest ./vault-dev.nix {}; diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix index 82a1acf44ca3..09b26ed319e4 100644 --- a/pkgs/servers/varnish/default.nix +++ b/pkgs/servers/varnish/default.nix @@ -51,19 +51,9 @@ let }; in { - # EOL TBA + # EOL (LTS) TBA varnish60 = common { version = "6.0.11"; hash = "sha256-UVkA2+tH/9MOs5BlyuAzFnmD7Pm9A6lDWic2B+HRKNs="; }; - # EOL 2023-09-15 - varnish72 = common { - version = "7.2.1"; - hash = "sha256-TZN9FyCo7BnFM/ly2TA6HJiJt7/KdDeJOuXCfPIEqUA="; - }; - # EOL 2024-03-15 - varnish73 = common { - version = "7.3.0"; - hash = "sha256-4tu7DsJwqQZHw4aGbm4iaZOu1G5I3nUacruBlzfxSuc="; - }; } diff --git a/pkgs/servers/varnish/packages.nix b/pkgs/servers/varnish/packages.nix index 9daa0f8ac59d..99f0450656bb 100644 --- a/pkgs/servers/varnish/packages.nix +++ b/pkgs/servers/varnish/packages.nix @@ -1,4 +1,4 @@ -{ callPackages, callPackage, varnish60, varnish72, varnish73, fetchFromGitHub }: { +{ callPackages, callPackage, varnish60, fetchFromGitHub }: { varnish60Packages = rec { varnish = varnish60; modules = (callPackages ./modules.nix { inherit varnish; }).modules15; @@ -13,12 +13,4 @@ sha256 = "1n94slrm6vn3hpymfkla03gw9603jajclg84bjhwb8kxsk3rxpmk"; }; }; - varnish72Packages = rec { - varnish = varnish72; - modules = (callPackages ./modules.nix { inherit varnish; }).modules20; - }; - varnish73Packages = rec { - varnish = varnish73; - modules = (callPackages ./modules.nix { inherit varnish; }).modules22; - }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8831f69b60c0..3468daf8e0fd 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -853,6 +853,10 @@ mapAliases ({ vivaldi-widevine = throw "'vivaldi-widevine' has been renamed to/replaced by 'widevine-cdm'"; # Added 2023-02-25 vkBasalt = vkbasalt; # Added 2022-11-22 vte_290 = throw "'vte_290' has been renamed to/replaced by 'vte'"; # Added 2023-01-05 + varnish72 = throw "varnish 7.2 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09 + varnish73 = throw "varnish 7.3 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09 + varnish72Packages = throw "varnish 7.2 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09 + varnish73Packages = throw "varnish 7.3 is EOL. Either use the LTS or upgrade."; # Added 2023-10-09 inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17 ### W ### diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 591d5e425bae..0063208cab77 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14849,11 +14849,11 @@ with pkgs; valum = callPackage ../development/web/valum { }; inherit (callPackages ../servers/varnish { }) - varnish60 varnish72 varnish73; + varnish60; inherit (callPackages ../servers/varnish/packages.nix { }) - varnish60Packages varnish72Packages varnish73Packages; + varnish60Packages; - varnishPackages = varnish72Packages; + varnishPackages = varnish60Packages; varnish = varnishPackages.varnish; hitch = callPackage ../servers/hitch { }; From dbe4e6d2c04828740d69c0f7993817511da9dd2e Mon Sep 17 00:00:00 2001 From: ajs124 Date: Mon, 9 Oct 2023 14:14:21 +0200 Subject: [PATCH 17/38] varnish74: init at 7.4.1 --- nixos/tests/all-tests.nix | 1 + pkgs/servers/varnish/default.nix | 5 +++++ pkgs/servers/varnish/packages.nix | 6 +++++- pkgs/top-level/all-packages.nix | 6 +++--- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 9cf6cfccc0e9..5145540dd11c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -855,6 +855,7 @@ in { uwsgi = handleTest ./uwsgi.nix {}; v2ray = handleTest ./v2ray.nix {}; varnish60 = handleTest ./varnish.nix { package = pkgs.varnish60; }; + varnish74 = handleTest ./varnish.nix { package = pkgs.varnish74; }; vault = handleTest ./vault.nix {}; vault-agent = handleTest ./vault-agent.nix {}; vault-dev = handleTest ./vault-dev.nix {}; diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix index 09b26ed319e4..a3521fe073fa 100644 --- a/pkgs/servers/varnish/default.nix +++ b/pkgs/servers/varnish/default.nix @@ -56,4 +56,9 @@ in version = "6.0.11"; hash = "sha256-UVkA2+tH/9MOs5BlyuAzFnmD7Pm9A6lDWic2B+HRKNs="; }; + # EOL 2024-09-15 + varnish74 = common { + version = "7.4.1"; + hash = "sha256-h02Deq9JuPJxjLYLjIx5AOnqEMJk8hjIjNZy1Zb0uJ8="; + }; } diff --git a/pkgs/servers/varnish/packages.nix b/pkgs/servers/varnish/packages.nix index 99f0450656bb..d382ede8a341 100644 --- a/pkgs/servers/varnish/packages.nix +++ b/pkgs/servers/varnish/packages.nix @@ -1,4 +1,4 @@ -{ callPackages, callPackage, varnish60, fetchFromGitHub }: { +{ callPackages, callPackage, varnish60, varnish74, fetchFromGitHub }: { varnish60Packages = rec { varnish = varnish60; modules = (callPackages ./modules.nix { inherit varnish; }).modules15; @@ -13,4 +13,8 @@ sha256 = "1n94slrm6vn3hpymfkla03gw9603jajclg84bjhwb8kxsk3rxpmk"; }; }; + varnish74Packages = rec { + varnish = varnish74; + modules = (callPackages ./modules.nix { inherit varnish; }).modules22; + }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0063208cab77..c66a3e0174e0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14849,11 +14849,11 @@ with pkgs; valum = callPackage ../development/web/valum { }; inherit (callPackages ../servers/varnish { }) - varnish60; + varnish60 varnish74; inherit (callPackages ../servers/varnish/packages.nix { }) - varnish60Packages; + varnish60Packages varnish74Packages; - varnishPackages = varnish60Packages; + varnishPackages = varnish74Packages; varnish = varnishPackages.varnish; hitch = callPackage ../servers/hitch { }; From fd35d495c80c5daaf59c0529ace2523e520d4850 Mon Sep 17 00:00:00 2001 From: ajs124 Date: Mon, 9 Oct 2023 14:16:32 +0200 Subject: [PATCH 18/38] varnish/modules: update/clean-up --- pkgs/servers/varnish/modules.nix | 10 +++------- pkgs/servers/varnish/packages.nix | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/varnish/modules.nix b/pkgs/servers/varnish/modules.nix index 4a921600294c..ee05a8181a5d 100644 --- a/pkgs/servers/varnish/modules.nix +++ b/pkgs/servers/varnish/modules.nix @@ -41,12 +41,8 @@ in version = "0.15.1"; sha256 = "1lwgjhgr5yw0d17kbqwlaj5pkn70wvaqqjpa1i0n459nx5cf5pqj"; }; - modules20 = common { - version = "0.20.0"; - sha256 = "sha256-3eH3qCa24rWqYXsTTDmm/9LjBMxcxUuozuRzZ3e8cUo="; - }; - modules22 = common { - version = "0.22.0"; - sha256 = "sha256-eoa6i6AuOS4pxQKA/lbJnwFc39cRiLqnBSpPM4Oitrc="; + modules23 = common { + version = "0.23.0"; + sha256 = "sha256-Dd1pLMmRC59iRRpReDeQJ8Sv00ojb8InvaMrb+iRv4I="; }; } diff --git a/pkgs/servers/varnish/packages.nix b/pkgs/servers/varnish/packages.nix index d382ede8a341..1d0b3e45da7a 100644 --- a/pkgs/servers/varnish/packages.nix +++ b/pkgs/servers/varnish/packages.nix @@ -15,6 +15,6 @@ }; varnish74Packages = rec { varnish = varnish74; - modules = (callPackages ./modules.nix { inherit varnish; }).modules22; + modules = (callPackages ./modules.nix { inherit varnish; }).modules23; }; } From 6e45bee3b374399be8016130194d9ff6ffda9aef Mon Sep 17 00:00:00 2001 From: ajs124 Date: Mon, 9 Oct 2023 14:18:50 +0200 Subject: [PATCH 19/38] nixos/rl-2311: add varnish upgrade notes --- nixos/doc/manual/release-notes/rl-2311.section.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 3a1ccfd6bc91..0c8880b0979e 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -183,6 +183,8 @@ - `odoo` now defaults to 16, updated from 15. +- `varnish` was upgraded from 7.2.x to 7.4.x, see https://varnish-cache.org/docs/7.3/whats-new/upgrading-7.3.html and https://varnish-cache.org/docs/7.4/whats-new/upgrading-7.4.html for upgrade notes. The current LTS version is still offered as `varnish60`. + - `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities. - `services.keyd` changed API. Now you can create multiple configuration files. From 0c9abd9fa7c5671763448297199a2943a2446c86 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 9 Oct 2023 18:42:08 +0200 Subject: [PATCH 20/38] phpExtensions.meminfo: init at unstable-2022-03-25 --- .../php-packages/meminfo/default.nix | 22 +++++++++++++++++++ pkgs/top-level/php-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/php-packages/meminfo/default.nix diff --git a/pkgs/development/php-packages/meminfo/default.nix b/pkgs/development/php-packages/meminfo/default.nix new file mode 100644 index 000000000000..d170243be20c --- /dev/null +++ b/pkgs/development/php-packages/meminfo/default.nix @@ -0,0 +1,22 @@ +{ buildPecl, lib, fetchFromGitHub }: + +buildPecl rec { + version = "unstable-2022-03-25"; + pname = "meminfo"; + + src = fetchFromGitHub { + owner = "BitOne"; + repo = "php-meminfo"; + rev = "0ab7f5aea96c4dafce27c7e215b4907db2a2f493"; + hash = "sha256-MO+B+ZNg6OAnxkOtdA15o+G41XbsG1N1WBz7thMCjck="; + }; + + sourceRoot = "${src.name}/extension"; + + meta = { + description = "PHP extension to get insight about memory usage"; + homepage = "https://github.com/BitOne/php-meminfo"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ drupol ]; + }; +} diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index e1f62aa37313..70c15626d85f 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -264,6 +264,8 @@ lib.makeScope pkgs.newScope (self: with self; { memcached = callPackage ../development/php-packages/memcached { }; + meminfo = callPackage ../development/php-packages/meminfo { }; + mongodb = callPackage ../development/php-packages/mongodb { inherit (pkgs) darwin; }; From 41acc25766fbc611cd10cb043bc7cab91d2fd088 Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Mon, 9 Oct 2023 19:12:29 +0200 Subject: [PATCH 21/38] by-name: make the way of adding packages clearer --- pkgs/by-name/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/README.md b/pkgs/by-name/README.md index ba1bd8cb9861..fbb8b0dc05c1 100644 --- a/pkgs/by-name/README.md +++ b/pkgs/by-name/README.md @@ -3,6 +3,10 @@ The structure of this directory maps almost directly to top-level package attributes. This is the recommended way to add new top-level packages to Nixpkgs [when possible](#limitations). +Packages found in the named-based structure do not need to be explicitly added to the +`top-level/all-packages.nix` file unless they require overriding the default value +of an implicit attribute (see below). + ## Example The top-level package `pkgs.some-package` may be declared by setting up this file structure: From 1f0dbe5f10c3a15abbddcb0ea3358d4280f77af2 Mon Sep 17 00:00:00 2001 From: Maxine Aubrey Date: Mon, 9 Oct 2023 21:01:16 +0200 Subject: [PATCH 22/38] fwupd: drop removed dell option --- pkgs/os-specific/linux/firmware/fwupd/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix index 173ae324bda7..3def168d2fa9 100644 --- a/pkgs/os-specific/linux/firmware/fwupd/default.nix +++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix @@ -227,7 +227,6 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (!enablePassim) [ "-Dpassim=disabled" ] ++ lib.optionals (!haveDell) [ - "-Dplugin_dell=disabled" "-Dplugin_synaptics_mst=disabled" ] ++ lib.optionals (!haveRedfish) [ "-Dplugin_redfish=disabled" From 50f499010a4206c17d9a13cb67c25208597c3d61 Mon Sep 17 00:00:00 2001 From: 1sixth <1sixth@shinta.ro> Date: Mon, 9 Oct 2023 15:58:32 +0800 Subject: [PATCH 23/38] stress-ng: 0.16.04 -> 0.17.00 --- pkgs/tools/system/stress-ng/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix index f93716ff4332..af29e316c278 100644 --- a/pkgs/tools/system/stress-ng/default.nix +++ b/pkgs/tools/system/stress-ng/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "stress-ng"; - version = "0.16.04"; + version = "0.17.00"; src = fetchFromGitHub { owner = "ColinIanKing"; repo = pname; rev = "V${version}"; - hash = "sha256-Qr1t+xyl0aS2tSB+DyS7oXOkbcJRaSabS6g/qc8hdWc="; + hash = "sha256-VChEuxNDQfkJyherlInbFEBGf6djp5zRQYaZB7w7A3s="; }; postPatch = '' From 35fd6b731680349ce0981008ac403a1db2db76d7 Mon Sep 17 00:00:00 2001 From: Jon Seager Date: Mon, 9 Oct 2023 19:04:44 +0100 Subject: [PATCH 24/38] lxd-ui: unstable-2023-07-03 -> 0.2 --- pkgs/tools/admin/lxd/package.json | 13 +++++++------ pkgs/tools/admin/lxd/ui.nix | 8 ++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pkgs/tools/admin/lxd/package.json b/pkgs/tools/admin/lxd/package.json index 7a6a07d01129..e30b269605ee 100644 --- a/pkgs/tools/admin/lxd/package.json +++ b/pkgs/tools/admin/lxd/package.json @@ -4,7 +4,7 @@ "author": "Canonical Webteam", "license": "LGPL-3.0-only", "scripts": { - "clean": "rm -rf node_modules yarn-error.log *.log build/ .jekyll-metadata .bundle", + "clean": "rm -rf node_modules yarn-error.log *.log build/ .jekyll-metadata .bundle playwright-report test-results haproxy-local.cfg", "build-html": "cp build/ui/index.html build/index.html", "build": "npx vite build && yarn build-html", "format-js-eslint": "eslint 'src/**/*.{json,jsx,tsx,ts}' 'tests/**/*.ts' --fix", @@ -17,13 +17,14 @@ "hooks-add": "husky install", "hooks-remove": "husky uninstall", "start": "concurrently --kill-others --raw 'vite | grep -v localhost' 'yarn serve'", - "serve": "./entrypoint" - }, + "serve": "./entrypoint", + "test-js": "react-scripts test src/ --watchAll=false"}, "dependencies": { - "@canonical/react-components": "0.42.0", + "@canonical/react-components": "0.47.0", "@monaco-editor/react": "^4.4.6", "@tanstack/react-query": "^4.14.5", "@use-it/event-listener": "^0.1.7", + "axios": "1.3.2", "cytoscape": "3.23.0", "cytoscape-popper": "2.0.0", "formik": "2.2.9", @@ -38,7 +39,7 @@ "react-scripts": "5.0.1", "react-useportal": "^1.0.17", "serve": "14.1.2", - "vanilla-framework": "3.15.1", + "vanilla-framework": "4.3.0", "xterm-addon-fit": "0.6.0", "xterm-for-react": "1.0.4", "yup": "0.32.11" @@ -78,7 +79,7 @@ "sass": "1.57.1", "sass-loader": "13.2.0", "style-loader": "3.3.1", - "stylelint": "14.16.1", + "stylelint": "15.10.1", "stylelint-config-prettier": "9.0.4", "stylelint-config-standard-scss": "6.1.0", "stylelint-order": "5.0.0", diff --git a/pkgs/tools/admin/lxd/ui.nix b/pkgs/tools/admin/lxd/ui.nix index a6d41659a9da..d266705bf014 100644 --- a/pkgs/tools/admin/lxd/ui.nix +++ b/pkgs/tools/admin/lxd/ui.nix @@ -6,19 +6,19 @@ mkYarnPackage rec { pname = "lxd-ui"; - version = "unstable-2023-07-03"; + version = "0.2"; src = fetchFromGitHub { owner = "canonical"; repo = "lxd-ui"; - rev = "c2e819a027d440cbb1cb9d450aad280dde68e231"; - sha256 = "sha256-lEzGACSv6CpxnfkOcsdPrH6KRKDkoKv63m8Gsodk8uc="; + rev = "0.2"; + sha256 = "sha256-DygWNktangFlAqinBm6wWsRLGmX6yjhmRJ2iU0yjcgk="; }; packageJSON = ./package.json; offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; - sha256 = "sha256-SLkgJDb9lwz/ShZh+H4YKAFRc1BdANWI5ndM2O6NzXE="; + sha256 = "sha256-B1SVCViX1LEFoBLMdFk9qaoayku7Y+zU5c4JEJkLmwE="; }; buildPhase = '' From cbd816146dd34796dcda643f4539fb5c9c5613f1 Mon Sep 17 00:00:00 2001 From: Jon Seager Date: Mon, 9 Oct 2023 19:19:17 +0100 Subject: [PATCH 25/38] lxd-ui: use correct ref format in src block Co-authored-by: Adam C Stephens <2071575+adamcstephens@users.noreply.github.com> --- pkgs/tools/admin/lxd/ui.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/admin/lxd/ui.nix b/pkgs/tools/admin/lxd/ui.nix index d266705bf014..b0582ef99969 100644 --- a/pkgs/tools/admin/lxd/ui.nix +++ b/pkgs/tools/admin/lxd/ui.nix @@ -11,7 +11,7 @@ mkYarnPackage rec { src = fetchFromGitHub { owner = "canonical"; repo = "lxd-ui"; - rev = "0.2"; + rev = "refs/tags/${version}"; sha256 = "sha256-DygWNktangFlAqinBm6wWsRLGmX6yjhmRJ2iU0yjcgk="; }; From 0de25e25b06591af5bb2362256d4cecbe29eb556 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Tue, 3 Oct 2023 00:06:05 -0300 Subject: [PATCH 26/38] lib: refactor - rename `(enable|with)Feature(As|)` inputs to more descriptive names --- lib/strings.nix | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index d7642ce10faf..628669d86bbd 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -854,7 +854,7 @@ rec { assert (lib.isBool flag); mesonOption feature (if flag then "enabled" else "disabled"); - /* Create an --{enable,disable}- string that can be passed to + /* Create an --{enable,disable}- string that can be passed to standard GNU Autoconf scripts. Example: @@ -863,11 +863,12 @@ rec { enableFeature false "shared" => "--disable-shared" */ - enableFeature = enable: feat: - assert isString feat; # e.g. passing openssl instead of "openssl" - "--${if enable then "enable" else "disable"}-${feat}"; + enableFeature = flag: feature: + assert lib.isBool flag; + assert lib.isString feature; # e.g. passing openssl instead of "openssl" + "--${if flag then "enable" else "disable"}-${feature}"; - /* Create an --{enable-=,disable-} string that can be passed to + /* Create an --{enable-=,disable-} string that can be passed to standard GNU Autoconf scripts. Example: @@ -876,9 +877,10 @@ rec { enableFeatureAs false "shared" (throw "ignored") => "--disable-shared" */ - enableFeatureAs = enable: feat: value: enableFeature enable feat + optionalString enable "=${value}"; + enableFeatureAs = flag: feature: value: + enableFeature flag feature + optionalString flag "=${value}"; - /* Create an --{with,without}- string that can be passed to + /* Create an --{with,without}- string that can be passed to standard GNU Autoconf scripts. Example: @@ -887,11 +889,11 @@ rec { withFeature false "shared" => "--without-shared" */ - withFeature = with_: feat: - assert isString feat; # e.g. passing openssl instead of "openssl" - "--${if with_ then "with" else "without"}-${feat}"; + withFeature = flag: feature: + assert isString feature; # e.g. passing openssl instead of "openssl" + "--${if flag then "with" else "without"}-${feature}"; - /* Create an --{with-=,without-} string that can be passed to + /* Create an --{with-=,without-} string that can be passed to standard GNU Autoconf scripts. Example: @@ -900,7 +902,8 @@ rec { withFeatureAs false "shared" (throw "ignored") => "--without-shared" */ - withFeatureAs = with_: feat: value: withFeature with_ feat + optionalString with_ "=${value}"; + withFeatureAs = flag: feature: value: + withFeature flag feature + optionalString flag "=${value}"; /* Create a fixed width string with additional prefix to match required width. From e59d32d338cf65955712569a2158e07d63077539 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Tue, 3 Oct 2023 00:07:51 -0300 Subject: [PATCH 27/38] connman: refactor - Remove references to null - rec-less - use lib.strings --- .../networking/connman/connman/default.nix | 242 +++++++++--------- pkgs/tools/networking/connman/default.nix | 2 +- 2 files changed, 115 insertions(+), 129 deletions(-) diff --git a/pkgs/tools/networking/connman/connman/default.nix b/pkgs/tools/networking/connman/connman/default.nix index 7697a8efad89..a90fb1ffd727 100644 --- a/pkgs/tools/networking/connman/connman/default.nix +++ b/pkgs/tools/networking/connman/connman/default.nix @@ -1,67 +1,72 @@ { lib -, nixosTests , stdenv , fetchurl , fetchpatch -, pkg-config , autoreconfHook +, dbus , file , glib -# always required runtime dependencies -, dbus -, libmnl , gnutls +, iptables +, libmnl +, libnftnl # for nftables +, nixosTests +, openconnect +, openvpn +, pkg-config +, polkit +, ppp +, pptp , readline -# configurable options -, firewallType ? "iptables" # or "nftables" -, iptables ? null -, libnftnl ? null # for nftables +, vpnc , dnsType ? "internal" # or "systemd-resolved" -# optional features which are turned *on* by default -, enableOpenconnect ? true -, openconnect ? null -, enableOpenvpn ? true -, openvpn ? null -, enableVpnc ? true -, vpnc ? true -, enablePolkit ? true -, polkit ? null -, enablePptp ? true -, pptp ? null -, ppp ? null -, enableLoopback ? true -, enableEthernet ? true -, enableWireguard ? true -, enableGadget ? true -, enableWifi ? true , enableBluetooth ? true -, enableOfono ? true -, enableDundee ? true -, enablePacrunner ? true -, enableNeard ? true -, enableWispr ? true -, enableTools ? true -, enableStats ? true , enableClient ? true , enableDatafiles ? true -# optional features which are turned *off* by default -, enableNetworkManager ? false +, enableDundee ? true +, enableEthernet ? true +, enableGadget ? true , enableHh2serialGps ? false -, enableL2tp ? false , enableIospm ? false +, enableL2tp ? false +, enableLoopback ? true +, enableNeard ? true +, enableNetworkManager ? null +, enableNetworkManagerCompatibility ? + if enableNetworkManager == null + then false + else lib.warn "enableNetworkManager option is deprecated; use enableNetworkManagerCompatibility instead" enableNetworkManager +, enableOfono ? true +, enableOpenconnect ? true +, enableOpenvpn ? true +, enablePacrunner ? true +, enablePolkit ? true +, enablePptp ? true +, enableStats ? true , enableTist ? false +, enableTools ? true +, enableVpnc ? true +, enableWifi ? true +, enableWireguard ? true +, enableWispr ? true +, firewallType ? "iptables" # or "nftables" }: +let + inherit (lib) + enableFeature + enableFeatureAs + optionals + withFeatureAs; +in assert lib.asserts.assertOneOf "firewallType" firewallType [ "iptables" "nftables" ]; assert lib.asserts.assertOneOf "dnsType" dnsType [ "internal" "systemd-resolved" ]; - -let inherit (lib) optionals; in - -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "connman"; version = "1.42"; + src = fetchurl { - url = "mirror://kernel/linux/network/connman/${pname}-${version}.tar.xz"; + url = "mirror://kernel/linux/network/connman/connman-${finalAttrs.version}.tar.xz"; hash = "sha256-o+a65G/Age8una48qk92Sd6JLD3mIsICg6wMqBQjwqo="; }; @@ -77,114 +82,95 @@ stdenv.mkDerivation rec { }) ]; + nativeBuildInputs = [ + autoreconfHook + file + pkg-config + ]; + buildInputs = [ glib dbus libmnl gnutls readline - ] ++ optionals (enableOpenconnect) [ openconnect ] - ++ optionals (firewallType == "iptables") [ iptables ] - ++ optionals (firewallType == "nftables") [ libnftnl ] - ++ optionals (enablePolkit) [ polkit ] - ++ optionals (enablePptp) [ pptp ppp ] + ] + ++ optionals (firewallType == "iptables") [ iptables ] + ++ optionals (firewallType == "nftables") [ libnftnl ] + ++ optionals (enableOpenconnect) [ openconnect ] + ++ optionals (enablePolkit) [ polkit ] + ++ optionals (enablePptp) [ pptp ppp ] ; - nativeBuildInputs = [ - pkg-config - file - autoreconfHook # as long as we're patching configure.ac - ]; - - # fix invalid path to 'file' postPatch = '' - sed -i "s/\/usr\/bin\/file/file/g" ./configure + sed -i "s@/usr/bin/file@file@g" ./configure ''; configureFlags = [ # directories flags "--sysconfdir=/etc" "--localstatedir=/var" - "--with-dbusconfdir=${placeholder "out"}/share" - "--with-dbusdatadir=${placeholder "out"}/share" - "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" - "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" - "--with-dns-backend=${dnsType}" - "--with-firewall=${firewallType}" + ] ++ [ # production build flags - "--disable-maintainer-mode" - "--enable-session-policy-local=builtin" + (enableFeature false "maintainer-mode") + (enableFeatureAs true "session-policy-local" "builtin") # for building and running tests - # "--enable-tests" # installs the tests, we don't want that - "--enable-tools" - ] - ++ optionals (!enableLoopback) [ "--disable-loopback" ] - ++ optionals (!enableEthernet) [ "--disable-ethernet" ] - ++ optionals (!enableWireguard) [ "--disable-wireguard" ] - ++ optionals (!enableGadget) [ "--disable-gadget" ] - ++ optionals (!enableWifi) [ "--disable-wifi" ] - # enable IWD support for wifi as it doesn't require any new dependencies - # and it's easier for the NixOS module to use only one connman package when - # IWD is requested - ++ optionals (enableWifi) [ "--enable-iwd" ] - ++ optionals (!enableBluetooth) [ "--disable-bluetooth" ] - ++ optionals (!enableOfono) [ "--disable-ofono" ] - ++ optionals (!enableDundee) [ "--disable-dundee" ] - ++ optionals (!enablePacrunner) [ "--disable-pacrunner" ] - ++ optionals (!enableNeard) [ "--disable-neard" ] - ++ optionals (!enableWispr) [ "--disable-wispr" ] - ++ optionals (!enableTools) [ "--disable-tools" ] - ++ optionals (!enableStats) [ "--disable-stats" ] - ++ optionals (!enableClient) [ "--disable-client" ] - ++ optionals (!enableDatafiles) [ "--disable-datafiles" ] - ++ optionals (enableOpenconnect) [ - "--enable-openconnect=builtin" - "--with-openconnect=${openconnect}/sbin/openconnect" - ] - ++ optionals (enableOpenvpn) [ - "--enable-openvpn=builtin" - "--with-openvpn=${openvpn}/sbin/openvpn" - ] - ++ optionals (enableVpnc) [ - "--enable-vpnc=builtin" - "--with-vpnc=${vpnc}/sbin/vpnc" - ] - ++ optionals (enablePolkit) [ - "--enable-polkit" - ] - ++ optionals (enablePptp) [ - "--enable-pptp" - "--with-pptp=${pptp}/sbin/pptp" - ] - ++ optionals (!enableWireguard) [ - "--disable-wireguard" - ] - ++ optionals (enableNetworkManager) [ - "--enable-nmcompat" - ] - ++ optionals (enableHh2serialGps) [ - "--enable-hh2serial-gps" - ] - ++ optionals (enableL2tp) [ - "--enable-l2tp" - ] - ++ optionals (enableIospm) [ - "--enable-iospm" - ] - ++ optionals (enableTist) [ - "--enable-tist" - ] - ; + # (enableFeature true "tests") # installs the tests, we don't want that + (enableFeature true "tools") + (enableFeature enableLoopback "loopback") + (enableFeature enableEthernet "ethernet") + (enableFeature enableWireguard "wireguard") + (enableFeature enableGadget "gadget") + (enableFeature enableWifi "wifi") + # enable IWD support for wifi as it doesn't require any new dependencies and + # it's easier for the NixOS module to use only one connman package when IWD + # is requested + (enableFeature enableWifi "iwd") + (enableFeature enableBluetooth "bluetooth") + (enableFeature enableOfono "ofono") + (enableFeature enableDundee "dundee") + (enableFeature enablePacrunner "pacrunner") + (enableFeature enableNeard "neard") + (enableFeature enableWispr "wispr") + (enableFeature enableTools "tools") + (enableFeature enableStats "stats") + (enableFeature enableClient "client") + (enableFeature enableDatafiles "datafiles") + (enableFeature enablePolkit "polkit") + (enableFeature enablePptp "pptp") + (enableFeature enableWireguard "wireguard") + (enableFeature enableNetworkManagerCompatibility "nmcompat") + (enableFeature enableHh2serialGps "hh2serial-gps") + (enableFeature enableL2tp "l2tp") + (enableFeature enableIospm "iospm") + (enableFeature enableTist "tist") + ] ++ [ + (enableFeatureAs enableOpenconnect "openconnect" "builtin") + (enableFeatureAs enableOpenvpn "openvpn" "builtin") + (enableFeatureAs enableVpnc "vpnc" "builtin") + ] ++ [ + (withFeatureAs true "dbusconfdir" "${placeholder "out"}/share") + (withFeatureAs true "dbusdatadir" "${placeholder "out"}/share") + (withFeatureAs true "tmpfilesdir" "${placeholder "out"}/tmpfiles.d") + (withFeatureAs true "systemdunitdir" "${placeholder "out"}/systemd/system") + (withFeatureAs true "dns-backend" "${dnsType}") + (withFeatureAs true "firewall" "${firewallType}") + (withFeatureAs enableOpenconnect "openconnect" "${openconnect}/sbin/openconnect") + (withFeatureAs enableOpenvpn "openvpn" "${openvpn}/sbin/openvpn") + (withFeatureAs enableVpnc "vpnc" "${vpnc}/sbin/vpnc") + (withFeatureAs enablePptp "pptp" "${pptp}/sbin/pptp") + ]; doCheck = true; passthru.tests.connman = nixosTests.connman; - meta = with lib; { + meta = { description = "A daemon for managing internet connections"; - homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/"; - maintainers = with maintainers; [ eclairevoyant ]; - platforms = platforms.linux; - license = licenses.gpl2Only; + homepage = "https://git.kernel.org/pub/scm/network/connman/connman.git/about/"; + license = lib.licenses.gpl2Only; + mainProgram = "connmanctl"; + maintainers = with lib.maintainers; [ eclairevoyant AndersonTorres ]; + platforms = lib.platforms.linux; }; -} +}) diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix index 4cc9e5e2b318..6c2ea19c54fc 100644 --- a/pkgs/tools/networking/connman/default.nix +++ b/pkgs/tools/networking/connman/default.nix @@ -8,7 +8,7 @@ lib.makeScope pkgs.newScope (self: with self; { connmanFull = connman.override { # TODO: Why is this in `connmanFull` and not the default build? See TODO in # nixos/modules/services/networking/connman.nix (near the assertions) - enableNetworkManager = true; + enableNetworkManagerCompatibility = true; enableHh2serialGps = true; enableL2tp = true; enableIospm = true; From 52058530ce12218dc7beb39db8240d87b081485a Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Wed, 4 Oct 2023 22:13:08 -0300 Subject: [PATCH 28/38] nixos/connman: refactor --- nixos/modules/services/networking/connman.nix | 69 +++++++++---------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix index 498991419579..c626945ccd0c 100644 --- a/nixos/modules/services/networking/connman.nix +++ b/nixos/modules/services/networking/connman.nix @@ -1,55 +1,59 @@ { config, lib, pkgs, ... }: -with pkgs; -with lib; - let cfg = config.services.connman; configFile = pkgs.writeText "connman.conf" '' [General] - NetworkInterfaceBlacklist=${concatStringsSep "," cfg.networkInterfaceBlacklist} + NetworkInterfaceBlacklist=${lib.concatStringsSep "," cfg.networkInterfaceBlacklist} ${cfg.extraConfig} ''; enableIwd = cfg.wifi.backend == "iwd"; in { + meta.maintainers = with lib.maintainers; [ AndersonTorres ]; imports = [ - (mkRenamedOptionModule [ "networking" "connman" ] [ "services" "connman" ]) + (lib.mkRenamedOptionModule [ "networking" "connman" ] [ "services" "connman" ]) ]; ###### interface options = { - services.connman = { - - enable = mkOption { - type = types.bool; + enable = lib.mkOption { + type = lib.types.bool; default = false; description = lib.mdDoc '' Whether to use ConnMan for managing your network connections. ''; }; - enableVPN = mkOption { - type = types.bool; + package = lib.mkOption { + type = lib.types.package; + description = lib.mdDoc "The connman package / build flavor"; + default = pkgs.connman; + defaultText = lib.literalExpression "pkgs.connman"; + example = lib.literalExpression "pkgs.connmanFull"; + }; + + enableVPN = lib.mkOption { + type = lib.types.bool; default = true; description = lib.mdDoc '' Whether to enable ConnMan VPN service. ''; }; - extraConfig = mkOption { - type = types.lines; + extraConfig = lib.mkOption { + type = lib.types.lines; default = ""; description = lib.mdDoc '' Configuration lines appended to the generated connman configuration file. ''; }; - networkInterfaceBlacklist = mkOption { - type = with types; listOf str; + networkInterfaceBlacklist = lib.mkOption { + type = with lib.types; listOf str; default = [ "vmnet" "vboxnet" "virbr" "ifb" "ve" ]; description = lib.mdDoc '' Default blacklisted interfaces, this includes NixOS containers interfaces (ve). @@ -57,8 +61,8 @@ in { }; wifi = { - backend = mkOption { - type = types.enum [ "wpa_supplicant" "iwd" ]; + backend = lib.mkOption { + type = lib.types.enum [ "wpa_supplicant" "iwd" ]; default = "wpa_supplicant"; description = lib.mdDoc '' Specify the Wi-Fi backend used. @@ -67,31 +71,20 @@ in { }; }; - extraFlags = mkOption { - type = with types; listOf str; + extraFlags = lib.mkOption { + type = with lib.types; listOf str; default = [ ]; example = [ "--nodnsproxy" ]; description = lib.mdDoc '' Extra flags to pass to connmand ''; }; - - package = mkOption { - type = types.package; - description = lib.mdDoc "The connman package / build flavor"; - default = connman; - defaultText = literalExpression "pkgs.connman"; - example = literalExpression "pkgs.connmanFull"; - }; - }; - }; ###### implementation - config = mkIf cfg.enable { - + config = lib.mkIf cfg.enable { assertions = [{ assertion = !config.networking.useDHCP; message = "You can not use services.connman with networking.useDHCP"; @@ -107,8 +100,8 @@ in { systemd.services.connman = { description = "Connection service"; wantedBy = [ "multi-user.target" ]; - after = [ "syslog.target" ] ++ optional enableIwd "iwd.service"; - requires = optional enableIwd "iwd.service"; + after = [ "syslog.target" ] ++ lib.optional enableIwd "iwd.service"; + requires = lib.optional enableIwd "iwd.service"; serviceConfig = { Type = "dbus"; BusName = "net.connman"; @@ -117,13 +110,13 @@ in { "${cfg.package}/sbin/connmand" "--config=${configFile}" "--nodaemon" - ] ++ optional enableIwd "--wifi=iwd_agent" + ] ++ lib.optional enableIwd "--wifi=iwd_agent" ++ cfg.extraFlags); StandardOutput = "null"; }; }; - systemd.services.connman-vpn = mkIf cfg.enableVPN { + systemd.services.connman-vpn = lib.mkIf cfg.enableVPN { description = "ConnMan VPN service"; wantedBy = [ "multi-user.target" ]; after = [ "syslog.target" ]; @@ -136,7 +129,7 @@ in { }; }; - systemd.services.net-connman-vpn = mkIf cfg.enableVPN { + systemd.services.net-connman-vpn = lib.mkIf cfg.enableVPN { description = "D-BUS Service"; serviceConfig = { Name = "net.connman.vpn"; @@ -150,9 +143,9 @@ in { networking = { useDHCP = false; wireless = { - enable = mkIf (!enableIwd) true; + enable = lib.mkIf (!enableIwd) true; dbusControlled = true; - iwd = mkIf enableIwd { + iwd = lib.mkIf enableIwd { enable = true; }; }; From 24cbd84d52b49122ef7304c3c5374778d5ea2702 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 8 Oct 2023 19:21:31 -0300 Subject: [PATCH 29/38] treewide: move connmanPackages to by-name --- .../co/connman-gtk/package.nix} | 0 .../co/connman-ncurses/package.nix} | 0 .../co/connman-notify/package.nix} | 0 .../co}/connman/create-libppp-compat.h.patch | 0 .../co/connman/package.nix} | 0 .../co/connman_dmenu/package.nix} | 0 pkgs/tools/networking/connman/default.nix | 49 ------------------- pkgs/top-level/all-packages.nix | 43 +++++++++++----- 8 files changed, 32 insertions(+), 60 deletions(-) rename pkgs/{tools/networking/connman/connman-gtk/default.nix => by-name/co/connman-gtk/package.nix} (100%) rename pkgs/{tools/networking/connman/connman-ncurses/default.nix => by-name/co/connman-ncurses/package.nix} (100%) rename pkgs/{tools/networking/connman/connman-notify/default.nix => by-name/co/connman-notify/package.nix} (100%) rename pkgs/{tools/networking/connman => by-name/co}/connman/create-libppp-compat.h.patch (100%) rename pkgs/{tools/networking/connman/connman/default.nix => by-name/co/connman/package.nix} (100%) rename pkgs/{tools/networking/connman/connman_dmenu/default.nix => by-name/co/connman_dmenu/package.nix} (100%) delete mode 100644 pkgs/tools/networking/connman/default.nix diff --git a/pkgs/tools/networking/connman/connman-gtk/default.nix b/pkgs/by-name/co/connman-gtk/package.nix similarity index 100% rename from pkgs/tools/networking/connman/connman-gtk/default.nix rename to pkgs/by-name/co/connman-gtk/package.nix diff --git a/pkgs/tools/networking/connman/connman-ncurses/default.nix b/pkgs/by-name/co/connman-ncurses/package.nix similarity index 100% rename from pkgs/tools/networking/connman/connman-ncurses/default.nix rename to pkgs/by-name/co/connman-ncurses/package.nix diff --git a/pkgs/tools/networking/connman/connman-notify/default.nix b/pkgs/by-name/co/connman-notify/package.nix similarity index 100% rename from pkgs/tools/networking/connman/connman-notify/default.nix rename to pkgs/by-name/co/connman-notify/package.nix diff --git a/pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch b/pkgs/by-name/co/connman/create-libppp-compat.h.patch similarity index 100% rename from pkgs/tools/networking/connman/connman/create-libppp-compat.h.patch rename to pkgs/by-name/co/connman/create-libppp-compat.h.patch diff --git a/pkgs/tools/networking/connman/connman/default.nix b/pkgs/by-name/co/connman/package.nix similarity index 100% rename from pkgs/tools/networking/connman/connman/default.nix rename to pkgs/by-name/co/connman/package.nix diff --git a/pkgs/tools/networking/connman/connman_dmenu/default.nix b/pkgs/by-name/co/connman_dmenu/package.nix similarity index 100% rename from pkgs/tools/networking/connman/connman_dmenu/default.nix rename to pkgs/by-name/co/connman_dmenu/package.nix diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix deleted file mode 100644 index 6c2ea19c54fc..000000000000 --- a/pkgs/tools/networking/connman/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ lib, pkgs }: - -lib.makeScope pkgs.newScope (self: with self; { - - # All the defaults - connman = callPackage ./connman { }; - - connmanFull = connman.override { - # TODO: Why is this in `connmanFull` and not the default build? See TODO in - # nixos/modules/services/networking/connman.nix (near the assertions) - enableNetworkManagerCompatibility = true; - enableHh2serialGps = true; - enableL2tp = true; - enableIospm = true; - enableTist = true; - }; - - connmanMinimal = connman.override { - enableOpenconnect = false; - enableOpenvpn = false; - enableVpnc = false; - vpnc = false; - enablePolkit = false; - enablePptp = false; - enableLoopback = false; - # enableEthernet = false; # If disabled no ethernet connection can be performed - enableWireguard = false; - enableGadget = false; - # enableWifi = false; # If disabled no WiFi connection can be performed - enableBluetooth = false; - enableOfono = false; - enableDundee = false; - enablePacrunner = false; - enableNeard = false; - enableWispr = false; - enableTools = false; - enableStats = false; - enableClient = false; - # enableDatafiles = false; # If disabled, configuration and data files are not installed - }; - - connman_dmenu = callPackage ./connman_dmenu { }; - - connman-gtk = callPackage ./connman-gtk { }; - - connman-ncurses = callPackage ./connman-ncurses { }; - - connman-notify = callPackage ./connman-notify { }; -}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cf4c27b27168..123931d8533c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6905,17 +6905,38 @@ with pkgs; conspy = callPackage ../os-specific/linux/conspy { }; - connmanPackages = - recurseIntoAttrs (callPackage ../tools/networking/connman { }); - inherit (connmanPackages) - connman - connmanFull - connmanMinimal - connman_dmenu - connman-gtk - connman-ncurses - connman-notify - ; + connmanFull = connman.override { + # TODO: Why is this in `connmanFull` and not the default build? See TODO in + # nixos/modules/services/networking/connman.nix (near the assertions) + enableNetworkManagerCompatibility = true; + enableHh2serialGps = true; + enableL2tp = true; + enableIospm = true; + enableTist = true; + }; + + connmanMinimal = connman.override { + # enableDatafiles = false; # If disabled, configuration and data files are not installed + # enableEthernet = false; # If disabled no ethernet connection can be performed + # enableWifi = false; # If disabled no WiFi connection can be performed + enableBluetooth = false; + enableClient = false; + enableDundee = false; + enableGadget = false; + enableLoopback = false; + enableNeard = false; + enableOfono = false; + enableOpenconnect = false; + enableOpenvpn = false; + enablePacrunner = false; + enablePolkit = false; + enablePptp = false; + enableStats = false; + enableTools = false; + enableVpnc = false; + enableWireguard = false; + enableWispr = false; + }; convertlit = callPackage ../tools/text/convertlit { }; From 9ec398df9cef8087badd0d24b23c2a2851967a06 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 8 Oct 2023 23:28:14 -0300 Subject: [PATCH 30/38] connmanPackages: throw --- pkgs/top-level/aliases.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8831f69b60c0..14ab6831d657 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -154,6 +154,7 @@ mapAliases ({ inherit (libsForQt5.mauiPackages) communicator; # added 2022-05-17 compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10 concurrencykit = libck; # Added 2021-03 + connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08 cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12 cvs_fast_export = cvs-fast-export; # Added 2021-06-10 From bd69b537f630988562e1f9e104d237bd8680e95f Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 8 Oct 2023 23:31:23 -0300 Subject: [PATCH 31/38] aliases.nix: reorder --- pkgs/top-level/aliases.nix | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 14ab6831d657..4053a661cb11 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -133,6 +133,15 @@ mapAliases ({ inherit (libsForQt5.mauiPackages) clip; # added 2022-05-17 cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15 crispyDoom = crispy-doom; # Added 2023-05-01 + clasp = clingo; # added 2022-12-22 + claws-mail-gtk3 = claws-mail; # Added 2021-07-10 + codimd = hedgedoc; # Added 2020-11-29 + inherit (libsForQt5.mauiPackages) communicator; # added 2022-05-17 + compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10 + concurrencykit = libck; # Added 2021-03 + connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08 + cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12 + cvs_fast_export = cvs-fast-export; # Added 2021-06-10 # these are for convenience, not for backward compat and shouldn't expire clang5Stdenv = lowPrio llvmPackages_5.stdenv; @@ -148,20 +157,8 @@ mapAliases ({ clang15Stdenv = lowPrio llvmPackages_15.stdenv; clang16Stdenv = lowPrio llvmPackages_16.stdenv; - clasp = clingo; # added 2022-12-22 - claws-mail-gtk3 = claws-mail; # Added 2021-07-10 - codimd = hedgedoc; # Added 2020-11-29 - inherit (libsForQt5.mauiPackages) communicator; # added 2022-05-17 - compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10 - concurrencykit = libck; # Added 2021-03 - connmanPackages = throw "'connmanPackages' was removed and their subpackages/attributes were promoted to top level."; # Added 2023-10-08 - - cups-kyodialog3 = cups-kyodialog; # Added 2022-11-12 - cvs_fast_export = cvs-fast-export; # Added 2021-06-10 - ### D ### - oroborus = throw "oroborus was removed, because it was abandoned years ago."; #Added 2023-09-10 dart_stable = dart; # Added 2020-01-15 dat = nodePackages.dat; deadpixi-sam = deadpixi-sam-unstable; @@ -610,11 +607,11 @@ mapAliases ({ openssl_3_0 = openssl_3; # Added 2022-06-27 openvpn_24 = throw "openvpn_24 has been removed, because it went EOL. 2.5.x or newer is still available"; # Added 2023-01-23 orchis = orchis-theme; # Added 2021-06-09 + oroborus = throw "oroborus was removed, because it was abandoned years ago."; #Added 2023-09-10 osxfuse = macfuse-stubs; # Added 2021-03-20 ### P ### - packet-cli = metal-cli; # Added 2021-10-25 palemoon = throw "palemoon has been dropped due to python2 being EOL and marked insecure. Use 'palemoon-bin' instead"; # Added 2023-05-18 paperless = paperless-ngx; # Added 2021-06-06 From 61fa1255f86bd12d81f81dc93391ee7365059647 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 9 Oct 2023 23:57:03 +0200 Subject: [PATCH 32/38] link to documentation on IFD in the Nix manual --- doc/languages-frameworks/rust.section.md | 2 +- lib/fileset/README.md | 2 +- pkgs/README.md | 12 ++---------- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 67e23cc74d4e..3bd8e1c76512 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -817,7 +817,7 @@ $ cargo test ## Using community maintained Rust toolchains {#using-community-maintained-rust-toolchains} ::: {.note} -Note: The following projects cannot be used within nixpkgs since [IFD](#ssec-import-from-derivation) is disallowed. +The following projects cannot be used within Nixpkgs since [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs. To package things that require Rust nightly, `RUSTC_BOOTSTRAP = true;` can sometimes be used as a hack. ::: diff --git a/lib/fileset/README.md b/lib/fileset/README.md index 1aed7efec4ca..d22158036926 100644 --- a/lib/fileset/README.md +++ b/lib/fileset/README.md @@ -176,7 +176,7 @@ File sets do not support Nix store paths in strings such as `"/nix/store/...-sou Arguments: - (+) Such paths are usually produced by derivations, which means `toSource` would either: - - Require IFD if `builtins.path` is used as the underlying primitive + - Require [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) if `builtins.path` is used as the underlying primitive - Require importing the entire `root` into the store such that derivations can be used to do the filtering - (+) The convenient path coercion like `union ./foo ./bar` wouldn't work for absolute paths, requiring more verbose alternate interfaces: - `let root = "/nix/store/...-source"; in union "${root}/foo" "${root}/bar"` diff --git a/pkgs/README.md b/pkgs/README.md index 5cc702475816..bfa7e611255d 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -368,19 +368,11 @@ See the Nixpkgs manual for more details on [standard meta-attributes](https://ni ### Import From Derivation -Import From Derivation (IFD) is disallowed in Nixpkgs for performance reasons: -[Hydra] evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical. - -[Hydra]: https://github.com/NixOS/hydra +[Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs for performance reasons: +[Hydra](https://github.com/NixOS/hydra) evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical. Import From Derivation can be worked around in some cases by committing generated intermediate files to version control and reading those instead. - - -See also [NixOS Wiki: Import From Derivation]. - -[NixOS Wiki: Import From Derivation]: https://nixos.wiki/wiki/Import_From_Derivation - ## Sources ### Fetching Sources From e04c25f55833810faae94c9f7732c73e3e0176bb Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 9 Oct 2023 10:36:45 -0300 Subject: [PATCH 33/38] gmic: migrate to by-name --- .../graphics/gmic/default.nix => by-name/gm/gmic/package.nix} | 0 pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) rename pkgs/{tools/graphics/gmic/default.nix => by-name/gm/gmic/package.nix} (100%) diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/by-name/gm/gmic/package.nix similarity index 100% rename from pkgs/tools/graphics/gmic/default.nix rename to pkgs/by-name/gm/gmic/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 123931d8533c..a7cb65823195 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5569,7 +5569,7 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) Cocoa; }; - gmic = callPackage ../tools/graphics/gmic { }; + cimg = callPackage ../development/libraries/cimg { }; gmic-qt = libsForQt5.callPackage ../tools/graphics/gmic-qt { }; @@ -20994,8 +20994,6 @@ with pkgs; cdo = callPackage ../development/libraries/cdo { }; - cimg = callPackage ../development/libraries/cimg { }; - cista = callPackage ../development/libraries/cista { }; cjose = callPackage ../development/libraries/cjose { }; From 59c39f5a1dce68517b1de1782a93a5990526a028 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 9 Oct 2023 10:38:06 -0300 Subject: [PATCH 34/38] cimg: migrate to by-name --- .../libraries/cimg/default.nix => by-name/ci/cimg/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{development/libraries/cimg/default.nix => by-name/ci/cimg/package.nix} (100%) diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/by-name/ci/cimg/package.nix similarity index 100% rename from pkgs/development/libraries/cimg/default.nix rename to pkgs/by-name/ci/cimg/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a7cb65823195..662acc019de4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5569,8 +5569,6 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) Cocoa; }; - cimg = callPackage ../development/libraries/cimg { }; - gmic-qt = libsForQt5.callPackage ../tools/graphics/gmic-qt { }; gpg-tui = callPackage ../tools/security/gpg-tui { From 4ef022b5de6c1018a20157428b1ef7c17eaeaa35 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 9 Oct 2023 11:20:23 -0300 Subject: [PATCH 35/38] cimg: 3.2.6 -> 3.3.1 --- pkgs/by-name/ci/cimg/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ci/cimg/package.nix b/pkgs/by-name/ci/cimg/package.nix index 4ef014bfa521..fdc8724af614 100644 --- a/pkgs/by-name/ci/cimg/package.nix +++ b/pkgs/by-name/ci/cimg/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cimg"; - version = "3.2.6"; + version = "3.3.1"; src = fetchFromGitHub { owner = "GreycLab"; repo = "CImg"; rev = "v.${finalAttrs.version}"; - hash = "sha256-HEqjvL16Ca3Al3I6VK50CU6zHFj9Nn/SAXXCfRU4rgo="; + hash = "sha256-Y3UPfBH+Sa1f529J1JXx8Ul0zi3b1mkOvo1tbxBSYRk="; }; outputs = [ "out" "doc" ]; From 88a52373d78a00445cdf1ddc2da8f81de5b7a549 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 9 Oct 2023 11:20:44 -0300 Subject: [PATCH 36/38] gmic: 3.2.6 -> 3.3.1 --- pkgs/by-name/gm/gmic/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gm/gmic/package.nix b/pkgs/by-name/gm/gmic/package.nix index 59022bcca505..d505faa8f4b6 100644 --- a/pkgs/by-name/gm/gmic/package.nix +++ b/pkgs/by-name/gm/gmic/package.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gmic"; - version = "3.2.6"; + version = "3.3.1"; outputs = [ "out" "lib" "dev" "man" ]; @@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "GreycLab"; repo = "gmic"; rev = "v.${finalAttrs.version}"; - hash = "sha256-kaI5rcAz3Cw/xzWgJhMRu/cQwVrvLRAPiB5BhzPMOHY="; + hash = "sha256-HagGabJ1jkg5SkMlr0Y5rGFw64jPW8QLuR0I2idM1N0="; }; # TODO: build this from source From f7edf57b886d3f0f52a224f993bce1d0cb740232 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 9 Oct 2023 11:24:04 -0300 Subject: [PATCH 37/38] gmic-qt: 3.2.6 -> 3.3.1 --- pkgs/tools/graphics/gmic-qt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/graphics/gmic-qt/default.nix b/pkgs/tools/graphics/gmic-qt/default.nix index cbaecdf0b8a4..0a2ebd770994 100644 --- a/pkgs/tools/graphics/gmic-qt/default.nix +++ b/pkgs/tools/graphics/gmic-qt/default.nix @@ -55,11 +55,11 @@ assert lib.assertMsg stdenv.mkDerivation (finalAttrs: { pname = "gmic-qt${lib.optionalString (variant != "standalone") "-${variant}"}"; - version = "3.2.6"; + version = "3.3.1"; src = fetchzip { url = "https://gmic.eu/files/source/gmic_${finalAttrs.version}.tar.gz"; - hash = "sha256-asB1YftHfdb7JG87WJ+ggyMCu7qb0f+aCanl5LLi9VE="; + hash = "sha256-d9FRNW/MXM9ZJ1xgIZvGTUPDDnHgTJU0DuWyPkzNAmo="; }; nativeBuildInputs = [ From 8a0223ec08595383ae66cb8de67b70ec28bbb270 Mon Sep 17 00:00:00 2001 From: Yureka Date: Tue, 10 Oct 2023 00:51:44 +0200 Subject: [PATCH 38/38] postgresql: reorganize musl patches (#260067) This also adds support for building postgresql 15 and 16 under musl. --- pkgs/servers/sql/postgresql/default.nix | 61 ++++++++++++++++++------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index a94712556a71..2c28371e1b1e 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -110,23 +110,50 @@ let locale = "${if stdenv.isDarwin then darwin.adv_cmds else lib.getBin stdenv.cc.libc}/bin/locale"; }) - ] ++ lib.optionals (stdenv'.hostPlatform.isMusl && atLeast "12") [ - (fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7"; - hash = "sha256-Yb6lMBDqeVP/BLMyIr5rmR6OkaVzo68cV/+cL2LOe/M="; - }) - ] ++ lib.optionals (stdenv'.hostPlatform.isMusl && atLeast "13") [ - (if olderThan "14" then - fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b"; - hash = "sha256-IOOx7/laDYhTz1Q1r6H1FSZBsHCgD4lHvia+/os7CCo="; - } - else - fetchpatch { - url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7"; - hash = "sha256-pnl+wM3/IUyq5iJzk+h278MDA9R0GQXQX8d4wJcB2z4="; - }) - ] ++ lib.optionals stdenv'.isLinux [ + ] ++ lib.optionals stdenv'.hostPlatform.isMusl ( + let + self = { + "12" = { + icu-collations-hack = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/testing/postgresql12/icu-collations-hack.patch?id=d5227c91adda59d4e7f55f13468f0314e8869174"; + hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg="; + }; + }; + "13" = { + inherit (self."14") icu-collations-hack; + disable-test-collate-icu-utf8 = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b"; + hash = "sha256-jS/qxezaiaKhkWeMCXwpz1SDJwUWn9tzN0uKaZ3Ph2Y="; + }; + }; + "14" = { + icu-collations-hack = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7"; + hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg="; + }; + disable-test-collate-icu-utf8 = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7"; + hash = "sha256-jXe23AxnFjEl+TZQm4R7rStk2Leo08ctxMNmu1xr5zM="; + }; + }; + "15" = { + icu-collations-hack = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql15/icu-collations-hack.patch?id=f424e934e6d076c4ae065ce45e734aa283eecb9c"; + hash = "sha256-HgtmhF4OJYU9macGJbTB9PjQi/yW7c3Akm3U0niWs8I="; + }; + }; + "16" = { + icu-collations-hack = fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/icu-collations-hack.patch?id=08a24be262339fd093e641860680944c3590238e"; + hash = "sha256-+urQdVIlADLdDPeT68XYv5rljhbK8M/7mPZn/cF+FT0="; + }; + }; + }; + + patchesForVersion = self.${lib.versions.major version} or (throw "no musl patches for postgresql ${version}"); + in + lib.attrValues patchesForVersion + ) ++ lib.optionals stdenv'.isLinux [ (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch) ];