summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Collapse)Author
2019-04-09build-system/cargo: refactor phases to successfully buildIvan Petkov
* guix/build-system/cargo.scm (%cargo-build-system-modules): Add (json parser). (cargo-build): [vendor-dir]: Define flag and pass it to builder code. [cargo-test-flags]: Likewise. [skip-build?]: Likewise. * guix/build/cargo-build/system.scm (#:use-module): use (json parser). (package-name->crate-name): Delete it. (manifest-targets): Add it. (has-executable-target?): Add it. (configure): Add #:vendor-dir name and use it. Don't touch Cargo.toml. Don't symlink to duplicate inputs. Remove useless registry line from cargo config. Define RUSTFLAGS to lift lint restrictions. (build): Add #:skip-build? flag and use it. (check): Likewise. Add #:cargo-test-flags and pass it to cargo. (install): Factor source logic to install-source. Define #:skip-build? flag and use it. Only install if executable targets are present. (install-source): Copy entire crate directory not just src. [generate-checksums] pass dummy file for unused second argument. (%standard-phases): Add install-source phase. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2019-03-23guix: dune-build-system: Add a package parameter.Julien Lepiller
* guix/build-system/dune.scm: Add a package parameter. * guix/build/dune.scm (build, test, install): Use it. * doc/guix.texi: Document it.
2019-03-23build: Add rakudo-build-system.Efraim Flashner
* guix/build-system/rakudo.scm, guix/build/rakudo-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build System): Document it.
2019-03-14build-system/go: Build with a filesystem union of Go dependencies.Leo Famulari
This basically changes (guix build-system go) so that instead of looking up its dependencies in a list of directories in $GOPATH, all the Go dependencies are symlinked into a single directory. Fixes <https://bugs.gnu.org/33620>. * guix/build/go-build-system.scm (setup-go-environment): New variable. (setup-environment, install-source): Remove variables. (unpack): Unpack the source relative to $GOPATH. (install): Do not install the compiled objects in the 'pkg' directory. Install the source code in this phase, and only install the source of the package named by IMPORT-PATH. * doc/guix.texi (Build Systems): Adjust accordingly. * gnu/packages/docker.scm (docker): Import (guix build union) on the build side and adjust to build phase name changes in (guix build-system go). * gnu/packages/shellutils.scm (direnv): Likewise. * gnu/packages/databases.scm (mongo-tools)[arguments]: Set '#:install-source #f'. * gnu/packages/music.scm (demlo)[arguments]: Move the 'install-scripts' phase after the 'install' phase.
2019-03-01gnu: rust: Factor out "cargo-utils" from "cargo-build-system".Ivan Petkov
* guix/build/cargo-utils.scm: New file. * Makefile.am (MODULES): Add it. * guix/build-system/cargo.scm (%cargo-utils-modules): New variable. (%cargo-build-system-modules): Use it. * guix/build/cargo-build-system.scm (file-sha256, generate-checksums): Move from here... * guix/build/cargo-utils.scm: ...to here. * gnu/packages/rust.scm (rust-1.19.0)[arguments]<#:imported-modules>: Use %cargo-utils-modules. <#:phases>[patch-cargo-checksums]: Use (guix build cargo-utils). * gnu/packages/gnuzilla.scm (icecat): [arguments]<#:imported-modules>: Use %cargo-utils-modules. <#phases>[patch-cargo-checksums]: import (guix build cargo-utils). Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-02-09Merge branch 'staging'Ludovic Courtès
2019-02-04gnu: dune: Update to 1.6.3.Gabriel Hondet
* gnu/packages/ocaml.scm (dune): Update to 1.6.3. * guix/build/dune-build-system.scm (build): Use --libdir. Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2019-01-26download: Ask not to use TLS 1.3.Ludovic Courtès
Works around <https://bugs.gnu.org/34102>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/build/download.scm (tls-wrap): Add "-VERS-TLS1.3" to the priority string when (gnutls-version) is not prefixed by "3.5".
2019-01-22compile: Let compiler warnings through during the load phase.Ludovic Courtès
Previous warnings and errors such as those raised by (guix records) would not be displayed during the load phase. * guix/build/compile.scm (load-files): Remove 'parameterize' around 'resolve-interface' call. (compile-files)[build]: Move 'with-fluids' for *CURRENT-WARNING-PREFIX* to... <top level>: ... here.
2019-01-20profiles: Allow a profile to be added as an entry of another profile.Ludovic Courtès
* guix/build/profiles.scm (build-etc/profile): When 'OUTPUT/etc/profile' already exists, delete it first. (build-profile): Likewise for 'OUTPUT/manifest'. * tests/profiles.scm ("profile in profile"): New test.
2019-01-17syscalls: 'device-in-use?' returns #f upon EINVAL.Ludovic Courtès
This mirrors the behavior of the 'fdisk_device_is_used' function of util-linux. * guix/build/syscalls.scm (device-in-use?): Return #f upon EINVAL.
2019-01-17syscalls: 'device-in-use?' does not create a port.Ludovic Courtès
* guix/build/syscalls.scm (device-in-use?): Use 'open-fdes' rather than 'open-file'.
2019-01-17build: syscalls: Add device-in-use?.Mathieu Othacehe
This new procedure uses BLKRRPART to determine whether or not a device is busy. It is useful when a device does not appear as mounted but is maybe used by the kernel. This is the case with overlayfs lowerdir backend device for example. * guix/build/syscalls.scm (device-in-use?): New exported procedure.
2019-01-10build-system: texlive: Do not hide build output.Ricardo Wurmus
* guix/build/texlive-build-system.scm (compile-with-latex): Use "nonstopmode" instead of "batchmode".
2019-01-10build-system: texlive: Do not truncate lines.Ricardo Wurmus
* guix/build/texlive-build-system.scm (configure): Set environment variables to prevent build output lines from being truncated.
2019-01-09Remove most uses of the _IO*F constants.Ludovic Courtès
These constants, for use with 'setvbuf', were deprecated in Guile 2.2 and disappeared in Guile 3.0. Here we keep these constants in build-side code where removing them is not feasible. * guix/build/download-nar.scm (download-nar): Adjust 'setvbuf' calls to the Guile 2.2+ API. * guix/build/download.scm (open-socket-for-uri): Likewise. (open-connection-for-uri, url-fetch): Likewise. * guix/build/make-bootstrap.scm (make-stripped-libc): Likewise. * guix/build/union.scm (setvbuf) [guile-2.0]: New conditional wrapper. (union-build): Adjust to new API. * guix/ftp-client.scm (ftp-open, ftp-list, ftp-retr): Likewise. * guix/http-client.scm (http-fetch): Likewise. * guix/inferior.scm (proxy): Likewise. * guix/scripts/substitute.scm (fetch, http-multiple-get): Likewise. * guix/self.scm (compiled-modules): Likewise. * guix/ssh.scm (remote-daemon-channel, store-import-channel) (store-export-channel): Likewise. * guix/ui.scm (initialize-guix): Likewise. * tests/publish.scm (http-get-port): Likewise. * guix/store.scm (%newlines): Adjust comment.
2019-01-09download: Remove Guile 2.0 workaround.Ludovic Courtès
* guix/build/download.scm: Remove Guile 2.0 workaround.
2019-01-09maint: Remove 'cond-expand' forms for Guile 2.0.Ludovic Courtès
Note: Leave 'cond-expand' forms used in the build-side modules that can run on %BOOTSTRAP-GUILE, which is currently Guile 2.0. * guix/build/compile.scm: Move 'use-modules' clause from 'cond-expand' to 'define-module' form. (%default-optimizations): Remove 'cond-expand'. * guix/build/download.scm (tls-wrap): Remove 'cond-expand'. * guix/build/syscalls.scm: Remove 'cond-expand' form around '%set-automatic-finalization-enabled?!' and 'without-automatic-finalization'. * guix/inferior.scm (port->inferior): Remove 'cond-expand'. * guix/scripts/pack.scm (wrapped-package)[build]: Remove 'cond-expand'. * guix/status.scm (build-event-output-port): Remove 'cond-expand'. * guix/store.scm (open-inet-socket): Remove 'cond-expand'. * guix/ui.scm (install-locale): Remove 'cond-expand'. * tests/status.scm ("current-build-output-port, UTF-8 + garbage"): Remove 'cond-expand'. * tests/store.scm ("current-build-output-port, UTF-8 + garbage"): Remove 'cond-expand'.
2019-01-07Remove (guix build pull).Ludovic Courtès
This module had been unused since commit 5f93d97005897c2d859f0be1bdff34c88467ec61 (Oct. 2017). * guix/build/pull.scm: Delete. * Makefile.am (MODULES): Remove.
2019-01-06git-download: Use 'invoke'.Ludovic Courtès
* guix/build/git.scm (git-fetch): Use 'invoke' instead of 'system*' for "git submodule update".
2019-01-06git-download: 'git-fetch' really returns #f upon error.Ludovic Courtès
This allows the fallback code in (guix git-download) to actually run. Regression introduced in commit 329dabe13bf98b899b907b45565434c5140804f5. Fixes <https://bugs.gnu.org/33911>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * guix/build/git.scm (git-fetch): Guard against 'invoke-error?' and really return #f upon failure.
2018-12-18build: Add dune-build-system.Julien Lepiller
* guix/build/dune-build-system.scm, guix/build-system/dune.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document dune-build-system. * guix/build-system/ocaml.scm (lower, default-findlib, default-ocaml): Export them. (package-with-explicit-ocaml): Also transform packages built with dune-build-system.
2018-12-03hg-fetch: Remove .hg directories of sub-repositories.Björn Höfling
* guix/build/hg.scm (hg-fetch): Remove all .hg directories recursively.
2018-11-20Merge branch 'master' into core-updatesMarius Bakke
2018-11-19build-system: Add 'clojure-build-system'.Alex Vong
* guix/build-system/clojure.scm, guix/build/clojure-build-system.scm: New files. * guix/build/clojure-utils.scm (@*, @@*): New macros. (%source-dirs, %test-dirs, %compile-dir, %main-class, %omit-source?, %aot-include, %aot-exclude, %tests?, %test-include, %test-exclude, %clojure-regex): New variables. (package-name->jar-names, canonicalize-relative-path, find-files*, file-sans-extension, relative-path->clojure-lib-string, find-clojure-libs, compiled-from?, include-list\exclude-list, eval-with-clojure, create-jar): New procedures. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document 'clojure-build-system'.
2018-11-19guix: Add clojure-utils.Alex Vong
* guix/build/clojure-utils.scm: New file. * gnu/packages/lisp.scm (clojure)[arguments]: Use it. * Makefile.am (MODULES): Add it.
2018-11-18build-system/ocaml: Use invoke and return #t.Julien Lepiller
* guix/build/ocaml-build-system.scm (configure, build, check, install) (prepare-install): Use invoke and return #t.
2018-11-14Merge branch 'master' into core-updatesMarius Bakke
2018-11-13build-system/dub: Let all phases return #T unconditionally.Ricardo Wurmus
* guix/build/dub-build-system.scm (configure, build, check): Return #T unconditionally; use INVOKE.
2018-11-12build-system/haskell: Fix register phase.Ricardo Wurmus
This is a follow-up to commit a7e231a2a3edbd6a70949432c1ff434d87f625ff. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/build/haskell-build-system.scm (register): Use "when" instead of "unless".
2018-11-12build-system/go: Plan removal of the pkg folder for go-1.11 onward.Pierre Neidhardt
* guix/build/go-build-system.scm (install): New comment.
2018-11-07Merge branch 'master' into core-updatesMarius Bakke
2018-11-06store-copy: Canonicalize the mtime and permissions of the store copy.Ludovic Courtès
Fixes a bug whereby directories in the output of 'guix pack -f tarball' would not be read-only. * guix/build/store-copy.scm (reset-permissions): New procedure. (populate-store): Pass #:keep-mtime? #t to 'copy-recursively'. Call 'reset-permissions'. * tests/pack.scm ("self-contained-tarball"): In CHECK, define 'canonical?' and use it to check that every file has an mtime of 1 and is read-only. * tests/guix-pack.sh: Invoke "chmod -Rf +w" before "rm -rf" in trap.
2018-11-05Merge branch 'master' into core-updatesMarius Bakke
2018-10-28git-download: Print a message when falling back to a full fetch.Maxim Cournoyer
Otherwise the user might believe that git-fetch stalled, observing the lack of output following a 'fatal' git error message (see: https://debbugs.gnu.org/33100). * guix/build/git.scm (git-fetch): Print message when falling back to a full fetch.
2018-10-19java-utils: Use 'strip-store-file-name'.Alex Vong
See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00250.html>. * guix/build/java-utils.scm (package-name-version): Remove it. (install-javadoc): Use 'strip-store-file-name' instead of 'package-name-version'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-10-19build-system/haskell: Use 'strip-store-file-name'.Alex Vong
See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-10/msg00250.html>. * guix/build/haskell-build-system.scm (package-name-version): Remove it. (configure): Use 'strip-store-file-name' instead of 'package-name-version'. (setup-compiler): Likewise. (make-ghc-package-database): Likewise. (register): Likewise. * gnu/packages/haskell.scm (ghc-cairo)[arguments]: Likewise. * gnu/packages/agda.scm (agda)[arguments]: Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-10-05Merge branch 'master' into core-updatesMarius Bakke
2018-10-02build-system/asdf: Properly handle dependency specification casing.Andy Patterson
* guix/build/lisp-utils.scm (normalize-dependency): Modify match clauses to match the upper-case symbols that lisp produces. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-10-01build-system: haskell: Add #:cabal-revision argument.Timothy Sample
Add a #:cabal-revision argument for specifying which Cabal file revision from Hackage should be used. * guix/build-system/haskell.scm (source-url->revision-url): New function. (lower): Accept a cabal-revision keyword argument, convert it to an origin record, and add it to the resulting bag's host-inputs. (haskell-build): Pass the cabal-revision input to the builder as an argument. * guix/build/haskell-build-system.scm (patch-cabal-file): New phase. (%standard-phases): Add it.
2018-09-27perform-download: Optionally report a "download-progress" trace.Ludovic Courtès
* guix/scripts/perform-download.scm (perform-download): Add #:print-build-trace? and pass it to 'url-fetch'. (guix-perform-download): Define 'print-build-trace?' and pass it to 'perform-download'. * guix/build/download.scm (ftp-fetch): Add #:print-build-trace? and honor it. (url-fetch): Likewise. * nix/libstore/builtins.cc (builtinDownload): Set _NIX_OPTIONS environment variable.
2018-09-26Merge branch 'master' into core-updatesMarius Bakke
2018-09-23store-copy: Display a progress bar when copying store items.Ludovic Courtès
* guix/build/store-copy.scm (populate-store): Add #:log-port parameter. Use 'progress-reporter/bar' to report progress.
2018-09-20Merge branch 'master' into core-updatesMarius Bakke
2018-09-19build-system/asdf: Adopt asdf conventions.Andy Patterson
The asdf documentation specifies that asdf:load-asd should be preferred to calling load on a system definition file. * guix/build/lisp-utils.scm (compile-system): Replace load with asdf:load-asd. (system-dependencies): Likewise. (test-system): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-09-19build-system/asdf: Use invoke.Andy Patterson
* guix/build/lisp-utils.scm (lisp-eval-program): Replace system* and error handling with invoke. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-09-19build-system/asdf: Log lisp system invocations.Andy Patterson
* guix/build/lisp-system.scm: (lisp-eval-program): Log the arguments to system*. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-09-19build-system/asdf: Handle all asdf dependency specifications.Andy Patterson
Add support for dependencies of the form (:version <name> <version>), (:feature <feature> <dependency-specification>) and (:require <module-name>), as defined by <https://common-lisp.net/project/asdf/asdf.html#The-defsystem-grammar>. * guix/build/lisp-utils.scm (normalize-dependency): New variable. (make-asd-file)[dependencies]: Use it to generate dependencies with normalized names. [dependency-name]: New variable. [registry]: Use it to flatten the normalized dependencies. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-09-13Merge branch 'master' into core-updatesLeo Famulari
2018-09-11profiles: Correctly deal with etc/ being a relative symlink.Ludovic Courtès
Fixes <https://bugs.gnu.org/32686>. Reported by Oleg Pykhalov <go.wigust@gmail.com>. * guix/build/profiles.scm (ensure-writable-directory): Add #:symlink. [absolute?]: New procedure. [unsymlink]: Use it to determine how to resolve readlink's result. (build-profile): Pass SYMLINK to 'ensure-writable-directory'. * tests/profiles.scm ("profile-derivation when etc/ is a relative symlink"): New test.