summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-06-16 15:22:15 +0200
committerLudovic Courtès <ludo@gnu.org>2019-06-17 12:36:13 +0200
commit123b9c02dddd21b61858fbf01fb356c14f220f21 (patch)
tree9fa411383dd3478417126686396b5681952968d0
parentbf95a142bbe8ab4ae6ccf87ad0df21cb56bbd3d3 (diff)
downloadguix-123b9c02dddd21b61858fbf01fb356c14f220f21.tar.gz
gnu: open-zwave: Unbundle hidapi.
* gnu/packages/patches/open-zwave-hidapi.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/zwave.scm (open-zwave)[source](patches): New field.
(snippet): Delete 'cpp/hidapi'.
[native-inputs]: Add PKG-CONFIG.
[inputs]: Add HIDAPI.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/open-zwave-hidapi.patch15
-rw-r--r--gnu/packages/zwave.scm9
3 files changed, 25 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index da3245ea18..74d2bafa8d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1130,6 +1130,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openssl-1.1-c-rehash-in.patch		\
   %D%/packages/patches/openssl-c-rehash-in.patch		\
   %D%/packages/patches/openssl-CVE-2019-1559.patch		\
+  %D%/packages/patches/open-zwave-hidapi.patch			\
   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
   %D%/packages/patches/osip-CVE-2017-7853.patch			\
   %D%/packages/patches/ots-no-include-missing-file.patch	\
diff --git a/gnu/packages/patches/open-zwave-hidapi.patch b/gnu/packages/patches/open-zwave-hidapi.patch
new file mode 100644
index 0000000000..fc50bfeade
--- /dev/null
+++ b/gnu/packages/patches/open-zwave-hidapi.patch
@@ -0,0 +1,15 @@
+Build against the system's HIDAPI instead of the bundled one.
+
+--- open-zwave-1.6-checkout/cpp/build/support.mk	2019-06-16 15:15:34.258331628 +0200
++++ open-zwave-1.6-checkout/cpp/build/support.mk	2019-06-16 15:15:54.698249462 +0200
+@@ -86,6 +86,10 @@ endif
+ endif
+ SED    := sed
+ 
++# Build against the system's HIDAPI.
++CPPFLAGS += $(shell pkg-config hidapi-libusb --cflags)
++LDFLAGS  += $(shell pkg-config hidapi-libusb --libs)
++
+ #determine if we are release or debug Build and set appropriate flags
+ ifeq ($(BUILD), release)
+ CFLAGS	+= -c $(RELEASE_CFLAGS)
diff --git a/gnu/packages/zwave.scm b/gnu/packages/zwave.scm
index 43d1747332..f07367d264 100644
--- a/gnu/packages/zwave.scm
+++ b/gnu/packages/zwave.scm
@@ -21,9 +21,12 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xml))
 
 (define-public open-zwave
@@ -39,6 +42,7 @@
               (sha256
                (base32
                 "0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333"))
+              (patches (search-patches "open-zwave-hidapi.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -52,6 +56,9 @@
                   (substitute* "cpp/build/Makefile"
                     (("LIBS \\+= -ludev")
                      "LIBS += -ludev -ltinyxml "))
+
+                  ;; Delete the bundled HIDAPI.
+                  (delete-file-recursively "cpp/hidapi")
                   #t))))
     (build-system gnu-build-system)
     (arguments
@@ -70,9 +77,11 @@
        ;; them.
        #:tests? #f))
     (native-inputs `(("which" ,which)
+                     ("pkg-config" ,pkg-config)
                      ("perl" ,perl)               ;for tests
                      ("perl-xml-simple" ,perl-xml-simple)))
     (inputs `(("tinyxml" ,tinyxml)
+              ("hidapi" ,hidapi)
               ("eudev" ,eudev)))
     (home-page "http://www.openzwave.net/")
     (synopsis "Access Z-Wave devices from C++ programs")