summaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
* compile: Pre-load the compiler outside 'with-target'.Ludovic Courtès2020-04-23
| | | | | | | | | | * guix/build/compile.scm (compile-files): Move call to 'compile' before 'with-target'. Failing to do that, if the target has a different word size than the host, the first call to 'compile-file' fails with: ice-9/eval.scm:293:34: In procedure load-thunk-from-memory: ELF file does not have native word size while attempting loading 'language/spec.go'.
* syscalls: Fix Linux detection in 'readdir*'.Julien Lepiller2020-04-20
| | | | | * guix/build/syscalls.scm (readdir*): Fix Linux detection for `arm-unknown-linux-gnueabihf'.
* syscalls: 'readdir*' chooses between the Linux and Hurd code at run time.Ludovic Courtès2020-04-16
| | | | | | | | | | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/40574>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. Previously, we'd choose at expansion time whether to use the Hurd or the Linux variant, taking the cross-compilation target into account. This would lead to the wrong decision when (guix build syscalls) is evaluated while we're cross-compiling to GNU/Hurd. This is a followup to 1ab9e483391f8b62b873833ea71cb0074efa03e7. * guix/build/syscalls.scm (define-generic-identifier) (read-dirent-header, %struct-dirent-header, sizeof-dirent-header): Remove. (readdir*): Rename to... (readdir-procedure): ... this, and add parameters. (readdir*): Define as a call to 'readdir-procedure' as a function of %HOST-TYPE.
* build: julia-build-system: Update for new Julia version.nixo2020-04-12
| | | | | | | | | | * guix/build/julia-build-system.scm (generate-load-path): Delete function. (install): Don't set JULIA_LOAD_PATH. (precompile): Set SOURCE_DATE_EPOCH. Update calculating the JULIA_LOAD_PATH. Adjust the 'invoke-julia' command. (check): Set SOURCE_DATE_EPOCH. Adjust JULIA_LOAD_PATH. Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* compile: Run the load phase within 'with-target'.Ludovic Courtès2020-04-08
| | | | | * guix/build/compile.scm (compile-files)[build]: Remove 'with-target'. Wrap body in 'with-target'.
* bournish: Prevent inlining of run-time support procedures.Ludovic Courtès2020-04-02
| | | | | | | | | | | | | | | | | | | On Guile 3, those procedures could be inlined, leading to unbound-variable errors: scheme@(guile-user)> ,bournish Welcome to Bournish, a minimal Bourne-like shell! To switch back, type `,L scheme'. bournish@(guile-user)> ls ice-9/boot-9.scm:1669:16: In procedure raise-exception: Unbound variable: ls-command-implementation Reported by Ricardo Wurmus. * guix/build/bournish.scm (define-command-runtime): New macro. (ls-command-implementation, wc-command-implementation) (wc-l-command-implementation, wc-c-command-implementation): Use it instead of 'define'.
* build: emacs-utils: Add an option to select scoping for batch eval.Maxim Cournoyer2020-03-22
| | | | | | | | | | | 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.
* build-system: linux-module: Fix cross compilation.Mathieu Othacehe2020-03-22
| | | | | | | | | | | | | | | | | * 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>
* syscalls: 'with-file-lock' re-grabs lock when reentering its dynamic extent.Ludovic Courtès2020-03-22
| | | | | | | * 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.
* download: Delete the output file upon failure.Ludovic Courtès2020-03-22
| | | | | | | | | | 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.
* download: Remove (web http) workarounds no longer relevant.Ludovic Courtès2020-03-11
| | | | | | * 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>.
* build-system: copy-build-system: Keep symlinks symbolic.Leo Prikler2020-02-28
| | | | | | | 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>
* emacs-build-system: Byte compile the autoload files.Maxim Cournoyer2020-02-27
| | | | | | | | | | * 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.
* build-system/linux-module: Disable depmod.Danny Milosavljevic2020-02-25
| | | | * guix/build/linux-module-build-system.scm (install): Disable depmod.
* guix: node-build-system: Do not symlink /bin.Julien Lepiller2020-02-25
| | | | | * guix/build/node-build-system.scm (install): Do not add a symlink for /bin.
* build-system: Add copy-build-system.Pierre Neidhardt2020-02-21
| | | | | | | * 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'.
* build: go-build-system: Disable Go module support.Jack Hill2020-02-11
| | | | | | | | | | 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>
* Merge branch 'master' into stagingMarius Bakke2020-01-29
|\
| * build: cargo-build-system: Add pkg-config environment variables.Efraim Flashner2020-01-27
| | | | | | | | | | | | | | | | | | * 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.
| * build: cargo-build-system: Allow patched crates.Efraim Flashner2020-01-27
| | | | | | | | | | * guix/build/cargo-build-system.scm (crate-src?): Don't check for a gzipped tarball, just make sure it's not a directory.
* | guix: qt-build-system: Add phase `check-setup`.Hartmut Goebel2020-01-28
|/ | | | | | * 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.
* compile: Remove incorrect exports.Ludovic Courtès2020-01-23
| | | | | | | | 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.
* syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'.Ludovic Courtès2020-01-19
| | | | | | | | 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.
* clojure-utils: Avoid use of '@@'.Ludovic Courtès2020-01-15
| | | | | | * guix/build/clojure-utils.scm (%doc-regex): Avoid @@, which doesn't work on Guile 3. (file-sans-extension): Likewise.
* build: asdf-build-system: Improve reproducibility.Guillaume Le Vaillant2020-01-12
| | | | | * guix/build/asdf-build-system.scm (copy-files-to-output): Reset timestamps of source files before compiling.
* build: asdf-build-system: Make sbcl-* Lisp packages reproducible.Guillaume Le Vaillant2020-01-08
| | | | | | | | | | | 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.
* download, git: Refer to the right module in 'module-use!' call.Ludovic Courtès2020-01-07
| | | | | | | | | 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.
* Adjust module autoloads.Ludovic Courtès2020-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* download: Do not leak file descriptors on TLS ports.Ludovic Courtès2020-01-03
| | | | | | | | | | | | | | | 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.
* guix: emacs-utils: Add emacs-batch-disable-compilation.Leo Prikler2019-12-27
| | | | | | | * guix/build/emacs-utils.scm (emacs-batch-disable-compilation): New procedure. Signed-off-by: Brett Gilio <brettg@gnu.org>
* download: Enable TLS 1.3.Marius Bakke2019-12-26
| | | | | | This reverts commit e4ee84202633636b4c8cef4a332f0c74912a3b23. * guix/build/download.scm (tls-wrap): Dot not disable TLS 1.3.
* emacs-build-system: Ensure the core libraries appear last in the load path.Maxim Cournoyer2019-12-13
| | | | | | | | | 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>
* emacs-build-system: Move the source directory to the start of EMACSLOADPATH.Maxim Cournoyer2019-12-08
| | | | | | | | | 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>
* emacs-build-system: Make the order of the phases more clear.Maxim Cournoyer2019-12-08
| | | | | * guix/build/emacs-build-system.scm (%standard-phases): Re-arrange to explicit the ordering of phases.
* build-system: qt: Fix output missing in wrapped variables.Hartmut Goebel2019-12-07
| | | | | * guix/build/qt-build-system .scm (handle-output): Use directory of output, not its name.
* file-systems: Add support for 'strict-atime' and 'lazy-time' flags.Guillaume Le Vaillant2019-12-07
| | | | | | | | | | * 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>
* Merge branch 'staging'Marius Bakke2019-12-04
|\
| * Merge branch 'master' into stagingMarius Bakke2019-11-28
| |\
| * \ Merge branch 'master' into stagingMarius Bakke2019-11-21
| |\ \
| * \ \ Merge branch 'master' into stagingMarius Bakke2019-11-15
| |\ \ \
| * \ \ \ Merge branch 'master' into stagingMarius Bakke2019-10-23
| |\ \ \ \
| * \ \ \ \ Merge branch 'master' into stagingMarius Bakke2019-10-13
| |\ \ \ \ \
| * | | | | | gnu: ant-build-system: Don't override symlinks.Björn Höfling2019-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | Merge branch 'master' into stagingMarius Bakke2019-10-08
| |\ \ \ \ \ \
| * | | | | | | build/cargo-build-system: Move generate-all-checksums to cargo-utils.Efraim Flashner2019-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/cargo-build-system.scm (generate-all-checksums): Move procedure ... * guix/build/cargo-utils.scm: ... to here.
* | | | | | | | build: emacs-build-system: Unify the installation directory.Maxim Cournoyer2019-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | | | | | guix: Add the 'qt' build system.Hartmut Goebel2019-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build-system/qt.scm, guix/build/qt-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Buiild systems): Add the new build system.
* | | | | | | | ui: 'with-profile-lock' keeps going upon ENOLCK.Ludovic Courtès2019-11-29
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/syscalls.scm (call-with-file-lock/no-wait): Really pass ARGS to HANDLER. Return #f when HANDLER is called. * guix/ui.scm (profile-lock-handler): Emit a mere warning upon ENOLCK.
* | | | | | | guix: Fix wrap-qt-program.Hartmut Goebel2019-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Directory names added here need to match qtbase's native-search-path specifications. * guix/build/qt-utils.scm (wrap-qt-program): Change paths used for QML2_IMPORT_PATH and QT_PLUGIN_PATH.
* | | | | | | compile: Adjust for Guile 2.9.5.Ludovic Courtès2019-11-23
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/compile.scm (optimizations-for-level): New procedure. Include '%lightweight-optimizations' and '%default-optimizations'. (optimization-options): Use 'optimizations-for-level'.