Age | Commit message (Expand) | Author |
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 |
2017-07-03 | guix system: Add "--file-system-type" option....* guix/scripts/system.scm (process-action): Pass file-system-type to ...
(perform-action): ... here. Add new keyword argument. Pass new value to ...
(system-derivation-for-action): ... here. Add new keyword argument.
Pass new value to system-disk-image.
* doc/guix.texi (disk-image): Document new option.
| Danny Milosavljevic |
2017-06-30 | vm: Estimate the disk size by default....* gnu/build/vm.scm (estimated-partition-size): New procedure.
* gnu/system/vm.scm (expression->derivation-in-linux-vm):
Change #:disk-image-size default to 'guess.
[builder]: When DISK-IMAGE-SIZE is 'guess, use
'estimated-partition-size' and compute and estimate of the image size.
(qemu-image): Likewise.
* guix/build/store-copy.scm (file-size, closure-size): New procedures.
* guix/scripts/system.scm (%default-options): Change 'image-size' to
'guess.
* doc/guix.texi (Building the Installation Image): Remove '--image-size'
flag from example.
(Invoking guix system): Document the image size estimate.
| Ludovic Courtès |
2017-06-26 | guix package: Allow '--rollback', after all....* guix/scripts/package.scm (%options): Add "rollback" as an alias for
"roll-back".
| Ludovic Courtès |
2017-06-26 | guix package: 'guix package -r PKG -u' does not upgrade PKG....Fixes <http://bugs.gnu.org/27262>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/package.scm (transaction-upgrade-entry): Check if ENTRY
matches 'manifest-transaction-removal-candidate?' and return TRANSACTION
if it does.
(process-actions): Move 'options->removable' from step 2 to step 1.
| Ludovic Courtès |
2017-06-25 | guix package: Warn about packages that no longer exist....Fixes <http://bugs.gnu.org/27261>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/package.scm (transaction-upgrade-entry): Add call to
'warning' when NAME cannot be found in the package set.
| Ludovic Courtès |
2017-06-24 | refresh: Be more verbose when passed an explicit package list....* guix/scripts/refresh.scm (check-for-package-update): Use
'version-compare' instead of 'version>?'. When WARN? is true, print
something for the '=' and '<' cases.
| Ludovic Courtès |
2017-06-21 | environment: Disable profile collision checks....Reported by Efraim Flashner.
This is a followup to a654dc4bcf7c8e205bdefa1a1d5f23444dd22778.
* guix/profiles.scm (profile-derivation): Add #:allow-collisions? and
honor it.
* guix/scripts/environment.scm (inputs->profile-derivation): Pass
#:allow-collisions? #f to 'profile-derivation'.
* tests/guix-environment.sh: Test "guix environment guix".
| Ludovic Courtès |
2017-06-21 | guix package: '--search-paths' shows search paths from propagated inputs....* guix/scripts/package.scm (process-query) <'search-paths>: Use
'manifest-transitive-entries' instead of 'manifest-entries'.
| Ludovic Courtès |
2017-06-21 | guix package: Always upgrade packages that have propagated inputs....* guix/scripts/package.scm (transaction-upgrade-entry): Always upgrade
packages that have propagated inputs.
| Ludovic Courtès |
2017-06-15 | guix: Add texlive importer....* guix/import/texlive.scm: New file.
* guix/scripts/import/texlive.scm: New file.
* Makefile.am (MODULES): Add them.
* tests/texlive.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
* guix/scripts/import.scm (importers): Add texlive importer.
* doc/guix.texi (Invoking guix import): Document it.
| Ricardo Wurmus |
2017-06-13 | guix package: '--search' sorts by relevance....* guix/scripts/package.scm (find-packages-by-description): Rewrite to
compute a score based on the number of regexps matched and the number of
matches for each regexp. Sort according to this score and return it as
a second value.
(process-query) <'search>: Capture the two return values of
'find-packages-by-description'. Pass #:extra-fields to
'package->recutils'.
* doc/guix.texi (Invoking guix package): Mention relevance, give an
example.
| Ludovic Courtès |
2017-06-12 | derivations: Introduce 'read-derivation-from-file'....This avoids the open/fstat/close syscalls upon a cache hit that we had
with the previous idiom:
(call-with-input-file file read-derivation)
where caching happened in 'read-derivation' itself.
* guix/derivations.scm (%read-derivation): Rename to...
(read-derivation): ... this.
(read-derivation-from-file): New procedure.
(derivation-prerequisites, substitution-oracle)
(derivation-prerequisites-to-build):
(derivation-path->output-path, derivation-path->output-paths):
(derivation-path->base16-hash, map-derivation): Use
'read-derivation-from-file' instead of (call-with-input-file …
read-derivation).
* guix/grafts.scm (item->deriver): Likewise.
* guix/scripts/build.scm (log-url, options->things-to-build): Likewise.
* guix/scripts/graph.scm (file->derivation): Remove.
(derivation-dependencies, %derivation-node-type): Use
'read-derivation-from-file' instead.
* guix/scripts/offload.scm (guix-offload): Likewise.
* guix/scripts/perform-download.scm (guix-perform-download): Likewise.
* guix/scripts/publish.scm (load-derivation): Remove.
(narinfo-string): Use 'read-derivation-from-file'.
| Ludovic Courtès |
2017-06-10 | bootloader: Rename boot-name to bootloader-name....* gnu/system (<boot-parameters>)[boot-name]: Rename field to...
[bootloader-name]: ... this. Adjust users.
* gnu/scripts/system.scm: Adjust accordingly.
| Mathieu Othacehe |
2017-06-04 | scripts: refresh: Add -m manifest option....* guix/scripts/refresh.scm (%options): Add -m option,
(show-help): document it,
(packages-from-manifest): new procedure,
(guix-refresh): use packages from manifest if specified, otherwise
keep the previous behaviour.
* doc/guix.texi (Invoking guix refresh): document new option.
| Mathieu Othacehe |
2017-06-02 | substitute: Do not display the installed size....* guix/scripts/substitute.scm (process-substitution): Do not show the
installed size in the "Downloading" message.
| Ludovic Courtès |
2017-06-02 | syscalls: Provide 'free-disk-space'....* guix/build/syscalls.scm (free-disk-space): New procedure.
* guix/scripts/gc.scm (guix-gc)[ensure-free-space]: Use it instead of
'statfs'.
| Ludovic Courtès |
2017-05-28 | scripts: Set thread names....This allows 'guix publish' threads as well as 'guix substitute' and
'guix offload' processes to be properly labeled in 'top', 'pstree', etc.
* guix/workers.scm (worker-thunk): Add #:thread-name parameter and honor it.
(make-pool): Likewise.
* guix/scripts/publish.scm (http-write): Add calls to 'set-thread-name'
in bodies of 'call-with-new-thread'.
(guix-publish): Call 'set-thread-name'. Pass #:thread-name to 'make-pool'.
* guix/scripts/offload.scm (guix-offload): Call 'set-thread-name'.
* guix/scripts/substitute.scm (guix-substitute): Likewise.
| Ludovic Courtès |
2017-05-24 | publish: Do not bake the same item several times....Before this patch, there was a possibility that we'd queue several
baking tasks for the same item. The first one would bake the item but
subsequent tasks wouldn't check whether the item had been baked in the
meantime and would re-bake it.
* guix/scripts/publish.scm (render-narinfo/cached): Don't call
'bake-narinfo+nar' when (file-exists? cached).
| Ludovic Courtès |
2017-05-23 | guix package: Swallow EPIPE upon 'guix package --list-generations'....Fixes <http://bugs.gnu.org/27017>.
Reported by Alex Vong <alexvong1995@gmail.com>.
* guix/scripts/package.scm (process-query) <'list-generations>: Wrap
body in 'leave-on-EPIPE'.
| Ludovic Courtès |
2017-05-23 | guix: lint: Slightly simplify `check-source-file-name'....* guix/scripts/lint.scm (check-source-file-name): Implement file name matching
with regular expression.
| Arun Isaac |
2017-05-23 | gnu: lint: Fix typo....* guix/scripts/lint.scm (check-source-file-name): Fix wrong return value in
docstring.
| Arun Isaac |
2017-05-22 | Merge branch 'version-0.13.0' | Marius Bakke |
2017-05-21 | guix system: Don't warn about old distros for "guix system init"....* guix/scripts/system.scm (process-action): Don't call
'warn-about-old-distro' when ACTION is 'init' or 'build'.
| Ludovic Courtès |
2017-05-21 | guix system: Increase image size for 'guix system vm'....This is a followup to 9a1bfe764859365b6726f168da95b88a2d22403b.
* guix/scripts/system.scm (system-derivation-for-action): Add 40MiB to
the default size for 'vm'.
| Ludovic Courtès |
2017-05-20 | pack: Use 'guile2.0-json' when building with Guile 2.0....Fixes <http://bugs.gnu.org/27005>.
Reported by Pjotr Prins <pjotr.public12@thebird.nl>.
Fixes a regression introduced in commit
2252f087d4bd450ab41a71379320467887edfc0f.
* guix/scripts/pack.scm (docker-image)[json]: New variable.
[build]: Use it.
| Ludovic Courtès |
2017-05-20 | pack: Use 'guile2.0-json' when building with Guile 2.0....Fixes <http://bugs.gnu.org/27005>.
Reported by Pjotr Prins <pjotr.public12@thebird.nl>.
Fixes a regression introduced in commit
2252f087d4bd450ab41a71379320467887edfc0f.
* guix/scripts/pack.scm (docker-image)[json]: New variable.
[build]: Use it.
| Ludovic Courtès |
2017-05-20 | publish: Fix narinfo rendering for already-compressed items....Fixes <http://bugs.gnu.org/26975>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/publish.scm (bake-narinfo+nar): Pass #f as the 2nd
argument to 'stat' and properly handle #f.
* tests/publish.scm (wait-for-file): New procedure.
("with cache"): Remove 'wait-for-file' procedure.
("with cache, uncompressed"): New test.
| Ludovic Courtès |
2017-05-18 | publish: Fix narinfo rendering for already-compressed items....Fixes <http://bugs.gnu.org/26975>.
Reported by Mark H Weaver <mhw@netris.org>.
* guix/scripts/publish.scm (bake-narinfo+nar): Pass #f as the 2nd
argument to 'stat' and properly handle #f.
* tests/publish.scm (wait-for-file): New procedure.
("with cache"): Remove 'wait-for-file' procedure.
("with cache, uncompressed"): New test.
| Ludovic Courtès |
2017-05-18 | lint: inputs-should-be-native: Add "cmake"....Suggested by Nicolas Goaziou <mail@nicolasgoaziou.fr>.
* guix/scripts/lint.scm (check-inputs-should-be-native)[input-names]:
Add "cmake".
| Ludovic Courtès |
2017-05-16 | scripts: system: Display bootloader name in "list-generations"....* guix/scripts/system.scm (display-system-generation): Display
bootloader name.
| Mathieu Othacehe |
2017-05-16 | scripts: system: Adapt "switch-generation" to new bootloader API....* guix/scripts/system.scm (reinstall-grub): Rename to
reinstall-bootloader. Read boot-device and boot-type from parameters file to
be able to restore the correct bootloader on specified device.
Factorize bootloader installation code by calling install-bootloader.
(system-bootloader-name): New procedure.
(switch-to-system-generation): Adapt.
| Mathieu Othacehe |
2017-05-16 | scripts: system: Adapt "init" to new bootloader API....* guix/scripts/system.scm (install): Pass installer a new
argument. Rename other arguments.
Call install-bootloader instead of install-grub*.
(perform-action): Adapt.
| Mathieu Othacehe |
2017-05-16 | scripts: system: Adapt "reconfigure" to new bootloader API....* guix/scripts/system.scm (install-grub*): Rename to install-bootloader. Use
keys to pass arguments. Pass a new argument, "installer-drv" which is a script
in store dealing with bootloader-specific install actions. Also call
"install-boot-config" to install the bootloader config file.
(install-bootloader-derivation): New procedure. It returns a derivation that
builds a file containing "install-procedure" gexp.
(perform-action): Build install-proc derivation and call install-bootloader
with the resulting file. Stop adding GRUB to PATH as bootloaders are called in
install-proc with direct store paths.
| Mathieu Othacehe |