From f72d7dcf777af3007a1f91916251d56904ec0af9 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 6 Sep 2020 09:06:25 -0500 Subject: [PATCH 01/12] mariadb-connector-c: separate .dev output --- .../sql/mariadb/connector-c/default.nix | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/sql/mariadb/connector-c/default.nix b/pkgs/servers/sql/mariadb/connector-c/default.nix index fb41890d432..8c71514dfba 100644 --- a/pkgs/servers/sql/mariadb/connector-c/default.nix +++ b/pkgs/servers/sql/mariadb/connector-c/default.nix @@ -18,6 +18,8 @@ stdenv.mkDerivation { inherit sha256; }; + outputs = [ "out" "dev" ]; + cmakeFlags = [ "-DMARIADB_UNIX_ADDR=/run/mysqld/mysqld.sock" "-DWITH_CURL=ON" @@ -25,6 +27,12 @@ stdenv.mkDerivation { "-DWITH_MYSQLCOMPAT=ON" ]; + postPatch = '' + substituteInPlace mariadb_config/mariadb_config.c.in \ + --replace '@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@' "$dev/include" \ + --replace '@CMAKE_SYSROOT@@CMAKE_INSTALL_PREFIX@/@INSTALL_LIBDIR@' "$out/lib/mariadb" + ''; + # The cmake setup-hook uses $out/lib by default, this is not the case here. preConfigure = optionalString stdenv.isDarwin '' cmakeFlagsArray+=("-DCMAKE_INSTALL_NAME_DIR=$out/lib/mariadb") @@ -36,12 +44,16 @@ stdenv.mkDerivation { enableParallelBuilding = true; + postInstall = '' + moveToOutput bin/mariadb_config "$dev" + ''; + postFixup = '' - ln -sv mariadb_config $out/bin/mysql_config + ln -sv mariadb_config $dev/bin/mysql_config ln -sv mariadb $out/lib/mysql - ln -sv mariadb $out/include/mysql - ln -sv mariadb_version.h $out/include/mariadb/mysql_version.h - ln -sv libmariadb.pc $out/lib/pkgconfig/mysqlclient.pc + ln -sv mariadb $dev/include/mysql + ln -sv mariadb_version.h $dev/include/mariadb/mysql_version.h + ln -sv libmariadb.pc $dev/lib/pkgconfig/mysqlclient.pc ''; meta = { From 26265555f517948ba406776c9235cca32af4f62e Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 09:52:46 -0500 Subject: [PATCH 02/12] mailutils: fix build with multiple mariadb outputs --- pkgs/tools/networking/mailutils/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix index 9cf5f91cd6d..adcd2f1dc13 100644 --- a/pkgs/tools/networking/mailutils/default.nix +++ b/pkgs/tools/networking/mailutils/default.nix @@ -18,9 +18,6 @@ stdenv.mkDerivation rec { */Makefile{.in,.am} sed -i 's:/usr/lib/mysql:${libmysqlclient}/lib/mysql:' configure.ac sed -i 's/0\.18/0.19/' configure.ac - sed -i -e 's:mysql/mysql.h:mysql.h:' \ - -e 's:mysql/errmsg.h:errmsg.h:' \ - sql/mysql.c ''; nativeBuildInputs = [ From de938ee3f56818dab5e7f57c9430d3c4c248dcf5 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 13:15:18 -0500 Subject: [PATCH 03/12] gdal: fix path to mysql_config --- pkgs/development/libraries/gdal/2.4.0.nix | 2 +- pkgs/development/libraries/gdal/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gdal/2.4.0.nix b/pkgs/development/libraries/gdal/2.4.0.nix index 201bec30e22..d3505679e4d 100644 --- a/pkgs/development/libraries/gdal/2.4.0.nix +++ b/pkgs/development/libraries/gdal/2.4.0.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { "--with-poppler=${poppler.dev}" # optional "--with-libz=${zlib.dev}" # optional "--with-pg=${postgresql}/bin/pg_config" - "--with-mysql=${libmysqlclient}/bin/mysql_config" + "--with-mysql=${getDev libmysqlclient}/bin/mysql_config" "--with-geotiff=${libgeotiff.dev}" "--with-sqlite3=${sqlite.dev}" "--with-spatialite=${libspatialite}" diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index 72135f1a62d..1295a100232 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { "--with-poppler=${poppler.dev}" # optional "--with-libz=${zlib.dev}" # optional "--with-pg=yes" # since gdal 3.0 doesn't use ${postgresql}/bin/pg_config - "--with-mysql=${libmysqlclient}/bin/mysql_config" + "--with-mysql=${getDev libmysqlclient}/bin/mysql_config" "--with-geotiff=${libgeotiff}" "--with-sqlite3=${sqlite.dev}" "--with-spatialite=${libspatialite}" From b750697c1f537e90476aff0378f1b75add84e497 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 13:27:35 -0500 Subject: [PATCH 04/12] glpk: do not hard code include path for libmysqlclient --- pkgs/development/libraries/glpk/default.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix index 8c5a50c43d1..124e03baee1 100644 --- a/pkgs/development/libraries/glpk/default.nix +++ b/pkgs/development/libraries/glpk/default.nix @@ -1,6 +1,7 @@ { stdenv , fetchurl , fetchpatch +, libmysqlclient # Excerpt from glpk's INSTALL file: # This feature allows the exact simplex solver to use the GNU MP # bignum library. If it is disabled, the exact simplex solver uses the @@ -21,9 +22,11 @@ stdenv.mkDerivation rec { sha256 = "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2"; }; - buildInputs = stdenv.lib.optionals withGmp [ - gmp - ]; + buildInputs = + [ libmysqlclient + ] ++ stdenv.lib.optionals withGmp [ + gmp + ]; configureFlags = stdenv.lib.optionals withGmp [ "--with-gmp" @@ -47,6 +50,13 @@ stdenv.mkDerivation rec { }) ]; + postPatch = + # Do not hardcode the include path for libmysqlclient. + '' + substituteInPlace configure \ + --replace '-I/usr/include/mysql' '$(mysql_config --include)' + ''; + doCheck = true; meta = { From c7d0b34a1230c17396ef5c29d8cb520801ea2204 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 14:06:31 -0500 Subject: [PATCH 05/12] kea: fix path to mysql_config --- pkgs/tools/networking/kea/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix index 386a3ae280a..1637827f66e 100644 --- a/pkgs/tools/networking/kea/default.nix +++ b/pkgs/tools/networking/kea/default.nix @@ -1,6 +1,8 @@ { stdenv, fetchurl, autoreconfHook, pkgconfig, openssl, botan2, log4cplus , boost, python3, postgresql, libmysqlclient, gmp, bzip2 }: +let inherit (stdenv) lib; in + stdenv.mkDerivation rec { pname = "kea"; version = "1.5.0-P1"; @@ -20,7 +22,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--localstatedir=/var" "--with-pgsql=${postgresql}/bin/pg_config" - "--with-mysql=${libmysqlclient}/bin/mysql_config" + "--with-mysql=${lib.getDev libmysqlclient}/bin/mysql_config" ]; nativeBuildInputs = [ autoreconfHook pkgconfig ]; From 106616102dc4facc2daad35de7a393b963316d67 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 14:17:23 -0500 Subject: [PATCH 06/12] grass: fix libmysqlclient include path --- pkgs/applications/gis/grass/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/gis/grass/default.nix b/pkgs/applications/gis/grass/default.nix index 420f57bb93f..c1b7841dc58 100644 --- a/pkgs/applications/gis/grass/default.nix +++ b/pkgs/applications/gis/grass/default.nix @@ -3,6 +3,8 @@ , proj, gdal, geos, sqlite, postgresql, libmysqlclient, python2Packages, libLAS, proj-datumgrid }: +let inherit (stdenv) lib; in + stdenv.mkDerivation rec { name = "grass"; version = "7.6.1"; @@ -42,7 +44,7 @@ stdenv.mkDerivation rec { "--with-postgres-libs=${postgresql.lib}/lib/" # it complains about missing libmysqld but doesn't really seem to need it "--with-mysql" - "--with-mysql-includes=${libmysqlclient}/include/mysql" + "--with-mysql-includes=${lib.getDev libmysqlclient}/include/mysql" "--with-mysql-libs=${libmysqlclient}/lib/mysql" "--with-blas" "--with-liblas=${libLAS}/bin/liblas-config" From 3510a5f13c9f1da9564dd42771148b7d50e6aade Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 14:17:41 -0500 Subject: [PATCH 07/12] libdbi-drivers: fix libmysqlclient include path --- pkgs/development/libraries/libdbi-drivers/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libdbi-drivers/default.nix b/pkgs/development/libraries/libdbi-drivers/default.nix index d321d7d650a..871c9f97167 100644 --- a/pkgs/development/libraries/libdbi-drivers/default.nix +++ b/pkgs/development/libraries/libdbi-drivers/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { "--with-dbi-libdir=${libdbi}/lib" ] ++ optionals (libmysqlclient != null) [ "--with-mysql" - "--with-mysql-incdir=${libmysqlclient}/include/mysql" + "--with-mysql-incdir=${getDev libmysqlclient}/include/mysql" "--with-mysql-libdir=${libmysqlclient}/lib/mysql" ] ++ optionals (sqlite != null) [ "--with-sqlite3" From 52c9fbc8354fb079dfb9d61a33899f0a14c68966 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 9 Sep 2020 15:52:27 -0500 Subject: [PATCH 08/12] luadbi-mysql: fix libmysqlclient include path --- pkgs/development/lua-modules/overrides.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 6416d59a71e..8e77c190247 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -169,7 +169,7 @@ with super; luadbi-mysql = super.luadbi-mysql.override({ extraVariables = { # Can't just be /include and /lib, unfortunately needs the trailing 'mysql' - MYSQL_INCDIR="${pkgs.libmysqlclient}/include/mysql"; + MYSQL_INCDIR="${pkgs.libmysqlclient.dev}/include/mysql"; MYSQL_LIBDIR="${pkgs.libmysqlclient}/lib/mysql"; }; buildInputs = [ From 951ec9287a7176cb3395bc546f59210cc50340e2 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 12 Sep 2020 05:59:38 -0500 Subject: [PATCH 09/12] mydumper: set MYSQL_INCLUDE_DIR --- pkgs/tools/backup/mydumper/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/tools/backup/mydumper/default.nix b/pkgs/tools/backup/mydumper/default.nix index 88a72762990..611e543ca6c 100644 --- a/pkgs/tools/backup/mydumper/default.nix +++ b/pkgs/tools/backup/mydumper/default.nix @@ -1,6 +1,8 @@ { stdenv, fetchFromGitHub, cmake, pkgconfig , glib, zlib, pcre, libmysqlclient, libressl }: +let inherit (stdenv.lib) getDev; in + stdenv.mkDerivation rec { version = "0.9.5"; pname = "mydumper"; @@ -16,6 +18,8 @@ stdenv.mkDerivation rec { buildInputs = [ glib zlib pcre libmysqlclient libressl ]; + cmakeFlags = [ "-DMYSQL_INCLUDE_DIR=${getDev libmysqlclient}/include/mysql" ]; + meta = with stdenv.lib; { description = ''High-perfomance MySQL backup tool''; homepage = "https://github.com/maxbube/mydumper"; From 9bbe7a06fd285ff874f1f279600d50845fe30110 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 12 Sep 2020 06:02:54 -0500 Subject: [PATCH 10/12] opendbx: set libmysqlclient include path --- pkgs/development/libraries/opendbx/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/opendbx/default.nix b/pkgs/development/libraries/opendbx/default.nix index 16ec6a5c110..954e6cc6b66 100644 --- a/pkgs/development/libraries/opendbx/default.nix +++ b/pkgs/development/libraries/opendbx/default.nix @@ -1,5 +1,7 @@ { stdenv, fetchurl, readline, libmysqlclient, postgresql, sqlite }: +let inherit (stdenv.lib) getDev; in + stdenv.mkDerivation rec { name = "opendbx-1.4.6"; @@ -9,7 +11,7 @@ stdenv.mkDerivation rec { }; preConfigure = '' - export CPPFLAGS="-I${libmysqlclient}/include/mysql" + export CPPFLAGS="-I${getDev libmysqlclient}/include/mysql" export LDFLAGS="-L${libmysqlclient}/lib/mysql -L${postgresql}/lib" configureFlagsArray=(--with-backends="mysql pgsql sqlite3") ''; From 7ac43898feffccfd8cdb176a8f6d0268fbc80e1b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 12 Sep 2020 06:09:52 -0500 Subject: [PATCH 11/12] pmacct: set path to mysql_config --- pkgs/tools/networking/pmacct/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/networking/pmacct/default.nix b/pkgs/tools/networking/pmacct/default.nix index ffecbfcaf42..2bb6f373727 100644 --- a/pkgs/tools/networking/pmacct/default.nix +++ b/pkgs/tools/networking/pmacct/default.nix @@ -19,7 +19,7 @@ assert withSQLite -> sqlite != null; assert withPgSQL -> postgresql != null; assert withMysql -> libmysqlclient != null; -let inherit (stdenv.lib) optional; in +let inherit (stdenv.lib) getDev optional optionalString; in stdenv.mkDerivation rec { version = "1.7.5"; @@ -40,6 +40,9 @@ stdenv.mkDerivation rec { ++ optional withPgSQL postgresql ++ optional withMysql [ libmysqlclient zlib ]; + MYSQL_CONFIG = + optionalString withMysql "${getDev libmysqlclient}/bin/mysql_config"; + configureFlags = [ "--with-pcap-includes=${libpcap}/include" ] ++ optional withJansson "--enable-jansson" From f41b7f74d86ffe6b89773c999457966d4431911f Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 12 Sep 2020 06:25:56 -0500 Subject: [PATCH 12/12] communi: qmakeFlags --- .../networking/irc/communi/default.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/networking/irc/communi/default.nix b/pkgs/applications/networking/irc/communi/default.nix index 6cb6f2c2ef6..f3a840e23d0 100644 --- a/pkgs/applications/networking/irc/communi/default.nix +++ b/pkgs/applications/networking/irc/communi/default.nix @@ -19,16 +19,17 @@ stdenv.mkDerivation rec { preConfigure = '' export QMAKEFEATURES=${libcommuni}/features - qmakeFlags="$qmakeFlags \ - COMMUNI_INSTALL_PREFIX=$out \ - COMMUNI_INSTALL_BINS=$out/bin \ - COMMUNI_INSTALL_PLUGINS=$out/lib/communi/plugins \ - COMMUNI_INSTALL_ICONS=$out/share/icons/hicolor \ - COMMUNI_INSTALL_DESKTOP=$out/share/applications \ - COMMUNI_INSTALL_THEMES=$out/share/communi/themes - " ''; + qmakeFlags = [ + "COMMUNI_INSTALL_PREFIX=${placeholder "out"}" + "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" + "COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins" + "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor" + "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications" + "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes" + ]; + postInstall = stdenv.lib.optionalString stdenv.isLinux '' substituteInPlace "$out/share/applications/communi.desktop" \ --replace "/usr/bin" "$out/bin"