Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / brickd / default.nix
blobbe087b0525bcc2f039ee579c78a15a0d2d0c8707
1 { lib, stdenv, fetchFromGitHub, libusb1, pkg-config, pmutils, udev} :
3 let
4   version = "2.1.1";
5   daemonlib = fetchFromGitHub {
6     owner = "Tinkerforge";
7     repo = "daemonlib";
8     rev = "brickd-${version}";
9     sha256 = "sha256-0HhuC4r1S4NJa2FSJa7+fNCfcoRTBckikYbGSE+2FbE=";
10   };
13 stdenv.mkDerivation {
14   pname = "brickd";
15   inherit version;
17   src = fetchFromGitHub {
18     owner = "Tinkerforge";
19     repo = "brickd";
20     rev = "v${version}";
21     sha256 = "sha256-6w2Ew+dLMmdRf9CF3TdKHa0d5ZgmX5lKIR+5t3QAWFQ=";
22   };
24   nativeBuildInputs = [ pkg-config ];
25   buildInputs = [ libusb1 pmutils udev ];
27   # shell thing didn't work so i replaced it using nix
28   prePatch = ''
29     substituteInPlace src/brickd/Makefile --replace 'PKG_CONFIG := $(shell which pkg-config 2> /dev/null)' "PKG_CONFIG := $pkgconfig/bin/pkg_config";
30   '';
32   buildPhase = ''
33     # build the brickd binary
34     mkdir src/daemonlib
35     cp -r ${daemonlib}/* src/daemonlib
36     substituteInPlace src/daemonlib/utils.{c,h} \
37       --replace "_GNU_SOURCE" "__GLIBC__"
38     cd src/brickd
39     make
41     # build and execute the unit tests
42     cd ../tests
43     make
44     for i in array_test base58_test node_test putenv_test queue_test sha1_test; do
45       echo "running unit test $i:"
46       ./$i
47     done
48   '';
50   installPhase = ''
51     cd ../brickd
52     mkdir -p $out/bin
53     cp brickd $out/bin/brickd
54   '';
56   meta = {
57     homepage = "https://www.tinkerforge.com/";
58     description = "Daemon (or service on Windows) that acts as a bridge between the Bricks/Bricklets and the API bindings for the different programming languages";
59     maintainers = [ lib.maintainers.qknight ];
60     license = lib.licenses.gpl2Plus;
61     platforms = lib.platforms.all;
62     mainProgram = "brickd";
63   };