diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2016-08-07 22:30:03 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-08-07 22:30:03 +0200 |
commit | 5951fc63611e8b23b9a3c5fcb9d0140eed06708a (patch) | |
tree | 46b2c7b933e13f69598c89cbe74028155f478ae8 | |
parent | 50f909cf933154591fc7886a74fa121234047926 (diff) | |
parent | f21ff73289f2a2b7b0411b3c2852dd0099706f15 (diff) | |
download | nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar.gz nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar.bz2 nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar.lz nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar.xz nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.tar.zst nixlib-5951fc63611e8b23b9a3c5fcb9d0140eed06708a.zip |
Merge #17413: mariadb rework
It includes security updates to mariadb/mysql.
-rw-r--r-- | pkgs/applications/audio/amarok/default.nix | 4 | ||||
-rw-r--r-- | pkgs/applications/gis/grass/default.nix | 5 | ||||
-rw-r--r-- | pkgs/development/compilers/hhvm/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/compilers/urweb/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/interpreters/php/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/libdbi-drivers/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/opendbx/default.nix | 9 | ||||
-rw-r--r-- | pkgs/development/libraries/qt-3/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/lisp-modules/lisp-packages.nix | 6 | ||||
-rw-r--r-- | pkgs/development/ocaml-modules/mysql/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/pure-modules/glpk/default.nix | 2 | ||||
-rw-r--r-- | pkgs/games/zod/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/games/ghost-one/default.nix | 6 | ||||
-rw-r--r-- | pkgs/servers/mail/dspam/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/mail/postfix/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/restund/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/sql/mariadb/default.nix | 202 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
18 files changed, 142 insertions, 128 deletions
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix index f70974427444..af796f7490a8 100644 --- a/pkgs/applications/audio/amarok/default.nix +++ b/pkgs/applications/audio/amarok/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ automoc4 cmake perl pkgconfig ]; buildInputs = [ - qtscriptgenerator stdenv.cc.libc gettext curl libxml2 mysql.lib + qtscriptgenerator stdenv.cc.libc gettext curl libxml2 mysql.server/*libmysqld*/ taglib taglib_extras loudmouth kdelibs phonon strigi soprano qca2 libmtp liblastfm libgpod qjson ffmpeg libofa nepomuk_core lz4 lzo snappy libaio pcre @@ -34,6 +34,8 @@ stdenv.mkDerivation rec { cmakeFlags = "-DKDE4_BUILD_TESTS=OFF"; + enableParallelBuilding = true; + propagatedUserEnvPkgs = [ qtscriptgenerator ]; meta = { diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index c373f8b9e272..5773718b0a4c 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation { }; buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite pkgconfig cairo - readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.lib blas ] + readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.client blas ] ++ (with pythonPackages; [ python dateutil wxPython30 numpy sqlite3 ]); configureFlags = [ @@ -22,7 +22,8 @@ stdenv.mkDerivation { "--with-netcdf" "--with-geos" "--with-postgres" "--with-postgres-libs=${postgresql.lib}/lib/" - "--with-mysql" "--with-mysql-includes=${mysql.lib}/include/mysql" + # it complains about missing libmysqld but doesn't really seem to need it + "--with-mysql" "--with-mysql-includes=${stdenv.lib.getDev mysql.client}/include/mysql" "--with-blas" ]; diff --git a/pkgs/development/compilers/hhvm/default.nix b/pkgs/development/compilers/hhvm/default.nix index 59fb90d78cdf..ef4aa44d436a 100644 --- a/pkgs/development/compilers/hhvm/default.nix +++ b/pkgs/development/compilers/hhvm/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { }; buildInputs = - [ cmake pkgconfig boost libunwind mariadb libmemcached pcre gdb git perl + [ cmake pkgconfig boost libunwind mariadb.client libmemcached pcre gdb git perl libevent gd curl libxml2 icu flex bison openssl zlib php expat libcap oniguruma libdwarf libmcrypt tbb gperftools bzip2 openldap readline libelf uwimap binutils cyrus_sasl pam glog libpng libxslt ocaml libkrb5 @@ -29,8 +29,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = false; # occasional build problems; dontUseCmakeBuildDir = true; NIX_LDFLAGS = "-lpam -L${pam}/lib"; - MYSQL_INCLUDE_DIR="${mariadb}/include/mysql"; - MYSQL_DIR=mariadb; # work around broken build system NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype2"; diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix index d9c448970c97..638b10f76d5d 100644 --- a/pkgs/development/compilers/urweb/default.nix +++ b/pkgs/development/compilers/urweb/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, file, openssl, mlton +{ stdenv, lib, fetchurl, file, openssl, mlton , mysql, postgresql, sqlite }: @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "08km96hli5yp754nsxxjzih2la0m89j5wc2cq12rkas43nqqgr65"; }; - buildInputs = [ openssl mlton mysql postgresql sqlite ]; + buildInputs = [ openssl mlton mysql.client postgresql sqlite ]; prePatch = '' sed -e 's@/usr/bin/file@${file}/bin/file@g' -i configure @@ -21,11 +21,11 @@ stdenv.mkDerivation rec { preConfigure = '' export PGHEADER="${postgresql}/include/libpq-fe.h"; - export MSHEADER="${mysql.lib}/include/mysql/mysql.h"; + export MSHEADER="${lib.getDev mysql.client}/include/mysql/mysql.h"; export SQHEADER="${sqlite.dev}/include/sqlite3.h"; export CCARGS="-I$out/include \ - -L${mysql.lib}/lib/mysql \ + -L${lib.getLib mysql.client}/lib/mysql \ -L${postgresql.lib}/lib \ -L${sqlite.out}/lib"; ''; diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix index df634147f58d..3188d9424416 100644 --- a/pkgs/development/interpreters/php/default.nix +++ b/pkgs/development/interpreters/php/default.nix @@ -107,7 +107,7 @@ let }; mysql = { - configureFlags = ["--with-mysql=${mysql.lib}"]; + configureFlags = ["--with-mysql"]; buildInputs = [ mysql.lib ]; }; diff --git a/pkgs/development/libraries/libdbi-drivers/default.nix b/pkgs/development/libraries/libdbi-drivers/default.nix index f64174778b20..77c09f3ed158 100644 --- a/pkgs/development/libraries/libdbi-drivers/default.nix +++ b/pkgs/development/libraries/libdbi-drivers/default.nix @@ -26,8 +26,6 @@ stdenv.mkDerivation rec { "--with-dbi-libdir=${libdbi}/lib" ] ++ optionals (libmysql != null) [ "--with-mysql" - "--with-mysql-incdir=${libmysql}/include/mysql" - "--with-mysql-libdir=${libmysql}/lib/mysql" ] ++ optionals (postgresql != null) [ "--with-pgsql" "--with-pgsql_incdir=${postgresql}/include" diff --git a/pkgs/development/libraries/opendbx/default.nix b/pkgs/development/libraries/opendbx/default.nix index 03e7718a3ae4..37afa3fd5070 100644 --- a/pkgs/development/libraries/opendbx/default.nix +++ b/pkgs/development/libraries/opendbx/default.nix @@ -1,5 +1,8 @@ { stdenv, fetchurl, readline, mysql, postgresql, sqlite }: +let + inherit (stdenv.lib) getDev getLib; +in stdenv.mkDerivation rec { name = "opendbx-1.4.6"; @@ -9,10 +12,10 @@ stdenv.mkDerivation rec { }; preConfigure = '' - export CPPFLAGS="-I${mysql.lib}/include/mysql" - export LDFLAGS="-L${mysql.lib}/lib/mysql" + export CPPFLAGS="-I${getDev mysql.client}/include/mysql" + export LDFLAGS="-L${getLib mysql.client}/lib/mysql -L${getLib postgresql}/lib" configureFlagsArray=(--with-backends="mysql pgsql sqlite3") ''; - buildInputs = [ readline mysql.lib postgresql sqlite ]; + buildInputs = [ readline mysql.client postgresql sqlite ]; } diff --git a/pkgs/development/libraries/qt-3/default.nix b/pkgs/development/libraries/qt-3/default.nix index e7b4b907df99..949f3f5b7786 100644 --- a/pkgs/development/libraries/qt-3/default.nix +++ b/pkgs/development/libraries/qt-3/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { -I${randrproto}/include" else "-no-xrandr"} ${if xineramaSupport then "-xinerama -L${libXinerama.out}/lib -I${libXinerama.dev}/include" else "-no-xinerama"} ${if cursorSupport then "-L${libXcursor.out}/lib -I${libXcursor.dev}/include" else ""} - ${if mysqlSupport then "-qt-sql-mysql -L${mysql.lib}/lib/mysql -I${mysql.lib}/include/mysql" else ""} + ${if mysqlSupport then "-qt-sql-mysql -L${stdenv.lib.getLib mysql.client}/lib/mysql -I${mysql.client}/include/mysql" else ""} ${if xftSupport then "-xft -L${libXft.out}/lib -I${libXft.dev}/include -L${libXft.freetype.out}/lib -I${libXft.freetype.dev}/include diff --git a/pkgs/development/lisp-modules/lisp-packages.nix b/pkgs/development/lisp-modules/lisp-packages.nix index e8ec8f2aa241..abadf07a574a 100644 --- a/pkgs/development/lisp-modules/lisp-packages.nix +++ b/pkgs/development/lisp-modules/lisp-packages.nix @@ -192,7 +192,7 @@ let lispPackages = rec { version = "git-20150514"; description = "Common Lisp SQL Interface library"; deps = [uffi]; - buildInputs = [pkgs.mysql.lib pkgs.zlib]; + buildInputs = [pkgs.mysql.client pkgs.zlib]; # Source type: git src = pkgs.fetchgit { url = @@ -204,8 +204,8 @@ let lispPackages = rec { }; overrides = x:{ preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.mysql.lib}/include/mysql" - export NIX_LDFLAGS="$NIX_LDFLAGS -L${pkgs.mysql.lib}/lib/mysql" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${stdenv.lib.getDev pkgs.mysql.client}/include/mysql" + export NIX_LDFLAGS="$NIX_LDFLAGS -L${stdenv.lib.getLib pkgs.mysql.client}/lib/mysql" ''; }; }; diff --git a/pkgs/development/ocaml-modules/mysql/default.nix b/pkgs/development/ocaml-modules/mysql/default.nix index 3131d8212e42..ce3487a80a0e 100644 --- a/pkgs/development/ocaml-modules/mysql/default.nix +++ b/pkgs/development/ocaml-modules/mysql/default.nix @@ -23,15 +23,11 @@ stdenv.mkDerivation { "--libdir=$out/lib/ocaml/${ocaml_version}/site-lib/mysql" ]; - buildInputs = [ocaml findlib mysql.lib camlp4 ]; + buildInputs = [ocaml findlib camlp4 ]; createFindlibDestdir = true; - propagatedBuildInputs = [ mysql.lib ]; - - preConfigure = '' - export LDFLAGS="-L${mysql.lib}/lib/mysql" - ''; + propagatedBuildInputs = [ mysql.client ]; buildPhase = '' make diff --git a/pkgs/development/pure-modules/glpk/default.nix b/pkgs/development/pure-modules/glpk/default.nix index 22d2bc177380..af13e8566324 100644 --- a/pkgs/development/pure-modules/glpk/default.nix +++ b/pkgs/development/pure-modules/glpk/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { preConfigure = '' substituteInPlace configure \ - --replace /usr/include/mysql ${libmysql}/include/mysql + --replace /usr/include/mysql ${lib.getDev libmysql}/include/mysql ''; configureFlags = [ "--enable-dl" "--enable-odbc" diff --git a/pkgs/games/zod/default.nix b/pkgs/games/zod/default.nix index 9975aa1b15b7..d7a0a62f5bd6 100644 --- a/pkgs/games/zod/default.nix +++ b/pkgs/games/zod/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { buildInputs = [ unrar unzip SDL SDL_image SDL_ttf SDL_mixer libmysql makeWrapper ]; - NIX_LDFLAGS="-L${libmysql}/lib/mysql"; + NIX_LDFLAGS="-L${stdenv.lib.getLib libmysql}/lib/mysql"; installPhase = '' mkdir -p $out/bin $out/share/zod diff --git a/pkgs/servers/games/ghost-one/default.nix b/pkgs/servers/games/ghost-one/default.nix index 3c1430157d02..63a716339237 100644 --- a/pkgs/servers/games/ghost-one/default.nix +++ b/pkgs/servers/games/ghost-one/default.nix @@ -9,10 +9,11 @@ stdenv.mkDerivation rec { sha256 = "1sm2ca3lcdr4vjg7v94d8zhqz8cdp44rg8yinzzwkgsr0hj74fv2"; }; - buildInputs = [ unzip gmp zlib bzip2 boost mysql.lib ]; + buildInputs = [ unzip gmp zlib bzip2 boost mysql.client ]; patchPhase = '' - substituteInPlace ghost/Makefile --replace "/usr/local/lib/mysql" "${mysql.lib}/lib/mysql" + substituteInPlace ghost/Makefile --replace "/usr/local/lib/mysql" \ + "${stdenv.lib.getLib mysql.client}/lib/mysql" ''; buildPhase = '' @@ -49,5 +50,6 @@ stdenv.mkDerivation rec { description = "A Warcraft III: Reign of Chaos and Warcraft III: The Frozen Throne game hosting bot"; license = licenses.asl20; maintainers = [ maintainers.phreedom ]; + broken = true; # can't even get downloaded }; } diff --git a/pkgs/servers/mail/dspam/default.nix b/pkgs/servers/mail/dspam/default.nix index 1ac47fbf7224..6f52e62aab75 100644 --- a/pkgs/servers/mail/dspam/default.nix +++ b/pkgs/servers/mail/dspam/default.nix @@ -49,7 +49,7 @@ in stdenv.mkDerivation rec { "--enable-preferences-extension" "--enable-long-usernames" "--enable-external-lookup" - ] ++ lib.optional withMySQL "--with-mysql-includes=${libmysql}/include/mysql" + ] ++ lib.optional withMySQL "--with-mysql-includes=${lib.getDev libmysql}/include/mysql" ++ lib.optional withPgSQL "--with-pgsql-libraries=${postgresql.lib}/lib"; # Lots of things are hardwired to paths like sysconfdir. That's why we install with both "prefix" and "DESTDIR" diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix index 008c8c90d1be..99371f41b0f1 100644 --- a/pkgs/servers/mail/postfix/default.nix +++ b/pkgs/servers/mail/postfix/default.nix @@ -11,7 +11,7 @@ let "-DHAS_DB_BYPASS_MAKEDEFS_CHECK" "-fPIE" "-fstack-protector-all" "--param" "ssp-buffer-size=4" "-O2" "-D_FORTIFY_SOURCE=2" ] ++ lib.optional withPgSQL "-DHAS_PGSQL" - ++ lib.optionals withMySQL [ "-DHAS_MYSQL" "-I${libmysql}/include/mysql" ] + ++ lib.optionals withMySQL [ "-DHAS_MYSQL" "-I${lib.getDev libmysql}/include/mysql" ] ++ lib.optional withSQLite "-DHAS_SQLITE"); auxlibs = lib.concatStringsSep " " ([ "-ldb" "-lnsl" "-lresolv" "-lsasl2" "-lcrypto" "-lssl" "-pie" "-Wl,-z,relro,-z,now" diff --git a/pkgs/servers/restund/default.nix b/pkgs/servers/restund/default.nix index 8a831f7ff697..acca1af60550 100644 --- a/pkgs/servers/restund/default.nix +++ b/pkgs/servers/restund/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" ++ stdenv.lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}" ; - NIX_LDFLAGS='' -L${mysql.lib}/lib/mysql ''; + NIX_LDFLAGS='' -L${stdenv.lib.getLib mysql.client}/lib/mysql ''; meta = { homepage = "http://www.creytiv.com/restund.html"; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 902be5322228..7bbf0d57751e 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -1,55 +1,135 @@ -{ stdenv, fetchurl, cmake, ncurses, zlib, xz, lzo, lz4, bzip2, snappy +{ stdenv, fetchurl, cmake, pkgconfig, ncurses, zlib, xz, lzo, lz4, bzip2, snappy , openssl, pcre, boost, judy, bison, libxml2 , libaio, libevent, groff, jemalloc, cracklib, systemd, numactl, perl , fixDarwinDylibNames, cctools, CoreServices -, makeWrapper }: with stdenv.lib; -stdenv.mkDerivation rec { - name = "mariadb-${version}"; - version = "10.1.9"; + +let # in mariadb # spans the whole file + +mariadb = { + inherit client # libmysqlclient.so in .out, necessary headers in .dev and utils in .bin + server; # currently a full build, including everything in `client` again + lib = client; # compat. with the old mariadb split +}; + + +common = rec { # attributes common to both builds + version = "10.1.16"; src = fetchurl { url = "https://downloads.mariadb.org/interstitial/mariadb-${version}/source/mariadb-${version}.tar.gz"; - sha256 = "0471vwg9c5c17m7679krjha16ib6d48fcsphkchb9v9cf8k5i74f"; + sha256 = "14s3wq1c25n62n75hkixl8n7cni4m73w055nsx4czm655k33bjv7"; }; + prePatch = '' + substituteInPlace cmake/libutils.cmake \ + --replace /usr/bin/libtool libtool + sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt + ''; + + patches = stdenv.lib.optional stdenv.isDarwin ./my_context_asm.patch; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ - cmake ncurses openssl zlib xz lzo lz4 bzip2 - # temporary due to https://mariadb.atlassian.net/browse/MDEV-9000 - (if stdenv.is64bit then snappy else null) - pcre libxml2 boost judy bison libevent cracklib - makeWrapper + ncurses openssl zlib pcre ] ++ stdenv.lib.optionals stdenv.isLinux [ jemalloc libaio systemd ] - ++ stdenv.lib.optionals (stdenv.isLinux && !stdenv.isArm) [ numactl ] ++ stdenv.lib.optionals stdenv.isDarwin [ perl fixDarwinDylibNames cctools CoreServices ]; - patches = stdenv.lib.optional stdenv.isDarwin ./my_context_asm.patch; - cmakeFlags = [ "-DBUILD_CONFIG=mysql_release" + "-DMANUFACTURER=NixOS.org" "-DDEFAULT_CHARSET=utf8" "-DDEFAULT_COLLATION=utf8_general_ci" - "-DENABLED_LOCAL_INFILE=ON" + "-DSECURITY_HARDENED=ON" + "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" + "-DINSTALL_MYSQLSHAREDIR=share/mysql" + + "-DWITH_ZLIB=system" + "-DWITH_SSL=system" + "-DWITH_PCRE=system" + ] + ++ optional stdenv.isDarwin "-DCURSES_LIBRARY=${ncurses.out}/lib/libncurses.dylib" + ; + + preConfigure = '' + cmakeFlags="$cmakeFlags -DINSTALL_INCLUDEDIR=''${!outputDev}/include/mysql" + ''; + + postInstall = '' + rm "$out"/lib/*.a + find "''${!outputBin}/bin" -name '*test*' -delete + ''; + + passthru.mysqlVersion = "5.6"; + + meta = with stdenv.lib; { + description = "An enhanced, drop-in replacement for MySQL"; + homepage = https://mariadb.org/; + license = licenses.gpl2; + maintainers = with maintainers; [ thoughtpolice wkennington ]; + platforms = platforms.all; + }; +}; + + +client = stdenv.mkDerivation (common // { + name = "mariadb-client-${common.version}"; + + outputs = [ "dev" "out" "bin" ]; + + propagatedBuildInputs = [ openssl zlib ]; # required from mariadb.pc + + cmakeFlags = common.cmakeFlags ++ [ + "-DWITHOUT_SERVER=ON" + ]; + + preConfigure = common.preConfigure + '' + cmakeFlags="$cmakeFlags \ + -DINSTALL_BINDIR=$bin/bin -DINSTALL_SCRIPTDIR=$bin/bin \ + -DINSTALL_SUPPORTFILESDIR=$bin/share/mysql \ + -DINSTALL_DOCDIR=$bin/share/doc/mysql -DINSTALL_DOCREADMEDIR=$bin/share/doc/mysql \ + " + ''; + + # prevent cycle; it needs to reference $dev + postInstall = common.postInstall + '' + moveToOutput bin/mysql_config "$dev" + ''; + + enableParallelBuilding = true; # the client should be OK +}); + + +server = stdenv.mkDerivation (common // { + name = "mariadb-${common.version}"; + + nativeBuildInputs = common.nativeBuildInputs ++ [ bison ]; + + buildInputs = common.buildInputs ++ [ + xz lzo lz4 bzip2 snappy + libxml2 boost judy libevent cracklib + ] + ++ optionals (stdenv.isLinux && !stdenv.isArm) [ numactl ] + ; + + cmakeFlags = common.cmakeFlags ++ [ "-DMYSQL_DATADIR=/var/lib/mysql" "-DINSTALL_SYSCONFDIR=etc/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_DOCDIR=share/mysql/docs" + "-DINSTALL_DOCREADMEDIR=share/doc/mysql" + "-DINSTALL_DOCDIR=share/doc/mysql" "-DINSTALL_SHAREDIR=share/mysql" + + "-DENABLED_LOCAL_INFILE=ON" "-DWITH_READLINE=ON" - "-DWITH_ZLIB=system" - "-DWITH_SSL=system" - "-DWITH_PCRE=system" - "-DWITH_EMBEDDED_SERVER=yes" "-DWITH_EXTRA_CHARSETS=complex" "-DWITH_EMBEDDED_SERVER=ON" "-DWITH_ARCHIVE_STORAGE_ENGINE=1" @@ -58,83 +138,17 @@ stdenv.mkDerivation rec { "-DWITH_PARTITION_STORAGE_ENGINE=1" "-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1" "-DWITHOUT_FEDERATED_STORAGE_ENGINE=1" - "-DSECURITY_HARDENED=ON" "-DWITH_WSREP=ON" ] ++ stdenv.lib.optionals stdenv.isDarwin [ "-DWITHOUT_OQGRAPH_STORAGE_ENGINE=1" "-DWITHOUT_TOKUDB=1" - "-DCURSES_LIBRARY=${ncurses.out}/lib/libncurses.dylib" ]; - # fails to find lex_token.h sometimes - enableParallelBuilding = false; - - outputs = [ "out" "lib" ]; - setOutputFlags = false; - moveToDev = false; - - prePatch = '' - substituteInPlace cmake/libutils.cmake \ - --replace /usr/bin/libtool libtool - sed -i "s,SET(DEFAULT_MYSQL_HOME.*$,SET(DEFAULT_MYSQL_HOME /not/a/real/dir),g" CMakeLists.txt - sed -i "s,SET(PLUGINDIR.*$,SET(PLUGINDIR $lib/lib/mysql/plugin),g" CMakeLists.txt - - sed -i "s,SET(pkgincludedir.*$,SET(pkgincludedir $lib/include),g" scripts/CMakeLists.txt - sed -i "s,SET(pkglibdir.*$,SET(pkglibdir $lib/lib),g" scripts/CMakeLists.txt - sed -i "s,SET(pkgplugindir.*$,SET(pkgplugindir $lib/lib/mysql/plugin),g" scripts/CMakeLists.txt - - sed -i "s,set(libdir.*$,SET(libdir $lib/lib),g" storage/mroonga/vendor/groonga/CMakeLists.txt - sed -i "s,set(includedir.*$,SET(includedir $lib/include),g" storage/mroonga/vendor/groonga/CMakeLists.txt - sed -i "/\"\$[{]CMAKE_INSTALL_PREFIX}\/\$[{]GRN_RELATIVE_PLUGINS_DIR}\"/d" storage/mroonga/vendor/groonga/CMakeLists.txt - sed -i "s,set(GRN_PLUGINS_DIR.*$,SET(GRN_PLUGINS_DIR $lib/\$\{GRN_RELATIVE_PLUGINS_DIR}),g" storage/mroonga/vendor/groonga/CMakeLists.txt - sed -i 's,[^"]*/var/log,/var/log,g' storage/mroonga/vendor/groonga/CMakeLists.txt + postInstall = common.postInstall + '' + rm -r "$out"/{mysql-test,sql-bench,data} # Don't need testing data + rm "$out"/share/man/man1/mysql-test-run.pl.1 ''; +}); - postInstall = '' - substituteInPlace $out/bin/mysql_install_db \ - --replace basedir=\"\" basedir=\"$out\" - - # Wrap mysqld with --basedir, but as last flag - wrapProgram $out/bin/mysqld - sed -i "s,\(^exec.*$\),\1 --basedir=$out,g" $out/bin/mysqld - - # Remove superfluous files - rm -r $out/mysql-test $out/sql-bench $out/data # Don't need testing data - rm $out/share/man/man1/mysql-test-run.pl.1 - rm $out/bin/rcmysql # Not needed with nixos units - rm $out/bin/mysqlbug # Encodes a path to gcc and not really useful - find $out/bin -name \*test\* -exec rm {} \; - - # Separate libs and includes into their own derivation - mkdir -p $lib - mv $out/lib $lib - mv $out/include $lib - - # Fix the mysql_config - sed -i $out/bin/mysql_config \ - -e 's,-lz,-L${zlib.out}/lib -lz,g' \ - -e 's,-lssl,-L${openssl.out}/lib -lssl,g' - - # Add mysql_config to libs since configure scripts use it - mkdir -p $lib/bin - cp $out/bin/mysql_config $lib/bin - sed -i "/\(execdir\|bindir\)/ s,'[^\"']*',$lib/bin,g" $lib/bin/mysql_config - - # Make sure to propagate lib for compatability - mkdir -p $out/nix-support - echo "$lib" > $out/nix-support/propagated-native-build-inputs - - # Don't install static libraries. - rm $lib/lib/libmysqlclient.a $lib/lib/libmysqld.a - ''; - - passthru.mysqlVersion = "5.6"; +in mariadb - meta = with stdenv.lib; { - description = "An enhanced, drop-in replacement for MySQL"; - homepage = https://mariadb.org/; - license = stdenv.lib.licenses.gpl2; - maintainers = with stdenv.lib.maintainers; [ thoughtpolice wkennington ]; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0f53c172dac2..408209d63074 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10438,7 +10438,7 @@ in }; mysql = mariadb; - libmysql = mysql.lib; + libmysql = mysql.client; # `libmysql` is a slight misnomer ATM mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { }; |