GNU bug report logs - #71631
[PATCH] swh: Specify 'extid_version' when looking up by external ID.

Previous Next

Package: guix-patches;

Reported by: Simon Tournier <zimon.toutoune <at> gmail.com>

Date: Tue, 18 Jun 2024 14:06:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 71631 in the body.
You can then email your comments to 71631 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org:
bug#71631; Package guix-patches. (Tue, 18 Jun 2024 14:06:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Simon Tournier <zimon.toutoune <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org. (Tue, 18 Jun 2024 14:06:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Simon Tournier <zimon.toutoune <at> gmail.com>
Subject: [PATCH] swh: Specify 'extid_version' when looking up by external ID.
Date: Tue, 18 Jun 2024 16:02:51 +0200
Reported in <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>.

* guix/swh.scm (swh-url): Don't redirect when URL contains 'extid_version'.
(lookup-external-id): Specify 'extid_version' avoiding SWH's bug from past
version.

Change-Id: Iea2a5256e0612dae95567907bb11edb92a50df73
---
 guix/swh.scm | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Hi,

Without the patch:

    $ guix repl
    scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
    scheme@(guix-user)> (lookup-directory-by-nar-hash
                          (content-hash-value (origin-hash (package-source guile-wisp))) 'sha256)
    $1 = "swh:1:dir:218d95849f10fc0691d7dfa80999ce5061e654ef"

This is incorrect.  As explained in:

    https://gitlab.softwareheritage.org/swh/meta/-/issues/5093

The mismatch comes from something unexpected on SWH side.  That had been
corrected and the way to access to the fix is to update the version; hence the
patch.

    $ ./pre-inst-env guix repl
    scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
    scheme@(guix-user)> (lookup-directory-by-nar-hash
                          (content-hash-value (origin-hash (package-source guile-wisp))) 'sha256)
    $1 = "swh:1:dir:1f35a460673e2c8ccf948b8c18cb8c18d2ec24fe"

WDYT?

Cheers,
simon


diff --git a/guix/swh.scm b/guix/swh.scm
index f602cd89d1..e5824976d4 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -166,9 +166,15 @@ (define (swh-url path . rest)
     (string-append root (string-join rest "/" 'prefix)))
 
   ;; Ensure there's a trailing slash or we get a redirect.
-  (if (string-suffix? "/" url)
-      url
-      (string-append url "/")))
+  (cond
+   ((string-suffix? "/" url)
+    url)
+   ;; Special case; don't redirect
+   ;; <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>
+   ((string-contains url "extid_version")
+    url)
+   (else
+    (string-append url "/"))))
 
 ;; XXX: Work around a bug in Guile 3.0.2 where #:verify-certificate? would
 ;; be ignored (<https://bugs.gnu.org/40486>).
@@ -461,7 +467,9 @@ (define (lookup-external-id type id)
 (currently one of: \"bzr-nodeid\", \"hg-nodeid\", \"nar-sha256\",
 \"checksum-sha512\")."
   (call (swh-url "/api/1/extid" type
-                 (string-append "hex:" (bytevector->base16-string id)))
+                 (string-append "hex:" (bytevector->base16-string id)
+                                "/?extid_version=1"
+                                ))
         json->external-id))
 
 (define* (lookup-directory-by-nar-hash hash #:optional (algorithm 'sha256))

base-commit: bc8a41f4a8d9f1f0525d7bc97c67ed3c8aea3111
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#71631; Package guix-patches. (Tue, 18 Jun 2024 15:09:02 GMT) Full text and rfc822 format available.

Message #8 received at 71631 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: 71631 <at> debbugs.gnu.org
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, Mathieu Othacehe <othacehe <at> gnu.org>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, Ricardo Wurmus <rekado <at> elephly.net>,
 Christopher Baines <guix <at> cbaines.net>
Subject: Re: [bug#71631] [PATCH] swh: Specify 'extid_version' when looking
 up by external ID.
Date: Tue, 18 Jun 2024 17:07:34 +0200
Re,

> -  (if (string-suffix? "/" url)
> -      url
> -      (string-append url "/")))
> +  (cond
> +   ((string-suffix? "/" url)
> +    url)
> +   ;; Special case; don't redirect
> +   ;; <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>
> +   ((string-contains url "extid_version")
> +    url)
> +   (else
> +    (string-append url "/"))))

For the interested reader, here the message from SWH:

    https://sentry.softwareheritage.org/share/issue/840686e1329b484081ac2b07d27cd4aa/

In short, the redirection is not possible here.


Cheers,
simon




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 26 Jun 2024 22:06:02 GMT) Full text and rfc822 format available.

Notification sent to Simon Tournier <zimon.toutoune <at> gmail.com>:
bug acknowledged by developer. (Wed, 26 Jun 2024 22:06:02 GMT) Full text and rfc822 format available.

Message #13 received at 71631-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, Tobias Geerinckx-Rice <me <at> tobias.gr>,
 Mathieu Othacehe <othacehe <at> gnu.org>, 71631-done <at> debbugs.gnu.org,
 Ricardo Wurmus <rekado <at> elephly.net>, Christopher Baines <guix <at> cbaines.net>
Subject: Re: [bug#71631] [PATCH] swh: Specify 'extid_version' when looking
 up by external ID.
Date: Thu, 27 Jun 2024 00:02:54 +0200
Hi,

Simon Tournier <zimon.toutoune <at> gmail.com> skribis:

> Reported in <https://gitlab.softwareheritage.org/swh/meta/-/issues/5093>.
>
> * guix/swh.scm (swh-url): Don't redirect when URL contains 'extid_version'.
> (lookup-external-id): Specify 'extid_version' avoiding SWH's bug from past
> version.
>
> Change-Id: Iea2a5256e0612dae95567907bb11edb92a50df73
> ---
>  guix/swh.scm | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
>
> Hi,
>
> Without the patch:
>
>     $ guix repl
>     scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
>     scheme@(guix-user)> (lookup-directory-by-nar-hash
>                           (content-hash-value (origin-hash (package-source guile-wisp))) 'sha256)
>     $1 = "swh:1:dir:218d95849f10fc0691d7dfa80999ce5061e654ef"
>
> This is incorrect.  As explained in:
>
>     https://gitlab.softwareheritage.org/swh/meta/-/issues/5093
>
> The mismatch comes from something unexpected on SWH side.  That had been
> corrected and the way to access to the fix is to update the version; hence the
> patch.
>
>     $ ./pre-inst-env guix repl
>     scheme@(guix-user)> (use-modules (guix swh) (gnu packages guile-xyz))
>     scheme@(guix-user)> (lookup-directory-by-nar-hash
>                           (content-hash-value (origin-hash (package-source guile-wisp))) 'sha256)
>     $1 = "swh:1:dir:1f35a460673e2c8ccf948b8c18cb8c18d2ec24fe"

Woow.

I pushed it as bd908af0c619cb1b74afeeb07839d7af08de9d91 with a small
modification: ‘swh-url’ checks for parameters (the “?param=value” bit)
rather than “extid_version” specifically.  I also moved the link to the
issue to ‘lookup-external-id’.

Thank you!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#71631; Package guix-patches. (Thu, 11 Jul 2024 10:00:03 GMT) Full text and rfc822 format available.

Message #16 received at 71631-done <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Josselin Poiret <dev <at> jpoiret.xyz>, 71631-done <at> debbugs.gnu.org,
 Mathieu Othacehe <othacehe <at> gnu.org>, Tobias Geerinckx-Rice <me <at> tobias.gr>,
 Ricardo Wurmus <rekado <at> elephly.net>, Christopher Baines <guix <at> cbaines.net>
Subject: Re: bug#71631: [PATCH] swh: Specify 'extid_version' when looking up
 by external ID.
Date: Wed, 10 Jul 2024 20:53:37 +0200
Hi Ludo,

On Thu, 27 Jun 2024 at 00:02, Ludovic Courtès <ludo <at> gnu.org> wrote:

> I pushed it as bd908af0c619cb1b74afeeb07839d7af08de9d91 with a small
> modification: ‘swh-url’ checks for parameters (the “?param=value” bit)
> rather than “extid_version” specifically.  I also moved the link to the
> issue to ‘lookup-external-id’.

Thanks.  Indeed your patch is better. :-)

Cheers,
simon




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 08 Aug 2024 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 217 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.