| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes <https://issues.guix.gnu.org/30116>.
Before this change, the presence of a NUL character on a line meant that
the (glibc) regexp engine used by Guile would either 1. stop scanning the
string or 2. crash with the error "string contains #\\nul character",
depending on the locale used.
This change works around this limitation by first replacing the NUL character
by an unused Unicode code point, doing the substitution, then reverting the
replacement.
* guix/build/utils.scm (unused-private-use-code-point)
(replace-char): New procedures.
(substitute): Make use of the above procedures to work around the NUL
character regexp engine limitation.
* tests/build-utils.scm: Add tests.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
|
|
|
|
| |
* guix/build/utils.scm (copy-recursively): In the "leaf" procedure, call
'set-file-time' also on symlinks.
|
|
|
|
|
| |
* guix/build/utils.scm (AT_SYMLINK_NOFOLLOW): New variable.
(set-file-time): Use it.
|
|
|
|
|
|
| |
* guix/build/utils.scm (copy-recursively): Add #:keep-permissions? and
honor it.
* doc/guix.texi (Build Utilities): Adjust accordingly.
|
|
|
|
|
| |
* guix/build/utils.scm (copy-recursively): Add #:copy-file and honor it.
* doc/guix.texi (Build Utilities): Adjust accordingly.
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/44741>.
* guix/build/utils.scm (copy-recursively): Move 'set-file-time' call
from 'down' to 'up'.
|
|
|
|
|
|
|
|
| |
Reported by Vagrant Cascadian <vagrant@debian.org>
in <https://bugs.gnu.org/44626>.
* guix/build/utils.scm (wrap-script): Use 'display' instead of passing a
non-literal string to 'format'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
xz compression is slow; using the multi-thread mode of xz can make it more
than 6 times faster, for example when compressing the large linux-libre
source.
* guix/build/utils.scm (%xz-parallel-args): New procedure.
* guix/packages.scm (patch-and-repack): Specify the required above xz
arguments by setting the XZ_DEFAULTS environment variable.
* guix/scripts/pack.scm (%compressors, bootstrap-xz): Modify the commands
Gexps so they do not need to be quoted. This allows lazily evaluating the
arguments on the builder's side. Specify the required xz arguments.
(self-contained-tarball): Do not quote the compressor command value.
(docker-image): Likewise.
* guix/utils.scm (decompressed-port, compressed-port)
(compressed-output-port): Specify the required above xz arguments.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it so that delete-file-recursively honors its docstring, which says
it should "report but ignore errors".
Fixes <https://issues.guix.gnu.org/43366>.
* guix/build/utils.scm (warn-on-error): New syntax.
(delete-file-recursively): Use it to catch exceptions and print warning
messages.
Reported-by: Fredrik Salomonsson <plattfot@gmail.com>
|
|
|
|
|
|
| |
* guix/utils.scm: Re-export 'call-with-temporary-output-file'.
(call-with-temporary-output-file): Move to...
* guix/build/utils.scm (call-with-temporary-output-file): ... here.
|
|
|
|
|
| |
* guix/build/utils.scm (dump-port): Add optional 'len' parameter and
honor it.
|
|
|
|
|
| |
* guix/build/utils.scm (substitute*): Fix typo in example in docstring,
use consistent variable names.
|
|
|
|
| |
* guix/build/utils.scm (patch-shebang): Match only absolute paths.
|
|
|
|
| |
* guix/build/utils.scm: Export make-desktop-entry-file.
|
|
|
|
| |
* guix/build/utils.scm (make-desktop-entry-file): New procedure.
|
|
|
|
|
|
|
|
|
|
|
| |
* gnu/build/bootloader.scm (G_): Remove.
(open-pipe-with-stderr, invoke/quiet): Move to...
* guix/build/utils.scm: ... here. Use 'let-values' instead of
'define-values' because Guile 2.0 (the bootstrap Guile) doesn't know
about 'define-values'.
* po/guix/POTFILES.in: Remove gnu/build/bootloader.scm, and add
guix/build/utils.scm.
* tests/build-utils.scm: Remove import of (gnu build bootloader).
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (wrap-script): New procedure.
(&wrap-error): New condition.
(wrap-error?, wrap-error-program, wrap-error-type): New procedures.
* tests/build-utils.scm ("wrap-script, simple case", "wrap-script, with
encoding declaration", "wrap-script, raises condition"): New tests.
|
|
|
|
|
|
| |
* guix/build/utils.scm (report-invoke-error): New procedure.
* guix/build/gnu-build-system.scm (gnu-build): Guard against
'invoke-error?'.
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (setvbuf) [(and guile-2 (not guile-2.2))]: New
procedure.
(remove-store-references): Use the 2.2 'setvbuf' API style.
* guix/build/gnu-build-system.scm (gnu-build): Likewise.
|
|
|
|
|
|
| |
* guix/build/python-build-system.scm (wrap): Only wrap executables that have
not already been wrapped.
* guix/build/utils.scm (wrapper?): New function.
|
|
|
|
|
| |
* guix/build/utils.scm (wrap-program)[export-variable]: Generate valid bash
substitutions when using custom separators.
|
|
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (&invoke-error): New condition type.
(invoke-error?, invoke-error-program, invoke-error-arguments)
(invoke-error-exit-status, invoke-error-term-signal)
(invoke-error-stop-signal): New exported procedures.
(invoke): Raise exceptions using SRFI-34 and SRFI-35.
* guix/ui.scm (call-with-error-handling): Add a guard clause
for &invoke-error conditions.
|
|
|
|
| |
* guix/build/utils.scm (false-if-file-not-found): New macro.
|
|
|
|
|
|
|
|
|
| |
When current-processor-count is used without (ice-9 threads) being used, Guile
complains with the following warning:
Import (ice-9 threads) to have access to `current-processor-count'.
* guix/build/utils.scm: Use (ice-9 threads).
|
|
|
|
|
|
| |
* guix/build/utils.scm (invoke): New variable.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
| |
* guix/build/utils.scm: Reexport 'delete' binding.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
| |
* gnu/build/activation.scm (make-file-writable): Move this to ...
* guix/build/utils.scm (make-file-writable): ... here. Export it.
* guix/build/gnu-build-system.scm (strip): Use it.
|
|
|
|
|
| |
* guix/build/utils.scm (%gzip-magic-bytes): New variable.
(gzip-file?, reset-gzip-timestamp): New procedures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for single-entry search paths.
Fixes <http://bugs.gnu.org/25422>.
Reported by Leo Famulari <leo@famulari.name>.
* guix/search-paths.scm (<search-path-specification>)[separator]:
Document as string or #f.
(evaluate-search-paths): Add case for SEPARATOR as #f.
(environment-variable-definition): Handle SEPARATOR being #f.
* guix/build/utils.scm (list->search-path-as-string): Add case for
SEPARATOR as #f.
(search-path-as-string->list): Likewise.
* guix/build/profiles.scm (abstract-profile): Likewise.
* tests/search-paths.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* tests/packages.scm ("--search-paths with single-item search path"):
New test.
* gnu/packages/version-control.scm (git)[native-search-paths](separator):
New field.
|
|
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (wrap-program)[wrapper-file-name]
[next-wrapper-number, wrapper-target]: Remove.
[wrapped-file, already-wrapped?]: New variables.
[last-line]: New procedure.
Use it to append to PROG when a wrapper already exists.
* tests/build-utils.scm ("wrap-program, one input, multiple calls"):
Adjust the list of files to delete.
|
|
|
|
| |
* guix/build/utils.scm (modify-phases): Fix the documentation string.
|
|
|
|
|
|
| |
* guix/build/utils.scm (search-path-as-list)[pattern]: Check requested file
type. Check pattern against directory names.
* guix/search-paths.scm (evaluate-search-paths)[pattern]: Remove symlink hack.
|
|
|
|
|
| |
* guix/build/gnu-build-system.scm (every*): Move to...
* guix/build/utils.scm (every*): ... here. New procedure.
|
|
|
|
|
| |
* guix/build/utils.scm (find-files): Add DIRECTORIES? and FAIL-ON-ERROR?
keyword arguments.
|
|
|
|
|
|
|
|
| |
* guix/utils.scm (package-name->name+version): Move to...
* guix/build/utils.scm (package-name->name+version): ... here. New
procedure.
* guix/build/emacs-build-system.scm (package-name->name+version):
Remove.
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (strip-store-file-name): New procedure.
* guix/build/emacs-build-system.scm (store-directory->name-version):
Remove. Update callers to use 'strip-store-file-name'.
* gnu/packages/gcc.scm (make-libstdc++-doc)[arguments]: Use
'strip-store-file-name' instead of 'string-drop'.
|
|
|
|
| |
* guix/build/utils.scm (install-file): New procedure.
|
|
|
|
|
|
|
|
| |
Fixes <http://bugs.gnu.org/20081>.
Reported by Tomáš Čech <sleep_walker@suse.cz>.
* guix/build/utils.scm (find-files): Add #:stat parameter. Pass it as
last argument to 'file-system-fold'.
|
|
|
|
|
|
|
|
|
| |
* guix/build/gremlin.scm (validate-needed-in-runpath)[runpath]:
Add (filter absolute-file-name? ...).
Emit a warning when RUNPATH file names that do not match
'store-file-name?'. Change format of error message to begin with file
name.
* guix/build/utils.scm (store-file-name?): New procedure.
|
|
|
|
| |
* guix/build/utils.scm (find-files): Make 'pred' optional.
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (file-name-predicate): New procedure.
(find-files): Rename second parameter to 'pred'. When 'pred' is not a
procedure, call 'file-name-predicate'. Use PRED instead of
'regexp-exec' in the leaf procedure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Suggested by Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>.
* guix/build/utils.scm (%modify-phases): Remove quotes.
* guix/build/cmake-build-system.scm (%standard-phases): Adjust
accordingly.
* guix/build/glib-or-gtk-build-system.scm (%standard-phases): Likewise.
* guix/build/gnu-dist.scm (%dist-phases): Likewise.
* guix/build/perl-build-system.scm (%standard-phases): Likewise.
* guix/build/python-build-system.scm (%standard-phases): Likewise.
* guix/build/ruby-build-system.scm (%standard-phases): Likewise.
* guix/build/waf-build-system.scm (%standard-phases): Likewise.
* gnu/packages/bash.scm, gnu/packages/code.scm, gnu/packages/gl.scm,
gnu/packages/gnome.scm, gnu/packages/graphics.scm,
gnu/packages/image.scm, gnu/packages/key-mon.scm,
gnu/packages/ocr.scm, gnu/packages/plotutils.scm,
gnu/packages/search.scm, gnu/packages/video.scm: Likewise.
|
|
|
|
|
| |
* guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file): Wrap
'substitute*' in 'with-fluids'. Fixes <http://hydra.gnu.org/build/262895>.
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (get-char*): New procedure.
(patch-shebang): Use it instead of 'read-char'.
(fold-port-matches): Remove local 'get-char' and use 'get-char*'
instead.
|
|
|
|
|
| |
* guix/build/utils.scm (dump-port): Add call to PROGRESS at the
beginning.
|
|
|
|
|
|
|
| |
Suggested by Mark H Weaver.
* guix/build/utils.scm (locale-category->string): New procedure.
* guix/build/gnu-build-system.scm (install-locale): Add 'setenv' call.
|
|
|
|
| |
* guix/build/utils.scm (modify-phases): New macro.
|
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (wrap-program): Preserve symbolic links instead of
copying the contents of the link.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Closes <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19743>.
|
|
|
|
|
|
|
|
|
|
| |
* guix/build/utils.scm (wrap-program): Create scripts that use $0 (which is
usually just the base name) instead of the absolute path to the original
program. Alternative implementation of 2ed11b3.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Closes <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19742>.
|
|
|
|
|
| |
* guix/build/utils.scm (search-path-as-list): Delete duplicate input
directories before searching.
|