diff options
author | David Asabina <as@bina.me> | 2018-02-27 23:40:22 +0100 |
---|---|---|
committer | Jörg Thalheim <Mic92@users.noreply.github.com> | 2018-02-27 22:40:22 +0000 |
commit | e41ca3b34767cc13d4e990f6b005360b433d88ca (patch) | |
tree | 25a9ee097a58c93b449272dcf303a6a8c35cc1e6 /pkgs/applications/misc/digitalbitbox | |
parent | e21057ae4fd7f210047066d0474c194b072b49a0 (diff) |
digitalbitbox: init at 2.2.2 (#33787)
* digitalbitbox: init at 2.2.2 The commits that lead to this have been squashed from independent commits see branch @vidbina/add/digitalbitbox-wip that did the following: - 0a3030fa0ec digitalbitbox: init at 2.2.2 - c18ffa3ffd4 digitalbitbox: moved meta to EOF - 0c5f3d6972a digitalbitbox: using preConfigure + configureFlags - a85b1dfc3fd digitalbitbox: nativeBuildInputs - 90bdd35ef0f digitalbitbox: autoreconfHook - 91810eea055 digitalbitbox: default installPhase & makeWrapper - 90e43fb7e2a digitalbitbox: doc rm $PWD hack & printf-tee deal - fd033b2fe5a digitalbitbox: cleanup, alphabetically sort attrs - c5907982db3 digitalbitbox: added hardware module - 88e46bc9ae0 digitalbitbox: added program module - amend to change name: dbb-app -> digitalbitbox - amend to add install instructions based on feedback (https://github.com/NixOS/nixpkgs/pull/33787#issuecomment-362813149) - amend to add longDescription - moved program to its own dir - overridable udev rules handling - added docs to manual - added package attr to program module - added package attr to hardware module * digitalbitbox: use libsForQt5.callPackage
Diffstat (limited to 'pkgs/applications/misc/digitalbitbox')
-rw-r--r-- | pkgs/applications/misc/digitalbitbox/default.nix | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix new file mode 100644 index 0000000000000..fbd9d47633a1e --- /dev/null +++ b/pkgs/applications/misc/digitalbitbox/default.nix @@ -0,0 +1,140 @@ +{ stdenv +, autoreconfHook +, curl +, fetchFromGitHub +, git +, libevent +, libtool +, libqrencode +, libudev +, libusb +, makeWrapper +, pkgconfig +, qtbase +, qttools +, qtwebsockets +, qtmultimedia +, udevRule51 ? '' +, SUBSYSTEM=="usb", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbb%n", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402" +, '' +, udevRule52 ? '' +, KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbbf%n" +, '' +, writeText +}: + +# Enabling the digitalbitbox program +# +# programs.digitalbitbox.enable = true; +# +# will install the digitalbitbox package and enable the corresponding hardware +# module and is by far the easiest way to get started with the Digital Bitbox on +# NixOS. + +# In case you install the package only, please be aware that you may need to +# apply some udev rules to allow the application to identify and access your +# wallet. In a nixos-configuration, one may accomplish this by enabling the +# digitalbitbox hardware module +# +# hardware.digitalbitbox.enable = true; +# +# or by adding the digitalbitbox package to system.udev.packages +# +# system.udev.packages = [ pkgs.digitalbitbox ]; + +# See https://digitalbitbox.com/start_linux for more information. +let + copyUdevRuleToOutput = name: rule: + "cp ${writeText name rule} $out/etc/udev/rules.d/${name}"; +in stdenv.mkDerivation rec { + name = "digitalbitbox-${version}"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "digitalbitbox"; + repo = "dbb-app"; + rev = "v${version}"; + sha256 = "1r77fvqrlaryzij5dfbnigzhvg1d12g96qb2gp8dy3xph1j0k3s1"; + }; + + nativeBuildInputs = with stdenv.lib; [ + autoreconfHook + curl + git + makeWrapper + pkgconfig + qttools + ]; + + buildInputs = with stdenv.lib; [ + libevent + libtool + libudev + libusb + libqrencode + + qtbase + qtwebsockets + qtmultimedia + ]; + + LUPDATE="${qttools.dev}/bin/lupdate"; + LRELEASE="${qttools.dev}/bin/lrelease"; + MOC="${qtbase.dev}/bin/moc"; + QTDIR="${qtbase.dev}"; + RCC="${qtbase.dev}/bin/rcc"; + UIC="${qtbase.dev}/bin/uic"; + + configureFlags = [ + "--enable-libusb" + ]; + + hardeningDisable = [ + "format" + ]; + + postInstall = '' + mkdir -p "$out/lib" + cp src/libbtc/.libs/*.so* $out/lib + cp src/libbtc/src/secp256k1/.libs/*.so* $out/lib + cp src/hidapi/libusb/.libs/*.so* $out/lib + cp src/univalue/.libs/*.so* $out/lib + + # [RPATH][patchelf] Avoid forbidden reference error + rm -rf $PWD + + wrapProgram "$out/bin/dbb-cli" --prefix LD_LIBRARY_PATH : "$out/lib" + wrapProgram "$out/bin/dbb-app" --prefix LD_LIBRARY_PATH : "$out/lib" + + # Provide udev rules as documented in https://digitalbitbox.com/start_linux + mkdir -p "$out/etc/udev/rules.d" + ${copyUdevRuleToOutput "51-hid-digitalbox.rules" udevRule51} + ${copyUdevRuleToOutput "52-hid-digitalbox.rules" udevRule52} + ''; + + meta = with stdenv.lib; { + description = "A QT based application for the Digital Bitbox hardware wallet"; + longDescription = '' + Digital Bitbox provides dbb-app, a GUI tool, and dbb-cli, a CLI tool, to manage Digital Bitbox devices. + + This package will only install the dbb-app and dbb-cli, however; in order for these applications to identify and access Digital Bitbox devices, one may want to enable the digitalbitbox hardware module by adding + + hardware.digitalbitbox.enable = true; + + to the configuration which is equivalent to adding this package to the udev.packages list. + + + The easiest way to use the digitalbitbox package in NixOS is by adding + + programs.digitalbitbox.enable = true; + + to the configuration which installs the package and enables the hardware module. + ''; + homepage = "https://digitalbitbox.com/"; + license = licenses.mit; + maintainers = with maintainers; [ + vidbina + ]; + platforms = platforms.linux; + }; +} |