Age | Commit message (Expand) | Author |
2017-11-07 | refresh: Account for hidden packages....Suggested by Marius Bakke <mbakke@fastmail.com>
in <https://bugs.gnu.org/29177>.
* guix/scripts/refresh.scm (all-packages): Pass #:select? to
'fold-packages'.
| Ludovic Courtès |
2017-10-28 | graph: Remove mention of Graphviz from the summary line....* guix/scripts/graph.scm (show-help): Remove mention of Graphviz from
the summary line.
| Ludovic Courtès |
2017-10-28 | lint: 'refresh' gracefully handles lack of networking access....* guix/scripts/lint.scm (check-for-updates): Wrap
'package-latest-release*' call in 'with-networking-fail-safe'.
| Ludovic Courtès |
2017-10-28 | lint: Extract network-related exception handling....* guix/scripts/lint.scm (call-with-networking-fail-safe): New procedure.
(with-networking-fail-safe): New macro.
(current-vulnerabilities*): Rewrite in terms of 'with-networking-fail-safe'.
| Ludovic Courtès |
2017-10-28 | scripts: Factorize option parsing sans 'GUIX_BUILD_OPTIONS'....* guix/scripts.scm (parse-command-line): Add #:build-options? parameter
and honor it.
* guix/scripts/challenge.scm (guix-challenge): Use 'parse-command-line'
with #:build-options? #f instead of 'args-fold*'.
* guix/scripts/gc.scm (guix-gc): Likewise.
* guix/scripts/graph.scm (guix-graph): Likewise.
* guix/scripts/hash.scm (guix-hash): Likewise.
* guix/scripts/lint.scm (guix-lint): Likewise.
* guix/scripts/refresh.scm (guix-refresh): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
| Ludovic Courtès |
2017-10-27 | scripts: Use 'args-fold*' for command that do not honor build flags....Fixes <https://bugs.gnu.org/28984>.
Reported by Eric Bavier.
* guix/scripts/challenge.scm (guix-challenge): Use 'args-fold*' instead
of 'parse-command-line'.
* guix/scripts/size.scm (guix-size): Likewise.
* guix/scripts/weather.scm (guix-weather): Likewise.
| Ludovic Courtès |
2017-10-25 | challenge: Display an overall summary....* guix/scripts/challenge.scm (summarize-report-list): New procedure.
(guix-challenge): Use it.
* doc/guix.texi (Invoking guix challenge): Adjust command output in
example.
| Ludovic Courtès |
2017-10-25 | substitute: Don't send more than 1000 requests in a row....Fixes <https://bugs.gnu.org/28731>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.
* guix/scripts/substitute.scm (at-most): New procedure.
(http-multiple-get): Use it to send at most 1000 requests at once.
| Ludovic Courtès |
2017-10-25 | guix package: '--list-available' does not show superseded packages....* guix/scripts/package.scm (process-query) <'list-available>: Filter out
P if it matches 'package-superseded'.
| Ludovic Courtès |
2017-10-19 | Add (guix progress)....Among other things, this removes (guix utils), (guix ui), (guix config),
etc. from the closure of (guix build download), as was the case since
798648515b77507c242752457b4dc17c155bad6e.
* guix/utils.scm (<progress-reporter>, call-with-progress-reporter):
Move to...
* guix/progress.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* guix/build/download.scm (current-terminal-columns)
(nearest-exact-integer, duration->seconds, seconds->string)
(byte-count->string, progress-bar, string-pad-middle)
(rate-limited, progress-reporter/file, dump-port*)
(time-monotonic): Move to progress.scm.
* guix/scripts/download.scm: Adjust accordingly.
* guix/scripts/substitute.scm: Likewise.
| Ludovic Courtès |
2017-10-17 | guix: substitute: Report the last progress in the child process....Fixes <https://bugs.gnu.org/28756>.
* guix/utils.scm (filtered-port): Close the 'input' port for the current
process, and close it upon exit in the child process.
* guix/scripts/substitute.scm (progress-substitution): Display "\n\n" after
the reporter has finished.
| 宋文武 |
2017-10-12 | lint: 'home-page' checker reports permanent redirects....* guix/scripts/lint.scm (probe-uri): Add special case for HTTP 301.
(validate-uri): Likewise.
* tests/lint.scm ("home-page: 301, invalid")
("home-page: 301 -> 200", "home-page: 301 -> 404")
("source: 301 -> 200", "source: 301 -> 404"): New tests.
| Ludovic Courtès |
2017-10-12 | offload: Reduce the number of calls to 'machine-load'....Previously we would call 'machine-load' once per machine, which was very
costly when there were many machines. Now we arrange to call it only
once on average (when all the machines have the same 'speed' value).
* guix/scripts/offload.scm (random-seed, shuffle): New procedures.
(choose-build-machine)[machines+slots+loads]: Rename to...
[machines+slots]: ... this. Remove load from the tuples therein.
[undecorate]: Adjust accordingly.
[machine-less-loaded-or-faster?]: Remove.
[machine-faster?]: New procedure.
Sort MACHINES+SLOTS according to 'machine-faster?'. Call
'machine-load?' as the last thing.
| Ludovic Courtès |
2017-10-12 | substitute: Close the progress port after substitute finished....Fixes <https://bugs.gnu.org/28756>.
* guix/scripts/substitute.scm (progress-substitution):
Call '(close-port progress)'.
| 宋文武 |
2017-10-09 | lint: Remove extra newline....* guix/scripts/lint.scm (check-for-updates): Remove trailing "~%".
| Ludovic Courtès |
2017-10-09 | guix: lint: Add checker for new upstream versions....* guix/scripts/lint.scm (check-for-updates): New procedure.
(%checkers): Add it.
* guix/scripts/refresh.scm (importer-modules, %updaters): Move
from here ...
* guix/upstream.scm: ... to here.
| Efraim Flashner |
2017-10-07 | pull: Add GUIX_PULL_URL environment variable....* guix/scripts/pull.scm (%repository-url): Add GUIX_PULL_URL environment
variable.
* doc/guix.texi (Invoking guix pull): Mention GUIX_PULL_URL.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Oleg Pykhalov |
2017-10-07 | guix package: '--upgrade' no longer reverses package order....Reported by Oleg Pykhalov <go.wigust@gmail.com>
at <https://lists.gnu.org/archive/html/help-guix/2017-10/msg00000.html>.
* guix/scripts/package.scm (options->installable)[upgraded]: Use
'fold-right' instead of 'fold'.
| Ludovic Courtès |
2017-10-05 | publish: Cache uncompressed nars as well....Fixes <https://bugs.gnu.org/28664>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
* guix/scripts/publish.scm (bake-narinfo+nar): When COMPRESSION is
'none, write NAR instead of doing nothing.
(make-request-handler): Use 'render-nar/cached' for /nar URLs with no
compression.
* tests/publish.scm ("with cache", "with cache, uncompressed"): Adjust
expected result accordingly.
| Ludovic Courtès |
2017-10-05 | guix system: Error out when passed a wrong file system UUID/label....* guix/scripts/system.scm (check-file-system-availability): New
procedure.
(perform-action): Use it.
| Ludovic Courtès |
2017-09-28 | guix: Revert accidentally committed changes....This is a follow-up to commit fb1db385476bc4548d3eadea93b5dd6a346839f2.
* guix/scripts/build.scm (lazy-util): Remove procedure.
(options->things-to-build): Remove special case for files with ".json"
extension.
| Ricardo Wurmus |
2017-09-28 | import: Add JSON importer....* doc/guix.texi (Invoking guix import): Document it.
* guix/scripts/import/json.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/import.scm (importers): Add json importer.
| Ricardo Wurmus |
2017-09-20 | download: Don't report the progress too fast....* guix/utils.scm (<progress-reporter>): New record type.
(call-with-progress-reporter): New procedure.
* guix/build/download.scm (dump-port*, rate-limited, progress-reporter/file):
New procedures.
(ftp-fetch, http-fetch): Use 'dump-port*'.
(progress-proc): Remove procedure.
* guix/scripts/substitute.scm (progress-report-port): Rewrite in terms of
<progress-reporter>.
(process-substitution): Adjust accordingly.
| 宋文武 |
2017-09-18 | substitute: Close the download port after substitution finished....* guix/scripts/substitute.scm (progress-substitution): Call 'close-port'
after 'restore-file'.
| 宋文武 |
2017-09-16 | guix system: Add 'search' command....* guix/scripts/system.scm (resolve-subcommand): New procedure.
(process-command): Handle 'search'.
(guix-system): Likewise.
(show-help): Augment.
* guix/scripts/system/search.scm: New file.
* po/guix/POTFILES.in: Add it.
* Makefile.am (MODULES): Add it.
* guix/ui.scm (%text-width): Export.
* doc/guix.texi (Invoking guix system): Document it.
(Service Types and Services): Mention 'guix system search'.
* tests/guix-system.sh: Test it.
| Ludovic Courtès |
2017-09-16 | ui: Generalize relevance computation....* guix/ui.scm (relevance, package-relevance): New procedures.
(%package-metrics): New variable.
* guix/scripts/package.scm (find-packages-by-description)[score]
[package-score]: Remove. Use 'package-relevance' instead.
| Ludovic Courtès |
2017-09-14 | guix download: Honor mirrors when using '-o'....Previously "guix download -o x mirror://gnu/…" would fail.
* guix/scripts/download.scm (download-to-file): Pass #:mirrors to
'url-fetch'.
| Ludovic Courtès |
2017-09-12 | guix system: Pretty-print device UUIDs....* guix/scripts/system.scm (display-system-generation): Check if
ROOT-DEVICE is a UUID and pretty-print it if it is.
| Ludovic Courtès |
2017-09-11 | substitute: Download from unauthorized sources that provide the right content....This allows substitutes to be downloaded from unauthorized servers, as
long as they advertise the same hash and references as one of the
authorized servers.
* guix/scripts/substitute.scm (assert-valid-narinfo): Remove.
(valid-narinfo?): Add #:verbose?. Handle each case of
'signature-case'.
(equivalent-narinfo?): New procedure.
(lookup-narinfos/diverse): Add 'authorized?' parameter and honor it.
[select-hit]: New procedure.
(lookup-narinfo): Add 'authorized?' parameter and pass it.
(process-query): Adjust callers accordingly.
(process-substitution): Remove call to 'assert-valid-narinfo'. Check
whether 'lookup-narinfo' returns true and call 'leave' if not.
* tests/substitute.scm (%main-substitute-directory)
(%alternate-substitute-directory): New variables.
(call-with-narinfo): Make 'narinfo-directory' a parameter. Call
'mkdir-p' to create it. Change unwind handler to check whether
CACHE-DIRECTORY exists before deleting it.
(with-narinfo*): New macro.
("substitute, no signature")
("substitute, invalid hash")
("substitute, unauthorized key"): Change expected error message to "no
valid substitute".
("substitute, unauthorized narinfo comes first")
("substitute, unsigned narinfo comes first")
("substitute, first narinfo is unsigned and has wrong hash")
("substitute, first narinfo is unsigned and has wrong refs")
("substitute, unsigned narinfo comes first")
("substitute, two invalid narinfos"): New tests.
* doc/guix.texi (Substitutes): Explain the new behavior.
| Ludovic Courtès |
2017-09-11 | substitute: Make substitute URLs a SRFI-39 parameter....* guix/scripts/substitute.scm (%cache-urls): Rename to...
(%default-substitute-urls): ... this.
(substitute-urls): New variable.
(guix-substitute): Use it instead of %CACHE-URLS.
* tests/substitute.scm: Likewise.
| Ludovic Courtès |
2017-09-07 | size: Default to '--sort=self'....* guix/scripts/size.scm (%default-options): Change default value for
'profile<?.
* doc/guix.texi (Invoking guix size): Adjust accordingly.
| Ludovic Courtès |
2017-09-05 | Handle the same HTTP redirects everywhere....* guix/build/download.scm (http-fetch): Complete the hard-coded list of HTTP
redirection status codes.
* guix/http-client.scm (http-fetch): Likewise.
* guix/scripts/lint.scm (probe-uri): Likewise.
| Tobias Geerinckx-Rice |
2017-09-01 | scripts: Remove 'max-silent-time' from the default options....Fixes <http://bugs.gnu.org/27157>.
Having a finite default `max-silent-time' value for scripts such as 'guix
environment' could lead to timeouts when building subtitutes; this was
undesirable.
This change also fixes client behavior to match the documentation, which
is that by default the daemon's settings are honored.
* guix/scripts/archive.scm (%default-options): Remove max-silent-time entry.
* guix/scripts/copy.scm (%default-options): Likewise.
* guix/scripts/environment.scm (%default-options): Likewise.
* guix/scripts/pack.scm (%default-options): Likewise.
* guix/scripts/package.scm (%default-options): Likewise.
* guix/scripts/pull.scm (%default-options): Likewise.
* guix/scripts/system.scm (%default-options): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Maxim Cournoyer |
2017-08-23 | gnu: bootloader: Deprecate "device" field in favor of "target"....* gnu/bootloader.scm (<bootloader-configuration>): Deprecate "device" field in
favor of "target" field. This is mostly a renaming but also a generalization
to support UEFI targets being paths to a mounted partition instead of a device
name.
* gnu/system/examples/bare-bones.tmpl:
* gnu/system/examples/desktop.tmpl:
* gnu/system/examples/lightweight-desktop.tmpl:
* gnu/system/examples/vm-image.tmpl:
* gnu/system/install.scm:
* gnu/tests.scm:
* gnu/tests/install.scm:
* gnu/tests/nfs.scm:
* tests/system.scm: Adapt all invocations of bootloader-configuration.
* guix/scripts/system.scm (perform-action): Rename device argument to
bootloader-target.
(process-action): Adapt caller.
* doc/guix.texi (Proceeding with the Installation):
* doc/guix.texi (Bootloader Configuration): Update documentation.
| Andy Wingo |
2017-08-23 | gnu: scripts: Cleanup regarding "gnu system" bootloader devices....* guix/scripts/system.scm (install-bootloader, install): Remove unused
"device" argument.
(reinstall-bootloader, perform-action): Adapt callers.
| Andy Wingo |
2017-08-20 | guix download: Support retrieving local file without the URI scheme....* guix/scripts/download.scm (guix-download): Treat the URL argument as a local
file path when it fails on 'string->uri'. Call 'fetch' with the processed
'uri' instead of the original URL argument.
* tests/guix-download.sh: Adjust accordingly.
| 宋文武 |
2017-08-19 | pack: Add "none" compressor....* guix/scripts/pack.scm (%compressors): Add compressor "none"; prepend
extension with ".".
(self-contained-tarball, docker-image): Assume compressor extensions start
with period.
* doc/guix.texi (Invoking guix pack): Document it.
| Ricardo Wurmus |
2017-08-02 | pull: Honor '--no-grafts'....* guix/scripts/pull.scm (guix-pull): Parameterize %GRAFT? as a function
of OPTS.
| Ludovic Courtès |
2017-08-02 | pull: Use the commit ID as the version string....* guix/scripts/pull.scm (build-from-source): Add #:commit parameter.
Pass it to BUILD.
(build-and-install): Add #:commit and pass it to 'build-from-source'.
(guix-pull): Pass #:commit to 'build-and-install'.
| Ludovic Courtès |
2017-08-02 | pull: Fetch source code from Git....* guix/scripts/pull.scm (%snapshot-url, with-environment-variable)
(with-PATH): Remove.
(ensure-guile-git!): New procedure.
(%repository-url): New variable.
(%default-options): Add 'repository-url' and 'ref'.
(show-help, %options): Add '--commit' and '--url'.
(temporary-directory, first-directory, interned-then-deleted)
(unpack): Remove.
(build-from-source): Rename 'tarball' to 'source'. Remove call to
'unpack'.
(build-and-install): Rename 'tarball' to 'source'.
(honor-lets-encrypt-certificates!, report-git-error): New procedures.
(with-git-error-handling): New macro.
(guix-pull)[fetch-tarball]: Remove.
Wrap body in 'with-git-error-handling'. Rewrite to use
'latest-repository-commit'.
* build-aux/build-self.scm (build): Print an error message and exit when
GUILE-GIT is #f.
* doc/guix.texi (Invoking guix pull): Mention Git. Document '--commit'
and '--branch'.
| Ludovic Courtès |
2017-08-01 | guix package: Allow `guix package -u' to fuction as before....This is a follow up to 6ddf97f81bb99a73f00e30ad5fc19577872b5b49
* guix/scripts/package.scm (%options) <"-u">: Only check for a flag when
there is an ARG after '-u'.
| Efraim Flashner |
2017-08-01 | lint: formatting: Detect sexp boundaries....* guix/scripts/lint.scm (report-formatting-issues)[last-line]: Remove.
[sexp-last-line]: New procedure.
Use it.
| Ludovic Courtès |
2017-07-31 | guix package: Warn when invoked with '-u -something'....Fixes <https://bugs.gnu.org/27820>.
Reported by Hartmut Goebel <h.goebel@crazy-compilers.com>.
* guix/scripts/package.scm (%options) <"-u">: Emit a warning when ARG
starts with "-".
| Ludovic Courtès |
2017-07-28 | bootloader: Use <menu-entry> for the bootloader side....* gnu/bootloader.scm (menu-entry-device-mount-point): New variable. Export it.
(<menu-entry>: New field "device".
* gnu/bootloader/grub.scm (grub-confgiuration-file): Handle <menu-entry>
entries.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Handle
<menu-entry> entries.
* gnu/system.scm (menu->entry->boot-parameters): Delete variable.
(boot-parameters->menu-entry): New variable. Export it.
(operating-system-bootcfg): Make OLD-ENTRIES a list of <menu-entry>.
* guix/script/system.scm (reinstall-bootloader): Fix bootcfg usage.
(perform-action): Fix bootcfg usage.
| Danny Milosavljevic |
2017-07-28 | utils: Factorize XDG directory handling....* guix/ui.scm (config-directory): Remove.
* guix/utils.scm (xdg-directory, config-directory): New procedures.
(cache-directory): Rewrite in terms of 'xdg-directory'.
* guix/scripts/substitute.scm (%narinfo-cache-directory): Pass #:ensure?
#f to 'cache-directory'.
| Ludovic Courtès |
2017-07-27 | weather: Show "-m" option in help message....Reported by Alex Kost <alezost@gmail.com>.
* guix/scripts/weather.scm (show-help): Show "-m".
| Ludovic Courtès |
2017-07-25 | offload: Fix potential file descriptor and memory leak....The '%slots' list could grow indefinitely; in practice though,
guix-daemon is likely to restart 'guix offload' often enough.
* guix/scripts/offload.scm (%slots): Remove.
(choose-build-machine): Don't 'set!' %SLOTS. Return the acquired slot
as a second value.
(process-request): Adjust accordingly. Release the returned slot after
'transfer-and-offload'.
| Ludovic Courtès |
2017-07-25 | offload: Disconnect sessions created by 'machine-load'....This fixes a memory leak that can be seen by running:
(map (lambda _ (machine-load m)) (iota 1000))
* guix/scripts/offload.scm (machine-load): Add call to 'disconnect!'.
| Ludovic Courtès |
2017-07-25 | Add 'guix weather'....* guix/scripts/weather.scm: New file.
* Makefile.am (MODULES): Add it.
* doc/guix.texi (Substitutes, Invoking guix publish): Mention "guix
weather".
(Invoking guix weather): New node.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
| Ludovic Courtès |
2017-07-21 | publish: Make the cache eviction policy less aggressive....Suggested by Mark H Weaver <mhw@netris.org>.
* guix/scripts/publish.scm (nar-expiration-time): New procedure.
(render-narinfo/cached): Use it as the #:entry-expiration passed to
'maybe-remove-expired-cache-entries'.
| Ludovic Courtès |