dbeaver: build from source
This commit is contained in:
parent
c28984592c
commit
4fc999db62
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user