mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-17 20:27:36 -05:00
build: ruby-build-system: Adjust replace-git-ls-files.
The file names returned by `find ...` instead of `git ls-files...` contains
leading './' characters, which can cause problems when the file lists is
further processed with regexps, for example, as was discovered while updating
the ruby-asciidoctor package in commit
5df1126c3a
.
* guix/build/ruby-build-system.scm (replace-git-ls-files): Strip the first two
characters ("./") of the file names returned by the 'find' command. Fix typo
in doc. Simplify '(when (not ...' into '(unless ...'.
This commit is contained in:
parent
15e7167405
commit
a7b1cc333e
1 changed files with 11 additions and 4 deletions
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2015 Pjotr Prins <pjotr.public01@thebird.nl>
|
;;; Copyright © 2015 Pjotr Prins <pjotr.public01@thebird.nl>
|
||||||
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -73,13 +74,19 @@ (define (first-gemspec)
|
||||||
|
|
||||||
(define* (replace-git-ls-files #:key source #:allow-other-keys)
|
(define* (replace-git-ls-files #:key source #:allow-other-keys)
|
||||||
"Many gemspec files downloaded from outside rubygems.org use `git ls-files`
|
"Many gemspec files downloaded from outside rubygems.org use `git ls-files`
|
||||||
to list of the files to be included in the built gem. However, since this
|
to list the files to be included in the built gem. However, since this
|
||||||
operation is not deterministic, we replace it with `find`."
|
operation is not deterministic, we replace it with `find`."
|
||||||
(when (not (gem-archive? source))
|
(unless (gem-archive? source)
|
||||||
(let ((gemspec (first-gemspec)))
|
(let ((gemspec (first-gemspec)))
|
||||||
|
;; Do not include the freshly built .gem itself as it causes problems.
|
||||||
|
;; Strip the first 2 characters ("./") to more exactly match the output
|
||||||
|
;; given by 'git ls-files'. This is useful to prevent breaking regexps
|
||||||
|
;; that could be used to filter the list of files.
|
||||||
(substitute* gemspec
|
(substitute* gemspec
|
||||||
(("`git ls-files`") "`find . -type f |sort`")
|
(("`git ls-files`")
|
||||||
(("`git ls-files -z`") "`find . -type f -print0 |sort -z`"))))
|
"`find . -type f -not -regex '.*\\.gem$' | sort | cut -c3-`")
|
||||||
|
(("`git ls-files -z`")
|
||||||
|
"`find . -type f -not -regex '.*\\.gem$' -print0 | sort -z | cut -zc3-`"))))
|
||||||
#t)
|
#t)
|
||||||
|
|
||||||
(define* (extract-gemspec #:key source #:allow-other-keys)
|
(define* (extract-gemspec #:key source #:allow-other-keys)
|
||||||
|
|
Loading…
Reference in a new issue