gnu: Add AVRDUDE
* gnu/packages/avrdude.scm: New file * gnu-system.am (GNU_SYSTEM_MODULES): Add avrdude.scm * gnu/packages/patches/avrdude-fix-libusb.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
3a09e1d2e8
commit
4acd5c0f9a
|
@ -37,6 +37,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
gnu/packages/autogen.scm \
|
gnu/packages/autogen.scm \
|
||||||
gnu/packages/autotools.scm \
|
gnu/packages/autotools.scm \
|
||||||
gnu/packages/avahi.scm \
|
gnu/packages/avahi.scm \
|
||||||
|
gnu/packages/avrdude.scm \
|
||||||
gnu/packages/backup.scm \
|
gnu/packages/backup.scm \
|
||||||
gnu/packages/base.scm \
|
gnu/packages/base.scm \
|
||||||
gnu/packages/bash.scm \
|
gnu/packages/bash.scm \
|
||||||
|
@ -280,6 +281,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/apr-skip-getservbyname-test.patch \
|
gnu/packages/patches/apr-skip-getservbyname-test.patch \
|
||||||
gnu/packages/patches/automake-skip-amhello-tests.patch \
|
gnu/packages/patches/automake-skip-amhello-tests.patch \
|
||||||
gnu/packages/patches/avahi-localstatedir.patch \
|
gnu/packages/patches/avahi-localstatedir.patch \
|
||||||
|
gnu/packages/patches/avrdude-fix-libusb.patch \
|
||||||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||||
gnu/packages/patches/binutils-ld-new-dtags.patch \
|
gnu/packages/patches/binutils-ld-new-dtags.patch \
|
||||||
gnu/packages/patches/binutils-loongson-workaround.patch \
|
gnu/packages/patches/binutils-loongson-workaround.patch \
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages avrdude)
|
||||||
|
#:use-module (guix licenses)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (gnu packages bison)
|
||||||
|
#:use-module (gnu packages flex)
|
||||||
|
#:use-module (gnu packages elf)
|
||||||
|
#:use-module (gnu packages libusb)
|
||||||
|
#:use-module (gnu packages libftdi))
|
||||||
|
|
||||||
|
(define-public avrdude
|
||||||
|
(package
|
||||||
|
(name "avrdude")
|
||||||
|
(version "6.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://savannah/avrdude/avrdude-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0frxg0q09nrm95z7ymzddx7ysl77ilfbdix1m81d9jjpiv5bm64y"))
|
||||||
|
(patches (list (search-patch "avrdude-fix-libusb.patch")))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("libelf" ,libelf)
|
||||||
|
("libusb" ,libusb)
|
||||||
|
("libftdi" ,libftdi)))
|
||||||
|
(native-inputs
|
||||||
|
`(("bison" ,bison)
|
||||||
|
("flex" ,flex)))
|
||||||
|
(home-page "http://www.nongnu.org/avrdude/")
|
||||||
|
(synopsis "AVR downloader and uploader")
|
||||||
|
(description
|
||||||
|
"AVRDUDE is a utility to download/upload/manipulate the ROM and
|
||||||
|
EEPROM contents of AVR microcontrollers using the in-system programming
|
||||||
|
technique (ISP).")
|
||||||
|
(license gpl2+)))
|
|
@ -0,0 +1,256 @@
|
||||||
|
Avrdude cannot build with our version of libusb. This patch fixes that.
|
||||||
|
See http://savannah.nongnu.org/bugs/?41854
|
||||||
|
|
||||||
|
diff --git a/dfu.c b/dfu.c
|
||||||
|
index 7d349bc..0f80440 100644
|
||||||
|
--- a/dfu.c
|
||||||
|
+++ b/dfu.c
|
||||||
|
@@ -36,13 +36,14 @@
|
||||||
|
|
||||||
|
#ifndef HAVE_LIBUSB
|
||||||
|
|
||||||
|
-int dfu_open(struct dfu_dev *dfu, char *port_name) {
|
||||||
|
+struct dfu_dev * dfu_open(char *port_spec) {
|
||||||
|
fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
|
||||||
|
progname);
|
||||||
|
- return -1;
|
||||||
|
+ return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
-int dfu_init(struct dfu_dev *dfu, unsigned short usb_pid) {
|
||||||
|
+int dfu_init(struct dfu_dev *dfu,
|
||||||
|
+ unsigned short vid, unsigned short pid) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/flip1.c b/flip1.c
|
||||||
|
index b891d80..0959996 100644
|
||||||
|
--- a/flip1.c
|
||||||
|
+++ b/flip1.c
|
||||||
|
@@ -164,6 +164,8 @@ static void flip1_setup(PROGRAMMER * pgm);
|
||||||
|
static void flip1_teardown(PROGRAMMER * pgm);
|
||||||
|
|
||||||
|
/* INTERNAL PROGRAMMER FUNCTION PROTOTYPES */
|
||||||
|
+#ifdef HAVE_LIBUSB
|
||||||
|
+// The internal ones are made conditional, as they're not defined further down #ifndef HAVE_LIBUSB
|
||||||
|
|
||||||
|
static void flip1_show_info(struct flip1 *flip1);
|
||||||
|
|
||||||
|
@@ -177,6 +179,8 @@ static const char * flip1_mem_unit_str(enum flip1_mem_unit mem_unit);
|
||||||
|
static int flip1_set_mem_page(struct dfu_dev *dfu, unsigned short page_addr);
|
||||||
|
static enum flip1_mem_unit flip1_mem_unit(const char *name);
|
||||||
|
|
||||||
|
+#endif /* HAVE_LIBUSB */
|
||||||
|
+
|
||||||
|
/* THE INITPGM FUNCTION DEFINITIONS */
|
||||||
|
|
||||||
|
void flip1_initpgm(PROGRAMMER *pgm)
|
||||||
|
@@ -201,6 +205,7 @@ void flip1_initpgm(PROGRAMMER *pgm)
|
||||||
|
pgm->teardown = flip1_teardown;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef HAVE_LIBUSB
|
||||||
|
/* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
|
||||||
|
|
||||||
|
int flip1_open(PROGRAMMER *pgm, char *port_spec)
|
||||||
|
@@ -876,3 +881,82 @@ enum flip1_mem_unit flip1_mem_unit(const char *name) {
|
||||||
|
return FLIP1_MEM_UNIT_EEPROM;
|
||||||
|
return FLIP1_MEM_UNIT_UNKNOWN;
|
||||||
|
}
|
||||||
|
+#else /* HAVE_LIBUSB */
|
||||||
|
+// Dummy functions
|
||||||
|
+int flip1_open(PROGRAMMER *pgm, char *port_spec)
|
||||||
|
+{
|
||||||
|
+ fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
|
||||||
|
+ progname);
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_initialize(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_close(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_enable(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_disable(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_display(PROGRAMMER* pgm, const char *prefix)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_program_enable(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_chip_erase(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_read_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned long addr, unsigned char *value)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_write_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned long addr, unsigned char value)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_paged_load(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned int page_size, unsigned int addr, unsigned int n_bytes)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_paged_write(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned int page_size, unsigned int addr, unsigned int n_bytes)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip1_read_sig_bytes(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_setup(PROGRAMMER * pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip1_teardown(PROGRAMMER * pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#endif /* HAVE_LIBUSB */
|
||||||
|
\ No newline at end of file
|
||||||
|
|
||||||
|
diff --git a/flip2.c b/flip2.c
|
||||||
|
index ed8e996..16c4bf8 100644
|
||||||
|
--- a/flip2.c
|
||||||
|
+++ b/flip2.c
|
||||||
|
@@ -151,6 +151,8 @@ static void flip2_setup(PROGRAMMER * pgm);
|
||||||
|
static void flip2_teardown(PROGRAMMER * pgm);
|
||||||
|
|
||||||
|
/* INTERNAL PROGRAMMER FUNCTION PROTOTYPES */
|
||||||
|
+#ifdef HAVE_LIBUSB
|
||||||
|
+// The internal ones are made conditional, as they're not defined further down #ifndef HAVE_LIBUSB
|
||||||
|
|
||||||
|
static void flip2_show_info(struct flip2 *flip2);
|
||||||
|
|
||||||
|
@@ -171,6 +173,8 @@ static const char * flip2_status_str(const struct dfu_status *status);
|
||||||
|
static const char * flip2_mem_unit_str(enum flip2_mem_unit mem_unit);
|
||||||
|
static enum flip2_mem_unit flip2_mem_unit(const char *name);
|
||||||
|
|
||||||
|
+#endif /* HAVE_LIBUSB */
|
||||||
|
+
|
||||||
|
/* THE INITPGM FUNCTION DEFINITIONS */
|
||||||
|
|
||||||
|
void flip2_initpgm(PROGRAMMER *pgm)
|
||||||
|
@@ -195,6 +199,7 @@ void flip2_initpgm(PROGRAMMER *pgm)
|
||||||
|
pgm->teardown = flip2_teardown;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef HAVE_LIBUSB
|
||||||
|
/* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
|
||||||
|
|
||||||
|
int flip2_open(PROGRAMMER *pgm, char *port_spec)
|
||||||
|
@@ -922,3 +927,85 @@ enum flip2_mem_unit flip2_mem_unit(const char *name) {
|
||||||
|
return FLIP2_MEM_UNIT_SIGNATURE;
|
||||||
|
return FLIP2_MEM_UNIT_UNKNOWN;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+#else /* HAVE_LIBUSB */
|
||||||
|
+
|
||||||
|
+/* EXPORTED PROGRAMMER FUNCTION DEFINITIONS */
|
||||||
|
+
|
||||||
|
+int flip2_open(PROGRAMMER *pgm, char *port_spec)
|
||||||
|
+{
|
||||||
|
+ fprintf(stderr, "%s: Error: No USB support in this compile of avrdude\n",
|
||||||
|
+ progname);
|
||||||
|
+ return NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_initialize(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_close(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_enable(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_disable(PROGRAMMER* pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_display(PROGRAMMER* pgm, const char *prefix)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_program_enable(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_chip_erase(PROGRAMMER* pgm, AVRPART *part)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_read_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned long addr, unsigned char *value)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_write_byte(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned long addr, unsigned char value)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_paged_load(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned int page_size, unsigned int addr, unsigned int n_bytes)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_paged_write(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem,
|
||||||
|
+ unsigned int page_size, unsigned int addr, unsigned int n_bytes)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int flip2_read_sig_bytes(PROGRAMMER* pgm, AVRPART *part, AVRMEM *mem)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_setup(PROGRAMMER * pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void flip2_teardown(PROGRAMMER * pgm)
|
||||||
|
+{
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#endif /* HAVE_LIBUSB */
|
Loading…
Reference in New Issue