aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/flashing-tools.scm23
-rw-r--r--gnu/packages/patches/dfu-programmer-fix-libusb.patch57
3 files changed, 81 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 642751c9ea..94d86246c9 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -319,6 +319,7 @@ dist_patch_DATA = \
gnu/packages/patches/cursynth-wave-rand.patch \
gnu/packages/patches/dbus-localstatedir.patch \
gnu/packages/patches/diffutils-gets-undeclared.patch \
+ gnu/packages/patches/dfu-programmer-fix-libusb.patch \
gnu/packages/patches/doxygen-test.patch \
gnu/packages/patches/doxygen-tmake.patch \
gnu/packages/patches/duplicity-piped-password.patch \
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