Until now the .go files were generated first, and only after that the .scm
files were installed into the target location. That led to a lot of messages
about `source file ... newer than compiled' if the custom 'check phase tried
to load the compiled files.
Swapping the order of the actions resolves the issue allowing the tests to be
written without lot of noise in the build log.
For final artifacts it was not a problem, since daemon resets the timestamps.
* guix/build/guile-build-system.scm (build): Install .scm before producing
.go.
Change-Id: I3428d144fcbaa6c904ee662193c3bca82589e344
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
The inner (let) was on the same level as the outer one, which was confusing.
* guix/build/guile-build-system.scm (build): Fix indentation.
Change-Id: I701b61747c270b185eac9377b066748baa2b3d20
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Fixes a bug whereby ‘processes’ would include kernel threads, thereby
leading the ‘stop’ method of ‘user-processes’ to wait indefinitely for a
kernel thread. Code taken from the Shepherd.
Fixes <https://issues.guix.gnu.org/68800>.
* guix/build/syscalls.scm (kernel?): Remove.
(linux-process-flags, linux-kernel-thread?, pseudo-process?): New
procedures.
(PF_KTHREAD): New variable.
(processes): Use ‘pseudo-process?’ instead of ‘kernel?’.
Reported-by: Tomas Volf <~@wolfsden.cz>
Change-Id: I8c439cdaf868a8f899de7fe500ce8bf10e5fc290
Reported by Alexander Blume at
<https://github.com/BIMSBbioinfo/guix.install/issues/4>.
* guix/import/cran.scm (format-inputs): Use UPSTREAM-INPUT-DOWNSTREAM-NAME
when %INPUT-STYLE is set to 'SPECIFICATION.
Change-Id: I2f0963af197896aafd613b253d8712e41a716e52
Ensure that extra inputs end up in the correct order.
* guix/upstream.scm (update-package-inputs)[filtered-inputs]: Sort new list of
inputs.
Change-Id: Ia5fddd8103a33c79426995057fcce61c2e9e5a72
* gnu/packages/backup.scm (disarchive): Update to 0.6.0; add
'guile-bzip2' as an input.
* gnu/packages/package-management.scm (guix): Add 'guile-bzip2' as
an input to enable bzip2 support when using Disarchive.
* guix/self.scm (%packages): Add 'guile-bzip2'.
(compiled-guix): Include 'guile-bzip2' as a dependency when building
the 'guix' command.
* etc/disarchive-manifest.scm (tarball-origin?): Include bzip2
tarballs.
Co-authored-by: Ludovic Courtès <ludovic.courtes@inria.fr>
Change-Id: I4da479054f6bef225f5ea979c091152f8a9e51d5
* guix/build/git.scm (git-fetch-with-fallback): Add #:hash
and #:hash-algorithm. Try ‘swh-download-directory-by-nar-hash’ before
‘swh-download’ when #:hash is provided.
* guix/git-download.scm (git-fetch/in-band*): Pass #:hash
and #:hash-algorithm to ‘git-fetch-with-fallback’.
* guix/scripts/perform-download.scm (perform-git-download): Likewise.
Change-Id: Ic875a7022fd78c9fac32e92ad4f8ce4d81646ec5
While this method is new and nar-sha256 ExtIDs are currently available
only for new visits, it is fundamentally more reliable than the other
methods, which is why it comes first.
* guix/lint.scm (check-archival)[lookup-by-nar-hash]: New procedure.
Call ‘lookup-by-nar-hash’ before the other lookup methods.
* tests/lint.scm ("archival: content available")
("archival: content unavailable but disarchive available")
("archival: missing revision")
("archival: revision available"): Add a 404 response corresponding to
the ‘lookup-external-id’ request.
* tests/lint.scm ("archival: nar-sha256 extid available"): New test.
Change-Id: I4a81d6e022a3b72e6484726549d7fbae627f8e73
This allows us to take advantage of content addressing by giving SWH the
expected nar hash.
* guix/swh.scm (swh-download-directory-by-nar-hash): New procedure.
Change-Id: I0494ee15a3cde390a22552de7c2246e0314ba7b5
This interface was deployed at archive.softwareheritage.org a few days
ago. Our main use case will be looking up directories by “nar-sha256”
hashes.
* guix/swh.scm (<external-id>): New JSON-mapped record type.
(lookup-external-id, lookup-directory-by-nar-hash): New procedures.
* tests/swh.scm (%external-id): New variable.
("lookup-directory-by-nar-hash"): New test.
Change-Id: Ib671c7798aeb6f8132ac78f2b06b9285da8e7bd5
Previously the command would crash when passed an invalid fingerprint on
the command line.
* guix/scripts/git/authenticate.scm (guix-git-authenticate)
[openpgp-fingerprint*]: New procedure.
Use it instead of ‘openpgp-fingerprint’.
Change-Id: I99e0549781382f36a684a84449b603e00b53778d
Matching the change in 2d40e6f7ab otherwise the
cross build derivations are broken, as was the case for emacs-pde.
* guix/build-system/perl.scm (perl-cross-build) [module-build-flags]: Accept
gexps.
Change-Id: I2dc85bc50bc077581e3abfc5baaedc6487118192
Previously, ‘latest-channel-instances’ would perform a depth-first
traversal of channels. Since dependencies specified in ‘.guix-channel’
are usually less specific that those provided by the user, this would
lead to the use of instances corresponding to those less specific specs,
which in turn might declare dependencies that do not exist for the more
specific instances.
This commit changes ‘latest-channel-instances’ to perform a
breadth-first traversal, thereby giving user-supplied channels higher
precedence over dependencies found via ‘.guix-channel’.
Fixes <https://issues.guix.gnu.org/68822>.
* guix/channels.scm (latest-channel-instances)[ignore?]: Remove.
[instance-name, same-named?, more-specific?]: New procedures.
Rewrite as a breadth-first traversal using a regular loop.
* tests/channels.scm ("latest-channel-instances reads dependencies from most-specific instance"):
New test.
Change-Id: Iba518145cfd209f04293a56246dbfee3b714650b
* guix/scripts/download.scm (git-download-to-store*): Add new variable.
(copy-recursively-without-dot-git): New variable.
(git-download-to-file): Add new variable.
(show-help): Add 'git', 'commit', 'branch' and 'recursive'options
help message.
(%default-options): Add default value for 'git-reference' and
'recursive' options.
(%options): Add 'git', 'commit', 'branch' and 'recursive' command
line options.
(guix-download) [hash]: Compute hash with 'file-hash*' instead of
'port-hash' from (gcrypt hash) module. This allows us to compute
hashes for directories.
* doc/guix.texi (Invoking guix-download): Add @item entries for
`git', `commit', `branch' and `recursive' options. Add a paragraph in
the introduction.
* tests/guix-download.sh: New tests. Move variables and trap definition
to the top of the file.
Change-Id: Ic2c428dca4cfcb0d4714ed361a4c46609339140a
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* guix/import/cran.scm (phases-for-inputs): Add 'set-HOME phase when
ExperimentHub is among inputs.
Change-Id: Ie3a2443934704eed8694a76a651b806209722421
* guix/import/cran.scm (latest-bioconductor-release): Determine package type
and pass it to LATEST-BIOCONDUCTOR-PACKAGE-VERSION and BIOCONDUCTOR-URI.
(%bioconductor-updater): Compose all bioconductor predicates.
Change-Id: Icef3ae05e28ed0f2796d9abf90e51821d2dfcc4c
* guix/import/cran.scm (phases-for-inputs, maybe-arguments): New procedures.
(description->package): Splice in result of MAYBE-ARGUMENTS.
Change-Id: I578e1903f37c91bf865f0be49b04187ec372ed05
These were encountered in a mass import of Bioconductor packages.
* guix/import/cran.scm (invalid-packages): Add "rtools".
(transform-sysname): Add aliases for Python and bioinformatics packages.
Change-Id: I97e13cee10c2ee85d4b9296d91afccbdbcec4946
* guix/import/crate.scm (min-element, max-crate-version-of-semver,
nonyanked-crate-versions): New procedures.
(import-release)[version]: Update to the requested version or the newest
semver-compatible version.
Co-authored by David Elsing <david.elsing@posteo.net>
Change-Id: I72b081147c4eb9faf482f159b7145aaaf9f91f29
The default value of #f led to ("..." . #f) being passed further down as an
entry point. That is not an issue for command line invocation, since in that
code path '() was already used as a default value, but it broke docker system
test with the following error:
building /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv...
tar: Removing leading `/' from member names
Backtrace:
6 (primitive-load "/gnu/store/g8hqzccfvn4mkm41jqs65c27gs7?")
In ./guix/docker.scm:
268:6 5 (build-docker-image "/gnu/store/zi2f5dfdrhviinm6jxp3cj?" ?)
In ice-9/ports.scm:
433:17 4 (call-with-output-file _ _ #:binary _ #:encoding _)
476:4 3 (_ _)
In ./guix/docker.scm:
270:21 2 (_)
123:40 1 (config "1996ead589ab366473d935c4d5bd0c38b998f3b299847?" ?)
In unknown file:
0 (list->vector ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7?" . #))
ERROR: In procedure list->vector:
In procedure vector: Wrong type argument in position 1: ("/gnu/store/1pvqd30qi1aigjdf7s7l8v7wpvrrhfkj-profile/bin/guile" . #f)
note: keeping build directory `/tmp/guix-build-docker-pack.tar.gz.drv-16'
builder for `/gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv' failed with exit code 1
build of /gnu/store/dll8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv failed
View build log at '/var/log/guix/drvs/dl/l8jj6h5pfgf6ya9skk1g1546smwbib-docker-pack.tar.gz.drv.gz'.
cannot build derivation `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/dq9qk1ba0f07572m8ck3xws28x1b3rif-docker-test.drv' failed
make: *** [Makefile:7044: check-system] Error 1
Breakage was introduced in 7d5168a2af.
* guix/scripts/pack.scm (docker-image)[entry-point-argument]: Default to '().
Change-Id: If5fc1f8bcb0981df11409636e71f2ca91b05612f
* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'.
* guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For
yanked packages, use the full version suffixed by "-yanked" for
generated variable names and add a comment and package property.
(crate->guix-package): Add allow-yanked? argument and if it is set to #t,
allow importing yanked crates if no other version matching the
requirements exists.
[find-package-version]: Packages previously marked as yanked are only
included if allow-yanked? is #t and then take the lowest priority.
[find-crate-version]: If allow-yanked? is #t, also consider yanked
versions with the lowest priority.
[dependency-name+version]: Rename to ...
[dependency-name+version+yanked] ...this. Honor allow-yanked? and choose
between an existing package and an upstream package. Exit with an error
message if no version fulfilling the requirement is found.
[version*]: Exit with an error message if the crate version is not found.
(cargo-recursive-import): Add allow-yanked? argument.
* guix/read-print.scm: Export <comment>.
* guix/scripts/import/crate.scm: Add "--allow-yanked".
* tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'.
[sort-map-dependencies]: Adjust accordingly.
[remove-yanked-info]: New variable.
Adjust test 'crate-recursive-import-honors-existing-packages'.
(test-bar-dependencies): Add yanked dev-dependencies.
(test-leaf-bob-crate): Add yanked versions.
(rust-leaf-bob-3.0.2-yanked): New variable.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7
If --recursive-dev-dependencies is specified, development dependencies
are also included for all recursively imported packages.
* doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies.
* guix/import/crate.scm (crate-recursive-import): Add
recursive-dev-dependencies? argument.
* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add
"--recursive-dev-dependencies".
* tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies?
in the 'cargo-recursive-import' test.
(test-root-dependencies): Add intermediate-c as dev-dependency.
(test-intermediate-c-crate, test-intermediate-c-dependencies): New
variables.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Iae89794681155d77f128733120e60f03bc297717
* guix/import/crate.scm (crate-recursive-import): Apply memoize outside the
lambda passed to recursive-import in order to actually use the memoization.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
* guix/build/zig-build-system.scm (zig-cross-build): New function
(lower): Add cross-compilation support
* guix/build-system/zig.scm (build): Add --target flag with target input
(check): Disable with cross compilation
Change-Id: I5f42ff897bfe00c92c6576900221a15ef210d669
Signed-off-by: Ludovic Courtès <ludo@gnu.org>