unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 1/2] gnu: Add teensy-loader-cli.
@ 2016-05-29 15:28 Hartmut Goebel
  2016-05-29 15:28 ` [PATCH 2/2] gnu: Add dfu-util Hartmut Goebel
  2016-06-01 20:16 ` [PATCH 1/2] gnu: Add teensy-loader-cli Ludovic Courtès
  0 siblings, 2 replies; 9+ messages in thread
From: Hartmut Goebel @ 2016-05-29 15:28 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/flashing-tools.scm (teensy-loader-cli): New variable.
---
 gnu/packages/flashing-tools.scm | 50 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 9f9f1b9..1822934 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -130,3 +131,52 @@ technique (ISP).")
 Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
 ISP.")
     (license gpl2+)))
+
+(define-public teensy-loader-cli
+  ;; The repo does not tag versions nor does it use releases, but a commit
+  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
+  ;; to a fixed commit.
+  (let* ((commit "f289b7a2e5627")
+         ;; Mind the version substitute below when changing this
+         (versionx (string-append "2.1-1." (string-take commit 7))))
+  (package
+    (name "teensy-loader-cli")
+    (version versionx)
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/PaulStoffregen/"
+                           "teensy_loader_cli/archive/" commit ".tar.gz"))
+       (sha256 (base32 "17wqc2q4fa473cy7f5m2yiyb9nq0qw7xal2kzrxzaikgm9rabsw8"))
+       (file-name (string-append "teensy-loader-cli-" version ".tar.gz" ))
+       (patches (search-patches "teensy-loader-cli-usage.patch"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;; Makefile has no test target
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-version
+           (lambda _
+             (substitute* "teensy_loader_cli.c"
+               (("Teensy Loader, Command Line, Version 2.0\\\\n")
+                ;; TODO: find a way to pass version from above
+                (string-append "Teensy Loader, Command Line, Version 2.1-1\\n")))))
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (rename-file "teensy_loader_cli" "teensy-loader-cli")
+               (install-file "teensy-loader-cli" bin)))))))
+    (inputs
+     `(("libusb-compat" ,libusb-compat)))
+    (synopsis "Command line firmware uploader for teensy development boards")
+    (description "The Teensy Loader program communicates with your
+Teensy board when the HalfKay bootloader is running, so you can
+download new programs and run them.
+
+You'll need to add the udev-rules to make the teensy update available
+for non-root users.")
+    (home-page "https://www.pjrc.com/teensy/loader_cli.html")
+    (license gpl3))))
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] gnu: Add dfu-util.
  2016-05-29 15:28 [PATCH 1/2] gnu: Add teensy-loader-cli Hartmut Goebel
@ 2016-05-29 15:28 ` Hartmut Goebel
  2016-06-01 20:24   ` Ludovic Courtès
  2016-06-01 20:16 ` [PATCH 1/2] gnu: Add teensy-loader-cli Ludovic Courtès
  1 sibling, 1 reply; 9+ messages in thread
From: Hartmut Goebel @ 2016-05-29 15:28 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/flashing-tools.scm (dfu-util): New variable.
---
 gnu/packages/flashing-tools.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 1822934..58a137d 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages admin))
 
 (define-public flashrom
@@ -180,3 +181,33 @@ You'll need to add the udev-rules to make the teensy update available
 for non-root users.")
     (home-page "https://www.pjrc.com/teensy/loader_cli.html")
     (license gpl3))))
+
+(define-public dfu-util
+  (package
+    (name "dfu-util")
+    (version "0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "http://dfu-util.sourceforge.net/releases/dfu-util-0.9.tar.gz")
+       (sha256 (base32 "0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'autoconf
+           (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+    (inputs
+     `(("libusb" ,libusb)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (synopsis "Host (PC) side of the USB Device Firmware Upgrade (DFU) 1.0 and 1.1 protocol")
+    (description "DFU (Universal Serial Bus Device Firmware Upgrade) protocol
+is intended to download and upload firmware to devices connected over USB. It
+ranges from small devices like micro-controller boards up to mobile phones.
+With dfu-util you are able to download firmware to your device or upload
+firmware from it.")
+    (home-page "http://dfu-util.sourceforge.net/")
+    (license gpl2+)))
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-05-29 15:28 [PATCH 1/2] gnu: Add teensy-loader-cli Hartmut Goebel
  2016-05-29 15:28 ` [PATCH 2/2] gnu: Add dfu-util Hartmut Goebel
@ 2016-06-01 20:16 ` Ludovic Courtès
  2016-06-01 20:24   ` Thompson, David
  2016-06-02  8:34   ` Hartmut Goebel
  1 sibling, 2 replies; 9+ messages in thread
From: Ludovic Courtès @ 2016-06-01 20:16 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hi!

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> * gnu/packages/flashing-tools.scm (teensy-loader-cli): New variable.

[...]

> +  ;; The repo does not tag versions nor does it use releases, but a commit
> +  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
> +  ;; to a fixed commit.

No tags either?

> +  (let* ((commit "f289b7a2e5627")

Better use the full SHA1.

> +         ;; Mind the version substitute below when changing this
> +         (versionx (string-append "2.1-1." (string-take commit 7))))
> +  (package
> +    (name "teensy-loader-cli")
> +    (version versionx)

AFAICS, ‘versionx’ is not needed.  You can directly write:

  (package
    (name "teensy-loader-cli")
    (version (string-append …))
    …)

> +       (patches (search-patches "teensy-loader-cli-usage.patch"))))

You forgot to include the patch.  :-)

There’s a .elf file in the source:

--8<---------------cut here---------------start------------->8---
$ file rebootor/rebootor.elf 
rebootor/rebootor.elf: ELF 32-bit LSB executable, Atmel AVR 8-bit,— version 1 (SYSV), statically linked, not stripped
--8<---------------cut here---------------end--------------->8---

… and a bunch of .hex files with no corresponding source, AFAICS.

Could you remove them in a ‘snippet’?

Other than that LGTM.

Could you send an updated patch?

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] gnu: Add dfu-util.
  2016-05-29 15:28 ` [PATCH 2/2] gnu: Add dfu-util Hartmut Goebel
@ 2016-06-01 20:24   ` Ludovic Courtès
  0 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2016-06-01 20:24 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> * gnu/packages/flashing-tools.scm (dfu-util): New variable.

Applied with minor changes:

> +    (version "0.9")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri "http://dfu-util.sourceforge.net/releases/dfu-util-0.9.tar.gz")

Refer to ‘version’ here, and slightly reindented.

> +    (arguments
> +     '(#:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'autoconf
> +           (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
> +    (inputs
> +     `(("libusb" ,libusb)))
> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)

Autoconf, Automake, and the ‘autoconf’ phase are not needed, so I
removed them.

> +    (synopsis "Host (PC) side of the USB Device Firmware Upgrade (DFU) 1.0 and 1.1 protocol")

Slightly shortened this one.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-06-01 20:16 ` [PATCH 1/2] gnu: Add teensy-loader-cli Ludovic Courtès
@ 2016-06-01 20:24   ` Thompson, David
  2016-06-02  8:41     ` Hartmut Goebel
  2016-06-02  8:34   ` Hartmut Goebel
  1 sibling, 1 reply; 9+ messages in thread
From: Thompson, David @ 2016-06-01 20:24 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

The Teensy's bootloader is nonfree AFAIK, so be careful here.

- Dave

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-06-01 20:16 ` [PATCH 1/2] gnu: Add teensy-loader-cli Ludovic Courtès
  2016-06-01 20:24   ` Thompson, David
@ 2016-06-02  8:34   ` Hartmut Goebel
  2016-06-03  8:31     ` Ludovic Courtès
  1 sibling, 1 reply; 9+ messages in thread
From: Hartmut Goebel @ 2016-06-02  8:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Am 01.06.2016 um 22:16 schrieb Ludovic Courtès:
>
>> +  ;; The repo does not tag versions nor does it use releases, but a commit
>> +  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
>> +  ;; to a fixed commit.
> No tags either?

„The repo does not tag versions“ :-)

>> +  (let* ((commit "f289b7a2e5627")
> Better use the full SHA1.

Will do.

>
>> +         ;; Mind the version substitute below when changing this
>> +         (versionx (string-append "2.1-1." (string-take commit 7))))
>> +  (package
>> +    (name "teensy-loader-cli")
>> +    (version versionx)
> AFAICS, ‘versionx’ is not needed.  You can directly write:

This is a preparation for using the version in the usage message (see a
few lines below).

>
> You forgot to include the patch.  :-)

That's what I've send the updated patch for :-)


> There’s a .elf file in the source:
> … and a bunch of .hex files with no corresponding source, AFAICS.

Yes, these are examples for flashable files contained in the original
source. But these are not put into the package.

> Could you remove them in a ‘snippet’?

May I ask, why this is necessary?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-06-01 20:24   ` Thompson, David
@ 2016-06-02  8:41     ` Hartmut Goebel
  0 siblings, 0 replies; 9+ messages in thread
From: Hartmut Goebel @ 2016-06-02  8:41 UTC (permalink / raw)
  To: Thompson, David, Ludovic Courtès; +Cc: guix-devel

Am 01.06.2016 um 22:24 schrieb Thompson, David:
> The Teensy's bootloader is nonfree AFAIK, so be careful here.

The bootloader is not included in the source at all.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-06-02  8:34   ` Hartmut Goebel
@ 2016-06-03  8:31     ` Ludovic Courtès
  2016-06-03 14:39       ` Hartmut Goebel
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2016-06-03  8:31 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> Am 01.06.2016 um 22:16 schrieb Ludovic Courtès:

[...]

>> There’s a .elf file in the source:
>> … and a bunch of .hex files with no corresponding source, AFAICS.
>
> Yes, these are examples for flashable files contained in the original
> source. But these are not put into the package.
>
>> Could you remove them in a ‘snippet’?
>
> May I ask, why this is necessary?

We want to guarantee a couple of things:

  1. That everything is built from source; this is apparently the case
     but removing those binaries makes it obvious.

  2. That the source as returned by ‘guix build -S’ is exclusively
     source code.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] gnu: Add teensy-loader-cli.
  2016-06-03  8:31     ` Ludovic Courtès
@ 2016-06-03 14:39       ` Hartmut Goebel
  0 siblings, 0 replies; 9+ messages in thread
From: Hartmut Goebel @ 2016-06-03 14:39 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

Am 03.06.2016 um 10:31 schrieb Ludovic Courtès:
> We want to guarantee a couple of things:
>
>   1. That everything is built from source; this is apparently the case
>      but removing those binaries makes it obvious.
>
>   2. That the source as returned by ‘guix build -S’ is exclusively
>      source code.

Thanks for the explanation. In also explains why using a "snippet" in
the source section is the correct way (beside of keeping the source small).

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-06-03 14:39 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-29 15:28 [PATCH 1/2] gnu: Add teensy-loader-cli Hartmut Goebel
2016-05-29 15:28 ` [PATCH 2/2] gnu: Add dfu-util Hartmut Goebel
2016-06-01 20:24   ` Ludovic Courtès
2016-06-01 20:16 ` [PATCH 1/2] gnu: Add teensy-loader-cli Ludovic Courtès
2016-06-01 20:24   ` Thompson, David
2016-06-02  8:41     ` Hartmut Goebel
2016-06-02  8:34   ` Hartmut Goebel
2016-06-03  8:31     ` Ludovic Courtès
2016-06-03 14:39       ` Hartmut Goebel

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).