Age | Commit message (Expand) | Author |
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 |
2017-07-21 | publish: Avoid 'valid-path?' RPC for non-existent items....* guix/scripts/publish.scm (render-narinfo/cached): Call 'file-exists?'
before calling 'valid-path?'. This makes the 404 path slightly faster.
| Ludovic Courtès |
2017-07-21 | publish: Remove 'regexp-exec' call from the hot path....* guix/scripts/publish.scm (extract-narinfo-hash): Rewrite without
resorting to regexps.
| Ludovic Courtès |
2017-07-21 | substitute: Avoid repeated calls to 'length'....* guix/scripts/substitute.scm (fetch-narinfos)[update-progress!]: Move
'length' call outside of lambda.
| Ludovic Courtès |
2017-07-21 | substitute: Optimize hash-part-to-path conversion on non-200 responses....Previously this operation was linear in the number of requests and
involved costly calls to 'string-contains'.
* guix/scripts/substitute.scm (fetch-narinfos)[hash-part->path]: New
procedure.
[handle-narinfo-response]: Use it for caching when CODE is not 200.
| Ludovic Courtès |
2017-07-20 | guix package: '-l' correctly handles zero-generation profiles....* guix/scripts/package.scm (process-query) <'list-generations>: Properly
handle the case where 'profile-generations' returns the empty list.
| Ludovic Courtès |
2017-07-20 | guix package: Trim trailing slashes from the profile name....Fixes <https://bugs.gnu.org/25762>.
Reported by Ricardo Wurmus <rekado@elephly.net>.
* guix/scripts/package.scm (canonicalize-profile): Trim trailing slashes
from PROFILE.
| Ludovic Courtès |
2017-07-18 | guix system: Use "image.iso" as the name of ISO images....* guix/scripts/system.scm (system-derivation-for-action): Pass #:name to
'system-disk-image'.
| Ludovic Courtès |
2017-07-12 | substitute: Work around Guile 2.2 'time-monotonic' bug....Prior to this change, half of the cached narinfos would expire
immediately since they contained the number of nanoseconds instead of
the number of seconds as their date.
* guix/scripts/substitute.scm (time-monotonic) <guile-2.2>: Define, as a
workaround.
| Ludovic Courtès |
2017-07-12 | size: Add '--sort=KEY'....* guix/scripts/size.scm (profile-closure<?, profile-self<?): New
procedures.
(display-profile): Add #:profile<? parameter and honor it.
(show-help, %options): Add '--sort'.
(%default-options): Add 'profile<?'.
(guix-size): Pass PROFILE<? to 'display-profile*'.
* doc/guix.texi (Invoking guix size): Document '--sort'.
| Ludovic Courtès |
2017-07-12 | environment: Rationalize calls to 'set-build-options'....Before this change '--substitute-urls' would be ignored.
* guix/scripts/environment.scm (build-environment): Remove redundant
call to 'set-build-options-from-command-line*'.
(guix-environment): Move 'set-build-options-from-command-line' right
after 'with-store'.
| Ludovic Courtès |
2017-07-03 | copy: Default to port 22....Failing to do that, "%p" would be "0" when using "ProxyCommand"
in ~/.ssh/config.
* guix/scripts/copy.scm (send-to-remote-host): Default to port 22.
(retrieve-from-remote-host): Likewise.
| Ludovic Courtès |