dbeaver: build from source

This commit is contained in:
Johannes Schleifenbaum 2021-01-04 11:26:50 +01:00
parent c28984592c
commit 4fc999db62
No known key found for this signature in database
GPG Key ID: 059093B1A278BCD0
2 changed files with 100 additions and 43 deletions

View File

@ -1,14 +1,20 @@
{ lib, stdenv, fetchurl, makeDesktopItem, makeWrapper { lib
, fontconfig, freetype, glib, gtk3 , stdenv
, jdk, libX11, libXrender, libXtst, zlib }: , fetchFromGitHub
, makeDesktopItem
# The build process is almost like eclipse's. , makeWrapper
# See `pkgs/applications/editors/eclipse/*.nix` , fontconfig
, freetype
stdenv.mkDerivation rec { , glib
pname = "dbeaver-ce"; , gtk3
version = "7.3.2"; , jdk
, libX11
, libXrender
, libXtst
, zlib
, maven
}:
let
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "dbeaver"; name = "dbeaver";
exec = "dbeaver"; exec = "dbeaver";
@ -18,27 +24,72 @@ stdenv.mkDerivation rec {
genericName = "SQL Integrated Development Environment"; genericName = "SQL Integrated Development Environment";
categories = "Development;"; categories = "Development;";
}; };
in
stdenv.mkDerivation rec {
pname = "dbeaver-ce";
version = "7.3.2"; # When updating also update fetchedMavenDeps.sha256
src = fetchFromGitHub {
owner = "dbeaver";
repo = "dbeaver";
rev = version;
sha256 = "sha256-gh3++IEQzWOKGsazqeMp0aHuZ835etAou62cgz0GoNQ=";
};
fetchedMavenDeps = stdenv.mkDerivation {
name = "dbeaver-${version}-maven-deps";
inherit src;
buildInputs = [ buildInputs = [
fontconfig freetype glib gtk3 maven
jdk libX11 libXrender libXtst zlib ];
buildPhase = "mvn package -Dmaven.repo.local=$out/.m2";
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
installPhase = ''
find $out -type f \
-name \*.lastUpdated -or \
-name resolver-status.properties -or \
-name _remote.repositories \
-delete
'';
# don't do any fixup
dontFixup = true;
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-uTKevwZvKiYOBz0hshh1rLEj7htYF7FQiTq6vZiVs7Q=";
};
buildInputs = [
fontconfig
freetype
glib
gtk3
jdk
libX11
libXrender
libXtst
makeWrapper
zlib
]; ];
nativeBuildInputs = [ nativeBuildInputs = [
makeWrapper maven
]; ];
src = fetchurl { buildPhase = ''
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; mvn package --offline -Dmaven.repo.local=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
sha256 = "sha256-4BVXcR8/E4uIrPQJe9KU9577j4XLTxJWTO8g0vCHWts="; '';
};
installPhase = ''
# remove bundled jre
rm -rf jre
installPhase =
let
productTargetPath = "product/standalone/target/products/org.jkiss.dbeaver.core.product";
in
''
mkdir -p $out/ mkdir -p $out/
cp -r . $out/dbeaver cp -r ${productTargetPath}/linux/gtk/x86_64/dbeaver $out/dbeaver
# Patch binaries. # Patch binaries.
interpreter=$(cat $NIX_CC/nix-support/dynamic-linker) interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
@ -68,6 +119,6 @@ stdenv.mkDerivation rec {
''; '';
license = licenses.asl20; license = licenses.asl20;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.jojosch ]; maintainers = with maintainers; [ jojosch ];
}; };
} }

View File

@ -3479,7 +3479,13 @@ in
davfs2 = callPackage ../tools/filesystems/davfs2 { }; davfs2 = callPackage ../tools/filesystems/davfs2 { };
dbeaver = callPackage ../applications/misc/dbeaver { }; dbeaver = callPackage ../applications/misc/dbeaver {
# TODO: remove once maven uses JDK 11
# error: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
maven = maven.override {
jdk = jdk11;
};
};
dbench = callPackage ../development/tools/misc/dbench { }; dbench = callPackage ../development/tools/misc/dbench { };