summaryrefslogtreecommitdiff
path: root/guix/build
Commit message (Collapse)AuthorAge
* grafts: Support rewriting UTF-16 and UTF-32 store references.Mark H Weaver2021-04-15
| | | | | | | | Partially fixes <https://bugs.gnu.org/33848>. * guix/build/graft.scm (replace-store-references): Add support for finding and rewriting UTF-16 and UTF-32 store references. * tests/grafts.scm: Add tests.
* build-system/qt: Fix wrapping with QTWEBENGINEPROCESS_PATH.Maxim Cournoyer2021-04-10
| | | | | | | | | | | This is a follow up commit to 06eb21856f, which added QTWEBENGINEPROCESS_PATH to the list of wrapped variables. Unfortunately it wouldn't be set, as its value is a plain file rather than a directory, and the code only checked for directories. * guix/build/qt-build-system.scm (variables-for-wrapping): Define a file type entry for each variable definition, and use it to determine if we should look for directories versus plain files.
* build-system/qt: Wrappers set 'QTWEBENGINEPROCESS_PATH' if needed.Ludovic Courtès2021-04-08
| | | | | | | Suggested by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/build/qt-build-system.scm (variables-for-wrapping): Add "QTWEBENGINEPROCESS_PATH".
* build-system/qt: Wrappers only include relevant directories to XDG_DATA_DIRS.Ludovic Courtès2021-04-08
| | | | | | | | | | | Fixes <https://bugs.gnu.org/47569>. Previously the wrapper's XDG_DATA_DIRS would contain any input that had a /share sub-directory, which is usually all build-time inputs. * guix/build/qt-build-system.scm (variables-for-wrapping)[collect-sub-dirs]: Add 'selectors' parameter and honor it. Change caller to handle selectors. Add selectors for /share.
* build-system: Rewrite node build system.Jelle Licht2021-04-02
| | | | | | | | * guix/build/node-build-system.scm: Rewrite it. * guix/build-system/node.scm: Adjust accordingly. * gnu/packages/node-xyz.scm (node-semver): Likewise. Co-authored-by: Timothy Sample <samplet@ngyro.com>
* build-system/julia: Turn on deprecation warnings.zimoun2021-03-29
| | | | | | * guix/build/julia-build-system.scm (check): Set option '--depwarn=yes'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* syscalls: Fix RNDADDTOENTCNT on powerpc64le-linux.Chris Marusich2021-03-23
| | | | | | | | | This fixes the failing test add-to-entropy-count in tests/syscalls.scm on powerpc64le-linux. * guix/build/syscalls.scm (RNDADDTOENTCNT): When %host-type starts with "powerpc64le", set this to #x80045201. Otherwise, set it to #x40045201 as before.
* syscalls: Fix clone on powerpc64le-linux.Chris Marusich2021-03-23
| | | | | | | This makes the clone procedure work correctly and fixes some test failures on powerpc64le-linux, including tests/containers.scm. * guix/build/syscalls.scm (clone): Add an entry for ppc64le.
* download: 'tls-wrap' treats premature TLS termination as EOF.Ludovic Courtès2021-03-19
| | | | | | | | 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.
* syscalls: mounts: Fix a matching bug.Chris Marusich2021-03-15
| | | | | | | | | | | | | | | | | | 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.
* build-system/cargo: Don't clobber packaged crates while building.Efraim Flashner2021-03-15
| | | | | | | | 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.
* build-system/cargo: Propagate crates across builds.Efraim Flashner2021-03-14
| | | | | | | | | | | * 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.
* download: 'tls-wrap' returns an unbuffered custom port.Ludovic Courtès2021-03-11
| | | | | | | | 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'.
* download: 'tls-wrap' avoids intermediate buffer.Ludovic Courtès2021-03-11
| | | | | * guix/build/download.scm (tls-wrap)[read!]: Read straight into BV instead of calling 'get-bytevector-some' and 'unget-bytevector'.
* syscalls: Define the ST_* constants and add 'statfs-flags->mount-flags'.Ludovic Courtès2021-03-10
| | | | | | | | | * 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.
* syscalls: Add 'mounts' and the <mount> record type.Ludovic Courtès2021-02-25
| | | | | | | | * 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.
* syscalls: Define MS_RELATIME.Ludovic Courtès2021-02-25
| | | | * guix/build/syscalls.scm (MS_RELATIME): New variable.
* guix: renpy-build-system: Quote data directory.Leo Prikler2021-02-24
| | | | | | | | 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.
* profiles: Fix typo in manifest comment.Ludovic Courtès2021-02-22
| | | | * guix/build/profiles.scm (build-profile): Fix typo.
* build-system: Add renpy-build-system.Leo Prikler2021-02-07
| | | | | | | * 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.
* guix package: Add '--export-manifest'.Ludovic Courtès2021-02-01
| | | | | | | | | * 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.
* build-system/julia: Don't rely on file name to set module name.nixo2021-01-30
| | | | | | | | | * 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>
* build-system/julia: Enable tests.nixo2021-01-30
| | | | | | | | | | * 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>
* build-system/cargo: Use argument "--no-track" in "cargo install".Zhu Zihao2020-12-31
| | | | | | | | * 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>
* guix system: 'init' copies, resets timestamps, and deduplicates at once.Ludovic Courtès2020-12-15
| | | | | | | | | 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'.
* store-copy: 'populate-store' can optionally deduplicate files.Ludovic Courtès2020-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* store-copy: 'populate-store' resets timestamps.Ludovic Courtès2020-12-15
| | | | | | | | | | | | | | | | 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.
* build-system: Add chicken-build-system.raingloom2020-12-03
| | | | | | | | | * 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>
* Merge branch 'master' into stagingMarius Bakke2020-11-22
|\
| * build-system/cargo: Set gettext environment variable when available.Efraim Flashner2020-11-22
| | | | | | | | | | | | | | * 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.
| * build-system/cargo: Set libclang environment variable when available.Efraim Flashner2020-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * build-system/cargo: Set openssl environment variable when available.Efraim Flashner2020-11-22
| | | | | | | | | | | | | | | | | | | | * 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.
* | build-system/cargo: Do not pass --features to Cargo unless specified.Marius Bakke2020-11-20
| | | | | | | | | | | | | | 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.
* | Merge branch 'master' into stagingMarius Bakke2020-11-07
|\| | | | | | | | | | | | | | | Conflicts: gnu/local.mk gnu/packages/gdb.scm gnu/packages/lisp-xyz.scm gnu/packages/web-browsers.scm
| * build/maven: Fix typo.Vagrant Cascadian2020-10-28
| | | | | | | | * guix/build/maven/pom: Fix spelling of "with".
| * build/maven: fix-pom-dependencies: Fix typo.Vagrant Cascadian2020-10-28
| | | | | | | | * guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overrides".
| * build/maven: fix-pom-dependencies: Fix typo.Vagrant Cascadian2020-10-28
| | | | | | | | * guix/build/maven/pom (fix-pom-dependencies): Fix spelling of "overridden".
| * build/maven-build-system: Return #t in fix-pom-files phase.Björn Höfling2020-10-26
| | | | | | | | * guix/build/maven-build-system.scm (fix-pom-files): Return #t.
* | Merge branch 'master' into stagingMarius Bakke2020-10-19
|\|
| * build-system/go: Install license files.Efraim Flashner2020-10-15
| | | | | | | | | | * guix/build/go-build-system.scm (install-license-files): New procedure. (%standard-phases): Replace inherited 'install-license-files phase.
* | Merge branch 'master' into stagingMarius Bakke2020-10-13
|\|
| * svn-download, hg-download: Use 'report-invoke-error'.Ludovic Courtès2020-10-10
| | | | | | | | | | | | * guix/build/hg.scm (hg-fetch): Use 'report-invoke-error' instead of 'format'. * guix/build/svn.scm (svn-fetch): Likewise.
| * build: svn: Fix handle fetch errors.zimoun2020-10-08
| | | | | | | | | | | | | | | | This fixes the revert 1ec67d5220b0ebac20263b44f4fefaf51ba8fdbb. * guix/build/svn.scm (svn-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| * Revert "build: svn: Handle fetch errors."Paul Garlick2020-10-06
| | | | | | | | | | | | | | | | 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
| * build: svn: Handle fetch errors.zimoun2020-10-06
| | | | | | | | | | | | * guix/build/svn.scm (svn-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| * build: hg: Handle fetch errors.zimoun2020-10-06
| | | | | | | | | | | | * guix/build/hg.scm (hg-fetch): Add 'guard' to handle errors. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
| * build-system/cargo: Don't install .crates.toml file.Efraim Flashner2020-10-06
| | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/43810>. * guix/build/cargo-build-system.scm (install): Remove installed .crates.toml file.
* | Merge branch 'staging' into wip-lispGuillaume Le Vaillant2020-09-23
|\ \
| * | Merge remote-tracking branch 'origin/master' into stagingEfraim Flashner2020-09-05
| |\|
| * | Merge branch 'master' into stagingMarius Bakke2020-07-24
| |\ \