Merge pull request #320205 from yzx9/update-dbeaver-bin-darwin

dbeaver-bin: add darwin support
This commit is contained in:
Weijia Wang 2024-06-16 20:26:25 +02:00 committed by GitHub
commit 33c992ca44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 73 additions and 34 deletions

View File

@ -23018,6 +23018,15 @@
githubId = 5253988;
name = "yvt";
};
yzx9 = {
email = "yuan.zx@outlook.com";
github = "yzx9";
githubId = 41458459;
name = "Zexin Yuan";
keys = [{
fingerprint = "FE16 B281 90EF 6C3F F661 6441 C2DD 1916 FE47 1BE2";
}];
};
zachcoyle = {
email = "zach.coyle@gmail.com";
github = "zachcoyle";

View File

@ -1,23 +1,27 @@
{ lib
, stdenvNoCC
, fetchurl
, makeWrapper
, openjdk17
, gnused
, autoPatchelfHook
, wrapGAppsHook3
{
lib,
stdenvNoCC,
fetchurl,
undmg,
makeWrapper,
openjdk17,
gnused,
autoPatchelfHook,
wrapGAppsHook3,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
version = "24.0.5";
nativeBuildInputs = [
makeWrapper
gnused
autoPatchelfHook
wrapGAppsHook3
];
nativeBuildInputs =
[ makeWrapper ]
++ lib.optionals (!stdenvNoCC.isDarwin) [
gnused
wrapGAppsHook3
autoPatchelfHook
]
++ lib.optionals stdenvNoCC.isDarwin [ undmg ];
src =
let
@ -26,10 +30,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
suffix = selectSystem {
x86_64-linux = "linux.gtk.x86_64-nojdk.tar.gz";
aarch64-linux = "linux.gtk.aarch64-nojdk.tar.gz";
x86_64-darwin = "macos-x86_64.dmg";
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
x86_64-linux = "sha256-q6VIr55hXn47kZrE2i6McEOfp2FBOvwB0CcUnRHFMZs=";
aarch64-linux = "sha256-Xn3X1C31UALBAsZIGyMWdp0HNhJEm5N+7Go7nMs8W64=";
x86_64-darwin = "sha256-XOQaMNQHOC4dVJXIUn4l4Oa7Gohbq+JMDFusIy/U+tc=";
aarch64-darwin = "sha256-554ea5p1MR4XIHtSeByd4S/Ke4cKRZbITTNRRDoRqPI=";
};
in
fetchurl {
@ -40,28 +48,44 @@ stdenvNoCC.mkDerivation (finalAttrs: {
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/opt/dbeaver $out/bin
cp -r * $out/opt/dbeaver
makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
--prefix PATH : "${openjdk17}/bin" \
--set JAVA_HOME "${openjdk17.home}"
sourceRoot = lib.optional stdenvNoCC.isDarwin "dbeaver.app";
mkdir -p $out/share/icons/hicolor/256x256/apps
ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
installPhase =
if !stdenvNoCC.isDarwin then
''
runHook preInstall
mkdir -p $out/opt/dbeaver $out/bin
cp -r * $out/opt/dbeaver
makeWrapper $out/opt/dbeaver/dbeaver $out/bin/dbeaver \
--prefix PATH : "${openjdk17}/bin" \
--set JAVA_HOME "${openjdk17.home}"
mkdir -p $out/share/applications
ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
mkdir -p $out/share/icons/hicolor/256x256/apps
ln -s $out/opt/dbeaver/dbeaver.png $out/share/icons/hicolor/256x256/apps/dbeaver.png
substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
--replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
--replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
mkdir -p $out/share/applications
ln -s $out/opt/dbeaver/dbeaver-ce.desktop $out/share/applications/dbeaver.desktop
sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
substituteInPlace $out/opt/dbeaver/dbeaver-ce.desktop \
--replace-fail "/usr/share/dbeaver-ce/dbeaver.png" "dbeaver" \
--replace-fail "/usr/share/dbeaver-ce/dbeaver" "$out/bin/dbeaver"
runHook postInstall
'';
sed -i '/^Path=/d' $out/share/applications/dbeaver.desktop
runHook postInstall
''
else
''
runHook preInstall
mkdir -p $out/{Applications/dbeaver.app,bin}
cp -R . $out/Applications/dbeaver.app
makeWrapper $out/{Applications/dbeaver.app/Contents/MacOS,bin}/dbeaver \
--prefix PATH : "${openjdk17}/bin" \
--set JAVA_HOME "${openjdk17.home}"
runHook postInstall
'';
passthru.updateScript = ./update.sh;
@ -76,8 +100,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
'';
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ gepbird mkg20001 ];
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
gepbird
mkg20001
yzx9
];
mainProgram = "dbeaver";
};
})

View File

@ -14,7 +14,9 @@ fi
for i in \
"x86_64-linux linux.gtk.x86_64-nojdk.tar.gz" \
"aarch64-linux linux.gtk.aarch64-nojdk.tar.gz"
"aarch64-linux linux.gtk.aarch64-nojdk.tar.gz" \
"x86_64-darwin macos-x86_64.dmg" \
"aarch64-darwin macos-aarch64.dmg"
do
set -- $i
prefetch=$(nix-prefetch-url "https://github.com/dbeaver/dbeaver/releases/download/$latestVersion/dbeaver-ce-$latestVersion-$2")