From 4a90d82f1ac1ba3f4cea71273a92e9c820777067 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 17:27:30 +0200 Subject: [PATCH 1/8] cqrlog: switch from mysql57 to mariadb --- pkgs/applications/radio/cqrlog/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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; { From 44cbcce4123eb5a539842d53b82fcca7b5c3fdcd Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 18:04:10 +0200 Subject: [PATCH 2/8] dspam: switch from mysql57 to mariadb-connector-c --- pkgs/servers/mail/dspam/default.nix | 17 +++++++++-- pkgs/servers/mail/dspam/mariadb.patch | 42 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 pkgs/servers/mail/dspam/mariadb.patch 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 From 9517864e93f760e6ac56f114b73ecdcbb1db87db Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 18:28:55 +0200 Subject: [PATCH 3/8] mariadb-embedded: add override to enable building libmysqld.so --- pkgs/servers/sql/mariadb/default.nix | 9 +++++++-- pkgs/top-level/all-packages.nix | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 7190f1209e08..318ec6bab6e8 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -13,6 +13,7 @@ , fmt_8 , withStorageMroonga ? true, kytea, libsodium, msgpack, zeromq , withStorageRocks ? true +, withEmbedded ? false }: let @@ -103,7 +104,7 @@ commonOptions = packageSettings: rec { # attributes common to both builds "-DCMAKE_CROSSCOMPILING_EMULATOR=${stdenv.hostPlatform.emulator buildPackages}" ]; - postInstall = '' + 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} @@ -184,6 +185,10 @@ in stdenv.mkDerivation (common // { ++ lib.optionals withStorageMroonga [ kytea libsodium msgpack zeromq ] ++ lib.optionals (lib.versionAtLeast common.version "10.7") [ fmt_8 ]; + propagatedBuildInputs = lib.optionals withEmbedded + (lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.lib + ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl); + patches = common.patches; postPatch = '' @@ -196,7 +201,7 @@ in stdenv.mkDerivation (common // { "-DENABLED_LOCAL_INFILE=OFF" "-DWITH_READLINE=ON" "-DWITH_EXTRA_CHARSETS=all" - "-DWITH_EMBEDDED_SERVER=OFF" + "-DWITH_EMBEDDED_SERVER=${if withEmbedded then "ON" else "OFF"}" "-DWITH_UNIT_TESTS=OFF" "-DWITH_WSREP=ON" "-DWITH_INNODB_DISALLOW_WRITES=ON" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2fa7db54f210..177033902e40 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23693,6 +23693,11 @@ with pkgs; mariadb_109 ; mariadb = mariadb_106; + mariadb-embedded = (callPackage ../servers/sql/mariadb { + inherit (darwin) cctools; + inherit (darwin.apple_sdk.frameworks) CoreServices; + withEmbedded = true; + }).mariadb_106; mongodb = hiPrio mongodb-3_4; From 8b30afdd78c761bfeb92a6509b4fad2ad1461f75 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Wed, 12 Oct 2022 10:27:41 +0200 Subject: [PATCH 4/8] mariadb: move callPackage down one layer to preserve .override --- pkgs/servers/sql/mariadb/default.nix | 501 ++++++++++++++------------- pkgs/top-level/all-packages.nix | 11 +- 2 files changed, 254 insertions(+), 258 deletions(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 318ec6bab6e8..b077cfe9470f 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -1,278 +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 -, withEmbedded ? false -}: - 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.optional (!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.optional (!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 = 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 - ''; + # 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.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [ + "-DWITH_NUMA=ON" + ] ++ lib.optional (!withStorageMroonga) [ + "-DWITHOUT_MROONGA=1" + ] ++ lib.optional (!withStorageRocks) [ + "-DWITHOUT_ROCKSDB=1" + ] ++ lib.optional (!stdenv.hostPlatform.isDarwin && withStorageRocks) [ + "-DWITH_ROCKSDB_JEMALLOC=ON" + ] ++ lib.optional (!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 + ''; - propagatedBuildInputs = lib.optionals withEmbedded - (lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.lib - ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl); - - 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=${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.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) [ - "-DWITH_NUMA=ON" - ] ++ lib.optional (!withStorageMroonga) [ - "-DWITHOUT_MROONGA=1" - ] ++ lib.optional (!withStorageRocks) [ - "-DWITHOUT_ROCKSDB=1" - ] ++ lib.optional (!stdenv.hostPlatform.isDarwin && withStorageRocks) [ - "-DWITH_ROCKSDB_JEMALLOC=ON" - ] ++ lib.optional (!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/all-packages.nix b/pkgs/top-level/all-packages.nix index 177033902e40..b9d123d111b3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23681,10 +23681,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 @@ -23693,11 +23690,7 @@ with pkgs; mariadb_109 ; mariadb = mariadb_106; - mariadb-embedded = (callPackage ../servers/sql/mariadb { - inherit (darwin) cctools; - inherit (darwin.apple_sdk.frameworks) CoreServices; - withEmbedded = true; - }).mariadb_106; + mariadb-embedded = mariadb.override { withEmbedded = true; }; mongodb = hiPrio mongodb-3_4; From 7218edb94a28680f433e6ebd14ed98c252a06a76 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 14:12:54 +0200 Subject: [PATCH 5/8] amarok: switch form mysql57 to mariadb-embedded --- pkgs/applications/audio/amarok/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix index 10d1bb9ca656..c2618059b59d 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 -, 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 ]; From 0edf1ffc3f236488baa4c09e564923c2c99322c6 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 18:29:53 +0200 Subject: [PATCH 6/8] mysql-workbench: switch from mysql57 to mysql80 --- pkgs/applications/misc/mysql-workbench/default.nix | 2 ++ pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b9d123d111b3..5864ef8bc836 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36493,7 +36493,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; } From a5c9290979cc03b30284f02e7002a35f2c609cd1 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 18:36:38 +0200 Subject: [PATCH 7/8] mysql57: drop Mysql 5.7 is not EOL yet, but is quite old and fully replaceable by mysql 8.0 or mariadb. --- nixos/tests/mysql/common.nix | 2 +- pkgs/servers/sql/mysql/5.7.x.nix | 90 -------------------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 8 --- 4 files changed, 2 insertions(+), 99 deletions(-) delete mode 100644 pkgs/servers/sql/mysql/5.7.x.nix 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/servers/sql/mysql/5.7.x.nix b/pkgs/servers/sql/mysql/5.7.x.nix deleted file mode 100644 index 41fd1466fd35..000000000000 --- a/pkgs/servers/sql/mysql/5.7.x.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ lib, stdenv, fetchurl, cmake, bison, pkg-config, nukeReferences -, boost, libedit, libevent, lz4, ncurses, openssl, protobuf, readline, zlib, perl -, cctools, CoreServices, developer_cmds -, libtirpc, rpcsvc-proto, nixosTests -}: - -# Note: zlib is not required; MySQL can use an internal zlib. - -let -self = stdenv.mkDerivation rec { - pname = "mysql"; - version = "5.7.39"; - - src = fetchurl { - url = "mirror://mysql/MySQL-5.7/${pname}-${version}.tar.gz"; - sha256 = "sha256-ERw6ypGJfkUwOds5GkdSZeAg/ZIcuXMHwACEqI5NYQQ="; - }; - - preConfigure = lib.optionalString stdenv.isDarwin '' - ln -s /bin/ps $TMPDIR/ps - export PATH=$PATH:$TMPDIR - ''; - - nativeBuildInputs = [ bison cmake pkg-config nukeReferences ] - ++ lib.optionals (!stdenv.isDarwin) [ rpcsvc-proto ]; - - buildInputs = [ boost libedit libevent lz4 ncurses openssl protobuf readline zlib ] - ++ lib.optionals stdenv.isDarwin [ perl cctools CoreServices developer_cmds ] - ++ lib.optionals stdenv.isLinux [ libtirpc ]; - - outputs = [ "out" "static" ]; - - cmakeFlags = [ - "-DWITH_SSL=yes" - "-DWITH_EMBEDDED_SERVER=yes" - "-DWITH_UNIT_TESTS=no" - "-DWITH_EDITLINE=system" - "-DWITH_LIBEVENT=system" - "-DWITH_LZ4=system" - "-DWITH_PROTOBUF=system" - "-DWITH_ZLIB=system" - "-DWITH_ARCHIVE_STORAGE_ENGINE=yes" - "-DWITH_BLACKHOLE_STORAGE_ENGINE=yes" - "-DWITH_FEDERATED_STORAGE_ENGINE=yes" - "-DHAVE_IPV6=yes" - "-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_SCRIPTDIR=bin" - "-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" - ]; - - CXXFLAGS = "-fpermissive -std=c++11"; - NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lgcc_s"; - - prePatch = '' - sed -i -e "s|/usr/bin/libtool|libtool|" cmake/merge_archives.cmake.in - ''; - postInstall = '' - nuke-refs "$out/share/mysql/docs/INFO_BIN" - moveToOutput "lib/*.a" $static - ln -s libmysqlclient${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libmysqlclient_r${stdenv.hostPlatform.extensions.sharedLibrary} - ''; - - passthru = { - client = self; - connector-c = self; - server = self; - mysqlVersion = "5.7"; - tests = nixosTests.mysql.mysql57; - }; - - meta = with lib; { - homepage = "https://www.mysql.com/"; - description = "The world's most popular open source database"; - platforms = platforms.unix; - license = with licenses; [ - artistic1 bsd0 bsd2 bsd3 bsdOriginal - gpl2 lgpl2 lgpl21 mit publicDomain licenses.zlib - ]; - }; -}; in self diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 2e2e4bf5c79e..21bb6ab3de21 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -757,6 +757,7 @@ mapAliases ({ mutt-with-sidebar = mutt; # Added 2022-09-17 mysql-client = throw "'mysql-client' has been renamed to/replaced by 'mariadb.client'"; # Converted to throw 2022-09-24 mysql = throw "'mysql' has been renamed to/replaced by 'mariadb'"; # Converted to throw 2022-09-24 + mysql57 = throw "'mysql57' has been removed. Please use 'mysql80' or 'mariadb'"; mesa_drivers = throw "'mesa_drivers' has been renamed to/replaced by 'mesa.drivers'"; # Converted to throw 2022-09-24 mesa_noglu = throw "'mesa_noglu' has been renamed to/replaced by 'mesa'"; # Converted to throw 2022-02-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5864ef8bc836..665a9ae0dc63 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23761,14 +23761,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; - protobuf = protobuf3_7; - 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; From 0d6d7a1fc1b7441ce5f6e00f8446083bf8ea5b23 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 11 Oct 2022 18:38:29 +0200 Subject: [PATCH 8/8] release-notes: update release notes about mysql57 drop --- .../from_md/release-notes/rl-2211.section.xml | 18 ++++++++++++++++++ .../manual/release-notes/rl-2211.section.md | 3 +++ 2 files changed, 21 insertions(+) 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 bdd55a59370b..c8a91dc35b0a 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 @@ -631,6 +631,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 69e0cbd2ad51..61b01fe93c09 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -208,6 +208,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" ]`.