On 29 September 2014 19:09, Ludovic Courtès <l...@gnu.org> wrote:
> As discussed on #guix, it might be good to move it to a ‘flashing-tools’
> module or something?
Done

> Rather “Device firmware update programmer for Atmel chips”.
Done

> Please wrap lines to less than 80 chars.
Done

> I think the bug is rather that pkg-config is missing, because libusb.pc
> has this line:
>
>   Cflags: -I${includedir}/libusb-1.0
>
> Could you try adding it as a native input and report back?

I did but nothing changed, still couldn't find libusb.h .
In their mailing list there was one such problem, for the previous
version, but they didn't suggested any solution on the issue.
http://sourceforge.net/p/dfu-programmer/mailman/message/30507932/

Updated patch.

Manolis
From 7f17acea56a32013574db6b755fc1a2362c1addc Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis <manolis...@gmail.com>
Date: Mon, 29 Sep 2014 13:27:30 +0300
Subject: [PATCH] gnu: Add dfu-programmer

* gnu/packages/flashing-tools.scm (dfu-programmer): New variable.
* gnu/packages/patches/dfu-programmer-fix-libusb.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
---
 gnu-system.am                                      |  1 +
 gnu/packages/flashing-tools.scm                    | 23 +++++++++
 .../patches/dfu-programmer-fix-libusb.patch        | 57 ++++++++++++++++++++++
 3 files changed, 81 insertions(+)
 create mode 100644 gnu/packages/patches/dfu-programmer-fix-libusb.patch

diff --git a/gnu-system.am b/gnu-system.am
index 642751c..94d8624 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 d2f1b46..648430a 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 0000000..e9e21f3
--- /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
-- 
2.1.1

Reply via email to