summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/flashing-tools.scm23
-rw-r--r--gnu/packages/patches/dfu-programmer-fix-libusb.patch57
2 files changed, 80 insertions, 0 deletions
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index d2f1b469b6..648430ad5a 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -104,3 +104,26 @@ programmer devices.")
 EEPROM contents of AVR microcontrollers using the in-system programming
 technique (ISP).")
     (license gpl2+)))
+
+(define-public dfu-programmer
+  (package
+    (name "dfu-programmer")
+    (version "0.7.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/dfu-programmer/dfu-programmer-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "17lglglk5xrqd2n0impg5bkq4j96qc51cw3kzcghzmzmn6fvg3gf"))
+      (patches (list (search-patch "dfu-programmer-fix-libusb.patch")))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libusb" ,libusb)))
+    (home-page "http://dfu-programmer.github.io/")
+    (synopsis "Device firmware update programmer for Atmel chips")
+    (description
+     "Dfu-programmer is a multi-platform command-line programmer for Atmel
+(8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting ISP")
+    (license gpl2+)))
diff --git a/gnu/packages/patches/dfu-programmer-fix-libusb.patch b/gnu/packages/patches/dfu-programmer-fix-libusb.patch
new file mode 100644
index 0000000000..e9e21f3880
--- /dev/null
+++ b/gnu/packages/patches/dfu-programmer-fix-libusb.patch
@@ -0,0 +1,57 @@
+Dfu-programmer cannot cannot find libusb. This patch fixes that.
+
+diff --git a/src/dfu-device.h b/src/dfu-device.h
+index bbdfa99..31af0e8 100644
+--- a/src/dfu-device.h
++++ b/src/dfu-device.h
+@@ -6,7 +6,7 @@
+ #endif
+ #include <stdint.h>
+ #ifdef HAVE_LIBUSB_1_0
+-#include <libusb.h>
++#include <libusb-1.0/libusb.h>
+ #else
+ #include <usb.h>
+ #endif
+
+diff --git a/src/main.c b/src/main.c
+index ef2aa16..dcc3636 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -24,7 +24,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #ifdef HAVE_LIBUSB_1_0
+-#include <libusb.h>
++#include <libusb-1.0/libusb.h>
+ #else
+ #include <usb.h>
+ #endif
+
+diff --git a/src/dfu.c b/src/dfu.c
+index 7dbcc57..952e896 100644
+--- a/src/dfu.c
++++ b/src/dfu.c
+@@ -27,7 +27,7 @@
+ #include <stdlib.h>
+ #include <stddef.h>
+ #ifdef HAVE_LIBUSB_1_0
+-#include <libusb.h>
++#include <libusb-1.0/libusb.h>
+ #else
+ #include <usb.h>
+ #endif
+
+diff --git a/src/dfu.h b/src/dfu.h
+index 2a159e8..63510f2 100644
+--- a/src/dfu.h
++++ b/src/dfu.h
+@@ -25,7 +25,7 @@
+ # include <config.h>
+ #endif
+ #ifdef HAVE_LIBUSB_1_0
+-#include <libusb.h>
++#include <libusb-1.0/libusb.h>
+ #else
+ #include <usb.h>
+ #endif