trezord: init at 1.2.0 (#22054)
parent
ae02508c2a
commit
3082647e74
@ -0,0 +1,54 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
let |
||||
cfg = config.services.trezord; |
||||
in { |
||||
|
||||
### interface |
||||
|
||||
options = { |
||||
services.trezord = { |
||||
enable = mkOption { |
||||
type = types.bool; |
||||
default = false; |
||||
description = '' |
||||
Enable Trezor bridge daemon, for use with Trezor hardware bitcoin wallets. |
||||
''; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
### implementation |
||||
|
||||
config = mkIf cfg.enable { |
||||
services.udev.packages = lib.singleton (pkgs.writeTextFile { |
||||
name = "trezord-udev-rules"; |
||||
destination = "/etc/udev/rules.d/51-trezor.rules"; |
||||
text = '' |
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="534c", ATTR{idProduct}=="0001", MODE="0666", GROUP="dialout", SYMLINK+="trezor%n" |
||||
KERNEL=="hidraw*", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", MODE="0666", GROUP="dialout" |
||||
''; |
||||
}); |
||||
|
||||
systemd.services.trezord = { |
||||
description = "TREZOR Bridge"; |
||||
after = [ "systemd-udev-settle.service" "network.target" ]; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
path = []; |
||||
serviceConfig = { |
||||
Type = "simple"; |
||||
ExecStart = "${pkgs.trezord}/bin/trezord -f"; |
||||
User = "trezord"; |
||||
}; |
||||
}; |
||||
|
||||
users.users.trezord = { |
||||
group = "trezord"; |
||||
description = "Trezor bridge daemon user"; |
||||
}; |
||||
|
||||
users.groups.trezord = {}; |
||||
}; |
||||
} |
||||
|
@ -0,0 +1,51 @@ |
||||
{ stdenv, fetchgit, curl, cmake, boost, gcc5, protobuf, pkgconfig, jsoncpp |
||||
, libusb1, libmicrohttpd |
||||
}: |
||||
|
||||
let |
||||
version = "1.2.0"; |
||||
in |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "trezord-${version}"; |
||||
|
||||
src = fetchgit { |
||||
url = "https://github.com/trezor/trezord"; |
||||
rev = "refs/tags/v${version}"; |
||||
sha256 = "1606j5cfngryk4q21yiga1zvc3zpx4q8vqn6ljrvr679hpvlwni4"; |
||||
}; |
||||
|
||||
meta = with stdenv.lib; { |
||||
description = "TREZOR Bridge daemon for TREZOR bitcoin hardware wallet"; |
||||
homepage = https://mytrezor.com; |
||||
license = licenses.gpl3; |
||||
maintainers = with stdenv.lib.maintainers; [ canndrew jb55 ]; |
||||
platforms = platforms.linux; |
||||
}; |
||||
|
||||
patches = [ ./dynamic-link.patch ]; |
||||
|
||||
nativeBuildInputs = [ |
||||
cmake |
||||
gcc5 |
||||
pkgconfig |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
curl |
||||
boost |
||||
protobuf |
||||
libusb1 |
||||
libmicrohttpd |
||||
jsoncpp |
||||
]; |
||||
|
||||
LD_LIBRARY_PATH = "${stdenv.lib.makeLibraryPath [ curl ]}"; |
||||
cmakeFlags="-DJSONCPP_LIBRARY='${jsoncpp}/lib/libjsoncpp.so'"; |
||||
|
||||
installPhase = '' |
||||
mkdir -p $out/bin |
||||
cp trezord $out/bin |
||||
''; |
||||
} |
||||
|
@ -0,0 +1,18 @@ |
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 7c0e2cf..0e3f4ac 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -59,13 +59,6 @@ target_link_libraries(trezord ${OS_LIBRARIES})
|
||||
find_package(CURL REQUIRED)
|
||||
find_package(libmicrohttpd REQUIRED)
|
||||
|
||||
-# add static libs
|
||||
-if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
- set(BUILD_SHARED_LIBS off)
|
||||
- set(Boost_USE_STATIC_LIBS on)
|
||||
- set(CMAKE_FIND_STATIC FIRST)
|
||||
-endif(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
find_package(Boost 1.53.0 REQUIRED
|
||||
regex thread system unit_test_framework program_options chrono)
|
||||
find_package(Protobuf 2.5.0 REQUIRED)
|
Loading…
Reference in new issue