summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2019-04-18guile-build-system: Support building in parallel....* guix/build/guile-build-system.scm (build): Use invoke-each, instead of for-each, to use multiple cores if available. (invoke-each, report-build-process): New procedures. Christopher Baines
2019-04-17Merge branch 'master' into stagingMarius Bakke
2019-04-12build-system/linux-module: Configure module like the kernel....* guix/build/linux-module-build-system.scm (configure): New procedure. (%standard-phases): Add "configure" phase. Danny Milosavljevic
2019-04-12build-system/linux-module: Support module source versioning....* guix/build-system/linux-module.scm (make-linux-module-builder) [native-inputs]: Add linux. [arguments]<#:phases>[install]: Install "System.map" and "Module.symvers". * guix/build/linux-module-build-system.scm (configure): Delete procedure. (%standard-phases): Delete "configure" phase. Danny Milosavljevic
2019-04-11Add (guix build-system linux-module)....* guix/build/linux-module-build-system.scm: New file. * guix/build-system/linux-module.scm: New file. * doc/guix.texi (Build Systems): Document it. * Makefile.am (MODULES): Add them. Danny Milosavljevic
2019-04-09build-system/cargo: refactor phases to successfully build...* 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> Ivan Petkov
2019-04-01Merge branch 'master' into stagingMarius Bakke
2019-03-28Revert "build-system/ruby: Use invoke."...This reverts commit 0244952c11c0409597fce5c39dfbcafdfd2ea651. We prefer 'invoke', but the custom error handling works better with the code as-is. Efraim Flashner
2019-03-28build-system/ruby: Use invoke....* guix/build/ruby-build-system.scm (install): Use invoke. Efraim Flashner
2019-03-23guix: dune-build-system: Add a package parameter....* guix/build-system/dune.scm: Add a package parameter. * guix/build/dune.scm (build, test, install): Use it. * doc/guix.texi: Document it. Julien Lepiller
2019-03-23Merge branch 'master' into stagingMarius Bakke
2019-03-23build: Add rakudo-build-system....* 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. Efraim Flashner
2019-03-21Merge branch 'master' into stagingMarius Bakke
2019-03-14build-system/go: Build with a filesystem union of Go dependencies....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. Leo Famulari
2019-03-01Merge branch 'master' into stagingMarius Bakke
2019-03-01gnu: rust: Factor out "cargo-utils" from "cargo-build-system"....* 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> Ivan Petkov
2019-02-14guix: ruby-build-system: Fix removal of extension related files....This functionality was broken, possibly to do with the vendor related changes in the ruby build system. These changes restore the file removal functionality at the end of the install phase. * guix/build/ruby-build-system.scm (install): Fix removal of files related to native extensions. Christopher Baines
2019-02-14guix: ruby-build-system: Do gem install --verbose....This is helpful as it displays more information about what gem install is doing, especially for packages with native extensions. * guix/build/ruby-build-system.scm (install): Add --verbose to gem install command. Christopher Baines
2019-02-14gnu: ruby-build-system: Change extract-gemspec to always return #t....* guix/build/ruby-build-system.scm (extract-gemspec): Return #t right at the end, rather than returning #<unspecified> when not handling a gem archive. Christopher Baines
2019-02-09Merge branch 'staging'Ludovic Courtès
2019-02-04gnu: dune: Update to 1.6.3....* 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> Gabriel Hondet
2019-01-26download: Ask not to use TLS 1.3....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". Ludovic Courtès
2019-01-22compile: Let compiler warnings through during the load phase....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. Ludovic Courtès
2019-01-20profiles: Allow a profile to be added as an entry of another profile....* 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. Ludovic Courtès
2019-01-17syscalls: 'device-in-use?' returns #f upon EINVAL....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. Ludovic Courtès
2019-01-17syscalls: 'device-in-use?' does not create a port....* guix/build/syscalls.scm (device-in-use?): Use 'open-fdes' rather than 'open-file'. Ludovic Courtès
2019-01-17build: syscalls: Add device-in-use?....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. Mathieu Othacehe
2019-01-10build-system: texlive: Do not hide build output....* guix/build/texlive-build-system.scm (compile-with-latex): Use "nonstopmode" instead of "batchmode". Ricardo Wurmus
2019-01-10build-system: texlive: Do not truncate lines....* guix/build/texlive-build-system.scm (configure): Set environment variables to prevent build output lines from being truncated. Ricardo Wurmus
2019-01-09Remove most uses of the _IO*F constants....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. Ludovic Courtès
2019-01-09download: Remove Guile 2.0 workaround....* guix/build/download.scm: Remove Guile 2.0 workaround. Ludovic Courtès
2019-01-09maint: Remove 'cond-expand' forms for Guile 2.0....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'. Ludovic Courtès
2019-01-07Remove (guix build pull)....This module had been unused since commit 5f93d97005897c2d859f0be1bdff34c88467ec61 (Oct. 2017). * guix/build/pull.scm: Delete. * Makefile.am (MODULES): Remove. Ludovic Courtès
2019-01-06git-download: Use 'invoke'....* guix/build/git.scm (git-fetch): Use 'invoke' instead of 'system*' for "git submodule update". Ludovic Courtès
2019-01-06git-download: 'git-fetch' really returns #f upon error....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. Ludovic Courtès
2018-12-18build: Add dune-build-system....* 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. Julien Lepiller
2018-12-03hg-fetch: Remove .hg directories of sub-repositories....* guix/build/hg.scm (hg-fetch): Remove all .hg directories recursively. Björn Höfling
2018-11-20Merge branch 'master' into core-updatesMarius Bakke
2018-11-19build-system: Add 'clojure-build-system'....* 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'. Alex Vong
2018-11-19guix: Add clojure-utils....* guix/build/clojure-utils.scm: New file. * gnu/packages/lisp.scm (clojure)[arguments]: Use it. * Makefile.am (MODULES): Add it. Alex Vong
2018-11-18build-system/ocaml: Use invoke and return #t....* guix/build/ocaml-build-system.scm (configure, build, check, install) (prepare-install): Use invoke and return #t. Julien Lepiller
2018-11-14Merge branch 'master' into core-updatesMarius Bakke
2018-11-13build-system/dub: Let all phases return #T unconditionally....* guix/build/dub-build-system.scm (configure, build, check): Return #T unconditionally; use INVOKE. Ricardo Wurmus
2018-11-12build-system/haskell: Fix register phase....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". Ricardo Wurmus
2018-11-12build-system/go: Plan removal of the pkg folder for go-1.11 onward....* guix/build/go-build-system.scm (install): New comment. Pierre Neidhardt
2018-11-07Merge branch 'master' into core-updatesMarius Bakke
2018-11-06store-copy: Canonicalize the mtime and permissions of the store copy....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. Ludovic Courtès
2018-11-05Merge branch 'master' into core-updatesMarius Bakke
2018-10-28git-download: Print a message when falling back to a full fetch....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. Maxim Cournoyer
2018-10-19java-utils: Use 'strip-store-file-name'....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> Alex Vong