mysql-workbench: fix build, modernize and clean up deps (#344547)
This commit is contained in:
+51
-65
@@ -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
|
||||
)
|
||||
'';
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user