From 52506a2744f3a1a6dce813a1cdc8ac85fc1db5f9 Mon Sep 17 00:00:00 2001 From: Oliver Schmidt Date: Tue, 7 May 2024 21:01:30 +0200 Subject: [PATCH] percona: adapt upstream release model In accordance to the upstream release cycle, we now provide 2 flavours of the percona mysql ecosystem. The default is the LTS variant, additionally there is now the floating `percona-server_innovation` always pointing to the most recent regular release. - mentioned in release notes - adapted all depending tests and tools (xtrabackup) --- nixos/doc/manual/release-notes/rl-2405.section.md | 4 ++++ nixos/tests/mysql/common.nix | 2 +- nixos/tests/mysql/mysql.nix | 3 +-- .../sql/percona-server/{8.3.nix => innovation.nix} | 4 ++-- .../servers/sql/percona-server/{8.0.x.nix => lts.nix} | 4 ++-- .../percona-xtrabackup/{8_3.nix => innovation.nix} | 0 .../backup/percona-xtrabackup/{8_0.nix => lts.nix} | 0 pkgs/top-level/aliases.nix | 2 ++ pkgs/top-level/all-packages.nix | 11 ++++++----- 9 files changed, 18 insertions(+), 12 deletions(-) rename pkgs/servers/sql/percona-server/{8.3.nix => innovation.nix} (97%) rename pkgs/servers/sql/percona-server/{8.0.x.nix => lts.nix} (97%) rename pkgs/tools/backup/percona-xtrabackup/{8_3.nix => innovation.nix} (100%) rename pkgs/tools/backup/percona-xtrabackup/{8_0.nix => lts.nix} (100%) diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md index e545bda2fba3..430379242497 100644 --- a/nixos/doc/manual/release-notes/rl-2405.section.md +++ b/nixos/doc/manual/release-notes/rl-2405.section.md @@ -238,6 +238,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m - `unrar` was updated to v7. See [changelog](https://www.rarlab.com/unrar7notes.htm) for more information. +- `percona-server` now follows [the same two-fold release cycle](https://www.percona.com/blog/lts-and-innovation-releases-for-percona-server-for-mysql/) as Oracle MySQL and provides a *Long-Term-Support (LTS)* in parallel with a continuous-delivery *Innovation* release. `percona-server` defaults to `percona-server_lts`, will be backed by the same release branch throughout the lifetime of this stable NixOS release, and is still available under the versioned attribute `percona-server_8_0`. + The `percona-server_innovation` releases however have support periods shorter than the lifetime of this NixOS release and will continuously be updated to newer Percona releases. Note that Oracle considers the *Innovation* releases to be production-grade, but each release might include backwards-incompatible changes, even in its on-disk format. + The same release scheme is applied to the supporting `percona-xtrabackup` tool as well. + - `git-town` was updated from version 11 to 13. See the [changelog](https://github.com/git-town/git-town/blob/main/CHANGELOG.md#1300-2024-03-22) for breaking changes. - `k9s` was updated to v0.31. There have been various breaking changes in the config file format, diff --git a/nixos/tests/mysql/common.nix b/nixos/tests/mysql/common.nix index 2438164fe93c..ad54b0e00c1b 100644 --- a/nixos/tests/mysql/common.nix +++ b/nixos/tests/mysql/common.nix @@ -4,7 +4,7 @@ inherit (pkgs) mysql80; }; perconaPackages = { - inherit (pkgs) percona-server_8_0 percona-server_8_3; + inherit (pkgs) percona-server_lts percona-server_innovation; }; mkTestName = pkg: "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor pkg.version)}"; } diff --git a/nixos/tests/mysql/mysql.nix b/nixos/tests/mysql/mysql.nix index 064c9ebedb01..093da4f46aa1 100644 --- a/nixos/tests/mysql/mysql.nix +++ b/nixos/tests/mysql/mysql.nix @@ -146,7 +146,6 @@ in }) mariadbPackages) // (lib.mapAttrs (_: package: makeMySQLTest { inherit package; - # FIXME: packages are renamed soon anyways - #name = package.pname; + name = builtins.replaceStrings ["-"] ["_"] package.pname; hasMroonga = false; useSocketAuth = false; }) perconaPackages) diff --git a/pkgs/servers/sql/percona-server/8.3.nix b/pkgs/servers/sql/percona-server/innovation.nix similarity index 97% rename from pkgs/servers/sql/percona-server/8.3.nix rename to pkgs/servers/sql/percona-server/innovation.nix index 8bb9afb755e3..d19c17554226 100644 --- a/pkgs/servers/sql/percona-server/8.3.nix +++ b/pkgs/servers/sql/percona-server/innovation.nix @@ -12,7 +12,7 @@ assert !(withJemalloc && withTcmalloc); stdenv.mkDerivation (finalAttrs: { - pname = "percona-server"; + pname = "percona-server_innovation"; version = "8.3.0-1"; src = fetchurl { @@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: { connector-c = finalAttrs.finalPackage; server = finalAttrs.finalPackage; mysqlVersion = lib.versions.majorMinor finalAttrs.version; - tests = nixosTests.mysql.percona-server_8_3; + tests = nixosTests.mysql.percona-server_innovation; }; diff --git a/pkgs/servers/sql/percona-server/8.0.x.nix b/pkgs/servers/sql/percona-server/lts.nix similarity index 97% rename from pkgs/servers/sql/percona-server/8.0.x.nix rename to pkgs/servers/sql/percona-server/lts.nix index a2f4dd1c04e0..f8b13aa4180a 100644 --- a/pkgs/servers/sql/percona-server/8.0.x.nix +++ b/pkgs/servers/sql/percona-server/lts.nix @@ -6,7 +6,7 @@ }: stdenv.mkDerivation (finalAttrs: { - pname = "percona-server"; + pname = "percona-server_lts"; version = "8.0.36-28"; src = fetchurl { @@ -80,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: { connector-c = finalAttrs.finalPackage; server = finalAttrs.finalPackage; mysqlVersion = lib.versions.majorMinor finalAttrs.version; - tests = nixosTests.mysql.percona-server_8_0; + tests = nixosTests.mysql.percona-server_lts; }; meta = with lib; { diff --git a/pkgs/tools/backup/percona-xtrabackup/8_3.nix b/pkgs/tools/backup/percona-xtrabackup/innovation.nix similarity index 100% rename from pkgs/tools/backup/percona-xtrabackup/8_3.nix rename to pkgs/tools/backup/percona-xtrabackup/innovation.nix diff --git a/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/pkgs/tools/backup/percona-xtrabackup/lts.nix similarity index 100% rename from pkgs/tools/backup/percona-xtrabackup/8_0.nix rename to pkgs/tools/backup/percona-xtrabackup/lts.nix diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index f3fa9f35b9e6..c12e96189539 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -960,6 +960,8 @@ mapAliases ({ pdf2xml = throw "'pdf2xml' was removed: abandoned for years."; # Added 2023-10-22 peach = asouldocs; # Added 2022-08-28 pentablet-driver = xp-pen-g430-driver; # Added 2022-06-23 + percona-server_8_0 = percona-server_lts; # Added 2024-05-07 + percona-xtrabackup_8_0 = percona-xtrabackup_lts; # Added 2024-05-07 perldevel = throw "'perldevel' has been dropped due to lack of updates in nixpkgs and lack of consistent support for devel versions by 'perl-cross' releases, use 'perl' instead"; perldevelPackages = perldevel; pgadmin = pgadmin4; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8da8cde63605..06870578e7fb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11701,24 +11701,25 @@ with pkgs; perceptualdiff = callPackage ../tools/graphics/perceptualdiff { }; - percona-server_8_0 = callPackage ../servers/sql/percona-server/8.0.x.nix { + percona-server = percona-server_lts; + percona-server_lts = callPackage ../servers/sql/percona-server/lts.nix { inherit (darwin) cctools developer_cmds DarwinTools; inherit (darwin.apple_sdk.frameworks) CoreServices; boost = boost177; # Configure checks for specific version. icu = icu69; protobuf = protobuf_21; }; - percona-server_8_3 = callPackage ../servers/sql/percona-server/8.3.nix { + percona-server_innovation = callPackage ../servers/sql/percona-server/innovation.nix { inherit (darwin) cctools developer_cmds DarwinTools; inherit (darwin.apple_sdk.frameworks) CoreServices; # newer versions cause linking failures against `libabsl_spinlock_wait` protobuf = protobuf_21; }; - percona-xtrabackup = percona-xtrabackup_8_0; - percona-xtrabackup_8_0 = callPackage ../tools/backup/percona-xtrabackup/8_0.nix { + percona-xtrabackup = percona-xtrabackup_lts; + percona-xtrabackup_lts = callPackage ../tools/backup/percona-xtrabackup/lts.nix { boost = boost177; }; - percona-xtrabackup_8_3 = callPackage ../tools/backup/percona-xtrabackup/8_3.nix { }; + percona-xtrabackup_innovation = callPackage ../tools/backup/percona-xtrabackup/innovation.nix { }; pick = callPackage ../tools/misc/pick { };