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" 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" 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}" 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 = { 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" 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") ''; 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 = [ 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 = { 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"; 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 ]; 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 = [ 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"