From 6c7e768420039f5757c6ef4999f267ec18492c90 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 24 Sep 2023 09:51:26 +0200 Subject: [PATCH 1/5] netbox_3_5: introduce alias clears up ambiguity use that alias in tests Co-authored-by: Raito Bezarius --- nixos/modules/services/web-apps/netbox.nix | 4 ++-- nixos/tests/all-tests.nix | 2 +- nixos/tests/web-apps/netbox-upgrade.nix | 7 ++++--- pkgs/servers/web-apps/netbox/default.nix | 11 +++++++---- pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 6d89ffc2a7b7..067e58854388 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -74,9 +74,9 @@ in { package = lib.mkOption { type = lib.types.package; - default = if lib.versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox else pkgs.netbox_3_3; + default = if lib.versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox_3_5 else pkgs.netbox_3_3; defaultText = lib.literalExpression '' - if versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox else pkgs.netbox_3_3; + if versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox_3_5 else pkgs.netbox_3_3; ''; description = lib.mdDoc '' NetBox package to use. diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index a9bac3346b90..8880f42f66e6 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -529,7 +529,7 @@ in { netdata = handleTest ./netdata.nix {}; networking.networkd = handleTest ./networking.nix { networkd = true; }; networking.scripted = handleTest ./networking.nix { networkd = false; }; - netbox = handleTest ./web-apps/netbox.nix { inherit (pkgs) netbox; }; + netbox_3_5 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_5; }; netbox_3_3 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_3; }; netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {}; # TODO: put in networking.nix after the test becomes more complete diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index 602cf8d889d4..6b61d14d32ca 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -1,10 +1,11 @@ import ../make-test-python.nix ({ lib, pkgs, ... }: let oldNetbox = pkgs.netbox_3_3; + newNetbox = pkgs.netbox_3_5; in { name = "netbox-upgrade"; meta = with lib.maintainers; { - maintainers = [ minijackson ]; + maintainers = [ minijackson raitobezarius ]; }; nodes.machine = { config, ... }: { @@ -32,7 +33,7 @@ in { networking.firewall.allowedTCPPorts = [ 80 ]; - specialisation.upgrade.configuration.services.netbox.package = lib.mkForce pkgs.netbox; + specialisation.upgrade.configuration.services.netbox.package = lib.mkForce newNetbox; }; testScript = { nodes, ... }: @@ -43,7 +44,7 @@ in { (lib.concatStringsSep ".") ]; oldApiVersion = apiVersion oldNetbox.version; - newApiVersion = apiVersion pkgs.netbox.version; + newApiVersion = apiVersion newNetbox.version; in '' start_all() diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix index 433b974eb411..57f3dc3c9fa6 100644 --- a/pkgs/servers/web-apps/netbox/default.nix +++ b/pkgs/servers/web-apps/netbox/default.nix @@ -2,7 +2,9 @@ let generic = import ./generic.nix; in -{ +lib.fix (self: { + netbox = self.netbox_3_5; + netbox_3_3 = callPackage generic { version = "3.3.10"; hash = "sha256-MeOfTU5IxNDoUh7FyvwAQNRC/CE0R6p40WnlF+3RuxA="; @@ -25,7 +27,7 @@ in eol = true; }; - netbox = callPackage generic { + netbox_3_5 = callPackage generic { version = "3.5.9"; hash = "sha256-CJbcuCyTuihDXrObSGyJi2XF+zgWAwcJzjxtkX8pmKs="; extraPatches = [ @@ -33,9 +35,10 @@ in ./config.patch ]; tests = { - inherit (nixosTests) netbox netbox-upgrade; + netbox = nixosTests.netbox_3_5; + inherit (nixosTests) netbox-upgrade; }; maintainers = with lib.maintainers; [ minijackson n0emis raitobezarius ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7e08ae8d19e2..60d8fc83258e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11073,7 +11073,7 @@ with pkgs; netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { }; inherit (callPackage ../servers/web-apps/netbox { }) - netbox_3_3 netbox; + netbox netbox_3_3 netbox_3_5; netbox2netshot = callPackage ../tools/admin/netbox2netshot { }; From 3cc7cbce0398607fe4b77e0be4f278b0116b4f78 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 24 Sep 2023 10:06:08 +0200 Subject: [PATCH 2/5] netbox_3_6: init, mark 3_5 as EOL use it for the upgrade test increase tests memory, otherwise NetBox gets OOM killed Co-authored-by: Raito Bezarius --- nixos/tests/all-tests.nix | 1 + nixos/tests/web-apps/netbox-upgrade.nix | 5 +++-- nixos/tests/web-apps/netbox.nix | 1 + pkgs/servers/web-apps/netbox/default.nix | 18 +++++++++++++++++- pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 8880f42f66e6..2d44cf924d4f 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -531,6 +531,7 @@ in { networking.scripted = handleTest ./networking.nix { networkd = false; }; netbox_3_5 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_5; }; netbox_3_3 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_3; }; + netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; }; netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {}; # TODO: put in networking.nix after the test becomes more complete networkingProxy = handleTest ./networking-proxy.nix {}; diff --git a/nixos/tests/web-apps/netbox-upgrade.nix b/nixos/tests/web-apps/netbox-upgrade.nix index 6b61d14d32ca..b5403eb678bc 100644 --- a/nixos/tests/web-apps/netbox-upgrade.nix +++ b/nixos/tests/web-apps/netbox-upgrade.nix @@ -1,6 +1,6 @@ import ../make-test-python.nix ({ lib, pkgs, ... }: let - oldNetbox = pkgs.netbox_3_3; - newNetbox = pkgs.netbox_3_5; + oldNetbox = pkgs.netbox_3_5; + newNetbox = pkgs.netbox_3_6; in { name = "netbox-upgrade"; @@ -9,6 +9,7 @@ in { }; nodes.machine = { config, ... }: { + virtualisation.memorySize = 2048; services.netbox = { enable = true; package = oldNetbox; diff --git a/nixos/tests/web-apps/netbox.nix b/nixos/tests/web-apps/netbox.nix index 30de74f1886c..233f16a8fe0d 100644 --- a/nixos/tests/web-apps/netbox.nix +++ b/nixos/tests/web-apps/netbox.nix @@ -16,6 +16,7 @@ in import ../make-test-python.nix ({ lib, pkgs, netbox, ... }: { }; nodes.machine = { config, ... }: { + virtualisation.memorySize = 2048; services.netbox = { enable = true; package = netbox; diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix index 57f3dc3c9fa6..a85f3b1b228d 100644 --- a/pkgs/servers/web-apps/netbox/default.nix +++ b/pkgs/servers/web-apps/netbox/default.nix @@ -3,7 +3,7 @@ let generic = import ./generic.nix; in lib.fix (self: { - netbox = self.netbox_3_5; + netbox = self.netbox_3_6; netbox_3_3 = callPackage generic { version = "3.3.10"; @@ -39,6 +39,22 @@ lib.fix (self: { inherit (nixosTests) netbox-upgrade; }; + maintainers = with lib.maintainers; [ minijackson n0emis raitobezarius ]; + eol = true; + }; + + netbox_3_6 = callPackage generic { + version = "3.6.2"; + hash = "sha256-iKYzeiaJhF8T+qbft6fS1PjHyPxxQm86om9YpAGnvYE="; + extraPatches = [ + # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL + ./config.patch + ]; + tests = { + netbox = nixosTests.netbox_3_6; + inherit (nixosTests) netbox-upgrade; + }; + maintainers = with lib.maintainers; [ minijackson n0emis raitobezarius ]; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 60d8fc83258e..f9e256b732c3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11073,7 +11073,7 @@ with pkgs; netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { }; inherit (callPackage ../servers/web-apps/netbox { }) - netbox netbox_3_3 netbox_3_5; + netbox netbox_3_3 netbox_3_5 netbox_3_6; netbox2netshot = callPackage ../tools/admin/netbox2netshot { }; From 828f0446f53b2c58ed45af3a8792125d5c8833b7 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 24 Sep 2023 10:07:28 +0200 Subject: [PATCH 3/5] nixos/netbox: use netbox_3_6 for stateVersion>=23.11 --- nixos/doc/manual/release-notes/rl-2311.section.md | 2 ++ nixos/modules/services/web-apps/netbox.nix | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 7b3a17e546f2..1d391671f599 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -119,6 +119,8 @@ - A list of all extras (and the extras enabled by default) can be found at the [option's reference for `services.matrix-synapse.extras`](#opt-services.matrix-synapse.extras). - In some cases (e.g. for running synapse workers) it was necessary to re-use the `PYTHONPATH` of `matrix-synapse.service`'s environment to have all plugins available. This isn't necessary anymore, instead `config.services.matrix-synapse.package` can be used as it points to the wrapper with properly configured `extras` and also all plugins defined via [`services.matrix-synapse.plugins`](#opt-services.matrix-synapse.plugins) available. This is also the reason for why the option is read-only now, it's supposed to be set by the module only. +- `netbox` was updated to 3.6. NixOS' `services.netbox.package` still defaults to 3.5 if `stateVersion` is earlier than 23.11. Please review upstream's breaking changes [for 3.6.0](https://github.com/netbox-community/netbox/releases/tag/v3.6.0) and upgrade NetBox by changing `services.netbox.package`. Database migrations will be run automatically. + - `etcd` has been updated to 3.5, you will want to read the [3.3 to 3.4](https://etcd.io/docs/v3.5/upgrades/upgrade_3_4/) and [3.4 to 3.5](https://etcd.io/docs/v3.5/upgrades/upgrade_3_5/) upgrade guides - `gitlab` installations created or updated between versions \[15.11.0, 15.11.2] have an incorrect database schema. This will become a problem when upgrading to `gitlab` >=16.2.0. A workaround for affected users can be found in the [GitLab docs](https://docs.gitlab.com/ee/update/versions/gitlab_16_changes.html#undefined-column-error-upgrading-to-162-or-later). diff --git a/nixos/modules/services/web-apps/netbox.nix b/nixos/modules/services/web-apps/netbox.nix index 067e58854388..8ba1852848e5 100644 --- a/nixos/modules/services/web-apps/netbox.nix +++ b/nixos/modules/services/web-apps/netbox.nix @@ -74,9 +74,18 @@ in { package = lib.mkOption { type = lib.types.package; - default = if lib.versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox_3_5 else pkgs.netbox_3_3; + default = + if lib.versionAtLeast config.system.stateVersion "23.11" + then pkgs.netbox_3_6 + else if lib.versionAtLeast config.system.stateVersion "23.05" + then pkgs.netbox_3_5 + else pkgs.netbox_3_3; defaultText = lib.literalExpression '' - if versionAtLeast config.system.stateVersion "23.05" then pkgs.netbox_3_5 else pkgs.netbox_3_3; + if lib.versionAtLeast config.system.stateVersion "23.11" + then pkgs.netbox_3_6 + else if lib.versionAtLeast config.system.stateVersion "23.05" + then pkgs.netbox_3_5 + else pkgs.netbox_3_3; ''; description = lib.mdDoc '' NetBox package to use. From 541d1eef67e946e31cf2e8c6adbbe1bd46c4ca1c Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 24 Sep 2023 10:09:07 +0200 Subject: [PATCH 4/5] netbox_3_3: remove should be, by now, unused by everyone Co-authored-by: Raito Bezarius --- nixos/tests/all-tests.nix | 1 - pkgs/servers/web-apps/netbox/default.nix | 24 +----------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 4 files changed, 3 insertions(+), 25 deletions(-) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2d44cf924d4f..b4c9fccb23ae 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -530,7 +530,6 @@ in { networking.networkd = handleTest ./networking.nix { networkd = true; }; networking.scripted = handleTest ./networking.nix { networkd = false; }; netbox_3_5 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_5; }; - netbox_3_3 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_3; }; netbox_3_6 = handleTest ./web-apps/netbox.nix { netbox = pkgs.netbox_3_6; }; netbox-upgrade = handleTest ./web-apps/netbox-upgrade.nix {}; # TODO: put in networking.nix after the test becomes more complete diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix index a85f3b1b228d..c90e19380383 100644 --- a/pkgs/servers/web-apps/netbox/default.nix +++ b/pkgs/servers/web-apps/netbox/default.nix @@ -1,32 +1,10 @@ -{ lib, nixosTests, callPackage, fetchpatch }: +{ lib, nixosTests, callPackage, }: let generic = import ./generic.nix; in lib.fix (self: { netbox = self.netbox_3_6; - netbox_3_3 = callPackage generic { - version = "3.3.10"; - hash = "sha256-MeOfTU5IxNDoUh7FyvwAQNRC/CE0R6p40WnlF+3RuxA="; - extraPatches = [ - # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL - ./config_3_3.patch - ./graphql-3_2_0.patch - # fix compatibility ith django 4.1 - (fetchpatch { - url = "https://github.com/netbox-community/netbox/pull/10341/commits/ce6bf9e5c1bc08edc80f6ea1e55cf1318ae6e14b.patch"; - sha256 = "sha256-aCPQp6k7Zwga29euASAd+f13hIcZnIUu3RPAzNPqgxc="; - }) - ]; - - tests = { - netbox = nixosTests.netbox_3_3; - inherit (nixosTests) netbox-upgrade; - }; - maintainers = with lib.maintainers; [ n0emis raitobezarius ]; - eol = true; - }; - netbox_3_5 = callPackage generic { version = "3.5.9"; hash = "sha256-CJbcuCyTuihDXrObSGyJi2XF+zgWAwcJzjxtkX8pmKs="; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ecebbf9591ab..80035ceebfd6 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1183,6 +1183,7 @@ mapAliases ({ nccl_cudatoolkit_11 = throw "nccl_cudatoolkit_11 has been renamed to cudaPackages_11.nccl"; # Added 2022-04-04 net_snmp = throw "'net_snmp' has been renamed to/replaced by 'net-snmp'"; # Converted to throw 2023-09-10 + netbox_3_3 = throw "netbox 3.3 series has been removed as it was EOL"; # Added 2023-09-02 nagiosPluginsOfficial = monitoring-plugins; navit = throw "navit has been removed from nixpkgs, due to being unmaintained"; # Added 2021-06-07 ncat = throw "'ncat' has been renamed to/replaced by 'nmap'"; # Converted to throw 2022-02-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9e256b732c3..9892fa9f70a7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11073,7 +11073,7 @@ with pkgs; netbootxyz-efi = callPackage ../tools/misc/netbootxyz-efi { }; inherit (callPackage ../servers/web-apps/netbox { }) - netbox netbox_3_3 netbox_3_5 netbox_3_6; + netbox netbox_3_5 netbox_3_6; netbox2netshot = callPackage ../tools/admin/netbox2netshot { }; From 88ecbc2b98297ad979fb803885437435d25185d3 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Tue, 26 Sep 2023 22:42:13 +0200 Subject: [PATCH 5/5] netbox: 3.6.2 -> 3.6.3 --- pkgs/servers/web-apps/netbox/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix index c90e19380383..ab648d7daa7b 100644 --- a/pkgs/servers/web-apps/netbox/default.nix +++ b/pkgs/servers/web-apps/netbox/default.nix @@ -22,8 +22,8 @@ lib.fix (self: { }; netbox_3_6 = callPackage generic { - version = "3.6.2"; - hash = "sha256-iKYzeiaJhF8T+qbft6fS1PjHyPxxQm86om9YpAGnvYE="; + version = "3.6.3"; + hash = "sha256-8Xir2Gvwh2cllHu5qVAzumuH0lknMMtjd8BuFuuf9A0="; extraPatches = [ # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL ./config.patch