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; };