diff --git a/pkgs/applications/misc/mysql-workbench/dont-search-for-antlr-jar.patch b/pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch similarity index 100% rename from pkgs/applications/misc/mysql-workbench/dont-search-for-antlr-jar.patch rename to pkgs/by-name/my/mysql-workbench/dont-search-for-antlr-jar.patch diff --git a/pkgs/applications/misc/mysql-workbench/fix-swig-build.patch b/pkgs/by-name/my/mysql-workbench/fix-swig-build.patch similarity index 100% rename from pkgs/applications/misc/mysql-workbench/fix-swig-build.patch rename to pkgs/by-name/my/mysql-workbench/fix-swig-build.patch diff --git a/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch b/pkgs/by-name/my/mysql-workbench/hardcode-paths.patch similarity index 100% rename from pkgs/applications/misc/mysql-workbench/hardcode-paths.patch rename to pkgs/by-name/my/mysql-workbench/hardcode-paths.patch diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/by-name/my/mysql-workbench/package.nix similarity index 74% rename from pkgs/applications/misc/mysql-workbench/default.nix rename to pkgs/by-name/my/mysql-workbench/package.nix index bc33c7259c45..9828074955f2 100644 --- a/pkgs/applications/misc/mysql-workbench/default.nix +++ b/pkgs/by-name/my/mysql-workbench/package.nix @@ -3,49 +3,52 @@ stdenv, fetchurl, replaceVars, + cmake, ninja, pkg-config, - glibc, - gtk3, - gtkmm3, - pcre, + jre, swig, - antlr4_12, + wrapGAppsHook3, + + bash, + coreutils, + glibc, sudo, + + cairo, mysql, + libiodbc, + proj, + + antlr4_12, + gtkmm3, libxml2, libmysqlconnectorcpp, vsqlite, gdal, - libiodbc, - libpthreadstubs, - libXdmcp, + boost, + libssh, + openssl, + rapidjson, libuuid, libzip, libsecret, - libssh, - python3, - jre, - boost, - libsigcxx, - libX11, - openssl, - rapidjson, - proj, - cairo, - libxkbcommon, - libepoxy, - wrapGAppsHook3, - at-spi2-core, - dbus, - bash, - coreutils, - zstd, + python3Packages, }: let - inherit (python3.pkgs) paramiko pycairo pyodbc; + # for some reason the package doesn't build with swig 4.3.0 + swig_4_2 = swig.overrideAttrs (prevAttrs: { + version = "4.2.1"; + src = prevAttrs.src.override { + hash = "sha256-VlUsiRZLScmbC7hZDzKqUr9481YXVwo0eXT/jy6Fda8="; + }; + }); + + getCoreExe = lib.getExe' coreutils; + + inherit (python3Packages) paramiko pycairo pyodbc; in stdenv.mkDerivation (finalAttrs: { pname = "mysql-workbench"; @@ -58,23 +61,23 @@ stdenv.mkDerivation (finalAttrs: { patches = [ (replaceVars ./hardcode-paths.patch { - catchsegv = "${glibc.bin}/bin/catchsegv"; - bash = "${bash}/bin/bash"; - cp = "${coreutils}/bin/cp"; - dd = "${coreutils}/bin/dd"; - ls = "${coreutils}/bin/ls"; - mkdir = "${coreutils}/bin/mkdir"; - nohup = "${coreutils}/bin/nohup"; - rm = "${coreutils}/bin/rm"; - rmdir = "${coreutils}/bin/rmdir"; - stat = "${coreutils}/bin/stat"; - sudo = "${sudo}/bin/sudo"; + bash = lib.getExe bash; + catchsegv = lib.getExe' glibc "catchsegv"; + cp = getCoreExe "cp"; + dd = getCoreExe "dd"; + ls = getCoreExe "ls"; + mkdir = getCoreExe "mkdir"; + nohup = getCoreExe "nohup"; + rm = getCoreExe "rm"; + rmdir = getCoreExe "rmdir"; + stat = getCoreExe "stat"; + sudo = lib.getExe sudo; }) # Fix swig not being able to find headers # https://github.com/NixOS/nixpkgs/pull/82362#issuecomment-597948461 (replaceVars ./fix-swig-build.patch { - cairoDev = "${cairo.dev}"; + cairoDev = lib.getDev cairo; }) # Don't try to override the ANTLR_JAR_PATH specified in cmakeFlags @@ -93,17 +96,13 @@ stdenv.mkDerivation (finalAttrs: { ninja pkg-config jre - swig + swig_4_2 wrapGAppsHook3 ]; buildInputs = [ - gtk3 - gtkmm3 - libX11 antlr4_12.runtime.cpp - python3 - mysql + gtkmm3 (libxml2.override { enableHttp = true; }) libmysqlconnectorcpp vsqlite @@ -112,29 +111,16 @@ stdenv.mkDerivation (finalAttrs: { libssh openssl rapidjson - libiodbc - pcre - cairo libuuid libzip libsecret - libsigcxx - proj + libiodbc # python dependencies: paramiko pycairo pyodbc # TODO: package sqlanydb and add it here - - # transitive dependencies: - libpthreadstubs - libXdmcp - libxkbcommon - libepoxy - at-spi2-core - dbus - zstd ]; env.NIX_CFLAGS_COMPILE = toString ( @@ -153,13 +139,13 @@ stdenv.mkDerivation (finalAttrs: { ); cmakeFlags = [ - "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config" - "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config" + (lib.cmakeFeature "MySQL_CONFIG_PATH" (lib.getExe' mysql "mysql_config")) + (lib.cmakeFeature "IODBC_CONFIG_PATH" (lib.getExe' libiodbc "iodbc-config")) + (lib.cmakeFeature "ANTLR_JAR_PATH" "${antlr4_12.jarLocation}") # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8. # Newer versions of connector still provide the legacy library when enabled # but the headers are in a different location. - "-DANTLR_JAR_PATH=${antlr4_12.jarLocation}" - "-DMySQLCppConn_INCLUDE_DIR=${libmysqlconnectorcpp}/include/jdbc" + (lib.cmakeFeature "MySQLCppConn_INCLUDE_DIR" "${lib.getDev libmysqlconnectorcpp}/include/jdbc") ]; # There is already an executable and a wrapper in bindir @@ -168,8 +154,8 @@ stdenv.mkDerivation (finalAttrs: { preFixup = '' gappsWrapperArgs+=( - --prefix PATH : "${python3}/bin" - --prefix PROJSO : "${proj}/lib/libproj.so" + --prefix PATH : "${lib.makeBinPath [ python3Packages.python ]}" + --prefix PROJSO : "${lib.getLib proj}/lib/libproj.so" --set PYTHONPATH $PYTHONPATH ) ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f2036862232f..d65e0026d344 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18148,12 +18148,11 @@ with pkgs; lice = python3Packages.callPackage ../tools/misc/lice { }; - mysql-workbench = callPackage ../applications/misc/mysql-workbench (let mysql = mysql80; in { + mysql-workbench = callPackage ../by-name/my/mysql-workbench/package.nix (let mysql = mysql80; in { gdal = gdal.override { libmysqlclient = mysql; }; mysql = mysql; - pcre = pcre-cpp; }); resp-app = libsForQt5.callPackage ../applications/misc/resp-app { };