From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 03 09:02:42 2022 Received: (at 50072) by debbugs.gnu.org; 3 Jan 2022 14:02:42 +0000 Received: from localhost ([127.0.0.1]:34447 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n4Nv8-0004HU-G8 for submit@debbugs.gnu.org; Mon, 03 Jan 2022 09:02:42 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:58454) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n4Nv6-0004HD-5J for 50072@debbugs.gnu.org; Mon, 03 Jan 2022 09:02:40 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id E9F82363; Mon, 3 Jan 2022 15:02:33 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HAxj7ubfAadx; Mon, 3 Jan 2022 15:02:33 +0100 (CET) Received: from ribbon (91-160-117-201.subs.proxad.net [91.160.117.201]) by hera.aquilenet.fr (Postfix) with ESMTPSA id E7B54120; Mon, 3 Jan 2022 15:02:32 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Maxime Devos Subject: Re: [PATCH v2 4/4] upstream: Support updating 'git-fetch' origins. References: <20220101203940.149517-1-maximedevos@telenet.be> <20220101203940.149517-5-maximedevos@telenet.be> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 =?utf-8?Q?Niv=C3=B4se?= an 230 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 03 Jan 2022 15:02:32 +0100 In-Reply-To: <20220101203940.149517-5-maximedevos@telenet.be> (Maxime Devos's message of "Sat, 1 Jan 2022 20:39:40 +0000") Message-ID: <87h7aklxxj.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: / Authentication-Results: hera.aquilenet.fr; none X-Rspamd-Server: hera X-Rspamd-Queue-Id: E9F82363 X-Spamd-Result: default: False [-0.10 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 50072 Cc: Sarah Morgensen , 50072@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) Maxime Devos skribis: > From: Sarah Morgensen > > Updaters need to be modified to return 'git-reference' objects. > This patch modifies the 'generic-git' and 'minetest' updater, > but others might need to be modified as well. > > * guix/upstream.scm (package-update/git-fetch): New procedure. > ()[urls]: Document it can be a 'git-reference'. > (%method-updates): Add 'git-fetch' mapping. > (update-package-source): Support 'git-reference' sources. > (upstream-source-compiler): Bail out gracefully if the source is a git > origin. > * guix/import/git.scm > (latest-git-tag-version): Always return two values and document that th= e tag > is returned as well. > (latest-git-release)[urls]: Use the 'git-reference' instead of the > repository URL. > * guix/import/minetest.scm (latest-minetest-release)[urls]: Don't wrap the > 'git-reference' in a list. > * tests/minetest.scm (upstream-source->sexp): Adjust to new convention. > > Co-authored-by: Maxime Devos [...] > system target) > "Download SOURCE from its first URL and lower it as a fixed-output > derivation that would fetch it." > - (mlet* %store-monad ((url -> (first (upstream-source-urls source))) > - (signature > + (define url > + (match (upstream-source-urls source) > + ((first . _) first) > + (_ (raise (formatted-message > + (G_ "git origins are unsupported by --with-latest")))))) We should probably not refer to =E2=80=98--with-latest=E2=80=99 in =E2=80=98upstream-source-compiler=E2=80=99 to keep things separate. > +(define* (package-update/git-fetch store package source #:key key-downlo= ad) > + "Return the version, checkout, and SOURCE, to update PACKAGE to > +SOURCE, an ." > + ;; TODO: it would be nice to authenticate commits, e.g. with > + ;; "guix git authenticate" or a list of permitted signing keys. > + (define ref (upstream-source-urls source)) ; a > + (values (upstream-source-version source) > + (latest-repository-commit It=E2=80=99s a bummer that no longer models things correc= tly: =E2=80=98urls=E2=80=99 can be either a list of URLs or a , a= s can be seen in the two examples above, and =E2=80=98signature-urls=E2=80=99 is meaningl= ess for Git origins. We can probably leave it for a future patch series, but I think we should do something about it. In particular, as the comment notes, IWBN to make provisions to allow for tag signature verification, which is probably the most widespread practice. Thanks, Ludo=E2=80=99.