| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
The process-substitution procedure is opening two distinct connections. The
first one when looking for narinfo by calling lookup-narinfo and the other one
when fetching nar files.
Cache the connection when looking for narinfos so that process-substitution
only opens one connection.
* guix/scripts/substitute.scm (lookup-narinfo): Cache connection by using
open-connection-for-uri/cached.
|
|
|
|
|
|
|
|
|
|
|
| |
* guix/lint.scm (check-tests-true): New linter.
(%local-checkers)[tests-true]: Add it.
* tests/lint.scm ("tests-true: #:tests? must not be set to #t")
("tests-true: absent #:tests? is acceptable")
("tests-true: #:tests? #f is acceptable")
("tests-true: #:tests? #t acceptable when compiling natively"): Test it.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
|
|
|
|
|
|
|
|
| |
Hg followup to commit ee17a9e06e636400e3354796a42ac445dbcc8f96.
* guix/hg-download.scm (hg-version, hg-file-name): New procedures.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When running:
GUIX_PROFILING="gc object-cache" ./pre-inst-env \
guix install gnome -p /tmp/sdsdfsd --no-grafts -n
this reduces the number of object cache lookup from 115K to 96K, with a
slight CPU and memory usage reduction as well.
* guix/profiles.scm (check-for-collisions)[candidates]: Exclude entries
if their 'item' fields are eq?.
|
|
|
|
|
| |
* guix/build-system/r.scm (bioconductor-uri): Update version.
* guix/import/cran.scm (%bioconductor-version): Update.
|
|
|
|
| |
* licenses.scm (bsd-1): New variable.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* guix/import/egg.scm: New file.
* guix/scripts/import/egg.scm: New file.
* tests/egg.scm: New file.
* Makefile.am (MODULES, SCM_TESTS): Register them.
* po/guix/POTFILES.in: Likewise.
* guix/scripts/import.scm (importers): Add egg importer.
* doc/guix.texi (Invoking guix import, Invoking guix refresh): Document it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a regression introduced in
84f8bae0f85de081bbc55aa54ad6a50981a06a43, whereby the URL computed for
the new ffmpeg (for instance) would be:
https://ffmpeg.org/ffmpeg-4.4.tar.xz
instead of:
https://ffmpeg.org/releases/ffmpeg-4.4.tar.xz
Reported by Maxim Cournoyer.
* guix/gnu-maintenance.scm (latest-html-release)[url->release]: Adjust
computation in the case of a URI-reference with a relative path.
|
|
|
|
|
|
|
| |
* guix/lint.scm (check-derivation)[try]: Remove "catch #t" wrapping.
* guix/ui.scm (call-with-error-handling): Remove "catch 'system-error"
and move 'system-error handling to the &exception-with-kind-and-args
clause.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Require Guile 3.0.
* doc/guix.texi (Requirements): Adjust accordingly.
* gnu/packages/package-management.scm (guile2.2-guix): Remove.
* guix/lint.scm (exception-with-kind-and-args?): Remove 'cond-expand'.
* guix/scripts/deploy.scm (deploy-machine*): Likewise.
* guix/store.scm (call-with-store): Likewise.
* guix/swh.scm (http-get*, http-post*): Likewise.
* guix/ui.scm (without-compiler-optimizations, guard*)
(call-with-error-handling): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default Guile web server implementation supports the keep alive
mechanism. However, in our custom http-write implementation, the connection
is unconditionally close after sending nar files.
To prevent that, when supported, add the client port to the server poll set so
that further requests can be handled without closing the connection.
* guix/scripts/publish.scm (nar-response-port): Rename it into ...
(nar-compressed-port): ... this procedure. Operate directly on a given PORT.
(http-write): Add keep-alive support when sending nar files.
* guix/scripts/substitute.scm (process-substitution): Pass the download size
to the progress-report-port procedure so that it doesn't block reading from
the input port when keep-alive is supported.
|
|
|
|
|
|
|
|
|
|
| |
The Guile web server is reading the response connection header to decide
whether to close the connection. However, as the request connection header is
not forwarded to the response, this mechanism cannot work.
* guix/scripts/publish.scm (add-extra-headers): New procedure.
(make-request-handler): Use it to forward the request connection header to the
response.
|
|
|
|
| |
* guix/progress.scm (progress-report-port): Add a download-size argument.
|
|
|
|
|
| |
* guix/gnu-maintenance.scm (latest-html-release)[url->release]: Fix
source URL construction in cases where URL is a possibly relative path.
|
|
|
|
|
|
| |
* guix/gnu-maintenance.scm (%tarball-rx, %package-name-rx): Accept 'v'
and 'V' prefixes. Accept ".tgz" extension.
* tests/gnu-maintenance.scm ("release-file?"): Add test.
|
|
|
|
|
|
|
| |
This is a followup to 681af1fb78a735b51dc811aed770b2948212c3fc.
* guix/scripts/build.scm (guix-build): Emit "nothing to do" warning only
when both DRV and ITEMS are null.
|
|
|
|
|
|
|
|
|
|
| |
In some cases, running "guix upgrade" can trigger this warning, and
"missing arguments" is misleading then.
Reported by flatwhatson on #guix.
* guix/scripts/package.scm (process-actions): Change warning to "nothing
to do".
|
|
|
|
|
|
|
|
|
| |
* guix/import/opam.scm (opam->guix-package): Generate license for the
‘license’ field.
* tests/opam.scm (test-opam-file): Update accordingly.
("opam->guix-package"): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
| |
* guix/git-download.scm (git-file-list): Add prefix and recursive?
arguments. Recurse into submodules when requested.
(git-predicate): Add recursive? argument.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
| |
When git-predicate is used on an active worktree, some files in the
index might not exist on the filesystem. Instead of failing with "No
such file or directory", these should be ignored.
* guix/git-download.scm (git-predicate): Wrap 'lstat' call in
'false-if-exception'. Return RESULT when STAT is #f.
Co-authored-by: Andrew Whatson <whatson@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a followup to 3f8326237df780404c172ef4127195cc20becd66.
* guix/scripts/archive.scm (export-from-store): Warn then FILES is
empty.
* guix/scripts/build.scm (guix-build): Likewise.
* guix/scripts/copy.scm (warn-if-empty): New procedure.
(send-to-remote-host, retrieve-from-remote-host): Call it.
* guix/scripts/edit.scm (guix-edit): Warn when SPECS is empty.
* guix/scripts/environment.scm (guix-environment): Warn when MANIFEST
has zero entries.
* guix/scripts/graph.scm (guix-graph): Warn then ITEMS is empty.
* guix/scripts/package.scm (process-actions): Warn when FILES and TRANS
are both empty.
|
|
|
|
| |
* guix/scripts/deploy.scm (guix-deploy): Error out when FILE is false.
|
|
|
|
| |
* guix/ci.scm (latest-evaluations): Add spec parameter support.
|
|
|
|
| |
* guix/ci.scm (<evaluation>): Fix evaluation complete? field.
|
|
|
|
|
|
|
|
|
| |
* guix/import/hackage.scm (string->license): Prefix the value of the license
field with ‘license:’.
* tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision):
Adjust accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
| |
* guix/lint.scm (lookup-disarchive-spec): New procedure.
(check-archival): When 'lookup-content' returns #f, call
'lookup-disarchive-spec'. Call 'lookup-directory' on the result of
'lookup-directory'.
* guix/download.scm (%disarchive-mirrors): Make public.
* tests/lint.scm ("archival: missing content"): Set
'%disarchive-mirrors'.
("archival: content unavailable but disarchive available"): New test.
|
|
|
|
|
|
| |
Fixes: <https://issues.guix.gnu.org/48561>.
* guix/scripts/discover (guix-discover): Report Avahi errors.
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/48519>.
* guix/profiles.scm (texlive-configuration): Build only if texlive-base is
present in the profile's manifest.
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up of 3cde5231aa78aa5e31b27888cd78ee0b250a7a1c that fixes the
challenge test.
When dealing with uncompressed NAR, the file size is false. Propagate it to
progress-reporter/file as it used to be the case.
* guix/scripts/challenge.scm (call-with-nar): Accept false size.
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, the wall-clock time of:
guix system build --no-grafts -d gnu/system/install.scm
goes from 5.0s to 2.3s on Guile 3.0.5.
* guix/ui.scm (without-compiler-optimizations): New macro.
(load*): Use it.
|
|
|
|
|
|
|
| |
This became dead code with commit
4f621a2b003e85d480999e4d0630e9dc3de85bc3.
* guix/ui.scm (load*): Remove Guile 2.2.3 workaround.
|
|
|
|
|
|
|
|
|
| |
* guix/scripts/publish.scm (show-help, %options): Add '--negative-ttl'.
(render-narinfo, render-narinfo/cached, make-request-handler): Add #:negative-ttl
and honor it.
(run-publish-server): Add #:narinfo-negative-ttl and honor it.
(guix-publish): Honor '--negative-ttl'.
* tests/publish.scm ("negative TTL", "no negative TTL"): New tests.
|
|
|
|
|
| |
* guix/substitutes.scm (%narinfo-negative-ttl): Change to 15mn.
(%narinfo-transient-error-ttl): Halve.
|
|
|
|
|
|
|
|
| |
I'm looking at this to help with adding support for looking up package
replacements to store in the Guix Data Service.
* guix/inferior.scm (inferior-package-replacement): New procedure.
* tests/inferior.scm ("inferior-package-replacement"): New test.
|
|
|
|
|
| |
* guix/swh.scm (lookup-origin-revision): Filter out visits with a status
different from 'full.
|
|
|
|
|
|
|
|
|
| |
This enables the Disarchive fallback implemented in commit
fbc2a52a32ddc664db8ebab420c2e17b1432c744 (on foreign distros).
* guix/self.scm (specification->package): Add "disarchive".
(compiled-guix): Add DISARCHIVE to DEPENDENCIES in the #:dependencies
argument to 'guix-command'.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit a8b927a562 Added new procedure go-module-available-versions use
'string-append' to GOPROXY, but 'string->symbol' let GOPROXY is a symbol (it
must be a string), which would lead to wrong-type-arg errors in the
'string-append' procedure.
* guix/scripts/import/go.scm (%options)[goproxy]: Remove call to
'string->symbol'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
| |
Possibly fixes <https://bugs.gnu.org/48045>.
Reported by Bone Baboon <bone.baboon@disroot.org>.
* guix/scripts/challenge.scm (call-with-nar): Rename second value
returned by 'http-fetch' to match reality. Change second argument to
'progress-reporter/file'.
|
|
|
|
|
| |
* guix/self.scm (specification->package): Use 'guile-3.0-latest' instead
of 'guile-3.0/libgc-7'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows computing a manifest for a specific system. Previously this was
possible, but only through changing %current-system, which caused the
derivation to be computed using that system as well (so computing a derivation
for aarch64-linux on x86_64-linux would require running aarch64-linux code).
This new argument adds the possibility of computing derivations for non-native
systems, without having to run non-native code.
I'm looking at this as it will enable the Guix Data Service to compute channel
instance derivations without relying on QEMU emulation for non-native
systems (it should be faster as well).
* guix/channels.scm (build-from-source): Add #:system argument and pass to
build.
(build-channel-instance): Add system argument and pass to build-from-source.
(channel-instance-derivations): Add #:system argument and pass to
build-channel-instance, also rename system to current-system-value.
(channel-instances->manifest): Add #:system argument and pass to
channel-instance-derivations.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes <https://bugs.gnu.org/48313>.
Previously, 'current-channels' would return the empty list when
'current-profile' is true but the profile lacks provenance info.
* guix/describe.scm (current-channels)[build-time-metadata]: New
procedure. Call it when 'manifest-entry-channel' returns #f for all of
ENTRIES.
* guix/scripts/describe.scm (guix-describe): When PROFILE is true, pass
third argument to 'display-profile-info'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* guix/diagnostics.scm (source-properties->location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* & wrong field specifier")
("define-record-type* & wrong field specifier, identifier")
("define-record-type* & duplicate initializers"): Use it.
|
| |
| |
| |
| |
| |
| |
| | |
Guile <= 2.2.7 did not support #:verify-certificate? so work around it.
* guix/swh.scm (http-get*, http-post*) [! guile-3]: Add variant for
Guile 2.2.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Partly fixes <https://bugs.gnu.org/47867>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
The non-tail recursive call to 'connect' could cause requests to be
processed twice, with 'p' possibly closed the second time.
Regression introduced in 205833b72c5517915a47a50dbe28e7024dc74e57 and
carried over in 45fce38fb0b6c6796906149ade145b8d3594c1c6.
* guix/http-client.scm (http-multiple-get): Remove call to 'close-port'
and recursive call to 'connect' when the 'write-request' block returns #f.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Partly fixes <https://bugs.gnu.org/47867>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
In GnuTLS up to 3.7.1 included, GNUTLS_E_AGAIN and GNUTLS_E_INTERRUPTED
are not handled by 'write_to_session_record_port' and could be thrown at
the caller. This patch works around that by dropping connections
altogether and restarting when this happens.
* guix/http-client.scm (false-if-networking-error): Swallow ERROR/AGAIN
and ERROR/INTERRUPTED.
* guix/scripts/substitute.scm (call-with-cached-connection): Likewise.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes <https://bugs.gnu.org/47941>.
Reported by Jack Hill <jackhill@jackhill.us>.
* guix/cve.scm (reference-data->cve-references): Gracefully handle lack
of "reference_data".
(cpe-match->cve-configuration): Gracefully handle lack of "cpe23Uri".
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs. See <https://bugs.gnu.org/32339> and
<https://bugs.gnu.org/36255>.
* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
|
| |
| |
| |
| |
| |
| |
| | |
Fixes <https://bugs.gnu.org/47924>.
Reported by Carl Dong <contact@carldong.me>.
* guix/import/go.scm: Autoload (htmlprag).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This avoids interference with other users of (htmlprag) and makes the
intent clearer.
* guix/import/go.scm <top level>: Remove call to '%strict-tokenizer?'.
(go-package-licenses, go-package-description)
(go-package-synopsis, fetch-module-meta-data): Pass #:strict? #t to
'html->sxml'.
|