1214 Commits

Author SHA1 Message Date
Jakub Kądziołka
927c251846
cargo-build-system: Accept a #:features argument
* guix/build/cargo-build-system.scm (build, install): Pass the features
  to cargo.
  (check): Remove indirection layer for consistency with build and
  install.
* guix/build-system/cargo.scm (cargo-build): New argument; pass it into
  the builder.
* gnu/packages/rust-apps.scm (ripgrep): Use the new argument instead of
  a custom phase.
2020-03-23 19:30:38 +01:00
Maxim Cournoyer
afc6b1c0b6
build: emacs-utils: Add an option to select scoping for batch eval.
In Emacs 27, --eval now evaluates using lexical scoping.  This change adds an
option to select dynamic scoping, by using a workaround proposed in
<https://bugs.gnu.org/39823>.

* guix/build/emacs-utils.scm (emacs-batch-eval): Add a DYNAMIC? keyword
argument.  Wrap the EXPR with a call to EVAL that makes use of the argument
to select the scoping mode.
(emacs-generate-autoloads): Use it.
2020-03-22 21:17:38 -04:00
Mathieu Othacehe
c086c5af1c
build-system: linux-module: Fix cross compilation.
* guix/build-system/linux-module.scm (default-kmod, default-gcc): Delete
procedures.
(system->arch): New procedure.
(make-linux-module-builder)[native-inputs]: Move linux...
[inputs]: ...to here.
(linux-module-build-cross): New procedure.
(linux-module-build): Add TARGET.  Pass TARGET and ARCH to build side.
(lower): Allow cross-compilation.  Move "linux" and "linux-module-builder"
to host-inputs.  Add target-inputs.  Call linux-module-build-cross if
TARGET is set, linux-module-build otherwise.
* guix/build/linux-module-build-system.scm (configure): Add ARCH argument.
(linux-module-build): Adjust comment.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-03-22 13:20:07 +01:00
Ludovic Courtès
9a067fe7ee
syscalls: 'with-file-lock' re-grabs lock when reentering its dynamic extent.
* guix/build/syscalls.scm (call-with-file-lock)
(call-with-file-lock/no-wait): Initialize PORT in the 'dynamic-wind'
"in" handler.  This allows us to re-enter a captured continuation and
have the lock grabbed anew.
2020-03-22 12:42:51 +01:00
Ludovic Courtès
4a6ec23a97
download: Delete the output file upon failure.
This allows ENOSPC conditions to be properly reported as such rather
than as a hash mismatch due to the availability of a truncated file.

Fixes <https://bugs.gnu.org/39993>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.

* guix/build/download.scm (url-fetch): In the failure case, delete FILE.
2020-03-22 00:02:23 +01:00
Marius Bakke
961d2ee269
Merge branch 'master' into core-updates 2020-03-14 13:13:40 +01:00
Ludovic Courtès
d8a822f462
download: Remove (web http) workarounds no longer relevant.
* guix/build/download.scm <top level>: Remove workarounds for
<https://bugs.gnu.org/23421> and for
<https://lists.gnu.org/archive/html/guix-devel/2017-11/msg00070.html>.
2020-03-11 18:42:09 +01:00
Marius Bakke
ebb7cf9e21
Merge branch 'master' into core-updates 2020-03-04 23:16:17 +01:00
Leo Prikler
a3b1f878df
build-system: copy-build-system: Keep symlinks symbolic.
guix/build/copy-build-system.scm (install)[install-file]:
Read symlinks as is done in install-simple through copy-recursively.

Signed-off-by: Pierre Neidhardt <mail@ambrevar.xyz>
2020-02-28 09:39:31 +01:00
Maxim Cournoyer
9659459f06
emacs-build-system: Byte compile the autoload files.
* guix/build/emacs-build-system.scm (enable-autoloads-compilation)
(validate-compiled-autoloads): Add procedures.
(%standard-phases): Register the new procedures.
* gnu/packages/aux-files/emacs/guix-emacs.el (guix-emacs-find-autoloads):
Remove duplicates in the list of autoload files found.
* guix/build/emacs-utils.scm (expr->string): Add procedure.
(emacs-batch-eval, emacs-batch-edit-file): Use it.
2020-02-27 16:59:07 -05:00
Danny Milosavljevic
12f0aefd14
build-system/linux-module: Disable depmod.
* guix/build/linux-module-build-system.scm (install): Disable depmod.
2020-02-25 10:22:19 +01:00
Julien Lepiller
c23b42dd55
guix: node-build-system: Do not symlink /bin.
* guix/build/node-build-system.scm (install): Do not add a symlink for
/bin.
2020-02-25 00:27:09 +01:00
Pierre Neidhardt
e90e64049c
build-system: Add copy-build-system.
* guix/build-system/copy.scm: New file.
* guix/build/copy-build-system.scm: New file.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document 'copy-build-system'.
2020-02-21 10:53:11 +01:00
Timothy Sample
9c9407f746
Add (guix build gnu-bootstrap).
* guix/build/gnu-bootstrap.scm: New file.
* Makefile.am (MODULES): Add it.
2020-02-17 23:21:04 +01:00
Danny Milosavljevic
88f8549449
utils: Change 'patch-shebang' to not try to patch Rust source files.
* guix/build/utils.scm (patch-shebang): Match only absolute paths.
2020-02-17 16:52:55 +01:00
Efraim Flashner
1b2b7765a0
build: gnu-build-system: Adjust NOCONFIGURE variable.
This ia a follow-up to 481a0f1a7ceac666a011b28324220584ead07698.

* guix/build/gnu-build-system.scm (bootstrap): Set NOCONFIGURE for all
bootstrap scripts. Clean up variable after use.
2020-02-16 18:45:37 +02:00
Brendan Tildesley
a21bd6d5c2
build-system/gnu: Don't try executing directories in bootstrap phase.
* guix/build/gnu-build-system.scm: (bootstrap): Change the file-exists?
procedure to one that excludes directories, so that we do not mistake it for a
script. For example if the source includes a bootstrap/ directory.

Signed-off-by: Marius Bakke <mbakke@fastmail.com>
2020-02-16 15:48:37 +01:00
Efraim Flashner
481a0f1a7c
build: gnu-build-system: Don't run configure during bootstrap.
* guix/build/gnu-build-system.scm (bootstrap): Add NOCONFIGURE
environment variable before running bootstrap scripts.
2020-02-16 09:05:32 +02:00
Marius Bakke
7edafc884c
Merge branch 'master' into core-updates 2020-02-14 19:05:45 +01:00
Jack Hill
46c5c917ba
build: go-build-system: Disable Go module support.
This allows for upgrading the Go compiler without overhauling
go-build-system first.

* guix/build/go-build-system.scm (setup-go-environment): Set GO111MODULE to
off.

Signed-off-by: Alex Griffin <a@ajgrf.com>
2020-02-11 16:52:17 -06:00
Marius Bakke
52665d2b6b
Merge branch 'staging' into core-updates 2020-02-03 15:45:44 +01:00
Pierre Neidhardt
5db7df2eab
guix: Fix missing export for make-desktop-entry-file.
* guix/build/utils.scm: Export make-desktop-entry-file.
2020-01-30 16:53:44 +01:00
Marius Bakke
0895002f68
Merge branch 'master' into staging 2020-01-29 11:12:49 +01:00
Hartmut Goebel
8377512e0c
guix: qt-build-system: Add phase check-setup.
* guix/build/qt-build-system.scm (check-setup): New function.
  (%standard-phases): Add as new phase `check-setup before `check.
* doc/guix.texi (Build System)[qt-build-system]: Describe the new phase.
2020-01-28 13:03:08 +01:00
Efraim Flashner
61b95c15cf
build: cargo-build-system: Add pkg-config environment variables.
* guix/build/cargo-build-system.scm (configure): Add environment
variables to use system libgit2 and libssh2.
* gnu/packages/crates-io.scm (rust-libgit2-sys-0.10,
rust-libssh2-sys-0.2)[arguments]: Remove LIBGIT2 and LIBSSH2 environment
variable settings.
* gnu/packages/rust-apps.scm (tokei)[arguments]: Same.
2020-01-27 18:39:10 +02:00
Efraim Flashner
a13db7e2ab
build: cargo-build-system: Allow patched crates.
* guix/build/cargo-build-system.scm (crate-src?): Don't check for a
gzipped tarball, just make sure it's not a directory.
2020-01-27 18:36:11 +02:00
Marius Bakke
38746d026c
build-system/cmake: Specify C++ compiler when cross-compiling.
* guix/build/cmake-build-system.scm (configure)[args]: Add
"-DCMAKE_CXX_COMPILER" when cross-compiling.
2020-01-26 13:39:18 +01:00
Ludovic Courtès
4d52e0f667
compile: Remove incorrect exports.
This is a followup to fed36328129def5f10b1d1f3e4ea8886916fd22a.

* guix/build/compile.scm: Remove exports of '%lightweight-optimizations'
and '%default-optimizations'.
* guix/self.scm: Remove unused (guix build compile) module.
2020-01-23 23:34:09 +01:00
Marius Bakke
8ed9be3fac
Merge branch 'staging' into core-updates 2020-01-21 22:39:42 +01:00
Ludovic Courtès
b782688d71
syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'.
Reported by Matt Wette <matt.wette@gmail.com>
in <https://bugs.gnu.org/39194>.

* guix/build/syscalls.scm (call-with-file-lock/no-wait): When
re-throwing, pass KEY in addition to ARGS.
2020-01-19 23:11:37 +01:00
Ludovic Courtès
65b510bbc4
clojure-utils: Avoid use of '@@'.
* guix/build/clojure-utils.scm (%doc-regex): Avoid @@, which doesn't
work on Guile 3.
(file-sans-extension): Likewise.
2020-01-15 23:48:33 +01:00
Marius Bakke
3cfe76bec0
Merge branch 'master' into core-updates 2020-01-15 00:09:46 +01:00
Guillaume Le Vaillant
6b8f7c397a
build: asdf-build-system: Improve reproducibility.
* guix/build/asdf-build-system.scm (copy-files-to-output): Reset timestamps of
  source files before compiling.
2020-01-12 14:48:30 +01:00
Marius Bakke
b7bf02a418
Merge branch 'master' into core-updates 2020-01-11 22:38:24 +01:00
Guillaume Le Vaillant
f98c050c20
build: asdf-build-system: Make sbcl-* Lisp packages reproducible.
The '*.fasl' files produced by SBCL contain the mtime of the source file (see
commit 72843d7ce32bd615f64a0326cf891658b5724ead of SBCL's code repository).
As asdf-build-system makes a copy of the source files before compiling them,
we must set the mtime of these copies to the same date as the originals for
the build to be reproducible.

* guix/build/asdf-build-system.scm (copy-files-to-output): Keep the
  modification time of the original source files.
2020-01-08 15:39:05 +01:00
Ludovic Courtès
058d0251bd
download, git: Refer to the right module in 'module-use!' call.
This fixes a regression introduced in
6a7c4636d4dec47eefa03c95da5a1315bd0e0413.

* guix/build/download.scm (load-gnutls): Call 'resolve-module' instead
of 'current-module'.
* guix/git.scm (load-git-submodules): Likewise.
2020-01-07 12:25:09 +01:00
Ludovic Courtès
6a7c4636d4
Adjust module autoloads.
In Guile < 2.9.7, autoloading a module would give you access to all its
bindings.  In future versions, autoloading a module gives access only to
the listed bindings, as per #:select (see <https://bugs.gnu.org/38895>).

This commit adjusts autoloads to the new semantics, allowing Guix to be
built with Guile 2.9.7/2.9.8.

* guix/build/download.scm <top level>: Remove call to 'module-autoload!'.
(load-gnutls): New procedure.
(tls-wrap): Call it.
* guix/git.scm <top level>: Remove call to 'module-autoload!'.
(load-git-submodules): New procedure.
(update-submodules): Call it instead of 'resolve-interface'.
* gnu/bootloader/grub.scm: Replace #:autoload with #:use-module.
* gnu/packages.scm: Likewise.
* gnu/packages/ssh.scm: Likewise.
* gnu/packages/tex.scm: Likewise.
* gnu/services/cuirass.scm: Likewise.
* gnu/services/mcron.scm: Likewise.
* guix/lint.scm: Augment list of bindings in #:autoload.
* guix/scripts/build.scm: Likewise.
* guix/scripts/gc.scm: Likewise.
* guix/scripts/pack.scm: Likewise.
* guix/scripts/publish.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/utils.scm: Remove unnecessary #:autoload clauses; replace one
of them with #:use-module.
2020-01-06 16:31:54 +01:00
Ludovic Courtès
f4cde9ac4a
download: Do not leak file descriptors on TLS ports.
Fixes <https://bugs.gnu.org/20145>.

* guix/build/download.scm (%tls-ports, register-tls-record-port): Remove.
(tls-wrap): Remove call to 'register-tls-record-port'.  Return a custom
binary input/output port instead.  This is a backport of what Guile
2.2's (web client) module has been doing.
(close-connection): Define as an alias for 'close-port'.
* guix/http-client.scm (http-fetch): Remove #:keep-alive? parameter,
which was ignored and unused.
Pass #:keep-alive? #f to 'http-get'.
* guix/lint.scm (probe-uri): Use 'close-port' instead of 'close-connection'.
* guix/scripts/substitute.scm (http-multiple-get): Likewise.
2020-01-03 16:06:26 +01:00
Mathieu Othacehe
ce9383c090
Merge remote-tracking branch 'master' into core-updates. 2019-12-31 11:04:51 +01:00
Leo Prikler
9ce3f7f6dc
guix: emacs-utils: Add emacs-batch-disable-compilation.
* guix/build/emacs-utils.scm (emacs-batch-disable-compilation):
New procedure.

Signed-off-by: Brett Gilio <brettg@gnu.org>
2019-12-27 16:54:52 -06:00
Marius Bakke
621fb83a1f
download: Enable TLS 1.3.
This reverts commit e4ee84202633636b4c8cef4a332f0c74912a3b23.

* guix/build/download.scm (tls-wrap): Dot not disable TLS 1.3.
2019-12-26 14:29:43 +01:00
Maxim Cournoyer
e34e02707d
emacs-build-system: Ensure the core libraries appear last in the load path.
Fixes bug #38568 (see: https://bugs.gnu.org/38568).

* guix/build/emacs-build-system.scm (add-source-to-load-path): Ensure the core
libraries appear last in the load path.

Reported-by: Jelle Licht <jlicht@fsfe.org>
2019-12-13 10:48:28 +09:00
Efraim Flashner
c9e676d0b1
Merge remote-tracking branch 'origin/master' into core-updates 2019-12-12 04:10:59 +02:00
Maxim Cournoyer
add773c37a
emacs-build-system: Move the source directory to the start of EMACSLOADPATH.
Fixes issue #38479 (see: https://bugs.gnu.org/38479).

* guix/build/emacs-build-system.scm (add-source-to-load-path): Move the source
directory to the start of the EMACSLOADPATH environment variable.

Reported-by:  Diego Nicola Barbato <dnbarbato@posteo.de>
2019-12-08 11:58:08 +09:00
Maxim Cournoyer
d0105e7f29
emacs-build-system: Make the order of the phases more clear.
* guix/build/emacs-build-system.scm (%standard-phases): Re-arrange to explicit
the ordering of phases.
2019-12-08 11:58:08 +09:00
Hartmut Goebel
f69439dff4
build-system: qt: Fix output missing in wrapped variables.
* guix/build/qt-build-system .scm (handle-output): Use directory of
  output, not its name.
2019-12-07 20:48:38 +01:00
Guillaume Le Vaillant
0dc5c85638
file-systems: Add support for 'strict-atime' and 'lazy-time' flags.
* guix/build/syscalls.scm (MS_LAZYTIME): New variable.
* gnu/build/file-systems.scm (mount-flags->bit-mask): Add match rules for
  'strict-atime' and 'lazy-time'.
* doc/guix.texi (File Systems): Add 'strict-atime' and 'lazy-time' to the list
  of supported flags.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-12-07 01:00:24 +01:00
Marius Bakke
9d5aa00906
Merge branch 'master' into core-updates 2019-12-05 17:57:35 +01:00
Marius Bakke
33b59c1a3e
Merge branch 'staging' 2019-12-04 20:12:41 +01:00
Maxim Cournoyer
65a7dd2950
build: emacs-build-system: Unify the installation directory.
This change aims to reduce the length of the EMACSLOADPATH environment
variable, which was found to cause issues such as
<https://bugs.gnu.org/38309>.

It should also enable discovery of newly installed packages without refreshing
the session's EMACSLOADPATH of the user profile (e.g., when launching Emacs
from the desktop manager application launcher), as discussed in
<https://bugs.gnu.org/38309>.

* guix/build/emacs-build-system.scm (%legacy-install-suffix): Rename to...
(%install-dir): ...this.
(%install-suffix): Remove variable.
(build): Adjust installation target directory.
(patch-el-files): Likewise.
(install): Likewise.
(move-doc): Likewise.
(make-autoloads): Likewise.

Signed-off-by: Clément Lassieur <clement@lassieur.org>
2019-12-04 11:06:49 +01:00