Subject: ‘guix lint -c source’treats redirects as warnings

From: Ludovic Courtès <[email-masked]>
Date: Sat, 20 Jul 2019 01:37:29 +0200

Hello!

I noticed that ‘guix lint -c source’ would incorrectly treat redirects
as errors:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix lint -c source iml
gnu/packages/algebra.scm:1508:5: warning: [email-masked]: all the source URIs are unreachable:
gnu/packages/algebra.scm:1508:5: warning: [email-masked]: permanent redirect from http://www.cs.uwaterloo.ca/~astorjoh/iml-1.0.5.tar.bz2 to https://cs.uwaterloo.ca/~astorjoh/iml-1.0.5.tar.bz2
--8<---------------cut here---------------end--------------->8---

This is because ‘validate-uri’ returns a warning for redirects, whereas
before commit 50fc2384feb3bb2677d074f8f0deb5ae3c56b4d8 the code did:

    ((= 301 (response-code argument))
     (if (response-location argument)
         (begin
           (emit-warning package
                         (format #f (G_ "permanent redirect from ~a to ~a")
                                 (uri->string uri)
                                 (uri->string
                                  (response-location argument))))
           #t)
         (begin
           (emit-warning package
                         (format #f (G_ "invalid permanent redirect \
from ~a")
                                 (uri->string uri)))
           #f)))

IOW, ‘validate-uri’ would return true *and* emit a warning as a side effect.

I’m not sure how to achieve the same result now.

Thoughts?

Thanks,
Ludo’.