From patchwork Fri Oct 7 20:53:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: M X-Patchwork-Id: 43213 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B29EB27BBEA; Fri, 7 Oct 2022 21:54:55 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 77A4F27BBE9 for ; Fri, 7 Oct 2022 21:54:54 +0100 (BST) Received: from localhost ([::1]:51320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMv-0006NL-Lx for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57000) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM8-0005WO-P7 for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38476) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM8-0002yM-BX for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM8-0003xB-7A for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 1/6] gnu: Add guile-test-driver. References: In-Reply-To: Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517604315182 (code B ref 58365); Fri, 07 Oct 2022 20:54:04 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:54:03 +0000 Received: from localhost ([127.0.0.1]:37549 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM5-0003wM-GR for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40926) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v1-L1 for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:59 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tuFH; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:47 +0200 Message-Id: <20221007205352.1282-1-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=PkKo1n9bMrITQ3JXlqu6Tv7ujg4NH68MqDLJm3M2yZc=; h=From:To:Cc:Subject:Date; b=S96SfXOySs0L84SFNQZ3UhZqyTtvBTkQRmDOFvnB13haOAk6ZCRQ/r1S/R9vXVp2l eCaI4QY4O+bxy6gRyZVdkJlSdQYKl9S/PaPkcHeD5IpcXwpC3RyPA2lrzdzm8CNQYr ING5U11V+IR/s6cYCMs9jTipojeWj/YK6cQh8WCTnmbPVEwjffCGHSHaOaHmp21qtR s5zw1/Sma5Mh1My6gqPVVZ2Hph6s72IE1s6zqPQyRZ6zw3fLXW1AUVAvPqRsawQDqK B6QDmLMsVqs/N5+5xJUEIXmb4jRuLOIsCWw+HO9asazIgBv2KzR0klO8vS/KtoOTMq PmCHnV1Hu9rkA== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches A copy is made of test-driver.scm to avoid potentially surprising rebuilds when changes are made. * gnu/packages/guile.scm (guile-test-driver): New variable. * gnu/packages/aux-files/test-driver.scm: New file. * Makefile.am (AUX_FILES): Register it. * build-aux/test-driver.scm: Add a note. --- Makefile.am | 3 +- build-aux/test-driver.scm | 2 + gnu/packages/aux-files/test-driver.scm | 284 +++++++++++++++++++++++++ gnu/packages/guile.scm | 39 +++- 4 files changed, 326 insertions(+), 2 deletions(-) create mode 100755 gnu/packages/aux-files/test-driver.scm base-commit: 31a56967e2869c916b7a5e8ee570e8e10f0210a5 prerequisite-patch-id: 2712efb97bf33985fd0658e4dd8e936dc08be5fe prerequisite-patch-id: 9d2409b480a8bff0fef029b4b095922d4957e06f prerequisite-patch-id: 51a32abca3efec1ba67ead59b8694c5ea3129ad3 prerequisite-patch-id: 9092927761a340c07a99f5f3ed314a6add04cdee prerequisite-patch-id: d0af09fbd5ee0ef60bdee53b87d729e46c1db2ca prerequisite-patch-id: 4fee177b2d8c9478c6a7b8ce1ca9072942f39863 prerequisite-patch-id: c2b101598fa5b6f93470ae41d51a983dcb931b04 prerequisite-patch-id: 8fe65a852a4463203ea6b92abb3968bd819475b1 prerequisite-patch-id: 7585c78056095ec991615cbbe877e06f713aada9 prerequisite-patch-id: a9fb1bf1718ad8de6fc26d97a7dc5baf41dc38bd prerequisite-patch-id: 1e5c9ef57d1df286042f4ae3eb420394c8b3b045 diff --git a/Makefile.am b/Makefile.am index bfabf0bf2e..e1f1a4573e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -427,7 +427,8 @@ AUX_FILES = \ gnu/packages/aux-files/python/sanity-check.py \ gnu/packages/aux-files/python/sitecustomize.py \ gnu/packages/aux-files/renpy/renpy.in \ - gnu/packages/aux-files/run-in-namespace.c + gnu/packages/aux-files/run-in-namespace.c \ + gnu/packages/aux-files/test-driver.scm # Templates, examples. EXAMPLES = \ diff --git a/build-aux/test-driver.scm b/build-aux/test-driver.scm index 1cdd4ff8f7..7ff8d45031 100755 --- a/build-aux/test-driver.scm +++ b/build-aux/test-driver.scm @@ -2,6 +2,8 @@ exec guile --no-auto-compile -e main -s "$0" "$@" !# ;;;; test-driver.scm - Guile test driver for Automake testsuite harness +;;;; When update this code, consider updating +;;;; gnu/packages/aux-files/test-driver.scm as well. (define script-version "2021-02-02.05") ;UTC diff --git a/gnu/packages/aux-files/test-driver.scm b/gnu/packages/aux-files/test-driver.scm new file mode 100755 index 0000000000..1cdd4ff8f7 --- /dev/null +++ b/gnu/packages/aux-files/test-driver.scm @@ -0,0 +1,284 @@ +#!/bin/sh +exec guile --no-auto-compile -e main -s "$0" "$@" +!# +;;;; test-driver.scm - Guile test driver for Automake testsuite harness + +(define script-version "2021-02-02.05") ;UTC + +;;; Copyright © 2015, 2016 Mathieu Lirzin +;;; Copyright © 2021 Maxim Cournoyer +;;; +;;; This program is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + +;;;; Commentary: +;;; +;;; This script provides a Guile test driver using the SRFI-64 Scheme API for +;;; test suites. SRFI-64 is distributed with Guile since version 2.0.9. +;;; +;;;; Code: + +(use-modules (ice-9 format) + (ice-9 getopt-long) + (ice-9 pretty-print) + (ice-9 regex) + (srfi srfi-1) + (srfi srfi-19) + (srfi srfi-26) + (srfi srfi-64)) + +(define (show-help) + (display "Usage: + test-driver --test-name=NAME --log-file=PATH --trs-file=PATH + [--expect-failure={yes|no}] [--color-tests={yes|no}] + [--select=REGEXP] [--exclude=REGEXP] [--errors-only={yes|no}] + [--enable-hard-errors={yes|no}] [--brief={yes|no}}] + [--show-duration={yes|no}] [--] + TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] +The '--test-name' option is mandatory. The '--select' and '--exclude' options +allow selecting or excluding individual test cases via a regexp, respectively. +The '--errors-only' option can be set to \"yes\" to limit the logged test case +metadata to only those test cases that failed. When set to \"yes\", the +'--brief' option disables printing the individual test case result to the +console. When '--show-duration' is set to \"yes\", the time elapsed per test +case is shown.\n")) + +(define %options + '((test-name (value #t)) + (log-file (value #t)) + (trs-file (value #t)) + (select (value #t)) + (exclude (value #t)) + (errors-only (value #t)) + (color-tests (value #t)) + (expect-failure (value #t)) ;XXX: not implemented yet + (enable-hard-errors (value #t)) ;not implemented in SRFI-64 + (brief (value #t)) + (show-duration (value #t)) + (help (single-char #\h) (value #f)) + (version (single-char #\V) (value #f)))) + +(define (option->boolean options key) + "Return #t if the value associated with KEY in OPTIONS is \"yes\"." + (and=> (option-ref options key #f) (cut string=? <> "yes"))) + +(define* (test-display field value #:optional (port (current-output-port)) + #:key pretty?) + "Display \"FIELD: VALUE\\n\" on PORT." + (if pretty? + (begin + (format port "~A:~%" field) + (pretty-print value port #:per-line-prefix "+ ")) + (format port "~A: ~S~%" field value))) + +(define* (result->string symbol #:key colorize?) + "Return SYMBOL as an upper case string. Use colors when COLORIZE is #t." + (let ((result (string-upcase (symbol->string symbol)))) + (if colorize? + (string-append (case symbol + ((pass) "") ;green + ((xfail) "") ;light green + ((skip) "") ;blue + ((fail xpass) "") ;red + ((error) "")) ;magenta + result + "") ;no color + result))) + + +;;; +;;; SRFI 64 custom test runner. +;;; + +(define* (test-runner-gnu test-name #:key color? brief? errors-only? + show-duration? + (out-port (current-output-port)) + (trs-port (%make-void-port "w")) + select exclude) + "Return an custom SRFI-64 test runner. TEST-NAME is a string specifying the +file name of the current the test. COLOR? specifies whether to use colors. +When BRIEF? is true, the individual test cases results are masked and only the +summary is shown. ERRORS-ONLY? reduces the amount of test case metadata +logged to only that of the failed test cases. OUT-PORT and TRS-PORT must be +output ports. OUT-PORT defaults to the current output port, while TRS-PORT +defaults to a void port, which means no TRS output is logged. SELECT and +EXCLUDE may take a regular expression to select or exclude individual test +cases based on their names." + + (define test-cases-start-time (make-hash-table)) + + (define (test-on-test-begin-gnu runner) + ;; Procedure called at the start of an individual test case, before the + ;; test expression (and expected value) are evaluated. + (let ((test-case-name (test-runner-test-name runner)) + (start-time (current-time time-monotonic))) + (hash-set! test-cases-start-time test-case-name start-time))) + + (define (test-skipped? runner) + (eq? 'skip (test-result-kind runner))) + + (define (test-failed? runner) + (not (or (test-passed? runner) + (test-skipped? runner)))) + + (define (test-on-test-end-gnu runner) + ;; Procedure called at the end of an individual test case, when the result + ;; of the test is available. + (let* ((results (test-result-alist runner)) + (result? (cut assq <> results)) + (result (cut assq-ref results <>)) + (test-case-name (test-runner-test-name runner)) + (start (hash-ref test-cases-start-time test-case-name)) + (end (current-time time-monotonic)) + (time-elapsed (time-difference end start)) + (time-elapsed-seconds (+ (time-second time-elapsed) + (* 1e-9 (time-nanosecond time-elapsed))))) + (unless (or brief? (and errors-only? (test-skipped? runner))) + ;; Display the result of each test case on the console. + (format out-port "~a: ~a - ~a ~@[[~,3fs]~]~%" + (result->string (test-result-kind runner) #:colorize? color?) + test-name test-case-name + (and show-duration? time-elapsed-seconds))) + + (unless (and errors-only? (not (test-failed? runner))) + (format #t "test-name: ~A~%" (result 'test-name)) + (format #t "location: ~A~%" + (string-append (result 'source-file) ":" + (number->string (result 'source-line)))) + (test-display "source" (result 'source-form) #:pretty? #t) + (when (result? 'expected-value) + (test-display "expected-value" (result 'expected-value))) + (when (result? 'expected-error) + (test-display "expected-error" (result 'expected-error) #:pretty? #t)) + (when (result? 'actual-value) + (test-display "actual-value" (result 'actual-value))) + (when (result? 'actual-error) + (test-display "actual-error" (result 'actual-error) #:pretty? #t)) + (format #t "result: ~a~%" (result->string (result 'result-kind))) + (newline)) + + (format trs-port ":test-result: ~A ~A [~,3fs]~%" + (result->string (test-result-kind runner)) + (test-runner-test-name runner) time-elapsed-seconds))) + + (define (test-on-group-end-gnu runner) + ;; Procedure called by a 'test-end', including at the end of a test-group. + (let ((fail (or (positive? (test-runner-fail-count runner)) + (positive? (test-runner-xpass-count runner)))) + (skip (or (positive? (test-runner-skip-count runner)) + (positive? (test-runner-xfail-count runner))))) + ;; XXX: The global results need some refinements for XPASS. + (format trs-port ":global-test-result: ~A~%" + (if fail "FAIL" (if skip "SKIP" "PASS"))) + (format trs-port ":recheck: ~A~%" + (if fail "yes" "no")) + (format trs-port ":copy-in-global-log: ~A~%" + (if (or fail skip) "yes" "no")) + (when brief? + ;; Display the global test group result on the console. + (format out-port "~A: ~A~%" + (result->string (if fail 'fail (if skip 'skip 'pass)) + #:colorize? color?) + test-name)) + #f)) + + (let ((runner (test-runner-null))) + (test-runner-on-test-begin! runner test-on-test-begin-gnu) + (test-runner-on-test-end! runner test-on-test-end-gnu) + (test-runner-on-group-end! runner test-on-group-end-gnu) + (test-runner-on-bad-end-name! runner test-on-bad-end-name-simple) + runner)) + + +;;; +;;; SRFI 64 test specifiers. +;;; +(define (test-match-name* regexp) + "Return a test specifier that matches a test name against REGEXP." + (lambda (runner) + (string-match regexp (test-runner-test-name runner)))) + +(define (test-match-name*/negated regexp) + "Return a negated test specifier version of test-match-name*." + (lambda (runner) + (not (string-match regexp (test-runner-test-name runner))))) + +;;; XXX: test-match-all is a syntax, which isn't convenient to use with a list +;;; of test specifiers computed at run time. Copy this SRFI 64 internal +;;; definition here, which is the procedural equivalent of 'test-match-all'. +(define (%test-match-all . pred-list) + (lambda (runner) + (let ((result #t)) + (let loop ((l pred-list)) + (if (null? l) + result + (begin + (if (not ((car l) runner)) + (set! result #f)) + (loop (cdr l)))))))) + + +;;; +;;; Entry point. +;;; + +(define (main . args) + (let* ((opts (getopt-long (command-line) %options)) + (option (cut option-ref opts <> <>))) + (cond + ((option 'help #f) (show-help)) + ((option 'version #f) (format #t "test-driver.scm ~A~%" script-version)) + (else + (let* ((log (and=> (option 'log-file #f) (cut open-file <> "w0"))) + (trs (and=> (option 'trs-file #f) (cut open-file <> "wl"))) + (out (duplicate-port (current-output-port) "wl")) + (test-name (option 'test-name #f)) + (select (option 'select #f)) + (exclude (option 'exclude #f)) + (test-specifiers (filter-map + identity + (list (and=> select test-match-name*) + (and=> exclude test-match-name*/negated)))) + (test-specifier (apply %test-match-all test-specifiers)) + (color-tests (if (assoc 'color-tests opts) + (option->boolean opts 'color-tests) + #t))) + (when log + (redirect-port log (current-output-port)) + (redirect-port log (current-warning-port)) + (redirect-port log (current-error-port))) + (test-with-runner + (test-runner-gnu test-name + #:color? color-tests + #:brief? (option->boolean opts 'brief) + #:errors-only? (option->boolean opts 'errors-only) + #:show-duration? (option->boolean + opts 'show-duration) + #:out-port out #:trs-port trs) + (test-apply test-specifier + (lambda _ + (load-from-path test-name)))) + (and=> log close-port) + (and=> trs close-port) + (close-port out)))) + (exit 0))) + +;;; Local Variables: +;;; eval: (add-hook 'write-file-functions 'time-stamp) +;;; time-stamp-start: "(define script-version \"" +;;; time-stamp-format: "%:y-%02m-%02d.%02H" +;;; time-stamp-time-zone: "UTC" +;;; time-stamp-end: "\") ;UTC" +;;; End: + +;;;; test-driver.scm ends here. diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index fcdf75051c..b847ee6be4 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2019 Taylan Kammer ;;; Copyright © 2020, 2021, 2022 Efraim Flashner -;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021, 2022 Maxime Devos ;;; Copyright © 2021 Timothy Sample ;;; ;;; This file is part of GNU Guix. @@ -60,9 +60,11 @@ (define-module (gnu packages guile) #:use-module (gnu packages version-control) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system guile) + #:use-module (guix build-system trivial) #:use-module (guix deprecation) #:use-module (guix utils)) @@ -961,4 +963,39 @@ (define-public guile-lzma libraries, like Guile-zlib.") (license license:gpl3+))) +(define-public guile-test-driver + (package + (name "guile-test-driver") + ;; (define script-version ...) in the source code + (version "2021-01-02.05") + ;; 'search-auxiliary-file' could be used here, but that causes warnings. + (source (local-file "../../gnu/packages/aux-files/test-driver.scm")) + (build-system gnu-build-system) + (inputs (list guile-3.0)) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (delete 'install) ; no point in separating build and install + (replace 'build + (lambda _ + (define destination + (string-append #$output "/bin/test-driver.scm")) + (mkdir-p (dirname destination)) + (copy-file #$source destination) + (substitute* destination + (("/bin/sh") + ;; Reference to Guile will be patched by patch-shebangs. + "/bin/guile \\") + (("^exec guile(.*)$") "--no-auto-compile -e main -s\n")) + (chmod destination #o500)))))) + (home-page "https://www.gnu.org/software/guix") + (synopsis "Guile test driver for SRFI-64 test suites") + (description "This package, also known as @file{test-driver.scm}, provides +a Guile test driver using the SRFI-64 Scheme API for test suites. Unlike the +default test runner, its output is consistent with other test drivers used +by Automake.") + (license license:gpl3+))) + ;;; guile.scm ends here From patchwork Fri Oct 7 20:53:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: M X-Patchwork-Id: 43211 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 67CD527BBEA; Fri, 7 Oct 2022 21:54:41 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id B2E0327BBE9 for ; Fri, 7 Oct 2022 21:54:40 +0100 (BST) Received: from localhost ([::1]:46854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMh-00063s-Ss for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM7-0005Vb-QO for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38474) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM7-0002y9-HP for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM7-0003ww-E1 for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 2/6] build-system/guile: Run SRFI-64 tests. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517604115144 (code B ref 58365); Fri, 07 Oct 2022 20:54:03 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:54:01 +0000 Received: from localhost ([127.0.0.1]:37545 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM4-0003w6-HF for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:54:01 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v2-L2 for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:58 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tvFL; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:48 +0200 Message-Id: <20221007205352.1282-2-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221007205352.1282-1-maximedevos@telenet.be> References: <20221007205352.1282-1-maximedevos@telenet.be> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=TWP8pWUy6TlUor/aXGtz1XUdfD0vWzqHuG48lxids1M=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=XpW1CFO+OAN3fKGnJAUVQMIEq8MmNMFx/1NMoadgCG1oLz3LNpeCVXw3/DpTm6UGZ ciG8CmgVIXtlpPjWIvRz1EHN5dk83QjQrKI5fp8/7sb0K818jDqh8dOlRf3WNV1/5n fceIX0CpElLpIeF77DHgbtZmn5w5Kn8qtZAmpRPacrzQa6kIcWycsgscWI5q4k8dT7 ve0wkBr3Jo/tQaygnq1Y0KZqkSXkEMcuR0zPj1pnYAb5+7E2QNaW/INXBEKXP/WDh4 L02Yl0Dr98rQqAsSgQCaXncjKw98asdc9A/0RXsIxDf/rH1HMKK44gJimFjZnV/B2i Y87BtPwli7gbQ== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches The build system needs a hint for the location of the test suite(s), but aside from that tests are now run automatically. I expect having multiple test suites to be the exception, so I used 'test-script' instead of 'test-scripts'. Fixes: * guix/build-system/guile.scm (guile-build): Pass on 'tests?', 'test-script' and 'test-arguments'. (guile-cross-build): Likewise. * guix/build/guile-build-system.scm (guile-check): New phase. (%standard-phases)[check]: Use it. * doc/guix.texi (Build Systems)[guile-build-system]: Document new behaviour. --- doc/guix.texi | 15 ++++++++--- guix/build-system/guile.scm | 13 +++++++++ guix/build/guile-build-system.scm | 44 +++++++++++++++++++++++++++++-- 3 files changed, 67 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 08dab8e5b1..858bcec96f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9022,13 +9022,22 @@ code and that are so lean that they don't even have a makefile, let alone a @file{configure} script. It compiles Scheme code using @command{guild compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and installs the @file{.scm} and @file{.go} files in the right place. It also -installs documentation. +installs documentation and runs SRFI-64 test suites. + +Test suites cannot be found automatically; the location of the test +suite can be set with the @code{#:test-script} argument (as a string). +If there are multiple test scripts, this argument can be set to a staged +list of locations. Sometimes some tests need to be skipped, if so, +@code{#:test-arguments} can be a staged list with extra arguments to +pass to the test driver (see @code{test-driver.scm --help} for details). This build system supports cross-compilation by using the @option{--target} option of @samp{guild compile}. -Packages built with @code{guile-build-system} must provide a Guile package in -their @code{native-inputs} field. +Packages built with @code{guile-build-system} must provide a Guile +package in their @code{native-inputs} field. Additionally, if +@code{#:test-script} is used, a test driver (usually +@code{guile-test-driver}) must be provided. @end defvr @defvr {Scheme Variable} julia-build-system diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm index 36a88e181a..75d62fe403 100644 --- a/guix/build-system/guile.scm +++ b/guix/build-system/guile.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018-2019, 2021-2022 Ludovic Courtès +;;; Copyright © 2022 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +79,9 @@ (define %compile-flags (define* (guile-build name inputs #:key source + (tests? #true) + (test-script #false) + (test-arguments ''()) (guile #f) (phases '%standard-phases) (outputs '("out")) @@ -98,6 +102,9 @@ (define builder (guile-build #:name #$name #:source #+source + #:tests? #$tests? + #:test-script #$test-script + #:test-arguments #$test-arguments #:source-directory #$source-directory #:scheme-file-regexp #$scheme-file-regexp #:not-compiled-file-regexp #$not-compiled-file-regexp @@ -122,6 +129,9 @@ (define* (guile-cross-build name build-inputs target-inputs host-inputs (guile #f) source + (tests? #false) + (test-script #false) + (test-arguments ''()) (outputs '("out")) (search-paths '()) (native-search-paths '()) @@ -149,6 +159,9 @@ (define %outputs #$(outputs->gexp outputs)) (guile-build #:source #+source + #:tests? #$tests? + #:test-script #$test-script + #:test-arguments #$test-arguments #:system #$system #:target #$target #:outputs %outputs diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm index 32a431d347..838cb13089 100644 --- a/guix/build/guile-build-system.scm +++ b/guix/build/guile-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2019 Ludovic Courtès +;;; Copyright © 2022 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,8 +20,10 @@ (define-module (guix build guile-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module (guix build utils) + #:use-module (rnrs exceptions) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (ice-9 match) #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) @@ -29,7 +32,8 @@ (define-module (guix build guile-build-system) #:use-module (guix build utils) #:export (target-guile-effective-version %standard-phases - guile-build)) + guile-build + guile-check)) (define* (target-guile-effective-version #:optional guile) "Return the effective version of GUILE or whichever 'guile' is in $PATH. @@ -201,6 +205,42 @@ (define* (build #:key outputs inputs native-inputs source-files)) #t)) +(define* (guile-check #:key tests? test-script (test-arguments '()) + (source-directory ".") + native-inputs inputs + #:allow-other-keys) + (when tests? + ;; Let Guile find the source code of newly compiled modules, + ;; otherwise the modules won't be found even if Guile knows + ;; where the compiled code is. + (setenv "GUILE_LOAD_PATH" + (string-append source-directory + (match (getenv "GUILE_LOAD_PATH") + (#f "") + (path (string-append ":" path))))) + (for-each + (lambda (test-script) + (guard (c ((invoke-error? c) + (when (equal? (list (invoke-error-exit-status c) + (invoke-error-term-signal c) + (invoke-error-stop-signal c)) + '(127 #false #false)) + (display "hint: Make sure 'guile-test-driver' is in\ + 'native-inputs'.\n" + (current-error-port))) + (raise-continuable c))) + (apply invoke "test-driver.scm" + (string-append "--test-name=" test-script) test-arguments))) + (match test-script + ;; Tests can be separated over multiple files. + ((? list? test-scripts) test-scripts) + ((? string? test-script) (list test-script)) + (#false + (format (current-error-port) + "warning: location of test suite is unknown; not running\ + tests~%") + '()))))) + (define* (install-documentation #:key outputs (documentation-file-regexp %documentation-file-regexp) @@ -222,7 +262,7 @@ (define %standard-phases (replace 'build build) (add-after 'build 'install-documentation install-documentation) - (delete 'check) + (replace 'check guile-check) (delete 'strip) (delete 'validate-runpath) (delete 'install))) From patchwork Fri Oct 7 20:53:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: M X-Patchwork-Id: 43210 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B693027BBEA; Fri, 7 Oct 2022 21:54:34 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7D98D27BBE9 for ; Fri, 7 Oct 2022 21:54:34 +0100 (BST) Received: from localhost ([::1]:45444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMb-0005q8-Mw for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56992) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM6-0005VK-N9 for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38472) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM6-0002xt-FV for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM6-0003wb-BB for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 3/6] guile-ffi-fftw: Respect #:tests?. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517604015125 (code B ref 58365); Fri, 07 Oct 2022 20:54:02 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:54:00 +0000 Received: from localhost ([127.0.0.1]:37541 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM3-0003vo-Sb for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:54:00 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v3-LF for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:57 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tvFN; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:49 +0200 Message-Id: <20221007205352.1282-3-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221007205352.1282-1-maximedevos@telenet.be> References: <20221007205352.1282-1-maximedevos@telenet.be> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=Pt16bfvbWzVx0zCQnYB8P2GrRgrIbjiB9pyjCoQQ130=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=gxaBnc9piH7YE9waFl3imL6FzFqVhAj44S2Y5/ZHMqpda2jfBcqOQIPOyuFoQdPNZ LajCYrLNCziORzIwAX9Mj3bwf8TdARXIa11T8tsfa2zTPHTSDh3JTjxLXS/n4dvqg8 Rp4lrzex6Mrk1lfuU6NBk98pQalMdq8wzCwLPu6dCcdkgxzs200rNFhnRZFklWPlJv xDkWxeZZ3EYRTS+Fk+r23RNB/NIrH1dsMrpoflCxbJkvjXJ2BJNg4LaHHNKZIyDtB3 0X6VTQunge0NZc3nZ2pAtJPZSo6tbQd9AYa9mP2WkLPA2TJ2sDMViHZwX3a+E1TpNw CZYTO6S96ROrQ== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/guile-xyz.scm (guile-ffi-fftw)[arguments]<#:test-script>: Set it. [arguments]{#:phases}{check}: Remove custom phase. [native-inputs]: Add native-input required by uncustomised 'check' phase. --- gnu/packages/guile-xyz.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 56f0bb8acc..2ab5683d19 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3682,6 +3682,7 @@ (define-public guile-ffi-fftw (build-system guile-build-system) (arguments `(#:source-directory "mod" + #:test-script "../test/test-ffi-fftw.scm" #:phases (modify-phases %standard-phases (add-after 'unpack 'prepare-build @@ -3689,11 +3690,8 @@ (define-public guile-ffi-fftw (substitute* "mod/ffi/fftw.scm" (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)") (format #f "\"~a/lib\"" (assoc-ref inputs "fftw")))) - #t)) - (add-after 'build 'check - (lambda _ - (invoke "guile" "-L" "mod" - "-s" "test/test-ffi-fftw.scm")))))) + #t))))) + (native-inputs (list guile-test-driver)) (inputs (list fftw guile-2.2)) (home-page "https://github.com/lloda/guile-ffi-fftw/") From patchwork Fri Oct 7 20:53:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: M X-Patchwork-Id: 43212 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id E460027BBEA; Fri, 7 Oct 2022 21:54:46 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 9A04227BBE9 for ; Fri, 7 Oct 2022 21:54:46 +0100 (BST) Received: from localhost ([::1]:46856 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMn-0006DK-Py for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56998) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM8-0005W5-BJ for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38475) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM7-0002yG-VS for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM7-0003x4-Qs for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 4/6] guile-ffi-fftw: Modernise style. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517604115155 (code B ref 58365); Fri, 07 Oct 2022 20:54:03 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:54:01 +0000 Received: from localhost ([127.0.0.1]:37547 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM5-0003wC-4X for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:54:01 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40946) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v4-LX for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:58 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tvFR; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:50 +0200 Message-Id: <20221007205352.1282-4-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221007205352.1282-1-maximedevos@telenet.be> References: <20221007205352.1282-1-maximedevos@telenet.be> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=lG2k5hn/qrsrgU1bAoLtbakH1bjt9nR7foNGcsSmVdg=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=CosOHsRJbYGaqP18bWdkP0z67a79c6lDcXlq8xV/IyktxK1ZNKS6txJBxz7zKjafP pxeAWy4liVjYPVg55BJajg9JNTsHOR2jTg4CosuVe8CJ3Jc9l/WK2w7EePmZM4YguX RxDTf+qWdGfBYnvtbPo/rUP49Rx61agwVueRH2HkuHvFsxqVrFtTQf1spuFjUxeCHj uT0lh9nIrRDQq6DARC58mv3rA9QxmhxhlMxsDmHPigOUQI9HJ6d2xr0O5M54hGAhAO ejQ+3CGiMCKbFK8IJ74kMnDl9FqhIxHuZuyPJkwy7zbKZuQXP8dkvnMNHOjm0vf3Wh 3a3UgQXWC6BPQ== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches The 'object->string' change is more a personal thing. "guix style" adds modify-phases on the same line as #:phases, causing the 80-columns limit to be exceeded, so it has been partially ignored. * gnu/packages/guile-xyz.scm (guile-ffi-fftw)[arguments]<#:test-script>: Set it. [arguments]{#:phases}{check}: Remove custom phase. [native-inputs]: Add native-input required by uncustomised 'check' phase. --- gnu/packages/guile-xyz.scm | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 2ab5683d19..a664e37968 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3681,22 +3681,23 @@ (define-public guile-ffi-fftw "08j40a5p6a8pgvhffmzb5rfdnrav2mksy3gfjkdqy93jfj1z5afg")))) (build-system guile-build-system) (arguments - `(#:source-directory "mod" - #:test-script "../test/test-ffi-fftw.scm" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'prepare-build - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "mod/ffi/fftw.scm" - (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)") - (format #f "\"~a/lib\"" (assoc-ref inputs "fftw")))) - #t))))) + (list #:source-directory "mod" + #:test-script "../test/test-ffi-fftw.scm" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'prepare-build + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "mod/ffi/fftw.scm" + (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)") + (object->string + (dirname + (search-input-file inputs "lib/libfftw3.so")))))))))) (native-inputs (list guile-test-driver)) - (inputs - (list fftw guile-2.2)) + (inputs (list fftw guile-2.2)) (home-page "https://github.com/lloda/guile-ffi-fftw/") (synopsis "Access FFTW through Guile's FFI") - (description "This is a minimal set of Guile FFI bindings for the FFTW + (description + "This is a minimal set of Guile FFI bindings for the FFTW library's ‘guru interface’. It provides two functions: @code{fftw-dft! rank sign in out} and @code{fftw-dft rank sign in}. These bindings being minimal, there is no support for computing & reusing plans, or split r/i transforms, or From patchwork Fri Oct 7 20:53:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: M X-Patchwork-Id: 43209 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 7275527BBE9; Fri, 7 Oct 2022 21:54:27 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 777D527BBEA for ; Fri, 7 Oct 2022 21:54:26 +0100 (BST) Received: from localhost ([::1]:58198 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMT-0005Ws-Jw for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM7-0005VT-A2 for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38473) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM7-0002y3-1a for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM6-0003wj-TO for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 5/6] guile-ffi-fftw: Update to new Guile version. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517604015132 (code B ref 58365); Fri, 07 Oct 2022 20:54:02 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:54:00 +0000 Received: from localhost ([127.0.0.1]:37543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM4-0003vu-6S for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:54:00 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40956) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v5-LG for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:58 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tvFT; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:51 +0200 Message-Id: <20221007205352.1282-5-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221007205352.1282-1-maximedevos@telenet.be> References: <20221007205352.1282-1-maximedevos@telenet.be> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=2VkR/tVMkgTqcl8CyakIQxHRwHrIUSTt/wvK348qVpQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=IWIaKvM/Ensa94KISTbOyo1U73STM7nWeFv0Dm5U20XI+zpv+IKL/iTYX2aKwP/rd ktPQFrE4Bw1l+LgOzgZXOcp0kZO7z170imk4uF0oleeOofrVPgPI4wyLMOoitwI6PS pKGEOUFFxgHrhvUuOQWfEkw9YLK3znDubmNSyI83twYwZrU3oxqJSweR+WyeWeqDs6 ZsIojMNpkKlPP0LDZADqTJJSeQCZRUgXyxgGCMfJVMWfXdIkjB2tq7JiQpLfSHFY59 fPfvVhvLvtcq3nKMJplRcrBP8wHaNFCnCRal13p4PWmMF/JEnM9fU9Xks7xejd5Y54 rMYYp82A4/wTg== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches It seems to build (including tests) fine and there are no dependents, so it appears safe to update to a newer Guile version. * gnu/packages/guile-xyz.scm (guile-ffi-fftw)[inputs]{guile-2.2}: Replace by guile-3.0. --- gnu/packages/guile-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index a664e37968..711e2eade9 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3693,7 +3693,7 @@ (define-public guile-ffi-fftw (dirname (search-input-file inputs "lib/libfftw3.so")))))))))) (native-inputs (list guile-test-driver)) - (inputs (list fftw guile-2.2)) + (inputs (list fftw guile-3.0)) (home-page "https://github.com/lloda/guile-ffi-fftw/") (synopsis "Access FFTW through Guile's FFI") (description From patchwork Fri Oct 7 20:53:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: M X-Patchwork-Id: 43208 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D919E27BBEB; Fri, 7 Oct 2022 21:54:26 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,SPF_HELO_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 288AB27BBE9 for ; Fri, 7 Oct 2022 21:54:26 +0100 (BST) Received: from localhost ([::1]:58196 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oguMT-0005WJ-AL for patchwork@mira.cbaines.net; Fri, 07 Oct 2022 16:54:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56990) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oguM6-0005VD-FV for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38471) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oguM6-0002xm-0S for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oguM5-0003wU-S8 for guix-patches@gnu.org; Fri, 07 Oct 2022 16:54:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58365] [PATCH 6/6] guile-ac-d-bus: Don't duplicate 'check' phase. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 07 Oct 2022 20:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58365 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58365@debbugs.gnu.org Cc: Maxime Devos Received: via spool by 58365-submit@debbugs.gnu.org id=B58365.166517603915118 (code B ref 58365); Fri, 07 Oct 2022 20:54:01 +0000 Received: (at 58365) by debbugs.gnu.org; 7 Oct 2022 20:53:59 +0000 Received: from localhost ([127.0.0.1]:37539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM3-0003vf-JR for submit@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:59 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:40962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oguM0-0003v7-LH for 58365@debbugs.gnu.org; Fri, 07 Oct 2022 16:53:57 -0400 Received: from localhost.localdomain ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id V8tu2800920ykKC018tvFV; Fri, 07 Oct 2022 22:53:55 +0200 From: Maxime Devos Date: Fri, 7 Oct 2022 22:53:52 +0200 Message-Id: <20221007205352.1282-6-maximedevos@telenet.be> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221007205352.1282-1-maximedevos@telenet.be> References: <20221007205352.1282-1-maximedevos@telenet.be> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1665176035; bh=aZbjeuw+7bvIRoCctY7daLGCA6VyxP9bmLoo1omsXfE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=G5HpgZFR750JTGuCBiPuQo/hLW/KFDpXTnzEyNSW/tH7xL8PbUaNrWWEszQZYDUrF MSMEMkRsF08fmOBqFTwsev3X/2GsZaeDSQdDL+fn09ChyifYbhIgmSxBGChvRn7uXE g0wel2qCCNAFMlycEVn72zRgBjOrXChUsWZSNJfYwJdf7YJuAK9lhGS/Z+3rqWcmG7 3pP6p5v49MRWe8cgcljTOOfCRjVCXsfrX/x/8c8S+I2XQ/eu4LFInL9mO2doPP4kHE tk70kgN/xQ7ceuorpk2O7T5VihojOfCxJ6imiCnEx1e2DK1Ixx4XwEFDGx0W+36Ybo FYLB/G72/OfaA== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches Now guile-build-system has a 'check' phase, the 'check' phase is duplicated. It's harmless, but let's not. * gnu/packages/guile-xyz.scm (guile-ac-d-bus)[arguments]<#:phases>{check}: Instead of adding the phase, replace it. --- gnu/packages/guile-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 711e2eade9..0339bf8281 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -3911,7 +3911,7 @@ (define (guile-sls->sls file) (lambda _ (with-directory-excursion "docs" (invoke "makeinfo" "ac-d-bus")))) - (add-after 'build-doc 'check + (replace 'check (lambda* (#:key (tests? #t) #:allow-other-keys) (when tests? ;; There is no locale for the ö character, which crashes