* 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 <[email protected]> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <[email protected]> +;;; Copyright © 2016 Hartmut Goebel <[email protected]> ;;; ;;; 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
