GNU bug report logs - #41932
make check failures

Previous Next

Package: guix;

Reported by: Simen Endsjø <simendsjo <at> gmail.com>

Date: Thu, 18 Jun 2020 14:32:02 UTC

Severity: normal

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

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 41932 in the body.
You can then email your comments to 41932 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 bug-guix <at> gnu.org:
bug#41932; Package guix. (Thu, 18 Jun 2020 14:32:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Simen Endsjø <simendsjo <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 18 Jun 2020 14:32:02 GMT) Full text and rfc822 format available.

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

From: Simen Endsjø <simendsjo <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: make check failures
Date: Thu, 18 Jun 2020 12:16:01 +0200
[Message part 1 (text/plain, inline)]
I want to update and add some packages, but I'm having trouble 
setting up the
environment as I get some failing tests. I followed the 
Contributing manual
found here: 
https://guix.gnu.org/manual/en/html_node/Building-from-Git.html

- git clone
- guix environment guix --pure --ad-hoc help2man git strace
- ./bootstrap
- ./configure --localstatedir=/var
- make check


==================================================
  GNU Guix 1.0.1.18382-e418c: ./test-suite.log
==================================================

# TOTAL: 1058
# PASS:  1040
# SKIP:  13
# XFAIL: 2
# FAIL:  3
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

SKIP: tests/base32
==================

sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /home/simendsjo/code/guix/tests/base32.scm:48
source:
+ (test-assert
+   "bytevector->base32-string"
+   (fold (lambda (bv expected result)
+           (and result
+                (string=?
+                  (bytevector->base32-string bv)
+                  expected)))
+         #t
+         (map string->utf8
+              '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
+         '(""
+           "my"
+           "mzxq"
+           "mzxw6"
+           "mzxw6yq"
+           "mzxw6ytb"
+           "mzxw6ytboi")))
actual-value: #t
result: PASS

test-name: base32-string->bytevector
location: /home/simendsjo/code/guix/tests/base32.scm:65
source:
+ (test-assert
+   "base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (base32-string->bytevector
+                (bytevector->base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: nix-base32-string->bytevector
location: /home/simendsjo/code/guix/tests/base32.scm:73
source:
+ (test-assert
+   "nix-base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (nix-base32-string->bytevector
+                (bytevector->nix-base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: &invalid-base32-character
location: /home/simendsjo/code/guix/tests/base32.scm:81
source:
+ (test-equal
+   "&invalid-base32-character"
+   #\e
+   (guard (c ((invalid-base32-character? c)
+              (invalid-base32-character-value c)))
+          (nix-base32-string->bytevector
+            (string-append (make-string 51 #\a) "e"))))
expected-value: #\e
actual-value: #\e
result: PASS

test-name: sha256 & bytevector->nix-base32-string
location: /home/simendsjo/code/guix/tests/base32.scm:92
source:
+ (test-assert
+   "sha256 & bytevector->nix-base32-string"
+   (let ((file (search-path %load-path "tests/test.drv")))
+     (equal?
+       (bytevector->nix-base32-string
+         (sha256
+           (call-with-input-file file get-bytevector-all)))
+       (let* ((c (format
+                   #f
+                   "~a --type sha256 --base32 --flat \"~a\""
+                   %nix-hash
+                   file))
+              (p (open-input-pipe c))
+              (l (read-line p)))
+         (close-pipe p)
+         l))))
result: SKIP


FAIL: tests/channels
====================

test-name: channel-instance-metadata returns default if 
.guix-channel does not exist
location: /home/simendsjo/code/guix/tests/channels.scm:112
source:
+ (test-equal
+   "channel-instance-metadata returns default if .guix-channel 
does not exist"
+   '("/" ())
+   (let ((metadata
+           (channel-instance-metadata instance--boring)))
+     (list (channel-metadata-directory metadata)
+           (channel-metadata-dependencies metadata))))
expected-value: ("/" ())
actual-value: ("/" ())
result: PASS

test-name: channel-instance-metadata and default dependencies
location: /home/simendsjo/code/guix/tests/channels.scm:118
source:
+ (test-equal
+   "channel-instance-metadata and default dependencies"
+   '()
+   (channel-metadata-dependencies
+     (channel-instance-metadata instance--no-deps)))
expected-value: ()
actual-value: ()
result: PASS

test-name: channel-instance-metadata and directory
location: /home/simendsjo/code/guix/tests/channels.scm:122
source:
+ (test-equal
+   "channel-instance-metadata and directory"
+   "/modules"
+   (channel-metadata-directory
+     (channel-instance-metadata
+       instance--sub-directory)))
expected-value: "/modules"
actual-value: "/modules"
result: PASS

test-name: channel-instance-metadata rejects unsupported version
location: /home/simendsjo/code/guix/tests/channels.scm:127
source:
+ (test-equal
+   "channel-instance-metadata rejects unsupported version"
+   1
+   (guard (c ((and (message-condition? c) (error-location? c))
+              (location-line (error-location c))))
+          (channel-instance-metadata
+            instance--unsupported-version)))
expected-value: 1
actual-value: 1
result: PASS

test-name: channel-instance-metadata returns <channel-metadata>
location: /home/simendsjo/code/guix/tests/channels.scm:133
source:
+ (test-assert
+   "channel-instance-metadata returns <channel-metadata>"
+   (every (@@ (guix channels) channel-metadata?)
+          (map channel-instance-metadata
+               (list instance--no-deps
+                     instance--simple
+                     instance--with-dupes))))
actual-value: #t
result: PASS

test-name: channel-instance-metadata dependencies are channels
location: /home/simendsjo/code/guix/tests/channels.scm:140
source:
+ (test-assert
+   "channel-instance-metadata dependencies are channels"
+   (let ((deps ((@@ (guix channels)
+                    channel-metadata-dependencies)
+                (channel-instance-metadata instance--simple))))
+     (match deps (((? channel? dep)) #t) (_ #f))))
actual-value: #t
result: PASS

test-name: latest-channel-instances includes channel dependencies
location: /home/simendsjo/code/guix/tests/channels.scm:147
source:
+ (test-assert
+   "latest-channel-instances includes channel dependencies"
+   (let* ((channel (channel (name 'test) (url "test")))
+          (test-dir
+            (channel-instance-checkout instance--simple)))
+     (mock ((guix git)
+            update-cached-checkout
+            (lambda* (url #:key ref starting-commit)
+              (match url
+                     ("test" (values test-dir "caf3cabba9e" #f))
+                     (_ (values
+                          (channel-instance-checkout 
instance--no-deps)
+                          "abcde1234"
+                          #f)))))
+           (with-store
+             store
+             (let ((instances
+                     (latest-channel-instances store (list 
channel))))
+               (and (eq? 2 (length instances))
+                    (lset= eq?
+                           '(test test-channel)
+                           (map (compose
+                                  channel-name
+                                  channel-instance-channel)
+                                instances))))))))
actual-value: #t
result: PASS

test-name: latest-channel-instances excludes duplicate channel 
dependencies
location: /home/simendsjo/code/guix/tests/channels.scm:166
source:
+ (test-assert
+   "latest-channel-instances excludes duplicate channel 
dependencies"
+   (let* ((channel (channel (name 'test) (url "test")))
+          (test-dir
+            (channel-instance-checkout instance--with-dupes)))
+     (mock ((guix git)
+            update-cached-checkout
+            (lambda* (url #:key ref starting-commit)
+              (match url
+                     ("test" (values test-dir "caf3cabba9e" #f))
+                     (_ (values
+                          (channel-instance-checkout 
instance--no-deps)
+                          "abcde1234"
+                          #f)))))
+           (with-store
+             store
+             (let ((instances
+                     (latest-channel-instances store (list 
channel))))
+               (and (= 2 (length instances))
+                    (lset= eq?
+                           '(test test-channel)
+                           (map (compose
+                                  channel-name
+                                  channel-instance-channel)
+                                instances))
+                    (find (lambda (instance)
+                            (and (eq? (channel-name
+                                        (channel-instance-channel 
instance))
+                                      'test-channel)
+                                 (string=?
+                                   (channel-commit
+                                     (channel-instance-channel 
instance))
+                                   "abc1234")))
+                          instances)))))))
actual-value: #<<channel-instance> channel: #<<channel> name: 
test-channel url: "https://example.com/test-channel" branch: 
"master" commit: "abc1234" introduction: #f location: ((line . 
226) (column . 19) (filename . "guix/channels.scm"))> commit: 
"abcde1234" checkout: 
"/home/simendsjo/code/guix/test-tmp/store/6zkf2waz1q531qkxxj1hxj6z8p0f1385-test-channel-abcde12">
result: PASS

test-name: latest-channel-instances #:validate-pull
location: /home/simendsjo/code/guix/tests/channels.scm:196
source:
+ (test-equal
+   "latest-channel-instances #:validate-pull"
+   'descendant
+   (let/ec
+     return
+     (with-temporary-git-repository
+       directory
+       '((add "a.txt" "A")
+         (commit "first commit")
+         (add "b.scm" "#t")
+         (commit "second commit"))
+       (with-repository
+         directory
+         repository
+         (let* ((commit1 (find-commit repository "first"))
+                (commit2 (find-commit repository "second"))
+                (spec (channel
+                        (url (string-append "file://" directory))
+                        (name 'foo)))
+                (new (channel
+                       (inherit spec)
+                       (commit (oid->string (commit-id 
commit2)))))
+                (old (channel
+                       (inherit spec)
+                       (commit (oid->string (commit-id 
commit1))))))
+           (define (validate-pull channel current commit 
relation)
+             (return
+               (and (eq? channel old)
+                    (string=?
+                      (oid->string (commit-id commit2))
+                      current)
+                    (string=?
+                      (oid->string (commit-id commit1))
+                      commit)
+                    relation)))
+           (with-store
+             store
+             (latest-channel-instances
+               store
+               (list old)
+               #:current-channels
+               (list new)
+               #:validate-pull
+               validate-pull)))))))
Initialized empty Git repository in 
/tmp/guix-directory.1cbxjG/.git/
[master (root-commit) d61abce] first commit
1 file changed, 1 insertion(+)
create mode 100644 a.txt
[master 90f1a87] second commit
1 file changed, 1 insertion(+)
create mode 100644 b.scm
expected-value: descendant
actual-value: descendant
result: PASS

test-name: channel-instances->manifest
location: /home/simendsjo/code/guix/tests/channels.scm:229
source:
+ (test-assert
+   "channel-instances->manifest"
+   (let* ((spec (lambda deps
+                  `(channel
+                     (version 0)
+                     (dependencies
+                       ,@(map (lambda (dep)
+                                `(channel
+                                   (name ,dep)
+                                   (url "http://example.org")))
+                              deps)))))
+          (guix (make-instance #:name 'guix))
+          (instance0 (make-instance #:name 'a))
+          (instance1
+            (make-instance #:name 'b #:spec (spec 'a)))
+          (instance2
+            (make-instance #:name 'c #:spec (spec 'b)))
+          (instance3
+            (make-instance #:name 'd #:spec (spec 'c 'a))))
+     (%graft? #f)
+     (let ((source (channel-instance-checkout guix)))
+       (mkdir (string-append source "/build-aux"))
+       (call-with-output-file
+         (string-append
+           source
+           "/build-aux/build-self.scm")
+         (lambda (port)
+           (write '(begin
+                     (use-modules (guix) (gnu packages 
bootstrap))
+                     (lambda _ (package->derivation 
%bootstrap-guile)))
+                  port))))
+     (with-store
+       store
+       (let ()
+         (define manifest
+           (run-with-store
+             store
+             (channel-instances->manifest
+               (list guix
+                     instance0
+                     instance1
+                     instance2
+                     instance3))))
+         (define entries (manifest-entries manifest))
+         (define (depends? drv in out)
+           (let ((set (list->set
+                        (requisites
+                          store
+                          (list (derivation-file-name drv)))))
+                 (in (map derivation-file-name in))
+                 (out (map derivation-file-name out)))
+             (and (every (cut set-contains? set <>) in)
+                  (not (any (cut set-contains? set <>) out)))))
+         (define (lookup name)
+           (run-with-store
+             store
+             (lower-object
+               (manifest-entry-item
+                 (manifest-lookup
+                   manifest
+                   (manifest-pattern (name name)))))))
+         (let ((drv-guix (lookup "guix"))
+               (drv0 (lookup "a"))
+               (drv1 (lookup "b"))
+               (drv2 (lookup "c"))
+               (drv3 (lookup "d")))
+           (and (depends?
+                  drv-guix
+                  '()
+                  (list drv0 drv1 drv2 drv3))
+                (depends? drv0 (list) (list drv1 drv2 drv3))
+                (depends? drv1 (list drv0) (list drv2 drv3))
+                (depends? drv2 (list drv1) (list drv3))
+                (depends? drv3 (list drv2 drv0) (list))))))))
actual-value: #t
result: PASS

test-name: channel-news, no news
location: /home/simendsjo/code/guix/tests/channels.scm:306
source:
+ (test-equal
+   "channel-news, no news"
+   '()
+   (with-temporary-git-repository
+     directory
+     '((add "a.txt" "A") (commit "the commit"))
+     (with-repository
+       directory
+       repository
+       (let ((channel
+               (channel
+                 (url (string-append "file://" directory))
+                 (name 'foo)))
+             (latest (reference-name->oid repository "HEAD")))
+         (channel-news-for-commit
+           channel
+           (oid->string latest))))))
Initialized empty Git repository in 
/tmp/guix-directory.iC041J/.git/
[master (root-commit) 02c8df1] the commit
1 file changed, 1 insertion(+)
create mode 100644 a.txt
expected-value: ()
actual-value: ()
result: PASS

test-name: channel-news, one entry
location: /home/simendsjo/code/guix/tests/channels.scm:318
source:
+ (test-assert
+   "channel-news, one entry"
+   (with-temporary-git-repository
+     directory
+     `((add ".guix-channel"
+            ,(object->string
+               '(channel (version 0) (news-file "news.scm"))))
+       (commit "first commit")
+       (add "src/a.txt" "A")
+       (commit "second commit")
+       (tag "tag-for-first-news-entry")
+       (add "news.scm"
+            ,(lambda (repository)
+               (let ((previous
+                       (reference-name->oid repository "HEAD")))
+                 (object->string
+                   `(channel-news
+                      (version 0)
+                      (entry (commit ,(oid->string previous))
+                             (title (en "New file!") (eo "Nova 
dosiero!"))
+                             (body (en "Yeah, a.txt."))))))))
+       (commit "third commit")
+       (add "src/b.txt" "B")
+       (commit "fourth commit")
+       (add "news.scm"
+            ,(lambda (repository)
+               (let ((second
+                       (commit-id
+                         (find-commit repository "second 
commit")))
+                     (previous
+                       (reference-name->oid repository "HEAD")))
+                 (object->string
+                   `(channel-news
+                      (version 0)
+                      (entry (commit ,(oid->string previous))
+                             (title (en "Another file!"))
+                             (body (en "Yeah, b.txt.")))
+                      (entry (tag "tag-for-first-news-entry")
+                             (title (en "Old news.") (eo 
"Malnova?oj."))
+                             (body (en "For a.txt"))))))))
+       (commit "fifth commit"))
+     (with-repository
+       directory
+       repository
+       (define (find-commit* message)
+         (oid->string
+           (commit-id (find-commit repository message))))
+       (let ((channel
+               (channel
+                 (url (string-append "file://" directory))
+                 (name 'foo)))
+             (commit1 (find-commit* "first commit"))
+             (commit2 (find-commit* "second commit"))
+             (commit3 (find-commit* "third commit"))
+             (commit4 (find-commit* "fourth commit"))
+             (commit5 (find-commit* "fifth commit")))
+         (and (null? (channel-news-for-commit channel commit2))
+              (lset= string=?
+                     (map channel-news-entry-commit
+                          (channel-news-for-commit channel 
commit5))
+                     (list commit2 commit4))
+              (lset= equal?
+                     (map channel-news-entry-title
+                          (channel-news-for-commit channel 
commit5))
+                     '((("en" . "Another file!"))
+                       (("en" . "Old news.") ("eo" . 
"Malnova?oj."))))
+              (lset= string=?
+                     (map channel-news-entry-commit
+                          (channel-news-for-commit channel 
commit3))
+                     (list commit2))
+              (lset= string=?
+                     (map channel-news-entry-commit
+                          (channel-news-for-commit channel 
commit3 commit1))
+                     (list commit2))
+              (lset= string=?
+                     (map channel-news-entry-commit
+                          (channel-news-for-commit channel 
commit5 commit3))
+                     (list commit4))
+              (lset= string=?
+                     (map channel-news-entry-commit
+                          (channel-news-for-commit channel 
commit5 commit1))
+                     (list commit4 commit2))
+              (lset= equal?
+                     (map channel-news-entry-tag
+                          (channel-news-for-commit channel 
commit5 commit1))
+                     '(#f "tag-for-first-news-entry")))))))
Initialized empty Git repository in 
/tmp/guix-directory.fDRYPF/.git/
[master (root-commit) ad6f8c3] first commit
1 file changed, 1 insertion(+)
create mode 100644 .guix-channel
[master 7ae4c89] second commit
1 file changed, 1 insertion(+)
create mode 100644 src/a.txt
[master b845960] third commit
1 file changed, 1 insertion(+)
create mode 100644 news.scm
[master 38eb3f3] fourth commit
1 file changed, 1 insertion(+)
create mode 100644 src/b.txt
[master b44b975] fifth commit
1 file changed, 1 insertion(+), 1 deletion(-)
actual-value: #f
result: FAIL

test-name: authenticate-channel, wrong first commit signer
location: /home/simendsjo/code/guix/tests/channels.scm:406
source:
+ (test-assert
+   "authenticate-channel, wrong first commit signer"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file
+           %ed25519bis-public-key-file
+           %ed25519bis-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add ".guix-channel"
+              ,(object->string
+                 '(channel
+                    (version 0)
+                    (keyring-reference "master"))))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Charlie"))))))
+         (add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let* ((commit1 (find-commit repository "first"))
+                (intro ((@@ (guix channels) 
make-channel-introduction)
+                        (commit-id-string commit1)
+                        (openpgp-public-key-fingerprint
+                          (read-openpgp-packet 
%ed25519bis-public-key-file))
+                        #f))
+                (channel
+                  (channel
+                    (name 'example)
+                    (url (string-append "file://" directory))
+                    (introduction intro))))
+           (guard (c ((message? c)
+                      (->bool
+                        (string-contains
+                          (condition-message c)
+                          "initial commit"))))
+                  (authenticate-channel
+                    channel
+                    directory
+                    (commit-id-string commit1)
+                    #:keyring-reference-prefix
+                    "")
+                  'failed))))))
result: SKIP

test-name: authenticate-channel, .guix-authorizations
location: /home/simendsjo/code/guix/tests/channels.scm:446
source:
+ (test-assert
+   "authenticate-channel, .guix-authorizations"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file
+           %ed25519bis-public-key-file
+           %ed25519bis-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add ".guix-channel"
+              ,(object->string
+                 '(channel
+                    (version 0)
+                    (keyring-reference "channel-keyring"))))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Charlie"))))))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "b.txt" "B")
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "c.txt" "C")
+         (commit
+           "third commit"
+           (signer
+             ,(key-fingerprint %ed25519bis-public-key-file)))
+         (branch "channel-keyring")
+         (checkout "channel-keyring")
+         (add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add "other.key"
+              ,(call-with-input-file
+                 %ed25519bis-public-key-file
+                 get-string-all))
+         (commit "keyring commit")
+         (checkout "master"))
+       (with-repository
+         directory
+         repository
+         (let* ((commit1 (find-commit repository "first"))
+                (commit2 (find-commit repository "second"))
+                (commit3 (find-commit repository "third"))
+                (intro ((@@ (guix channels) 
make-channel-introduction)
+                        (commit-id-string commit1)
+                        (openpgp-public-key-fingerprint
+                          (read-openpgp-packet 
%ed25519-public-key-file))
+                        #f))
+                (channel
+                  (channel
+                    (name 'example)
+                    (url (string-append "file://" directory))
+                    (introduction intro))))
+           (and (authenticate-channel
+                  channel
+                  directory
+                  (commit-id-string commit2)
+                  #:keyring-reference-prefix
+                  "")
+                (guard (c ((unauthorized-commit-error? c)
+                           (and (oid=? 
(git-authentication-error-commit c)
+                                       (commit-id commit3))
+                                (bytevector=?
+                                  (openpgp-public-key-fingerprint
+ 
(unauthorized-commit-error-signing-key c))
+                                  (openpgp-public-key-fingerprint
+                                    (read-openpgp-packet
+ 
%ed25519bis-public-key-file))))))
+                       (authenticate-channel
+                         channel
+                         directory
+                         (commit-id-string commit3)
+                         #:keyring-reference-prefix
+                         "")
+                       'failed)))))))
result: SKIP

random seed for tests: 1592473061
Updating channel 'test' from Git repository at 'test'...
Updating channel 'test-channel' from Git repository at 
'https://example.com/test-channel'...
Updating channel 'test' from Git repository at 'test'...
Updating channel 'test-channel' from Git repository at 
'https://example.com/test-channel'...
Updating channel 'test-channel' from Git repository at 
'https://example.com/test-channel'...
Updating channel 'foo' from Git repository at 
'file:///tmp/guix-directory.1cbxjG'...

SKIP: tests/cpio
================

test-name: file->cpio-header + write-cpio-header + 
read-cpio-header
location: /home/simendsjo/code/guix/tests/cpio.scm:37
source:
+ (test-assert
+   "file->cpio-header + write-cpio-header + read-cpio-header"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (header (file->cpio-header file)))
+     (call-with-values
+       (lambda () (open-bytevector-output-port))
+       (lambda (port get-bv)
+         (write-cpio-header header port)
+         (let ((port (open-bytevector-input-port (get-bv))))
+           (equal? header (read-cpio-header port)))))))
actual-value: #t
result: PASS

test-name: bit-identical to GNU cpio's output
location: /home/simendsjo/code/guix/tests/cpio.scm:49
source:
+ (test-assert
+   "bit-identical to GNU cpio's output"
+   (call-with-temporary-output-file
+     (lambda (link _)
+       (delete-file link)
+       (symlink "chbouib" link)
+       (let ((files (cons* "/"
+                           (canonicalize-path
+                             (dirname (search-path %load-path 
"guix.scm")))
+                           link
+                           (map (compose
+                                  canonicalize-path
+                                  (cut search-path %load-path 
<>))
+                                '("guix.scm"
+                                  "guix/build/syscalls.scm"
+                                  "guix/packages.scm")))))
+         (call-with-temporary-output-file
+           (lambda (ref-file _)
+             (let ((pipe (open-pipe*
+                           OPEN_WRITE
+                           %cpio-program
+                           "-o"
+                           "-O"
+                           ref-file
+                           "-H"
+                           "newc"
+                           "--null")))
+               (for-each
+                 (lambda (file) (format pipe "~a\x00" file))
+                 files)
+               (and (zero? (close-pipe pipe))
+                    (call-with-temporary-output-file
+                      (lambda (file port)
+                        (write-cpio-archive files port)
+                        (close-port port)
+                        (or (file=? ref-file file)
+                            (throw 'cpio-archives-differ
+                                   files
+                                   ref-file
+                                   file
+                                   (stat:size (stat ref-file))
+                                   (stat:size (stat 
file))))))))))))))
result: SKIP

random seed for tests: 1592472741

FAIL: tests/git-authenticate
============================

test-name: unsigned commits
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:43
source:
+ (test-assert
+   "unsigned commits"
+   (with-temporary-git-repository
+     directory
+     '((add "a.txt" "A")
+       (commit "first commit")
+       (add "b.txt" "B")
+       (commit "second commit"))
+     (with-repository
+       directory
+       repository
+       (let ((commit1 (find-commit repository "first"))
+             (commit2 (find-commit repository "second")))
+         (guard (c ((unsigned-commit-error? c)
+                    (oid=? (git-authentication-error-commit c)
+                           (commit-id commit1))))
+                (authenticate-commits
+                  repository
+                  (list commit1 commit2)
+                  #:keyring-reference
+                  "master")
+                'failed)))))
Initialized empty Git repository in 
/tmp/guix-directory.0jlixe/.git/
[master (root-commit) 428f973] first commit
1 file changed, 1 insertion(+)
create mode 100644 a.txt
[master becf258] second commit
1 file changed, 1 insertion(+)
create mode 100644 b.txt
actual-value: #t
result: PASS

test-name: signed commits, SHA1 signature
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:60
source:
+ (test-assert
+   "signed commits, SHA1 signature"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file)
+     (call-with-output-file
+       (string-append (getenv "GNUPGHOME") "/gpg.conf")
+       (lambda (port) (display "digest-algo sha1" port)))
+     (with-temporary-git-repository
+       directory
+       `((add "a.txt" "A")
+         (add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Charlie"))))))
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((commit (find-commit repository "first")))
+           (guard (c ((unsigned-commit-error? c)
+                      (oid=? (git-authentication-error-commit c)
+                             (commit-id commit))))
+                  (authenticate-commits
+                    repository
+                    (list commit)
+                    #:keyring-reference
+                    "master")
+                  'failed))))))
actual-value: #f
actual-error:
+ (%exception
+   #<&invoke-error program: "gpg" arguments: ("--import" 
"/home/simendsjo/code/guix/tests/ed25519.key") exit-status: 127 
term-signal: #f stop-signal: #f>)
result: FAIL

test-name: signed commits, default authorizations
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:89
source:
+ (test-assert
+   "signed commits, default authorizations"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "b.txt" "B")
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((commit1 (find-commit repository "first"))
+               (commit2 (find-commit repository "second")))
+           (authenticate-commits
+             repository
+             (list commit1 commit2)
+             #:default-authorizations
+             (list (openpgp-public-key-fingerprint
+                     (read-openpgp-packet 
%ed25519-public-key-file)))
+             #:keyring-reference
+             "master"))))))
result: SKIP

test-name: signed commits, .guix-authorizations
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:113
source:
+ (test-assert
+   "signed commits, .guix-authorizations"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Charlie"))))))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add ".guix-authorizations"
+              ,(object->string `(authorizations (version 0) ())))
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "b.txt" "B")
+         (commit
+           "third commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((commit1 (find-commit repository "first"))
+               (commit2 (find-commit repository "second"))
+               (commit3 (find-commit repository "third")))
+           (and (authenticate-commits
+                  repository
+                  (list commit1 commit2)
+                  #:keyring-reference
+                  "master")
+                (guard (c ((unauthorized-commit-error? c)
+                           (and (oid=? 
(git-authentication-error-commit c)
+                                       (commit-id commit3))
+                                (bytevector=?
+                                  (openpgp-public-key-fingerprint
+ 
(unauthorized-commit-error-signing-key c))
+                                  (openpgp-public-key-fingerprint
+                                    (read-openpgp-packet
+ 
%ed25519-public-key-file))))))
+                       (authenticate-commits
+                         repository
+                         (list commit1 commit2 commit3)
+                         #:keyring-reference
+                         "master")
+                       'failed)))))))
result: SKIP

test-name: signed commits, .guix-authorizations, unauthorized 
merge
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:161
source:
+ (test-assert
+   "signed commits, .guix-authorizations, unauthorized merge"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file
+           %ed25519bis-public-key-file
+           %ed25519bis-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add "signer1.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add "signer2.key"
+              ,(call-with-input-file
+                 %ed25519bis-public-key-file
+                 get-string-all))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Alice"))))))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (branch "devel")
+         (checkout "devel")
+         (add "devel/1.txt" "1")
+         (commit
+           "first devel commit"
+           (signer
+             ,(key-fingerprint %ed25519bis-public-key-file)))
+         (checkout "master")
+         (add "b.txt" "B")
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (merge "devel"
+                "merge"
+                (signer
+                  ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((master1 (find-commit repository "first commit"))
+               (master2
+                 (find-commit repository "second commit"))
+               (devel1
+                 (find-commit repository "first devel commit"))
+               (merge (find-commit repository "merge")))
+           (define (correct? c commit)
+             (and (oid=? (git-authentication-error-commit c)
+                         (commit-id commit))
+                  (bytevector=?
+                    (openpgp-public-key-fingerprint
+                      (unauthorized-commit-error-signing-key c))
+                    (openpgp-public-key-fingerprint
+                      (read-openpgp-packet 
%ed25519bis-public-key-file)))))
+           (and (authenticate-commits
+                  repository
+                  (list master1 master2)
+                  #:keyring-reference
+                  "master")
+                (guard (c ((unauthorized-commit-error? c)
+                           (correct? c devel1)))
+                       (authenticate-commits
+                         repository
+                         (list master1 devel1)
+                         #:keyring-reference
+                         "master")
+                       #f)
+                (guard (c ((unauthorized-commit-error? c)
+                           (correct? c devel1)))
+                       (authenticate-commits
+                         repository
+                         (list master1 master2 devel1 merge)
+                         #:keyring-reference
+                         "master")
+                       #f)))))))
result: SKIP

test-name: signed commits, .guix-authorizations, authorized merge
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:230
source:
+ (test-assert
+   "signed commits, .guix-authorizations, authorized merge"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file
+           %ed25519bis-public-key-file
+           %ed25519bis-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add "signer1.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add "signer2.key"
+              ,(call-with-input-file
+                 %ed25519bis-public-key-file
+                 get-string-all))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Alice"))))))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (branch "devel")
+         (checkout "devel")
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Alice"))
+                     (,(key-fingerprint 
%ed25519bis-public-key-file))))))
+         (commit
+           "first devel commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "devel/2.txt" "2")
+         (commit
+           "second devel commit"
+           (signer
+             ,(key-fingerprint %ed25519bis-public-key-file)))
+         (checkout "master")
+         (add "b.txt" "B")
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (merge "devel"
+                "merge"
+                (signer
+                  ,(key-fingerprint %ed25519-public-key-file)))
+         (add "c.txt" "C")
+         (commit
+           "third commit"
+           (signer
+             ,(key-fingerprint %ed25519bis-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((master1 (find-commit repository "first commit"))
+               (master2
+                 (find-commit repository "second commit"))
+               (devel1
+                 (find-commit repository "first devel commit"))
+               (devel2
+                 (find-commit repository "second devel commit"))
+               (merge (find-commit repository "merge"))
+               (master3 (find-commit repository "third commit")))
+           (authenticate-commits
+             repository
+             (list master1
+                   master2
+                   devel1
+                   devel2
+                   merge
+                   master3)
+             #:keyring-reference
+             "master"))))))
result: SKIP

test-name: signed commits, .guix-authorizations removed
location: /home/simendsjo/code/guix/tests/git-authenticate.scm:290
source:
+ (test-assert
+   "signed commits, .guix-authorizations removed"
+   (with-fresh-gnupg-setup
+     (list %ed25519-public-key-file
+           %ed25519-secret-key-file)
+     (with-temporary-git-repository
+       directory
+       `((add "signer.key"
+              ,(call-with-input-file
+                 %ed25519-public-key-file
+                 get-string-all))
+         (add ".guix-authorizations"
+              ,(object->string
+                 `(authorizations
+                    (version 0)
+                    ((,(key-fingerprint %ed25519-public-key-file)
+                      (name "Charlie"))))))
+         (commit "zeroth commit")
+         (add "a.txt" "A")
+         (commit
+           "first commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (remove ".guix-authorizations")
+         (commit
+           "second commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file)))
+         (add "b.txt" "B")
+         (commit
+           "third commit"
+           (signer
+             ,(key-fingerprint %ed25519-public-key-file))))
+       (with-repository
+         directory
+         repository
+         (let ((commit1 (find-commit repository "first"))
+               (commit2 (find-commit repository "second"))
+               (commit3 (find-commit repository "third")))
+           (and (authenticate-commits
+                  repository
+                  (list commit1 commit2)
+                  #:keyring-reference
+                  "master")
+                (guard (c ((unauthorized-commit-error? c)
+                           (oid=? 
(git-authentication-error-commit c)
+                                  (commit-id commit2))))
+                       (authenticate-commits
+                         repository
+                         (list commit1 commit2 commit3)
+                         #:keyring-reference
+                         "master")
+                       'failed)))))))
result: SKIP


SKIP: tests/hackage
===================

test-name: hackage->guix-package test 1
location: /home/simendsjo/code/guix/tests/hackage.scm:192
source:
+ (test-assert
+   "hackage->guix-package test 1"
+   (eval-test-with-cabal test-cabal-1 match-ghc-foo))
random seed for tests: 1592470873

Starting download of /tmp/guix-file.JcfCfm
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.JcfCfm" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test 2
location: /home/simendsjo/code/guix/tests/hackage.scm:195
source:
+ (test-assert
+   "hackage->guix-package test 2"
+   (eval-test-with-cabal test-cabal-2 match-ghc-foo))

Starting download of /tmp/guix-file.LlgVnn
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.LlgVnn" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test 3
location: /home/simendsjo/code/guix/tests/hackage.scm:198
source:
+ (test-assert
+   "hackage->guix-package test 3"
+   (eval-test-with-cabal
+     test-cabal-3
+     match-ghc-foo
+     #:cabal-environment
+     '(("impl" . "ghc-7.8"))))

Starting download of /tmp/guix-file.Hw5E9m
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.Hw5E9m" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test 4
location: /home/simendsjo/code/guix/tests/hackage.scm:202
source:
+ (test-assert
+   "hackage->guix-package test 4"
+   (eval-test-with-cabal
+     test-cabal-4
+     match-ghc-foo
+     #:cabal-environment
+     '(("impl" . "ghc-7.8"))))

Starting download of /tmp/guix-file.1IZmYi
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.1IZmYi" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test 5
location: /home/simendsjo/code/guix/tests/hackage.scm:206
source:
+ (test-assert
+   "hackage->guix-package test 5"
+   (eval-test-with-cabal
+     test-cabal-5
+     match-ghc-foo
+     #:cabal-environment
+     '(("impl" . "ghc-7.8"))))

Starting download of /tmp/guix-file.gWJGfl
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.gWJGfl" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test 6
location: /home/simendsjo/code/guix/tests/hackage.scm:237
source:
+ (test-assert
+   "hackage->guix-package test 6"
+   (eval-test-with-cabal
+     test-cabal-6
+     match-ghc-foo-6))

Starting download of /tmp/guix-file.oN5nfm
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.oN5nfm" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test multiline desc (layout)
location: /home/simendsjo/code/guix/tests/hackage.scm:255
source:
+ (test-assert
+   "hackage->guix-package test multiline desc (layout)"
+   (eval-test-with-cabal
+     test-cabal-multiline-layout
+     match-ghc-foo))

Starting download of /tmp/guix-file.FlyLHm
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.FlyLHm" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test multiline desc (braced)
location: /home/simendsjo/code/guix/tests/hackage.scm:275
source:
+ (test-assert
+   "hackage->guix-package test multiline desc (braced)"
+   (eval-test-with-cabal
+     test-cabal-multiline-braced
+     match-ghc-foo))

Starting download of /tmp/guix-file.eZNfVk
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.eZNfVk" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: hackage->guix-package test mixed layout
location: /home/simendsjo/code/guix/tests/hackage.scm:295
source:
+ (test-assert
+   "hackage->guix-package test mixed layout"
+   (eval-test-with-cabal
+     test-cabal-mixed-layout
+     match-ghc-foo))
Syntax error: unexpected token : (ghc-options (-Wall)) (at line 
11, column 2)
Syntax error: unexpected end of input

;;; (fail #f #f)
actual-value: #f
result: XFAIL

test-name: hackage->guix-package test flag executable
location: /home/simendsjo/code/guix/tests/hackage.scm:322
source:
+ (test-assert
+   "hackage->guix-package test flag executable"
+   (eval-test-with-cabal
+     test-cabal-flag-executable
+     match-ghc-foo))
Syntax error: unexpected token : (buildable (False)) (at line 12, 
column 4)
Syntax error: unexpected end of input

;;; (fail #f #f)
actual-value: #f
result: XFAIL

test-name: hackage->guix-package test cabal revision
location: /home/simendsjo/code/guix/tests/hackage.scm:367
source:
+ (test-assert
+   "hackage->guix-package test cabal revision"
+   (eval-test-with-cabal
+     test-cabal-revision
+     match-ghc-foo-revision))

Starting download of /tmp/guix-file.atRdrj
From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz...
download failed 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 
"Not Found"
failed to download "/tmp/guix-file.atRdrj" from 
"https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz"
actual-value: #t
result: PASS

test-name: read-cabal test 1
location: /home/simendsjo/code/guix/tests/hackage.scm:370
source:
+ (test-assert
+   "read-cabal test 1"
+   (match (call-with-input-string
+            test-read-cabal-1
+            read-cabal)
+          ((("name" ("test-me"))
+            ('section
+             'library
+             (('if
+               ('flag "base4point8")
+               (("build-depends" ("base >= 4.8 && < 5")))
+               (('if
+                 ('flag "base4")
+                 (("build-depends" ("base >= 4 && < 4.8")))
+                 (('if
+                   ('flag "base3")
+                   (("build-depends" ("base >= 3 && < 4")))
+                   (("build-depends" ("base < 3"))))))))
+              ('if
+               ('or
+                ('flag "base4point8")
+                ('and ('flag "base4") ('flag "base3")))
+               (("build-depends" ("random")))
+               ())
+              ("build-depends" ("containers"))
+              ("exposed-modules" 
("Test.QuickCheck.Exception")))))
+           #t)
+          (x (pk 'fail x #f))))
actual-value: #t
result: PASS


SKIP: tests/pypi
================

test-name: guix-package->pypi-name, old URL style
location: /home/simendsjo/code/guix/tests/pypi.scm:126
source:
+ (test-equal
+   "guix-package->pypi-name, old URL style"
+   "psutil"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri 
"https://pypi.org/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: "psutil"
actual-value: "psutil"
result: PASS

test-name: guix-package->pypi-name, new URL style
location: /home/simendsjo/code/guix/tests/pypi.scm:134
source:
+ (test-equal
+   "guix-package->pypi-name, new URL style"
+   "certbot"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri 
"https://pypi.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: "certbot"
actual-value: "certbot"
result: PASS

test-name: guix-package->pypi-name, several URLs
location: /home/simendsjo/code/guix/tests/pypi.scm:142
source:
+ (test-equal
+   "guix-package->pypi-name, several URLs"
+   "cram"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
+                      (pypi-uri "cram" "0.7"))))))))
expected-value: "cram"
actual-value: "cram"
result: PASS

test-name: specification->requirement-name
location: /home/simendsjo/code/guix/tests/pypi.scm:151
source:
+ (test-equal
+   "specification->requirement-name"
+   '("Fizzy"
+     "PickyThing"
+     "SomethingWithMarker"
+     "requests"
+     "pip")
+   (map specification->requirement-name
+        test-specifications))
expected-value: ("Fizzy" "PickyThing" "SomethingWithMarker" 
"requests" "pip")
actual-value: ("Fizzy" "PickyThing" "SomethingWithMarker" 
"requests" "pip")
result: PASS

test-name: parse-requires.txt
location: /home/simendsjo/code/guix/tests/pypi.scm:155
source:
+ (test-equal
+   "parse-requires.txt"
+   (list '("foo" "bar") '("pytest"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-requires.txt test-requires.txt)))
expected-value: (("foo" "bar") ("pytest"))
actual-value: (("foo" "bar") ("pytest"))
result: PASS

test-name: parse-requires.txt - Beaker
location: /home/simendsjo/code/guix/tests/pypi.scm:161
source:
+ (test-equal
+   "parse-requires.txt - Beaker"
+   (list '() '("Mock" "coverage"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-requires.txt test-requires.txt-beaker)))
expected-value: (() ("Mock" "coverage"))
actual-value: (() ("Mock" "coverage"))
result: PASS

test-name: parse-wheel-metadata, with extras
location: /home/simendsjo/code/guix/tests/pypi.scm:167
source:
+ (test-equal
+   "parse-wheel-metadata, with extras"
+   (list '("wrapt" "bar") '("tox" "bumpversion"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-wheel-metadata test-metadata-with-extras)))
expected-value: (("wrapt" "bar") ("tox" "bumpversion"))
actual-value: (("wrapt" "bar") ("tox" "bumpversion"))
result: PASS

test-name: parse-wheel-metadata, with extras - Jedi
location: /home/simendsjo/code/guix/tests/pypi.scm:173
source:
+ (test-equal
+   "parse-wheel-metadata, with extras - Jedi"
+   (list '("parso") '("pytest"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-wheel-metadata
+           test-metadata-with-extras-jedi)))
expected-value: (("parso") ("pytest"))
actual-value: (("parso") ("pytest"))
result: PASS

test-name: pypi->guix-package, no wheel
location: /home/simendsjo/code/guix/tests/pypi.scm:179
source:
+ (test-assert
+   "pypi->guix-package, no wheel"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir-p "foo-1.0.0/src/bizarre.egg-info")
+                      (with-output-to-file
+ 
"foo-1.0.0/src/bizarre.egg-info/requires.txt"
+                        (lambda () (display test-requires.txt)))
+                      (parameterize
+                        ((current-output-port (%make-void-port 
"rw+")))
+                        (system* "tar" "czvf" file-name 
"foo-1.0.0/"))
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name 
port-sha256))))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.org/pypi/foo/json"
+                          (values
+                            (open-input-string test-json)
+                            (string-length test-json)))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                          #f)
+                         (_ (error "Unexpected URL: " url)))))
+               (match (pypi->guix-package "foo")
+                      (('package
+                        ('name "python-foo")
+                        ('version "1.0.0")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('propagated-inputs
+                         ('quasiquote
+                          (("python-bar" ('unquote 'python-bar))
+                           ("python-foo" ('unquote 
'python-foo)))))
+                        ('native-inputs
+                         ('quasiquote
+                          (("python-pytest" ('unquote 
'python-pytest)))))
+                        ('home-page "http://example.com")
+                        ('synopsis "summary")
+                        ('description "summary")
+                        ('license 'license:lgpl2.0))
+                       (string=?
+                         (bytevector->nix-base32-string 
test-source-hash)
+                         hash))
+                      (x (pk 'fail x #f))))))
actual-value: #t
result: PASS

test-name: pypi->guix-package, wheels
location: /home/simendsjo/code/guix/tests/pypi.scm:235
source:
+ (test-assert
+   "pypi->guix-package, wheels"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir-p "foo-1.0.0/foo.egg-info/")
+                      (with-output-to-file
+                        "foo-1.0.0/foo.egg-info/requires.txt"
+                        (lambda ()
+                          (display
+                            "wrong data to make sure we're 
testing wheels ")))
+                      (parameterize
+                        ((current-output-port (%make-void-port 
"rw+")))
+                        (system* "tar" "czvf" file-name 
"foo-1.0.0/"))
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name 
port-sha256))))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    (begin
+                      (mkdir "foo-1.0.0.dist-info")
+                      (with-output-to-file
+                        "foo-1.0.0.dist-info/METADATA"
+                        (lambda () (display test-metadata)))
+                      (let ((zip-file (string-append file-name 
".zip")))
+                        (system*
+                          "zip"
+                          "-q"
+                          zip-file
+                          "foo-1.0.0.dist-info/METADATA")
+                        (rename-file zip-file file-name))
+                      (delete-file-recursively 
"foo-1.0.0.dist-info")))
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.org/pypi/foo/json"
+                          (values
+                            (open-input-string test-json)
+                            (string-length test-json)))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                          #f)
+                         (_ (error "Unexpected URL: " url)))))
+               (invalidate-memoization! pypi->guix-package)
+               (match (pypi->guix-package "foo")
+                      (('package
+                        ('name "python-foo")
+                        ('version "1.0.0")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('propagated-inputs
+                         ('quasiquote
+                          (("python-bar" ('unquote 'python-bar))
+                           ("python-baz" ('unquote 
'python-baz)))))
+                        ('native-inputs
+                         ('quasiquote
+                          (("python-pytest" ('unquote 
'python-pytest)))))
+                        ('home-page "http://example.com")
+                        ('synopsis "summary")
+                        ('description "summary")
+                        ('license 'license:lgpl2.0))
+                       (string=?
+                         (bytevector->nix-base32-string 
test-source-hash)
+                         hash))
+                      (x (pk 'fail x #f))))))
result: SKIP

test-name: pypi->guix-package, no usable requirement file.
location: /home/simendsjo/code/guix/tests/pypi.scm:303
source:
+ (test-assert
+   "pypi->guix-package, no usable requirement file."
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (mkdir-p "foo-1.0.0/foo.egg-info/")
+                    (parameterize
+                      ((current-output-port (%make-void-port 
"rw+")))
+                      (system* "tar" "czvf" file-name 
"foo-1.0.0/"))
+                    (delete-file-recursively "foo-1.0.0")
+                    (set! test-source-hash
+                      (call-with-input-file file-name 
port-sha256)))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.org/pypi/foo/json"
+                          (values
+                            (open-input-string test-json)
+                            (string-length test-json)))
+ 
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                          #f)
+                         (_ (error "Unexpected URL: " url)))))
+               (invalidate-memoization! pypi->guix-package)
+               (match (pypi->guix-package "foo")
+                      (('package
+                        ('name "python-foo")
+                        ('version "1.0.0")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('home-page "http://example.com")
+                        ('synopsis "summary")
+                        ('description "summary")
+                        ('license 'license:lgpl2.0))
+                       (string=?
+                         (bytevector->nix-base32-string 
test-source-hash)
+                         hash))
+                      (x (pk 'fail x #f))))))
actual-value: #t
result: PASS

random seed for tests: 1592465056
warning: Cannot guess requirements from source archive: no 
requires.txt file found.

SKIP: tests/snix
================

test-name: factorize-uri
location: /home/simendsjo/code/guix/tests/snix.scm:36
source:
+ (test-assert
+   "factorize-uri"
+   (every?
+     (match-lambda
+       ((uri version '-> expected)
+        (equal? (factorize-uri uri version) expected)))
+     '(("http://example.com/foo.tgz"
+        "1.0"
+        ->
+        "http://example.com/foo.tgz")
+       ("http://example.com/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/foo-" version ".tgz"))
+       ("http://example.com/2.8/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/"
+         version
+         "/foo-"
+         version
+         ".tgz")))))
actual-value: #t
result: PASS

test-name: nixpkgs->guix-package
location: /home/simendsjo/code/guix/tests/snix.scm:54
source:
+ (test-assert
+   "nixpkgs->guix-package"
+   (match (nixpkgs->guix-package
+            %nixpkgs-directory
+            "guile")
+          (('package
+            ('name "guile")
+            ('version (? string?))
+            ('source ('origin _ ...))
+            ('build-system _)
+            ('inputs ('quasiquote (inputs ...)))
+            ('propagated-inputs ('quasiquote (pinputs ...)))
+            ('home-page (? string?))
+            ('synopsis (? string?))
+            ('description (? string?))
+            ('license (? symbol?)))
+           (and (member '("libffi" ,libffi) inputs)
+                (member '("gmp" ,gmp) pinputs)
+                #t))
+          (x (pk 'fail x #f))))
result: SKIP


SKIP: tests/upstream
====================

test-name: coalesce-sources same version
location: /home/simendsjo/code/guix/tests/upstream.scm:30
source:
+ (test-equal
+   "coalesce-sources same version"
+   (list (upstream-source
+           (package "foo")
+           (version "1")
+           (urls '("ftp://example.org/foo-1.tar.xz"
+                   "ftp://example.org/foo-1.tar.gz"))
+           (signature-urls
+             '("ftp://example.org/foo-1.tar.xz.sig"
+               "ftp://example.org/foo-1.tar.gz.sig"))))
+   (coalesce-sources
+     (list (upstream-source
+             (package "foo")
+             (version "1")
+             (urls '("ftp://example.org/foo-1.tar.gz"))
+             (signature-urls
+               '("ftp://example.org/foo-1.tar.gz.sig")))
+           (upstream-source
+             (package "foo")
+             (version "1")
+             (urls '("ftp://example.org/foo-1.tar.xz"))
+             (signature-urls
+               '("ftp://example.org/foo-1.tar.xz.sig"))))))
result: SKIP

random seed for tests: 1592461337

SKIP: tests/guix-environment-container
======================================

+ set -e
+ guix environment --version
guix environment (GNU Guix) 1.0.1.18382-e418c
Copyright (C) 2020 the Guix authors
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guile -c '((@@ (guix scripts environment) 
assert-container-features))'
Backtrace:
In ice-9/boot-9.scm:
 1736:10  8 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
          7 (apply-smob/0 #<thunk 7f8770fa0180>)
In ice-9/boot-9.scm:
   718:2  6 (call-with-prompt _ _ #<procedure 
   default-prompt-handle?>)
In ice-9/eval.scm:
   619:8  5 (_ #(#(#<directory (guile-user) 7f8770c1ef00>)))
In ice-9/command-line.scm:
  185:18  4 (_ #<input: string 7f8770c18a10>)
In unknown file:
          3 (eval ((@@ (guix scripts environment) #)) #<directory 
          (?>)
In ice-9/eval.scm:
  182:19  2 (proc #f)
  142:16  1 (compile-top-call #f (5 (guix scripts environment) . 
  #) #)
In unknown file:
          0 (%resolve-variable (5 (guix scripts environment) # . 
          #f) ?)

ERROR: In procedure %resolve-variable:
error: assert-container-features: unbound variable
+ exit 77
SKIP tests/guix-environment-container.sh (exit status: 77)

FAIL: tests/guix-repl
=====================

+ guix repl --version
guix repl (GNU Guix) 1.0.1.18382-e418c
Copyright (C) 2020 the Guix authors
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
++ mktemp -d
+ test_directory=/tmp/tmp.1dOO9LbJgB
+ export test_directory
+ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' 
EXIT
+ tmpfile=/tmp/tmp.1dOO9LbJgB/foo.scm
+ rm -f /tmp/tmp.1dOO9LbJgB/foo.scm
+ trap 'rm -f "$tmpfile"' EXIT
+ module_dir=t-guix-repl-20146
+ mkdir t-guix-repl-20146
+ trap 'rm -rf "$module_dir"' EXIT
+ cat
++ guix repl /tmp/tmp.1dOO9LbJgB/foo.scm
+ test 'Consider installing the '\''guile-readline'\'' package for
convenient interactive line editing and input history.

Consider installing the '\''guile-colorized'\'' package
for a colorful Guile experience.

coreutils' = coreutils
+ rm -rf t-guix-repl-20146
FAIL tests/guix-repl.sh (exit status: 1)
[Message part 2 (text/html, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#41932; Package guix. (Sat, 20 Jun 2020 11:20:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Simen Endsjø <simendsjo <at> gmail.com>
Cc: 41932 <at> debbugs.gnu.org
Subject: Re: bug#41932: make check failures
Date: Sat, 20 Jun 2020 13:18:59 +0200
Hi Simen,

Thanks for your report.  Some explanations follow:

Simen Endsjø <simendsjo <at> gmail.com> skribis:

> test-name: channel-news, one entry
> location: /home/simendsjo/code/guix/tests/channels.scm:318
> source:
> + (test-assert
> +   "channel-news, one entry"
> +   (with-temporary-git-repository
> +     directory
> +     `((add ".guix-channel"
> +            ,(object->string
> +               '(channel (version 0) (news-file "news.scm"))))
> +       (commit "first commit")
> +       (add "src/a.txt" "A")
> +       (commit "second commit")
> +       (tag "tag-for-first-news-entry")
> +       (add "news.scm"
> +            ,(lambda (repository)
> +               (let ((previous
> +                       (reference-name->oid repository "HEAD")))
> +                 (object->string
> +                   `(channel-news
> +                      (version 0)
> +                      (entry (commit ,(oid->string previous))
> +                             (title (en "New file!") (eo "Nova
> dosiero!"))
> +                             (body (en "Yeah, a.txt."))))))))
> +       (commit "third commit")
> +       (add "src/b.txt" "B")
> +       (commit "fourth commit")
> +       (add "news.scm"
> +            ,(lambda (repository)
> +               (let ((second
> +                       (commit-id
> +                         (find-commit repository "second commit")))
> +                     (previous
> +                       (reference-name->oid repository "HEAD")))
> +                 (object->string
> +                   `(channel-news
> +                      (version 0)
> +                      (entry (commit ,(oid->string previous))
> +                             (title (en "Another file!"))
> +                             (body (en "Yeah, b.txt.")))
> +                      (entry (tag "tag-for-first-news-entry")
> +                             (title (en "Old news.") (eo
> "Malnova?oj."))

Seems you’re missing a UTF-8 locale, which causes this test to fail.

> test-name: signed commits, SHA1 signature
> location: /home/simendsjo/code/guix/tests/git-authenticate.scm:60
> source:
> + (test-assert
> +   "signed commits, SHA1 signature"
> +   (with-fresh-gnupg-setup
> +     (list %ed25519-public-key-file
> +           %ed25519-secret-key-file)
> +     (call-with-output-file
> +       (string-append (getenv "GNUPGHOME") "/gpg.conf")
> +       (lambda (port) (display "digest-algo sha1" port)))
> +     (with-temporary-git-repository
> +       directory
> +       `((add "a.txt" "A")
> +         (add "signer.key"
> +              ,(call-with-input-file
> +                 %ed25519-public-key-file
> +                 get-string-all))
> +         (add ".guix-authorizations"
> +              ,(object->string
> +                 `(authorizations
> +                    (version 0)
> +                    ((,(key-fingerprint %ed25519-public-key-file)
> +                      (name "Charlie"))))))
> +         (commit
> +           "first commit"
> +           (signer
> +             ,(key-fingerprint %ed25519-public-key-file))))
> +       (with-repository
> +         directory
> +         repository
> +         (let ((commit (find-commit repository "first")))
> +           (guard (c ((unsigned-commit-error? c)
> +                      (oid=? (git-authentication-error-commit c)
> +                             (commit-id commit))))
> +                  (authenticate-commits
> +                    repository
> +                    (list commit)
> +                    #:keyring-reference
> +                    "master")
> +                  'failed))))))
> actual-value: #f
> actual-error:
> + (%exception
> +   #<&invoke-error program: "gpg" arguments: ("--import"
> "/home/simendsjo/code/guix/tests/ed25519.key") exit-status: 127
> term-signal: #f stop-signal: #f>)
> result: FAIL

Looks like ‘gpg’ is missing from $PATH.  The test should have been
skipped, but there was a typo; fixed now.

> + set -e
> + guix environment --version
> guix environment (GNU Guix) 1.0.1.18382-e418c
> Copyright (C) 2020 the Guix authors
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> + guile -c '((@@ (guix scripts environment)
> assert-container-features))'
> Backtrace:
> In ice-9/boot-9.scm:
>  1736:10  8 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
>           7 (apply-smob/0 #<thunk 7f8770fa0180>)
> In ice-9/boot-9.scm:
>    718:2  6 (call-with-prompt _ _ #<procedure
> default-prompt-handle?>)
> In ice-9/eval.scm:
>    619:8  5 (_ #(#(#<directory (guile-user) 7f8770c1ef00>)))
> In ice-9/command-line.scm:
>   185:18  4 (_ #<input: string 7f8770c18a10>)
> In unknown file:
>           3 (eval ((@@ (guix scripts environment) #)) #<directory
> (?>)
> In ice-9/eval.scm:
>   182:19  2 (proc #f)
>   142:16  1 (compile-top-call #f (5 (guix scripts environment) . #) #)
> In unknown file:
>           0 (%resolve-variable (5 (guix scripts environment) # .
> #f) ?)
>
> ERROR: In procedure %resolve-variable:
> error: assert-container-features: unbound variable
> + exit 77
> SKIP tests/guix-environment-container.sh (exit status: 77)

Oops, not a test failure, but still an issue here.

> FAIL: tests/guix-repl
> =====================
>
> + guix repl --version
> guix repl (GNU Guix) 1.0.1.18382-e418c
> Copyright (C) 2020 the Guix authors
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> ++ mktemp -d
> + test_directory=/tmp/tmp.1dOO9LbJgB
> + export test_directory
> + trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
> + tmpfile=/tmp/tmp.1dOO9LbJgB/foo.scm
> + rm -f /tmp/tmp.1dOO9LbJgB/foo.scm
> + trap 'rm -f "$tmpfile"' EXIT
> + module_dir=t-guix-repl-20146
> + mkdir t-guix-repl-20146
> + trap 'rm -rf "$module_dir"' EXIT
> + cat
> ++ guix repl /tmp/tmp.1dOO9LbJgB/foo.scm
> + test 'Consider installing the '\''guile-readline'\'' package for
> convenient interactive line editing and input history.
>
> Consider installing the '\''guile-colorized'\'' package
> for a colorful Guile experience.
>
> coreutils' = coreutils
> + rm -rf t-guix-repl-20146
> FAIL tests/guix-repl.sh (exit status: 1)

Here ~/.guile is read by ‘guix repl’ when it shouldn’t.  I believe this
was fixed by 290c3166212d1c7150ac64ea6d6f6ad506c4d29b.

Thanks for reporting these issues!

Ludo’.




Reply sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
You have taken responsibility. (Wed, 21 Oct 2020 04:25:02 GMT) Full text and rfc822 format available.

Notification sent to Simen Endsjø <simendsjo <at> gmail.com>:
bug acknowledged by developer. (Wed, 21 Oct 2020 04:25:02 GMT) Full text and rfc822 format available.

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

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Simen Endsjø <simendsjo <at> gmail.com>,
 41932-done <at> debbugs.gnu.org
Subject: Re: bug#41932: make check failures
Date: Wed, 21 Oct 2020 00:24:19 -0400
Hello!

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

> Hi Simen,
>
> Thanks for your report.  Some explanations follow:
>
> Simen Endsjø <simendsjo <at> gmail.com> skribis:
>
>> test-name: channel-news, one entry
>> location: /home/simendsjo/code/guix/tests/channels.scm:318
>> source:
>> + (test-assert
>> +   "channel-news, one entry"
>> +   (with-temporary-git-repository
>> +     directory
>> +     `((add ".guix-channel"
>> +            ,(object->string
>> +               '(channel (version 0) (news-file "news.scm"))))
>> +       (commit "first commit")
>> +       (add "src/a.txt" "A")
>> +       (commit "second commit")
>> +       (tag "tag-for-first-news-entry")
>> +       (add "news.scm"
>> +            ,(lambda (repository)
>> +               (let ((previous
>> +                       (reference-name->oid repository "HEAD")))
>> +                 (object->string
>> +                   `(channel-news
>> +                      (version 0)
>> +                      (entry (commit ,(oid->string previous))
>> +                             (title (en "New file!") (eo "Nova
>> dosiero!"))
>> +                             (body (en "Yeah, a.txt."))))))))
>> +       (commit "third commit")
>> +       (add "src/b.txt" "B")
>> +       (commit "fourth commit")
>> +       (add "news.scm"
>> +            ,(lambda (repository)
>> +               (let ((second
>> +                       (commit-id
>> +                         (find-commit repository "second commit")))
>> +                     (previous
>> +                       (reference-name->oid repository "HEAD")))
>> +                 (object->string
>> +                   `(channel-news
>> +                      (version 0)
>> +                      (entry (commit ,(oid->string previous))
>> +                             (title (en "Another file!"))
>> +                             (body (en "Yeah, b.txt.")))
>> +                      (entry (tag "tag-for-first-news-entry")
>> +                             (title (en "Old news.") (eo
>> "Malnova?oj."))
>
> Seems you’re missing a UTF-8 locale, which causes this test to fail.
>
>> test-name: signed commits, SHA1 signature
>> location: /home/simendsjo/code/guix/tests/git-authenticate.scm:60
>> source:
>> + (test-assert
>> +   "signed commits, SHA1 signature"
>> +   (with-fresh-gnupg-setup
>> +     (list %ed25519-public-key-file
>> +           %ed25519-secret-key-file)
>> +     (call-with-output-file
>> +       (string-append (getenv "GNUPGHOME") "/gpg.conf")
>> +       (lambda (port) (display "digest-algo sha1" port)))
>> +     (with-temporary-git-repository
>> +       directory
>> +       `((add "a.txt" "A")
>> +         (add "signer.key"
>> +              ,(call-with-input-file
>> +                 %ed25519-public-key-file
>> +                 get-string-all))
>> +         (add ".guix-authorizations"
>> +              ,(object->string
>> +                 `(authorizations
>> +                    (version 0)
>> +                    ((,(key-fingerprint %ed25519-public-key-file)
>> +                      (name "Charlie"))))))
>> +         (commit
>> +           "first commit"
>> +           (signer
>> +             ,(key-fingerprint %ed25519-public-key-file))))
>> +       (with-repository
>> +         directory
>> +         repository
>> +         (let ((commit (find-commit repository "first")))
>> +           (guard (c ((unsigned-commit-error? c)
>> +                      (oid=? (git-authentication-error-commit c)
>> +                             (commit-id commit))))
>> +                  (authenticate-commits
>> +                    repository
>> +                    (list commit)
>> +                    #:keyring-reference
>> +                    "master")
>> +                  'failed))))))
>> actual-value: #f
>> actual-error:
>> + (%exception
>> +   #<&invoke-error program: "gpg" arguments: ("--import"
>> "/home/simendsjo/code/guix/tests/ed25519.key") exit-status: 127
>> term-signal: #f stop-signal: #f>)
>> result: FAIL
>
> Looks like ‘gpg’ is missing from $PATH.  The test should have been
> skipped, but there was a typo; fixed now.
>
>> + set -e
>> + guix environment --version
>> guix environment (GNU Guix) 1.0.1.18382-e418c
>> Copyright (C) 2020 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> + guile -c '((@@ (guix scripts environment)
>> assert-container-features))'
>> Backtrace:
>> In ice-9/boot-9.scm:
>>  1736:10  8 (with-exception-handler _ _ #:unwind? _ # _)
>> In unknown file:
>>           7 (apply-smob/0 #<thunk 7f8770fa0180>)
>> In ice-9/boot-9.scm:
>>    718:2  6 (call-with-prompt _ _ #<procedure
>> default-prompt-handle?>)
>> In ice-9/eval.scm:
>>    619:8  5 (_ #(#(#<directory (guile-user) 7f8770c1ef00>)))
>> In ice-9/command-line.scm:
>>   185:18  4 (_ #<input: string 7f8770c18a10>)
>> In unknown file:
>>           3 (eval ((@@ (guix scripts environment) #)) #<directory
>> (?>)
>> In ice-9/eval.scm:
>>   182:19  2 (proc #f)
>>   142:16  1 (compile-top-call #f (5 (guix scripts environment) . #) #)
>> In unknown file:
>>           0 (%resolve-variable (5 (guix scripts environment) # .
>> #f) ?)
>>
>> ERROR: In procedure %resolve-variable:
>> error: assert-container-features: unbound variable
>> + exit 77
>> SKIP tests/guix-environment-container.sh (exit status: 77)
>
> Oops, not a test failure, but still an issue here.
>
>> FAIL: tests/guix-repl
>> =====================
>>
>> + guix repl --version
>> guix repl (GNU Guix) 1.0.1.18382-e418c
>> Copyright (C) 2020 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> ++ mktemp -d
>> + test_directory=/tmp/tmp.1dOO9LbJgB
>> + export test_directory
>> + trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
>> + tmpfile=/tmp/tmp.1dOO9LbJgB/foo.scm
>> + rm -f /tmp/tmp.1dOO9LbJgB/foo.scm
>> + trap 'rm -f "$tmpfile"' EXIT
>> + module_dir=t-guix-repl-20146
>> + mkdir t-guix-repl-20146
>> + trap 'rm -rf "$module_dir"' EXIT
>> + cat
>> ++ guix repl /tmp/tmp.1dOO9LbJgB/foo.scm
>> + test 'Consider installing the '\''guile-readline'\'' package for
>> convenient interactive line editing and input history.
>>
>> Consider installing the '\''guile-colorized'\'' package
>> for a colorful Guile experience.
>>
>> coreutils' = coreutils
>> + rm -rf t-guix-repl-20146
>> FAIL tests/guix-repl.sh (exit status: 1)
>
> Here ~/.guile is read by ‘guix repl’ when it shouldn’t.  I believe this
> was fixed by 290c3166212d1c7150ac64ea6d6f6ad506c4d29b.
>
> Thanks for reporting these issues!
>
> Ludo’.

Seems you've forgotten to press the 'close' button :-)

Closing,

Thanks!

Maxim




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 18 Nov 2020 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 150 days ago.

Previous Next


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