summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Schmidt <os@flyingcircus.io>2024-10-02 17:27:52 +0200
committerOliver Schmidt <os@flyingcircus.io>2024-10-15 22:09:38 +0200
commitd768a2d0f301e64e06943cffe6c1038cb1bfab3d (patch)
tree27cf46b0695b406679d2ece5645813a246f887b7
parentpercona-server, percona-xtrabackup: rework naming (diff)
downloadnixpkgs-d768a2d0f301e64e06943cffe6c1038cb1bfab3d.tar.gz
percona-server_8_4: init at 8.4.0-1
This is a new LTS release as well. (cherry picked from commit 712028ec9ae4d54b689f6df2ae43e8fdfd3b216b)
-rw-r--r--pkgs/servers/sql/percona-server/8_3.nix123
-rw-r--r--pkgs/servers/sql/percona-server/8_4.nix221
-rw-r--r--pkgs/servers/sql/percona-server/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix7
4 files changed, 226 insertions, 127 deletions
diff --git a/pkgs/servers/sql/percona-server/8_3.nix b/pkgs/servers/sql/percona-server/8_3.nix
deleted file mode 100644
index 27272410033f..000000000000
--- a/pkgs/servers/sql/percona-server/8_3.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.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.isLinux [
- numactl libtirpc systemd
- ] ++ lib.optionals stdenv.isDarwin [
- cctools CoreServices developer_cmds DarwinTools
- ]
- ++ lib.optional (stdenv.isLinux && withJemalloc) jemalloc
- ++ lib.optional (stdenv.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.isLinux [
- "-DWITH_SYSTEMD=1"
- "-DWITH_SYSTEMD_DEBUG=1"
- ]
- ++ lib.optional (stdenv.isLinux && withJemalloc) "-DWITH_JEMALLOC=1"
- ++ lib.optional (stdenv.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.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/servers/sql/percona-server/8_4.nix b/pkgs/servers/sql/percona-server/8_4.nix
new file mode 100644
index 000000000000..e2a1cb1c7e2d
--- /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.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.isLinux [
+ numactl
+ libtirpc
+ systemd
+ ]
+ ++ lib.optionals stdenv.isDarwin [
+ cctools
+ CoreServices
+ developer_cmds
+ DarwinTools
+ ]
+ ++ lib.optional (stdenv.isLinux && withJemalloc) jemalloc
+ ++ lib.optional (stdenv.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.isLinux [
+ "-DWITH_SYSTEMD=1"
+ "-DWITH_SYSTEMD_DEBUG=1"
+ ]
+ ++ lib.optional (stdenv.isLinux && withJemalloc) "-DWITH_JEMALLOC=1"
+ ++ lib.optional (stdenv.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.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.gpl2;
+ 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 6372fb3e169f..09b5cdc51374 100644
--- a/pkgs/servers/sql/percona-server/default.nix
+++ b/pkgs/servers/sql/percona-server/default.nix
@@ -8,7 +8,7 @@ pkgs: {
# newer versions cause linking failures against `libabsl_spinlock_wait`
protobuf = pkgs.protobuf_21;
};
- percona-server_8_3 = pkgs.callPackage ./8_3.nix {
+ percona-server_8_4 = pkgs.callPackage ./8_4.nix {
inherit (pkgs.darwin) cctools developer_cmds DarwinTools;
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
# newer versions cause linking failures against `libabsl_spinlock_wait`
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 762ceb752244..831151e3d10b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11602,9 +11602,10 @@ with pkgs;
perceptualdiff = callPackage ../tools/graphics/perceptualdiff { };
- inherit (import ../servers/sql/percona-server pkgs) percona-server_8_0 percona-server_8_3;
- percona-server_lts = percona-server_8_0;
- percona-server_innovation = percona-server_8_3;
+ inherit (import ../servers/sql/percona-server pkgs) percona-server_8_0 percona-server_8_4;
+ percona-server_lts = percona-server_8_4;
+ # temporarily, latest LTS and Innovation release are equal
+ percona-server_innovation = percona-server_8_4;
percona-server = percona-server_lts;
inherit (import ../tools/backup/percona-xtrabackup pkgs) percona-xtrabackup_8_0 percona-xtrabackup_8_3;
percona-xtrabackup_lts = percona-xtrabackup_8_0;