[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#77093] [PATCH rust-team v2 02/17] build/cargo: Print out all non-em
From: |
Hilton Chain |
Subject: |
[bug#77093] [PATCH rust-team v2 02/17] build/cargo: Print out all non-empty binary files. |
Date: |
Tue, 18 Mar 2025 22:26:45 +0800 |
* guix/build/cargo-build-system.scm (%standard-phases): Move
'unpack-rust-crates after 'unpack.
Move 'check-for-pregenerated-files after 'configure.
(check-for-pregenerated-files): Only check non-empty files.
Print out binary files.
Run in parallel.
Don't fail to keep compatibility for phase order change.
Change-Id: I0a332fe843e97687324bd908fa111422a63e475d
---
guix/build/cargo-build-system.scm | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/guix/build/cargo-build-system.scm
b/guix/build/cargo-build-system.scm
index 41f54f42b7..58238992b8 100644
--- a/guix/build/cargo-build-system.scm
+++ b/guix/build/cargo-build-system.scm
@@ -29,9 +29,11 @@ (define-module (guix build cargo-build-system)
#:use-module ((guix build utils) #:hide (delete))
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
+ #:use-module (ice-9 regex)
#:use-module (ice-9 ftw)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
+ #:use-module (ice-9 threads)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%standard-phases
@@ -111,12 +113,29 @@ (define* (unpack-rust-crates #:key inputs vendor-dir
#:allow-other-keys)
(define (rust-package? name)
(string-prefix? "rust-" name))
-(define* (check-for-pregenerated-files #:rest _)
+(define* (check-for-pregenerated-files #:key parallel-build?
#:allow-other-keys)
"Check the source code for files which are known to generally be bundled
libraries or executables."
- (let ((pregenerated-files (find-files "." "\\.(a|dll|dylib|exe|lib)$")))
- (when (not (null-list? pregenerated-files))
- (error "Possible pre-generated files found:" pregenerated-files))))
+ (format #t "Searching for binary files...~%")
+ (let ((known-pattern (make-regexp "\\.(a|dll|dylib|exe|lib)$"))
+ (empty-file?
+ (lambda (filename)
+ (call-with-ascii-input-file filename
+ (lambda (p)
+ (eqv? #\0 (read-char p)))))))
+ (n-par-for-each
+ (if parallel-build?
+ (parallel-job-count)
+ 1)
+ (lambda (file)
+ (unless (empty-file? file)
+ ;; Print out binary files.
+ (false-if-exception (invoke "grep" "-IL" "." file))
+ ;; Warn about known pre-generated files.
+ ;; Not failing here for compatibility with existing packages.
+ (when (regexp-exec known-pattern file)
+ (format #t "error: Possible pre-generated file found: ~a~%" file))))
+ (find-files "."))))
(define* (configure #:key inputs
target system
@@ -380,8 +399,8 @@ (define %standard-phases
(replace 'check check)
(replace 'install install)
(add-after 'build 'package package)
- (add-after 'unpack 'check-for-pregenerated-files
check-for-pregenerated-files)
- (add-after 'check-for-pregenerated-files 'unpack-rust-crates
unpack-rust-crates)
+ (add-after 'unpack 'unpack-rust-crates unpack-rust-crates)
+ (add-after 'configure 'check-for-pregenerated-files
check-for-pregenerated-files)
(add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
patch-cargo-checksums)))
(define* (cargo-build #:key inputs (phases %standard-phases)
--
2.48.1
- [bug#77093] [PATCH rust-team 11/18] scripts: import: Support expressions defined by 'define., (continued)
[bug#77093] [PATCH rust-team 16/18] import: crate: Add Cargo.lock parser., Hilton Chain, 2025/03/18
[bug#77093] [PATCH rust-team 17/18] import: crate: Add ‘--lockfile’ option., Hilton Chain, 2025/03/18
[bug#77093] [PATCH rust-team 18/18] doc: Document lockfile importer based Rust packaging workflow., Hilton Chain, 2025/03/18
[bug#77093] [PATCH rust-team v2 00/17] New Rust packaging workflow based on lockfile importer., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 01/17] build/cargo: Pass ‘--offline’ to cargo., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 02/17] build/cargo: Print out all non-empty binary files.,
Hilton Chain <=
- [bug#77093] [PATCH rust-team v2 05/17] build/cargo: Set default value of arguments for build phases., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 04/17] build-system: cargo: Support installing Cargo workspace., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 07/17] build/cargo: Support non-workspace directory source inputs., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 08/17] scripts: import: Document argument for ‘--insert’ option in help message., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 06/17] build/cargo: Don't try to unpack sanity-check.py., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 03/17] build-system: cargo: Support packaging Cargo workspace., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 09/17] scripts: import: Add two newlines for ‘--insert’ option., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 15/17] import: crate: Add Cargo.lock parser., Hilton Chain, 2025/03/18
- [bug#77093] [PATCH rust-team v2 10/17] scripts: import: Support expressions defined by 'define., Hilton Chain, 2025/03/18