gnu: Add teensy-loader-cli.

* gnu/packages/flashing-tools.scm (teensy-loader-cli): New variable.
* gnu/packages/patches/teensy-loader-cli-help.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Hartmut Goebel 2016-06-14 23:14:13 +02:00 committed by Ludovic Courtès
parent 1ec32f4a9d
commit d3a858cb32
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 85 additions and 0 deletions

View file

@ -774,6 +774,7 @@ dist_patch_DATA = \
%D%/packages/patches/tcl-mkindex-deterministic.patch \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
%D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.patch \
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \

View file

@ -160,3 +160,54 @@ (define-public dfu-util
firmware from it.")
(home-page "http://dfu-util.sourceforge.net/")
(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 "f289b7a2e5627464044249f0e5742830e052e360"))
(package
(name "teensy-loader-cli")
(version (string-append "2.1-1." (string-take commit 7)))
(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" ))
(modules '((guix build utils)))
(snippet
`(begin
;; Remove example flash files and teensy rebooter flash binaries.
(for-each delete-file (find-files "." "\\.(elf|hex)$"))
;; Fix the version
(substitute* "teensy_loader_cli.c"
(("Teensy Loader, Command Line, Version 2.0\\\\n")
(string-append "Teensy Loader, Command Line, " ,version "\\n")))
#t))
(patches (search-patches "teensy-loader-cli-help.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
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "teensy_loader_cli" bin)
#t))))))
(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 upload new programs and run them.
You 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))))

View file

@ -0,0 +1,33 @@
Add support for '-h' (help).
https://github.com/PaulStoffregen/teensy_loader_cli/pull/26
---
teensy_loader_cli.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/teensy_loader_cli.c b/teensy_loader_cli.c
index d4a6cc5..0a06209 100644
--- a/teensy_loader_cli.c
+++ b/teensy_loader_cli.c
@@ -37,7 +37,8 @@ void usage(const char *err)
{
if(err != NULL) fprintf(stderr, "%s\n\n", err);
fprintf(stderr,
- "Usage: teensy_loader_cli --mcu=<MCU> [-w] [-h] [-n] [-b] [-v] <file.hex>\n"
+ "Usage: teensy_loader_cli --mcu=<MCU> [-h] [-w] [-n] [-b] [-v] <file.hex>\n"
+ "\t-h : Print this help message\n"
"\t-w : Wait for device to appear\n"
"\t-r : Use hard reboot if device not online\n"
"\t-s : Use soft reboot if device not online (Teensy3.x only)\n"
@@ -1081,6 +1082,7 @@ void parse_flag(char *arg)
int i;
for(i=1; arg[i]; i++) {
switch(arg[i]) {
+ case 'h': usage(NULL); break;
case 'w': wait_for_device_to_appear = 1; break;
case 'r': hard_reboot_device = 1; break;
case 's': soft_reboot_device = 1; break;
--
2.7.4