me
/
guix
Archived
1
0
Fork 0

gnu: phoronix-test-suite: Do not propagate gcc-toolchain.

* gnu/packages/benchmark.scm (gcc-toolchain*): Replace gcc-toolchain-12
reference with gcc-toolchain.
* gnu/packages/benchmark.scm (phoronix-test-suite): Augment wrap-binary phase
with GCC variables.
[propagated-inputs]: Delete field, moving gcc-toolchain to...
[inputs]: ... here.
[search-paths]: New field.
master
Maxim Cournoyer 2023-10-04 23:09:58 -04:00
parent 2d8aa104aa
commit 22d2f94eb2
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 26 additions and 11 deletions

View File

@ -34,6 +34,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix search-paths)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
@ -70,11 +71,10 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
;; Lazily resolve the gcc-toolchain to avoid a circular dependency. Always ;; Lazily resolve the gcc-toolchain to avoid a circular dependency.
;; use the latest available toolchain to avoid conflicts in user profiles.
(define gcc-toolchain* (define gcc-toolchain*
(delay (module-ref (resolve-interface '(gnu packages commencement)) (delay (module-ref (resolve-interface '(gnu packages commencement))
'gcc-toolchain-12))) 'gcc-toolchain)))
(define-public fio (define-public fio
(package (package
@ -351,24 +351,39 @@ file metadata operations that can be performed per second.")
(invoke "./install-sh" #$output "--free-software-only"))) (invoke "./install-sh" #$output "--free-software-only")))
(add-after 'install 'wrap-binary (add-after 'install 'wrap-binary
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((pts (string-append #$output "/bin/phoronix-test-suite"))) (let ((pts (string-append #$output "/bin/phoronix-test-suite"))
(gcc #$(this-package-input "gcc-toolchain")))
(wrap-program pts (wrap-program pts
(list "PATH" 'prefix (list "PATH" 'prefix
(map (lambda (binary) (map (lambda (binary)
(dirname (search-input-file (dirname (search-input-file
inputs (string-append "bin/" binary)))) inputs (string-append "bin/" binary))))
'("bash" "cat" ;coreutils '("bash" "cat" ;coreutils
"gzip" "make" "php" "sed" "tar" "which")))))))))) "gcc"
"gzip" "make" "php" "sed" "tar" "which")))
;; Wrap the GCC compiler paths.
(list "C_INCLUDE_PATH" 'prefix
(list (string-append gcc "/include")))
(list "CPLUS_INCLUDE_PATH" 'prefix
(list (string-append gcc "/include/c++")
(string-append gcc "/include")))
(list "LIBRARY_PATH" 'prefix
(list (string-append gcc "/lib"))))))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list python which)) (native-inputs (list python which))
;; Wrap the most basic build tools needed by Phoronix Test Suite to build ;; Wrap the most basic build tools needed by Phoronix Test Suite to build
;; simple tests such as 'fio'. ;; simple tests such as 'fio'.
(inputs (list bash coreutils gnu-make gzip php sed tar which)) (inputs
;; Phoronix Test Suite builds and caches the benchmarking tools itself; (list bash
;; the user is required to manually install extra libraries depending on coreutils
;; the selected test; but at least a working C/C++ toolchain is assumed to (force gcc-toolchain*)
;; be available. gnu-make
(propagated-inputs (list (force gcc-toolchain*))) gzip
php
sed
tar
which))
(native-search-paths %gcc-search-paths)
(home-page "https://www.phoronix-test-suite.com/") (home-page "https://www.phoronix-test-suite.com/")
(synopsis "Automated testing/benchmarking software") (synopsis "Automated testing/benchmarking software")
(description (description