X-Loop: help-debbugs@HIDDEN Subject: [bug#75302] [PATCH] packages: Match renamed origin fields. Resent-From: Herman Rimm <herman@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN Resent-Date: Thu, 02 Jan 2025 21:05:02 +0000 Resent-Message-ID: <handler.75302.B.17358518751284 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 75302 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75302 <at> debbugs.gnu.org Cc: Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> X-Debbugs-Original-To: guix-patches@HIDDEN X-Debbugs-Original-Xcc: Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Received: via spool by submit <at> debbugs.gnu.org id=B.17358518751284 (code B ref -1); Thu, 02 Jan 2025 21:05:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Jan 2025 21:04:35 +0000 Received: from localhost ([127.0.0.1]:46936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tTSMs-0000Kd-CT for submit <at> debbugs.gnu.org; Thu, 02 Jan 2025 16:04:34 -0500 Received: from lists.gnu.org ([2001:470:142::17]:39800) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <herman@HIDDEN>) id 1tTSMq-0000KG-HR for submit <at> debbugs.gnu.org; Thu, 02 Jan 2025 16:04:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <herman@HIDDEN>) id 1tTSMj-0000G3-W9 for guix-patches@HIDDEN; Thu, 02 Jan 2025 16:04:26 -0500 Received: from 81-205-150-117.fixed.kpn.net ([81.205.150.117] helo=email.rimm.ee) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from <herman@HIDDEN>) id 1tTSMi-0008O0-1m for guix-patches@HIDDEN; Thu, 02 Jan 2025 16:04:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rimm.ee; s=herman; t=1735851854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jpQS70OFVIGuC8+bJ72hAEd/0CPrwbhQ9XeZ1ISfVrA=; b=ontfzeMo3pX/Rn2FbgMxTBLRVZ5HOn1NDTdhP5FqkvcgCw1bR3zGGyJeUCPYPuhDYLt5wN uQGNqqdAG8ciK972GOUSjOlUNUDApBT7YI1O2pG/QeXKZ6HNKlJfOh81ehI0mAWvOId2mi FVbNklULbR8pcfBapsgnMN4GMkj83zx6oCE/HPAzGMydezmqjZPGJ0AG5f3ZkFA5yKe7Lt WS2hqrNhNYBFnOYwb/TRW9R/07eckZJEJX2+vM3P/jUxbNtJqRZatycu6PeoIsgbVV9Hcn 2J8U6c7UTmPoXQxFZa4Qa0z62TANvnU1+TPP8g3ThzUT1wSgBM0gQSN+4/Pl3w== Received: by 81-205-150-117.fixed.kpn.net (OpenSMTPD) with ESMTPSA id 2074d839 (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO) for <guix-patches@HIDDEN>; Thu, 2 Jan 2025 21:04:14 +0000 (UTC) From: Herman Rimm <herman@HIDDEN> Date: Thu, 2 Jan 2025 22:03:30 +0100 Message-ID: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> X-Mailer: git-send-email 2.45.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=81.205.150.117; envelope-from=herman@HIDDEN; helo=email.rimm.ee 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, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TVD_RCVD_IP=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.1 (/) * guix/packages.scm (print-origin, origin->derivation): Use match-record. Change-Id: Ia554dd3264f51e549df51f767c754040b3dc7611 --- Hello, Three tests in (tests packages) fail as before: "package-source-derivation, local-file" "package-source-derivation, origin, sha512" "package-source-derivation, origin, sha3-512" Cheers, Herman guix/packages.scm | 59 ++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/guix/packages.scm b/guix/packages.scm index ff9fbd84709..6088457b20b 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2022 jgart <jgart@HIDDEN> ;;; Copyright © 2023 Simon Tournier <zimon.toutoune@HIDDEN> ;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@HIDDEN> +;;; Copyright © 2025 Herman Rimm <herman@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -359,12 +360,10 @@ (define-syntax-rule (origin fields ...) (define (print-origin origin port) "Write a concise representation of ORIGIN to PORT." - (match origin - (($ <origin> uri method hash file-name patches) - (simple-format port "#<origin ~s ~a ~s ~a>" - uri hash - (force patches) - (number->string (object-address origin) 16))))) + (match-record origin <origin> (uri method hash file-name patches) + (simple-format port "#<origin ~s ~a ~s ~a>" + uri hash patches + (number->string (object-address origin) 16)))) (set-record-type-printer! <origin> print-origin) @@ -2151,31 +2150,29 @@ (define-gexp-compiler (package-compiler (package <package>) system target) (define* (origin->derivation origin #:optional (system (%current-system))) "Return the derivation corresponding to ORIGIN." - (match origin - (($ <origin> uri method hash name (= force ()) #f) - ;; No patches, no snippet: this is a fixed-output derivation. - (method uri - (content-hash-algorithm hash) - (content-hash-value hash) - name #:system system)) - (($ <origin> uri method hash name (= force (patches ...)) snippet - flags inputs (modules ...) guile-for-build) - ;; Patches and/or a snippet. - (mlet %store-monad ((source (method uri - (content-hash-algorithm hash) - (content-hash-value hash) - name #:system system)) - (guile (package->derivation (or guile-for-build - (default-guile)) - system - #:graft? #f))) - (patch-and-repack source patches - #:inputs inputs - #:snippet snippet - #:flags flags - #:system system - #:modules modules - #:guile-for-build guile))))) + (match-record origin <origin> + (uri method hash file-name patches patch-flags patch-inputs + patch-guile snippet modules) + (let* ((hash-algo (content-hash-algorithm hash)) + (hash (content-hash-value hash)) + (source (method uri hash-algo hash file-name + #:system system))) + (if (or snippet (pair? patches)) + (mlet %store-monad + ((guile (package->derivation (or patch-guile + (default-guile)) + system + #:graft? #f)) + (source source)) + (patch-and-repack source patches + #:inputs patch-inputs + #:snippet snippet + #:flags patch-flags + #:system system + #:modules modules + #:guile-for-build guile)) + ;; This is a fixed-output derivation. + source)))) (define-gexp-compiler (origin-compiler (origin <origin>) system target) ;; Compile ORIGIN to a derivation for SYSTEM. This is used when referring base-commit: 5d7455bb580eed41a4fa7c20b71eaccad9f49e73 -- 2.45.2
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Herman Rimm <herman@HIDDEN> Subject: bug#75302: Acknowledgement ([PATCH] packages: Match renamed origin fields.) Message-ID: <handler.75302.B.17358518751284.ack <at> debbugs.gnu.org> References: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> X-Gnu-PR-Message: ack 75302 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 75302 <at> debbugs.gnu.org Date: Thu, 02 Jan 2025 21:05:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. As you requested using X-Debbugs-CC, your message was also forwarded to Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>,= Ludovic Court=C3=A8s <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, = Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@tobias= .gr> (after having been given a bug report number, if it did not have one). Your message has been sent to the package maintainer(s): guix-patches@HIDDEN If you wish to submit further information on this problem, please send it to 75302 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 75302: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75302 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: [bug#75302] [PATCH] packages: Match renamed origin fields. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Sat, 04 Jan 2025 21:00:02 +0000 Resent-Message-ID: <handler.75302.B75302.173602437017652 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75302 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Herman Rimm <herman@HIDDEN> Cc: Josselin Poiret <dev@HIDDEN>, 75302 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> Received: via spool by 75302-submit <at> debbugs.gnu.org id=B75302.173602437017652 (code B ref 75302); Sat, 04 Jan 2025 21:00:02 +0000 Received: (at 75302) by debbugs.gnu.org; 4 Jan 2025 20:59:30 +0000 Received: from localhost ([127.0.0.1]:57634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tUBF4-0004ad-96 for submit <at> debbugs.gnu.org; Sat, 04 Jan 2025 15:59:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60008) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tUBF1-0004aQ-TZ for 75302 <at> debbugs.gnu.org; Sat, 04 Jan 2025 15:59:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tUBEt-0004u3-JJ; Sat, 04 Jan 2025 15:59:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=gznYBvyFMMmtzI8biTucCTCcpt7xtalX1AiqIowCGmk=; b=BCmnrO6aEYBwW143sq64 ABdWEbLHjR1BQYOaTBArSv3AVZqYGohr3Sx/2p2Sc8sQbMrId/7WogXZ8ikw55Vyeh6Ph2d39b6i/ vcKPjQfLby1lJvspIj4pVWcjTmcSNSexVYKR7LRPTZjCKoqqGB9HYojkxReVSFm8IgIN9nqws58+C 7YM3lVmUpkO+rM4qL1EZwPrfhmEnsxXEcWpYcGd1VlPhisOtudjCEcfzv3sjnJ8CchLJP8XvJIYev d+GSvPrp/K8hNGMTKW9XxkGtkPos4oFCVxynGGL6chyMV4EVy1g/qF1fQOCSVIFG3w88BShdD6FCr HeLLeMASxTGiQw==; From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> In-Reply-To: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> (Herman Rimm's message of "Thu, 2 Jan 2025 22:03:30 +0100") References: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> Date: Sat, 04 Jan 2025 21:59:13 +0100 Message-ID: <87h66epa72.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi, Herman Rimm <herman@HIDDEN> skribis: > * guix/packages.scm (print-origin, origin->derivation): Use > match-record. > > Change-Id: Ia554dd3264f51e549df51f767c754040b3dc7611 The patch LGTM but, (1) fields haven=E2=80=99t been renamed recently, and= =E2=80=A6 > Three tests in (tests packages) fail as before: > "package-source-derivation, local-file" > "package-source-derivation, origin, sha512" > "package-source-derivation, origin, sha3-512" =E2=80=A6 (2) I don=E2=80=99t see these failures as of b8858d8b1344525d0d7ac78d8fb9dc1a577b85d3. Could you provide more details about these? Thanks, Ludo=E2=80=99.
X-Loop: help-debbugs@HIDDEN Subject: [bug#75302] [PATCH] packages: Match renamed origin fields. Resent-From: Herman Rimm <herman@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Mon, 06 Jan 2025 18:50:02 +0000 Resent-Message-ID: <handler.75302.B75302.173618939616366 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75302 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Cc: 75302 <at> debbugs.gnu.org Received: via spool by 75302-submit <at> debbugs.gnu.org id=B75302.173618939616366 (code B ref 75302); Mon, 06 Jan 2025 18:50:02 +0000 Received: (at 75302) by debbugs.gnu.org; 6 Jan 2025 18:49:56 +0000 Received: from localhost ([127.0.0.1]:40074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tUsAh-0004Fl-8u for submit <at> debbugs.gnu.org; Mon, 06 Jan 2025 13:49:56 -0500 Received: from 81-205-150-117.fixed.kpn.net ([81.205.150.117]:33345 helo=email.rimm.ee) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <herman@HIDDEN>) id 1tUsAa-0004F6-5o for 75302 <at> debbugs.gnu.org; Mon, 06 Jan 2025 13:49:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rimm.ee; s=herman; t=1736189369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W8R+e8dJZXPfbAlZl4vBKA1Ds07EERAKKbpargnmFzw=; b=prY0vjVDe1g6ijilRvpNCVlMG39NudAbz1zxdHujurhlacXuVpiPZEfEQCX4hBOV6uaCbE WKut0GVyDn9SmcfgtJmFwg9mIp2lzt3mW+MsjWBFcUp4yGUBnZjJYyS2QgtCRcUZ1Y4Usz J2UavhWLSjzKZQ2REembAsT2d1cf6MnkY9xXzo5G5yF8K40Uu/jaUJR6RekobFquXR4rXY 6Tjq+dp6SjbvXYNBepLjjbtjHzvcVzVr+wH5pIg+X8BPUiCt3xLR4QDOULcCPdQWW1Kytm tplEwMglBWkOwQmwTpP1F961B1WSruqJkm9yLfyxoDiOs2N1r43PFhrwv7hmPQ== Received: by 81-205-150-117.fixed.kpn.net (OpenSMTPD) with ESMTPSA id 54d144f3 (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Mon, 6 Jan 2025 18:49:29 +0000 (UTC) Date: Mon, 6 Jan 2025 19:48:46 +0100 From: Herman Rimm <herman@HIDDEN> Message-ID: <pir4su3fxpi27nh4zsrly5bzu4a6zadjruod6uct7phdm3eikf@xiblxxsl7a4q> References: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> <87h66epa72.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="scw34k2xpbd75e33" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87h66epa72.fsf@HIDDEN> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --scw34k2xpbd75e33 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hello, On Sat, Jan 04, 2025 at 09:59:13PM +0100, Ludovic Courtès wrote: > The patch LGTM but, (1) fields haven’t been renamed recently, and… I misunderstood how (match _ (($ _) _)) works. Can you amend the commit to start like: 'packages: Replace match with match-record.', instead? > > Three tests in (tests packages) fail as before: > > "package-source-derivation, local-file" > > "package-source-derivation, origin, sha512" > > "package-source-derivation, origin, sha3-512" > > … (2) I don’t see these failures as of > b8858d8b1344525d0d7ac78d8fb9dc1a577b85d3. In a checkout at b8858d8b1344525d0d7ac78d8fb9dc1a577b85d3 with this patch applied, running: guix shell -CPWN ./pre-inst-env guix repl < tests/packages.scm I get the three errors mentioned, see attached log. I run the tests like this because running: guix shell -CPWN make check TESTS="tests/packages.scm" returns: make check-recursive make[1]: Entering directory '/home/herman/git/guix' Making check in po/guix make[2]: Entering directory '/home/herman/git/guix/po/guix' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/herman/git/guix/po/guix' Making check in po/packages make[2]: Entering directory '/home/herman/git/guix/po/packages' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/herman/git/guix/po/packages' make[2]: Entering directory '/home/herman/git/guix' Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... [ 77%] LOAD gnu.scm ice-9/eval.scm:293:34: error: diff: unbound variable hint: Did you forget a `use-modules' form? make[2]: *** [Makefile:7518: make-system-go] Error 1 make[2]: Leaving directory '/home/herman/git/guix' make[1]: *** [Makefile:6553: check-recursive] Error 1 make[1]: Leaving directory '/home/herman/git/guix' make: *** [Makefile:7027: check] Error 2 Cheers, Herman --scw34k2xpbd75e33 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="packages.log" Content-Transfer-Encoding: quoted-printable %%%% Starting test packages Group begin: packages Test begin: test-name: "printer with location" source-line: 85 source-form: (test-assert "printer with location" (string-match "^#<packa= ge foo@0 foo.scm:42 [[:xdigit:]]+>$" (with-output-to-string (lambda () (wri= te (dummy-package "foo" (location (make-location "foo.scm" 42 7)))))))) Test end: result-kind: pass actual-value: #("#<package foo@0 foo.scm:42 7feecae619a0>" (0 . 40)) Test begin: test-name: "printer without location" source-line: 93 source-form: (test-assert "printer without location" (string-match "^#<pa= ckage foo@0 [[:xdigit:]]+>$" (with-output-to-string (lambda () (write (dumm= y-package "foo" (location #f))))))) Test end: result-kind: pass actual-value: #("#<package foo@0 7feecae61840>" (0 . 29)) Test begin: test-name: "license type checking" source-line: 100 source-form: (test-equal "license type checking" (quote bad-license) (gua= rd (c ((package-license-error? c) (package-error-invalid-license c))) (dumm= y-package "foo" (license (quote bad-license))))) Test end: result-kind: pass actual-value: bad-license expected-value: bad-license Test begin: test-name: "hidden-package" source-line: 107 source-form: (test-assert "hidden-package" (and (hidden-package? (hidden-= package (dummy-package "foo"))) (not (hidden-package? (dummy-package "foo")= )))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-superseded" source-line: 111 source-form: (test-assert "package-superseded" (let* ((new (dummy-package= "bar")) (old (deprecated-package "foo" new))) (and (eq? (package-supersede= d old) new) (mock ((gnu packages) find-best-packages-by-name (const (list o= ld))) (specification->package "foo") (and (eq? new (specification->package = "foo")) (eq? new (specification->package+output "foo"))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, zero upgrades" source-line: 120 source-form: (test-assert "transaction-upgrade-entry, zero upgrades" (let= * ((old (dummy-package "foo" (version "1"))) (tx (mock ((gnu packages) find= -best-packages-by-name (const (quote ()))) (transaction-upgrade-entry #f (m= anifest-entry (inherit (package->manifest-entry old)) (item (string-append = (%store-prefix) "/" (make-string 32 #\e) "-foo-1"))) (manifest-transaction)= )))) (manifest-transaction-null? tx))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, zero upgrades, equivalent package" source-line: 133 source-form: (test-assert "transaction-upgrade-entry, zero upgrades, equi= valent package" (let* ((old (dummy-package "foo" (version "1"))) (drv (pack= age-derivation %store old)) (tx (mock ((gnu packages) find-best-packages-by= -name (const (list old))) (transaction-upgrade-entry %store (manifest-entry= (inherit (package->manifest-entry old)) (item (derivation->output-path drv= ))) (manifest-transaction))))) (manifest-transaction-null? tx))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, zero upgrades, propagated inputs" source-line: 146 source-form: (test-assert "transaction-upgrade-entry, zero upgrades, prop= agated inputs" (let* ((dep (dummy-package "dep" (version "2"))) (old (dummy= -package "foo" (version "1") (propagated-inputs (list dep)))) (drv (package= -derivation %store old)) (tx (mock ((gnu packages) find-best-packages-by-na= me (const (list old))) (transaction-upgrade-entry %store (manifest-entry (i= nherit (package->manifest-entry old)) (item (derivation->output-path drv)) = (dependencies (list (manifest-entry (inherit (package->manifest-entry dep))= (item (derivation->output-path (package-derivation %store dep))))))) (mani= fest-transaction))))) (manifest-transaction-null? tx))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, one upgrade" source-line: 168 source-form: (test-assert "transaction-upgrade-entry, one upgrade" (let* = ((old (dummy-package "foo" (version "1"))) (new (dummy-package "foo" (versi= on "2"))) (tx (mock ((gnu packages) find-best-packages-by-name (const (list= new))) (transaction-upgrade-entry #f (manifest-entry (inherit (package->ma= nifest-entry old)) (item (string-append (%store-prefix) "/" (make-string 32= #\e) "-foo-1"))) (manifest-transaction))))) (and (match (manifest-transact= ion-install tx) ((($ <manifest-entry> "foo" "2" "out" item)) (eq? item new)= )) (null? (manifest-transaction-remove tx))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, superseded package" source-line: 185 source-form: (test-assert "transaction-upgrade-entry, superseded package"= (let* ((old (dummy-package "foo" (version "1"))) (new (dummy-package "bar"= (version "2"))) (dep (deprecated-package "foo" new)) (tx (mock ((gnu packa= ges) find-best-packages-by-name (const (list dep))) (transaction-upgrade-en= try #f (manifest-entry (inherit (package->manifest-entry old)) (item (strin= g-append (%store-prefix) "/" (make-string 32 #\e) "-foo-1"))) (manifest-tra= nsaction))))) (and (match (manifest-transaction-install tx) ((($ <manifest-= entry> "bar" "2" "out" item)) (eq? item new))) (match (manifest-transaction= -remove tx) (((? manifest-pattern? pattern)) (and (string=3D? (manifest-pat= tern-name pattern) "foo") (string=3D? (manifest-pattern-version pattern) "1= ") (string=3D? (manifest-pattern-output pattern) "out"))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "transaction-upgrade-entry, transformation options preserved" source-line: 207 source-form: (test-equal "transaction-upgrade-entry, transformation optio= ns preserved" (derivation-file-name (package-derivation %store grep)) (let*= ((old (dummy-package "emacs" (version "1"))) (props (quote ((transformatio= ns (with-input . "emacs=3Dgrep"))))) (tx (transaction-upgrade-entry %store = (manifest-entry (inherit (package->manifest-entry old)) (properties props) = (item (string-append (%store-prefix) "/" (make-string 32 #\e) "-foo-1"))) (= manifest-transaction)))) (match (manifest-transaction-install tx) (((? mani= fest-entry? entry)) (and (string=3D? (manifest-entry-version entry) (packag= e-version grep)) (string=3D? (manifest-entry-name entry) (package-name grep= )) (equal? (manifest-entry-properties entry) props) (derivation-file-name (= package-derivation %store (manifest-entry-item entry)))))))) Test end: result-kind: pass actual-value: "/gnu/store/89g815zm0040xv4b0yb8v0qragx7kf6s-grep-3.11.drv" expected-value: "/gnu/store/89g815zm0040xv4b0yb8v0qragx7kf6s-grep-3.11.dr= v" Test begin: test-name: "transaction-upgrade-entry, grafts" source-line: 230 source-form: (test-assert "transaction-upgrade-entry, grafts" (with-build= -handler (const (quote failed!)) (parameterize ((%graft? #t)) (let* ((old (= dummy-package "foo" (version "1"))) (bar (dummy-package "bar" (version "0")= (replacement old))) (new (dummy-package "foo" (version "1") (inputs (list = bar)))) (tx (mock ((gnu packages) find-best-packages-by-name (const (list n= ew))) (transaction-upgrade-entry %store (manifest-entry (inherit (package->= manifest-entry old)) (item (string-append (%store-prefix) "/" (make-string = 32 #\e) "-foo-1"))) (manifest-transaction))))) (and (match (manifest-transa= ction-install tx) ((($ <manifest-entry> "foo" "1" "out" item)) (eq? item ne= w))) (null? (manifest-transaction-remove tx))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-definition-location" source-line: 254 source-form: (test-assert "package-definition-location" (let ((location (= package-location hello)) (definition (package-definition-location hello))) = (and (string=3D? (location-file location) (location-file definition)) (=3D = 0 (location-column definition)) (=3D 2 (location-column location)) (=3D (lo= cation-line definition) (- (location-line location) 1))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-field-location" source-line: 265 source-form: (test-assert "package-field-location" (let () (define (goto = port line column) (unless (and (=3D (port-column port) (- column 1)) (=3D (= port-line port) (- line 1))) (unless (eof-object? (get-char port)) (goto po= rt line column)))) (define read-at (match-lambda (($ <location> file line c= olumn) (call-with-input-file (search-path %load-path file) (lambda (port) (= goto port line column) (read port)))))) (and (member (read-at (package-fiel= d-location %bootstrap-guile (quote name))) (let ((name (package-name %boots= trap-guile))) (list name (quasiquote (name (unquote name)))))) (member (rea= d-at (package-field-location %bootstrap-guile (quote version))) (let ((vers= ion (package-version %bootstrap-guile))) (list version (quasiquote (version= (unquote version)))))) (not (package-field-location %bootstrap-guile (quot= e does-not-exist)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-field-location, relative file name" source-line: 292 source-form: (test-equal "package-field-location, relative file name" (lo= cation-file (package-location %bootstrap-guile)) (with-fluids ((%file-port-= name-canonicalization (quote absolute))) (location-file (package-field-loca= tion %bootstrap-guile (quote version))))) Test end: result-kind: pass actual-value: "gnu/packages/bootstrap.scm" expected-value: "gnu/packages/bootstrap.scm" Test begin: test-name: "package-transitive-inputs" source-line: 297 source-form: (test-assert "package-transitive-inputs" (let* ((a (dummy-pa= ckage "a")) (b (dummy-package "b" (propagated-inputs (list a)))) (c (dummy-= package "c" (inputs (list a)))) (d (dummy-package "d" (propagated-inputs (q= uasiquote (("x" "something.drv")))))) (e (dummy-package "e" (inputs (list b= c d))))) (and (null? (package-transitive-inputs a)) (equal? (quasiquote ((= "a" (unquote a)))) (package-transitive-inputs b)) (equal? (quasiquote (("a"= (unquote a)))) (package-transitive-inputs c)) (equal? (package-propagated-= inputs d) (package-transitive-inputs d)) (equal? (quasiquote (("b" (unquote= b)) ("c" (unquote c)) ("d" (unquote d)) ("a" (unquote a)) ("x" "something.= drv"))) (pk (quote x) (package-transitive-inputs e)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-transitive-inputs, no duplicates" source-line: 316 source-form: (test-assert "package-transitive-inputs, no duplicates" (let= * ((a (dummy-package "a")) (b (dummy-package "b" (inputs (quasiquote (("a+"= (unquote a))))) (native-inputs (quasiquote (("a*" (unquote a))))) (propaga= ted-inputs (quasiquote (("a" (unquote a))))))) (c (dummy-package "c" (propa= gated-inputs (quasiquote (("b" (unquote b))))))) (d (dummy-package "d" (inp= uts (quasiquote (("a" (unquote a)) ("c" (unquote c))))))) (e (dummy-package= "e" (inputs (quasiquote (("b" (unquote b)) ("c" (unquote c)))))))) (and (n= ull? (package-transitive-inputs a)) (equal? (quasiquote (("a*" (unquote a))= ("a+" (unquote a)) ("a" (unquote a)))) (package-transitive-inputs b)) (equ= al? (quasiquote (("b" (unquote b)) ("a" (unquote a)))) (package-transitive-= inputs c)) (equal? (quasiquote (("a" (unquote a)) ("c" (unquote c)) ("b" (u= nquote b)))) (package-transitive-inputs d)) (equal? (quasiquote (("b" (unqu= ote b)) ("c" (unquote c)) ("a" (unquote a)))) (package-transitive-inputs e)= )))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-transitive-supported-systems" source-line: 338 source-form: (test-equal "package-transitive-supported-systems" (quote ((= "x" "y" "z") ("x" "y") ("y") ("y") ("y"))) (let* ((a (dummy-package "a" (bu= ild-system trivial-build-system) (supported-systems (quote ("x" "y" "z"))))= ) (b (dummy-package "b" (build-system trivial-build-system) (supported-syst= ems (quote ("x" "y"))) (inputs (list a)))) (c (dummy-package "c" (build-sys= tem trivial-build-system) (supported-systems (quote ("y" "z"))) (inputs (li= st b)))) (d (dummy-package "d" (build-system trivial-build-system) (support= ed-systems (quote ("x" "y" "z"))) (inputs (list b c)))) (e (dummy-package "= e" (build-system trivial-build-system) (supported-systems (quote ("x" "y" "= z"))) (inputs (list d))))) (list (package-transitive-supported-systems a) (= package-transitive-supported-systems b) (package-transitive-supported-syste= ms c) (package-transitive-supported-systems d) (package-transitive-supporte= d-systems e)))) Test end: result-kind: pass actual-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y")) expected-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y")) Test begin: test-name: "package-transitive-supported-systems detects cycles" source-line: 371 source-form: (test-equal "package-transitive-supported-systems detects cy= cles" (quote ("c" "a" "b" "c")) (letrec* ((a (dummy-package "a" (build-syst= em trivial-build-system) (native-inputs (list c)))) (b (dummy-package "b" (= build-system trivial-build-system) (inputs (list a)))) (c (dummy-package "c= " (build-system trivial-build-system) (inputs (list b))))) (guard (c ((pack= age-cyclic-dependency-error? c) (map package-name (cons (package-error-pack= age c) (package-error-dependency-cycle c))))) (package-transitive-supported= -systems c)))) Test end: result-kind: pass actual-value: ("c" "a" "b" "c") expected-value: ("c" "a" "b" "c") Test begin: test-name: "package-development-inputs" source-line: 388 source-form: (test-assert "package-development-inputs" (lset<=3D equal? (= quasiquote (("source" (unquote (package-source hello))) (unquote-splicing (= standard-packages)))) (package-development-inputs hello))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-development-inputs, cross-compilation" source-line: 395 source-form: (test-assert "package-development-inputs, cross-compilation"= (lset<=3D equal? (quasiquote (("source" (unquote (package-source hello))) = (unquote-splicing (standard-cross-packages "mips64el-linux-gnu" (quote host= ))) (unquote-splicing (standard-cross-packages "mips64el-linux-gnu" (quote = target))))) (package-development-inputs hello #:target "mips64el-linux-gnu"= ))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-closure" source-line: 402 source-form: (test-assert "package-closure" (let-syntax ((dummy-package/n= o-implicit (syntax-rules () ((_ name rest ...) (package (inherit (dummy-pac= kage name rest ...)) (build-system trivial-build-system)))))) (let* ((a (du= mmy-package/no-implicit "a")) (b (dummy-package/no-implicit "b" (propagated= -inputs (list a)))) (c (dummy-package/no-implicit "c" (inputs (list a)))) (= d (dummy-package/no-implicit "d" (native-inputs (list b)))) (e (dummy-packa= ge/no-implicit "e" (inputs (list c d))))) (lset=3D eq? (list a b c d e) (pa= ckage-closure (list e)) (package-closure (list e d)) (package-closure (list= e c b)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "origin-actual-file-name" source-line: 424 source-form: (test-equal "origin-actual-file-name" "foo-1.tar.gz" (let ((= o (dummy-origin (uri "http://www.example.com/foo-1.tar.gz")))) (origin-actu= al-file-name o))) Test end: result-kind: pass actual-value: "foo-1.tar.gz" expected-value: "foo-1.tar.gz" Test begin: test-name: "origin-actual-file-name, file-name" source-line: 429 source-form: (test-equal "origin-actual-file-name, file-name" "foo-1.tar.= gz" (let ((o (dummy-origin (uri "http://www.example.com/tarball") (file-nam= e "foo-1.tar.gz")))) (origin-actual-file-name o))) Test end: result-kind: pass actual-value: "foo-1.tar.gz" expected-value: "foo-1.tar.gz" Test begin: test-name: "package-direct-sources, no source" source-line: 448 source-form: (test-assert "package-direct-sources, no source" (null? (pac= kage-direct-sources a))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-direct-sources, #f source" source-line: 450 source-form: (test-equal "package-direct-sources, #f source" (list i) (pa= ckage-direct-sources b)) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590780>) expected-value: (#<origin "http://www.example.com" #<content-hash sha256:= 1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590780>) Test begin: test-name: "package-direct-sources, not input source" source-line: 453 source-form: (test-equal "package-direct-sources, not input source" (list= u) (package-direct-sources d)) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590840>) expected-value: (#<origin "http://www.example.com" #<content-hash sha256:= 1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590840>) Test begin: test-name: "package-direct-sources" source-line: 456 source-form: (test-assert "package-direct-sources" (let ((s (package-dire= ct-sources c))) (and (=3D (length (pk (quote s-sources) s)) 2) (member o s)= (member i s)))) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590780>) Test begin: test-name: "package-direct-sources, with patches" source-line: 461 source-form: (test-assert "package-direct-sources, with patches" (let ((s= (package-direct-sources e))) (and (=3D (length (pk (quote s-sources) s)) 2= ) (member o s) (member j s)))) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> (#<origin "http://www.e= xample.com" #<content-hash sha256:1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= xxxxxxxxxxx> () 7feecb590900>) 7feecb590660> #<origin "http://www.example.c= om" #<content-hash sha256:1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= xxx> () 7feecb590900>) Test begin: test-name: "package-direct-sources, with patches and inputs" source-line: 466 source-form: (test-assert "package-direct-sources, with patches and input= s" (let ((s (package-direct-sources f))) (and (=3D (length (pk (quote s-sou= rces) s)) 3) (member o s) (member j s) (member u s)))) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590840>) Test begin: test-name: "package-transitive-sources" source-line: 472 source-form: (test-assert "package-transitive-sources" (let ((s (package-= transitive-sources d))) (and (=3D (length (pk (quote d-sources) s)) 3) (mem= ber o s) (member i s) (member u s)))) Test end: result-kind: pass actual-value: (#<origin "http://www.example.com" #<content-hash sha256:1x= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590840> #<orig= in "http://www.example.com" #<content-hash sha256:1xxxxxxxxxxxxxxxxxxxxxxxx= xxxxxxxxxxxxxxxxxxxxxxxxxxx> () 7feecb590900> #<origin "http://www.example.= com" #<content-hash sha256:1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= xxxx> () 7feecb590780>) Test begin: test-name: "transitive-input-references" source-line: 479 source-form: (test-assert "transitive-input-references" (let* ((a (dummy-= package "a")) (b (dummy-package "b")) (c (dummy-package "c" (inputs (quasiq= uote (("a" (unquote a))))) (propagated-inputs (quasiquote (("boo" (unquote = b))))))) (d (dummy-package "d" (inputs (quasiquote (("c*" (unquote c)))))))= (keys (map (match-lambda (((quote assoc-ref) (quote l) key) key)) (pk (quo= te refs) (transitive-input-references (quote l) (package-inputs d)))))) (an= d (=3D (length keys) 2) (member "c*" keys) (member "boo" keys)))) Test end: result-kind: pass actual-value: ("boo") Test begin: test-name: "package-transitive-supported-systems, implicit inputs" source-line: 496 source-form: (test-equal "package-transitive-supported-systems, implicit = inputs" (filter target-linux? %supported-systems) (let ((p (dummy-package "= foo" (build-system gnu-build-system) (supported-systems (quasiquote ("does-= not-exist" "foobar" (unquote-splicing %supported-systems))))))) (parameteri= ze ((%current-system "armhf-linux")) (package-transitive-supported-systems = p)))) Test end: result-kind: pass actual-value: ("x86_64-linux" "mips64el-linux" "aarch64-linux" "powerpc64= le-linux" "riscv64-linux" "i686-linux" "armhf-linux" "powerpc-linux") expected-value: ("x86_64-linux" "mips64el-linux" "aarch64-linux" "powerpc= 64le-linux" "riscv64-linux" "i686-linux" "armhf-linux" "powerpc-linux") Test begin: test-name: "package-transitive-supported-systems: reduced binary seed, im= plicit inputs" source-line: 508 source-form: (test-equal "package-transitive-supported-systems: reduced b= inary seed, implicit inputs" (quote ("x86_64-linux" "i686-linux")) (let ((p= (dummy-package "foo" (build-system gnu-build-system) (supported-systems (q= uasiquote ("does-not-exist" "foobar" (unquote-splicing %supported-systems))= ))))) (parameterize ((%current-system "x86_64-linux")) (package-transitive-= supported-systems p)))) Test end: result-kind: pass actual-value: ("x86_64-linux" "i686-linux") expected-value: ("x86_64-linux" "i686-linux") Test begin: test-name: "supported-package?" source-line: 520 source-form: (test-assert "supported-package?" (let* ((d (dummy-package "= dep" (build-system trivial-build-system) (supported-systems (quote ("x86_64= -linux"))))) (p (dummy-package "foo" (build-system gnu-build-system) (input= s (list d)) (supported-systems (quote ("x86_64-linux" "armhf-linux")))))) (= and (supported-package? p "x86_64-linux") (not (supported-package? p "i686-= linux")) (not (supported-package? p "armhf-linux"))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "supported-package? vs. system-dependent graph" source-line: 532 source-form: (test-assert "supported-package? vs. system-dependent graph"= (let* ((p0a (dummy-package "foo-arm" (build-system trivial-build-system) (= supported-systems (quote ("armhf-linux"))))) (p0b (dummy-package "foo-x86_6= 4" (build-system trivial-build-system) (supported-systems (quote ("x86_64-l= inux"))))) (p (dummy-package "bar" (build-system trivial-build-system) (inp= uts (if (string=3D? (%current-system) "armhf-linux") (quasiquote (("foo" (u= nquote p0a)))) (quasiquote (("foo" (unquote p0b))))))))) (and (supported-pa= ckage? p "x86_64-linux") (supported-package? p "armhf-linux")))) Test end: result-kind: pass actual-value: ("armhf-linux") Test begin: test-name: "supported-package? vs. %current-target-system" source-line: 552 source-form: (test-assert "supported-package? vs. %current-target-system"= (parameterize ((%current-target-system "arm-linux-gnueabihf")) (let ((p (d= ummy-package "foo" (build-system gnu-build-system) (supported-systems (quot= e ("x86_64-linux" "armhf-linux")))))) (and (supported-package? p "x86_64-li= nux") (not (supported-package? p "i686-linux")) (supported-package? p "armh= f-linux"))))) Test end: result-kind: pass actual-value: ("armhf-linux") Test begin: test-name: "package-source-derivation, file" source-line: 564 source-form: (test-assert "package-source-derivation, file" (let* ((file = (search-path %load-path "guix.scm")) (package (package (inherit (dummy-pack= age "p")) (source file))) (source (package-source-derivation %store (packag= e-source package)))) (and (store-path? source) (valid-path? %store source) = (equal? (call-with-input-file source get-bytevector-all) (call-with-input-f= ile file get-bytevector-all))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-source-derivation, store path" source-line: 575 source-form: (test-assert "package-source-derivation, store path" (let* (= (file (add-to-store %store "guix.scm" #t "sha256" (search-path %load-path "= guix.scm"))) (package (package (inherit (dummy-package "p")) (source file))= ) (source (package-source-derivation %store (package-source package)))) (st= ring=3D? file source))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-source-derivation, indirect store path" source-line: 584 source-form: (test-assert "package-source-derivation, indirect store path= " (let* ((dir (add-to-store %store "guix-build" #t "sha256" (dirname (searc= h-path %load-path "guix/build/utils.scm")))) (package (package (inherit (du= mmy-package "p")) (source (string-append dir "/utils.scm")))) (source (pack= age-source-derivation %store (package-source package)))) (and (direct-store= -path? source) (string-suffix? "utils.scm" source)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-source-derivation, local-file" source-line: 595 source-form: (test-assert "package-source-derivation, local-file" (let* (= (file (local-file "../guix/base32.scm")) (package (package (inherit (dummy-= package "p")) (source file))) (source (package-source-derivation %store (pa= ckage-source package)))) (and (store-path? source) (string-suffix? "base32.= scm" source) (valid-path? %store source) (equal? (call-with-input-file sour= ce get-bytevector-all) (call-with-input-file (search-path %load-path "guix/= base32.scm") get-bytevector-all))))) Test end: result-kind: fail actual-value: #f actual-error: (system-error "canonicalize-path" "~A: ~S" ("No such file o= r directory" "../guix/base32.scm") (2)) Test begin: test-name: "package-source-derivation, origin, sha512" source-line: 609 source-form: (test-equal "package-source-derivation, origin, sha512" "hel= lo" (let* ((bash (search-bootstrap-binary "bash" (%current-system))) (build= er (add-text-to-store %store "my-fixed-builder.sh" "echo -n hello > $out" (= quote ()))) (method (lambda* (url hash-algo hash #:optional name #:rest res= t) (and (eq? hash-algo (quote sha512)) (raw-derivation name bash (list buil= der) #:sources (list builder) #:hash hash #:hash-algo hash-algo)))) (source= (origin (method method) (uri "unused://") (file-name "origin-sha512") (has= h (content-hash (gcrypt:bytevector-hash (string->utf8 "hello") (gcrypt:look= up-hash-algorithm (quote sha512))) sha512)))) (drv (package-source-derivati= on %store source)) (output (derivation->output-path drv))) (build-derivatio= ns %store (list drv)) (call-with-input-file output get-string-all))) Test end: result-kind: fail actual-value: #f actual-error: (%exception #<&store-protocol-error message: "build of `/gn= u/store/km82fxzrhcc67hnsyrskwvlpgsy2fscz-origin-sha512.drv' failed" status:= 1>) expected-value: "hello" Test begin: test-name: "package-source-derivation, origin, sha3-512" source-line: 635 source-form: (test-equal "package-source-derivation, origin, sha3-512" "h= ello, sha3" (let* ((bash (search-bootstrap-binary "bash" (%current-system))= ) (builder (add-text-to-store %store "my-fixed-builder.sh" "echo -n hello, = sha3 > $out" (quote ()))) (method (lambda* (url hash-algo hash #:optional n= ame #:rest rest) (and (eq? hash-algo (quote sha3-512)) (raw-derivation name= bash (list builder) #:sources (list builder) #:hash hash #:hash-algo hash-= algo)))) (source (origin (method method) (uri "unused://") (file-name "orig= in-sha3") (hash (content-hash (gcrypt:bytevector-hash (string->utf8 "hello,= sha3") (gcrypt:lookup-hash-algorithm (quote sha3-512))) sha3-512)))) (drv = (package-source-derivation %store source)) (output (derivation->output-path= drv))) (build-derivations %store (list drv)) (call-with-input-file output = get-string-all))) Test end: result-kind: fail actual-value: #f actual-error: (%exception #<&store-protocol-error message: "build of `/gn= u/store/bcpj7ha0ipcc6nd1mqyj0ca50ldh7wjp-origin-sha3.drv' failed" status: 1= >) expected-value: "hello, sha3" Test begin: test-name: "package-upstream-name*" source-line: 661 source-form: (test-equal "package-upstream-name*" (package-upstream-name*= (specification->package "guile-gcrypt")) "gcrypt") Test end: result-kind: pass actual-value: "gcrypt" expected-value: "gcrypt" Test begin: test-name: "package-source-derivation, snippet" source-line: 671 source-form: (test-equal "package-source-derivation, snippet" "OK" (let* = ((source (bootstrap-origin (origin (inherit (bootstrap-guile-origin (%curre= nt-system))) (patch-inputs (quasiquote (("tar" (unquote %bootstrap-coreutil= s&co)) ("xz" (unquote %bootstrap-coreutils&co)) ("patch" (unquote %bootstra= p-coreutils&co))))) (patch-guile %bootstrap-guile) (modules (quote ((guix b= uild utils)))) (snippet (quote (begin (chmod "." 511) (symlink "guile" "gui= le-rocks") (copy-recursively "../share/guile/2.0/scripts" "scripts") (chmod= ".." 511))))))) (package (package (inherit (dummy-package "with-snippet"))= (source source) (build-system trivial-build-system) (inputs (quasiquote ((= "tar" (unquote (search-bootstrap-binary "tar" (%current-system)))) ("xz" (u= nquote (search-bootstrap-binary "xz" (%current-system))))))) (arguments (qu= asiquote (#:guile (unquote %bootstrap-guile) #:modules ((guix build utils))= #:builder (begin (use-modules (guix build utils)) (let ((tar (assoc-ref %b= uild-inputs "tar")) (xz (assoc-ref %build-inputs "xz")) (source (assoc-ref = %build-inputs "source"))) (invoke tar "xvf" source "--use-compress-program"= xz) (unless (and (string=3D? "guile" (readlink "bin/guile-rocks")) (file-e= xists? "bin/scripts/compile.scm")) (error "the snippet apparently failed"))= (let ((out (assoc-ref %outputs "out"))) (call-with-output-file out (lambda= (p) (display "OK" p)))) #t))))))) (drv (package-derivation %store package)= ) (out (derivation->output-path drv))) (and (build-derivations %store (list= (pk (quote snippet-drv) drv))) (call-with-input-file out get-string-all)))) Test end: result-kind: pass actual-value: "OK" expected-value: "OK" Test begin: test-name: "origin->derivation, single file with snippet (compression: gz= ip)" source-line: 736 source-form: (test-equal (string-append "origin->derivation, single file = with snippet " "(compression: " (if comp comp "None") ")") "2 + 2 =3D 4" (l= et*-values (((name) "maths") ((compressed-name) (if comp (string-append nam= e "." ext) name)) ((file hash) (test-file %store compressed-name "2 + 2 =3D= 5")) ((source) (origin (method url-fetch) (uri (string-append "file://" fi= le)) (file-name compressed-name) (patch-inputs (quasiquote (("tar" (unquote= %bootstrap-coreutils&co)) ("xz" (unquote %bootstrap-coreutils&co)) ("bzip2= " (unquote %bootstrap-coreutils&co)) ("gzip" (unquote %bootstrap-coreutils&= co))))) (patch-guile %bootstrap-guile) (modules (quote ((guix build utils))= )) (snippet (quasiquote (substitute* (unquote name) (("5") "4")))) (hash (c= ontent-hash hash)))) ((drv) (run-with-store %store (origin->derivation sour= ce))) ((out) (derivation->output-path drv))) (and (build-derivations %store= (list drv)) (if (tarball? out) (let* ((bin (gexp (string-append (ungexp-na= tive %bootstrap-coreutils&co) "/bin"))) (f (computed-file name (with-import= ed-modules (quote ((guix build utils))) (gexp (begin (use-modules (guix bui= ld utils)) (setenv "PATH" (ungexp-native bin)) (invoke "tar" "xvf" (ungexp-= native out)) (copy-file (ungexp-native name) (ungexp output))))) #:guile %b= ootstrap-guile)) (drv (run-with-store %store (lower-object f))) (_ (build-d= erivations %store (list drv)))) (call-with-input-file (derivation->output-p= ath drv) get-string-all)) (call-with-input-file out get-string-all))))) Test end: result-kind: pass actual-value: "2 + 2 =3D 4" expected-value: "2 + 2 =3D 4" Test begin: test-name: "origin->derivation, single file with snippet (compression: xz= )" source-line: 736 source-form: (test-equal (string-append "origin->derivation, single file = with snippet " "(compression: " (if comp comp "None") ")") "2 + 2 =3D 4" (l= et*-values (((name) "maths") ((compressed-name) (if comp (string-append nam= e "." ext) name)) ((file hash) (test-file %store compressed-name "2 + 2 =3D= 5")) ((source) (origin (method url-fetch) (uri (string-append "file://" fi= le)) (file-name compressed-name) (patch-inputs (quasiquote (("tar" (unquote= %bootstrap-coreutils&co)) ("xz" (unquote %bootstrap-coreutils&co)) ("bzip2= " (unquote %bootstrap-coreutils&co)) ("gzip" (unquote %bootstrap-coreutils&= co))))) (patch-guile %bootstrap-guile) (modules (quote ((guix build utils))= )) (snippet (quasiquote (substitute* (unquote name) (("5") "4")))) (hash (c= ontent-hash hash)))) ((drv) (run-with-store %store (origin->derivation sour= ce))) ((out) (derivation->output-path drv))) (and (build-derivations %store= (list drv)) (if (tarball? out) (let* ((bin (gexp (string-append (ungexp-na= tive %bootstrap-coreutils&co) "/bin"))) (f (computed-file name (with-import= ed-modules (quote ((guix build utils))) (gexp (begin (use-modules (guix bui= ld utils)) (setenv "PATH" (ungexp-native bin)) (invoke "tar" "xvf" (ungexp-= native out)) (copy-file (ungexp-native name) (ungexp output))))) #:guile %b= ootstrap-guile)) (drv (run-with-store %store (lower-object f))) (_ (build-d= erivations %store (list drv)))) (call-with-input-file (derivation->output-p= ath drv) get-string-all)) (call-with-input-file out get-string-all))))) Test end: result-kind: pass actual-value: "2 + 2 =3D 4" expected-value: "2 + 2 =3D 4" Test begin: test-name: "origin->derivation, single file with snippet (compression: bz= ip2)" source-line: 736 source-form: (test-equal (string-append "origin->derivation, single file = with snippet " "(compression: " (if comp comp "None") ")") "2 + 2 =3D 4" (l= et*-values (((name) "maths") ((compressed-name) (if comp (string-append nam= e "." ext) name)) ((file hash) (test-file %store compressed-name "2 + 2 =3D= 5")) ((source) (origin (method url-fetch) (uri (string-append "file://" fi= le)) (file-name compressed-name) (patch-inputs (quasiquote (("tar" (unquote= %bootstrap-coreutils&co)) ("xz" (unquote %bootstrap-coreutils&co)) ("bzip2= " (unquote %bootstrap-coreutils&co)) ("gzip" (unquote %bootstrap-coreutils&= co))))) (patch-guile %bootstrap-guile) (modules (quote ((guix build utils))= )) (snippet (quasiquote (substitute* (unquote name) (("5") "4")))) (hash (c= ontent-hash hash)))) ((drv) (run-with-store %store (origin->derivation sour= ce))) ((out) (derivation->output-path drv))) (and (build-derivations %store= (list drv)) (if (tarball? out) (let* ((bin (gexp (string-append (ungexp-na= tive %bootstrap-coreutils&co) "/bin"))) (f (computed-file name (with-import= ed-modules (quote ((guix build utils))) (gexp (begin (use-modules (guix bui= ld utils)) (setenv "PATH" (ungexp-native bin)) (invoke "tar" "xvf" (ungexp-= native out)) (copy-file (ungexp-native name) (ungexp output))))) #:guile %b= ootstrap-guile)) (drv (run-with-store %store (lower-object f))) (_ (build-d= erivations %store (list drv)))) (call-with-input-file (derivation->output-p= ath drv) get-string-all)) (call-with-input-file out get-string-all))))) Test end: result-kind: pass actual-value: "2 + 2 =3D 4" expected-value: "2 + 2 =3D 4" Test begin: test-name: "origin->derivation, single file with snippet (compression: No= ne)" source-line: 736 source-form: (test-equal (string-append "origin->derivation, single file = with snippet " "(compression: " (if comp comp "None") ")") "2 + 2 =3D 4" (l= et*-values (((name) "maths") ((compressed-name) (if comp (string-append nam= e "." ext) name)) ((file hash) (test-file %store compressed-name "2 + 2 =3D= 5")) ((source) (origin (method url-fetch) (uri (string-append "file://" fi= le)) (file-name compressed-name) (patch-inputs (quasiquote (("tar" (unquote= %bootstrap-coreutils&co)) ("xz" (unquote %bootstrap-coreutils&co)) ("bzip2= " (unquote %bootstrap-coreutils&co)) ("gzip" (unquote %bootstrap-coreutils&= co))))) (patch-guile %bootstrap-guile) (modules (quote ((guix build utils))= )) (snippet (quasiquote (substitute* (unquote name) (("5") "4")))) (hash (c= ontent-hash hash)))) ((drv) (run-with-store %store (origin->derivation sour= ce))) ((out) (derivation->output-path drv))) (and (build-derivations %store= (list drv)) (if (tarball? out) (let* ((bin (gexp (string-append (ungexp-na= tive %bootstrap-coreutils&co) "/bin"))) (f (computed-file name (with-import= ed-modules (quote ((guix build utils))) (gexp (begin (use-modules (guix bui= ld utils)) (setenv "PATH" (ungexp-native bin)) (invoke "tar" "xvf" (ungexp-= native out)) (copy-file (ungexp-native name) (ungexp output))))) #:guile %b= ootstrap-guile)) (drv (run-with-store %store (lower-object f))) (_ (build-d= erivations %store (list drv)))) (call-with-input-file (derivation->output-p= ath drv) get-string-all)) (call-with-input-file out get-string-all))))) Test end: result-kind: pass actual-value: "2 + 2 =3D 4" expected-value: "2 + 2 =3D 4" Test begin: test-name: "return value" source-line: 783 source-form: (test-assert "return value" (let ((drv (package-derivation %= store (dummy-package "p")))) (and (derivation? drv) (file-exists? (derivati= on-file-name drv))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-derivation, inputs deduplicated" source-line: 788 source-form: (test-assert "package-derivation, inputs deduplicated" (let*= ((dep (dummy-package "dep")) (p0 (dummy-package "p" (inputs (list dep)))) = (p1 (package (inherit p0) (inputs (quasiquote (("dep" (unquote (package (in= herit dep)))) (unquote-splicing (package-inputs p0)))))))) (string=3D? (der= ivation-file-name (package-derivation %store p0)) (derivation-file-name (pa= ckage-derivation %store p1))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-derivation, different system" source-line: 801 source-form: (test-assert "package-derivation, different system" (let* ((= system (if (string=3D? (%current-system) "x86_64-linux") "aarch64-linux" "x= 86_64-linux")) (drv (package-derivation %store (dummy-package "p") system #= :graft? #f))) (define right-system? (mlambdaq (drv) (and (string=3D? (deriv= ation-system drv) system) (every (compose right-system? derivation-input-de= rivation) (derivation-inputs drv))))) (right-system? drv))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-output" source-line: 816 source-form: (test-assert "package-output" (let* ((package (dummy-package= "p")) (drv (package-derivation %store package))) (and (derivation? drv) (s= tring=3D? (derivation->output-path drv) (package-output %store package "out= "))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "patch not found yields a run-time error" source-line: 823 source-form: (test-equal "patch not found yields a run-time error" (quote= ("~a: patch not found\n" "does-not-exist.patch")) (guard (c ((formatted-me= ssage? c) (cons (formatted-message-string c) (formatted-message-arguments c= )))) (let ((p (package (inherit (dummy-package "p")) (source (origin (metho= d (const #f)) (uri "http://whatever") (patches (list (search-patch "does-no= t-exist.patch"))) (sha256 (base32 "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kks= bh6bf78k4ks4"))))))) (package-derivation %store p) #f))) Test end: result-kind: pass actual-value: ("~a: patch not found\n" "does-not-exist.patch") expected-value: ("~a: patch not found\n" "does-not-exist.patch") Test begin: test-name: "&package-input-error" source-line: 842 source-form: (test-equal "&package-input-error" (list dummy (quasiquote (= "x" (unquote (current-module))))) (guard (c ((package-input-error? c) (list= (package-error-package c) (package-error-invalid-input c)))) (package-deri= vation %store dummy))) Test end: result-kind: pass actual-value: (#<package foo@0 7feec5502580> ("x" #<directory (tests pack= ages) 7feedcb7ca00>)) expected-value: (#<package foo@0 7feec5502580> ("x" #<directory (tests pa= ckages) 7feedcb7ca00>)) Test begin: test-name: "reference to non-existent output" source-line: 849 source-form: (test-assert "reference to non-existent output" (parameteriz= e ((%graft? #f)) (let* ((dep (dummy-package "dep")) (p (dummy-package "p" (= inputs (list (quasiquote ((unquote dep) "non-existent"))))))) (guard (c ((d= erivation-missing-output-error? c) (and (string=3D? (derivation-missing-out= put c) "non-existent") (equal? (package-derivation %store dep) (derivation-= error-derivation c))))) (package-derivation %store p))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial" source-line: 861 source-form: (test-assert "trivial" (let* ((p (package (inherit (dummy-pa= ckage "trivial")) (build-system trivial-build-system) (source #f) (argument= s (quasiquote (#:guile (unquote %bootstrap-guile) #:builder (begin (mkdir %= output) (call-with-output-file (string-append %output "/test") (lambda (p) = (display (quote (hello guix)) p))) #t)))))) (d (package-derivation %store p= ))) (and (build-derivations %store (list d)) (let ((p (pk (quote drv) d (de= rivation->output-path d)))) (equal? (quote (hello guix)) (call-with-input-f= ile (string-append p "/test") read)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial with local file as input" source-line: 880 source-form: (test-assert "trivial with local file as input" (let* ((i (s= earch-path %load-path "ice-9/boot-9.scm")) (p (package (inherit (dummy-pack= age "trivial-with-input-file")) (build-system trivial-build-system) (source= #f) (arguments (quasiquote (#:guile (unquote %bootstrap-guile) #:builder (= begin (copy-file (assoc-ref %build-inputs "input") %output) #t)))) (inputs = (quasiquote (("input" (unquote i))))))) (d (package-derivation %store p))) = (and (build-derivations %store (list d)) (let ((p (pk (quote drv) d (deriva= tion->output-path d)))) (equal? (call-with-input-file p get-bytevector-all)= (call-with-input-file i get-bytevector-all)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial with source" source-line: 898 source-form: (test-assert "trivial with source" (let* ((i (search-path %l= oad-path "ice-9/boot-9.scm")) (p (package (inherit (dummy-package "trivial-= with-source")) (build-system trivial-build-system) (source i) (arguments (q= uasiquote (#:guile (unquote %bootstrap-guile) #:builder (begin (copy-file (= assoc-ref %build-inputs "source") %output) #t)))))) (d (package-derivation = %store p))) (and (build-derivations %store (list d)) (let ((p (derivation->= output-path d))) (equal? (call-with-input-file p get-bytevector-all) (call-= with-input-file i get-bytevector-all)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial with system-dependent input" source-line: 915 source-form: (test-assert "trivial with system-dependent input" (let* ((p= (package (inherit (dummy-package "trivial-system-dependent-input")) (build= -system trivial-build-system) (source #f) (arguments (quasiquote (#:guile (= unquote %bootstrap-guile) #:modules ((guix build utils)) #:builder (begin (= use-modules (guix build utils)) (let ((out (assoc-ref %outputs "out")) (bas= h (assoc-ref %build-inputs "bash"))) (invoke bash "-c" (format #f "echo hel= lo > ~a" out))))))) (inputs (quasiquote (("bash" (unquote (search-bootstrap= -binary "bash" (%current-system))))))))) (d (package-derivation %store p)))= (and (build-derivations %store (list d)) (let ((p (pk (quote drv) d (deriv= ation->output-path d)))) (eq? (quote hello) (call-with-input-file p read)))= ))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial with #:allowed-references" source-line: 936 source-form: (test-assert "trivial with #:allowed-references" (let* ((p (= package (inherit (dummy-package "trivial")) (build-system trivial-build-sys= tem) (arguments (quasiquote (#:guile (unquote %bootstrap-guile) #:allowed-r= eferences ((unquote %bootstrap-guile)) #:builder (begin (mkdir %output) (sy= mlink %output (string-append %output "/self")) #t)))))) (d (package-derivat= ion %store p))) (guard (c ((store-protocol-error? c) #t)) (build-derivation= s %store (list d)) #f))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "trivial with #:allowed-references + grafts" source-line: 955 source-form: (test-assert "trivial with #:allowed-references + grafts" (l= et* ((g (package (inherit %bootstrap-guile) (replacement (package (inherit = %bootstrap-guile) (version "9.9"))))) (p (package (inherit (dummy-package "= trivial")) (build-system trivial-build-system) (inputs (list g)) (arguments= (quasiquote (#:guile (unquote g) #:allowed-references ((unquote g)) #:buil= der (mkdir %output)))))) (d0 (package-derivation %store p #:graft? #f)) (d1= (parameterize ((%graft? #t)) (package-derivation %store p #:graft? #t)))) = (string=3D? (derivation-file-name d1) (derivation-file-name d0)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "search paths" source-line: 977 source-form: (test-assert "search paths" (let* ((p (make-prompt-tag "retu= rn-search-paths")) (t (make-parameter "guile-0")) (s (build-system (name (q= uote raw)) (description "Raw build system with direct store access") (lower= (lambda* (name #:key source inputs system target #:allow-other-keys) (bag = (name name) (system system) (target target) (build-inputs inputs) (build (l= ambda* (name inputs #:key outputs system search-paths) (if (string=3D? name= (t)) (abort-to-prompt p search-paths) (gexp->derivation name (gexp (mkdir = (ungexp output)))))))))))) (x (list (search-path-specification (variable "G= UILE_LOAD_PATH") (files (quote ("share/guile/site/2.0")))) (search-path-spe= cification (variable "GUILE_LOAD_COMPILED_PATH") (files (quote ("share/guil= e/site/2.0")))))) (a (package (inherit (dummy-package "guile")) (build-syst= em s) (native-search-paths x))) (b (package (inherit (dummy-package "guile-= foo")) (build-system s) (inputs (quasiquote (("guile" (unquote a))))))) (c = (package (inherit (dummy-package "guile-bar")) (build-system s) (inputs (qu= asiquote (("guile" (unquote a)) ("guile-foo" (unquote b)))))))) (let-syntax= ((collect (syntax-rules () ((_ body ...) (call-with-prompt p (lambda () bo= dy ...) (lambda (k search-paths) search-paths)))))) (and (null? (collect (p= ackage-derivation %store a))) (parameterize ((t "guile-foo-0")) (equal? x (= collect (package-derivation %store b)))) (parameterize ((t "guile-bar-0")) = (equal? x (collect (package-derivation %store c)))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-transitive-native-search-paths" source-line: 1025 source-form: (test-assert "package-transitive-native-search-paths" (let* = ((sp (lambda (name) (list (search-path-specification (variable name) (files= (quote ("foo/bar"))))))) (p0 (dummy-package "p0" (native-search-paths (sp = "PATH0")))) (p1 (dummy-package "p1" (native-search-paths (sp "PATH1")))) (p= 2 (dummy-package "p2" (native-search-paths (sp "PATH2")) (inputs (list p0))= (propagated-inputs (list p1)))) (p3 (dummy-package "p3" (native-search-pat= hs (sp "PATH3")) (native-inputs (list p0)) (propagated-inputs (list p2)))))= (lset=3D string=3D? (quote ("PATH1" "PATH2" "PATH3")) (map search-path-spe= cification-variable (package-transitive-native-search-paths p3))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-cross-derivation" source-line: 1045 source-form: (test-assert "package-cross-derivation" (let ((drv (package-= cross-derivation %store (dummy-package "p") "mips64el-linux-gnu"))) (and (d= erivation? drv) (file-exists? (derivation-file-name drv))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-cross-derivation, trivial-build-system" source-line: 1051 source-form: (test-assert "package-cross-derivation, trivial-build-system= " (let ((p (package (inherit (dummy-package "p")) (build-system trivial-bui= ld-system) (arguments (quote (#:builder (exit 1))))))) (let ((drv (package-= cross-derivation %store p "mips64el-linux-gnu"))) (derivation? drv)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-cross-derivation, no cross builder" source-line: 1058 source-form: (test-assert "package-cross-derivation, no cross builder" (l= et* ((b (build-system (inherit trivial-build-system) (lower (const #f)))) (= p (package (inherit (dummy-package "p")) (build-system b)))) (guard (c ((pa= ckage-cross-build-system-error? c) (eq? (package-error-package c) p))) (pac= kage-cross-derivation %store p "mips64el-linux-gnu") #f))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-grafts, indirect grafts" source-line: 1086 source-form: (test-assert "package-grafts, indirect grafts" (let* ((new (= dummy-package "dep" (arguments (quote (#:implicit-inputs? #f))))) (dep (pac= kage (inherit new) (version "0.0"))) (dep* (package (inherit dep) (replacem= ent new))) (dummy (dummy-package "dummy" (arguments (quote (#:implicit-inpu= ts? #f))) (inputs (list dep*))))) (equal? (package-grafts %store dummy) (li= st (graft (origin (package-derivation %store dep)) (replacement (package-de= rivation %store new))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-grafts, indirect grafts, propagated inputs" source-line: 1119 source-form: (test-assert "package-grafts, indirect grafts, propagated in= puts" (let* ((new (dummy-package "dep" (arguments (quote (#:implicit-inputs= ? #f))))) (dep (package (inherit new) (version "0.0"))) (dep* (package (inh= erit dep) (replacement new))) (prop (dummy-package "propagated" (propagated= -inputs (list dep*)) (arguments (quote (#:implicit-inputs? #f))))) (dummy (= dummy-package "dummy" (arguments (quote (#:implicit-inputs? #f))) (inputs (= list prop))))) (equal? (package-grafts %store dummy) (list (graft (origin (= package-derivation %store dep)) (replacement (package-derivation %store new= ))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-grafts, same replacement twice" source-line: 1135 source-form: (test-assert "package-grafts, same replacement twice" (let* = ((new (dummy-package "dep" (version "1") (arguments (quote (#:implicit-inpu= ts? #f))))) (dep (package (inherit new) (version "0") (replacement new))) (= p1 (dummy-package "intermediate1" (arguments (quote (#:implicit-inputs? #f)= )) (inputs (list dep)))) (p2 (dummy-package "intermediate2" (arguments (quo= te (#:implicit-inputs? #f))) (inputs (list (package (inherit dep)))))) (p3 = (dummy-package "final" (arguments (quote (#:implicit-inputs? #f))) (inputs = (list p1 p2))))) (equal? (package-grafts %store p3) (list (graft (origin (p= ackage-derivation %store (package (inherit dep) (replacement #f)))) (replac= ement (package-derivation %store new))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-grafts, dependency on several outputs" source-line: 1159 source-form: (test-assert "package-grafts, dependency on several outputs"= (letrec* ((p0 (dummy-package "p0" (version "1.0") (replacement p0*) (argum= ents (quote (#:implicit-inputs? #f))) (outputs (quote ("out" "lib"))))) (p0= * (package (inherit p0) (version "1.1"))) (p1 (dummy-package "p1" (argument= s (quote (#:implicit-inputs? #f))) (inputs (list p0 (quasiquote ((unquote p= 0) "lib"))))))) (lset=3D equal? (pk (package-grafts %store p1)) (list (graf= t (origin (package-derivation %store p0)) (origin-output "out") (replacemen= t (package-derivation %store p0*)) (replacement-output "out")) (graft (orig= in (package-derivation %store p0)) (origin-output "lib") (replacement (pack= age-derivation %store p0*)) (replacement-output "lib")))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "replacement also grafted" source-line: 1182 source-form: (test-assert "replacement also grafted" (let* ((p1r (dummy-p= ackage "P1" (build-system trivial-build-system) (arguments (quasiquote (#:g= uile (unquote %bootstrap-guile) #:builder (let ((out (assoc-ref %outputs "o= ut"))) (mkdir out) (call-with-output-file (string-append out "/replacement"= ) (const #t)))))))) (p1 (package (inherit p1r) (name "p1") (replacement p1r= ) (arguments (quasiquote (#:guile (unquote %bootstrap-guile) #:builder (beg= in (mkdir (assoc-ref %outputs "out")) #t)))))) (p2r (dummy-package "P2" (bu= ild-system trivial-build-system) (inputs (list p1)) (arguments (quasiquote = (#:guile (unquote %bootstrap-guile) #:builder (let ((out (assoc-ref %output= s "out"))) (mkdir out) (chdir out) (symlink (assoc-ref %build-inputs "p1") = "p1") (call-with-output-file (string-append out "/replacement") (const #t))= )))))) (p2 (package (inherit p2r) (name "p2") (replacement p2r) (arguments = (quasiquote (#:guile (unquote %bootstrap-guile) #:builder (let ((out (assoc= -ref %outputs "out"))) (mkdir out) (chdir out) (symlink (assoc-ref %build-i= nputs "p1") "p1") #t)))))) (p3 (dummy-package "p3" (build-system trivial-bu= ild-system) (inputs (list p2)) (arguments (quasiquote (#:guile (unquote %bo= otstrap-guile) #:builder (let ((out (assoc-ref %outputs "out"))) (mkdir out= ) (chdir out) (symlink (assoc-ref %build-inputs "p2") "p2") #t))))))) (lset= =3D equal? (package-grafts %store p3) (list (graft (origin (package-derivat= ion %store p1 #:graft? #f)) (replacement (package-derivation %store p1r))) = (graft (origin (package-derivation %store p2 #:graft? #f)) (replacement (pa= ckage-derivation %store p2r #:graft? #t))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package->bag" source-line: 1279 source-form: (test-equal "package->bag" (parameterize ((%current-system "= foo86-hurd")) (quasiquote ("foo86-hurd" #f ((unquote (package-source gnu-ma= ke))) ((unquote (canonical-package glibc))) ((unquote (canonical-package co= reutils)))))) (let ((bag (package->bag gnu-make "foo86-hurd"))) (list (bag-= system bag) (bag-target bag) (assoc-ref (bag-build-inputs bag) "source") (a= ssoc-ref (bag-build-inputs bag) "libc") (assoc-ref (bag-build-inputs bag) "= coreutils")))) Test end: result-kind: pass actual-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.4.1.ta= r.gz" #<content-hash sha256:1cwgcmwdn7gqn5da2ia91gkyiqs9birr10sy5ykpkaxzcwf= zn5nx> ("/home/herman/git/guix/gnu/packages/patches/make-impure-dirs.patch"= ) 7feecb10a000>) (#<package glibc@HIDDEN gnu/packages/commencement.scm:3103 7= feec5502370>) (#<package coreutils@HIDDEN guix/build-system/gnu.scm:151 7feecb= 124210>)) expected-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.4.1.= tar.gz" #<content-hash sha256:1cwgcmwdn7gqn5da2ia91gkyiqs9birr10sy5ykpkaxzc= wfzn5nx> ("/home/herman/git/guix/gnu/packages/patches/make-impure-dirs.patc= h") 7feecb10a000>) (#<package glibc@HIDDEN gnu/packages/commencement.scm:3103= 7feec5502370>) (#<package coreutils@HIDDEN guix/build-system/gnu.scm:151 7fee= cb124210>)) Test begin: test-name: "package->bag, sensitivity to %current-target-system" source-line: 1289 source-form: (test-assert "package->bag, sensitivity to %current-target-s= ystem" (let* ((lower (lambda* (name #:key system target inputs native-input= s #:allow-other-keys) (and (not target) (bag (name name) (system system) (t= arget target) (build-inputs native-inputs) (host-inputs inputs) (build (lam= bda* (name inputs #:key system target #:allow-other-keys) (gexp->derivation= "foo" (gexp (mkdir (ungexp output)))))))))) (bs (build-system (name (quote= build-system-without-cross-compilation)) (description "Does not support cr= oss compilation.") (lower lower))) (dep (dummy-package "dep" (build-system = bs))) (pkg (dummy-package "example" (native-inputs (list dep)))) (do-not-bu= ild (lambda (continue store lst . _) lst))) (equal? (with-build-handler do-= not-build (parameterize ((%current-target-system "powerpc64le-linux-gnu") (= %graft? #t)) (package-cross-derivation %store pkg (%current-target-system) = #:graft? #t))) (with-build-handler do-not-build (package-cross-derivation %= store (package (inherit pkg)) "powerpc64le-linux-gnu" #:graft? #t))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package->bag, cross-compilation" source-line: 1322 source-form: (test-equal "package->bag, cross-compilation" (quasiquote ((= unquote (%current-system)) "foo86-hurd" ((unquote (package-source gnu-make)= )) ((unquote (canonical-package glibc))) ((unquote (canonical-package coreu= tils))))) (let ((bag (package->bag gnu-make (%current-system) "foo86-hurd")= )) (list (bag-system bag) (bag-target bag) (assoc-ref (bag-build-inputs bag= ) "source") (assoc-ref (bag-build-inputs bag) "libc") (assoc-ref (bag-build= -inputs bag) "coreutils")))) Test end: result-kind: pass actual-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make/m= ake-4.4.1.tar.gz" #<content-hash sha256:1cwgcmwdn7gqn5da2ia91gkyiqs9birr10s= y5ykpkaxzcwfzn5nx> ("/home/herman/git/guix/gnu/packages/patches/make-impure= -dirs.patch") 7feecb10a000>) (#<package glibc@HIDDEN gnu/packages/commencemen= t.scm:3103 7feecb126840>) (#<package coreutils@HIDDEN guix/build-system/gnu.sc= m:151 7feecb124210>)) expected-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make= /make-4.4.1.tar.gz" #<content-hash sha256:1cwgcmwdn7gqn5da2ia91gkyiqs9birr1= 0sy5ykpkaxzcwfzn5nx> ("/home/herman/git/guix/gnu/packages/patches/make-impu= re-dirs.patch") 7feecb10a000>) (#<package glibc@HIDDEN gnu/packages/commencem= ent.scm:3103 7feecb126840>) (#<package coreutils@HIDDEN guix/build-system/gnu.= scm:151 7feecb124210>)) Test begin: test-name: "package->bag, propagated inputs" source-line: 1332 source-form: (test-assert "package->bag, propagated inputs" (let* ((dep (= dummy-package "dep")) (prop (dummy-package "prop" (propagated-inputs (list = dep)))) (dummy (dummy-package "dummy" (inputs (list prop)))) (inputs (bag-t= ransitive-inputs (package->bag dummy #:graft? #f)))) (match (assoc "dep" in= puts) (("dep" package) (eq? package dep))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package->bag, sensitivity to %current-system" source-line: 1343 source-form: (test-assert "package->bag, sensitivity to %current-system" = (let* ((dep (dummy-package "dep" (propagated-inputs (if (string=3D? (%curre= nt-system) "i586-gnu") (quasiquote (("libxml2" (unquote libxml2)))) (quote = ()))))) (pkg (dummy-package "foo" (native-inputs (list dep)))) (bag (packag= e->bag pkg (%current-system) "i586-gnu"))) (equal? (parameterize ((%current= -system "x86_64-linux")) (bag-transitive-inputs bag)) (parameterize ((%curr= ent-system "i586-gnu")) (bag-transitive-inputs bag))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package->bag, sensitivity to %current-target-system" source-line: 1357 source-form: (test-assert "package->bag, sensitivity to %current-target-s= ystem" (let* ((dep (dummy-package "dep" (propagated-inputs (if (%current-ta= rget-system) (quasiquote (("libxml2" (unquote libxml2)))) (quote ()))))) (p= kg (dummy-package "foo" (native-inputs (list dep)))) (bag (package->bag pkg= (%current-system) "foo86-hurd"))) (equal? (parameterize ((%current-target-= system "foo64-gnu")) (bag-transitive-inputs bag)) (parameterize ((%current-= target-system #f)) (bag-transitive-inputs bag))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "bag->derivation" source-line: 1370 source-form: (test-assert "bag->derivation" (let ((store (open-connection= -for-tests))) (dynamic-wind (const #t) (lambda () (run-with-store store (pa= rameterize ((%graft? #f)) (let ((bag (package->bag gnu-make)) (drv (package= -derivation %store gnu-make))) (parameterize ((%current-system "foox86-hurd= ")) (mlet %store-monad ((bag-drv (bag->derivation bag))) (return (equal? dr= v bag-drv)))))) #:guile-for-build (%guile-for-build))) (lambda () (close-co= nnection store))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "bag->derivation, cross-compilation" source-line: 1378 source-form: (test-assert "bag->derivation, cross-compilation" (parameter= ize ((%graft? #f)) (let* ((target "mips64el-linux-gnu") (bag (package->bag = gnu-make (%current-system) target)) (drv (package-cross-derivation %store g= nu-make target))) (parameterize ((%current-system "foox86-hurd") (%current-= target-system "foo64-linux-gnu")) (mlet %store-monad ((bag-drv (bag->deriva= tion bag))) (return (equal? drv bag-drv))))))) Test end: result-kind: pass actual-value: #<procedure 7feec8625680 at <unknown port>:1385:8 (state)> Test begin: test-name: "GNU Make, bootstrap" source-line: 1390 source-form: (test-assert "GNU Make, bootstrap" (let ((gnu-make gnu-make-= for-tests)) (and (package? gnu-make) (or (location? (package-location gnu-m= ake)) (not (package-location gnu-make))) (let* ((drv (package-derivation %s= tore gnu-make)) (out (derivation->output-path drv))) (and (build-derivation= s %store (list drv)) (file-exists? (string-append out "/bin/make"))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-mapping" source-line: 1402 source-form: (test-equal "package-mapping" 42 (let* ((dep (dummy-package = "chbouib" (native-inputs (quasiquote (("x" (unquote grep))))))) (p0 (dummy-= package "example" (source 77) (inputs (quasiquote (("foo" (unquote coreutil= s)) ("bar" (unquote grep)) ("baz" (unquote dep))))))) (transform (lambda (p= ) (package (inherit p) (source 42)))) (rewrite (package-mapping transform))= (p1 (rewrite p0)) (bag0 (package->bag p0)) (bag1 (package->bag p1))) (and = (eq? p1 (rewrite p0)) (eqv? 42 (package-source p1)) (equal? (drop (bag-dire= ct-inputs bag0) 4) (drop (bag-direct-inputs bag1) 4)) (match (package-input= s p1) ((("foo" dep1) ("bar" dep2) ("baz" dep3)) (and (eq? dep1 (rewrite cor= eutils)) (eq? dep2 (rewrite grep)) (eq? dep3 (rewrite dep)) (eqv? 42 (packa= ge-source dep1) (package-source dep2) (package-source dep3)) (match (packag= e-native-inputs dep3) ((("x" dep)) (and (eq? dep (rewrite grep)) (package-s= ource dep)))))))))) Test end: result-kind: pass actual-value: 42 expected-value: 42 Test begin: test-name: "package-mapping, deep" source-line: 1438 source-form: (test-equal "package-mapping, deep" (quote (42)) (let* ((p0 = (dummy-package "example" (inputs (quasiquote (("foo" (unquote coreutils)) (= "bar" (unquote grep))))))) (transform (lambda (p) (package (inherit p) (sou= rce 42)))) (rewrite (package-mapping transform #:deep? #t)) (p1 (rewrite p0= )) (bag (package->bag p1))) (and (eq? p1 (rewrite p0)) (match (bag-direct-i= nputs bag) ((("source" 42) ("foo" dep1) ("bar" dep2) rest ..1) (and (eq? de= p1 (rewrite coreutils)) (eq? dep2 (rewrite grep)) (=3D 42 (package-source d= ep1)) (=3D 42 (package-source dep2)) (delete-duplicates (map (match-lambda = ((_ package . _) (package-source package))) rest)))))))) Test end: result-kind: pass actual-value: (42) expected-value: (42) Test begin: test-name: "package-input-rewriting" source-line: 1463 source-form: (test-assert "package-input-rewriting" (let* ((dep (dummy-pa= ckage "chbouib" (native-inputs (quasiquote (("x" (unquote grep))))))) (p0 (= dummy-package "example" (inputs (quasiquote (("foo" (unquote coreutils)) ("= bar" (unquote grep)) ("baz" (unquote dep))))))) (rewrite (package-input-rew= riting (quasiquote (((unquote coreutils) unquote sed) ((unquote grep) unquo= te findutils))) (cut string-append "r-" <>) #:deep? #f)) (p1 (rewrite p0)) = (p2 (rewrite p0))) (and (not (eq? p1 p0)) (eq? p1 p2) (string=3D? "r-exampl= e" (package-name p1)) (match (package-inputs p1) ((("foo" dep1) ("bar" dep2= ) ("baz" dep3)) (and (eq? dep1 sed) (eq? dep2 findutils) (string=3D? (packa= ge-name dep3) "r-chbouib") (eq? dep3 (rewrite dep)) (match (package-native-= inputs dep3) ((("x" dep)) (eq? dep findutils)))))) (equal? (drop (bag-direc= t-inputs (package->bag p1)) 3) (drop (bag-direct-inputs (package->bag p0)) = 3))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting, deep" source-line: 1493 source-form: (test-eq "package-input-rewriting, deep" (derivation-file-na= me (package-derivation %store sed)) (let* ((p0 (dummy-package "chbouib" (bu= ild-system python-build-system) (arguments (quasiquote (#:python (unquote p= ython)))))) (rewrite (package-input-rewriting (quasiquote (((unquote python= ) unquote sed))))) (p1 (rewrite p0))) (match (bag-direct-inputs (package->b= ag p1)) ((("python" python) _ ...) (derivation-file-name (package-derivatio= n %store python)))))) Test end: result-kind: pass actual-value: "/gnu/store/dvxkd0p86wqcyzvws7lcams6bbbq6gli-sed-4.8.drv" expected-value: "/gnu/store/dvxkd0p86wqcyzvws7lcams6bbbq6gli-sed-4.8.drv" Test begin: test-name: "package-input-rewriting, recursive" source-line: 1504 source-form: (test-assert "package-input-rewriting, recursive" (let* ((de= p (dummy-package "dep" (native-inputs (list grep)))) (p0 (dummy-package "ex= ample1" (inputs (list dep grep)))) (p1 (dummy-package "example2" (inputs (l= ist dep grep)))) (replacements (quasiquote (((unquote grep) unquote finduti= ls) ((unquote p0) unquote p1)))) (rewrite (package-input-rewriting replacem= ents)) (rewrite/recursive (package-input-rewriting replacements #:recursive= ? #t)) (p2 (rewrite p0)) (p3 (rewrite/recursive p0))) (and (string=3D? (pac= kage-name p2) "example2") (match (package-inputs p2) ((("dep" dep1) ("grep"= dep2)) (and (match (package-native-inputs dep1) ((("grep" x)) (eq? x grep)= )) (eq? dep2 grep)))) (string=3D? (package-name p3) "example2") (match (pac= kage-inputs p3) ((("dep" dep1) ("grep" dep2)) (and (match (package-native-i= nputs dep1) ((("grep" x)) (string=3D? (package-full-name x) (package-full-n= ame findutils)))) (string=3D? (package-full-name dep2) (package-full-name f= indutils)))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec" source-line: 1534 source-form: (test-assert "package-input-rewriting/spec" (let* ((dep (dum= my-package "chbouib" (native-inputs (quasiquote (("x" (unquote grep))))))) = (p0 (dummy-package "example" (inputs (quasiquote (("foo" (unquote coreutils= )) ("bar" (unquote grep)) ("baz" (unquote dep))))))) (rewrite (package-inpu= t-rewriting/spec (quasiquote (("coreutils" unquote (const sed)) ("grep" unq= uote (const findutils)))) #:deep? #f)) (p1 (rewrite p0)) (p2 (rewrite p0)))= (and (not (eq? p1 p0)) (eq? p1 p2) (string=3D? "example" (package-name p1)= ) (match (package-inputs p1) ((("foo" dep1) ("bar" dep2) ("baz" dep3)) (and= (string=3D? (package-full-name dep1) (package-full-name sed)) (string=3D? = (package-full-name dep2) (package-full-name findutils)) (string=3D? (packag= e-name dep3) "chbouib") (eq? dep3 (rewrite dep)) (match (package-native-inp= uts dep3) ((("x" dep)) (string=3D? (package-full-name dep) (package-full-na= me findutils))))))) (equal? (drop (bag-direct-inputs (package->bag p1)) 3) = (drop (bag-direct-inputs (package->bag p0)) 3))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, partial match" source-line: 1567 source-form: (test-assert "package-input-rewriting/spec, partial match" (= let* ((dep (dummy-package "chbouib" (version "1") (native-inputs (quasiquot= e (("x" (unquote grep))))))) (p0 (dummy-package "example" (inputs (quasiquo= te (("foo" (unquote coreutils)) ("bar" (unquote dep))))))) (rewrite (packag= e-input-rewriting/spec (quasiquote (("chbouib@123" unquote (const sed)) ("g= rep" unquote (const findutils)))) #:deep? #f)) (p1 (rewrite p0))) (and (not= (eq? p1 p0)) (string=3D? "example" (package-name p1)) (match (package-inpu= ts p1) ((("foo" dep1) ("bar" dep2)) (and (string=3D? (package-full-name dep= 1) (package-full-name coreutils)) (eq? dep2 (rewrite dep)) (match (package-= native-inputs dep2) ((("x" dep)) (string=3D? (package-full-name dep) (packa= ge-full-name findutils)))))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, deep" source-line: 1591 source-form: (test-assert "package-input-rewriting/spec, deep" (let* ((de= p (dummy-package "chbouib")) (p0 (dummy-package "example" (build-system gnu= -build-system) (inputs (quasiquote (("dep" (unquote dep))))))) (rewrite (pa= ckage-input-rewriting/spec (quasiquote (("tar" unquote (const sed)) ("gzip"= unquote (const findutils)))))) (p1 (rewrite p0)) (p2 (rewrite p0))) (and (= not (eq? p1 p0)) (eq? p1 p2) (string=3D? "example" (package-name p1)) (matc= h (package-inputs p1) ((("dep" dep1)) (and (string=3D? (package-full-name d= ep1) (package-full-name dep)) (eq? dep1 (rewrite dep))))) (match (bag-direc= t-inputs (package->bag p1)) ((("dep" dep1) ("tar" tar) ("gzip" gzip) _ ...)= (and (eq? dep1 (rewrite dep)) (string=3D? (package-full-name tar) (package= -full-name sed)) (string=3D? (package-full-name gzip) (package-full-name fi= ndutils)))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, no duplicates" source-line: 1619 source-form: (test-assert "package-input-rewriting/spec, no duplicates" (= let* ((dep0 (dummy-package "dep0" (build-system trivial-build-system) (prop= agated-inputs (quasiquote (("python" (unquote python))))))) (p0 (dummy-pack= age "chbouib" (build-system python-build-system) (arguments (quasiquote (#:= python (unquote python)))) (inputs (quasiquote (("dep0" (unquote dep0))))))= ) (rewrite (package-input-rewriting/spec (quote ()) #:deep? #t)) (p1 (rewri= te p0)) (bag1 (package->bag p1)) (pythons (filter-map (match-lambda (("pyth= on" python) python) (_ #f)) (bag-transitive-inputs bag1)))) (match (delete-= duplicates pythons eq?) ((p) (eq? p (rewrite python)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, hidden package" source-line: 1643 source-form: (test-assert "package-input-rewriting/spec, hidden package" = (let* ((python (hidden-package python)) (p0 (dummy-package "chbouib" (build= -system trivial-build-system) (inputs (list python)))) (rewrite (package-in= put-rewriting/spec (quasiquote (("python" unquote (const sed)))) #:deep? #t= )) (p1 (rewrite p0)) (bag1 (package->bag p1)) (pythons (filter-map (match-l= ambda (("python" python) python) (_ #f)) (bag-transitive-inputs bag1)))) (m= atch (delete-duplicates pythons eq?) ((p) (eq? p python))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, replace hidden package" source-line: 1661 source-form: (test-assert "package-input-rewriting/spec, replace hidden p= ackage" (let* ((python (hidden-package python)) (p0 (dummy-package "chbouib= " (build-system trivial-build-system) (inputs (list python)))) (rewrite (pa= ckage-input-rewriting/spec (quasiquote (("python" unquote (const sed)))) #:= replace-hidden? #t)) (p1 (rewrite p0))) (match (package-inputs p1) ((("pyth= on" python)) (and (string=3D? (package-full-name python) (package-full-name= sed))))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, graft" source-line: 1676 source-form: (test-equal "package-input-rewriting/spec, graft" (derivatio= n-file-name (package-derivation %store sed)) (let* ((dep0 (dummy-package "d= ep" (version "1") (build-system trivial-build-system) (inputs (quasiquote (= ("coreutils" (unquote coreutils))))))) (dep1 (dummy-package "dep" (version = "0") (build-system trivial-build-system) (replacement dep0))) (p0 (dummy-pa= ckage "p" (build-system trivial-build-system) (inputs (quasiquote (("dep" (= unquote dep1))))))) (rewrite (package-input-rewriting/spec (quasiquote (("c= oreutils" unquote (const sed)))))) (p1 (rewrite p0))) (match (package-input= s p1) ((("dep" dep)) (match (package-inputs (package-replacement dep)) ((("= coreutils" coreutils)) (derivation-file-name (package-derivation %store cor= eutils)))))))) Test end: result-kind: pass actual-value: "/gnu/store/dvxkd0p86wqcyzvws7lcams6bbbq6gli-sed-4.8.drv" expected-value: "/gnu/store/dvxkd0p86wqcyzvws7lcams6bbbq6gli-sed-4.8.drv" Test begin: test-name: "package-with-c-toolchain" source-line: 1703 source-form: (test-assert "package-with-c-toolchain" (let* ((dep (dummy-p= ackage "chbouib" (build-system gnu-build-system) (native-inputs (quasiquote= (("x" (unquote grep))))))) (p0 (dummy-package "thingie" (build-system gnu-= build-system) (inputs (quasiquote (("foo" (unquote grep)) ("bar" (unquote d= ep))))))) (tc (dummy-package "my-toolchain")) (p1 (package-with-c-toolchain= p0 (quasiquote (("toolchain" (unquote tc))))))) (define toolchain-packages= (quote ("gcc" "binutils" "glibc" "ld-wrapper"))) (match (bag-build-inputs = (package->bag p1)) ((("foo" foo) ("bar" bar) (_ (=3D package-name packages)= . _) ...) (and (not (any (cut member <> packages) toolchain-packages)) (me= mber "my-toolchain" packages) (eq? foo grep) (eq? bar dep)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting/spec, identity" source-line: 1723 source-form: (test-assert "package-input-rewriting/spec, identity" (let* = ((libffi (dummy-package "libffi" (build-system trivial-build-system))) (gli= b (dummy-package "glib" (build-system trivial-build-system) (propagated-inp= uts (list libffi)))) (gobject (dummy-package "gobject-introspection" (build= -system trivial-build-system) (inputs (list glib)) (propagated-inputs (list= libffi)))) (rewrite (package-input-rewriting/spec (quasiquote (("glib" unq= uote identity)))))) (and (=3D (length (package-transitive-inputs gobject)) = (length (package-transitive-inputs (rewrite gobject)))) (string=3D? (deriva= tion-file-name (package-derivation %store (rewrite gobject))) (derivation-f= ile-name (package-derivation %store gobject)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-input-rewriting, identity" source-line: 1746 source-form: (test-assert "package-input-rewriting, identity" (let* ((lib= ffi (dummy-package "libffi" (build-system trivial-build-system))) (glib (du= mmy-package "glib" (build-system trivial-build-system) (propagated-inputs (= list libffi)))) (gobject (dummy-package "gobject-introspection" (build-syst= em trivial-build-system) (inputs (list glib)) (propagated-inputs (list libf= fi)))) (rewrite (package-input-rewriting (quasiquote (((unquote glib) unquo= te glib)))))) (and (=3D (length (package-transitive-inputs gobject)) (lengt= h (package-transitive-inputs (rewrite gobject)))) (string=3D? (derivation-f= ile-name (package-derivation %store (rewrite gobject))) (derivation-file-na= me (package-derivation %store gobject)))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "package-patched-vulnerabilities" source-line: 1766 source-form: (test-equal "package-patched-vulnerabilities" (quote (("CVE-= 2015-1234") ("CVE-2016-1234" "CVE-2018-4567") ())) (let ((p1 (dummy-package= "pi" (source (dummy-origin (patches (list "/a/b/pi-CVE-2015-1234.patch")))= ))) (p2 (dummy-package "pi" (source (dummy-origin (patches (list "/a/b/pi-C= VE-2016-1234-CVE-2018-4567.patch")))))) (p3 (dummy-package "pi" (source (du= mmy-origin))))) (map package-patched-vulnerabilities (list p1 p2 p3)))) Test end: result-kind: pass actual-value: (("CVE-2015-1234") ("CVE-2016-1234" "CVE-2018-4567") ()) expected-value: (("CVE-2015-1234") ("CVE-2016-1234" "CVE-2018-4567") ()) Test begin: test-name: "fold-packages" source-line: 1781 source-form: (test-eq "fold-packages" hello (fold-packages (lambda (p r) = (if (string=3D? (package-name p) "hello") p r)) #f)) Test end: result-kind: pass actual-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10e7= 90> expected-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10= e790> Test begin: test-name: "fold-packages, hidden package" source-line: 1788 source-form: (test-assert "fold-packages, hidden package" (match (fold-pa= ckages (lambda (p r) (if (and (string=3D? (package-name p) "guile") (string= -prefix? "2.0" (package-version p))) (cons p r) r)) (quote ())) ((one) (eq?= one guile-2.0)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "fold-available-packages with/without cache" source-line: 1802 source-form: (test-assert "fold-available-packages with/without cache" (l= et () (define no-cache (fold-available-packages (lambda* (name version resu= lt #:rest rest) (cons (cons* name version rest) result)) (quote ()))) (defi= ne from-cache (call-with-temporary-directory (lambda (cache) (generate-pack= age-cache cache) (mock ((guix describe) current-profile (const cache)) (moc= k ((gnu packages) cache-is-authoritative? (const #t)) (fold-available-packa= ges (lambda* (name version result #:rest rest) (cons (cons* name version re= st) result)) (quote ()))))))) (define (list->set* lst) (let loop ((lst lst)= (duplicates (quote ())) (seen (set))) (match lst (() (values seen duplicat= es)) ((head . tail) (if (set-contains? seen head) (loop tail (cons head dup= licates) seen) (loop tail duplicates (set-insert head seen))))))) (let ((se= t1 duplicates1 (list->set* from-cache)) (set2 duplicates2 (list->set* no-ca= che))) (pk (quote from-cache-duplicates:) duplicates1) (pk (quote no-cache-= duplicates:) duplicates2) (and (null? duplicates1) (null? duplicates2) (eve= ry (cut set-contains? set1 <>) no-cache) (every (cut set-contains? set2 <>)= from-cache))))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "find-packages-by-name" source-line: 1847 source-form: (test-assert "find-packages-by-name" (match (find-packages-b= y-name "hello") (((? (cut eq? hello <>))) #t) (wrong (pk (quote find-packag= es-by-name) wrong #f)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "find-packages-by-name with version" source-line: 1852 source-form: (test-assert "find-packages-by-name with version" (match (fi= nd-packages-by-name "hello" (package-version hello)) (((? (cut eq? hello <>= ))) #t) (wrong (pk (quote find-packages-by-name) wrong #f)))) Test end: result-kind: pass actual-value: #t Test begin: test-name: "find-packages-by-name with cache" source-line: 1857 source-form: (test-equal "find-packages-by-name with cache" (find-package= s-by-name "guile") (call-with-temporary-directory (lambda (cache) (generate= -package-cache cache) (mock ((guix describe) current-profile (const cache))= (mock ((gnu packages) cache-is-authoritative? (const #t)) (find-packages-b= y-name "guile")))))) Test end: result-kind: pass actual-value: (#<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f8a= 840> #<package guile@HIDDEN gnu/packages/guile.scm:287 7feed5f8a9a0> #<packa= ge guile@HIDDEN gnu/packages/guile.scm:338 7feed5f8a8f0> #<package guile@HIDDEN= =2E14 gnu/packages/guile.scm:160 7feed5f8aa50> #<package guile@HIDDEN gnu/pa= ckages/guile.scm:77 7feed5f8ab00>) expected-value: (#<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f= 8a840> #<package guile@HIDDEN gnu/packages/guile.scm:287 7feed5f8a9a0> #<pac= kage guile@HIDDEN gnu/packages/guile.scm:338 7feed5f8a8f0> #<package guile@2= =2E0.14 gnu/packages/guile.scm:160 7feed5f8aa50> #<package guile@HIDDEN gnu/= packages/guile.scm:77 7feed5f8ab00>) Test begin: test-name: "find-packages-by-name + version, with cache" source-line: 1866 source-form: (test-equal "find-packages-by-name + version, with cache" (f= ind-packages-by-name "guile" "2") (call-with-temporary-directory (lambda (c= ache) (generate-package-cache cache) (mock ((guix describe) current-profile= (const cache)) (mock ((gnu packages) cache-is-authoritative? (const #t)) (= find-packages-by-name "guile" "2")))))) Test end: result-kind: pass actual-value: (#<package guile@HIDDEN gnu/packages/guile.scm:287 7feed5f8a= 9a0> #<package guile@HIDDEN gnu/packages/guile.scm:338 7feed5f8a8f0> #<packa= ge guile@HIDDEN gnu/packages/guile.scm:160 7feed5f8aa50>) expected-value: (#<package guile@HIDDEN gnu/packages/guile.scm:287 7feed5f= 8a9a0> #<package guile@HIDDEN gnu/packages/guile.scm:338 7feed5f8a8f0> #<pac= kage guile@HIDDEN gnu/packages/guile.scm:160 7feed5f8aa50>) Test begin: test-name: "--search-paths with pattern" source-line: 1875 source-form: (test-assert "--search-paths with pattern" (let* ((p1 (packa= ge (name "foo") (version "0") (source #f) (build-system trivial-build-syste= m) (arguments (quasiquote (#:guile (unquote %bootstrap-guile) #:modules ((g= uix build utils)) #:builder (begin (use-modules (guix build utils)) (let ((= out (assoc-ref %outputs "out"))) (mkdir-p (string-append out "/xml/bar/baz"= )) (call-with-output-file (string-append out "/xml/bar/baz/catalog.xml") (l= ambda (port) (display "xml? wat?!" port))) #t))))) (synopsis #f) (descripti= on #f) (home-page #f) (license #f))) (p2 (package (name "libxml2") (version= "0.0.0") (source #f) (build-system trivial-build-system) (arguments (quasi= quote (#:guile (unquote %bootstrap-guile) #:builder (begin (mkdir (assoc-re= f %outputs "out")) #t)))) (native-search-paths (package-native-search-paths= libxml2)) (synopsis #f) (description #f) (home-page #f) (license #f))) (pr= of (run-with-store %store (profile-derivation (manifest (map package->manif= est-entry (list p1 p2))) #:hooks (quote ()) #:locales? #f) #:guile-for-buil= d (%guile-for-build)))) (build-derivations %store (list prof)) (string-matc= h (format #f "^export XML_CATALOG_FILES=3D\"~a/xml/+bar/baz/catalog\\.xml\"= \n" (regexp-quote (derivation->output-path prof))) (with-output-to-string (= lambda () (guix-package "-p" (derivation->output-path prof) "--search-paths= ")))))) Test end: result-kind: pass actual-value: #("export XML_CATALOG_FILES=3D\"/gnu/store/0ravyqivkx4iyxl0= glwa3lnfars68gg3-profile/xml/bar/baz/catalog.xml\"\n" (0 . 103)) Test begin: test-name: "--search-paths with single-item search path" source-line: 1926 source-form: (test-assert "--search-paths with single-item search path" (= let* ((p1 (dummy-package "foo" (build-system trivial-build-system) (argumen= ts (quasiquote (#:guile (unquote %bootstrap-guile) #:modules ((guix build u= tils)) #:builder (begin (use-modules (guix build utils)) (let ((out (assoc-= ref %outputs "out"))) (mkdir-p (string-append out "/etc/ssl/certs")) (call-= with-output-file (string-append out "/etc/ssl/certs/ca-certificates.crt") (= const #t))))))))) (p2 (package (inherit p1) (name "bar"))) (p3 (dummy-packa= ge "git" (build-system trivial-build-system) (arguments (quasiquote (#:guil= e (unquote %bootstrap-guile) #:builder (begin (mkdir (assoc-ref %outputs "o= ut")) #t)))) (native-search-paths (package-native-search-paths git)))) (pro= f1 (run-with-store %store (profile-derivation (packages->manifest (list p1 = p3)) #:hooks (quote ()) #:locales? #f) #:guile-for-build (%guile-for-build)= )) (prof2 (run-with-store %store (profile-derivation (packages->manifest (l= ist p2 p3)) #:hooks (quote ()) #:locales? #f) #:guile-for-build (%guile-for= -build)))) (build-derivations %store (list prof1 prof2)) (string-match (for= mat #f "^export GIT_SSL_CAINFO=3D\"~a/etc/ssl/certs/ca-certificates.crt" (r= egexp-quote (derivation->output-path prof1))) (with-output-to-string (lambd= a () (guix-package "-p" (derivation->output-path prof1) "-p" (derivation->o= utput-path prof2) "--search-paths")))))) Test end: result-kind: pass actual-value: #("export GIT_SSL_CAINFO=3D\"/gnu/store/lw9p4a0vaah1q2bxwzb= dw8cm1g5dx2lq-profile/etc/ssl/certs/ca-certificates.crt\"\n" (0 . 108)) Test begin: test-name: "specification->package when not found" source-line: 1974 source-form: (test-equal "specification->package when not found" (quote q= uit) (catch (quote quit) (lambda () (specification->package "this-package-d= oes-not-exist")) (lambda (key . args) key))) Test end: result-kind: pass actual-value: quit expected-value: quit Test begin: test-name: "specification->package+output" source-line: 1983 source-form: (test-equal "specification->package+output" (quasiquote (((u= nquote coreutils) "out") ((unquote coreutils) "debug"))) (list (call-with-v= alues (lambda () (specification->package+output "coreutils")) list) (call-w= ith-values (lambda () (specification->package+output "coreutils:debug")) li= st))) Test end: result-kind: pass actual-value: ((#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb1= 0e160> "out") (#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb10e1= 60> "debug")) expected-value: ((#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feec= b10e160> "out") (#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb10= e160> "debug")) Test begin: test-name: "specification->package+output invalid output" source-line: 1992 source-form: (test-equal "specification->package+output invalid output" (= quote error) (catch (quote quit) (lambda () (specification->package+output = "coreutils:does-not-exist")) (lambda _ (quote error)))) Test end: result-kind: pass actual-value: error expected-value: error Test begin: test-name: "specification->package+output no default output" source-line: 2000 source-form: (test-equal "specification->package+output no default output= " (quasiquote ((unquote coreutils) #f)) (call-with-values (lambda () (speci= fication->package+output "coreutils" #f)) list)) Test end: result-kind: pass actual-value: (#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb10= e160> #f) expected-value: (#<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb= 10e160> #f) Test begin: test-name: "specification->package+output invalid output, no default" source-line: 2007 source-form: (test-equal "specification->package+output invalid output, n= o default" (quote error) (catch (quote quit) (lambda () (specification->pac= kage+output "coreutils:does-not-exist" #f)) (lambda _ (quote error)))) Test end: result-kind: pass actual-value: error expected-value: error Test begin: test-name: "find-package-locations" source-line: 2015 source-form: (test-equal "find-package-locations" (map (lambda (package) = (cons (package-version package) (package-location package))) (find-packages= -by-name "guile")) (find-package-locations "guile")) Test end: result-kind: pass actual-value: (("3.0.9" . #<<location> file: "gnu/packages/guile.scm" lin= e: 351 column: 2>) ("2.2.7" . #<<location> file: "gnu/packages/guile.scm" l= ine: 287 column: 2>) ("2.2.4" . #<<location> file: "gnu/packages/guile.scm"= line: 338 column: 2>) ("2.0.14" . #<<location> file: "gnu/packages/guile.s= cm" line: 160 column: 2>) ("1.8.8" . #<<location> file: "gnu/packages/guile= =2Escm" line: 77 column: 2>)) expected-value: (("3.0.9" . #<<location> file: "gnu/packages/guile.scm" l= ine: 351 column: 2>) ("2.2.7" . #<<location> file: "gnu/packages/guile.scm"= line: 287 column: 2>) ("2.2.4" . #<<location> file: "gnu/packages/guile.sc= m" line: 338 column: 2>) ("2.0.14" . #<<location> file: "gnu/packages/guile= =2Escm" line: 160 column: 2>) ("1.8.8" . #<<location> file: "gnu/packages/g= uile.scm" line: 77 column: 2>)) Test begin: test-name: "find-package-locations with cache" source-line: 2022 source-form: (test-equal "find-package-locations with cache" (map (lambda= (package) (cons (package-version package) (package-location package))) (fi= nd-packages-by-name "guile")) (call-with-temporary-directory (lambda (cache= ) (generate-package-cache cache) (mock ((guix describe) current-profile (co= nst cache)) (mock ((gnu packages) cache-is-authoritative? (const #t)) (find= -package-locations "guile")))))) Test end: result-kind: pass actual-value: (("3.0.9" . #<<location> file: "gnu/packages/guile.scm" lin= e: 351 column: 2>) ("2.2.7" . #<<location> file: "gnu/packages/guile.scm" l= ine: 287 column: 2>) ("2.2.4" . #<<location> file: "gnu/packages/guile.scm"= line: 338 column: 2>) ("2.0.14" . #<<location> file: "gnu/packages/guile.s= cm" line: 160 column: 2>) ("1.8.8" . #<<location> file: "gnu/packages/guile= =2Escm" line: 77 column: 2>)) expected-value: (("3.0.9" . #<<location> file: "gnu/packages/guile.scm" l= ine: 351 column: 2>) ("2.2.7" . #<<location> file: "gnu/packages/guile.scm"= line: 287 column: 2>) ("2.2.4" . #<<location> file: "gnu/packages/guile.sc= m" line: 338 column: 2>) ("2.0.14" . #<<location> file: "gnu/packages/guile= =2Escm" line: 160 column: 2>) ("1.8.8" . #<<location> file: "gnu/packages/g= uile.scm" line: 77 column: 2>)) Test begin: test-name: "specification->location" source-line: 2034 source-form: (test-equal "specification->location" (package-location (spe= cification->package "guile@2")) (specification->location "guile@2")) Test end: result-kind: pass actual-value: #<<location> file: "gnu/packages/guile.scm" line: 287 colum= n: 2> expected-value: #<<location> file: "gnu/packages/guile.scm" line: 287 col= umn: 2> Test begin: test-name: "package-unique-version-prefix, gcc@8" source-line: 2038 source-form: (test-equal "package-unique-version-prefix, gcc@8" "8" (let = ((gcc (specification->package "gcc-toolchain@8"))) (package-unique-version-= prefix (package-name gcc) (package-version gcc)))) Test end: result-kind: pass actual-value: "8" expected-value: "8" Test begin: test-name: "package-unique-version-prefix, grep" source-line: 2044 source-form: (test-equal "package-unique-version-prefix, grep" "" (let ((= grep (specification->package "grep"))) (package-unique-version-prefix (pack= age-name grep) (package-version grep)))) Test end: result-kind: pass actual-value: "" expected-value: "" Test begin: test-name: "this-package-input, exists" source-line: 2051 source-form: (test-eq "this-package-input, exists" hello (package-argumen= ts (dummy-package "a" (inputs (quasiquote (("hello" (unquote hello))))) (ar= guments (this-package-input "hello"))))) Test end: result-kind: pass actual-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10e7= 90> expected-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10= e790> Test begin: test-name: "this-package-input, exists in propagated-inputs" source-line: 2058 source-form: (test-eq "this-package-input, exists in propagated-inputs" h= ello (package-arguments (dummy-package "a" (propagated-inputs (quasiquote (= ("hello" (unquote hello))))) (arguments (this-package-input "hello"))))) Test end: result-kind: pass actual-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10e7= 90> expected-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10= e790> Test begin: test-name: "this-package-input, does not exist" source-line: 2065 source-form: (test-eq "this-package-input, does not exist" #f (package-ar= guments (dummy-package "a" (arguments (this-package-input "hello"))))) Test end: result-kind: pass actual-value: #f expected-value: #f Test begin: test-name: "this-package-native-input, exists" source-line: 2071 source-form: (test-eq "this-package-native-input, exists" hello (package-= arguments (dummy-package "a" (native-inputs (quasiquote (("hello" (unquote = hello))))) (arguments (this-package-native-input "hello"))))) Test end: result-kind: pass actual-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10e7= 90> expected-value: #<package hello@HIDDEN gnu/packages/base.scm:100 7feecb10= e790> Test begin: test-name: "this-package-native-input, does not exists" source-line: 2078 source-form: (test-eq "this-package-native-input, does not exists" #f (pa= ckage-arguments (dummy-package "a" (arguments (this-package-native-input "h= ello"))))) Test end: result-kind: pass actual-value: #f expected-value: #f Test begin: test-name: "this-package-input, origin" source-line: 2084 source-form: (test-equal "this-package-input, origin" "http://example.org= /foo.tar.gz" (origin-uri (package-arguments (dummy-package "a" (inputs (lis= t (dummy-origin (uri "http://example.org/foo.tar.gz")))) (arguments (this-p= ackage-input "foo.tar.gz")))))) Test end: result-kind: pass actual-value: "http://example.org/foo.tar.gz" expected-value: "http://example.org/foo.tar.gz" Test begin: test-name: "modify-inputs, replace" source-line: 2092 source-form: (test-eq "modify-inputs, replace" coreutils (let* ((p1 (dumm= y-package "p" (inputs (list hello)))) (p2 (package (inherit p1) (version "1= ") (inputs (modify-inputs (package-inputs p1) (replace "hello" coreutils)))= ))) (lookup-package-input p2 "hello"))) Test end: result-kind: pass actual-value: #<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb10e= 160> expected-value: #<package coreutils@HIDDEN gnu/packages/base.scm:474 7feecb1= 0e160> Test begin: test-name: "modify-inputs, replace, change output" source-line: 2104 source-form: (test-eq "modify-inputs, replace, change output" guile-3.0 (= let* ((p1 (dummy-package "p" (inputs (list (quasiquote ((unquote coreutils)= "debug")))))) (p2 (package (inherit p1) (version "1") (inputs (modify-inpu= ts (package-inputs p1) (replace "coreutils" (quasiquote ((unquote guile-3.0= ) "out")))))))) (match (package-inputs p2) ((("coreutils" input "out")) inp= ut)))) Test end: result-kind: pass actual-value: #<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f8a8= 40> expected-value: #<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f8= a840> Test begin: test-name: "modify-inputs, replace, extra output" source-line: 2118 source-form: (test-eq "modify-inputs, replace, extra output" guile-3.0 (l= et* ((p1 (dummy-package "p" (inputs (list (quasiquote ((unquote coreutils) = "debug")))))) (p2 (package (inherit p1) (version "1") (inputs (modify-input= s (package-inputs p1) (replace "coreutils" guile-3.0)))))) (match (package-= inputs p2) ((("coreutils" input "debug")) input)))) Test end: result-kind: pass actual-value: #<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f8a8= 40> expected-value: #<package guile@HIDDEN gnu/packages/guile.scm:351 7feed5f8= a840> Group end: packages # of expected passes 122 # of unexpected failures 3 --scw34k2xpbd75e33--
X-Loop: help-debbugs@HIDDEN Subject: [bug#75302] [PATCH] packages: Match renamed origin fields. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Wed, 08 Jan 2025 10:07:01 +0000 Resent-Message-ID: <handler.75302.B75302.17363307818191 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 75302 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Herman Rimm <herman@HIDDEN> Cc: 75302 <at> debbugs.gnu.org Received: via spool by 75302-submit <at> debbugs.gnu.org id=B75302.17363307818191 (code B ref 75302); Wed, 08 Jan 2025 10:07:01 +0000 Received: (at 75302) by debbugs.gnu.org; 8 Jan 2025 10:06:21 +0000 Received: from localhost ([127.0.0.1]:46041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tVSxA-000283-VD for submit <at> debbugs.gnu.org; Wed, 08 Jan 2025 05:06:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56690) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tVSxA-00027r-4S for 75302 <at> debbugs.gnu.org; Wed, 08 Jan 2025 05:06:20 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tVSx2-0000Hb-1b; Wed, 08 Jan 2025 05:06:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=bc8WIUY9RRfrAp1Vj8VDuzZB4S99BoR2JAIWLcWX7q4=; b=HaDqkP2B96UMB1jWc+R9 wQeo4zKylVF2nrMavEJXV7taF5nG3dKj7AWHxVBPE6jc6zAhtn5xy8Dr8omwZKBxuPwUMwXRnSiK1 asSodFsQupHI3bJhGBk9/DYkPB0P4WTcY984vTTYVHt54NwRLJz+c/CjamERHg59SVgXCBecmv/+h ozl7KR9LmV9Gj0DZovl4wxj5mN0FFaFDkLfE4gsmiCF5owrmtKYiUuQ8ROC4oRR6IqSkHL2SZ4OuA d6ewBweYjSAjht4/wJnzNBlaz4COfLODpvRHbegi+xNWXOtFWQq1mL7SNkWS623YBbpPZZdc28awd 50o//YZSRcWb4w==; From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> In-Reply-To: <pir4su3fxpi27nh4zsrly5bzu4a6zadjruod6uct7phdm3eikf@xiblxxsl7a4q> (Herman Rimm's message of "Mon, 6 Jan 2025 19:48:46 +0100") References: <18c0be606434165893e9566caa34aff0f3776a0e.1735851535.git.herman@HIDDEN> <87h66epa72.fsf@HIDDEN> <pir4su3fxpi27nh4zsrly5bzu4a6zadjruod6uct7phdm3eikf@xiblxxsl7a4q> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 19 =?UTF-8?Q?Niv=C3=B4se?= an 233 de la =?UTF-8?Q?R=C3=A9volution,?= jour du Marbre X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 08 Jan 2025 11:06:08 +0100 Message-ID: <87r05dvcvj.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi, Herman Rimm <herman@HIDDEN> skribis: > On Sat, Jan 04, 2025 at 09:59:13PM +0100, Ludovic Court=C3=A8s wrote: >> The patch LGTM but, (1) fields haven=E2=80=99t been renamed recently, an= d=E2=80=A6 > > I misunderstood how (match _ (($ _) _)) works. Can you amend the commit > to start like: 'packages: Replace match with match-record.', instead? OK. > In a checkout at b8858d8b1344525d0d7ac78d8fb9dc1a577b85d3 with this > patch applied, running: > > guix shell -CPWN > ./pre-inst-env guix repl < tests/packages.scm If you really wanted to do this, try: ./pre-inst-env guile --no-auto-compile tests/packages.scm I recommend sticking to the documented procedure though. > I get the three errors mentioned, see attached log. I run the tests > like this because running: > > guix shell -CPWN > make check TESTS=3D"tests/packages.scm" > > returns: [...] > [ 77%] LOAD gnu.scm > ice-9/eval.scm:293:34: error: diff: unbound variable > hint: Did you forget a `use-modules' form? > make[2]: *** [Makefile:7518: make-system-go] Error 1 Well, it definitely builds here. Could it be that you have local changes in your tree? Or perhaps you need =E2=80=98make clean-go=E2=80=99 = first? > source-form: (test-assert "package-source-derivation, local-file" (let*= ((file (local-file "../guix/base32.scm")) (package (package (inherit (dumm= y-package "p")) (source file))) (source (package-source-derivation %store (= package-source package)))) (and (store-path? source) (string-suffix? "base3= 2.scm" source) (valid-path? %store source) (equal? (call-with-input-file so= urce get-bytevector-all) (call-with-input-file (search-path %load-path "gui= x/base32.scm") get-bytevector-all))))) > Test end: > result-kind: fail > actual-value: #f > actual-error: (system-error "canonicalize-path" "~A: ~S" ("No such file= or directory" "../guix/base32.scm") (2)) Probably has to do with running the test through standard input =E2=80=98gu= ix repl=E2=80=99: in that case it cannot correctly determine what the current = file name is, and so relative file name resolution fails. Ludo=E2=80=99.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.