diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 98fb0e9b8b9f..6298007c42cd 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -773,6 +773,24 @@
due to upstream dropping support.
+
+
+ mysql57 has been removed. Please update to
+ mysql80 or mariadb. See
+ the
+ upgrade
+ guide for more information.
+
+
+
+
+ Consequently, cqrlog and
+ amorok now use mariadb
+ instead of mysql57 for their embedded
+ databases. Running mysql_upgrade may be
+ neccesary.
+
+
k3s supports clusterInit
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 688ef6c13ce7..3e24c3da9480 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -246,6 +246,9 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
- `k3s` no longer supports docker as runtime due to upstream dropping support.
+- `mysql57` has been removed. Please update to `mysql80` or `mariadb`. See the [upgrade guide](https://mariadb.com/kb/en/upgrading-from-mysql-to-mariadb/) for more information.
+
+- Consequently, `cqrlog` and `amorok` now use `mariadb` instead of `mysql57` for their embedded databases. Running `mysql_upgrade` may be neccesary.
- `k3s` supports `clusterInit` option, and it is enabled by default, for servers.
- `stylua` no longer accepts `lua52Support` and `luauSupport` overrides, use `features` instead, which defaults to `[ "lua54" "luau" ]`.
diff --git a/nixos/tests/mysql/common.nix b/nixos/tests/mysql/common.nix
index 040d360b6d99..c0e8f7e3b5d2 100644
--- a/nixos/tests/mysql/common.nix
+++ b/nixos/tests/mysql/common.nix
@@ -4,7 +4,7 @@
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
});
mysqlPackages = {
- inherit (pkgs) mysql57 mysql80;
+ inherit (pkgs) mysql80;
};
mkTestName = pkg: "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor pkg.version)}";
}
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index 4e5706495902..276b3d6c7bc2 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -3,7 +3,8 @@
, qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
, karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
, fftw, phonon, plasma-framework, threadweaver, breeze-icons
-, curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+, curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mariadb-embedded, pcre, snappy, taglib, taglib_extras
+, pmdk, numactl
}:
mkDerivation rec {
@@ -23,7 +24,7 @@ mkDerivation rec {
qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
phonon plasma-framework threadweaver
- curl fftw ffmpeg gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+ curl fftw ffmpeg gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mariadb-embedded
pcre snappy taglib taglib_extras breeze-icons
];
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index 27f3e53d3e20..ba82f2518c5c 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -39,6 +39,7 @@
, dbus
, bash
, coreutils
+, zstd
}:
let
@@ -129,6 +130,7 @@ in stdenv.mkDerivation rec {
libepoxy
at-spi2-core
dbus
+ zstd
];
postPatch = ''
diff --git a/pkgs/applications/radio/cqrlog/default.nix b/pkgs/applications/radio/cqrlog/default.nix
index d86a08f3a1b0..a167642dd7e7 100644
--- a/pkgs/applications/radio/cqrlog/default.nix
+++ b/pkgs/applications/radio/cqrlog/default.nix
@@ -11,7 +11,7 @@
, libX11
, pango
, hamlib
-, mysql57
+, mariadb
, tqsl
, xdg-utils
, xplanet
@@ -55,8 +55,8 @@ stdenv.mkDerivation rec {
--replace "/usr/bin/rigctld" "${hamlib}/bin/rigctld"
# Order is important
substituteInPlace src/dData.pas \
- --replace "/usr/bin/mysqld_safe" "${mysql57}/bin/mysqld_safe" \
- --replace "/usr/bin/mysqld" "${mysql57}/bin/mysqld"
+ --replace "/usr/bin/mysqld_safe" "${mariadb}/bin/mysqld_safe" \
+ --replace "/usr/bin/mysqld" "${mariadb}/bin/mysqld"
# To be fail when I need to patch a new hardcoded binary
! grep -C src -RC0 "/usr"
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
];
propagatedBuildInputs = [
hamlib
- mysql57
+ mariadb
tqsl
xdg-utils
xplanet
@@ -87,8 +87,10 @@ stdenv.mkDerivation rec {
];
postFixup = ''
- libmysqlclient=$(find "${mysql57}/lib" -name "libmysqlclient.so.*" | tail -n1)
- patchelf --add-needed "$libmysqlclient" "$out/bin/.cqrlog-wrapped"
+ libmysqlclient=$(find "${mariadb.client}/lib" -name "libmysqlclient.so" | tail -n1)
+ patchelf --add-needed "libmysqlclient.so" \
+ --add-rpath "$(dirname "$libmysqlclient")" \
+ "$out/bin/.cqrlog-wrapped"
'';
meta = with lib; {
diff --git a/pkgs/servers/mail/dspam/default.nix b/pkgs/servers/mail/dspam/default.nix
index e2388e6a9491..31f149f1dd42 100644
--- a/pkgs/servers/mail/dspam/default.nix
+++ b/pkgs/servers/mail/dspam/default.nix
@@ -1,7 +1,7 @@
{ stdenv, lib, fetchurl, makeWrapper
, gawk, gnused, gnugrep, coreutils, which
, perlPackages
-, withMySQL ? false, zlib, mysql57
+, withMySQL ? false, zlib, mariadb-connector-c
, withPgSQL ? false, postgresql
, withSQLite ? false, sqlite
, withDB ? false, db
@@ -25,13 +25,21 @@ in stdenv.mkDerivation rec {
url = "mirror://sourceforge/dspam/dspam/${pname}-${version}/${pname}-${version}.tar.gz";
sha256 = "1acklnxn1wvc7abn31l3qdj8q6k13s51k5gv86vka7q20jb5cxmf";
};
+ patches = [
+ # https://gist.github.com/WhiteAnthrax/613136c76882e0ead3cb3bdad6b3d551
+ ./mariadb.patch
+ ];
buildInputs = [ perlPackages.perl ]
- ++ lib.optionals withMySQL [ zlib mysql57.connector-c ]
+ ++ lib.optionals withMySQL [ zlib mariadb-connector-c.out ]
++ lib.optional withPgSQL postgresql
++ lib.optional withSQLite sqlite
++ lib.optional withDB db;
nativeBuildInputs = [ makeWrapper ];
+ # patch out libmysql >= 5 check, since mariadb-connector is at 3.x
+ postPatch = ''
+ sed -i 's/atoi(m) >= 5/1/g' configure m4/mysql_drv.m4
+ '';
configureFlags = [
"--with-storage-driver=${drivers}"
@@ -50,7 +58,10 @@ in stdenv.mkDerivation rec {
"--enable-preferences-extension"
"--enable-long-usernames"
"--enable-external-lookup"
- ] ++ lib.optional withMySQL "--with-mysql-includes=${mysql57.connector-c}/include/mysql"
+ ] ++ lib.optionals withMySQL [
+ "--with-mysql-includes=${mariadb-connector-c.dev}/include/mysql"
+ "--with-mysql-libraries=${mariadb-connector-c.out}/lib/mysql"
+ ]
++ lib.optional withPgSQL "--with-pgsql-libraries=${postgresql.lib}/lib";
# Workaround build failure on -fno-common toolchains like upstream
diff --git a/pkgs/servers/mail/dspam/mariadb.patch b/pkgs/servers/mail/dspam/mariadb.patch
new file mode 100644
index 000000000000..5f3d8277d943
--- /dev/null
+++ b/pkgs/servers/mail/dspam/mariadb.patch
@@ -0,0 +1,42 @@
+diff -ur dspam-3.10.2.orig/configure dspam-3.10.2/configure
+--- dspam-3.10.2.orig/configure 2012-04-24 02:53:49.000000000 +0900
++++ dspam-3.10.2/configure 2019-05-24 01:59:06.557890494 +0900
+@@ -13280,7 +13280,7 @@
+ #include
+ #include
+ #include
+- #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_ERROR_FIRST)
++ #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_MIN_ERROR)
+ /* Success */
+ #else
+ #error Unsupported version of MySQL
+@@ -13293,7 +13293,7 @@
+
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_ERROR_FIRST defined)
++as_fn_error $? "Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_MIN_ERROR defined)
+ See \`config.log' for more details" "$LINENO" 5; }
+ mysql_headers_success=no
+
+diff -ur dspam-3.10.2.orig/m4/mysql_drv.m4 dspam-3.10.2/m4/mysql_drv.m4
+--- dspam-3.10.2.orig/m4/mysql_drv.m4 2011-08-17 07:38:30.000000000 +0900
++++ dspam-3.10.2/m4/mysql_drv.m4 2019-05-24 02:00:08.301217506 +0900
+@@ -80,7 +80,7 @@
+ #include
+ #include
+ #include
+- #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_ERROR_FIRST)
++ #if defined(PROTOCOL_VERSION) && defined(ER_LOCK_DEADLOCK) && defined(ER_LOCK_WAIT_TIMEOUT) && defined(ER_LOCK_OR_ACTIVE_TRANSACTION) && defined(CR_MIN_ERROR)
+ /* Success */
+ #else
+ #error Unsupported version of MySQL
+@@ -88,7 +88,7 @@
+ ]])],
+ [],
+ [
+- AC_MSG_FAILURE([Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_ERROR_FIRST defined)])
++ AC_MSG_FAILURE([Unsupported version of MySQL (no PROTOCOL_VERSION or ER_LOCK_DEADLOCK or ER_LOCK_WAIT_TIMEOUT or ER_LOCK_OR_ACTIVE_TRANSACTION or CR_MIN_ERROR defined)])
+ mysql_headers_success=no
+ ])
+ fi
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index f75fada0d8a0..2796906fe03e 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -1,273 +1,281 @@
-{ lib, stdenv, fetchurl, nixosTests, buildPackages
-# Native buildInputs components
-, bison, boost, cmake, fixDarwinDylibNames, flex, makeWrapper, pkg-config
-# Common components
-, curl, libiconv, ncurses, openssl, openssl_1_1, pcre, pcre2
-, libkrb5, libaio, liburing, systemd
-, CoreServices, cctools, perl
-, jemalloc, less, libedit
-# Server components
-, bzip2, lz4, lzo, snappy, xz, zlib, zstd
-, cracklib, judy, libevent, libxml2
-, linux-pam, numactl, pmdk
-, fmt_8
-, withStorageMroonga ? true, kytea, libsodium, msgpack, zeromq
-, withStorageRocks ? true
-}:
-
let
+ # shared across all versions
+ generic =
+ { version, hash
+ , lib, stdenv, fetchurl, nixosTests, buildPackages
+ # Native buildInputs components
+ , bison, boost, cmake, fixDarwinDylibNames, flex, makeWrapper, pkg-config
+ # Common components
+ , curl, libiconv, ncurses, openssl, openssl_1_1, pcre, pcre2
+ , libkrb5, libaio, liburing, systemd
+ , CoreServices, cctools, perl
+ , jemalloc, less, libedit
+ # Server components
+ , bzip2, lz4, lzo, snappy, xz, zlib, zstd
+ , cracklib, judy, libevent, libxml2
+ , linux-pam, numactl, pmdk
+ , fmt_8
+ , withStorageMroonga ? true, kytea, libsodium, msgpack, zeromq
+ , withStorageRocks ? true
+ , withEmbedded ? false
+ }:
+ let
+ libExt = stdenv.hostPlatform.extensions.sharedLibrary;
-libExt = stdenv.hostPlatform.extensions.sharedLibrary;
+ mytopEnv = buildPackages.perl.withPackages (p: with p; [ DBDmysql DBI TermReadKey ]);
-mytopEnv = buildPackages.perl.withPackages (p: with p; [ DBDmysql DBI TermReadKey ]);
+ common = rec { # attributes common to both builds
+ inherit version;
-mariadbPackage = packageSettings: (server packageSettings) // {
- client = client packageSettings; # MariaDB Client
- server = server packageSettings; # MariaDB Server
-};
+ src = fetchurl {
+ url = "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz";
+ inherit hash;
+ };
-commonOptions = packageSettings: rec { # attributes common to both builds
- inherit (packageSettings) version;
+ outputs = [ "out" "man" ];
- src = fetchurl {
- url = "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz";
- inherit (packageSettings) hash;
- };
+ nativeBuildInputs = [ cmake pkg-config ]
+ ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames
+ ++ lib.optional (!stdenv.hostPlatform.isDarwin) makeWrapper;
- nativeBuildInputs = [ cmake pkg-config ]
- ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames
- ++ lib.optional (!stdenv.hostPlatform.isDarwin) makeWrapper;
+ buildInputs = [
+ libiconv ncurses zlib
+ ] ++ lib.optionals stdenv.hostPlatform.isLinux ([ libkrb5 systemd ]
+ ++ (if (lib.versionOlder version "10.6") then [ libaio ] else [ liburing ]))
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices cctools perl libedit ]
+ ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ jemalloc ]
+ ++ (if (lib.versionOlder version "10.5") then [ pcre ] else [ pcre2 ])
+ ++ (if (lib.versionOlder version "10.6")
+ then [ openssl_1_1 (curl.override { openssl = openssl_1_1; }) ]
+ else [ openssl curl ]);
- buildInputs = [
- libiconv ncurses zlib
- ] ++ (packageSettings.extraBuildInputs or [])
- ++ lib.optionals stdenv.hostPlatform.isLinux ([ libkrb5 systemd ]
- ++ (if (lib.versionOlder version "10.6") then [ libaio ] else [ liburing ]))
- ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices cctools perl libedit ]
- ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ jemalloc ]
- ++ (if (lib.versionOlder version "10.5") then [ pcre ] else [ pcre2 ])
- ++ (if (lib.versionOlder version "10.6")
- then [ openssl_1_1 (curl.override { openssl = openssl_1_1; }) ]
- else [ openssl curl ]);
+ prePatch = ''
+ sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt
+ '';
- prePatch = ''
- sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt
- '';
+ patches = [
+ ./patch/cmake-includedir.patch
+ ]
+ # Fixes a build issue as documented on
+ # https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073
+ ++ lib.optional (!stdenv.hostPlatform.isLinux && lib.versionAtLeast version "10.6") ./patch/macos-MDEV-26769-regression-fix.patch;
- patches = [
- ./patch/cmake-includedir.patch
- ]
- # Fixes a build issue as documented on
- # https://jira.mariadb.org/browse/MDEV-26769?focusedCommentId=206073&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-206073
- ++ lib.optional (!stdenv.hostPlatform.isLinux && lib.versionAtLeast version "10.6") ./patch/macos-MDEV-26769-regression-fix.patch;
+ cmakeFlags = [
+ "-DBUILD_CONFIG=mysql_release"
+ "-DMANUFACTURER=nixos.org"
+ "-DDEFAULT_CHARSET=utf8mb4"
+ "-DDEFAULT_COLLATION=utf8mb4_unicode_ci"
+ "-DSECURITY_HARDENED=ON"
- cmakeFlags = [
- "-DBUILD_CONFIG=mysql_release"
- "-DMANUFACTURER=nixos.org"
- "-DDEFAULT_CHARSET=utf8mb4"
- "-DDEFAULT_COLLATION=utf8mb4_unicode_ci"
- "-DSECURITY_HARDENED=ON"
+ "-DINSTALL_UNIX_ADDRDIR=/run/mysqld/mysqld.sock"
+ "-DINSTALL_BINDIR=bin"
+ "-DINSTALL_DOCDIR=share/doc/mysql"
+ "-DINSTALL_DOCREADMEDIR=share/doc/mysql"
+ "-DINSTALL_INCLUDEDIR=include/mysql"
+ "-DINSTALL_LIBDIR=lib"
+ "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
+ "-DINSTALL_INFODIR=share/mysql/docs"
+ "-DINSTALL_MANDIR=share/man"
+ "-DINSTALL_MYSQLSHAREDIR=share/mysql"
+ "-DINSTALL_SCRIPTDIR=bin"
+ "-DINSTALL_SUPPORTFILESDIR=share/doc/mysql"
+ "-DINSTALL_MYSQLTESTDIR=OFF"
+ "-DINSTALL_SQLBENCHDIR=OFF"
+ "-DINSTALL_PAMDIR=share/pam/lib/security"
+ "-DINSTALL_PAMDATADIR=share/pam/etc/security"
- "-DINSTALL_UNIX_ADDRDIR=/run/mysqld/mysqld.sock"
- "-DINSTALL_BINDIR=bin"
- "-DINSTALL_DOCDIR=share/doc/mysql"
- "-DINSTALL_DOCREADMEDIR=share/doc/mysql"
- "-DINSTALL_INCLUDEDIR=include/mysql"
- "-DINSTALL_LIBDIR=lib"
- "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
- "-DINSTALL_INFODIR=share/mysql/docs"
- "-DINSTALL_MANDIR=share/man"
- "-DINSTALL_MYSQLSHAREDIR=share/mysql"
- "-DINSTALL_SCRIPTDIR=bin"
- "-DINSTALL_SUPPORTFILESDIR=share/doc/mysql"
- "-DINSTALL_MYSQLTESTDIR=OFF"
- "-DINSTALL_SQLBENCHDIR=OFF"
- "-DINSTALL_PAMDIR=share/pam/lib/security"
- "-DINSTALL_PAMDATADIR=share/pam/etc/security"
+ "-DWITH_ZLIB=system"
+ "-DWITH_SSL=system"
+ "-DWITH_PCRE=system"
+ "-DWITH_SAFEMALLOC=OFF"
+ "-DWITH_UNIT_TESTS=OFF"
+ "-DEMBEDDED_LIBRARY=OFF"
+ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ # On Darwin without sandbox, CMake will find the system java and attempt to build with java support, but
+ # then it will fail during the actual build. Let's just disable the flag explicitly until someone decides
+ # to pass in java explicitly.
+ "-DCONNECT_WITH_JDBC=OFF"
+ "-DCURSES_LIBRARY=${ncurses.out}/lib/libncurses.dylib"
+ ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+ # revisit this if nixpkgs supports any architecture whose stack grows upwards
+ "-DSTACK_DIRECTION=-1"
+ "-DCMAKE_CROSSCOMPILING_EMULATOR=${stdenv.hostPlatform.emulator buildPackages}"
+ ];
- "-DWITH_ZLIB=system"
- "-DWITH_SSL=system"
- "-DWITH_PCRE=system"
- "-DWITH_SAFEMALLOC=OFF"
- "-DWITH_UNIT_TESTS=OFF"
- "-DEMBEDDED_LIBRARY=OFF"
- ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
- # On Darwin without sandbox, CMake will find the system java and attempt to build with java support, but
- # then it will fail during the actual build. Let's just disable the flag explicitly until someone decides
- # to pass in java explicitly.
- "-DCONNECT_WITH_JDBC=OFF"
- "-DCURSES_LIBRARY=${ncurses.out}/lib/libncurses.dylib"
- ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
- # revisit this if nixpkgs supports any architecture whose stack grows upwards
- "-DSTACK_DIRECTION=-1"
- "-DCMAKE_CROSSCOMPILING_EMULATOR=${stdenv.hostPlatform.emulator buildPackages}"
- ];
+ postInstall = lib.optionalString (!withEmbedded) ''
+ # Remove Development components. Need to use libmysqlclient.
+ rm "$out"/lib/mysql/plugin/daemon_example.ini
+ rm "$out"/lib/{libmariadb.a,libmariadbclient.a,libmysqlclient.a,libmysqlclient_r.a,libmysqlservices.a}
+ rm -f "$out"/bin/{mariadb-config,mariadb_config,mysql_config}
+ rm -r $out/include
+ rm -r $out/lib/pkgconfig
+ '';
- postInstall = ''
- # Remove Development components. Need to use libmysqlclient.
- rm "$out"/lib/mysql/plugin/daemon_example.ini
- rm "$out"/lib/{libmariadb.a,libmariadbclient.a,libmysqlclient.a,libmysqlclient_r.a,libmysqlservices.a}
- rm -f "$out"/bin/{mariadb-config,mariadb_config,mysql_config}
- rm -r $out/include
- rm -r $out/lib/pkgconfig
- '';
+ # perlPackages.DBDmysql is broken on darwin
+ postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ wrapProgram $out/bin/mytop --set PATH ${lib.makeBinPath [ less ncurses ]}
+ '';
- # perlPackages.DBDmysql is broken on darwin
- postFixup = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
- wrapProgram $out/bin/mytop --set PATH ${lib.makeBinPath [ less ncurses ]}
- '';
+ passthru.tests = let
+ testVersion = "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor version)}";
+ in {
+ mariadb-galera-rsync = nixosTests.mariadb-galera.${testVersion};
+ mysql = nixosTests.mysql.${testVersion};
+ mysql-autobackup = nixosTests.mysql-autobackup.${testVersion};
+ mysql-backup = nixosTests.mysql-backup.${testVersion};
+ mysql-replication = nixosTests.mysql-replication.${testVersion};
+ };
- passthru.tests = let
- testVersion = "mariadb_${builtins.replaceStrings ["."] [""] (lib.versions.majorMinor (packageSettings.version))}";
- in {
- mariadb-galera-rsync = nixosTests.mariadb-galera.${testVersion};
- mysql = nixosTests.mysql.${testVersion};
- mysql-autobackup = nixosTests.mysql-autobackup.${testVersion};
- mysql-backup = nixosTests.mysql-backup.${testVersion};
- mysql-replication = nixosTests.mysql-replication.${testVersion};
- };
+ meta = with lib; {
+ description = "An enhanced, drop-in replacement for MySQL";
+ homepage = "https://mariadb.org/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ thoughtpolice ajs124 das_j ];
+ platforms = platforms.all;
+ };
+ };
- meta = with lib; {
- description = "An enhanced, drop-in replacement for MySQL";
- homepage = "https://mariadb.org/";
- license = licenses.gpl2;
- maintainers = with maintainers; [ thoughtpolice ajs124 das_j ];
- platforms = platforms.all;
- };
-};
+ client = stdenv.mkDerivation (common // {
+ pname = "mariadb-client";
-client = packageSettings: let
- common = commonOptions packageSettings;
+ patches = common.patches ++ [
+ ./patch/cmake-plugin-includedir.patch
+ ];
-in stdenv.mkDerivation (common // {
- pname = "mariadb-client";
+ cmakeFlags = common.cmakeFlags ++ [
+ "-DPLUGIN_AUTH_PAM=NO"
+ "-DWITHOUT_SERVER=ON"
+ "-DWITH_WSREP=OFF"
+ "-DINSTALL_MYSQLSHAREDIR=share/mysql-client"
+ ];
- outputs = [ "out" "man" ];
+ postInstall = common.postInstall + ''
+ rm "$out"/bin/{mariadb-test,mysqltest}
+ libmysqlclient_path=$(readlink -f $out/lib/libmysqlclient${libExt})
+ rm "$out"/lib/{libmariadb${libExt},libmysqlclient${libExt},libmysqlclient_r${libExt}}
+ mv "$libmysqlclient_path" "$out"/lib/libmysqlclient${libExt}
+ ln -sv libmysqlclient${libExt} "$out"/lib/libmysqlclient_r${libExt}
+ '';
+ });
- patches = common.patches ++ [
- ./patch/cmake-plugin-includedir.patch
- ];
+ server = stdenv.mkDerivation (common // {
+ pname = "mariadb-server";
- cmakeFlags = common.cmakeFlags ++ [
- "-DPLUGIN_AUTH_PAM=NO"
- "-DWITHOUT_SERVER=ON"
- "-DWITH_WSREP=OFF"
- "-DINSTALL_MYSQLSHAREDIR=share/mysql-client"
- ];
+ nativeBuildInputs = common.nativeBuildInputs ++ [ bison boost.dev flex ];
- postInstall = common.postInstall + ''
- rm "$out"/bin/{mariadb-test,mysqltest}
- libmysqlclient_path=$(readlink -f $out/lib/libmysqlclient${libExt})
- rm "$out"/lib/{libmariadb${libExt},libmysqlclient${libExt},libmysqlclient_r${libExt}}
- mv "$libmysqlclient_path" "$out"/lib/libmysqlclient${libExt}
- ln -sv libmysqlclient${libExt} "$out"/lib/libmysqlclient_r${libExt}
- '';
-});
+ buildInputs = common.buildInputs ++ [
+ bzip2 lz4 lzo snappy xz zstd
+ cracklib judy libevent libxml2
+ ] ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl
+ ++ lib.optionals stdenv.hostPlatform.isLinux [ linux-pam ]
+ ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.dev
+ ++ lib.optional (!stdenv.hostPlatform.isDarwin) mytopEnv
+ ++ lib.optionals withStorageMroonga [ kytea libsodium msgpack zeromq ]
+ ++ lib.optionals (lib.versionAtLeast common.version "10.7") [ fmt_8 ];
-server = packageSettings: let
- common = commonOptions packageSettings;
+ propagatedBuildInputs = lib.optionals withEmbedded
+ (lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.lib
+ ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl);
-in stdenv.mkDerivation (common // {
- pname = "mariadb-server";
+ postPatch = ''
+ substituteInPlace scripts/galera_new_cluster.sh \
+ --replace ":-mariadb" ":-mysql"
+ '';
- outputs = [ "out" "man" ];
+ cmakeFlags = common.cmakeFlags ++ [
+ "-DMYSQL_DATADIR=/var/lib/mysql"
+ "-DENABLED_LOCAL_INFILE=OFF"
+ "-DWITH_READLINE=ON"
+ "-DWITH_EXTRA_CHARSETS=all"
+ "-DWITH_EMBEDDED_SERVER=${if withEmbedded then "ON" else "OFF"}"
+ "-DWITH_UNIT_TESTS=OFF"
+ "-DWITH_WSREP=ON"
+ "-DWITH_INNODB_DISALLOW_WRITES=ON"
+ "-DWITHOUT_EXAMPLE=1"
+ "-DWITHOUT_FEDERATED=1"
+ "-DWITHOUT_TOKUDB=1"
+ ] ++ lib.optionals (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [
+ "-DWITH_NUMA=ON"
+ ] ++ lib.optionals (!withStorageMroonga) [
+ "-DWITHOUT_MROONGA=1"
+ ] ++ lib.optionals (!withStorageRocks) [
+ "-DWITHOUT_ROCKSDB=1"
+ ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
+ "-DWITH_ROCKSDB_JEMALLOC=ON"
+ ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
+ "-DWITH_JEMALLOC=yes"
+ ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ "-DPLUGIN_AUTH_PAM=NO"
+ "-DPLUGIN_AUTH_PAM_V1=NO"
+ "-DWITHOUT_OQGRAPH=1"
+ "-DWITHOUT_PLUGIN_S3=1"
+ ];
- nativeBuildInputs = common.nativeBuildInputs ++ [ bison boost.dev flex ];
+ preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ patchShebangs scripts/mytop.sh
+ '';
- buildInputs = common.buildInputs ++ [
- bzip2 lz4 lzo snappy xz zstd
- cracklib judy libevent libxml2
- ] ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl
- ++ lib.optionals stdenv.hostPlatform.isLinux [ linux-pam ]
- ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.dev
- ++ lib.optional (!stdenv.hostPlatform.isDarwin) mytopEnv
- ++ lib.optionals withStorageMroonga [ kytea libsodium msgpack zeromq ]
- ++ lib.optionals (lib.versionAtLeast common.version "10.7") [ fmt_8 ];
+ postInstall = common.postInstall + ''
+ rm -r "$out"/share/aclocal
+ chmod +x "$out"/bin/wsrep_sst_common
+ rm -f "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
+ '' + lib.optionalString withStorageMroonga ''
+ mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
+ '' + lib.optionalString (!stdenv.hostPlatform.isDarwin && lib.versionAtLeast common.version "10.4") ''
+ mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
+ mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
+ rm -r "$out"/OFF
+ '';
- patches = common.patches;
-
- postPatch = ''
- substituteInPlace scripts/galera_new_cluster.sh \
- --replace ":-mariadb" ":-mysql"
- '';
-
- cmakeFlags = common.cmakeFlags ++ [
- "-DMYSQL_DATADIR=/var/lib/mysql"
- "-DENABLED_LOCAL_INFILE=OFF"
- "-DWITH_READLINE=ON"
- "-DWITH_EXTRA_CHARSETS=all"
- "-DWITH_EMBEDDED_SERVER=OFF"
- "-DWITH_UNIT_TESTS=OFF"
- "-DWITH_WSREP=ON"
- "-DWITH_INNODB_DISALLOW_WRITES=ON"
- "-DWITHOUT_EXAMPLE=1"
- "-DWITHOUT_FEDERATED=1"
- "-DWITHOUT_TOKUDB=1"
- ] ++ lib.optionals (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [
- "-DWITH_NUMA=ON"
- ] ++ lib.optionals (!withStorageMroonga) [
- "-DWITHOUT_MROONGA=1"
- ] ++ lib.optionals (!withStorageRocks) [
- "-DWITHOUT_ROCKSDB=1"
- ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
- "-DWITH_ROCKSDB_JEMALLOC=ON"
- ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
- "-DWITH_JEMALLOC=yes"
- ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
- "-DPLUGIN_AUTH_PAM=NO"
- "-DPLUGIN_AUTH_PAM_V1=NO"
- "-DWITHOUT_OQGRAPH=1"
- "-DWITHOUT_PLUGIN_S3=1"
- ];
-
- preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
- patchShebangs scripts/mytop.sh
- '';
-
- postInstall = common.postInstall + ''
- rm -r "$out"/share/aclocal
- chmod +x "$out"/bin/wsrep_sst_common
- rm -f "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
- '' + lib.optionalString withStorageMroonga ''
- mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
- '' + lib.optionalString (!stdenv.hostPlatform.isDarwin && lib.versionAtLeast common.version "10.4") ''
- mv "$out"/OFF/suite/plugins/pam/pam_mariadb_mtr.so "$out"/share/pam/lib/security
- mv "$out"/OFF/suite/plugins/pam/mariadb_mtr "$out"/share/pam/etc/security
- rm -r "$out"/OFF
- '';
-
- CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive";
- NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
-});
-in {
- mariadb_104 = mariadbPackage {
- # Supported until 2024-06-18
- version = "10.4.26";
- hash = "sha256-cVrH4jr8O4pVnGzJmM2xlz2Q9iGyvddgPixuU4YLLd8=";
- };
- mariadb_105 = mariadbPackage {
- # Supported until 2025-06-24
- version = "10.5.17";
- hash = "sha256-hJyEC3b0hWUDtD7zqEH8lx6LUYjI3zaQkTv1aZaRt2E=";
- };
- mariadb_106 = mariadbPackage {
- # Supported until 2026-07
- version = "10.6.10";
- hash = "sha256-atn6hvDIXI7q+tJkNUnV/13ShyAClk51R1LekYY6o7c=";
- };
- mariadb_107 = mariadbPackage {
- # Supported until 2023-02. TODO: remove ahead of 22.11 release.
- version = "10.7.6";
- hash = "sha256-erX7pDmQV33BdPG5a9NAszN8G9Rv48NmIgsJ0siNLqA=";
- };
- mariadb_108 = mariadbPackage {
- # Supported until 2023-05
- version = "10.8.5";
- hash = "sha256-z37TjDYTTNgYP93WTLPlD1ROgmS6dCAlXbEpcJfgjos=";
- };
- mariadb_109 = mariadbPackage {
- # Supported until 2023-08(?)
- version = "10.9.3";
- hash = "sha256-mh4imXL8zMgnDmM/aNP7gk2hUdz09T2h342UesqHa+4=";
- };
-}
+ CXXFLAGS = lib.optionalString stdenv.hostPlatform.isi686 "-fpermissive";
+ NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
+ });
+ in
+ server // {
+ inherit client server;
+ };
+in
+ self: {
+ mariadb_104 = self.callPackage generic {
+ # Supported until 2024-06-18
+ version = "10.4.26";
+ hash = "sha256-cVrH4jr8O4pVnGzJmM2xlz2Q9iGyvddgPixuU4YLLd8=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ mariadb_105 = self.callPackage generic {
+ # Supported until 2025-06-24
+ version = "10.5.17";
+ hash = "sha256-hJyEC3b0hWUDtD7zqEH8lx6LUYjI3zaQkTv1aZaRt2E=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ mariadb_106 = self.callPackage generic {
+ # Supported until 2026-07
+ version = "10.6.10";
+ hash = "sha256-atn6hvDIXI7q+tJkNUnV/13ShyAClk51R1LekYY6o7c=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ mariadb_107 = self.callPackage generic {
+ # Supported until 2023-02. TODO: remove ahead of 22.11 release.
+ version = "10.7.6";
+ hash = "sha256-erX7pDmQV33BdPG5a9NAszN8G9Rv48NmIgsJ0siNLqA=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ mariadb_108 = self.callPackage generic {
+ # Supported until 2023-05
+ version = "10.8.5";
+ hash = "sha256-z37TjDYTTNgYP93WTLPlD1ROgmS6dCAlXbEpcJfgjos=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ mariadb_109 = self.callPackage generic {
+ # Supported until 2023-08(?)
+ version = "10.9.3";
+ hash = "sha256-mh4imXL8zMgnDmM/aNP7gk2hUdz09T2h342UesqHa+4=";
+ inherit (self.darwin) cctools;
+ inherit (self.darwin.apple_sdk.frameworks) CoreServices;
+ };
+ }
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index f237bb8da0ca..f892c5de4af0 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -940,6 +940,7 @@ mapAliases ({
mutt-with-sidebar = mutt; # Added 2022-09-17
mysql-client = hiPrio mariadb.client;
mysql = mariadb; # moved from top-level 2021-03-14
+ mysql57 = throw "'mysql57' has been removed. Please use 'mysql80' or 'mariadb'";
# floating point textures patents are expired,
# so package reduced to alias
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b089dd294363..4cc079a7831f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -23884,10 +23884,7 @@ with pkgs;
asio = asio_1_10;
};
- inherit (callPackage ../servers/sql/mariadb {
- inherit (darwin) cctools;
- inherit (darwin.apple_sdk.frameworks) CoreServices;
- })
+ inherit (import ../servers/sql/mariadb pkgs)
mariadb_104
mariadb_105
mariadb_106
@@ -23896,6 +23893,7 @@ with pkgs;
mariadb_109
;
mariadb = mariadb_106;
+ mariadb-embedded = mariadb.override { withEmbedded = true; };
mongodb = hiPrio mongodb-3_4;
@@ -23966,13 +23964,6 @@ with pkgs;
# removed in a few releases.
influxdb2 = callPackage ../servers/nosql/influxdb2/combined.nix { };
- mysql57 = callPackage ../servers/sql/mysql/5.7.x.nix {
- inherit (darwin) cctools developer_cmds;
- inherit (darwin.apple_sdk.frameworks) CoreServices;
- boost = boost159;
- openssl = openssl_1_1;
- };
-
mysql80 = callPackage ../servers/sql/mysql/8.0.x.nix {
inherit (darwin) cctools developer_cmds DarwinTools;
inherit (darwin.apple_sdk.frameworks) CoreServices;
@@ -36749,7 +36740,7 @@ with pkgs;
mnemonicode = callPackage ../misc/mnemonicode { };
- mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql57; in {
+ mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql80; in {
gdal = gdal.override {
libmysqlclient = mysql // {
lib = { dev = mysql; }