From patchwork Tue Nov 28 10:21:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Efraim Flashner X-Patchwork-Id: 56883 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 A647627BBEA; Tue, 28 Nov 2023 10:22:19 +0000 (GMT) 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_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS autolearn=ham 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 079A627BBE2 for ; Tue, 28 Nov 2023 10:22:19 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r7vE5-0001YN-5Q; Tue, 28 Nov 2023 05:21:57 -0500 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 1r7vE3-0001Y3-MB for guix-patches@gnu.org; Tue, 28 Nov 2023 05:21:55 -0500 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 1r7vE3-0001Cf-An for guix-patches@gnu.org; Tue, 28 Nov 2023 05:21:55 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r7vEA-00010K-34; Tue, 28 Nov 2023 05:22:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#67503] [PATCH 1/2] guix: import: Don't include indirect dependencies in go. Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: cox.katherine.e+guix@gmail.com, guix-patches@gnu.org Resent-Date: Tue, 28 Nov 2023 10:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67503 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 67503@debbugs.gnu.org Cc: Efraim Flashner , Katherine Cox-Buday X-Debbugs-Original-Xcc: Katherine Cox-Buday Received: via spool by 67503-submit@debbugs.gnu.org id=B67503.17011668953816 (code B ref 67503); Tue, 28 Nov 2023 10:22:02 +0000 Received: (at 67503) by debbugs.gnu.org; 28 Nov 2023 10:21:35 +0000 Received: from localhost ([127.0.0.1]:45450 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7vDj-0000zT-Ce for submit@debbugs.gnu.org; Tue, 28 Nov 2023 05:21:35 -0500 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]:60675) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7vDh-0000zF-G0 for 67503@debbugs.gnu.org; Tue, 28 Nov 2023 05:21:34 -0500 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-a0b65cbf096so396144666b.1 for <67503@debbugs.gnu.org>; Tue, 28 Nov 2023 02:21:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701166881; x=1701771681; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=RO4QuTdxoijjMYBvBpPsgtqeQ4qyjSY1LKLgSpYJizE=; b=f4FGVv3HDBp2wOBJkBdSWhJBLMBKDEQ1Pey2RFFrOu6G81jAYr0n2/zIOV67H5P0Su 1aciuZWqwzJRSddvyJ4v6QU//sYemcY4Bc31sbeOwVEBjerGyMXwYJPZxipwH1UJ8znh WY3FPV5ylRgf9QsM7h+tmMTmHB5je0ArP9LX0KEJO4NbHgBgrpjEiW7Sfb5T1VVAmBEX Y842bybIU8gdwrkoMsVBfxBYmJPYvPpVIeVVaLbchx6j4Dal2T9QPGDsnM2ufcCvj+Cu 5U3UyeqdObmbv+EVYST4vY3/eQY2Tdog/hGTD6y6gCrK4PfFisSqZitHKT3P+AIgNxCV UQpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701166881; x=1701771681; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=RO4QuTdxoijjMYBvBpPsgtqeQ4qyjSY1LKLgSpYJizE=; b=T8YJxnKhqUwboJZyc0ebR5nsOl2uhGWsdIlXAGKOrLelkkhqEMpV1lxjND3pxyr2Uq /8dSRW6Zojggcf1lCwVhBmiY+IDm35ok0UePPpkGa/XpE5CC3UmKAeg9hexxC/ZuM/kV akMxq7T9atV1wcj5paP1b+q5uAE+yQFGRjktYBog9DdH7BNXkqUTem7pJNlWk50P2d8a cDfu/HLYznDKEXjY7u19oqP5nCAMJVdVcWMxwDN1r40KIFKzA3fchz60aD9q2v9gzLYr 5Nqy4jZgJlI/IJO2Iqy+YVmJF+Y0Vk/sn2tbxMhLsRZR925sHtpRR4lhYWY5T8ez1dxe vKYg== X-Gm-Message-State: AOJu0YwpinyIDfYnXg+Z1Md5HzSP2IpyGKkTB+X0O5FLOuWf0jECHDGk NwIHPhR512SeU8fWT23WHPMDgkV0Sd8fLg== X-Google-Smtp-Source: AGHT+IGe2VaHrIam7q88o5YDiPdoRL/5UydHJ+As2LFe2UcuhhSxbcY0e63eGj/iCefmjrNuCy52LA== X-Received: by 2002:a17:907:29c8:b0:a03:d3ff:1e14 with SMTP id ev8-20020a17090729c800b00a03d3ff1e14mr9126764ejc.28.1701166880676; Tue, 28 Nov 2023 02:21:20 -0800 (PST) Received: from localhost ([176.12.138.93]) by smtp.gmail.com with ESMTPSA id lv23-20020a170906bc9700b009f28db2b702sm6617090ejb.209.2023.11.28.02.21.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 02:21:19 -0800 (PST) From: Efraim Flashner Date: Tue, 28 Nov 2023 12:21:06 +0200 Message-ID: <6314f6d57fcfd7f449af3b4b6ad7c425fd14936a.1701166089.git.efraim@flashner.co.il> 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 * guix/import/go.scm (parse-go.mod)[define-peg-patern require]: Adjust the peg pattern to reject lines with the 'indirect' comment in them. Change-Id: I9618bbaa1cb8c6549ced875e3c8d32afc72c3b9b --- guix/import/go.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/import/go.scm b/guix/import/go.scm index 0357e6a1eb..940cdac4b0 100644 --- a/guix/import/go.scm +++ b/guix/import/go.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2021 Simon Tournier +;;; Copyright © 2023 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -293,7 +294,10 @@ (define (parse-go.mod content) ;; The following directives may all be used solo or in a block ;; RequireSpec = ModulePath Version newline . - (define-peg-pattern require all (and module-path version EOL)) + (define-peg-pattern require all + (and module-path version + ;; We don't want the transitive dependencies. + (not-followed-by (and (* WS) "//" (* WS) "indirect")) EOL)) (define-peg-pattern require-top body (and (ignore "require") (or (and block-start (* (or require block-line)) block-end) require))) From patchwork Tue Nov 28 10:21:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Efraim Flashner X-Patchwork-Id: 56882 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 05D3527BBE9; Tue, 28 Nov 2023 10:22:03 +0000 (GMT) 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_INVALID, DKIM_SIGNED,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 154F327BBE2 for ; Tue, 28 Nov 2023 10:22:01 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r7vE5-0001Yw-M3; Tue, 28 Nov 2023 05:21:57 -0500 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 1r7vE4-0001YD-0h for guix-patches@gnu.org; Tue, 28 Nov 2023 05:21:56 -0500 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 1r7vE3-0001Cl-Or for guix-patches@gnu.org; Tue, 28 Nov 2023 05:21:55 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1r7vEA-00010T-HN; Tue, 28 Nov 2023 05:22:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#67503] [PATCH 2/2] guix: import: Report go version for go importer. Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: cox.katherine.e+guix@gmail.com, guix-patches@gnu.org Resent-Date: Tue, 28 Nov 2023 10:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67503 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 67503@debbugs.gnu.org Cc: Efraim Flashner , Katherine Cox-Buday X-Debbugs-Original-Xcc: Katherine Cox-Buday Received: via spool by 67503-submit@debbugs.gnu.org id=B67503.17011668993831 (code B ref 67503); Tue, 28 Nov 2023 10:22:02 +0000 Received: (at 67503) by debbugs.gnu.org; 28 Nov 2023 10:21:39 +0000 Received: from localhost ([127.0.0.1]:45453 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7vDm-0000zi-QE for submit@debbugs.gnu.org; Tue, 28 Nov 2023 05:21:39 -0500 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]:56552) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7vDk-0000zI-0s for 67503@debbugs.gnu.org; Tue, 28 Nov 2023 05:21:36 -0500 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-9ffb5a4f622so728716766b.0 for <67503@debbugs.gnu.org>; Tue, 28 Nov 2023 02:21:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701166883; x=1701771683; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=lOsB2sq/0kvDrDWtRknL6S3lwkQr5dwUBp6JeDLmsa4=; b=aFPGvL/S+tWfvBPHYIYKrie2IHwbTxWvOgO+cC2iDDaK7IasL8B8dBK7iXEqZK9v2S hkMcG2bG6k3oEceqWwmTMB38+ZqGAE9pUCvhXISrcEVtrXIkk2wKcUwFzMRleVDXDLBp udnDdsaKOGhwt4uHDbzrQn65pKLpPuSHRb3MBp9UKx4XTQHSJYZlk8PWH8kcUreiwXTP gU9XrEElqAJnOeZ+BpHvhWpA0AYx6cDmWBZoMwjbDH0rRAemlhYtlkVFU6b4rOakk9t/ DZlbXnfYVvGBK3fUqQh7KWuhBhGe6KMjnYcgf5Svx/qrsfRXNXmShHnUtjGCCsQH826k wbzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701166883; x=1701771683; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lOsB2sq/0kvDrDWtRknL6S3lwkQr5dwUBp6JeDLmsa4=; b=GVaaklKhU61CClRr9ev5r1IZs3BGzFtxAcZB1sY1aEYurL1SHh308AbCEOansF0gFB O4Rz+aF+YhG19yTTX0SVqcBHiR0MqXk64RsEtOKUZxbacPjDjdPFoP145eOoImsKEgf3 3XNn4yo6enGCqimIhaHa5++GH2ACZ/JM6yy+owUx5DYQ1fZP6EZSRqol8+m0tNmz/9aI hkhdhZCgNjoK1w1A8jzL0ADsBDr6zVyRi9IWpYuT2JCKm9IMUzh1WEAVgMdB2/EuuOQt jHtnqBbBj0wycjwjekN+MSxTHlvdoniaobyDl+kOXxRE8bVW/ANEk6RuS/pIhtJ26G/i f5XA== X-Gm-Message-State: AOJu0YzIeDeir7lrUHV1wEJU39ENiiMWOSN6RLNm/S/N/jA90Jkevcg1 PVxIEyY4MAtbY/nzJMAedQAGsvBDXbJoiA== X-Google-Smtp-Source: AGHT+IHqMzKwfFLeOvqe6nqrrTwhcryic205MdmHuuPl3MDQUlhv2vO+ZF6rLS33C4hf8i+cEnTv4Q== X-Received: by 2002:a17:906:750:b0:a00:570c:54fb with SMTP id z16-20020a170906075000b00a00570c54fbmr10693062ejb.35.1701166883185; Tue, 28 Nov 2023 02:21:23 -0800 (PST) Received: from localhost ([176.12.138.93]) by smtp.gmail.com with ESMTPSA id bu8-20020a170906a14800b009e505954becsm6659440ejb.107.2023.11.28.02.21.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 02:21:22 -0800 (PST) From: Efraim Flashner Date: Tue, 28 Nov 2023 12:21:07 +0200 Message-ID: <7a558e7d4aef26af09a8050b29c591f03a514494.1701166089.git.efraim@flashner.co.il> 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 * guix/import/go.scm (go-package, go.mod-go-version): New procedures. (go-module->guix-package): Add the #:go keyword in the generated package definition if the required go is newer than the default go. Change-Id: I8d005740a442330ac307a40a53764c803ceffc4f --- guix/import/go.scm | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/guix/import/go.scm b/guix/import/go.scm index 940cdac4b0..dd9298808d 100644 --- a/guix/import/go.scm +++ b/guix/import/go.scm @@ -29,6 +29,7 @@ (define-module (guix import go) #:use-module (guix git) #:use-module (guix hash) #:use-module (guix i18n) + #:use-module ((guix utils) #:select (version>?)) #:use-module (guix diagnostics) #:use-module (guix import utils) #:use-module (guix import json) @@ -93,6 +94,11 @@ (define-module (guix import go) ;;; Code: +(define (go-package) + "Return the 'go' package. This is a lazy reference so that we don't +depend on (gnu packages golang)." + (module-ref (resolve-interface '(gnu packages golang)) 'go)) + (define http-fetch* ;; Like http-fetch, but memoized and returning the body as a string. (memoize (lambda args @@ -314,7 +320,7 @@ (define (parse-go.mod content) (define-peg-pattern with all (or (and module-path version) file-path)) (define-peg-pattern replace all (and original => with EOL)) (define-peg-pattern replace-top body - (and (ignore "replace") + (and (ignore "replace") (or (and block-start (* (or replace block-line)) block-end) replace))) ;; RetractSpec = ( Version | "[" Version "," Version "]" ) newline . @@ -378,6 +384,17 @@ (define (go.mod-requirements go.mod) ;; Prevent inlining of this procedure, which is accessed by unit tests. (set! go.mod-requirements go.mod-requirements) +(define (go.mod-go-version go.mod) + "Return the minimum version of go required to specified by GO.MOD." + (let ((go-version (go.mod-directives go.mod 'go))) + (if (null? go-version) + ;; If the go directive is missing, go 1.16 is assumed. + '(version "1.16") + (flatten go-version)))) + +;; Prevent inlining of this procedure, which is accessed by unit tests. +(set! go.mod-go-version go.mod-go-version) + (define-record-type (%make-vcs url-prefix root-regex type) vcs? @@ -610,6 +627,7 @@ (define* (go-module->guix-package module-path #:key available-versions module-path)) (content (fetch-go.mod goproxy module-path version*)) + (min-go-version (second (go.mod-go-version (parse-go.mod content)))) (dependencies+versions (go.mod-requirements (parse-go.mod content))) (dependencies (if pin-versions? dependencies+versions @@ -634,10 +652,13 @@ (define* (go-module->guix-package module-path #:key ,(vcs->origin vcs-type vcs-repo-url version*)) (build-system go-build-system) (arguments - '(#:import-path ,module-path - ,@(if (string=? module-path-sans-suffix root-module-path) - '() - `(#:unpack-path ,root-module-path)))) + (list ,@(if (version>? min-go-version (package-version (go-package))) + `(#:go ,(string->number min-go-version)) + '()) + #:import-path ,module-path + ,@(if (string=? module-path-sans-suffix root-module-path) + '() + `(#:unpack-path ,root-module-path)))) ,@(maybe-propagated-inputs (map (match-lambda ((name version)