~ruther/guix-local

2a9a4fb8b7ae519a7d28a1e6b96e0a0a5aed3201 — Manolis Ragkousis 11 years ago 4b91ce2
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.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
M gnu-system.am => gnu-system.am +1 -0
@@ 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		\

M gnu/packages/flashing-tools.scm => gnu/packages/flashing-tools.scm +23 -0
@@ 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+)))

A gnu/packages/patches/dfu-programmer-fix-libusb.patch => gnu/packages/patches/dfu-programmer-fix-libusb.patch +57 -0
@@ 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