;;; 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>
-;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages boost)
#:use-module (gnu packages compression)
- #:use-module (gnu packages flex)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages groff)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages libusb)
#:use-module (gnu packages libftdi)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages qt)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages admin))
+ #:use-module (gnu packages tls))
(define-public flashrom
(package
(name "flashrom")
- ;; XXX: The CFLAGS=... line below can probably be removed when updating.
- (version "1.0")
+ (version "1.2")
(source (origin
(method url-fetch)
(uri (string-append
- "https://download.flashrom.org/releases/flashrom-"
+ "https://download.flashrom.org/releases/flashrom-v"
version ".tar.bz2"))
(sha256
(base32
- "0r7fkpfc8w51n8ffbhclj4wa3kwrk0ijv1acwpw5myx5bchzl0ip"))))
+ "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71"))))
(build-system gnu-build-system)
- (inputs `(("dmidecode" ,dmidecode)
- ("pciutils" ,pciutils)
- ("libusb" ,libusb)
- ("libftdi" ,libftdi)))
- (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs (list dmidecode pciutils libusb libftdi))
+ (native-inputs (list pkg-config))
(arguments
'(#:make-flags
(list "CC=gcc"
- ;; The default includes ‘-Wall -Werror’, causing the build to fail
- ;; with deprecation warnings against libusb versions >= 1.0.22.
- "CFLAGS=-Os -Wshadow"
(string-append "PREFIX=" %output)
"CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no")
#:tests? #f ; no 'check' target
(substitute* "dmi.c"
(("\"dmidecode\"")
(format #f "~S"
- (string-append (assoc-ref inputs "dmidecode")
- "/sbin/dmidecode"))))
- #t)))))
+ (search-input-file inputs "/sbin/dmidecode"))))))
+ (add-before 'build 'patch-type-error
+ (lambda _
+ ;; See https://github.com/flashrom/flashrom/pull/133
+ (substitute* "libflashrom.c"
+ (("supported_boards\\[i\\].working = binfo\\[i\\].working")
+ "supported_boards[i].working = (enum flashrom_test_state)binfo[i].working")
+ (("supported_chipsets\\[i\\].status = chipset\\[i\\].status")
+ "supported_chipsets[i].status = (enum flashrom_test_state)chipset[i].status")))))))
(home-page "https://flashrom.org/")
(synopsis "Identify, read, write, erase, and verify ROM/flash chips")
(description
(define-public 0xffff
(package
(name "0xffff")
- (version "0.7")
+ (version "0.9")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/pali/0xffff/archive/"
- version ".tar.gz"))
- (file-name (string-append "0xFFFF" version ".tar.gz" ))
- (sha256
- (base32
- "1g4032c81wkk37wvbg1dxcqq6mnd76y9x7f2crmzqi6z4q9jcxmj"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pali/0xffff")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0rl1xzbxl991pm2is98zbryac1lgjrc3zphmbd8agv07av0r6r6n"))))
(build-system gnu-build-system)
(inputs
- `(("libusb" ,libusb-0.1))) ; doesn't work with libusb-compat
+ ;; Building with libusb-compat will succeed but the result will be broken.
+ ;; See <https://github.com/pali/0xFFFF/issues/3>.
+ (list libusb-0.1))
(arguments
- '(#:phases
+ `(#:phases
(modify-phases %standard-phases
- (delete 'configure)) ; no configure
- #:make-flags (list (string-append "PREFIX=" %output))
- #:tests? #f)) ; no 'check' target
+ (delete 'configure)) ; no configure
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ "HOST_CC=gcc"
+ "BUILD_DATE=GNU Guix"
+ (string-append "PREFIX=" %output))
+ #:tests? #f)) ; no 'check' target
(home-page "https://github.com/pali/0xFFFF")
(synopsis "Flash FIASCO images on Maemo devices")
(description
(define-public avrdude
(package
(name "avrdude")
- (version "6.1")
+ (version "6.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/avrdude/avrdude-"
version ".tar.gz"))
(sha256
- (base32
- "0frxg0q09nrm95z7ymzddx7ysl77ilfbdix1m81d9jjpiv5bm64y"))))
+ (base32 "15m1w1qad3dj7r8n5ng1qqcaiyx1gyd6hnc3p2apgjllccdp77qg"))))
(build-system gnu-build-system)
(inputs
- `(("libelf" ,libelf)
- ("libusb" ,libusb-compat)
- ("libftdi" ,libftdi)))
+ (list libelf libusb-compat libftdi))
(native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)))
+ (list bison flex))
(home-page "https://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).")
+EEPROM contents of AVR microcontrollers using the @acronym{ISP, in-system
+programming} technique.")
(license license:gpl2+)))
(define-public dfu-programmer
(patches (search-patches "dfu-programmer-fix-libusb.patch"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
- `(("libusb" ,libusb)))
- (home-page "http://dfu-programmer.github.io/")
+ (list libusb))
+ (home-page "https://dfu-programmer.github.io/")
(synopsis "Device firmware update programmer for Atmel chips")
(description
"Dfu-programmer is a multi-platform command-line programmer for
(define-public dfu-util
(package
(name "dfu-util")
- (version "0.9")
+ (version "0.11")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin"))))
+ "17piiyp08pccqmbhnswv957lkypmmm92kps79hypxvw23ai3pddl"))))
(build-system gnu-build-system)
(inputs
- `(("libusb" ,libusb)))
+ (list libusb))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(synopsis "Host side of the USB Device Firmware Upgrade (DFU) protocol")
(description
"The DFU (Universal Serial Bus Device Firmware Upgrade) protocol is
(let ((commit "f289b7a2e5627464044249f0e5742830e052e360"))
(package
(name "teensy-loader-cli")
- (version (string-append "2.1-1." (string-take commit 7)))
+ (version (git-version "2.1" "1" commit))
(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" ))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PaulStoffregen/teensy_loader_cli")
+ (commit commit)))
+ (sha256 (base32 "0sssim56pwsxp5cp5dlf6mi9h5fx2592m6j1g7abnm0s09b0lpdx"))
+ (file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
`(begin
(install-file "teensy_loader_cli" bin)
#t))))))
(inputs
- `(("libusb-compat" ,libusb-compat)))
+ (list libusb-compat))
(synopsis "Command line firmware uploader for Teensy development boards")
(description
"The Teensy loader program communicates with your Teensy board when the
(license license:gpl3))))
(define-public rkflashtool
- (let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1")
+ (let ((commit "8966c4e277de8148290554aaaa4146a3a84a3c53")
(revision "1"))
(package
(name "rkflashtool")
- (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+ (version (git-version "5.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/linux-rockchip/rkflashtool.git")
+ (url "https://github.com/linux-rockchip/rkflashtool")
(commit commit)))
- (file-name (string-append name "-" version "-checkout"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1zkd8zxir3rfg3sy9r20bcnxclnplryn583gqpcr3iad0k3xbah7"))))
+ "1ndyzg1zlgg20dd8js9kfqm5kq19k005vddkvf65qj20w0pcyahn"))))
(build-system gnu-build-system)
(arguments
'(#:phases
#:make-flags (list (string-append "PREFIX=" %output))
#:tests? #f)) ; no tests
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
- `(("libusb" ,libusb)))
+ (list libusb))
(home-page "https://github.com/linux-rockchip/rkflashtool")
(synopsis "Tools for flashing Rockchip devices")
(description "Allows flashing of Rockchip based embedded linux devices.
(name "heimdall")
(version "1.4.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/Benjamin-Dobell/Heimdall"
- "/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/BenjaminDobell/Heimdall.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1y7gwg3lipyp2zcysm2vid1qg5nwin9bxbvgzs28lz2rya4fz6sq"))))
+ "1ygn4snvcmi98rgldgxf5hwm7zzi1zcsihfvm6awf9s6mpcjzbqz"))))
(build-system cmake-build-system)
(arguments
`(#:build-type "Release"
(install-file "libpit/libpit.a" lib)
#t))))))
(inputs
- `(("libusb" ,libusb)
- ("qtbase" ,qtbase)
- ("zlib" ,zlib)))
- (home-page "http://glassechidna.com.au/heimdall/")
+ (list libusb qtbase-5 zlib))
+ (home-page "https://glassechidna.com.au/heimdall/")
(synopsis "Flash firmware onto Samsung mobile devices")
(description "@command{heimdall} is a tool suite used to flash firmware (aka
ROMs) onto Samsung mobile devices. Heimdall connects to a mobile device over
(define-public ifdtool
(package
(name "ifdtool")
- (version "4.7")
+ (version "4.9")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://review.coreboot.org/p/coreboot")
+ (url "https://github.com/coreboot/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0nw555i0fm5kljha9h47bk70ykbwv8ddfk6qhz6kfqb79vzhy4h2"))))
+ "0jidj29jh6p65d17k304wlzhxvp4p3c2namgcdwg2sxq8jfr0zlm"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _
- (chdir "util/ifdtool")
- #t))
- (delete 'configure)
- (delete 'check))))
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "util/ifdtool")
+ #t))
+ (delete 'configure)) ; no configure script
+ #:tests? #f)) ; no test suite
(home-page "https://github.com/corna/me_cleaner/")
(synopsis "Intel Firmware Descriptor dumper")
(description "This package provides @command{ifdtool}, a program to
"0nw555i0fm5kljha9h47bk70ykbwv8ddfk6qhz6kfqb79vzhy4h2"))))
(build-system gnu-build-system)
(inputs
- `(("pciutils" ,pciutils)
- ("zlib" ,zlib)))
+ (list pciutils zlib))
(arguments
`(#:make-flags
(list "CC=gcc"
(define-public me-cleaner
(package
(name "me-cleaner")
- (version "1.1")
+ (version "1.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/corna/me_cleaner/"
- "archive/v" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/corna/me_cleaner")
+ (commit (string-append "v" version))))
(sha256
(base32
- "1pgwdqy0jly80nhxmlmyibs343497yjzs6dwfbkcw0l1gjm8i5hw"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "1bdj2clm13ir441vn7sv860xsc5gh71ja5lc2wn0gggnff0adxj4"))
+ (file-name (git-file-name name version))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'create-setup.py
- (lambda _
- (call-with-output-file "setup.py"
- (lambda (port)
- (format port "\
-from setuptools import setup
-setup(name='me_cleaner', version='~a', scripts=['me_cleaner.py'])
-" ,version)))
- #t)))))
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "man/me_cleaner.1" man)
+ #t))))))
(home-page "https://github.com/corna/me_cleaner")
(synopsis "Intel ME cleaner")
(description "This package provides tools for disabling Intel
;; This is an Intel thing.
(supported-systems '("x86_64-linux" "i686-linux"))))
+
+(define-public uefitool
+ (package
+ (name "uefitool")
+ (version "0.28.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LongSoft/UEFITool")
+ (commit version)))
+ (sha256
+ (base32
+ "1n2hd2dysi5bv2iyq40phh1jxc48gdwzs414vfbxvcharcwapnja"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (invoke "qmake" "-makefile")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "UEFITool" (string-append (assoc-ref outputs "out")
+ "/bin")))))))
+ (inputs
+ (list qtbase-5))
+ (home-page "https://github.com/LongSoft/UEFITool/")
+ (synopsis "UEFI image editor")
+ (description "@code{uefitool} is a graphical image file editor for
+Unifinished Extensible Firmware Interface (UEFI) images.")
+ (license license:bsd-2)))
+
+(define-public srecord
+ (package
+ (name "srecord")
+ (version "1.64")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/srecord/srecord/"
+ version "/srecord-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1qk75q0k5vzmm3932q9hqz2gp8n9rrdfjacsswxc02656f3l3929"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "SH="
+ (assoc-ref %build-inputs "bash")
+ "/bin/bash"))))
+ (inputs
+ (list boost libgcrypt))
+ (native-inputs
+ (list bison
+ diffutils
+ ghostscript
+ groff
+ libtool
+ which))
+ (home-page "http://srecord.sourceforge.net/")
+ (synopsis "Tools for EPROM files")
+ (description "The SRecord package is a collection of powerful tools for
+manipulating EPROM load files. It reads and writes numerous EPROM file
+formats, and can perform many different manipulations.")
+ (license license:gpl3+)))
+
+(define-public uuu
+ (package
+ (name "uuu")
+ (version "1.4.165")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/NXPmicro/mfgtools")
+ (commit (string-append "uuu_" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0k309lp27d4k6x4qq0badbk8i47xsc6f3fffz73650iyfs4hcniw"))))
+ (arguments
+ `(#:tests? #f ; no tests
+ #:modules ((guix build utils)
+ (ice-9 popen)
+ (srfi srfi-26)
+ (guix build cmake-build-system))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-version-gen
+ (lambda _
+ (call-with-output-file ".tarball-version"
+ (lambda (port)
+ (display ,version port)))))
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (uuu (string-append out "/bin/uuu"))
+ (pipe (open-pipe* OPEN_READ uuu "-udev"))
+ (rules
+ (string-append out "/lib/udev/rules.d/70-uuu.rules")))
+ (mkdir-p (string-append out "/lib/udev/rules.d"))
+ (call-with-output-file rules
+ (cut dump-port pipe <>))))))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list libusb bzip2 zlib libzip openssl))
+ (home-page "https://github.com/NXPmicro/mfgtools")
+ (synopsis "Freescale/NXP I.MX chip image deploy tools")
+ (description "@code{uuu} is a command line tool, evolved out of MFGTools.
+It can be used to upload images to I.MX SoC's using at least their boot ROM.")
+ (license license:bsd-3)))