Subject: Re: bug#42601: Guix install bug: error: Unbound variable: ~S

From: Jan Wielkiewicz <[email-masked]>
Date: Mon, 10 Aug 2020 00:25:02 +0200

Hello,

I believe there's still something wrong here.
The bug (the new one, described below) occurs after adding 
#:use-module (gnu packages avr) to the firmware.scm file.
Attached the diff file of my package below.

I'm packaging qmk-firmware and here's what happens running guix build:

error: binutils: unbound variable
hint: Did you forget a `use-modules' form?

error: googletest: unbound variable
hint: Did you forget a `use-modules' form?

error: bzip2: unbound variable
hint: Did you forget a `use-modules' form?

error: gcc-4.9: unbound variable
hint: Did you forget a `use-modules' form?

error: perl-module-build: unbound variable
hint: Did you forget a `use-modules' form?

error: python2-numpy: unbound variable
hint: Did you forget a `use-modules' form?

error: gzip: unbound variable
hint: Did you forget a `use-modules' form?

error: xcb-proto: unbound variable
hint: Did you forget a `use-modules' form?

error: gnu-make: unbound variable
hint: Did you forget a `use-modules' form?

error: unzip: unbound variable
hint: Did you forget a `use-modules' form?

error: curl: unbound variable
hint: Did you forget a `use-modules' form?

error: binutils: unbound variable
hint: Did you forget a `use-modules' form?

error: pjproject: unbound variable
hint: Did you forget a `use-modules' form?

error: xorg-server: unbound variable
hint: Did you forget a `use-modules' form?

error: libdvdnav: unbound variable
hint: Did you forget a `use-modules' form?

error: perl: unbound variable
hint: Did you forget a `use-modules' form?

error: coreutils: unbound variable
hint: Did you forget a `use-modules' form?

error: libetpan: unbound variable
hint: Did you forget a `use-modules' form?

Throw to key `unbound-variable' with args `("resolve-interface" "no
binding `~A' in module ~A" (python (gnu packages python)) #f)'.
Backtrace: In ice-9/boot-9.scm:
  1736:10 19 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   631:22 18 (thunk)
   1299:8 17 (call-with-build-handler #<procedure 7fd7f867b420 at g…> …)
In guix/scripts/build.scm:
    817:2 16 (_)
In srfi/srfi-1.scm:
   673:15 15 (append-map _ _ . _)
   586:17 14 (map1 ((argument . "qmk-firmware") (build-mode . 0) # …))
In guix/scripts/build.scm:
   837:30 13 (_ _)
In gnu/packages.scm:
    477:2 12 (%find-package "qmk-firmware" "qmk-firmware" #f)
    362:6 11 (find-best-packages-by-name _ _)
   292:55 10 (_ "qmk-firmware" _)
In unknown file:
           9 (force #<promise #<procedure 7fd7f9172a00 at gnu/packag…>)
In gnu/packages.scm:
   239:33  8 (fold-packages #<procedure 7fd7f76d6f18 at gnu/package…> …)
In guix/discovery.scm:
   153:11  7 (all-modules _ #:warn _)
In srfi/srfi-1.scm:
   460:18  6 (fold #<procedure 7fd7f8626300 at guix/discovery.scm:1…> …)
In guix/discovery.scm:
   143:19  5 (_ _ ())
In srfi/srfi-1.scm:
   691:23  4 (filter-map #<procedure 7fd7f86262c0 at guix/discove…> . #)
In guix/discovery.scm:
   118:22  3 (_ . _)
In guix/ui.scm:
    329:2  2 (report-unbound-variable-error _ #:frame _)
In ice-9/boot-9.scm:
  1669:16  1 (raise-exception _ #:continuable? _)
  1669:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Throw to key `match-error' with args `("match" "no matching pattern"
(unbound-variable "resolve-interface" "no binding `~A' in module ~A"
(python (gnu packages python)) #f))'.

Jan Wielkiewicz
From 39b3791efd06c4895c844548937d421f8359b1e0 Mon Sep 17 00:00:00 2001
From: Jan Wielkiewicz <[email-masked]>
Date: Sun, 9 Aug 2020 23:43:08 +0200
Subject: [PATCH] gnu: Add qmk-firmware.

* gnu/packages/firmware.scm (qmk-firmware): New variable.
---
 gnu/packages/firmware.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index 15a6725c67..a0c65752d4 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018 Vagrant Cascadian <[email-masked]>
 ;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2020 Marius Bakke <[email-masked]>
+;;; Copyright © 2020 Jan Wielkiewicz <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,6 +34,8 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages assembly)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avr)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cmake)
@@ -41,6 +44,7 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python))
 
 (define-public ath9k-htc-firmware
@@ -621,3 +625,36 @@ switching support).\n")
              #t)))))
     (native-inputs `(("cross-gcc" ,(cross-gcc "arm-none-eabi" #:xgcc gcc-7))
                      ("cross-binutils" ,(cross-binutils "arm-none-eabi"))))))
+
+(define-public qmk-firmware
+  (package
+    (name "qmk-firmware")
+    (version "0.9.50")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/qmk/qmk_firmware")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0153glswflsaslz79k4r7a98rn1p8762qnjjfifzv82gfbcl2jj9"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+                      (delete 'configure))))
+    (home-page "https://qmk.fm/")
+    (synopsis "")
+    (description
+     "")
+    (license (list license:gpl2
+                   license:gpl3
+                   license:expat
+                   license:bsd-3
+                   license:asl2.0))))
-- 
2.28.0