nixpkgs/pkgs/applications/misc/dbeaver/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

134 lines
3.6 KiB
Nix
Raw Normal View History

2021-01-04 10:26:50 +00:00
{ lib
, stdenv
2021-03-21 21:31:11 +00:00
, copyDesktopItems
2021-01-04 10:26:50 +00:00
, fetchFromGitHub
, makeDesktopItem
, makeWrapper
, fontconfig
, freetype
, glib
, gtk3
, jdk
, libX11
, libXrender
, libXtst
, zlib
, maven
, webkitgtk
, glib-networking
2021-10-03 18:08:33 +00:00
, javaPackages
2021-01-04 10:26:50 +00:00
}:
2021-03-21 21:31:11 +00:00
(javaPackages.mavenfod.override {
inherit maven; # use overridden maven version (see dbeaver's entry in all-packages.nix)
}) rec {
2021-05-07 14:32:38 +00:00
pname = "dbeaver";
2022-04-04 07:36:35 +00:00
version = "22.0.2"; # When updating also update mvnSha256
2021-01-04 10:26:50 +00:00
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
2022-04-04 07:36:35 +00:00
sha256 = "sha256-3tIxHw4734ggIUDjZO2EGIMbyPNP3yvy9QgnMLw+/fc=";
2021-01-04 10:26:50 +00:00
};
2022-04-04 07:36:35 +00:00
mvnSha256 = "os3eb+In8XreHwdZMacXafIVgOAeSSfCIkO5pwaO6MI=";
mvnParameters = "-P desktop,all-platforms";
2018-01-08 23:22:32 +00:00
2021-03-21 21:31:11 +00:00
nativeBuildInputs = [
copyDesktopItems
makeWrapper
maven
];
2018-01-08 23:22:32 +00:00
buildInputs = [
2021-01-04 10:26:50 +00:00
fontconfig
freetype
glib
gtk3
jdk
libX11
libXrender
libXtst
zlib
] ++ lib.optionals stdenv.isLinux [
webkitgtk
glib-networking
2018-01-08 23:22:32 +00:00
];
2021-03-21 21:31:11 +00:00
desktopItems = [
(makeDesktopItem {
name = "dbeaver";
exec = "dbeaver";
icon = "dbeaver";
desktopName = "dbeaver";
comment = "SQL Integrated Development Environment";
genericName = "SQL Integrated Development Environment";
categories = [ "Development" ];
2021-03-21 21:31:11 +00:00
})
2018-01-08 23:22:32 +00:00
];
2021-01-04 10:26:50 +00:00
installPhase =
let
2021-03-21 21:31:11 +00:00
productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";
2021-02-28 19:41:44 +00:00
platformMap = {
aarch64-linux = "aarch64";
x86_64-darwin = "x86_64";
x86_64-linux = "x86_64";
};
systemPlatform = platformMap.${stdenv.hostPlatform.system} or (throw "dbeaver not supported on ${stdenv.hostPlatform.system}");
2021-01-04 10:26:50 +00:00
in
2021-01-04 18:27:48 +00:00
if stdenv.isDarwin then ''
2021-02-28 19:41:44 +00:00
runHook preInstall
2021-01-04 18:27:48 +00:00
mkdir -p $out/Applications $out/bin
2021-02-28 19:41:44 +00:00
cp -r ${productTargetPath}/macosx/cocoa/${systemPlatform}/DBeaver.app $out/Applications
2021-01-04 18:27:48 +00:00
sed -i "/^-vm/d; /bin\/java/d" $out/Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini
ln -s $out/Applications/DBeaver.app/Contents/MacOS/dbeaver $out/bin/dbeaver
wrapProgram $out/Applications/DBeaver.app/Contents/MacOS/dbeaver \
--prefix JAVA_HOME : ${jdk.home} \
--prefix PATH : ${jdk}/bin
2021-02-28 19:41:44 +00:00
runHook postInstall
2021-01-04 18:27:48 +00:00
'' else ''
2021-02-28 19:41:44 +00:00
runHook preInstall
2021-01-04 10:26:50 +00:00
mkdir -p $out/
2021-02-28 19:41:44 +00:00
cp -r ${productTargetPath}/linux/gtk/${systemPlatform}/dbeaver $out/dbeaver
2018-01-08 23:22:32 +00:00
2021-01-04 10:26:50 +00:00
# Patch binaries.
interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
patchelf --set-interpreter $interpreter $out/dbeaver/dbeaver
2018-01-08 23:22:32 +00:00
2021-01-04 10:26:50 +00:00
makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
--prefix PATH : ${jdk}/bin \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk glib-networking ])} \
--prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
2021-01-04 10:26:50 +00:00
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
2018-01-08 23:22:32 +00:00
2021-01-04 10:26:50 +00:00
mkdir -p $out/share/pixmaps
ln -s $out/dbeaver/icon.xpm $out/share/pixmaps/dbeaver.xpm
2021-02-28 19:41:44 +00:00
runHook postInstall
2021-01-04 10:26:50 +00:00
'';
2018-01-08 23:22:32 +00:00
meta = with lib; {
2020-03-23 09:05:32 +00:00
homepage = "https://dbeaver.io/";
2018-01-08 23:22:32 +00:00
description = "Universal SQL Client for developers, DBA and analysts. Supports MySQL, PostgreSQL, MariaDB, SQLite, and more";
longDescription = ''
Free multi-platform database tool for developers, SQL programmers, database
administrators and analysts. Supports all popular databases: MySQL,
PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access,
Teradata, Firebird, Derby, etc.
'';
license = licenses.asl20;
2021-02-28 19:41:44 +00:00
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
2021-08-13 06:40:52 +00:00
maintainers = with maintainers; [ jojosch mkg20001 ];
2018-01-08 23:22:32 +00:00
};
}