gnu: qmk: Avoid propagating inputs.

* gnu/packages/firmware.scm (qmk):
[arguments]: New modules and phases arguments.
[propagated-inputs]: Turn into...
[inputs]: ... this.  Add coreutils-minimal, sed and util-linux.
[description]: Expound.
This commit is contained in:
Maxim Cournoyer 2023-09-02 23:46:06 -04:00
parent 077f7bd235
commit 431d64bae2
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -33,6 +33,7 @@ (define-module (gnu packages firmware)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@ -40,6 +41,8 @@ (define-module (gnu packages firmware)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avr)
#:use-module (gnu packages assembly)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
@ -52,6 +55,7 @@ (define-module (gnu packages firmware)
#:use-module (gnu packages curl)
#:use-module (gnu packages efi)
#:use-module (gnu packages elf)
#:use-module (gnu packages flashing-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
@ -1212,6 +1216,11 @@ (define-public crust-pinebook
(define-public crust-pine64-plus
(make-crust-package "pine64_plus"))
;;;
;;; QMK Firmware.
;;;
(define-public qmk
(package
(name "qmk")
@ -1224,18 +1233,56 @@ (define-public qmk
"1619q9v90740dbg8xpzqlhwcasz42xj737803aiip8qc3a7zhwgq"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;No tests.
(propagated-inputs (list python-dotty-dict
python-hid
python-hjson
python-jsonschema
python-milc
python-pillow
python-pygments
python-pyserial
python-pyusb))
(list
#:tests? #f ;no tests
#:modules '((guix build pyproject-build-system)
(guix build utils)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(add-after 'wrap 'wrap-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (search-input-file outputs "bin/qmk")
`("PATH" prefix
,(map (compose dirname
(cut search-input-file inputs <>))
'("bin/avr-gcc"
"bin/avrdude"
"bin/dfu-programmer"
"bin/git"
;; TODO: Remove after git is wrapped with these.
"bin/basename"
"bin/sed"
"bin/uname")))))))))
;; The inputs are not propagated since qmk is to be used strictly as a
;; command.
(inputs
(list (make-avr-toolchain)
avrdude
dfu-programmer
git-minimal ;for the clone action
python-dotty-dict
python-hid
python-hjson
python-jsonschema
python-milc
python-pillow
python-pygments
python-pyserial
python-pyusb
;; These are added to workaround faults in our git package (see
;; bug#65924).
coreutils-minimal
sed
util-linux))
(home-page "https://qmk.fm")
(synopsis "Command line utility to manage QMK keyboard firmwares")
(description "This package provides a program to help users work with
@acronym{QMK, Quantum Mechanical Keyboard} firmwares.")
(description "The QMK CLI provides a @acronym{CLI, command line interface}
based program to help users work with the QMK firmware, which can be used for
multiple custom keyboards such as Planck, ErgoDox, Corne and others.
This @acronym{CLI} program is mainly used for building the QMK firmware, but
also has some other convenience utilities. It is highly recommended to
install the udev rules provided by the @code{qmk-udev-rules} package to avoid
having to run @command{qmk} as root when flashing the firmware.")
(license license:expat)))