Merge #195644: mysql57: drop
This commit is contained in:
@@ -773,6 +773,24 @@
|
||||
due to upstream dropping support.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>mysql57</literal> has been removed. Please update to
|
||||
<literal>mysql80</literal> or <literal>mariadb</literal>. See
|
||||
the
|
||||
<link xlink:href="https://mariadb.com/kb/en/upgrading-from-mysql-to-mariadb/">upgrade
|
||||
guide</link> for more information.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Consequently, <literal>cqrlog</literal> and
|
||||
<literal>amorok</literal> now use <literal>mariadb</literal>
|
||||
instead of <literal>mysql57</literal> for their embedded
|
||||
databases. Running <literal>mysql_upgrade</literal> may be
|
||||
neccesary.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>k3s</literal> supports <literal>clusterInit</literal>
|
||||
|
||||
@@ -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" ]`.
|
||||
|
||||
@@ -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)}";
|
||||
}
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
, dbus
|
||||
, bash
|
||||
, coreutils
|
||||
, zstd
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -129,6 +130,7 @@ in stdenv.mkDerivation rec {
|
||||
libepoxy
|
||||
at-spi2-core
|
||||
dbus
|
||||
zstd
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <mysql.h>
|
||||
#include <mysqld_error.h>
|
||||
#include <errmsg.h>
|
||||
- #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 <mysql.h>
|
||||
#include <mysqld_error.h>
|
||||
#include <errmsg.h>
|
||||
- #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
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; }
|
||||
|
||||
Reference in New Issue
Block a user