From 17c26b7ec52b21f19234eaf160036ad400071eb0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 12 Aug 2019 13:57:44 +0300 Subject: build/cargo-build-system: Move generate-all-checksums to cargo-utils. * guix/build/cargo-build-system.scm (generate-all-checksums): Move procedure ... * guix/build/cargo-utils.scm: ... to here. --- guix/build/cargo-build-system.scm | 15 --------------- guix/build/cargo-utils.scm | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 16 deletions(-) (limited to 'guix') diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 7d363a18a5..8aa9390457 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -40,21 +40,6 @@ ;; ;; Code: -;; TODO: Move this to (guix build cargo-utils). Will cause a full rebuild -;; of all rust compilers. - -(define (generate-all-checksums dir-name) - (for-each - (lambda (filename) - (let* ((dir (dirname filename)) - (checksum-file (string-append dir "/.cargo-checksum.json"))) - (when (file-exists? checksum-file) (delete-file checksum-file)) - (display (string-append - "patch-cargo-checksums: generate-checksums for " - dir "\n")) - (generate-checksums dir))) - (find-files dir-name "Cargo.toml$"))) - (define (manifest-targets) "Extract all targets from the Cargo.toml manifest" (let* ((port (open-input-pipe "cargo read-manifest")) diff --git a/guix/build/cargo-utils.scm b/guix/build/cargo-utils.scm index 79e5440378..5ac429a62a 100644 --- a/guix/build/cargo-utils.scm +++ b/guix/build/cargo-utils.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2019 Ivan Petkov +;;; Copyright © 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,8 @@ #:use-module (guix build utils) #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) - #:export (generate-checksums)) + #:export (generate-checksums + generate-all-checksums)) ;; Commentary: ;; @@ -66,3 +68,15 @@ the same directory." (display "},\"package\":" port) (write (file-sha256 "/dev/null") port) (display "}" port))))) + +(define (generate-all-checksums dir-name) + (for-each + (lambda (filename) + (let* ((dir (dirname filename)) + (checksum-file (string-append dir "/.cargo-checksum.json"))) + (when (file-exists? checksum-file) (delete-file checksum-file)) + (display (string-append + "patch-cargo-checksums: generate-checksums for " + dir "\n")) + (generate-checksums dir))) + (find-files dir-name "Cargo.toml$"))) -- cgit v1.2.3 From d967fbc13aaf47c8d7edc4102e45f2eaf8902ed8 Mon Sep 17 00:00:00 2001 From: Björn Höfling Date: Wed, 6 Mar 2019 08:05:06 +0100 Subject: gnu: ant-build-system: Don't override symlinks. When repacking jar-files, don't work on symlinks: Otherwise, they would be overridden with the repacked jar-file. * guix/build/ant-build-system.scm (regular-jar-file-predicate): New procedure. (generate-jar-indices, strip-jar-timestamps): Use it. --- guix/build/ant-build-system.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'guix') diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm index 49549c1b4b..fae1b47ec5 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2018 Ricardo Wurmus +;;; Copyright © 2019 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -171,6 +172,12 @@ to the default GNU unpack strategy." #:allow-other-keys) (apply invoke `("ant" ,build-target ,@make-flags))) +(define (regular-jar-file-predicate file stat) + "Predicate returning true if FILE is ending on '.jar' +and STAT indicates it is a regular file." + (and ((file-name-predicate "\\.jar$") file stat) + (eq? 'regular (stat:type stat)))) + (define* (generate-jar-indices #:key outputs #:allow-other-keys) "Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps and is preferred over \"META-INF/MANIFEST.MF\", which does use word wraps, @@ -181,7 +188,10 @@ dependencies of this jar file." (invoke "jar" "-i" jar)) (for-each (match-lambda ((output . directory) - (for-each generate-index (find-files directory "\\.jar$")))) + (for-each generate-index + (find-files + directory + regular-jar-file-predicate)))) outputs) #t) @@ -222,7 +232,8 @@ repack them. This is necessary to ensure that archives are reproducible." (for-each (match-lambda ((output . directory) - (for-each repack-archive (find-files directory "\\.jar$")))) + (for-each repack-archive + (find-files directory regular-jar-file-predicate)))) outputs) #t) -- cgit v1.2.3