Skip to content

Commit

Permalink
bisq2: init @ 2.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
emmanuelrosa committed Oct 7, 2024
1 parent 6710d0d commit ed53720
Show file tree
Hide file tree
Showing 3 changed files with 214 additions and 0 deletions.
158 changes: 158 additions & 0 deletions pkgs/by-name/bi/bisq/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
{
stdenvNoCC,
lib,
makeWrapper,
fetchurl,
makeDesktopItem,
copyDesktopItems,
imagemagick,
openjdk,
dpkg,
writeScript,
bash,
tor,
zip,
gnupg,
}:

let
bisq-launcher =
args:
writeScript "bisq-launcher" ''
#! ${bash}/bin/bash
# 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.
# ${bisq-tor}
rm -fR $HOME/.local/share/Bisq2/tor
exec "${openjdk}/bin/java" -Djpackage.app-version=@version@ -classpath @out@/lib/app/desktop-app-launcher.jar:@out@/lib/app/* ${args} bisq.desktop_app_launcher.DesktopAppLauncher "$@"
'';

bisq-tor = writeScript "bisq-tor" ''
#! ${bash}/bin/bash
exec ${tor}/bin/tor "$@"
'';

# Alejandro Garcia's public key was obtained from
# https://bisq.network/pubkey/E222AA02.asc
publicKey = ./pubkey.asc;
in
stdenvNoCC.mkDerivation rec {
pname = "bisq2";
version = "2.1.0";

src = fetchurl {
url = "https://github.com/bisq-network/${pname}/releases/download/v${version}/Bisq-${version}.deb";
sha256 = "sha256-nvJy7V0Jh0gWpDtj9tq4yjd/npOcy+wTo8YKAOJUOJs=";

# Verify the upstream Debian package prior to extraction.
# See https://bisq.wiki/Downloading_and_installing#Verify_installer_file
# 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/${pname}/releases/download/v${version}/Bisq-${version}.deb.asc";
sha256 = "sha256-D8hLTTXTnoC75sePBZu2SO4I6DldwWNaxJCSDH+OElE=";
};

nativeBuildInputs = [
copyDesktopItems
dpkg
imagemagick
makeWrapper
zip
gnupg
];

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

(makeDesktopItem {
name = "${pname}-hidpi";
exec = "${pname}-hidpi";
icon = pname;
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.
cp ${bisq-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/${pname}
substituteAllInPlace $out/bin/${pname}
install -D -m 777 ${bisq-launcher "-Dglass.gtk.uiScale=2.0"} $out/bin/${pname}-hidpi
substituteAllInPlace $out/bin/${pname}-hidpi
for n in 16 24 32 48 64 96 128 256; do
size=$n"x"$n
magick convert opt/${pname}/lib/Bisq2.png -resize $size ${pname}.png
install -Dm644 -t $out/share/icons/hicolor/$size/apps ${pname}.png
done;
runHook postInstall
'';

meta = with lib; {
description = "A decentralized bitcoin exchange network";
homepage = "https://bisq.network";
mainProgram = pname;
sourceProvenance = with sourceTypes; [
binaryBytecode
nativeBinaryCode
];
license = licenses.mit;
maintainers = with maintainers; [ emmanuelrosa ];
platforms = [ "x86_64-linux" ];
};
}
52 changes: 52 additions & 0 deletions pkgs/by-name/bi/bisq/pubkey.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
E75tU69fX3jkrGUnqLQIJ/yI3fXUCXnd
=ektd
-----END PGP PUBLIC KEY BLOCK-----
4 changes: 4 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3324,6 +3324,10 @@ with pkgs;
openjdk11 = openjdk11.override { enableJavaFX = true; };
};

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 ed53720

Please sign in to comment.