Skip to content

Commit

Permalink
bisq2: init at 2.1.2 (#347160)
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperSandro2000 authored Oct 31, 2024
2 parents 0f807cf + 7367fb0 commit 5bc9884
Show file tree
Hide file tree
Showing 2 changed files with 173 additions and 0 deletions.
169 changes: 169 additions & 0 deletions pkgs/by-name/bi/bisq/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
{
stdenvNoCC,
lib,
makeWrapper,
runtimeShell,
fetchurl,
makeDesktopItem,
copyDesktopItems,
imagemagick,
openjdk,
dpkg,
writeScript,
bash,
tor,
zip,
gnupg,
}:

let
version = "2.1.2";

bisq-launcher =
args:
writeScript "bisq-launcher" ''
#! ${runtimeShell}
# This is just a comment to convince Nix that Tor is a
# runtime dependency; The Tor binary is in a *.jar file,
# whereas Nix only scans for hashes in uncompressed text.
# ${lib.getExe' tor "tor"}
rm -fR $HOME/.local/share/Bisq2/tor
exec "${lib.getExe openjdk}" -Djpackage.app-version=@version@ -classpath @out@/lib/app/desktop-app-launcher.jar:@out@/lib/app/* ${args} bisq.desktop_app_launcher.DesktopAppLauncher "$@"
'';

# A given release will be signed by either Alejandro Garcia or Henrik Jannsen
# as indicated in the file
# https://github.com/bisq-network/bisq2/releases/download/v${version}/signingkey.asc
publicKey =
{
"E222AA02" = fetchurl {
url = "https://github.com/bisq-network/bisq2/releases/download/v${version}/E222AA02.asc";
sha256 = "sha256-31uBpe/+0QQwFyAsoCt1TUWRm0PHfCFOGOx1M16efoE=";
};

"387C8307" = fetchurl {
url = "https://github.com/bisq-network/bisq2/releases/download/v${version}/387C8307.asc";
sha256 = "sha256-PrRYZLT0xv82dUscOBgQGKNf6zwzWUDhriAffZbNpmI=";
};
}
."387C8307";
in
stdenvNoCC.mkDerivation rec {
inherit version;

pname = "bisq2";

src = fetchurl {
url = "https://github.com/bisq-network/bisq2/releases/download/v${version}/Bisq-${version}.deb";
sha256 = "0zgv70xlz3c9mrwmiaa1dgagbc441ppk2vrkgard8zjrvk8rg7va";

# Verify the upstream Debian package prior to extraction.
# See https://bisq.wiki/Bisq_2#Installation
# This ensures that a successful build of this Nix package requires the Debian
# package to pass verification.
nativeBuildInputs = [ gnupg ];
downloadToTemp = true;

postFetch = ''
pushd $(mktemp -d)
export GNUPGHOME=./gnupg
mkdir -m 700 -p $GNUPGHOME
ln -s $downloadedFile ./Bisq-${version}.deb
ln -s ${signature} ./signature.asc
gpg --import ${publicKey}
gpg --batch --verify signature.asc Bisq-${version}.deb
popd
mv $downloadedFile $out
'';
};

signature = fetchurl {
url = "https://github.com/bisq-network/bisq2/releases/download/v${version}/Bisq-${version}.deb.asc";
sha256 = "sha256-WZhI8RDmb7nQqpCQJM86vrp8qQNg+mvRVdSPcDqgzxE=";
};

nativeBuildInputs = [
copyDesktopItems
dpkg
imagemagick
makeWrapper
zip
gnupg
makeWrapper
];

desktopItems = [
(makeDesktopItem {
name = "bisq2";
exec = "bisq2";
icon = "bisq2";
desktopName = "Bisq 2";
genericName = "Decentralized bitcoin exchange";
categories = [
"Network"
"P2P"
];
})

(makeDesktopItem {
name = "bisq2-hidpi";
exec = "bisq2-hidpi";
icon = "bisq2";
desktopName = "Bisq 2 (HiDPI)";
genericName = "Decentralized bitcoin exchange";
categories = [
"Network"
"P2P"
];
})
];

unpackPhase = ''
dpkg -x $src .
'';

buildPhase = ''
# Replace the Tor binary embedded in tor.jar (which is in the zip archive tor.zip)
# with the Tor binary from Nixpkgs.
makeWrapper ${lib.getExe' tor "tor"} ./tor
zip tor.zip ./tor
zip opt/bisq2/lib/app/tor.jar tor.zip
'';

installPhase = ''
runHook preInstall
mkdir -p $out/lib $out/bin
cp -r opt/bisq2/lib/app $out/lib
install -D -m 777 ${bisq-launcher ""} $out/bin/bisq2
substituteAllInPlace $out/bin/bisq2
install -D -m 777 ${bisq-launcher "-Dglass.gtk.uiScale=2.0"} $out/bin/bisq2-hidpi
substituteAllInPlace $out/bin/bisq2-hidpi
for n in 16 24 32 48 64 96 128 256; do
size=$n"x"$n
magick convert opt/bisq2/lib/Bisq2.png -resize $size bisq2.png
install -Dm644 -t $out/share/icons/hicolor/$size/apps bisq2.png
done;
runHook postInstall
'';

meta = with lib; {
description = "Decentralized bitcoin exchange network";
homepage = "https://bisq.network";
mainProgram = "bisq2";
sourceProvenance = with sourceTypes; [
binaryBytecode
];
license = licenses.mit;
maintainers = with maintainers; [ emmanuelrosa ];
platforms = [ "x86_64-linux" ];
};
}
4 changes: 4 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3294,6 +3294,10 @@ with pkgs;

bisq-desktop = callPackage ../applications/blockchains/bisq-desktop { };

bisq2 = callPackage ../by-name/bi/bisq/package.nix {
openjdk = jdk22.override { enableJavaFX = true; };
};

bic = callPackage ../development/interpreters/bic { };

biscuit-cli = callPackage ../tools/security/biscuit-cli { };
Expand Down

0 comments on commit 5bc9884

Please sign in to comment.