unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 66217@debbugs.gnu.org
Cc: Maxim Cournoyer <maxim.cournoyer@gmail.com>,
	Efraim Flashner <efraim@flashner.co.il>,
	Vagrant Cascadian <vagrant@debian.org>
Subject: [bug#66217] [PATCH 03/22] gnu: qmk: Avoid propagating inputs.
Date: Tue, 26 Sep 2023 15:04:26 -0400	[thread overview]
Message-ID: <4f682ffc051356929e9c32104f44b10a5deefcbb.1695754731.git.maxim.cournoyer@gmail.com> (raw)
In-Reply-To: <cover.1695754731.git.maxim.cournoyer@gmail.com>

* 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.
---

 gnu/packages/firmware.scm | 71 ++++++++++++++++++++++++++++++++-------
 1 file changed, 59 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index dcae0d510b5..499920160a8 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -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"))
 
+\f
+;;;
+;;; 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)))
-- 
2.41.0





  parent reply	other threads:[~2023-09-26 20:31 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-26 18:59 [bug#66217] [PATCH 00/22] Add ErgoDox firmware packages Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 01/22] gnu: make-avr-toolchain: Add a #:xgcc argument Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 02/22] gnu: qmk: Style Maxim Cournoyer
2023-09-26 19:04 ` Maxim Cournoyer [this message]
2023-09-26 19:04 ` [bug#66217] [PATCH 04/22] gnu: qmk: Use GCC 8 for the AVR toolchain Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 05/22] gnu: qmk: Add many missing inputs and add more commands to PATH Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 06/22] gnu: Add lufa Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 07/22] gnu: embedded: Do not use a prefix on the (gnu packages base) module Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 08/22] gnu: Add qmk-firmware-ergodox-ez-default Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 09/22] gnu: Add qmk-firmware-ergodox-ez-dvorak-42-key Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 10/22] gnu: Add qmk-udev-rules Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 11/22] gnu: Add qmk-firmware-ergodox-ez-hacker-dvorak Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 12/22] gnu: Add qmk-firmware-ergodox-ez-dvorak Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 13/22] gnu: Add qmk-firmware-ergodox-ez-dvorak-emacs Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 14/22] gnu: Add qmk-firmware-ergodox-ez-dvorak-emacs-software Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 15/22] gnu: Add ergodox-firmware-colemak-jc-mod Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 16/22] gnu: Add ergodox-firmware-colemak-symbol-mod Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 17/22] gnu: Add ergodox-firmware-dvorak-kinesis-mod Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 18/22] gnu: Add ergodox-firmware-qwerty-kinesis-mod Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 19/22] gnu: Add ergodox-firmware-workman-p-kinesis-mod Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 20/22] gnu: teensy-loader-cli: Use gexps Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 21/22] gnu: teensy-loader-cli: Fix license Maxim Cournoyer
2023-09-26 19:04 ` [bug#66217] [PATCH 22/22] gnu: Add teensy-udev-rules Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4f682ffc051356929e9c32104f44b10a5deefcbb.1695754731.git.maxim.cournoyer@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=66217@debbugs.gnu.org \
    --cc=efraim@flashner.co.il \
    --cc=vagrant@debian.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).