Subject: New test "rewrite-url, without to-version" needs network

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Tue, 19 Sep 2023 07:04:53 +0200

Hi Maxim,

As mentioned on IRC, the recently-added "rewrite-url, without
to-version" test needs not only nss-certs installed, as I found when
building it for the Hurd.  New we also found it to fail in a container
without network access.  That means a guix package build (in a
container) now fails.

After I updated the guix version to 1.4.0-11.658de25e99 yesterday
morning to (finally) get `guix pull' to work on the Hurd, several people
reported failure to reconfigure on IRC.

This

    guix shell -CD guix
    export SCM_LOG_DRIVER_FLAGS="--select=^rewrite-url, without to-version"
    make check TESTS=tests/gnu-maintenance.scm

gives

--8<---------------cut here---------------start------------->8---
test-name: rewrite-url, without to-version
[..]
expected-value: "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
actual-value: #f
actual-error:
+ (getaddrinfo-error -8)
result: FAIL
--8<---------------cut here---------------end--------------->8---

When changing the code like this

--8<---------------cut here---------------start------------->8---
-(test-equal "rewrite-url, without to-version"
+(pk "rewrite-url, without to-version"
   "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
-  (with-http-server
+  "=>"(with-http-server
--8<---------------cut here---------------end--------------->8---

to create a backtrace, I get

--8<---------------cut here---------------start------------->8---
Backtrace:
          15 (primitive-load-path "tests/gnu-maintenance.scm")
In ice-9/eval.scm:
   214:21 14 (_ #f)
   217:33 13 (lp (#<procedure 7fd526cfcc60 at ice-9/eval.scm:182:7 ?>))
In guix/tests/http.scm:
    174:8 12 (call-with-http-server _ _)
In guix/gnu-maintenance.scm:
    568:6 11 (rewrite-url _ "1.45.0" #:to-version _)
In srfi/srfi-1.scm:
   460:18 10 (fold #<procedure 7fd526d03bc0 at guix/gnu-maintenance?> ?)
In guix/gnu-maintenance.scm:
   500:16  9 (_ _ ("dist" "dist.libuv.org" "" "https:"))
In ice-9/exceptions.scm:
   406:15  8 (update-cache _)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/http-client.scm:
   340:20  6 (_)
   107:28  5 (http-fetch _ #:port _ #:text? _ #:buffered? _ # _ # _ # ?)
In guix/build/download.scm:
    468:4  4 (open-connection-for-uri _ #:timeout _ # _)
   469:14  3 (thunk)
    396:8  2 (open-socket-for-uri _ #:timeout _)
In unknown file:
           1 (getaddrinfo "dist.libuv.org" "https" 32 #<undefined> # #)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure getaddrinfo: Servname not supported for ai_socktype
--8<---------------cut here---------------end--------------->8---

Greetings,
Janneke

PS: Without nss-certs installed, which was the usual case in a childhurd
until yesterday, I got

--8<---------------cut here---------------start------------->8---
+ (tls-certificate-error
+   invalid-certificate
+   #<x509-certificate 4c1a3b0>
+   "dist.libuv.org"
+   (#<gnutls-certificate-status-enum signer-not-found>
+    #<gnutls-certificate-status-enum invalid>))
--8<---------------cut here---------------end--------------->8---

backtrace:

--8<---------------cut here---------------start------------->8---
Backtrace:
          11 (primitive-load-path "tests/gnu-maintenance.scm")
In guix/tests/http.scm:
    174:8 10 (call-with-http-server _ _)
In guix/gnu-maintenance.scm:
    568:6  9 (rewrite-url _ "1.45.0" #:to-version _)
In srfi/srfi-1.scm:
   460:18  8 (fold #<procedure 6362b20 at guix/gnu-maintenance.scm:569:7 (s parents)> _ _)
In guix/gnu-maintenance.scm:
   500:16  7 (_ _ ("dist" "dist.libuv.org" "" "https:"))
In ice-9/exceptions.scm:
   406:15  6 (update-cache _)
In ice-9/boot-9.scm:
  1752:10  5 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/http-client.scm:
   340:20  4 (_)
   107:28  3 (http-fetch _ #:port _ #:text? _ #:buffered? _ #:open-connection _ # _ # _ # _ ?)
In guix/build/download.scm:
    468:4  2 (open-connection-for-uri _ #:timeout _ #:verify-certificate? _)
    360:6  1 (tls-wrap #<closed: file 637fe70> _ #:verify-certificate? _)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
X.509 certificate of 'dist.libuv.org' could not be verified:
  signer-not-found
  invalid
--8<---------------cut here---------------end--------------->8---

-- 
Janneke Nieuwenhuizen <[email-masked]>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com