From patchwork Mon Sep 11 04:25:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53715 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5B1BA27BBE9; Mon, 11 Sep 2023 05:27:26 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 9D73327BBE2 for ; Mon, 11 Sep 2023 05:27:23 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfYVs-0001Dr-Jd; Mon, 11 Sep 2023 00:27:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfYVm-0001Cx-Mq for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:59 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfYVm-0005sj-FD for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:58 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfYVq-0005aK-1H for guix-patches@gnu.org; Mon, 11 Sep 2023 00:27:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65860] [PATCH 1/4] gnu: avr: Delay all cross compilation packages. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 11 Sep 2023 04:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65860 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65860@debbugs.gnu.org Cc: Maxim Cournoyer Received: via spool by 65860-submit@debbugs.gnu.org id=B65860.169440640821409 (code B ref 65860); Mon, 11 Sep 2023 04:27:01 +0000 Received: (at 65860) by debbugs.gnu.org; 11 Sep 2023 04:26:48 +0000 Received: from localhost ([127.0.0.1]:51787 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVb-0005ZF-Ov for submit@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:48 -0400 Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]:49515) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVY-0005Yz-BR for 65860@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:46 -0400 Received: by mail-qt1-x831.google.com with SMTP id d75a77b69052e-414b3da2494so25139631cf.3 for <65860@debbugs.gnu.org>; Sun, 10 Sep 2023 21:26:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694406394; x=1695011194; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CSa1jUz5LyAym01PJQ8druO+zhYj1EoNYEx05pBCnoM=; b=T1rAKvFp7MmGwsc+z+YdAJjiYMTUrFs/bF9p7eVCBC19o9gE2henkNiTmEQXoybYD0 Y+dylJnyfMPExIAGNCVUzGeYR5Bp/R1tTG/+MeBwxM68Np96L5bdEQETJaj6DjfMJZQD NFYpVpY+b6cjeJKQwOm5Kb1jM/EFnr+dXwMdh43y+kS09SMCo7391MVESkGQE/gV3W1Q 05P4jV6fcxuHxgI59lKuBheywakzurlrqXM3LnRqfwg5Er6VXewl170KR9YbX/fz9oqY jyVW393ZXUcLhtU8qpEJcC0ByVymWL9OcBkj6zkNuoU8yTT9uZMf2dQxCilwct7iZ+IK FxkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694406394; x=1695011194; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CSa1jUz5LyAym01PJQ8druO+zhYj1EoNYEx05pBCnoM=; b=moehU15h/ER+ugG6+rLDWB9+xqnOscz1oSTcn5Fmol9+X1WzMcBcSejvbTl+BdTTFr HTIqKHhgz9YP6tWX5OOD40GEmcZB5CRHozDvPVmBMH/7Tas13rNNfBsIqlwaVL6qeUBq F3Ny6bWLgnY3t/2ak0dWIu48+eGqetd9aNSUZ+mxaM59GYfFWBU7cmnPSZDuDTh+QYRL QWpAoS85DZIVBCDs2/tTERgiS8RjqrE6mNejNQjg1tbcJi7Q5FCK38V870rxiCh3rJU5 /82AdwsHec5X4S8k3YveFhl+AADy08h46bvkkbuz1q1DdA1BjPZ5IakVWONWlYSyAP+K mDiQ== X-Gm-Message-State: AOJu0YyXCAH0s9AqqDTr36YVIdON7vDD+yj3wOEwea2PBqTXR2HMGpNq olEqutICq3YUrH1+4v989+jFGIT5Vq4= X-Google-Smtp-Source: AGHT+IGHxOuQlThXG1+xHOks1npJPGb0O7Vn3V3IpV749/uFdvLqabGT4nHH6B6C8gCD9FBA7bxD4g== X-Received: by 2002:a05:622a:4cd:b0:412:d0b:12b5 with SMTP id q13-20020a05622a04cd00b004120d0b12b5mr8919445qtx.45.1694406394401; Sun, 10 Sep 2023 21:26:34 -0700 (PDT) Received: from localhost.localdomain (dsl-155-89.b2b2c.ca. [66.158.155.89]) by smtp.gmail.com with ESMTPSA id c8-20020a0cf2c8000000b0064f778c8165sm2608923qvm.64.2023.09.10.21.26.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 21:26:33 -0700 (PDT) From: Maxim Cournoyer Date: Mon, 11 Sep 2023 00:25:57 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Partially addresses . * gnu/packages/avr.scm: Add commentary comment. (avr-gcc): Turn into this... (make-avr-gcc): ... procedure. (avr-libc): Likewise, into... (make-avr-gcc): ... this. Adjust native-inputs accordingly. (avr-toolchain): Likewise, into... (make-avr-toolchain): ... this. * gnu/packages/avr-xyz.scm (simavr) [propagated-inputs]: replace avr-toolchain with a call to the 'make-avr-toolchain' procedure. --- gnu/packages/avr-xyz.scm | 2 +- gnu/packages/avr.scm | 66 +++++++++++++++++++++++++--------------- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm index a05157ede7..e8844b8d43 100644 --- a/gnu/packages/avr-xyz.scm +++ b/gnu/packages/avr-xyz.scm @@ -71,7 +71,7 @@ (define-public simavr (string-append "PREFIX=" #$output) (string-append "DESTDIR=" #$output)))) (propagated-inputs - (list avr-toolchain)) + (list (make-avr-toolchain))) (native-inputs (list autoconf which diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 9c623a9626..abca60eeac 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -38,15 +38,27 @@ (define-module (gnu packages avr) #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) #:use-module (gnu packages llvm) - #:use-module (gnu packages vim)) + #:use-module (gnu packages vim) + #:export (make-avr-toolchain)) -(define-public avr-binutils +;;; Commentary: +;;; +;;; This module defines a procedure that can be used to create a complete +;;; avr-toolchain package. The procedure must not be used at the top level, +;;; to avoid cyclic module dependencies caused by the (gnu packages +;;; cross-base) module referring to top level bindings from (gnu packages +;;; gcc). +;;; +;;; It also contains packages for working with or targeting the AVR system. +;;; + +(define (make-avr-binutils) (package (inherit (cross-binutils "avr")) (name "avr-binutils"))) -(define avr-gcc - (let ((xgcc (cross-gcc "avr" #:xbinutils avr-binutils))) +(define (make-avr-gcc) + (let ((xgcc (cross-gcc "avr" #:xbinutils (make-avr-binutils)))) (package (inherit xgcc) (name "avr-gcc") @@ -99,7 +111,7 @@ (define avr-gcc `(("gcc" ,gcc) ,@(package-native-inputs xgcc)))))) -(define avr-libc +(define (make-avr-libc) (package (name "avr-libc") (version "2.0.0") @@ -114,8 +126,8 @@ (define avr-libc (arguments '(#:out-of-source? #t #:configure-flags '("--host=avr"))) - (native-inputs `(("avr-binutils" ,avr-binutils) - ("avr-gcc" ,avr-gcc))) + (native-inputs `(("avr-binutils" ,(make-avr-binutils)) + ("avr-gcc" ,(make-avr-gcc)))) (home-page "https://www.nongnu.org/avr-libc/") (synopsis "The AVR C Library") (description @@ -124,27 +136,31 @@ (define avr-libc (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) -(define-public avr-toolchain - ;; avr-libc checks the compiler version and passes "--enable-device-lib" for avr-gcc > 5.1.0. - ;; It wouldn't install the library for atmega32u4 etc if we didn't use the corret avr-gcc. - (package - (name "avr-toolchain") - (version (package-version avr-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("avrdude" ,avrdude) - ("binutils" ,avr-binutils) - ("gcc" ,avr-gcc) - ("libc" ,avr-libc))) - (synopsis "Complete GCC tool chain for AVR microcontroller development") - (description "This package provides a complete GCC tool chain for AVR +(define (make-avr-toolchain) + (let ((avr-binutils (make-avr-binutils)) + (avr-libc (make-avr-libc)) + (avr-gcc (make-avr-gcc))) + ;; avr-libc checks the compiler version and passes "--enable-device-lib" + ;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4 + ;; etc if we didn't use the corret avr-gcc. + (package + (name "avr-toolchain") + (version (package-version avr-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("avrdude" ,avrdude) + ("binutils" ,avr-binutils) + ("gcc" ,avr-gcc) + ("libc" ,avr-libc))) + (synopsis "Complete GCC tool chain for AVR microcontroller development") + (description "This package provides a complete GCC tool chain for AVR microcontroller development. This includes the GCC AVR cross compiler and avrdude for firmware flashing. The supported programming languages are C and C++.") - (home-page (package-home-page avr-libc)) - (license (package-license avr-gcc)))) + (home-page (package-home-page avr-libc)) + (license (package-license avr-gcc))))) (define-public microscheme (package From patchwork Mon Sep 11 04:25:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53714 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 6BDC827BBE9; Mon, 11 Sep 2023 05:27:18 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0A25127BBE2 for ; Mon, 11 Sep 2023 05:27:12 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfYVu-0001Dv-7T; Mon, 11 Sep 2023 00:27:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfYVm-0001Cy-Rd for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:59 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfYVm-0005sp-K0 for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:58 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfYVq-0005aR-Dc for guix-patches@gnu.org; Mon, 11 Sep 2023 00:27:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65860] [PATCH 2/4] gnu: embedded: Turn packages using top-level variables into procedures. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 11 Sep 2023 04:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65860 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65860@debbugs.gnu.org Cc: Maxim Cournoyer Received: via spool by 65860-submit@debbugs.gnu.org id=B65860.169440641521432 (code B ref 65860); Mon, 11 Sep 2023 04:27:02 +0000 Received: (at 65860) by debbugs.gnu.org; 11 Sep 2023 04:26:55 +0000 Received: from localhost ([127.0.0.1]:51790 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVh-0005ZZ-FH for submit@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:55 -0400 Received: from mail-qk1-x733.google.com ([2607:f8b0:4864:20::733]:58505) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVc-0005Z4-MD for 65860@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:51 -0400 Received: by mail-qk1-x733.google.com with SMTP id af79cd13be357-76ef6d98d7eso210260485a.0 for <65860@debbugs.gnu.org>; Sun, 10 Sep 2023 21:26:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694406399; x=1695011199; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DRE4JRb7iNjm3ekwpSqZYCPN5/4bM/xfUpKa7teAPDs=; b=UKkzX7UM0/ygnP2hRAQwIHEYT/TVxT2giG3ctWARpdH2dd6Va70ZVOu+Fpk0x2R1Tg iqhqFnVApPANvZczlka1k6wCZKsozeNsJW33gpzaNuEMFFIOjCwyFsPSLINUEB81LyNB WA0hOtcLU3Wb3NnSEo9yIhUyCzh3og+Ls7plcpWlEB5rBKPGaOUTYNmwJXXuiLtWDSsj 142GFUy3FRQ4l7I6DLbTFB3yhwt8ORJj7CtevpN3Rsvb4GvNxsCopWkjkRRp/cy5PJag vZnP6cppWe8SgI92dQ6ZhyMSE6F50MDR8ilQPdYPb4iq+N4kOM8aeU60n/lmq2OSz3GM 7WhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694406399; x=1695011199; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DRE4JRb7iNjm3ekwpSqZYCPN5/4bM/xfUpKa7teAPDs=; b=jsoW0JoimPDzJth0gl1QRoFzdej+T33jPXQtQlUvq/QbL1xlHyW152yLh+2lzPMvth fDgdOQSXo3qERGk5QoRi3Ul6nztJJ9ZckUprz5m1soBmEleipOztUlVXRNFCzKysCHqw FE57Z5QS8Yd5LZVvqt4YEKwJF7txyzEan/wntLxyA3KBynAFoTQriDDqGy5ldGJAZWTW 7zjfpn+MlZtCdRkURWFaEJX5WijF0UP+DhIERlvNgL8z7918/+XHhkjyCxP/teSA4G6x 3pcbeA0g4RfHOXCZ1nNadApNKrYnqIhn7tRL939nQeEmt30yopGJhBv/4jpJ8/J8GjHH fuIQ== X-Gm-Message-State: AOJu0Ywwzm4z3DwtO8HweRj8bXasWGvz9Hv6ehbPQkOOUnixTYDaQU/Y N39iDXmEnpY+/UcacnCXb8Zf5kAccCI= X-Google-Smtp-Source: AGHT+IELSe9OWZrUAb+PU+C2ngs2WkEhzdRxl9lwyNVYxa4ZHs6de455XcFGM+WJ9bXQ95zdTQRt7Q== X-Received: by 2002:a0c:cc8a:0:b0:63f:b926:4474 with SMTP id f10-20020a0ccc8a000000b0063fb9264474mr2364511qvl.0.1694406398651; Sun, 10 Sep 2023 21:26:38 -0700 (PDT) Received: from localhost.localdomain (dsl-155-89.b2b2c.ca. [66.158.155.89]) by smtp.gmail.com with ESMTPSA id c8-20020a0cf2c8000000b0064f778c8165sm2608923qvm.64.2023.09.10.21.26.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 21:26:38 -0700 (PDT) From: Maxim Cournoyer Date: Mon, 11 Sep 2023 00:25:58 -0400 Message-ID: <29c22d0230290ead9ca04fa3b01c17abfbdd3ed5.1694406359.git.maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Fixes . Before this change, simply adding the following import: modified gnu/packages/firmware.scm @@ -42,6 +42,7 @@ (define-module (gnu packages firmware) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages assembly) + #:use-module (gnu packages avr) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) Would cause byte compilation and/or evaluation to fail due to a circular module dependency. * gnu/packages/embedded.scm: Add commentary. (gcc-arm-none-eabi-4.9, gcc-arm-none-eabi-6, newlib-arm-none-eabi) (newlib-nano-arm-none-eabi, gcc-arm-none-eabi-7-2018-q2-update) (newlib-arm-none-eabi-7-2018-q2-update) (newlib-nano-arm-none-eabi-7-2018-q2-update) (arm-none-eabi-toolchain-4.9, arm-none-eabi-nano-toolchain-4.9) (arm-none-eabi-toolchain-6, arm-none-eabi-nano-toolchain-6) (arm-none-eabi-toolchain-7-2018-q2-update, gdb-arm-none-eabi) (propeller-binutils, propeller-gcc-6, propeller-gcc-4) (propeller-gcc, propeller-toolchain, propeller-development-suite) (gcc-vc4): Turn into procedures, prefixing the procedure name with 'make-', and adjust all users. (make-libstdc++-arm-none-eabi) [arguments]: Avoid an unused warning. (arm-none-eabi-toolchain): Rename to... (make-arm-none-eabi-toolchain): ... this. * gnu/packages/raspberry-pi.scm (raspi-arm-chainloader) [native-inputs]: Replace gcc-arm-none-eabi-6 with (make-arm-none-eabi-toolchain). * gnu/packages/axoloti.scm (axoloti-runtime) [inputs]: Replace arm-none-eabi-nano-toolchain-4.9 with (make-arm-none-eabi-nano-toolchain-4.9). (axoloti-patcher): Likewise. (axoloti-patcher-next) [inputs]: Replace arm-none-eabi-nano-toolchain-7-2018-q2-update with (make-arm-none-eabi-nano-toolchain-7-2018-q2-update). --- gnu/packages/axoloti.scm | 6 +- gnu/packages/embedded.scm | 322 +++++++++++++++++++--------------- gnu/packages/raspberry-pi.scm | 2 +- 3 files changed, 186 insertions(+), 144 deletions(-) diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm index e0dd22c627..7b36922860 100644 --- a/gnu/packages/axoloti.scm +++ b/gnu/packages/axoloti.scm @@ -199,7 +199,7 @@ (define-public axoloti-runtime ;; for compiling patches ("make" ,gnu-make) ;; for compiling firmware - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-4.9) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ;; for uploading compiled patches and firmware ("dfu-util" ,dfu-util-for-axoloti))) (native-inputs @@ -339,7 +339,7 @@ (define-public axoloti-patcher (assoc-ref ant:%standard-phases 'strip-jar-timestamps))))) (inputs `(("icedtea" ,icedtea "jdk") - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-4.9) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ("java-simple-xml" ,java-simple-xml) ("java-rsyntaxtextarea" ,java-rsyntaxtextarea) ("java-usb4java" ,java-usb4java) @@ -572,7 +572,7 @@ (define-public axoloti-patcher-next (assoc-ref ant:%standard-phases 'strip-jar-timestamps))))) (inputs `(("jdk" ,icedtea "jdk") - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-7-2018-q2-update) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-7-2018-q2-update)) ;; for compiling patches ("make" ,gnu-make) ;; for uploading compiled patches and firmware diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 325013a627..c84262b825 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2020, 2021, 2022 Simon South ;;; Copyright © 2021 Morgan Smith ;;; Copyright © 2022 Mathieu Othacehe -;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022, 2023 Maxim Cournoyer ;;; Copyright © 2023 Janneke Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. @@ -73,14 +73,49 @@ (define-module (gnu packages embedded) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages xorg) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:export (make-gcc-arm-none-eabi-4.9 + make-gcc-arm-none-eabi-6 + make-gcc-arm-none-eabi-7-2018-q2-update + + make-gcc-vc4 + + make-newlib-arm-none-eabi + make-newlib-arm-none-eabi-7-2018-q2-update + + make-newlib-nano-arm-none-eabi + make-newlib-nano-arm-none-eabi-7-2018-q2-update + + make-arm-none-eabi-toolchain-4.9 + make-arm-none-eabi-toolchain-6 + make-arm-none-eabi-toolchain-7-2018-q2-update + + make-arm-none-eabi-nano-toolchain-4.9 + make-arm-none-eabi-nano-toolchain-6 + make-arm-none-eabi-nano-toolchain-7-2018-q2-update + + make-gdb-arm-none-eabi + + make-propeller-gcc + make-propeller-gcc-4 + make-propeller-gcc-6 + make-propeller-toolchain + make-propeller-development-suite)) + +;;; Commentary: +;;; +;;; This modules contains toolchain generators as well as packages for use in +;;; embedded contexts. Note: the toolchain and specialized packages are +;;; procedures, so as to delay their references to top level bindings such as +;;; 'gcc' or 'cross-gcc', etc. +;;; ;; We must not use the released GCC sources here, because the cross-compiler ;; does not produce working binaries. Instead we take the very same SVN ;; revision from the branch that is used for a release of the "GCC ARM ;; embedded" project on launchpad. ;; See https://launchpadlibrarian.net/218827644/release.txt -(define-public gcc-arm-none-eabi-4.9 +(define (make-gcc-arm-none-eabi-4.9) (let ((xgcc (cross-gcc "arm-none-eabi" #:xgcc gcc-4.9 #:xbinutils (cross-binutils "arm-none-eabi"))) @@ -167,9 +202,9 @@ (define-public gcc-arm-none-eabi-4.9 (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) -(define-public gcc-arm-none-eabi-6 +(define (make-gcc-arm-none-eabi-6) (package - (inherit gcc-arm-none-eabi-4.9) + (inherit (make-gcc-arm-none-eabi-4.9)) (version (package-version gcc-6)) (source (origin (inherit (package-source gcc-6)) (patches @@ -178,7 +213,7 @@ (define-public gcc-arm-none-eabi-6 (search-patches "gcc-6-cross-environment-variables.patch" "gcc-6-arm-none-eabi-multilib.patch"))))))) -(define-public newlib-arm-none-eabi +(define (make-newlib-arm-none-eabi) (package (name "newlib") (version "2.4.0") @@ -211,7 +246,7 @@ (define-public newlib-arm-none-eabi #t))))) (native-inputs `(("xbinutils" ,(cross-binutils "arm-none-eabi")) - ("xgcc" ,gcc-arm-none-eabi-4.9) + ("xgcc" ,(make-gcc-arm-none-eabi-4.9)) ("texinfo" ,texinfo))) (home-page "https://www.sourceware.org/newlib/") (synopsis "C library for use on embedded systems") @@ -221,68 +256,70 @@ (define-public newlib-arm-none-eabi (license (license:non-copyleft "https://www.sourceware.org/newlib/COPYING.NEWLIB")))) -(define-public newlib-nano-arm-none-eabi - (package (inherit newlib-arm-none-eabi) - (name "newlib-nano") - (arguments - (substitute-keyword-arguments (package-arguments newlib-arm-none-eabi) - ;; The configure flags are identical to the flags used by the "GCC ARM - ;; embedded" project. They optimize newlib for use on small embedded - ;; systems with limited memory. - ((#:configure-flags flags) - ''("--target=arm-none-eabi" - "--enable-multilib" - "--disable-newlib-supplied-syscalls" - "--enable-newlib-reent-small" - "--disable-newlib-fvwrite-in-streamio" - "--disable-newlib-fseek-optimization" - "--disable-newlib-wide-orient" - "--enable-newlib-nano-malloc" - "--disable-newlib-unbuf-stream-opt" - "--enable-lite-exit" - "--enable-newlib-global-atexit" - "--enable-newlib-nano-formatted-io" - "--disable-nls")) - ((#:phases phases) - `(modify-phases ,phases - ;; XXX: Most arm toolchains offer both *.a and *_nano.a as newlib - ;; and newlib-nano respectively. The headers are usually - ;; arm-none-eabi/include/newlib.h for newlib and - ;; arm-none-eabi/include/newlib-nano/newlib.h for newlib-nano. We - ;; have two different toolchain packages for each which works but - ;; is a little strange. - (add-after 'install 'hardlink-newlib - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; The nano.specs file says that newlib-nano files should end - ;; in "_nano.a" instead of just ".a". Note that this applies - ;; to all the multilib folders too. - (for-each - (lambda (file) - (link file - (string-append - ;; Strip ".a" off the end - (substring file 0 (- (string-length file) 2)) - ;; Add "_nano.a" onto the end - "_nano.a"))) - (find-files - out - "^(libc.a|libg.a|librdimon.a|libstdc\\+\\+.a|libsupc\\+\\+.a)$")) +(define (make-newlib-nano-arm-none-eabi) + (let ((base (make-newlib-arm-none-eabi))) + (package + (inherit base) + (name "newlib-nano") + (arguments + (substitute-keyword-arguments (package-arguments base) + ;; The configure flags are identical to the flags used by the "GCC ARM + ;; embedded" project. They optimize newlib for use on small embedded + ;; systems with limited memory. + ((#:configure-flags _) + ''("--target=arm-none-eabi" + "--enable-multilib" + "--disable-newlib-supplied-syscalls" + "--enable-newlib-reent-small" + "--disable-newlib-fvwrite-in-streamio" + "--disable-newlib-fseek-optimization" + "--disable-newlib-wide-orient" + "--enable-newlib-nano-malloc" + "--disable-newlib-unbuf-stream-opt" + "--enable-lite-exit" + "--enable-newlib-global-atexit" + "--enable-newlib-nano-formatted-io" + "--disable-nls")) + ((#:phases phases) + `(modify-phases ,phases + ;; XXX: Most arm toolchains offer both *.a and *_nano.a as newlib + ;; and newlib-nano respectively. The headers are usually + ;; arm-none-eabi/include/newlib.h for newlib and + ;; arm-none-eabi/include/newlib-nano/newlib.h for newlib-nano. We + ;; have two different toolchain packages for each which works but + ;; is a little strange. + (add-after 'install 'hardlink-newlib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; The nano.specs file says that newlib-nano files should end + ;; in "_nano.a" instead of just ".a". Note that this applies + ;; to all the multilib folders too. + (for-each + (lambda (file) + (link file + (string-append + ;; Strip ".a" off the end + (substring file 0 (- (string-length file) 2)) + ;; Add "_nano.a" onto the end + "_nano.a"))) + (find-files + out + "^(libc.a|libg.a|librdimon.a|libstdc\\+\\+.a|libsupc\\+\\+.a)$")) - ;; newlib.h is usually in this location instead so both - ;; newlib and newlib-nano can be in the toolchain at the same - ;; time - (mkdir (string-append out "/arm-none-eabi/include/newlib-nano")) - (symlink - "../newlib.h" - (string-append out "/arm-none-eabi/include/newlib-nano/newlib.h")) - #t))))))) - (synopsis "Newlib variant for small systems with limited memory"))) + ;; newlib.h is usually in this location instead so both + ;; newlib and newlib-nano can be in the toolchain at the same + ;; time + (mkdir (string-append out "/arm-none-eabi/include/newlib-nano")) + (symlink + "../newlib.h" + (string-append out "/arm-none-eabi/include/newlib-nano/newlib.h")) + #t))))))) + (synopsis "Newlib variant for small systems with limited memory")))) ;;; The following definitions are for the "7-2018-q2-update" variant of the ;;; ARM cross toolchain as offered on https://developer.arm.com -(define-public gcc-arm-none-eabi-7-2018-q2-update +(define (make-gcc-arm-none-eabi-7-2018-q2-update) (let ((xgcc (cross-gcc "arm-none-eabi" #:xgcc gcc-7 #:xbinutils (cross-binutils "arm-none-eabi"))) @@ -370,13 +407,14 @@ (define-public gcc-arm-none-eabi-7-2018-q2-update (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) -(define-public newlib-arm-none-eabi-7-2018-q2-update +(define (make-newlib-arm-none-eabi-7-2018-q2-update) ;; This is the same commit as used for the 7-2018-q2-update release ;; according to the release.txt. - (let ((commit "3ccfb407af410ba7e54ea0da11ae1e40b554a6f4") + (let ((base ((make-newlib-arm-none-eabi))) + (commit "3ccfb407af410ba7e54ea0da11ae1e40b554a6f4") (revision "0")) (package - (inherit newlib-arm-none-eabi) + (inherit base) (version (git-version "3.0.0" revision commit)) (source (origin @@ -389,7 +427,7 @@ (define-public newlib-arm-none-eabi-7-2018-q2-update (base32 "1dq23fqrk75g1a4v7569fvnnw5q440zawbxi3w0g05n8jlqsmvcy")))) (arguments - (substitute-keyword-arguments (package-arguments newlib-arm-none-eabi) + (substitute-keyword-arguments (package-arguments base) ;; The configure flags are identical to the flags used by the "GCC ARM ;; embedded" project. ((#:configure-flags flags) @@ -399,15 +437,17 @@ (define-public newlib-arm-none-eabi-7-2018-q2-update ,flags)))) (native-inputs `(("xbinutils" ,(cross-binutils "arm-none-eabi")) - ("xgcc" ,gcc-arm-none-eabi-7-2018-q2-update) + ("xgcc" ,(make-gcc-arm-none-eabi-7-2018-q2-update)) ("texinfo" ,texinfo)))))) -(define-public newlib-nano-arm-none-eabi-7-2018-q2-update - (package (inherit newlib-arm-none-eabi-7-2018-q2-update) - (name "newlib-nano") - (arguments - (package-arguments newlib-nano-arm-none-eabi)) - (synopsis "Newlib variant for small systems with limited memory"))) +(define-public (make-newlib-nano-arm-none-eabi-7-2018-q2-update) + (let ((base (make-newlib-arm-none-eabi-7-2018-q2-update))) + (package + (inherit base) + (name "newlib-nano") + (arguments + (package-arguments base)) + (synopsis "Newlib variant for small systems with limited memory")))) (define (make-libstdc++-arm-none-eabi xgcc newlib) @@ -416,7 +456,7 @@ (define (make-libstdc++-arm-none-eabi xgcc newlib) (name "libstdc++-arm-none-eabi") (arguments (substitute-keyword-arguments (package-arguments libstdc++) - ((#:configure-flags flags) + ((#:configure-flags _) ``("--target=arm-none-eabi" "--host=arm-none-eabi" "--disable-libstdcxx-pch" @@ -434,7 +474,7 @@ (define (make-libstdc++-arm-none-eabi xgcc newlib) ("xgcc" ,xgcc) ,@(package-native-inputs libstdc++)))))) -(define (arm-none-eabi-toolchain xgcc newlib) +(define (make-arm-none-eabi-toolchain xgcc newlib) "Produce a cross-compiler toolchain package with the compiler XGCC and the C library variant NEWLIB." (let ((newlib-with-xgcc (package (inherit newlib) @@ -474,31 +514,31 @@ (define (arm-none-eabi-toolchain xgcc newlib) (home-page (package-home-page xgcc)) (license (package-license xgcc))))) -(define-public arm-none-eabi-toolchain-4.9 - (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 - newlib-arm-none-eabi)) +(define (make-arm-none-eabi-toolchain-4.9) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-4.9) + (make-newlib-arm-none-eabi))) -(define-public arm-none-eabi-nano-toolchain-4.9 - (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 - newlib-nano-arm-none-eabi)) +(define (make-arm-none-eabi-nano-toolchain-4.9) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-4.9) + (make-newlib-nano-arm-none-eabi))) -(define-public arm-none-eabi-toolchain-6 - (arm-none-eabi-toolchain gcc-arm-none-eabi-6 - newlib-arm-none-eabi)) +(define (make-arm-none-eabi-toolchain-6) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-6) + (make-newlib-arm-none-eabi))) -(define-public arm-none-eabi-nano-toolchain-6 - (arm-none-eabi-toolchain gcc-arm-none-eabi-6 - newlib-nano-arm-none-eabi)) +(define (make-arm-none-eabi-nano-toolchain-6) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-6) + (make-newlib-nano-arm-none-eabi))) -(define-public arm-none-eabi-toolchain-7-2018-q2-update - (arm-none-eabi-toolchain gcc-arm-none-eabi-7-2018-q2-update - newlib-arm-none-eabi-7-2018-q2-update)) +(define (make-arm-none-eabi-toolchain-7-2018-q2-update) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-7-2018-q2-update) + (make-newlib-arm-none-eabi-7-2018-q2-update))) -(define-public arm-none-eabi-nano-toolchain-7-2018-q2-update - (arm-none-eabi-toolchain gcc-arm-none-eabi-7-2018-q2-update - newlib-nano-arm-none-eabi-7-2018-q2-update)) +(define (make-arm-none-eabi-nano-toolchain-7-2018-q2-update) + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-7-2018-q2-update) + (make-newlib-nano-arm-none-eabi-7-2018-q2-update))) -(define-public gdb-arm-none-eabi +(define (make-gdb-arm-none-eabi) (package (inherit gdb) (name "gdb-arm-none-eabi") @@ -647,7 +687,7 @@ (define-public openocd ;; personal correspondence with the developers in July 2017, more recent ;; versions are currently incompatible with the "Simple Libraries". -(define propeller-binutils +(define (make-propeller-binutils) (let ((xbinutils (cross-binutils "propeller-elf")) (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") (revision "2")) @@ -683,9 +723,9 @@ (define propeller-binutils ("dejagnu" ,dejagnu) ,@(package-native-inputs xbinutils)))))) -(define-public propeller-gcc-6 +(define (make-propeller-gcc-6) (let ((xgcc (cross-gcc "propeller-elf" - #:xbinutils propeller-binutils)) + #:xbinutils (make-propeller-binutils))) (commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867") (revision "1")) (package (inherit xgcc) @@ -719,8 +759,8 @@ (define-public propeller-gcc-6 (home-page "https://github.com/totalspectrum/gcc-propeller") (synopsis "GCC for the Parallax Propeller")))) -(define-public propeller-gcc-4 - (let ((xgcc propeller-gcc-6) +(define (make-propeller-gcc-4) + (let ((xgcc (make-propeller-gcc-6)) (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") (revision "2")) (package (inherit xgcc) @@ -742,13 +782,13 @@ (define-public propeller-gcc-4 (search-patches "gcc-4.6-gnu-inline.patch" "gcc-cross-environment-variables.patch"))))) (arguments - (substitute-keyword-arguments (package-arguments propeller-gcc-6) + (substitute-keyword-arguments (package-arguments xgcc) ((#:phases phases) #~(modify-phases #$phases (add-after 'unpack 'chdir (lambda _ (chdir "gcc"))))))) (native-inputs - (modify-inputs (package-native-inputs propeller-gcc-6) + (modify-inputs (package-native-inputs xgcc) (prepend gcc-4.9))) (home-page "https://github.com/parallaxinc/propgcc") (supported-systems (delete "aarch64-linux" %supported-systems))))) @@ -756,7 +796,7 @@ (define-public propeller-gcc-4 ;; Version 6 is experimental and may not work correctly. This is why we ;; default to version 4, which is also used in the binary toolchain bundle ;; provided by Parallax Inc. -(define-public propeller-gcc propeller-gcc-4) +(define make-propeller-gcc make-propeller-gcc-4) ;; FIXME: We do not build the tiny library because that would require C++ @@ -814,7 +854,7 @@ (define-public proplib (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "install-includes" make-flags)))))) (native-inputs - (list propeller-gcc propeller-binutils perl)) + (list (make-propeller-gcc) (make-propeller-binutils) perl)) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "C library for the Parallax Propeller") (description "This is a C library for the Parallax Propeller @@ -823,22 +863,23 @@ (define-public proplib ;; included code is public domain and some changes are BSD licensed. (license license:expat)))) -(define-public propeller-toolchain - (package - (name "propeller-toolchain") - (version (package-version propeller-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("binutils" ,propeller-binutils) - ("libc" ,proplib) - ("gcc" ,propeller-gcc))) - (synopsis "Complete GCC tool chain for Propeller micro-controllers") - (description "This package provides a complete GCC tool chain for +(define (make-propeller-toolchain) + (let ((propeller-gcc (make-propeller-gcc))) + (package + (name "propeller-toolchain") + (version (package-version propeller-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("binutils" ,(make-propeller-binutils)) + ("libc" ,proplib) + ("gcc" ,propeller-gcc))) + (synopsis "Complete GCC tool chain for Propeller micro-controllers") + (description "This package provides a complete GCC tool chain for Propeller micro-controller development.") - (home-page (package-home-page propeller-gcc)) - (license (package-license propeller-gcc)))) + (home-page (package-home-page propeller-gcc)) + (license (package-license propeller-gcc))))) (define-public openspin (package @@ -906,7 +947,7 @@ (define-public propeller-load (lambda _ (chdir "loader") #t)) (delete 'configure)))) (native-inputs - (list openspin propeller-toolchain)) + (list openspin (make-propeller-toolchain))) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "Loader for Parallax Propeller micro-controllers") (description "This package provides the tool @code{propeller-load} to @@ -951,7 +992,7 @@ (define-public spin2cpp '("testlex" "spin2cpp" "fastspin"))) #t))))) (native-inputs - (list bison propeller-load propeller-toolchain)) + (list bison propeller-load (make-propeller-toolchain))) (home-page "https://github.com/totalspectrum/spin2cpp") (synopsis "Convert Spin code to C, C++, or PASM code") (description "This is a set of tools for converting the Spin language for @@ -997,26 +1038,27 @@ (define-public spinsim two-thirds of the opcodes in the P2 instruction set.") (license license:expat)))) -(define-public propeller-development-suite - (package - (name "propeller-development-suite") - (version (package-version propeller-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("toolchain" ,propeller-toolchain) - ("openspin" ,openspin) - ("propeller-load" ,propeller-load) - ("spin2cpp" ,spin2cpp) - ("spinsim" ,spinsim))) - (synopsis "Complete development suite for Propeller micro-controllers") - (description "This meta-package provides a complete environment for the +(define (make-propeller-development-suite) + (let ((propeller-gcc (make-propeller-gcc))) + (package + (name "propeller-development-suite") + (version (package-version propeller-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("toolchain" ,(make-propeller-toolchain)) + ("openspin" ,openspin) + ("propeller-load" ,propeller-load) + ("spin2cpp" ,spin2cpp) + ("spinsim" ,spinsim))) + (synopsis "Complete development suite for Propeller micro-controllers") + (description "This meta-package provides a complete environment for the development with Parallax Propeller micro-controllers. It includes the GCC toolchain, the loader, the Openspin compiler, the Spin2cpp tool, and the Spin simulator.") - (home-page (package-home-page propeller-gcc)) - (license (package-license propeller-gcc)))) + (home-page (package-home-page propeller-gcc)) + (license (package-license propeller-gcc))))) (define-public binutils-vc4 (let ((commit "708acc851880dbeda1dd18aca4fd0a95b2573b36")) @@ -1070,7 +1112,7 @@ (define-public binutils-vc4 (license license:gpl3+) (home-page "https://github.com/puppeh/vc4-toolchain/")))) -(define-public gcc-vc4 +(define (make-gcc-vc4) (let ((commit "0fe4b83897341742f9df65797474cb0feab4b377") (xgcc (cross-gcc "vc4-elf" #:xgcc gcc-6 #:xbinutils binutils-vc4))) (package (inherit xgcc) diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index a866a7e4f2..80bfaf0896 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -177,7 +177,7 @@ (define-public raspi-arm-chainloader #t)))))) (native-inputs `(("binutils" ,(cross-binutils "arm-none-eabi")) - ("gcc" ,gcc-arm-none-eabi-6))) + ("gcc" ,(make-gcc-arm-none-eabi-6)))) (inputs `()) (synopsis "Raspberry Pi ARM bootloader") From patchwork Mon Sep 11 04:25:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53716 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 60BDA27BBE9; Mon, 11 Sep 2023 05:27:39 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id A2CA427BBE2 for ; Mon, 11 Sep 2023 05:27:35 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfYVt-0001Dt-3w; Mon, 11 Sep 2023 00:27:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfYVp-0001DP-FK for guix-patches@gnu.org; Mon, 11 Sep 2023 00:27:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfYVp-0005t9-7L; Mon, 11 Sep 2023 00:27:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfYVq-0005aY-R8; Mon, 11 Sep 2023 00:27:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65860] [PATCH 3/4] gnu: Remove extraneous imports. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: efraim@flashner.co.il, ludo@gnu.org, maxim.cournoyer@gmail.com, rekado@elephly.net, vagrant@debian.org, guix-patches@gnu.org Resent-Date: Mon, 11 Sep 2023 04:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65860 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65860@debbugs.gnu.org Cc: Maxim Cournoyer , Efraim Flashner , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer , Ricardo Wurmus , Vagrant Cascadian X-Debbugs-Original-Xcc: Efraim Flashner , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer , Ricardo Wurmus , Vagrant Cascadian Received: via spool by 65860-submit@debbugs.gnu.org id=B65860.169440641821446 (code B ref 65860); Mon, 11 Sep 2023 04:27:02 +0000 Received: (at 65860) by debbugs.gnu.org; 11 Sep 2023 04:26:58 +0000 Received: from localhost ([127.0.0.1]:51793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVk-0005Zp-OR for submit@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:58 -0400 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:48474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVh-0005ZL-Ga for 65860@debbugs.gnu.org; Mon, 11 Sep 2023 00:26:55 -0400 Received: by mail-qk1-x736.google.com with SMTP id af79cd13be357-77058512c18so217084685a.1 for <65860@debbugs.gnu.org>; Sun, 10 Sep 2023 21:26:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694406404; x=1695011204; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DvfIM7rcDcP8szw7AJNd6aEAv6bumHcU1QdJUJvTK7k=; b=jKbWVRkVdesWMFRa744NlPrf2StiVLKuuWzYzKNaFAJnRS9NEtZMTxRSzfzXvnNP7Y VRbMqd6ctj5WaBhuVYRtz5gaT3DRbO+fnl64z6OcDhNmVSaq6d90lzL5/Pjzas9N4U4i fqba1VINOWxD16C2RojIou49RpiMdRgjkzPOjlrUQ4YT707v2SrjsttRv2bpF+YHxN+Z joQXPywnB3nXKqYoPCg1Ba0ueXten51zS1Dm7vI6LIbULj3dCuIoLO2ukMHSjpTZVCtN t+8ALK8fgWDEf9MGBSKci230+AdBnJY5Xmfq6+LdqGNjDwTSu3YwLinj3iazGZjqwCOD MhoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694406404; x=1695011204; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DvfIM7rcDcP8szw7AJNd6aEAv6bumHcU1QdJUJvTK7k=; b=YqWuzi+/IDYoaMHRNXF1yr0GviWEQXTChJFOuPkhXge6teey0CknK82xtwYVwBHV3J g8ON14gdSrRqAHOlB3bGyIJxGBhW/4szGJhVMpdn9dK7epEm/PdOOE9O/koJ8IkeA8Hg SSaUUKQ10duYEHCegsT4aBY2pgMwjGM48El7Phdj001tcVImJav6FNI15THmgJmaKeq6 hietiTZPkVqxIxGLbX4hzm9Couz/9T3Y9oqn4Cv/i6FOe75V0xQ1MokI6XPZ1UYwb7ku 78X2HTHcgB1c/o03Nn0v7YEuCxhqHFXsNvqtk9vCEt8wlJQMbzzEwn44SEfaecl4MmVV Uyow== X-Gm-Message-State: AOJu0Yy9dHhMDSCjHfqJmud+R+osFscLsrxzw75JmCfVla9iXVgsr01y DQ/5sBWTLgTIbYgg7cxNx+KL7DfHO0c= X-Google-Smtp-Source: AGHT+IGjZGP17q+dsJYRw5f6ZAcJ4hCvomG7Wq8oNapXTmHiieKutBHgiKSDiWW3qhuLsEDQnOd+0g== X-Received: by 2002:a0c:b319:0:b0:649:384f:edc with SMTP id s25-20020a0cb319000000b00649384f0edcmr7609410qve.2.1694406403764; Sun, 10 Sep 2023 21:26:43 -0700 (PDT) Received: from localhost.localdomain (dsl-155-89.b2b2c.ca. [66.158.155.89]) by smtp.gmail.com with ESMTPSA id c8-20020a0cf2c8000000b0064f778c8165sm2608923qvm.64.2023.09.10.21.26.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 21:26:43 -0700 (PDT) From: Maxim Cournoyer Date: Mon, 11 Sep 2023 00:25:59 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Found by running 'guild compile -W3 gnu/packages/$module.scm', using guild from the upcoming Guile. * gnu/packages/admin.scm: Remove extraneous imports. * gnu/packages/avr.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/bootloaders.scm: Likewise. * gnu/packages/firmware.scm: Likewise. * gnu/packages/linphone.scm: Likewise. * gnu/packages/telephony.scm: Likewise. * gnu/packages/cran.scm: Likewise. * gnu/packages/kde.scm: Likewise. * gnu/packages/libcanberra.scm: Likewise. * gnu/packages/libreoffice.scm: Likewise. * gnu/packages/mes.scm: Likewise. * gnu/packages/mingw.scm: Likewise. * gnu/packages/serialization.scm: Likewise. * gnu/packages/sync.scm: Likewise. * gnu/packages/syncthing.scm: Likewise. * gnu/packages/terminals.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/wm.scm: Likewise. * gnu/packages/emulators.scm: Likewise. --- gnu/packages/admin.scm | 5 ----- gnu/packages/avr.scm | 1 - gnu/packages/base.scm | 1 - gnu/packages/bootloaders.scm | 2 -- gnu/packages/cran.scm | 2 -- gnu/packages/emulators.scm | 3 --- gnu/packages/firmware.scm | 4 ---- gnu/packages/kde.scm | 3 --- gnu/packages/libcanberra.scm | 6 +----- gnu/packages/libreoffice.scm | 4 ---- gnu/packages/linphone.scm | 4 ---- gnu/packages/mes.scm | 5 ----- gnu/packages/mingw.scm | 6 ------ gnu/packages/serialization.scm | 5 +---- gnu/packages/sync.scm | 2 -- gnu/packages/syncthing.scm | 2 -- gnu/packages/telephony.scm | 12 ------------ gnu/packages/terminals.scm | 1 - gnu/packages/version-control.scm | 2 -- gnu/packages/video.scm | 7 ------- gnu/packages/wm.scm | 3 --- 21 files changed, 2 insertions(+), 78 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5d586e6f36..a1229c11d0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -101,7 +101,6 @@ (define-module (gnu packages admin) #:use-module (gnu packages acl) #:use-module (gnu packages algebra) #:use-module (gnu packages attr) - #:use-module (gnu packages autogen) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) @@ -112,7 +111,6 @@ (define-module (gnu packages admin) #:use-module (gnu packages compression) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-io) - #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) #:use-module (gnu packages curl) @@ -140,7 +138,6 @@ (define-module (gnu packages admin) #:use-module (gnu packages inkscape) #:use-module (gnu packages kerberos) #:use-module (gnu packages libbsd) - #:use-module (gnu packages libftdi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) @@ -160,11 +157,9 @@ (define-module (gnu packages admin) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) - #:use-module (gnu packages popt) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) - #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index abca60eeac..2c107c6f60 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -31,7 +31,6 @@ (define-module (gnu packages avr) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) - #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 5a3d5aced5..702e243270 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -49,7 +49,6 @@ (define-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages ed) - #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages guile) #:use-module (gnu packages multiprecision) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 1c47636341..1124eca837 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -36,8 +36,6 @@ (define-module (gnu packages bootloaders) #:use-module (gnu packages) - #:use-module (gnu packages admin) - #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages base) #:use-module (gnu packages disk) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index b6a01a99b0..dc3efcaf43 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -62,7 +62,6 @@ (define-module (gnu packages cran) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system r) - #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -79,7 +78,6 @@ (define-module (gnu packages cran) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages gnome) - #:use-module (gnu packages graph) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 1d50c9ef01..ce61f935fb 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -56,7 +56,6 @@ (define-module (gnu packages emulators) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) - #:use-module (gnu packages build-tools) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -72,7 +71,6 @@ (define-module (gnu packages emulators) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) #:use-module (gnu packages game-development) - #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -102,7 +100,6 @@ (define-module (gnu packages emulators) #:use-module (gnu packages upnp) #:use-module (gnu packages video) #:use-module (gnu packages vulkan) - #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 2e2c4af796..cbb24230de 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -40,7 +40,6 @@ (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 assembly) #:use-module (gnu packages backup) #:use-module (gnu packages base) @@ -58,7 +57,6 @@ (define-module (gnu packages firmware) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages hardware) #:use-module (gnu packages libusb) @@ -71,13 +69,11 @@ (define-module (gnu packages firmware) #:use-module (gnu packages polkit) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) - #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages shells) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) - #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (ice-9 match)) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 9e5ac767b8..20fbb41d73 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -36,13 +36,11 @@ (define-module (gnu packages kde) #:use-module (guix build-system cmake) #:use-module (guix build-system qt) - #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages apr) @@ -69,7 +67,6 @@ (define-module (gnu packages kde) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gimp) - #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gperf) diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm index c0ec47a445..cf38ac113e 100644 --- a/gnu/packages/libcanberra.scm +++ b/gnu/packages/libcanberra.scm @@ -25,10 +25,8 @@ (define-module (gnu packages libcanberra) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) - #:use-module (guix utils) #:use-module (gnu packages autotools) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) @@ -36,9 +34,7 @@ (define-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) - #:use-module (gnu packages xiph) - #:use-module ((srfi srfi-1) #:select (alist-delete))) + #:use-module (gnu packages xiph)) (define-public libcanberra (package diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index d06166e64a..71131ca1f3 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -44,7 +44,6 @@ (define-module (gnu packages libreoffice) #:use-module (ice-9 match) #:use-module (gnu packages) #:use-module (gnu packages aidc) - #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -73,10 +72,8 @@ (define-module (gnu packages libreoffice) #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) - #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages logging) - #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages nss) #:use-module (gnu packages openldap) @@ -87,7 +84,6 @@ (define-module (gnu packages libreoffice) #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages scanner) - #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages xml) diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm index 7d87ee602c..48a30f32d0 100644 --- a/gnu/packages/linphone.scm +++ b/gnu/packages/linphone.scm @@ -34,11 +34,8 @@ (define-module (gnu packages linphone) #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) - #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages gnome-xyz) #:use-module (gnu packages graphviz) - #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) @@ -49,7 +46,6 @@ (define-module (gnu packages linphone) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) - #:use-module (gnu packages java) #:use-module (gnu packages sqlite) #:use-module (gnu packages telephony) #:use-module (gnu packages tls) diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 4176977375..a7924d943d 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -24,15 +24,10 @@ (define-module (gnu packages mes) #:use-module (gnu packages) #:use-module (gnu packages base) - #:use-module (gnu packages bash) - #:use-module (gnu packages bootstrap) - #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) - #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) #:use-module (gnu packages guile) #:use-module (gnu packages man) - #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm index 4eeefe1490..0ac6f0e767 100644 --- a/gnu/packages/mingw.scm +++ b/gnu/packages/mingw.scm @@ -22,16 +22,10 @@ (define-module (gnu packages mingw) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) - #:use-module (gnu packages base) #:use-module (gnu packages cross-base) - #:use-module (gnu packages gcc) - #:use-module (gnu packages compression) - #:use-module (gnu packages multiprecision) #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix utils) - #:use-module (ice-9 match) #:export (make-mingw-w64)) (define* (make-mingw-w64 machine diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index c17d417d5e..d0b4bd2735 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -52,8 +52,6 @@ (define-module (gnu packages serialization) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) - #:use-module (gnu packages cmake) - #:use-module (gnu packages cpp) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) @@ -64,8 +62,7 @@ (define-module (gnu packages serialization) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-science) - #:use-module (gnu packages python-xyz) - #:use-module (gnu packages perl)) + #:use-module (gnu packages python-xyz)) (define-public avro-cpp-1.9 (package diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 8235332cb0..c4410c67fd 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -50,7 +50,6 @@ (define-module (gnu packages sync) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) - #:use-module (gnu packages golang) #:use-module (gnu packages graphviz) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) @@ -62,7 +61,6 @@ (define-module (gnu packages sync) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages rsync) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 414395251b..57f5235616 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -38,9 +38,7 @@ (define-module (gnu packages syncthing) #:use-module (gnu packages golang) #:use-module (gnu packages gtk) #:use-module (gnu packages linux) - #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages time)) (define-public syncthing diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index aa65c4eaad..42158784ca 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -44,7 +44,6 @@ (define-module (gnu packages telephony) #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages admin) - #:use-module (gnu packages aidc) #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) @@ -52,23 +51,17 @@ (define-module (gnu packages telephony) #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) - #:use-module (gnu packages compression) #:use-module (gnu packages cpp) - #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages sqlite) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages file) #:use-module (gnu packages protobuf) - #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) - #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) - #:use-module (gnu packages gtk) #:use-module (gnu packages image) - #:use-module (gnu packages libcanberra) #:use-module (gnu packages libusb) #:use-module (gnu packages linphone) #:use-module (gnu packages linux) @@ -77,7 +70,6 @@ (define-module (gnu packages telephony) #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages networking) - #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) @@ -85,12 +77,8 @@ (define-module (gnu packages telephony) #:use-module (gnu packages qt) #:use-module (gnu packages samba) #:use-module (gnu packages security-token) - #:use-module (gnu packages serialization) #:use-module (gnu packages speech) #:use-module (gnu packages tls) - #:use-module (gnu packages upnp) - #:use-module (gnu packages video) - #:use-module (gnu packages webkit) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module (gnu packages xml) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 43aeac9fd7..aedf9309e0 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -102,7 +102,6 @@ (define-module (gnu packages terminals) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-check) - #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages serialization) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 86dcea908c..cf3c4d4e19 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -115,7 +115,6 @@ (define-module (gnu packages version-control) #:use-module (gnu packages ncurses) #:use-module (gnu packages ssh) #:use-module (gnu packages web) - #:use-module (gnu packages openstack) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) @@ -128,7 +127,6 @@ (define-module (gnu packages version-control) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) - #:use-module (gnu packages rsync) #:use-module (gnu packages ruby) #:use-module (gnu packages sqlite) #:use-module (gnu packages texinfo) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 153fe354d5..d959a7bcc4 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -117,10 +117,8 @@ (define-module (gnu packages video) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) - #:use-module (gnu packages build-tools) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) - #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages crates-io) @@ -131,7 +129,6 @@ (define-module (gnu packages video) #:use-module (gnu packages dns) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) - #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fonts) @@ -157,9 +154,7 @@ (define-module (gnu packages video) #:use-module (gnu packages libidn) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) - #:use-module (gnu packages llvm) #:use-module (gnu packages lua) - #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages maths) @@ -188,7 +183,6 @@ (define-module (gnu packages video) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) - #:use-module (gnu packages rdesktop) #:use-module (gnu packages re2c) #:use-module (gnu packages ruby) #:use-module (gnu packages rust-apps) @@ -208,7 +202,6 @@ (define-module (gnu packages video) #:use-module (gnu packages version-control) #:use-module (gnu packages vulkan) #:use-module (gnu packages web) - #:use-module (gnu packages webkit) #:use-module (gnu packages wget) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xdisorg) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index aaff618248..48dd29071a 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -131,9 +131,7 @@ (define-module (gnu packages wm) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages logging) #:use-module (gnu packages lua) - #:use-module (gnu packages m4) #:use-module (gnu packages man) - #:use-module (gnu packages maths) #:use-module (gnu packages mpd) #:use-module (gnu packages pciutils) #:use-module (gnu packages music) @@ -153,7 +151,6 @@ (define-module (gnu packages wm) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages time) - #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) From patchwork Mon Sep 11 04:26:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Cournoyer X-Patchwork-Id: 53717 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A373627BBE9; Mon, 11 Sep 2023 05:27:44 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 6028E27BBE2 for ; Mon, 11 Sep 2023 05:27:42 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfYVr-0001DO-Ng; Mon, 11 Sep 2023 00:27:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfYVn-0001Cz-L9 for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:59 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfYVn-0005sw-Dm for guix-patches@gnu.org; Mon, 11 Sep 2023 00:26:59 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qfYVr-0005ag-7k for guix-patches@gnu.org; Mon, 11 Sep 2023 00:27:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65860] [PATCH 4/4] doc: Add new 'Circular Module Dependencies' section. Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 11 Sep 2023 04:27:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65860 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65860@debbugs.gnu.org Cc: mhw@netris.org, Maxim Cournoyer Received: via spool by 65860-submit@debbugs.gnu.org id=B65860.169440642121467 (code B ref 65860); Mon, 11 Sep 2023 04:27:03 +0000 Received: (at 65860) by debbugs.gnu.org; 11 Sep 2023 04:27:01 +0000 Received: from localhost ([127.0.0.1]:51796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVp-0005a8-3q for submit@debbugs.gnu.org; Mon, 11 Sep 2023 00:27:01 -0400 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]:58718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfYVn-0005Za-6l for 65860@debbugs.gnu.org; Mon, 11 Sep 2023 00:27:00 -0400 Received: by mail-qv1-xf31.google.com with SMTP id 6a1803df08f44-64a5f9a165eso22684446d6.1 for <65860@debbugs.gnu.org>; Sun, 10 Sep 2023 21:26:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694406409; x=1695011209; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qZypnKqMIWx8K8eRkflYklhJ9uH6uJBtpu43mfr+Z08=; b=n36VRssqRGfEk4WTLhCmd/RGc2Z/0v2GLp7XHGiVbZlLkwQm1VHgWPM0sALmo4A72A 4cEXy/wdPVcQPGTz0ozOAMpzI6gy0Z6xfaxDGKajE4yZqhUnAT+Ts/z6Ng49l5gW5rr9 voyC4hFrNynM33PpcG1h0Bs8pDKqLbB6Q28ojt1pC2mB1xBQL/q4ZFmEjl8WuKmAlsGy U0zpFdEhRHhG2WwlGKIqTeVqsuZAxtKjWO2c+JV8BcdMjywQOVXSvX/QwgAlXPsfi+qu ropCQUf78C5pCOcUnjeZ9hM939ZlHoWmDgAdy/csINoApzjoTJlnmmXuT1PIfWuMZ26D gCcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694406409; x=1695011209; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qZypnKqMIWx8K8eRkflYklhJ9uH6uJBtpu43mfr+Z08=; b=YTPecb1tWKGy5L7+nM7yUu17xFWaxB9ZKdD6lEiNRqI73XcmH53O/GhPm8ccCKcmhU JrezGSxTrwws+R8Vv4vxmrs7NEI5ILy4iwu2N6pxuWcJAxNvovRmOx91d458DBMSUYQw mRf1Sqcxi7f08LzbqNU+zwekEzMeOfb1qNeMg2VRcv5s/rTK8rC1NV9vox0fHeBC9D3+ +SnybnKe3F/Umwc5jyjXvQyfocBgPlk0tPgmhyNbrGcNxA0O5csrMYHg02Wu98+oq8L4 TiSAAPmzZ+xXReH+99p/OUTuCp92E3gSwkJKrmvJfRFnW3sfYB0Nz8arSuHFgcprh+tV 87cA== X-Gm-Message-State: AOJu0YxRT7uUUNDUmzEW3hhE6dGYe8qMo8otM1SQ8UbpicealoGSrUwA OjKbeDmWI5gx9KZCBWWJgTBpfbu/2Vo= X-Google-Smtp-Source: AGHT+IFpwgVmSPMONm7SPS0ay6UfU5vTD0t8IwBtDX2x8r0/oY0S/3dywa7oAub8IP369DR75TAHpQ== X-Received: by 2002:a0c:9e89:0:b0:64f:50e2:c559 with SMTP id r9-20020a0c9e89000000b0064f50e2c559mr7762123qvd.2.1694406409460; Sun, 10 Sep 2023 21:26:49 -0700 (PDT) Received: from localhost.localdomain (dsl-155-89.b2b2c.ca. [66.158.155.89]) by smtp.gmail.com with ESMTPSA id c8-20020a0cf2c8000000b0064f778c8165sm2608923qvm.64.2023.09.10.21.26.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Sep 2023 21:26:49 -0700 (PDT) From: Maxim Cournoyer Date: Mon, 11 Sep 2023 00:26:00 -0400 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * doc/contributing.texi (Circular Module Dependencies): New subsection. --- doc/contributing.texi | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/doc/contributing.texi b/doc/contributing.texi index a0da871f1a..67ceff4fdb 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -449,6 +449,7 @@ Packaging Guidelines * Version Numbers:: When the name is not enough. * Synopses and Descriptions:: Helping users find the right package. * Snippets versus Phases:: Whether to use a snippet, or a build phase. +* Cyclic Module Dependencies:: Going full circle. * Emacs Packages:: Your Elisp fix. * Python Modules:: A touch of British comedy. * Perl Modules:: Little pearls. @@ -720,6 +721,61 @@ Snippets versus Phases using build phases. Refer to the @code{origin} record documentation for more information (@pxref{origin Reference}). +@node Cyclic Module Dependencies +@subsection Cyclic Module Dependencies + +While there cannot be circular dependencies between packages, Guile's +lax module loading mechanism allows circular dependencies between Guile +modules, which doesn't cause problems as long as the following +conditions are followed for two modules part of a dependency cycle: + +@cindex rules to cope with circular module dependencies +@enumerate +@item +Macros are not shared between the co-dependent modules +@item +Top-level variables are only referenced in delayed (@i{thunked}) package +fields: @code{arguments}, @code{native-inputs}, @code{inputs}, +@code{propagated-inputs} or @code{replacement} +@item +Procedures referencing top-level variables from another module are not +called at the top level of a module themselves. +@end enumerate + +Straying away from the above rules may work while there are no +dependency cycles between modules, but given such cycles are confusing +and difficult to troubleshoot, it is best to follow the rules to avoid +introducing problems down the line. + +@noindent +Here is a common trap to avoid: + +@lisp +(define-public avr-binutils + (package + (inherit (cross-binutils "avr")) + (name "avr-binutils"))) +@end lisp + +In the above example, the @code{avr-binutils} package was defined in the +module @code{(gnu packages avr)}, and the @code{cross-binutils} +procedure in @code{(gnu packages cross-base)}. Because the +@code{inherit} field is not delayed (thunked), it is evaluated at the +top level at load time, which is problematic in the presence of module +dependency cycles. This could be resolved by turning the package into a +procedure instead, like: + +@lisp +(define (make-avr-binutils) + (package + (inherit (cross-binutils "avr")) + (name "avr-binutils"))) +@end lisp + +Care would need to be taken to ensure the above procedure is only ever +used in a package delayed fields or within another procedure also not +called at the top level. + @node Emacs Packages @subsection Emacs Packages