summaryrefslogtreecommitdiff
path: root/guix/build
AgeCommit message (Expand)Author
2021-03-19download: 'tls-wrap' treats premature TLS termination as EOF....This is a backport of Guile commit 076276c4f580368b4106316a77752d69c8f1494a. * guix/build/download.scm (tls-wrap)[read!]: Wrap 'get-bytevector-n!' call in 'catch' and handle 'error/premature-termination' GnuTLS errors. Ludovic Courtès
2021-03-15syscalls: mounts: Fix a matching bug....On some systems, the columns in /proc/self/mountinfo look like this: 23 28 0:21 / /proc rw,nosuid,nodev,noexec,relatime shared:11 - proc proc rw Before this change, the mounts procedure was written with the assumption that the type and source could always be found in columns 8 and 9, respectively. However, the proc(5) man page explains that there can be zero or more optional fields starting at column 7 (e.g., "shared:11" above), so this assumption is false in some situations. * guix/build/syscalls.scm (mounts): Update the match pattern to use ellipsis to match zero or more optional fields followed by a single hyphen. Remove the trailing ellipsis, since multiple ellipses are not allowed in the same level. The proc(5) man page indicates that there are no additional columns, so it is probably OK to match an exact number of columns at the end like this. Chris Marusich
2021-03-15build-system/cargo: Don't clobber packaged crates while building....This fixes an issue where two packages share a common dependent. * guix/build/cargo-build-system.scm (unpack-rust-crates): Only copy rust crates into the target directory if there isn't one already there with the same name. Efraim Flashner
2021-03-14build-system/cargo: Propagate crates across builds....* guix/build-system/cargo.scm (cargo-build): Add cargo-package-flags, install-source flags. * guix/build/cargo-build-system.scm (unpack-rust-crates, package): New procedures. (install): Also install crate sources. (%standard-phases): Add new phases. * doc/guix.texi (Packaging-guidelines)[Rust Crates]: Adjust to changes in the cargo-build-system. Efraim Flashner
2021-03-11download: 'tls-wrap' returns an unbuffered custom port....Partly fixes <https://bugs.gnu.org/46967>. * guix/build/download.scm (tls-wrap)[unbuffered]: New procedure. Pass the result of 'make-custom-binary-input/output-port' to 'unbuffered'. Ludovic Courtès
2021-03-11download: 'tls-wrap' avoids intermediate buffer....* guix/build/download.scm (tls-wrap)[read!]: Read straight into BV instead of calling 'get-bytevector-some' and 'unget-bytevector'. Ludovic Courtès
2021-03-10syscalls: Define the ST_* constants and add 'statfs-flags->mount-flags'....* guix/build/syscalls.scm (linux?): New variable. (define-statfs-flags): New macro. (ST_RDONLY, ST_NOSUID, ST_NODEV, ST_NOEXEC, ST_SYNCHRONOUS) (ST_MANDLOCK, ST_WRITE, ST_APPEND, ST_IMMUTABLE, ST_NOATIME) (ST_NODIRATIME, ST_RELATIME): New variables. (statfs-flags->mount-flags): New procedure. Ludovic Courtès
2021-02-25syscalls: Add 'mounts' and the <mount> record type....* guix/build/syscalls.scm (<mount>): New record type. (option-string->mount-flags, mount-flags) (octal-decode, mounts): New procedures. (mount-points): Rewrite in terms of 'mount'. * tests/syscalls.scm ("mounts"): New test. Ludovic Courtès
2021-02-25syscalls: Define MS_RELATIME....* guix/build/syscalls.scm (MS_RELATIME): New variable. Ludovic Courtès
2021-02-24guix: renpy-build-system: Quote data directory....This prevents generated launchers and desktop files from inadvertently crashing if the directory name contains a space. * gnu/build/renpy-build-system.scm (install, install-desktop-file): Use ~s to format data directory. Leo Prikler
2021-02-22profiles: Fix typo in manifest comment....* guix/build/profiles.scm (build-profile): Fix typo. Ludovic Courtès
2021-02-07build-system: Add renpy-build-system....* guix/build/renpy-build-system.scm: New file. * guix/build-system/renpy.scm: New file. * Makefile.am (MODULES): Add them here. * doc/guix.texi (Build Systems): Document renpy-build-system. Leo Prikler
2021-02-01guix package: Add '--export-manifest'....* guix/scripts/package.scm (export-manifest): New procedure. (show-help, %options): Add '--export-manifest'. (process-query): Honor it. * guix/build/profiles.scm (build-profile): Mention it. * tests/guix-package.sh: Test it. * doc/guix.texi (Invoking guix package): Document it. Ludovic Courtès
2021-01-30build-system/julia: Don't rely on file name to set module name....* guix/build/julia-build-system.scm (project.toml->name): New procedure. (precompile, check, julia-build): Accept new key argument #:julia-package-name. * guix/build-system/julia.scm (julia-build): ... add it. * doc/guix.texi (julia-build-system): Update julia-package-name accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> nixo
2021-01-30build-system/julia: Enable tests....* guix/build-system/julia.scm (julia-build): Set tests? default to #t. * guix/build/julia-build-system.scm (check): Respect tests? and fix julia invocation. (%standard-phases): Add check phase after install. * doc/guix.texi (julia-build-system): Update accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> nixo
2020-12-31build-system/cargo: Use argument "--no-track" in "cargo install"....* guix/build/cargo-build-system(install): Add argument "--no-track" in "cargo install". Remove stale hack. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Zhu Zihao
2020-12-15guix system: 'init' copies, resets timestamps, and deduplicates at once....Partly fixes <https://bugs.gnu.org/44760>. * guix/build/store-copy.scm (copy-store-item): New procedure. (populate-store): Use it instead of the inline 'copy-recursively' call. * guix/scripts/system.scm (copy-item): Likewise. Pass #:reset-timestamps? and #:deduplicate? to 'register-path'. Ludovic Courtès
2020-12-15store-copy: 'populate-store' can optionally deduplicate files....Until now deduplication was performed as an additional pass after copying files, which involve re-traversing all the files that had just been copied. * guix/store/deduplication.scm (copy-file/deduplicate): New procedure. * tests/store-deduplication.scm ("copy-file/deduplicate"): New test. * guix/build/store-copy.scm (populate-store): Add #:deduplicate? parameter and honor it. * tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate? to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. * gnu/build/install.scm (populate-single-profile-directory): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/linux-initrd.scm (build-initrd): Likewise. * guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New procedure. [build]: Pass it as an argument to 'source-module-closure'. * guix/scripts/pack.scm (squashfs-image)[build]: Wrap in 'with-extensions'. * gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New procedure. [builder]: Pass it to 'source-module-closure'. * gnu/system/install.scm (cow-store-service-type)[import-module?]: New procedure. Pass it to 'source-module-closure'. Ludovic Courtès
2020-12-15store-copy: 'populate-store' resets timestamps....Until now, 'populate-store' would reset permissions but not timestamps, so callers would resort to going through an extra directory traversal to reset timestamps. * guix/build/store-copy.scm (reset-permissions): Remove. (copy-recursively): New procedure. (populate-store): Pass #:keep-permissions? to 'copy-recursively'. Remove call to 'reset-permissions'. * tests/gexp.scm ("gexp->derivation, store copy"): In BUILD-DRV, check whether 'populate-store' canonicalizes permissions and timestamps. * gnu/build/image.scm (initialize-root-partition): Pass #:reset-timestamps? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. Ludovic Courtès
2020-12-03build-system: Add chicken-build-system....* guix/build-system/chicken.scm: New file. * guix/build/chicken-build-system.scm: New file. * Makefile.am: Add them. * doc/guix.texi: Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> raingloom
2020-11-22Merge branch 'master' into stagingMarius Bakke
2020-11-22build-system/cargo: Set gettext environment variable when available....* guix/build/cargo-build-system.scm (configure): When gettext is available in the build environment set the GETTEXT_SYSTEM variable. * gnu/packages/crates-io.scm (rust-gettext-rs-0.5, rust-gettext-rs-0.4, rust-gettext-sys-0.19)[arguments]: Remove phase to help find system gettext. Efraim Flashner
2020-11-22build-system/cargo: Set libclang environment variable when available....* guix/build/cargo-build-system.scm (configure): When clang is available in the build environment set the LIBCLANG_PATH variable. * gnu/packages/crates-graphics.scm (rust-aom-sys-0.1, uust-dav1d-sys-0.3), * gnu/packages/crates-io.scm (rust-bindgen-0.55, rust-bindgen-0.54, rust-bindgen-0.53, rust-bindgen-0.52, rust-cexpr-0.4, rust-cexpr-0.3, rust-cexpr-0.2, rust-clang-sys-1, rust-clang-sys-0.29, rust-clang-sys-0.26, rust-clang-sys-0.22, rust-clang-sys-0.11, rust-libpijul-0.12, rust-nettle-7, rust-nettle-sys-2, rust-sequoia-openpgp-0.9)[arguments]: Remove phases which set an environment variable to find clang. [inputs]: Rename instances of libclang with clang. Efraim Flashner
2020-11-22build-system/cargo: Set openssl environment variable when available....* guix/build/cargo-build-system.scm (configure): When openssl is available set the OPENSSL_DIR variable to discover its location. * gnu/packages/crates-io.scm (rust-curl-sys-0.4, rust-libgit2-sys-0.10, rust-libpijul-0.12, rust-libssh2-sys-0.2, rust-native-tls-0.2, rust-openssl-sys-0.9, rust-openssl-0.7, rust-trust-dns-rustls-0.6), * gnu/packages/rust-apps.scm (tokei, exa)[arguments]: Remove redundant setenv for openssl. Efraim Flashner
2020-11-20build-system/cargo: Do not pass --features to Cargo unless specified....Fixes <https://bugs.gnu.org/44692>. * guix/build/cargo-build-system.scm (build): Default to the empty list for FEATURES. Check whether the list is empty when building the Cargo arguments. Marius Bakke
2020-11-07Merge branch 'master' into staging... Conflicts: gnu/local.mk gnu/packages/gdb.scm gnu/packages/lisp-xyz.scm gnu/packages/web-browsers.scm Marius Bakke
2020-10-28build/maven: Fix typo....* guix/build/maven/pom: Fix spelling of "with". Vagrant Cascadian
2020-10-28build/maven: fix-pom-dependencies: Fix typo....* guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overrides". Vagrant Cascadian
2020-10-28build/maven: fix-pom-dependencies: Fix typo....* guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overridden". Vagrant Cascadian
2020-10-26build/maven-build-system: Return #t in fix-pom-files phase....* guix/build/maven-build-system.scm (fix-pom-files): Return #t. Björn Höfling
2020-10-19Merge branch 'master' into stagingMarius Bakke
2020-10-15build-system/go: Install license files....* guix/build/go-build-system.scm (install-license-files): New procedure. (%standard-phases): Replace inherited 'install-license-files phase. Efraim Flashner
2020-10-13Merge branch 'master' into stagingMarius Bakke
2020-10-10svn-download, hg-download: Use 'report-invoke-error'....* guix/build/hg.scm (hg-fetch): Use 'report-invoke-error' instead of 'format'. * guix/build/svn.scm (svn-fetch): Likewise. Ludovic Courtès
2020-10-08build: svn: Fix handle fetch errors....This fixes the revert 1ec67d5220b0ebac20263b44f4fefaf51ba8fdbb. * guix/build/svn.scm (svn-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> zimoun
2020-10-06Revert "build: svn: Handle fetch errors."...This reverts commit 2fb12dd1bb725592e1561ac8f4b32fb68accb161, which causes the 'svn export' command to fail with: svn: E155000: Destination directory exists; please remove the directory or use --force to overwrite Paul Garlick
2020-10-06build: svn: Handle fetch errors....* guix/build/svn.scm (svn-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> zimoun
2020-10-06build: hg: Handle fetch errors....* guix/build/hg.scm (hg-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> zimoun
2020-10-06build-system/cargo: Don't install .crates.toml file....Fixes <https://issues.guix.gnu.org/43810>. * guix/build/cargo-build-system.scm (install): Remove installed .crates.toml file. Efraim Flashner
2020-09-23Merge branch 'staging' into wip-lispGuillaume Le Vaillant
2020-09-15build-system: asdf: Improve install phase for CL source packages....* guix/build/asdf-build-system.scm (install)[parent-source]: Add support for package names not containing a hyphen. Guillaume Le Vaillant
2020-09-15build-system: asdf: Read all .asd files if no #:asd-files specified....* guix/build-system/asdf.scm (asdf-build): Remove the 'files' variable. * guix/build/asd-build-system.scm (find-asd-files): New variable. (build, check): Use it. Guillaume Le Vaillant
2020-09-12build-system: asdf: Switch from bundles to regular compilation....* gnu/packages/lisp.scm (sbcl, ecl)[native-search-paths]: Add 'XDG_CONFIG_DIRS'. * guix/build-system/asdf.scm (asdf-build): Replace 'asd-file' and 'asd-system-name' keywords by 'asd-files' and 'asd-systems'. * guix/build/asdf-build-system.scm (%object-prefix, %lisp-source-install-prefix): Update variables. (install): Update variable. (main-system-name): New variable. (copy-source): Replace 'asd-file' and 'asd-system-name' keywords by 'asd-files' and 'asd-systems'. (configure): New variable. (build, check): Replace 'asd-file' and 'asd-system-name' keywords by 'asd-files' and 'asd-systems'. (create-asd-file, symlink-asd-files): Remove variables. (create-asdf-configuration): New variable. (cleanup-files): Update variable. (%standard-phases): Remove 'create-asd-file' and 'symlink-asd-files' phases. Add 'configure' and 'create-asdf-configuration' phases. * guix/build/lisp-utils.scm (%bundle-install-prefix, normalize-dependency, inputs->asd-file-map, asdf-load-all, compile-system): Remove variables. (compile-systems): New variable. (system-dependencies, compiled-system, generate-system-definition): Remove variable. (test-system): Replace 'asd-file' parameter by 'asd-files'. (generate-executable-for-system): Update variable. (generate-dependency-links, make-asd-file, bundle-asd-file): Remove variables. (make-asdf-configuration): New variable. (build-program, build-image): Set 'XDG_CONFIG_DIRS'. (generate-executable): Update variable. Guillaume Le Vaillant
2020-09-05Merge remote-tracking branch 'origin/master' into stagingEfraim Flashner
2020-09-03android-repo-download: Use parallel-job-count instead of hard-coding job...count. * guix/build/android-repo.scm (android-repo-fetch): Use parallel-job-count instead of hard-coding job count. Danny Milosavljevic
2020-09-02Add (guix android-repo-download)....* guix/build/android-repo.scm: New file. * guix/android-repo-download.scm: New file. * Makefile.am (MODULES): Add them. Danny Milosavljevic
2020-08-24Use guile-zlib extension in build-side code....* Makefile.am (MODULES): Move guix/build/download-nar.scm to ... (MODULES_NOT_COMPILED): ... here. * guix/build/download-nar.scm: Use (zlib) instead of (guix zlib). * guix/cvs-download.scm (cvs-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. * guix/git-download.scm (git-fetch): Ditto. * guix/hg-download.scm (hg-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. Mathieu Othacehe
2020-08-13build-system/haskell: Do not pass "--bindir" during configure....The "--bindir" option is not as useful as it seems as the configured location is embedded in the outputs. Instead of using "--bindir" it seems better to build a statically linked binary and move the binary to its own output to avoid references between the "out" and "bin" outputs. * guix/build/haskell-build-system.scm (configure): Do not pass "--bindir". Ricardo Wurmus
2020-08-13build-system/haskell: Add 'extra-directories' keyword....See <https://bugs.gnu.org/39309>. * guix/build-system/haskell.scm (lower): Include the transitive propagated inputs of 'extra-directories' inputs. (haskell-build): Add the 'extra-directories' keyword and pass it through to the builder. * guix/build/haskell-build-system.scm (configure): Use it to select which inputs get passed via 'extra-include-dirs' and 'extra-lib-dirs' to Cabal. * gnu/packages/haskell-xyz.scm (ghc-alsa-core, ghc-hmatrix, ghc-hmatrix-gsl, ghc-hslua, ghc-iwlib, ghc-libyaml, ghc-ncurses, ghc-openglraw, ghc-x11, ghc-x11-xft, ghc-zlib): Set 'extra-directories'. * gnu/packages/haskell-crypto.scm (ghc-digest, ghc-hsopenssl): Likewise. Timothy Sample
2020-08-12haskell-build-system: register: Remove references to the doc output....* guix/build/haskell-build-system.scm (register): Strip references to the doc output from the generated package config files; move the haddock files from the "doc" output to the "lib" output. Ricardo Wurmus