Age | Commit message (Expand) | Author |
2021-06-01 | maint: Require Guile 3.0....* 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.
| Ludovic Courtès |
2021-06-01 | publish: Add keep-alive support when sending nar....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.
| Mathieu Othacehe |
2021-06-01 | publish: Preserve the request connection header....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.
| Mathieu Othacehe |
2021-05-28 | guix build: Emit "nothing to do" warning only when needed....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.
| Ludovic Courtès |
2021-05-28 | guix package: Do not warn about "missing arguments" when there's nothing to do....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".
| Ludovic Courtès |
2021-05-28 | scripts: Commands warn when passed zero arguments....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.
| Ludovic Courtès |
2021-05-28 | deploy: Error out when the FILE argument is missing....* guix/scripts/deploy.scm (guix-deploy): Error out when FILE is false.
| Ludovic Courtès |
2021-05-22 | scripts: discover: Report Avahi errors....Fixes: <https://issues.guix.gnu.org/48561>.
* guix/scripts/discover (guix-discover): Report Avahi errors.
| Mathieu Othacehe |
2021-05-20 | scripts: challenge: Fix regression....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.
| Mathieu Othacehe |
2021-05-16 | publish: Add '--negative-ttl'....* 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.
| Ludovic Courtès |
2021-05-14 | import: go: Fix goproxy option argument's format....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>
| Zheng Junjie |
2021-05-13 | challenge: Be defensive in the size passed to the progress reporter....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'.
| Ludovic Courtès |
2021-05-11 | Merge branch 'version-1.3.0' | Maxim Cournoyer |
2021-05-10 | guix: scripts system: Increase the size for generating Docker container images....* guix/scripts/system.scm: Override the default of 256.
| Roel Janssen |
2021-05-09 | describe: Gracefully handle profiles that lack provenance info....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'.
| Ludovic Courtès |
2021-05-08 | weather: '--display-missing' shows the system type of missing items....* guix/scripts/weather.scm (store-item-system): New procedure.
(report-server-coverage): Use it to print the system type of each
missing item.
| Ludovic Courtès |
2021-04-29 | download: Use Disarchive as a last resort....This is a fixed version of 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2,
which was reverted in e74250c3c535b75dd2225a26df51febb7ed94654.
* guix/download.scm (%disarchive-mirrors): New variable.
(%disarchive-mirror-file): New variable.
(built-in-download): Add 'disarchive-mirrors' keyword argument and
pass its value along to the 'builtin:download' derivation.
(url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'.
* guix/scripts/perform-download.scm (perform-download): Read
Disarchive mirrors from the environment and pass them to
'url-fetch'.
* guix/build/download.scm (disarchive-fetch/any): New procedure.
(url-fetch): Add 'disarchive-mirrors' keyword argument, use it to
make a list of URIs, and use the new procedure to fetch the file if
all other methods fail.
* build-aux/build-self.scm (build-program)[select?]: Exclude '(guix
build download)'.
* guix/self.scm (compiled-guix)[*core-modules*]: Add 'guile-json' to
the list of extensions.
| Timothy Sample |
2021-04-28 | Revert "download: Use Disarchive as a last resort."...This reverts commit 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which broke
'guix pull'.
| Timothy Sample |
2021-04-27 | download: Use Disarchive as a last resort....* guix/download.scm (%disarchive-mirrors): New variable.
(%disarchive-mirror-file): New variable.
(built-in-download): Add 'disarchive-mirrors' keyword argument and
pass its value along to the 'builtin:download' derivation.
(url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'.
* guix/scripts/perform-download.scm (perform-download): Read
Disarchive mirrors from the environment and pass them to
'url-fetch'.
* guix/build/download.scm (disarchive-fetch/any): New procedure.
(url-fetch): Add 'disarchive-mirrors' keyword argument, use it to
make a list of URIs, and use the new procedure to fetch the file if
all other methods fail.
| Timothy Sample |
2021-04-25 | http-client, substitute: Gracefully handle GnuTLS EAGAIN/EINTR....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.
| Ludovic Courtès |
2021-04-25 | import: Remove Nix importer....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.
| Ludovic Courtès |
2021-04-24 | http-client, substitute: Gracefully handle GnuTLS EAGAIN/EINTR....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.
| Ludovic Courtès |
2021-04-20 | import: Remove Nix importer....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.
| Ludovic Courtès |
2021-04-11 | scripts: system: Default to -v3 when building a system....This is a followup to 8f9052d5434a3a11e7b4ff14d6b0090256e08aa4.
* guix/scripts/system.scm (verbosity-level): Change the default
from 2 to 3 when building a system.
| Mark H Weaver |
2021-04-09 | import: go: Append version to symbol name in the pinned version mode....This allows importing packages with complicated version specific dependency
chains without the package symbol names colliding.
* doc/guix.texi (Invoking guix import): Document the --pin-versions option.
Mention that a specific version can be imported. Remove the experimental
warning.
* guix/import/go.scm (go-module->guix-package-name)[version]: Add optional
argument. Rewrite the character translation in terms of string-map.
(go-module->guix-package): Conditionally use dependencies whose symbol include
their version, based no the value of the PIN-VERSIONS? argument.
* guix/import/utils.scm (package->definition): Add a new case where the full
version string is appended to the package symbol.
* guix/scripts/import.scm (guix-import): Correctly print forms starting
with '(define-public [...]'.
* guix/scripts/import/go.scm (guix-import-go): Conditionally include the
version in the package symbols defined.
| Maxim Cournoyer |
2021-04-09 | import: go: Add an option to use pinned versions....The ability to pin versions is handy when having to deal to packages that
bootstrap themselves through a chain of former versions. Not using pinned
versions in these case could introduce dependency cycles.
* guix/build-system/go.scm (guix)
(%go-version-rx): Rename to...
(%go-pseudo-version-rx): ... this. Simplify the regular expression, which in
turns makes it more robust.
* guix/build-system/go.scm (go-version->git-ref): Adjust following the above
rename.
(go-pseudo-version?): New predicate.
(go-module-latest-version): Rename to ...
(go-module-version-string): ... this. Rename goproxy-url argument to just
goproxy. Add a VERSION keyword argument, update docstring and adjust to have
it used.
(go-module-available-versions): New procedure.
(%go.mod-require-directive-rx): Document regexp.
(parse-go.mod): Harmonize the way dependencies are recorded to a list of lists
rather than a list of pairs, as done for other importers. Rewrite to directly pass
multiple values rather than a record object. Filter the replaced modules in a
functional style.
(go-module->guix-package): Add docstring.
[version, pin-versions?]: New arguments. Rename the GOPROXY-URL argument to
GOPROXY. Adjust to the new returned value of fetch-go.mod, which is a string.
Fail when the provided version doesn't exist. Return a list dependencies and
their versions when in pinned versions mode, else just the dependencies.
(go-module-recursive-import)[version, pin-versions?]: New arguments.
Honor the new arguments and guard against network errors.
* guix/scripts/import/go.scm (%default-options): Register a default value for
the goproxy argument.
(show-help): Document that a version can be specified. Remove the --version
argument and add a --pin-versions argument.
(%options)[version]: Remove option.
[pin-versions]: Add option.
(guix-import-go): Adjust so the version provided from the module name is
honored, along the new pin-versions? argument.
* tests/go.scm: Adjust and add new tests.
| Maxim Cournoyer |
2021-04-09 | daemon: 'guix substitute' replies on FD 4....This avoids the situation where error messages would unintentionally go
to stderr and be wrongfully interpreted as a reply by the daemon.
Fixes <https://bugs.gnu.org/46362>.
This is a followup to ee3226e9d54891c7e696912245e4904435be191c.
* guix/scripts/substitute.scm (display-narinfo-data): Add 'port'
parameter and honor it.
(process-query): Likewise.
(process-substitution): Likewise.
(%error-to-file-descriptor-4?, with-redirected-error-port): Remove.
(%reply-file-descriptor): New variable.
(guix-substitute): Remove use of 'with-redirected-error-port'. Define
'reply-port' and pass it to 'process-query' and 'process-substitution'.
* nix/libstore/build.cc (SubstitutionGoal::handleChildOutput): Swap
'builderOut' and 'fromAgent'.
* nix/libstore/local-store.cc (LocalStore::getLineFromSubstituter):
Likewise.
* tests/substitute.scm <top level>: Set '%reply-file-descriptor'
rather than '%error-to-file-descriptor-4?'.
| Ludovic Courtès |
2021-04-01 | scripts: show: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/show.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: search: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/search.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: repl: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/repl.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: publish: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/publish.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: edit: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/edit.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: download: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/download.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: discover: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/discover.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-04-01 | scripts: describe: Replace 'args-fold*' by 'parse-command-line'....* guix/scripts/describe.scm (define-command): Replace 'args-fold*' by
'parse-command-line'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-03-31 | scripts: Scripts that defaulted to -v2 now default to -v3....This is a followup to e45ef9a648c155c35b51e6b15049a1bd5416f0a1.
* guix/scripts/archive.scm (%default-options): Change 'verbosity' to 3.
* guix/scripts/build.scm (%default-options): Likewise.
* guix/scripts/copy.scm (%default-options): Likewise.
| Ludovic Courtès |
2021-03-31 | substitute: Emit a single newline upon completion....The immediate effect is that, with '--verbosity=1', only two lines are
displayed for each substitute, instead of two lines followed by an empty
line.
* guix/scripts/substitute.scm (process-substitution): Emit a single
newline upon completion when PRINT-BUILD-TRACE? is true.
| Ludovic Courtès |
2021-03-29 | scripts: import: cran: Add missing help for 'style' option....* guix/scripts/import/cran.scm (show-help): Add help message for 'style'
option.
Signed-off-by: Christopher Baines <mail@cbaines.net>
| zimoun |
2021-03-29 | Fix substitutes server discovery....This is a follow-up of bc3896db25c788c181c7bcd65754e7cd378e9d9f.
* guix/scripts/substitute.scm (%local-substitute-urls): Test for "true"
instead of "yes".
| Mathieu Othacehe |
2021-03-21 | substitute: Choose compression method based on past CPU usage....This stems from the observation that substitute download can be
CPU-bound when high-speed networks are in use:
https://lists.gnu.org/archive/html/guix-devel/2020-12/msg00177.html
* guix/narinfo.scm (decompresses-faster?): New procedure.
(narinfo-best-uri): Add #:fast-decompression?.
* guix/scripts/substitute.scm (%prefer-fast-decompression?): New
variable.
(call-with-cpu-usage-monitoring): New procedure.
(with-cpu-usage-monitoring): New macro.
(display-narinfo-data, process-substitution): Pass #:fast-decompression?
to 'narinfo-best-uri'.
(process-substitution): Wrap 'restore-file' call in
'with-cpu-usage-monitoring'. Set '%prefer-fast-decompression?'.
| Ludovic Courtès |
2021-03-19 | guix package: Autoload Guile-JSON and (guix describe)....* guix/scripts/build.scm: Autoload (guix import json).
* guix/scripts/package.scm: Autoload (guix import json) and (guix
describe).
| Ludovic Courtès |
2021-03-19 | guix describe: Autoload Guile-JSON....* guix/scripts/describe.scm: Autoload (json).
| Ludovic Courtès |
2021-03-17 | weather: Only show request statistics when requests were made....This avoids the script crashing if all data is fetched from the cache.
* guix/scripts/weather.scm (report-server-coverage): Only show request
statistics when some requests have been made.
| Christopher Baines |
2021-03-17 | scripts: weather: Provide more representative request statistics....Previously, the "seconds per request" and "requests per second" statistics
really reported (cache lookups + requests) per second. By looking at the
actual number of requests made within lookup-narinfos, a more representative
value can be reported.
* guix/scripts/weather.scm (let/time): Allow for multiple return values.
(report-server-coverage): Alter the reporting of request statistics.
| Christopher Baines |
2021-03-17 | scripts: substitute: Tweak error reporting in process-substitution....The call-with-connection-error-handling was added in
20c08a8a45d0f137ead7c05e720456b2aea44402, but that error handling was
previously inside of open-connection-for-uri/maybe, which is related
to (call-)with-cached-connection which was used in process-substitution, but
only actually used with call-with-cached-connection when used in
fetch-narinfos.
There's some handling for similar errors within with-networking, which is used
within process-substitution.
* guix/scripts/substitute.scm (process-substitution): Remove
call-with-connection-error-handling call.
| Christopher Baines |
2021-03-17 | scripts: substitute: Add back some error handling....In f50f5751fff4cfc6d5abba9681054569694b7a5c, the way fetch was called within
process-substitution was changed. As call-with-cached-connection actually
includes important error handling for the opening of a HTTP request, this
change removed some error handling. This commit adds that back.
Fixes <https://bugs.gnu.org/47157>.
* guix/scripts/substitute.scm (call-with-cached-connection): New procedure.
(with-cached-connection): New syntax rule.
(process-substitution): Retry once for some errors when making HTTP requests
to fetch substitutes.
| Christopher Baines |
2021-03-11 | time-machine: Fail when unrecognized option....* guix/scripts/time-machine (parse-args): Fail when unrecognized option.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-03-10 | import: Add Go importer....This patch adds a 'guix import go' command.
* doc/guix.texi (Requirements): Mention Guile-Lib dependency.
(Invoking guix import): Document 'guix import go'.
* gnu/packages/package-management.scm (guix)[inputs, propagated-inputs]:
Add GUILE-LIB.
* guix/self.scm (compiled-guix)[guile-lib]: New variable.
[dependencies]: Add it.
(specification->package): Add "guile-lib".
* guix/build-system/go.scm (go-version->git-ref): New procedure.
* guix/import/go.scm, guix/scripts/import/go.scm, tests/go.scm: New files.
* guix/scripts/import.scm: Declare subcommand guix import go
* po/guix/POTFILES.in: Add 'guix/scripts/import/go.scm'.
* Makefile.am (MODULES): Add 'guix/import/go.scm' and
'guix/scripts/import/go.scm'.
(SCM_TESTS): Add 'tests/go.scm'.
Co-Authored-By: Helio Machado <0x2b3bfa0@gmail.com>
Co-Authored-By: Francois Joulaud <francois.joulaud@radiofrance.com>
Co-Authored-By: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Co-Authored-by: Ludovic Courtès <ludo@gnu.org>
| Katherine Cox-Buday |
2021-03-10 | Revert "inferior: Break cached-channel-instance into two procedures."...This reverts commit 7d63b775513e7049047222dbe403a4181f63828d because it raises
some concerns, see:
https://lists.gnu.org/archive/html/guix-devel/2021-03/msg00124.html.
| Mathieu Othacehe |
2021-03-10 | inferior: Break cached-channel-instance into two procedures....Break cached-channel-instance into two different procedures:
channels->cached-profile and instances->cached-profile operating respectively
on channels and channels instances.
* guix/inferior.scm (cached-channel-instance): Rename it into ...
(cached-profile): ... this new procedure.
(channels->cached-profile, instances->cached-profile): New procedures.
* guix/scripts/time-machine.scm (guix-time-machine): Adapt accordingly.
| Mathieu Othacehe |