Bisq (decentralized Bitcoin exchange) on NixOS

Thanks to numerous contributions and a nice helping of determination (Bisq is a Java application after all), there is now a working Nix package for Bisq!

The package is currently in my NUR Packages search for NUR
and you can follow its development in this Nixpkgs issue: Add bisq · Issue #69807 · NixOS/nixpkgs · GitHub

I still need to refactor the Nix code, but if you want to use Bisq on NixOS I encourage you to try the package and provide feedback. For what it’s worth, I successfully completed a transaction, and I’m confident enough in the package to have started another.

I look forward to hearing about your experience.

UPDATE:

There’s now a pull request: bisq: init at 1.7.0 by emmanuelrosa · Pull Request #119038 · NixOS/nixpkgs · GitHub

Try it and report back in the PR.

Thank you.

7 Likes

Heya ! Thanks for all the hard work ! :slight_smile:

I’ve noticed that while the NUR packages used to work flawlessly now it fails to install with:

error: anonymous function at /nix/store/0v3jj4yywir5jn2a8gmbyl4jg9zd790l-source/pkgs/applications/blockchains/bisq-desktop/default.nix:1:1 called without required argument 'copyDesktopItems', at /nix/store/vffdfp5gnspq3mdid9wk5p15hmv3ci4z-20.09.tar.gz/lib/customisation.nix:69:16
(use '--show-trace' to show detailed location information)

hope that helps with testing :slight_smile:

Oh…, you’re using NixOS 20.09 yet the copyDesktopItems function is relatively new and only available on the unstable channel.

You can use Nixpkgs pinning to change the Nixpkgs used by NUR. Something like this:

let
  ...
  unstableNixpkgs = import (builtins.fetchTarball {
    url = "https://github.com/nixos/nixpkgs/archive/f0efbe21f9ae1e17d1aca922708f1bdef605039d.tar.gz";
    sha256 = "SOME HASH GOES HERE";
  }) { };
  ...
in
  ...
  environment.systemPackages = with pkgs; [
    unstableNur.repos.emmanuelrosa.bisq-desktop
  ];
  ...
  nixpkgs.config = {
    ...
    packageOverrides = pkgs: {
      nur = (import ./nur.nix) { inherit pkgs; };
      unstableNur = (import ./nur.nix) { pkgs = unstableNixpkgs; };
    };
  };

Oh nice, didn’t know that, thank you ! :slight_smile: