From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id oCkkHDck2GLjQgEAbAwnHQ (envelope-from ) for ; Wed, 20 Jul 2022 17:50:15 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id EKYoHDck2GKeKgEA9RJhRA (envelope-from ) for ; Wed, 20 Jul 2022 17:50:15 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8F6F52D3BA for ; Wed, 20 Jul 2022 17:50:14 +0200 (CEST) Received: from localhost ([::1]:37262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oEBxh-0002WE-PP for larch@yhetil.org; Wed, 20 Jul 2022 11:50:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39920) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEBk2-0006iK-SS for bug-guix@gnu.org; Wed, 20 Jul 2022 11:36:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:60906) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oEBk2-0007Rz-FG for bug-guix@gnu.org; Wed, 20 Jul 2022 11:36:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oEBk2-0005As-At for bug-guix@gnu.org; Wed, 20 Jul 2022 11:36:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#56667: test failures tests/channels.scm and tests/texlive.scm Resent-From: Chris Keschnat Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 20 Jul 2022 15:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56667 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 56667@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.165833133719841 (code B ref -1); Wed, 20 Jul 2022 15:36:02 +0000 Received: (at submit) by debbugs.gnu.org; 20 Jul 2022 15:35:37 +0000 Received: from localhost ([127.0.0.1]:58665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEBjb-00059s-Hz for submit@debbugs.gnu.org; Wed, 20 Jul 2022 11:35:37 -0400 Received: from lists.gnu.org ([209.51.188.17]:46140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEAuT-0003Tc-W0 for submit@debbugs.gnu.org; Wed, 20 Jul 2022 10:42:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54790) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEAuT-0004me-RA for bug-guix@gnu.org; Wed, 20 Jul 2022 10:42:45 -0400 Received: from box.catsu.it ([46.232.250.231]:51039) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oEAuP-0006MQ-Ox for bug-guix@gnu.org; Wed, 20 Jul 2022 10:42:45 -0400 Received: from authenticated-user (box.catsu.it [46.232.250.231]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by box.catsu.it (Postfix) with ESMTPSA id 035BA75B8C for ; Wed, 20 Jul 2022 16:42:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=catsu.it; s=mail; t=1658328157; bh=LeiWeMRQtgw1yhfOkBUC46E0878Tc4Uzc6kt11EjGx0=; h=From:To:Subject:Date:From; b=NVtB546mLxYe5GE9+BkyGAGjtprkjTlH000ccAU7E2W9UG6mU2IJlN+FRQs0W7QDN AMKAmoLJpWfxdB1zN6RfDWwlqyjV+m3zaiLWvrvzJt0ug2O6saZcHZDKyh5P2xvphG tky49Xoi2ey8XwbDy1SWS9Z6zaPEKhXDKy6WtmvUcqJMRwIeSpLtdCQnEE2xSkwitc RPlV5EoYldtZ7DpoNf+YMZikzav3N7TyDUXnULTUGdWU9zMRKp9Kq3HVuMd6w7MC+1 Fr3lgKxQyOOAFepS4v2ZQ2TU5X2ePGoo/KdhcGG9jPJA6ODUN0bC3Q3ObMXX5yzMGA f8OWJKex/DhZA== Date: Wed, 20 Jul 2022 16:29:50 +0200 Message-ID: <86pmhzu9ph.fsf@catsu.it> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=46.232.250.231; envelope-from=chris@catsu.it; helo=box.catsu.it X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 20 Jul 2022 11:35:33 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Wed, 20 Jul 2022 11:49:15 -0400 X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" Reply-to: Chris Keschnat From: Chris Keschnat via Bug reports for GNU Guix X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1658332215; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post:dkim-signature; bh=arlTcxmTyMj92Bhwpyosa9H/pz8AoriHZQwHMMmufRk=; b=WNePWRDCG3290HP+X1i1zxwjVLwWjRspeNsiHJCQRGzBbcopnSIFS2euVArjWh6kSILvIU +U/5T26NeQLZkzdYEV+kCmr7B5IJpjizkCYJ6ncgGUoaS4FtqZd2fJvpR2dyuMKxeNwbWS eNsWGF3D4ExH8vkwj23s/b7PSpQj2q6x8DNMyAvTKxlIu+uH3KwrVrC43z50dCLQQy6CFl HbgfIh0JRq3HkSvcOtkFmSBMHCBTUHSROEwNcNJZ2tcLywhnDY/YT0Rs9aH5d+91VzpGBL 1svE8UNQqLd1k48isYipyeBNwYwfFkYa/v0unHlMvraCeL71bBihq0VJch8t4w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1658332215; a=rsa-sha256; cv=none; b=hvAEZB3vWW0F5XIE2yKfQWG4J9mfUgbF0e+Auu5o9lept9uzM4Q1n7baCQuoGj16ebzgBl GSkjl5oA9XguSrXAOVicFYxq4y44iLEBA8+zbHyYBppryD1/QuZeP0IL6JIW6Plh2vnP+A lPjTUhffFSXcq75+kowRQbe301wpehVn8cK0SNAPg1ezFzogUk2tJYUn3ZVIxsZ2iJRp1a iuOok0E20OuJh0rWQOwB3pHS3mTlGcjeDsL8YwTW61Sm1BjaIhzYjkp4nd9x0XxcvkGcss MwHgN6lMa7qFd3M01YVjvcrEXrfhatxhVFTCNDTxgRvmWkM90i765qt41O4Rjw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=catsu.it header.s=mail header.b=NVtB546m; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.13 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=catsu.it header.s=mail header.b=NVtB546m; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 8F6F52D3BA X-Spam-Score: -2.13 X-Migadu-Scanner: scn1.migadu.com X-TUID: Dnoy9RzGVkvh --=-=-= Content-Type: text/plain Hello, I am trying to follow "16.1 Building from Git"[1] but this results in two test failures on my machine. Initially I ran: #+begin_src sh git clone https://git.savannah.gnu.org/git/guix.git cd guix git fetch origin keyring:keyring guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" guix environment guix --pure --ad-hoc help2man git strace ./bootstrap ./configure --localstatedir=/var make && make check #+end_src Rerunning only the failed tests: #+begin_src sh make check TESTS="tests/channels.scm tests/texlive.scm" #+end_src Output: #+begin_src sh $ make check TESTS="tests/channels.scm tests/texlive.scm" make check-recursive make[1]: Entering directory '/home/ck/tmp/guix' Making check in po/guix make[2]: Entering directory '/home/ck/tmp/guix/po/guix' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ck/tmp/guix/po/guix' Making check in po/packages make[2]: Entering directory '/home/ck/tmp/guix/po/packages' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ck/tmp/guix/po/packages' make[2]: Entering directory '/home/ck/tmp/guix' Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... make check-TESTS check-local make[3]: Entering directory '/home/ck/tmp/guix' make[4]: Entering directory '/home/ck/tmp/guix' FAIL: tests/channels.scm FAIL: tests/texlive.scm ============================================================================ Testsuite summary for GNU Guix 1.3.0.22336-479d9e ============================================================================ # TOTAL: 19 # PASS: 13 # SKIP: 4 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 ============================================================================ See ./test-suite.log Please report to bug-guix@gnu.org ============================================================================ make[4]: *** [Makefile:5964: test-suite.log] Error 1 make[4]: Leaving directory '/home/ck/tmp/guix' make[3]: *** [Makefile:6072: check-TESTS] Error 2 make[3]: Leaving directory '/home/ck/tmp/guix' make[2]: *** [Makefile:6321: check-am] Error 2 make[2]: Leaving directory '/home/ck/tmp/guix' make[1]: *** [Makefile:5849: check-recursive] Error 1 make[1]: Leaving directory '/home/ck/tmp/guix' make: *** [Makefile:6323: check] Error 2 #+end_src And results in the attached =test-suite.log= --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=test-suite.log Content-Transfer-Encoding: quoted-printable Content-Description: test-suite.log =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D GNU Guix 1.3.0.22336-479d9e: ./test-suite.log =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D # TOTAL: 19 # PASS: 13 # SKIP: 4 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: tests/channels =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D test-name: channel-instance-metadata returns default if .guix-channel does = not exist location: /home/ck/tmp/guix/tests/channels.scm:117 source: + (test-equal + "channel-instance-metadata returns default if .guix-channel does not ex= ist" + '("/" ()) + (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/ck/tmp/guix/tests/channels.scm:123 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/ck/tmp/guix/tests/channels.scm:127 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/ck/tmp/guix/tests/channels.scm:132 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 location: /home/ck/tmp/guix/tests/channels.scm:138 source: + (test-assert + "channel-instance-metadata returns " + (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/ck/tmp/guix/tests/channels.scm:145 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/ck/tmp/guix/tests/channels.scm:152 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=3D 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/ck/tmp/guix/tests/channels.scm:171 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 (=3D 2 (length instances)) + (lset=3D 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=3D? + (channel-commit + (channel-instance-channel instance)) + "abc1234"))) + instances))))))) actual-value: #< channel: #< name: test-channel = url: "https://example.com/test-channel" branch: "master" commit: "abc1234" = introduction: #f location: ((filename . "guix/channels.scm") (line . 262) (= column . 19))> commit: "abcde1234" checkout: "/home/ck/tmp/guix/test-tmp/st= ore/c2xcqhay4kldm6pncih8hfljyl1qyzxg-test-channel-abcde12"> result: PASS hint: Using 'master' as the name for the initial branch. This default branc= h name hint: is subject to change. To configure the initial branch name to use in = all hint: of your new repositories, which will suppress this warning, call: hint:=20 hint: git config --global init.defaultBranch hint:=20 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this comman= d: hint:=20 hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.uBzMmx/.git/ [master (root-commit) 71b1ca8] first commit 1 file changed, 1 insertion(+) create mode 100644 a.txt [master a56a83a] second commit 1 file changed, 1 insertion(+) create mode 100644 b.scm test-name: latest-channel-instances #:validate-pull location: /home/ck/tmp/guix/tests/channels.scm:201 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=3D? + (oid->string (commit-id commit2)) + current) + (string=3D? + (oid->string (commit-id commit1)) + commit) + relation))) + (with-store + store + (latest-channel-instances + store + (list old) + #:current-channels + (list new) + #:validate-pull + validate-pull))))))) expected-value: descendant actual-value: descendant result: PASS test-name: channel-instances->manifest location: /home/ck/tmp/guix/tests/channels.scm:234 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 hint: Using 'master' as the name for the initial branch. This default branc= h name hint: is subject to change. To configure the initial branch name to use in = all hint: of your new repositories, which will suppress this warning, call: hint:=20 hint: git config --global init.defaultBranch hint:=20 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this comman= d: hint:=20 hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.PVLRKX/.git/ [master (root-commit) 3af316b] the commit 1 file changed, 1 insertion(+) create mode 100644 a.txt test-name: channel-news, no news location: /home/ck/tmp/guix/tests/channels.scm:311 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)))))) expected-value: () actual-value: () result: PASS hint: Using 'master' as the name for the initial branch. This default branc= h name hint: is subject to change. To configure the initial branch name to use in = all hint: of your new repositories, which will suppress this warning, call: hint:=20 hint: git config --global init.defaultBranch hint:=20 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this comman= d: hint:=20 hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.rKMEVZ/.git/ [master (root-commit) b144c36] first commit 1 file changed, 1 insertion(+) create mode 100644 .guix-channel [master 842b1fb] second commit 1 file changed, 1 insertion(+) create mode 100644 src/a.txt [master b6bba6f] third commit 1 file changed, 1 insertion(+) create mode 100644 news.scm [master fa33342] fourth commit 1 file changed, 1 insertion(+) create mode 100644 src/b.txt [master b20d3d5] fifth commit 1 file changed, 1 insertion(+), 1 deletion(-) test-name: channel-news, one entry location: /home/ck/tmp/guix/tests/channels.scm:323 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=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5)) + (list commit2 commit4)) + (lset=3D equal? + (map channel-news-entry-title + (channel-news-for-commit channel commit5)) + '((("en" . "Another file!")) + (("en" . "Old news.") ("eo" . "Malnova?oj.")))) + (lset=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3)) + (list commit2)) + (lset=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3 commit1= )) + (list commit2)) + (lset=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit3= )) + (list commit4)) + (lset=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit1= )) + (list commit4 commit2)) + (lset=3D equal? + (map channel-news-entry-tag + (channel-news-for-commit channel commit5 commit1= )) + '(#f "tag-for-first-news-entry"))))))) actual-value: #f result: FAIL hint: Using 'master' as the name for the initial branch. This default branc= h name hint: is subject to change. To configure the initial branch name to use in = all hint: of your new repositories, which will suppress this warning, call: hint:=20 hint: git config --global init.defaultBranch hint:=20 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this comman= d: hint:=20 hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.uJnVw7/.git/ [master (root-commit) 50fcf19] first commit 2 files changed, 2 insertions(+) create mode 100644 .guix-channel create mode 100644 src/a.txt [master 7cdd555] second commit 1 file changed, 1 insertion(+) create mode 100644 news.scm test-name: channel-news, annotated tag location: /home/ck/tmp/guix/tests/channels.scm:411 source: + (test-assert + "channel-news, annotated tag" + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel (version 0) (news-file "news.scm")))) + (add "src/a.txt" "A") + (commit "first commit") + (tag "tag-for-first-news-entry" + "This is an annotated tag.") + (add "news.scm" + ,(lambda (repository) + (let ((previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (tag "tag-for-first-news-entry") + (title (en "New file!")) + (body (en "Yeah, a.txt.")))))))) + (commit "second 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"))) + (and (null? (channel-news-for-commit channel commit1)) + (lset=3D equal? + (map channel-news-entry-title + (channel-news-for-commit channel commit2)) + '((("en" . "New file!")))) + (lset=3D string=3D? + (map channel-news-entry-tag + (channel-news-for-commit channel commit2)) + (list "tag-for-first-news-entry")) + (lset=3D string=3D? + (map channel-news-entry-commit + (channel-news-for-commit channel commit2)) + (list commit1))))))) actual-value: #t result: PASS hint: Using 'master' as the name for the initial branch. This default branc= h name hint: is subject to change. To configure the initial branch name to use in = all hint: of your new repositories, which will suppress this warning, call: hint:=20 hint: git config --global init.defaultBranch hint:=20 hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this comman= d: hint:=20 hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.bnMluk/.git/ [master (root-commit) 5918529] first commit 1 file changed, 1 insertion(+) create mode 100644 a.txt [master 353ea72] second commit 1 file changed, 1 insertion(+) create mode 100644 b.scm test-name: latest-channel-instances, missing introduction for 'guix' location: /home/ck/tmp/guix/tests/channels.scm:458 source: + (test-assert + "latest-channel-instances, missing introduction for 'guix'" + (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")) + (channel + (channel + (url (string-append "file://" directory)) + (name 'guix)))) + (guard (c ((formatted-message? c) + (->bool + (string-contains + (formatted-message-string c) + "introduction")))) + (with-store + store + (latest-channel-instances store (list channel)) + #f)))))) actual-value: #t result: PASS test-name: authenticate-channel, wrong first commit signer location: /home/ck/tmp/guix/tests/channels.scm:479 source: + (test-equal + "authenticate-channel, wrong first commit signer" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-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))) + (add "random" ,(random-text)) + (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")) + (intro (make-channel-introduction + (commit-id-string commit1) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-2-public-key-file= )))) + (channel + (channel + (name 'example) + (url (string-append "file://" directory)) + (introduction intro)))) + (guard (c ((formatted-message? c) + (and (string-contains + (formatted-message-string c) + "initial commit") + (equal? + (formatted-message-arguments c) + (list (oid->string (commit-id commit1)) + (key-fingerprint %ed25519-public-key-fi= le) + (key-fingerprint + %ed25519-2-public-key-file)))))) + (authenticate-channel + channel + directory + (commit-id-string commit2) + #:keyring-reference-prefix + "") + 'failed)))))) result: SKIP test-name: authenticate-channel, not a descendant of introductory commit location: /home/ck/tmp/guix/tests/channels.scm:529 source: + (test-equal + "authenticate-channel, not a descendant of introductory commit" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-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))) + (branch "alternate-branch") + (checkout "alternate-branch") + (add "something.txt" ,(random-text)) + (commit + "intro commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (checkout "master") + (add "random" ,(random-text)) + (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")) + (commit0 + (commit-lookup + repository + (reference-target + (branch-lookup repository "alternate-branch")))) + (intro (make-channel-introduction + (commit-id-string commit0) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-public-key-file))= )) + (channel + (channel + (name 'example) + (url (string-append "file://" directory)) + (introduction intro)))) + (guard (c ((formatted-message? c) + (and (string-contains + (formatted-message-string c) + "not a descendant") + (equal? + (formatted-message-arguments c) + (list (oid->string (commit-id commit2)) + (oid->string (commit-id commit0))))))) + (authenticate-channel + channel + directory + (commit-id-string commit2) + #:keyring-reference-prefix + "") + 'failed)))))) result: SKIP test-name: authenticate-channel, .guix-authorizations location: /home/ck/tmp/guix/tests/channels.scm:587 source: + (test-equal + "authenticate-channel, .guix-authorizations" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-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 %ed25519-2-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 + %ed25519-2-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 (make-channel-introduction + (commit-id-string commit1) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-public-key-file))= )) + (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=3D? (git-authentication-error-commit = c) + (commit-id commit3)) + (bytevector=3D? + (openpgp-public-key-fingerprint + (unauthorized-commit-error-signing-key= c)) + (openpgp-public-key-fingerprint + (read-openpgp-packet + %ed25519-2-public-key-file)))))) + (authenticate-channel + channel + directory + (commit-id-string commit3) + #:keyring-reference-prefix + "") + 'failed))))))) result: SKIP test-name: latest-channel-instances, authenticate dependency location: /home/ck/tmp/guix/tests/channels.scm:656 source: + (test-equal + "latest-channel-instances, authenticate dependency" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file) + (with-temporary-git-repository + dependency-directory + `((add ".guix-channel" + ,(object->string + '(channel + (version 0) + (keyring-reference "master")))) + (add ".guix-authorizations" + ,(object->string `(authorizations (version 0) ()))) + (add "signer.key" + ,(call-with-input-file + %ed25519-public-key-file + get-string-all)) + (commit + "zeroth commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (add "foo.txt" "evil") + (commit "unsigned commit")) + (with-repository + dependency-directory + dependency + (let* ((commit0 (find-commit dependency "zeroth")) + (commit1 (find-commit dependency "unsigned")) + (intro `(channel-introduction + (version 0) + (commit ,(commit-id-string commit0)) + (signer + ,(openpgp-format-fingerprint + (openpgp-public-key-fingerprint + (read-openpgp-packet + %ed25519-public-key-file))))))) + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + `(channel + (version 0) + (dependencies + (channel + (name test-channel) + (url ,dependency-directory) + (introduction ,intro)))))) + (commit "single commit")) + (let ((channel (channel (name 'test) (url directory)))) + (guard (c ((unsigned-commit-error? c) + (oid=3D? (git-authentication-error-commit c) + (commit-id commit1)))) + (with-store + store + (latest-channel-instances store (list channel)) + 'failed))))))))) result: SKIP 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.u= BzMmx'... Updating channel 'guix' from Git repository at 'file:///tmp/guix-directory.= bnMluk'... FAIL: tests/texlive =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (package (inherit (simple-texlive-package "texlive-texsis" (list "bibtex/bs= t/texsis/" "doc/man/man1/" "doc/otherformats/texsis/base/" "tex/texsis/base= /" "tex/texsis/config/") (base32 "17ckkii656y2g1h5h8lc1bsy10a0bfgnsakhxii4h= xfmvrfvc097") #:trivial? #t)) (version "59745") (propagated-inputs (list te= xlive-cm texlive-hyphen-base texlive-knuth-lib texlive-plain texlive-tex)) = (home-page "https://www.tug.org/texlive/") (synopsis "Plain TeX macros for = Physicists") (description "TeXsis is a TeX macro package which provides use= ful features for typesetting\nresearch papers and related documents. For e= xample, it includes support\nspecifically for: Automatic numbering of equat= ions, figures, tables and\nreferences; Simplified control of type sizes, li= ne spacing, footnotes, running\nheadlines and footlines, and tables of cont= ents, figures and tables; Specialized\ndocument formats for research papers= , preprints and \"e-prints\", conference\nproceedings, theses, books, refer= ee reports, letters, and memoranda; Simplified\nmeans of constructing an in= dex for a book or thesis; Easy to use double column\nformatting; Specialize= d environments for lists, theorems and proofs, centered or\nnon-justified t= ext, and listing computer code; Specialized macros for easily\nconstructing= ruled tables. TeXsis was originally developed for physicists, but\nothers= may also find it useful. It is completely compatible with Plain TeX.") (l= icense lppl)) ;;; (fail (package (inherit (simple-texlive-package "texlive-texsis" (list = "bibtex/bst/texsis/" "doc/man/man1/" "doc/otherformats/texsis/base/" "tex/t= exsis/base/" "tex/texsis/config/") (base32 "17ckkii656y2g1h5h8lc1bsy10a0bfg= nsakhxii4hxfmvrfvc097") #:trivial? #t)) (version "59745") (propagated-input= s (list texlive-cm texlive-hyphen-base texlive-knuth-lib texlive-plain texl= ive-tex)) (home-page "https://www.tug.org/texlive/") (synopsis "Plain TeX m= acros for Physicists") (description "TeXsis is a TeX macro package which pr= ovides useful features for typesetting\nresearch papers and related documen= ts. For example, it includes support\nspecifically for: Automatic numberin= g of equations, figures, tables and\nreferences; Simplified control of type= sizes, line spacing, footnotes, running\nheadlines and footlines, and tabl= es of contents, figures and tables; Specialized\ndocument formats for resea= rch papers, preprints and \"e-prints\", conference\nproceedings, theses, bo= oks, referee reports, letters, and memoranda; Simplified\nmeans of construc= ting an index for a book or thesis; Easy to use double column\nformatting; = Specialized environments for lists, theorems and proofs, centered or\nnon-j= ustified text, and listing computer code; Specialized macros for easily\nco= nstructing ruled tables. TeXsis was originally developed for physicists, b= ut\nothers may also find it useful. It is completely compatible with Plain= TeX.") (license lppl)) #f) test-name: texlive->guix-package location: /home/ck/tmp/guix/tests/texlive.scm:161 source: + (test-assert + "texlive->guix-package" + (mock ((guix build svn) + svn-fetch + (lambda* (url + revision + directory + #:key + (svn-command "svn") + (user-name #f) + (password #f) + (recursive? #t)) + (mkdir-p directory) + (with-output-to-file + (string-append directory "/foo") + (lambda () (display "source"))))) + (let ((result + (texlive->guix-package + "texsis" + #:package-database + (lambda _ %fake-tlpdb)))) + (match result + (('package + ('inherit + ('simple-texlive-package + "texlive-texsis" + ('list + "bibtex/bst/texsis/" + "doc/man/man1/" + "doc/otherformats/texsis/base/" + "tex/texsis/base/" + "tex/texsis/config/") + ('base32 (? string? hash)) + #:trivial? + #t)) + ('propagated-inputs + ('list + 'texlive-cm + 'texlive-hyphen-base + 'texlive-knuth-lib + 'texlive-plain + 'texlive-tex)) + ('home-page "https://www.tug.org/texlive/") + ('synopsis "Plain TeX macros for Physicists") + ('description (? string? description)) + ('license 'lppl)) + #t) + (_ (begin + (format #t "~s~%" result) + (pk 'fail result #f))))))) actual-value: #f result: FAIL --=-=-= Content-Type: text/plain Am I doing anything wrong? I tried reading the results but cannot figure out what is wrong. . [1] https://guix.gnu.org/manual/en/html_node/Building-from-Git.html Thank you Chris --=-=-=--