summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2024-10-14 12:40:48 +0200
committerGitHub <noreply@github.com>2024-10-14 12:40:48 +0200
commit782b08ba3d28fe62c9015790819bb2bf108e8e74 (patch)
tree6d2692c7a5d550ae88f1bae998eb981b5f177750
parentwire-desktop: add CVE-2024-6775 to knownVulnerabilities (#348266) (diff)
parentpercona: correct licensing information (diff)
downloadnixpkgs-782b08ba3d28fe62c9015790819bb2bf108e8e74.tar.gz
Merge: percona: update packages, init 8.4 (#346027)
-rw-r--r--.git-blame-ignore-revs3
-rw-r--r--nixos/doc/manual/release-notes/rl-2411.section.md5
-rw-r--r--nixos/tests/mysql/common.nix2
-rw-r--r--pkgs/servers/sql/percona-server/8_0.nix (renamed from pkgs/servers/sql/percona-server/lts.nix)145
-rw-r--r--pkgs/servers/sql/percona-server/8_4.nix221
-rw-r--r--pkgs/servers/sql/percona-server/default.nix7
-rw-r--r--pkgs/servers/sql/percona-server/innovation.nix123
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/8_0.nix20
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/8_4.nix18
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/default.nix5
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/generic.nix87
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/innovation.nix15
-rw-r--r--pkgs/tools/backup/percona-xtrabackup/lts.nix17
-rw-r--r--pkgs/top-level/aliases.nix6
-rw-r--r--pkgs/top-level/all-packages.nix6
15 files changed, 473 insertions, 207 deletions
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index 7cdd0738a1fd..4714b843f203 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -186,3 +186,6 @@ cffc27daf06c77c0d76bc35d24b929cb9d68c3c9
# fetchurl: nixfmt-rfc-style
ce21e97a1f20dee15da85c084f9d1148d84f853b
+
+# percona: apply nixfmt
+8d14fa2886fec877690c6d28cfcdba4503dbbcea
diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md
index 49c7cebc275b..2081aea73f2d 100644
--- a/nixos/doc/manual/release-notes/rl-2411.section.md
+++ b/nixos/doc/manual/release-notes/rl-2411.section.md
@@ -232,6 +232,11 @@
Also be aware that if you have set additional options in `services.wstunnel.{clients,servers}.<name>.extraArgs`,
that those might have been removed or modified upstream.
+- `percona-server_8_4` and `mysql84` now have password authentication via the deprecated `mysql_native_password` disabled by default. This authentication plugin can be enabled via a CLI argument again, for detailed instructions and alternative authentication methods [see upstream documentation](https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html). The config file directive `default_authentication_plugin` has been removed.
+
+- Percona has decided not to follow the LTS/ Innovation release scheme of upstream MySQL and thus [will only create releases for MySQL LTS versions](https://www.percona.com/blog/no-mysql-9-x-innovation-releases-from-percona/). Hence, the package names `percona-server_lts`, `percona-server_innovation`, `percona-xtrabackup_lts` and `percona-xtrabackup_innovation` are deprecated.
+ - `percona-server` and `percona-server_lts` now point towards the new LTS release `percona-server_8_4`. The previous LTS continues to be supported and is available as `percona-server_8_0`. The same is true for the supporting `percona-xtrabackup` tooling.
+
- `clang-tools_<version>` packages have been moved into `llvmPackages_<version>` (i.e. `clang-tools_18` is now `llvmPackages_18.clang-tools`).
- For convenience, the top-level `clang-tools` attribute remains and is now bound to `llvmPackages.clang-tools`.
- Top-level `clang_tools_<version>` attributes are now aliases; these will be removed in a future release.
diff --git a/nixos/tests/mysql/common.nix b/nixos/tests/mysql/common.nix
index ad54b0e00c1b..079eff163b1c 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_lts percona-server_innovation;
+ inherit (pkgs) percona-server_8_0 percona-server_8_4;
};
mkTestName = pkg: "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor pkg.version)}";
}
diff --git a/pkgs/servers/sql/percona-server/lts.nix b/pkgs/servers/sql/percona-server/8_0.nix
index 352b0239c429..1d1a64e31643 100644
--- a/pkgs/servers/sql/percona-server/lts.nix
+++ b/pkgs/servers/sql/percona-server/8_0.nix
@@ -1,24 +1,63 @@
-{ lib, stdenv, fetchurl, bison, cmake, pkg-config
-, boost, icu, libedit, libevent, lz4, ncurses, openssl, perl, protobuf, re2, readline, zlib, zstd, libfido2
-, numactl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests
-, coreutils, procps, gnused, gnugrep, hostname, makeWrapper
-# Percona-specific deps
-, cyrus_sasl, gnumake, openldap
+{
+ lib,
+ stdenv,
+ fetchurl,
+ bison,
+ cmake,
+ pkg-config,
+ boost,
+ icu,
+ libedit,
+ libevent,
+ lz4,
+ ncurses,
+ openssl,
+ perl,
+ protobuf,
+ re2,
+ readline,
+ zlib,
+ zstd,
+ libfido2,
+ numactl,
+ cctools,
+ CoreServices,
+ developer_cmds,
+ libtirpc,
+ rpcsvc-proto,
+ curl,
+ DarwinTools,
+ nixosTests,
+ coreutils,
+ procps,
+ gnused,
+ gnugrep,
+ hostname,
+ makeWrapper,
+ # Percona-specific deps
+ cyrus_sasl,
+ gnumake,
+ openldap,
}:
stdenv.mkDerivation (finalAttrs: {
- pname = "percona-server_lts";
- version = "8.0.36-28";
+ pname = "percona-server";
+ version = "8.0.37-29";
src = fetchurl {
url = "https://www.percona.com/downloads/Percona-Server-8.0/Percona-Server-${finalAttrs.version}/source/tarball/percona-server-${finalAttrs.version}.tar.gz";
- hash = "sha256-iktEvZz3mjjmJ16PX51OjSwwiFS3H9W/XRco//Q6aEQ=";
+ hash = "sha256-zZgq3AxCRYdte3dTUJiuMvVGdl9U01s8jxcAqDxZiNM=";
};
nativeBuildInputs = [
- bison cmake pkg-config makeWrapper
+ bison
+ cmake
+ pkg-config
+ makeWrapper
# required for scripts/CMakeLists.txt
- coreutils gnugrep procps
+ coreutils
+ gnugrep
+ procps
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ rpcsvc-proto ];
patches = [
@@ -36,16 +75,41 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "make --" "${gnumake}/bin/make --"
'';
- buildInputs = [
- boost (curl.override { inherit openssl; }) icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib
- zstd libfido2 openldap perl cyrus_sasl
- ] ++ lib.optionals stdenv.hostPlatform.isLinux [
- numactl libtirpc
- ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
- cctools CoreServices developer_cmds DarwinTools
- ];
+ buildInputs =
+ [
+ boost
+ (curl.override { inherit openssl; })
+ icu
+ libedit
+ libevent
+ lz4
+ ncurses
+ openssl
+ protobuf
+ re2
+ readline
+ zlib
+ zstd
+ libfido2
+ openldap
+ perl
+ cyrus_sasl
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isLinux [
+ numactl
+ libtirpc
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ cctools
+ CoreServices
+ developer_cmds
+ DarwinTools
+ ];
- outputs = [ "out" "static" ];
+ outputs = [
+ "out"
+ "static"
+ ];
cmakeFlags = [
# Percona-specific flags.
@@ -78,11 +142,39 @@ stdenv.mkDerivation (finalAttrs: {
so=${stdenv.hostPlatform.extensions.sharedLibrary}
ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so
- wrapProgram $out/bin/mysqld_safe --prefix PATH : ${lib.makeBinPath [ coreutils procps gnugrep gnused hostname ]}
- wrapProgram $out/bin/mysql_config --prefix PATH : ${lib.makeBinPath [ coreutils gnused ]}
- wrapProgram $out/bin/ps_mysqld_helper --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
- wrapProgram $out/bin/ps-admin --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
- wrapProgram $out/bin/mysqld_multi --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
+ wrapProgram $out/bin/mysqld_safe --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ procps
+ gnugrep
+ gnused
+ hostname
+ ]
+ }
+ wrapProgram $out/bin/mysql_config --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnused
+ ]
+ }
+ wrapProgram $out/bin/ps_mysqld_helper --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
+ wrapProgram $out/bin/ps-admin --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
+ wrapProgram $out/bin/mysqld_multi --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
'';
passthru = {
@@ -98,8 +190,9 @@ stdenv.mkDerivation (finalAttrs: {
description = ''
A free, fully compatible, enhanced, open source drop-in replacement for
MySQL® that provides superior performance, scalability and instrumentation.
+ Long-term support release.
'';
- license = licenses.gpl2Plus;
+ license = licenses.gpl2Only;
maintainers = teams.flyingcircus.members;
platforms = platforms.unix;
};
diff --git a/pkgs/servers/sql/percona-server/8_4.nix b/pkgs/servers/sql/percona-server/8_4.nix
new file mode 100644
index 000000000000..0b68f84d4b12
--- /dev/null
+++ b/pkgs/servers/sql/percona-server/8_4.nix
@@ -0,0 +1,221 @@
+{
+ lib,
+ stdenv,
+ fetchurl,
+ bison,
+ cmake,
+ pkg-config,
+ boost,
+ icu,
+ libedit,
+ libevent,
+ lz4,
+ ncurses,
+ openssl,
+ perl,
+ protobuf,
+ re2,
+ readline,
+ zlib,
+ zstd,
+ libfido2,
+ numactl,
+ cctools,
+ CoreServices,
+ developer_cmds,
+ libtirpc,
+ rpcsvc-proto,
+ curl,
+ DarwinTools,
+ nixosTests,
+ coreutils,
+ procps,
+ gnused,
+ gnugrep,
+ hostname,
+ makeWrapper,
+ systemd,
+ # Percona-specific deps
+ cyrus_sasl,
+ gnumake,
+ openldap,
+ # optional: different malloc implementations
+ withJemalloc ? false,
+ withTcmalloc ? false,
+ jemalloc,
+ gperftools,
+}:
+
+assert !(withJemalloc && withTcmalloc);
+
+stdenv.mkDerivation (finalAttrs: {
+ pname = "percona-server";
+ version = "8.4.0-1";
+
+ src = fetchurl {
+ url = "https://downloads.percona.com/downloads/Percona-Server-${lib.versions.majorMinor finalAttrs.version}/Percona-Server-${finalAttrs.version}/source/tarball/percona-server-${finalAttrs.version}.tar.gz";
+ hash = "sha256-76PXXqTNBVsD7RX2vhp7RyESiFpJL0h0zG9ucNfy3uQ=";
+ };
+
+ nativeBuildInputs = [
+ bison
+ cmake
+ pkg-config
+ makeWrapper
+ # required for scripts/CMakeLists.txt
+ coreutils
+ gnugrep
+ procps
+ ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ rpcsvc-proto ];
+
+ patches = [
+ ./no-force-outline-atomics.patch # Do not force compilers to turn on -moutline-atomics switch
+ ];
+
+ ## NOTE: MySQL upstream frequently twiddles the invocations of libtool. When updating, you might proactively grep for libtool references.
+ postPatch = ''
+ substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
+ substituteInPlace cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
+ # The rocksdb setup script is called with `env -i` and cannot find anything in PATH.
+ patchShebangs storage/rocksdb/get_rocksdb_files.sh
+ substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace mktemp ${coreutils}/bin/mktemp
+ substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "rm $MKFILE" "${coreutils}/bin/rm $MKFILE"
+ substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "make --" "${gnumake}/bin/make --"
+ '';
+
+ buildInputs =
+ [
+ boost
+ (curl.override { inherit openssl; })
+ icu
+ libedit
+ libevent
+ lz4
+ ncurses
+ openssl
+ protobuf
+ re2
+ readline
+ zlib
+ zstd
+ libfido2
+ openldap
+ perl
+ cyrus_sasl
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isLinux [
+ numactl
+ libtirpc
+ systemd
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ cctools
+ CoreServices
+ developer_cmds
+ DarwinTools
+ ]
+ ++ lib.optional (stdenv.hostPlatform.isLinux && withJemalloc) jemalloc
+ ++ lib.optional (stdenv.hostPlatform.isLinux && withTcmalloc) gperftools;
+
+ outputs = [
+ "out"
+ "static"
+ ];
+
+ cmakeFlags =
+ [
+ # Percona-specific flags.
+ "-DPORTABLE=1"
+ "-DWITH_LDAP=system"
+ "-DROCKSDB_DISABLE_AVX2=1"
+ "-DROCKSDB_DISABLE_MARCH_NATIVE=1"
+
+ # Flags taken from mysql package.
+ "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin.
+ "-DWITH_ROUTER=OFF" # It may be packaged separately.
+ "-DWITH_SYSTEM_LIBS=ON"
+ "-DWITH_UNIT_TESTS=OFF"
+ "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
+ "-DMYSQL_DATADIR=/var/lib/mysql"
+ "-DINSTALL_INFODIR=share/mysql/docs"
+ "-DINSTALL_MANDIR=share/man"
+ "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
+ "-DINSTALL_INCLUDEDIR=include/mysql"
+ "-DINSTALL_DOCREADMEDIR=share/mysql"
+ "-DINSTALL_SUPPORTFILESDIR=share/mysql"
+ "-DINSTALL_MYSQLSHAREDIR=share/mysql"
+ "-DINSTALL_MYSQLTESTDIR="
+ "-DINSTALL_DOCDIR=share/mysql/docs"
+ "-DINSTALL_SHAREDIR=share/mysql"
+
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isLinux [
+ "-DWITH_SYSTEMD=1"
+ "-DWITH_SYSTEMD_DEBUG=1"
+ ]
+ ++ lib.optional (stdenv.hostPlatform.isLinux && withJemalloc) "-DWITH_JEMALLOC=1"
+ ++ lib.optional (stdenv.hostPlatform.isLinux && withTcmalloc) "-DWITH_TCMALLOC=1";
+
+ postInstall =
+ ''
+ moveToOutput "lib/*.a" $static
+ so=${stdenv.hostPlatform.extensions.sharedLibrary}
+ ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so
+
+ wrapProgram $out/bin/mysqld_safe --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ procps
+ gnugrep
+ gnused
+ hostname
+ ]
+ }
+ wrapProgram $out/bin/mysql_config --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnused
+ ]
+ }
+ wrapProgram $out/bin/ps_mysqld_helper --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
+ wrapProgram $out/bin/ps-admin --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
+ ''
+ + lib.optionalString stdenv.hostPlatform.isDarwin ''
+ wrapProgram $out/bin/mysqld_multi --prefix PATH : ${
+ lib.makeBinPath [
+ coreutils
+ gnugrep
+ ]
+ }
+ '';
+
+ passthru = {
+ client = finalAttrs.finalPackage;
+ connector-c = finalAttrs.finalPackage;
+ server = finalAttrs.finalPackage;
+ mysqlVersion = lib.versions.majorMinor finalAttrs.version;
+ tests = nixosTests.mysql.percona-server_innovation;
+ };
+
+ meta = with lib; {
+ homepage = "https://www.percona.com/software/mysql-database/percona-server";
+ description = ''
+ A free, fully compatible, enhanced, open source drop-in replacement for
+ MySQL® that provides superior performance, scalability and instrumentation.
+ Long-term support release.
+ '';
+ license = licenses.gpl2Only;
+ maintainers = teams.flyingcircus.members;
+ platforms = platforms.unix;
+ };
+})
diff --git a/pkgs/servers/sql/percona-server/default.nix b/pkgs/servers/sql/percona-server/default.nix
index 002765a04cd9..aaac48de68ff 100644
--- a/pkgs/servers/sql/percona-server/default.nix
+++ b/pkgs/servers/sql/percona-server/default.nix
@@ -1,15 +1,18 @@
pkgs: {
- percona-server_lts = pkgs.callPackage ./lts.nix {
+ # old lts
+ percona-server_8_0 = pkgs.callPackage ./8_0.nix {
inherit (pkgs.darwin) developer_cmds DarwinTools;
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
boost = pkgs.boost177; # Configure checks for specific version.
icu = pkgs.icu69;
+ # newer versions cause linking failures against `libabsl_spinlock_wait`
protobuf = pkgs.protobuf_21;
};
- percona-server_innovation = pkgs.callPackage ./innovation.nix {
+ percona-server_8_4 = pkgs.callPackage ./8_4.nix {
inherit (pkgs.darwin) developer_cmds DarwinTools;
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
# newer versions cause linking failures against `libabsl_spinlock_wait`
protobuf = pkgs.protobuf_21;
};
+ percona-server = pkgs.percona-server_8_4;
}
diff --git a/pkgs/servers/sql/percona-server/innovation.nix b/pkgs/servers/sql/percona-server/innovation.nix
deleted file mode 100644
index 61b2ff7bb4a1..000000000000
--- a/pkgs/servers/sql/percona-server/innovation.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-{ lib, stdenv, fetchurl, bison, cmake, pkg-config
-, boost, icu, libedit, libevent, lz4, ncurses, openssl, perl, protobuf, re2, readline, zlib, zstd, libfido2
-, numactl, cctools, CoreServices, developer_cmds, libtirpc, rpcsvc-proto, curl, DarwinTools, nixosTests
-, coreutils, procps, gnused, gnugrep, hostname, makeWrapper
-, systemd
-# Percona-specific deps
-, cyrus_sasl, gnumake, openldap
-# optional: different malloc implementations
-, withJemalloc ? false, withTcmalloc ? false, jemalloc, gperftools
-}:
-
-assert !(withJemalloc && withTcmalloc);
-
-
-stdenv.mkDerivation (finalAttrs: {
- pname = "percona-server_innovation";
- version = "8.3.0-1";
-
- src = fetchurl {
- url = "https://downloads.percona.com/downloads/percona-distribution-mysql-ps/percona-distribution-mysql-ps-${builtins.head (lib.strings.split "-" finalAttrs.version)}/source/tarball/percona-server-${finalAttrs.version}.tar.gz";
- hash = "sha256-GeuifzqCkStmb4qYa8147XBHvMogYwfsn0FyHdO4WEg";
- };
-
- nativeBuildInputs = [
- bison cmake pkg-config makeWrapper
- # required for scripts/CMakeLists.txt
- coreutils gnugrep procps
- ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ rpcsvc-proto ];
-
- patches = [
- ./no-force-outline-atomics.patch # Do not force compilers to turn on -moutline-atomics switch
- ];
-
- ## NOTE: MySQL upstream frequently twiddles the invocations of libtool. When updating, you might proactively grep for libtool references.
- postPatch = ''
- substituteInPlace cmake/libutils.cmake --replace /usr/bin/libtool libtool
- substituteInPlace cmake/os/Darwin.cmake --replace /usr/bin/libtool libtool
- # The rocksdb setup script is called with `env -i` and cannot find anything in PATH.
- patchShebangs storage/rocksdb/get_rocksdb_files.sh
- substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace mktemp ${coreutils}/bin/mktemp
- substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "rm $MKFILE" "${coreutils}/bin/rm $MKFILE"
- substituteInPlace storage/rocksdb/get_rocksdb_files.sh --replace "make --" "${gnumake}/bin/make --"
- '';
-
- buildInputs = [
- boost (curl.override { inherit openssl; }) icu libedit libevent lz4 ncurses openssl protobuf re2 readline zlib
- zstd libfido2 openldap perl cyrus_sasl
- ] ++ lib.optionals stdenv.hostPlatform.isLinux [
- numactl libtirpc systemd
- ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
- cctools CoreServices developer_cmds DarwinTools
- ]
- ++ lib.optional (stdenv.hostPlatform.isLinux && withJemalloc) jemalloc
- ++ lib.optional (stdenv.hostPlatform.isLinux && withTcmalloc) gperftools;
-
- outputs = [ "out" "static" ];
-
- cmakeFlags = [
- # Percona-specific flags.
- "-DPORTABLE=1"
- "-DWITH_LDAP=system"
- "-DROCKSDB_DISABLE_AVX2=1"
- "-DROCKSDB_DISABLE_MARCH_NATIVE=1"
-
- # Flags taken from mysql package.
- "-DFORCE_UNSUPPORTED_COMPILER=1" # To configure on Darwin.
- "-DWITH_ROUTER=OFF" # It may be packaged separately.
- "-DWITH_SYSTEM_LIBS=ON"
- "-DWITH_UNIT_TESTS=OFF"
- "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
- "-DMYSQL_DATADIR=/var/lib/mysql"
- "-DINSTALL_INFODIR=share/mysql/docs"
- "-DINSTALL_MANDIR=share/man"
- "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
- "-DINSTALL_INCLUDEDIR=include/mysql"
- "-DINSTALL_DOCREADMEDIR=share/mysql"
- "-DINSTALL_SUPPORTFILESDIR=share/mysql"
- "-DINSTALL_MYSQLSHAREDIR=share/mysql"
- "-DINSTALL_MYSQLTESTDIR="
- "-DINSTALL_DOCDIR=share/mysql/docs"
- "-DINSTALL_SHAREDIR=share/mysql"
-
-
- ] ++ lib.optionals stdenv.hostPlatform.isLinux [
- "-DWITH_SYSTEMD=1"
- "-DWITH_SYSTEMD_DEBUG=1"
- ]
- ++ lib.optional (stdenv.hostPlatform.isLinux && withJemalloc) "-DWITH_JEMALLOC=1"
- ++ lib.optional (stdenv.hostPlatform.isLinux && withTcmalloc) "-DWITH_TCMALLOC=1";
-
- postInstall = ''
- moveToOutput "lib/*.a" $static
- so=${stdenv.hostPlatform.extensions.sharedLibrary}
- ln -s libmysqlclient$so $out/lib/libmysqlclient_r$so
-
- wrapProgram $out/bin/mysqld_safe --prefix PATH : ${lib.makeBinPath [ coreutils procps gnugrep gnused hostname ]}
- wrapProgram $out/bin/mysql_config --prefix PATH : ${lib.makeBinPath [ coreutils gnused ]}
- wrapProgram $out/bin/ps_mysqld_helper --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
- wrapProgram $out/bin/ps-admin --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
- '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
- wrapProgram $out/bin/mysqld_multi --prefix PATH : ${lib.makeBinPath [ coreutils gnugrep ]}
- '';
-
- passthru = {
- client = finalAttrs.finalPackage;
- connector-c = finalAttrs.finalPackage;
- server = finalAttrs.finalPackage;
- mysqlVersion = lib.versions.majorMinor finalAttrs.version;
- tests = nixosTests.mysql.percona-server_innovation;
- };
-
-
- meta = with lib; {
- homepage = "https://www.percona.com/software/mysql-database/percona-server";
- description = ''
- A free, fully compatible, enhanced, open source drop-in replacement for
- MySQL® that provides superior performance, scalability and instrumentation.
- '';
- license = licenses.gpl2;
- maintainers = teams.flyingcircus.members;
- platforms = platforms.unix;
- };
-})
diff --git a/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/pkgs/tools/backup/percona-xtrabackup/8_0.nix
new file mode 100644
index 000000000000..c9822f1ec84c
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/8_0.nix
@@ -0,0 +1,20 @@
+{ callPackage, ... }@args:
+
+callPackage ./generic.nix (
+ args
+ // {
+ version = "8.0.35-31";
+ hash = "sha256-KHfgSi9bQlqsi5aDRBlSpdZgMfOrAwHK51k8KhQ9Udg=";
+
+ # includes https://github.com/Percona-Lab/libkmip.git
+ fetchSubmodules = true;
+
+ extraPatches = [
+ ./abi-check.patch
+ ];
+
+ extraPostInstall = ''
+ rm -r "$out"/docs
+ '';
+ }
+)
diff --git a/pkgs/tools/backup/percona-xtrabackup/8_4.nix b/pkgs/tools/backup/percona-xtrabackup/8_4.nix
new file mode 100644
index 000000000000..0bfcbb12e236
--- /dev/null
+++ b/pkgs/tools/backup/percona-xtrabackup/8_4.nix
@@ -0,0 +1,18 @@
+{ callPackage, ... }@args:
+
+callPackage ./generic.nix (
+ args
+ // {
+ version = "8.4.0-1";
+ hash = "sha256-2tWRRYH0P0HZsWTxeuvDeVWvDwqjjdv6J7YiZwoTKtM=";
+
+ # includes https://github.com/Percona-Lab/libkmip.git
+ fetchSubmodules = true;
+
+ extraPatches =
+ [
+ ];
+
+ extraPostInstall = '''';
+ }
+)
diff --git a/pkgs/tools/backup/percona-xtrabackup/default.nix b/pkgs/tools/backup/percona-xtrabackup/default.nix
index f3466dc9f165..9fd2e627c17e 100644
--- a/pkgs/tools/backup/percona-xtrabackup/default.nix
+++ b/pkgs/tools/backup/percona-xtrabackup/default.nix
@@ -1,6 +1,7 @@
pkgs: {
- percona-xtrabackup_lts = pkgs.callPackage ./lts.nix {
+ percona-xtrabackup_8_0 = pkgs.callPackage ./8_0.nix {
boost = pkgs.boost177;
};
- percona-xtrabackup_innovation = pkgs.callPackage ./innovation.nix { };
+ percona-xtrabackup_8_4 = pkgs.callPackage ./8_4.nix { };
+ percona-xtrabackup = pkgs.percona-xtrabackup_8_4;
}
diff --git a/pkgs/tools/backup/percona-xtrabackup/generic.nix b/pkgs/tools/backup/percona-xtrabackup/generic.nix
index d81dee6f97f6..3f4cdd86cf10 100644
--- a/pkgs/tools/backup/percona-xtrabackup/generic.nix
+++ b/pkgs/tools/backup/percona-xtrabackup/generic.nix
@@ -1,8 +1,36 @@
-{ lib, stdenv, fetchFromGitHub, bison, boost, cmake, makeWrapper, pkg-config
-, curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpg-error, lz4
-, ncurses, numactl, openssl, procps, protobuf, valgrind, xxd, zlib
-, perlPackages
-, version, hash, fetchSubmodules ? false, extraPatches ? [], extraPostInstall ? "", ...
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ bison,
+ boost,
+ cmake,
+ makeWrapper,
+ pkg-config,
+ curl,
+ cyrus_sasl,
+ libaio,
+ libedit,
+ libev,
+ libevent,
+ libgcrypt,
+ libgpg-error,
+ lz4,
+ ncurses,
+ numactl,
+ openssl,
+ procps,
+ protobuf,
+ valgrind,
+ xxd,
+ zlib,
+ perlPackages,
+ version,
+ hash,
+ fetchSubmodules ? false,
+ extraPatches ? [ ],
+ extraPostInstall ? "",
+ ...
}:
stdenv.mkDerivation (finalAttrs: {
@@ -16,12 +44,39 @@ stdenv.mkDerivation (finalAttrs: {
inherit hash fetchSubmodules;
};
- nativeBuildInputs = [ bison boost cmake makeWrapper pkg-config ];
+ nativeBuildInputs = [
+ bison
+ boost
+ cmake
+ makeWrapper
+ pkg-config
+ ];
- buildInputs = [
- (curl.override { inherit openssl; }) cyrus_sasl libaio libedit libevent libev libgcrypt libgpg-error lz4
- ncurses numactl openssl procps protobuf valgrind xxd zlib
- ] ++ (with perlPackages; [ perl DBI DBDmysql ]);
+ buildInputs =
+ [
+ (curl.override { inherit openssl; })
+ cyrus_sasl
+ libaio
+ libedit
+ libevent
+ libev
+ libgcrypt
+ libgpg-error
+ lz4
+ ncurses
+ numactl
+ openssl
+ procps
+ protobuf
+ valgrind
+ xxd
+ zlib
+ ]
+ ++ (with perlPackages; [
+ perl
+ DBI
+ DBDmysql
+ ]);
patches = extraPatches;
@@ -42,17 +97,19 @@ stdenv.mkDerivation (finalAttrs: {
"-DWITH_MAN_PAGES=OFF"
];
- postInstall = ''
- wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB
- rm -r "$out"/lib/plugin/debug
- '' + extraPostInstall;
+ postInstall =
+ ''
+ wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB
+ rm -r "$out"/lib/plugin/debug
+ ''
+ + extraPostInstall;
passthru.mysqlVersion = lib.versions.majorMinor finalAttrs.version;
meta = with lib; {
description = "Non-blocking backup tool for MySQL";
homepage = "http://www.percona.com/software/percona-xtrabackup";
- license = licenses.lgpl2;
+ license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = teams.flyingcircus.members ++ [ maintainers.izorkin ];
};
diff --git a/pkgs/tools/backup/percona-xtrabackup/innovation.nix b/pkgs/tools/backup/percona-xtrabackup/innovation.nix
deleted file mode 100644
index 003df8aa6b50..000000000000
--- a/pkgs/tools/backup/percona-xtrabackup/innovation.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
- version = "8.3.0-1";
- hash = "sha256-qZM2AFhpwrN0BR+DdozYn7s2I+c1tWpD5QvppTEfGEY=";
-
- # includes https://github.com/Percona-Lab/libkmip.git
- fetchSubmodules = true;
-
- extraPatches = [
- ];
-
- extraPostInstall = ''
- '';
-})
diff --git a/pkgs/tools/backup/percona-xtrabackup/lts.nix b/pkgs/tools/backup/percona-xtrabackup/lts.nix
deleted file mode 100644
index fbb4c045d776..000000000000
--- a/pkgs/tools/backup/percona-xtrabackup/lts.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
- version = "8.0.35-30";
- hash = "sha256-yagqBKU057Gk5pEyT2R3c5DtxNG/+TSPenFgbxUiHPo=";
-
- # includes https://github.com/Percona-Lab/libkmip.git
- fetchSubmodules = true;
-
- extraPatches = [
- ./abi-check.patch
- ];
-
- extraPostInstall = ''
- rm -r "$out"/docs
- '';
-})
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 3fd0f241dc6f..3a78a94a5623 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -1245,9 +1245,11 @@ mapAliases {
pcsxr = throw "pcsxr was removed as it has been abandoned for over a decade; please use DuckStation, Mednafen, or the RetroArch PCSX ReARMed core"; # Added 2024-08-20
pdf2xml = throw "'pdf2xml' was removed: abandoned for years."; # Added 2023-10-22
peach = asouldocs; # Added 2022-08-28
+ percona-server_innovation = lib.warn "Percona upstream has decided to skip all Innovation releases of MySQL and only release LTS versions." percona-server; # Added 2024-10-13
+ percona-server_lts = percona-server; # Added 2024-10-13
+ percona-xtrabackup_innovation = lib.warn "Percona upstream has decided to skip all Innovation releases of MySQL and only release LTS versions." percona-xtrabackup; # Added 2024-10-13
+ percona-xtrabackup_lts = percona-xtrabackup; # Added 2024-10-13
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;
petrinizer = throw "'petrinizer' has been removed, as it was broken and unmaintained"; # added 2024-05-09
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index de8e84293055..491f6c861dea 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11002,10 +11002,8 @@ with pkgs;
perceptualdiff = callPackage ../tools/graphics/perceptualdiff { };
- inherit (import ../servers/sql/percona-server pkgs) percona-server_lts percona-server_innovation;
- percona-server = percona-server_lts;
- inherit (import ../tools/backup/percona-xtrabackup pkgs) percona-xtrabackup_lts percona-xtrabackup_innovation;
- percona-xtrabackup = percona-xtrabackup_lts;
+ inherit (import ../servers/sql/percona-server pkgs) percona-server_8_0 percona-server_8_4 percona-server;
+ inherit (import ../tools/backup/percona-xtrabackup pkgs) percona-xtrabackup_8_0 percona-xtrabackup_8_4 percona-xtrabackup;
pick = callPackage ../tools/misc/pick { };