diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml
index a3543aae1ea..e46d1ca403f 100644
--- a/nixos/doc/manual/release-notes/rl-2103.xml
+++ b/nixos/doc/manual/release-notes/rl-2103.xml
@@ -256,6 +256,22 @@
which is the new stable release. OpenAFS 1.6 was removed.
+
+
+ MariaDB has been updated to 10.5.
+ Before you upgrade, it would be best to take a backup of your database and read
+
+ Incompatible Changes Between 10.4 and 10.5.
+ After the upgrade you will need to run mysql_upgrade.
+
+
+
+
+ The TokuDB storage engine dropped in mariadb 10.5 and removed in mariadb 10.6.
+ It is recommended to switch to RocksDB. See also TokuDB and
+ MDEV-19780: Remove the TokuDB storage engine.
+
+
The openldap module now has support for OLC-style
diff --git a/nixos/tests/mysql/mysql.nix b/nixos/tests/mysql/mysql.nix
index ccb69c85a55..50ad5c68aef 100644
--- a/nixos/tests/mysql/mysql.nix
+++ b/nixos/tests/mysql/mysql.nix
@@ -98,7 +98,7 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
}];
services.mysql.settings = {
mysqld = {
- plugin-load-add = [ "ha_tokudb.so" "ha_rocksdb.so" ];
+ plugin-load-add = [ "ha_rocksdb.so" ];
};
};
services.mysql.package = pkgs.mariadb;
@@ -185,19 +185,5 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
mariadb.succeed(
"echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
)
- '' + pkgs.lib.optionalString pkgs.stdenv.isx86_64 ''
- # Check if TokuDB plugin works
- mariadb.succeed(
- "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
- )
- mariadb.succeed(
- "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
- )
- mariadb.succeed(
- "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
- )
- mariadb.succeed(
- "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
- )
'';
})
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 90c11084a7c..562b059015f 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -1,12 +1,11 @@
{ stdenv, fetchurl, fetchFromGitHub, cmake, pkgconfig, makeWrapper, ncurses, nixosTests
-, libiconv, openssl, pcre, boost, judy, bison, libxml2, libkrb5, linux-pam, curl
-, libaio, libevent, jemalloc450, jemalloc, cracklib, systemd, perl
+, libiconv, openssl, pcre2, boost, judy, bison, libxml2, libkrb5, linux-pam, curl
+, libaio, libevent, jemalloc, cracklib, systemd, perl
, bzip2, lz4, lzo, snappy, xz, zlib, zstd
, fixDarwinDylibNames, cctools, CoreServices, less
, numactl # NUMA Support
, withStorageMroonga ? true, kytea, msgpack, zeromq
, withStorageRocks ? true
-, withStorageToku ? true
}:
with stdenv.lib;
@@ -23,14 +22,14 @@ mariadb = server // {
};
common = rec { # attributes common to both builds
- version = "10.4.15";
+ version = "10.5.8";
src = fetchurl {
urls = [
"https://downloads.mariadb.org/f/mariadb-${version}/source/mariadb-${version}.tar.gz"
"https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz"
];
- sha256 = "0cdfzr768cb7n9ag9gqahr8c6igfn513md67xn4rf98ajmnxg0r7";
+ sha256 = "1s3vfm73911cddjhgpcbkya6nz7ag2zygg56qqzwscn5ybv28j7b";
name = "mariadb-${version}.tar.gz";
};
@@ -38,11 +37,10 @@ common = rec { # attributes common to both builds
++ optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = [
- ncurses openssl zlib pcre libiconv curl
+ ncurses openssl zlib pcre2 libiconv curl
] ++ optionals stdenv.hostPlatform.isLinux [ libaio systemd libkrb5 ]
++ optionals stdenv.hostPlatform.isDarwin [ perl cctools CoreServices ]
- ++ optional (!stdenv.hostPlatform.isDarwin && withStorageToku) [ jemalloc450 ]
- ++ optional (!stdenv.hostPlatform.isDarwin && !withStorageToku) [ jemalloc ];
+ ++ optional (!stdenv.hostPlatform.isDarwin) [ jemalloc ];
prePatch = ''
sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt
@@ -174,6 +172,7 @@ server = stdenv.mkDerivation (common // {
"-DWITH_INNODB_DISALLOW_WRITES=ON"
"-DWITHOUT_EXAMPLE=1"
"-DWITHOUT_FEDERATED=1"
+ "-DWITHOUT_TOKUDB=1"
] ++ optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [
"-DWITH_NUMA=ON"
] ++ optional (!withStorageMroonga) [
@@ -182,13 +181,12 @@ server = stdenv.mkDerivation (common // {
"-DWITHOUT_ROCKSDB=1"
] ++ optional (!stdenv.hostPlatform.isDarwin && withStorageRocks) [
"-DWITH_ROCKSDB_JEMALLOC=ON"
- ] ++ optional (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isMusl || !withStorageToku) [
- "-DWITHOUT_TOKUDB=1"
- ] ++ optional (!stdenv.hostPlatform.isDarwin && withStorageToku) [
- "-DWITH_JEMALLOC=static"
- ] ++ optional stdenv.hostPlatform.isDarwin [
+ ] ++ optional (!stdenv.hostPlatform.isDarwin) [
+ "-DWITH_JEMALLOC=yes"
+ ] ++ optionals stdenv.hostPlatform.isDarwin [
"-DPLUGIN_AUTH_PAM=OFF"
"-DWITHOUT_OQGRAPH=1"
+ "-DWITHOUT_PLUGIN_S3=1"
];
preConfigure = optionalString (!stdenv.hostPlatform.isDarwin) ''
@@ -198,7 +196,6 @@ server = stdenv.mkDerivation (common // {
postInstall = common.postInstall + ''
chmod +x "$out"/bin/wsrep_sst_common
rm "$out"/bin/{mariadb-client-test,mariadb-test,mysql_client_test,mysqltest}
- rm -r "$out"/data # Don't need testing data
'' + optionalString withStorageMroonga ''
mv "$out"/share/{groonga,groonga-normalizer-mysql} "$out"/share/doc/mysql
'' + optionalString (!stdenv.hostPlatform.isDarwin) ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index da2f086f6c1..8670c2e6a38 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17787,9 +17787,6 @@ in
};
mariadb = callPackage ../servers/sql/mariadb {
- # As per mariadb's cmake, "static jemalloc_pic.a can only be used up to jemalloc 4".
- # https://jira.mariadb.org/browse/MDEV-15034
- jemalloc450 = jemalloc450.override ({ disableInitExecTls = true; });
inherit (darwin) cctools;
inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
};