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)

Changed files
+18 -12
nixos
doc
manual
release-notes
tests
pkgs
servers
sql
percona-server
tools
backup
percona-xtrabackup
top-level
+4
nixos/doc/manual/release-notes/rl-2405.section.md
···
- `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,
+1 -1
nixos/tests/mysql/common.nix
···
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)}";
}
+1 -2
nixos/tests/mysql/mysql.nix
···
}) 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)
+2 -2
pkgs/servers/sql/percona-server/8.0.x.nix pkgs/servers/sql/percona-server/lts.nix
···
}:
stdenv.mkDerivation (finalAttrs: {
-
pname = "percona-server";
+
pname = "percona-server_lts";
version = "8.0.36-28";
src = fetchurl {
···
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; {
+2 -2
pkgs/servers/sql/percona-server/8.3.nix pkgs/servers/sql/percona-server/innovation.nix
···
stdenv.mkDerivation (finalAttrs: {
-
pname = "percona-server";
+
pname = "percona-server_innovation";
version = "8.3.0-1";
src = fetchurl {
···
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;
};
pkgs/tools/backup/percona-xtrabackup/8_0.nix pkgs/tools/backup/percona-xtrabackup/lts.nix
pkgs/tools/backup/percona-xtrabackup/8_3.nix pkgs/tools/backup/percona-xtrabackup/innovation.nix
+2
pkgs/top-level/aliases.nix
···
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;
+6 -5
pkgs/top-level/all-packages.nix
···
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 { };