summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2021-02-03guix: scripts: Add hint for option typo....* guix/scripts.scm (option-hint): New procedure. (parse-command-line): Add 'option-hint'. Co-authored-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-02-03utils: Add string distance....* guix/utils.scm (string-distance): New procedure. (string-closest): New procedure. * tests/utils.scm ("string-distance", "string-closest"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-02-02guix: narinfo: Export narinfo-contents....As this is useful if you want to work with narinfo signatures outside of Guix, in the Guix Data Service for example. * guix/narinfo.scm: Export narinfo-contents. Christopher Baines
2021-02-02import: gnu: Fix the detection of non-GNU packages....* guix/import/gnu.scm (gnu->guix-package): Move the 'find-package' call before the 'latest-release' call, which would fail when the package did not have an entry on the FTP server. Maxim Cournoyer
2021-02-01guix package: Add '--export-channels'....* guix/channels.scm (sexp->channel): Export. * guix/describe.scm: Use (guix channels). (manifest-entry-provenance): New procedure. * guix/scripts/package.scm (channel=?, export-channels): New procedures. (show-help, %options): Add '--export-channels'. (process-query): Honor it. * build-aux/build-self.scm (build-program)[select?]: Exclude (guix channels) to account for the (guix describe) change above. * doc/guix.texi (Invoking guix package): Document it. Ludovic Courtès
2021-02-01channels: Add 'channel->code'....* guix/channels.scm (channel->code): New procedure, taken from... * guix/scripts/describe.scm (channel->sexp): ... here. Adjust callers accordingly. Ludovic Courtès
2021-02-01guix describe: Use 'manifest-entry-channel'....* guix/channels.scm (manifest-entry-channel): Export. * guix/scripts/describe.scm (display-profile-content): Use it. Ludovic Courtès
2021-02-01channels: Add the channel name to channel sexps....* guix/channels.scm (channel-instance->sexp): Add 'name'. (sexp->channel): Extract the name from SEXP, using the optional argument as a fallback. Ludovic Courtès
2021-02-01channels: Factorize 'manifest-entry-channel' and channel serialization....* guix/channels.scm (sexp->channel, manifest-entry-channel): New procedures. (profile-channels): Replace lambda by 'manifest-entry-channel'. (channel-instance->sexp): New procedure. (channel-instances->manifest)[instance->entry]: Use 'channel-instance->sexp' instead of inline code. Ludovic Courtès
2021-02-01guix package: Add '--export-manifest'....* guix/scripts/package.scm (export-manifest): New procedure. (show-help, %options): Add '--export-manifest'. (process-query): Honor it. * guix/build/profiles.scm (build-profile): Mention it. * tests/guix-package.sh: Test it. * doc/guix.texi (Invoking guix package): Document it. Ludovic Courtès
2021-02-01utils: Add 'version-unique-prefix'....* guix/utils.scm (version-unique-prefix): New procedure. * tests/utils.scm ("version-unique-prefix"): New test. Ludovic Courtès
2021-02-01profiles: Add 'manifest->code'....* guix/profiles.scm (manifest->code): New procedure. * tests/profiles.scm ("manifest->code, simple") ("manifest->code, simple, versions") ("manifest->code, transformations"): New tests. Ludovic Courtès
2021-01-31scripts: import: json: Fix error handling....Fixes partially <https://bugs.gnu.org/44115>. * guix/scripts/import/json.scm (guix-import-json): Handle error. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-01-31import: gnu: Mention package name upon failure....* guix/import/gnu.scm (gnu->guix-package): Use 'formatted-message' and mention the package name in error messages. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-01-31gnu-maintenance: Fix error handling....Fixes partially <https://bugs.gnu.org/44115>. * guix/gnu-maintenance.scm (latest-release): Handle 'ftp-error'. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2021-01-31database: Validate #:nar-size and #:time when registering store items....* guix/store/database.scm (assert-integer): New procedure. (update-or-insert): Use it to validate NAR-SIZE and TIME. * tests/store-database.scm ("sqlite-register with incorrect size"): New test. Ludovic Courtès
2021-01-31database: Remove workarounds unnecessary with guile-sqlite3 0.1.2....* guix/store/database.scm (sqlite-exec, sqlite-finalize): Remove. Ludovic Courtès
2021-01-31ci: Add missing imports....This is a followup to 041a9466ea23d6ae811491bcf529bf9487317b48. * guix/ci.scm: Add missing imports. * guix/channels.scm: Remove (guix ci) import. Ludovic Courtès
2021-01-31guix: channels: Introduce "channel-with-substitutes-available"....* guix/channels.scm (find-latest-commit-with-substitutes, channel-with-substitutes-available): New procedures. * guix/scripts/pull.scm (guix-pull): Move "channel-list" call inside the %current-system parameter scope. * doc/guix.texi (Channels with substitutes): New section. Mathieu Othacehe
2021-01-30guix system: Adjust 'upgrade-shepherd-services' to shepherd service change....Fixes a regression introduced in 95f72dcd7aece05e9252c93bef5a831f96cb5393. * guix/scripts/system/reconfigure.scm (upgrade-shepherd-services)[target-services]: Add call to 'shepherd-configuration-services'. Ludovic Courtès
2021-01-30services: shepherd: Allow custom 'shepherd' package....* gnu/services/shepherd.scm (<shepherd-configuration>): New record. (shepherd-boot-gexp, shepherd-root-service-type): Use it. (scm->go, shepherd-configuration-file): Allow passing custom shepherd package. * gnu/system.scm (operating-system-shepherd-service-names): Use the new record. * guix/scripts/system.scm (export-shepherd-graph): Adjust accordingly. * doc/guix.texi (Shepherd Services). Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos
2021-01-30build-system/julia: Don't rely on file name to set module name....* guix/build/julia-build-system.scm (project.toml->name): New procedure. (precompile, check, julia-build): Accept new key argument #:julia-package-name. * guix/build-system/julia.scm (julia-build): ... add it. * doc/guix.texi (julia-build-system): Update julia-package-name accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> nixo
2021-01-30build-system/julia: Enable tests....* guix/build-system/julia.scm (julia-build): Set tests? default to #t. * guix/build/julia-build-system.scm (check): Respect tests? and fix julia invocation. (%standard-phases): Add check phase after install. * doc/guix.texi (julia-build-system): Update accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> nixo
2021-01-29inferior: Speed up 'cached-channel-instance' for cache hits....That way a command like: guix time-machine --commit=5aeee07cc9 -- describe goes from 3.4s to 0.5s on a cache hit, even slightly less when passing the full commit ID. * guix/inferior.scm (channel-full-commit): New procedure. (cached-channel-instance): Remove 'instances' top-level variable. Add 'commits' and use it for 'key'. Move 'latest-channel-instances' call to the cache miss case. Ludovic Courtès
2021-01-28ui: Look up extensions before built-in commands....* guix/ui.scm (run-guix-command): Modify order so that extensions are allowed to override default commands. Co-authored-by: Ricardo Wurmus <rekado@elephly.net> zimoun
2021-01-28guix: Add Open Software License 2.1....* guix/licenses.scm (osl2.1): New variable. Ricardo Wurmus
2021-01-28guix: Fix typo....* guix/inferior.scm (inferior-available-packages): Remove extra word in docstring. Ricardo Wurmus
2021-01-27inferior: Memoize entries in 'inferior-package->manifest-entry'....Fixes a performance issue as reported by Ricardo Wurmus in <https://bugs.gnu.org/46100>. * guix/inferior.scm (inferior-package->manifest-entry): Remove #:parent parameter. [cache]: New variable. [memoized]: New macro. [loop]: New procedure. Ludovic Courtès
2021-01-22store: Add 'find-roots' RPC....* guix/serialization.scm (read-string-pairs): New procedure. * guix/store.scm (read-arg): Add support for 'string-pairs'. (find-roots): New procedure. * tests/store.scm ("add-indirect-root and find-roots"): New test. Ludovic Courtès
2021-01-21Revert "substitute: Remove extra 'newline' call."...This reverts commit d5a1b0e86f248edd53c785b910b5d51ee708b0fc. This change turned out to be misguided; it would lead to "substitute:" lines being printed on the client side, without anything beyond the colon sign. Ludovic Courtès
2021-01-21repl: Fix exception handling for interpreted code....The 'stack' variable could be #f when code is interpreted, which in practice happens when running in "legacy" mode--i.e., when 'open-inferior' invokes "guile" instead of "guix repl". * guix/repl.scm (send-repl-response)[handle-exception]: Check whether STACK is true before passing it to 'stack->frames'. * tests/inferior.scm ("&inferior-exception, legacy mode"): New test. Ludovic Courtès
2021-01-21import, swh: Adjust to Guile-JSON 4.5.x unspecified value handling....* guix/import/cpan.scm (<cpan-release>)[home-page]: Add 'unspecified?' case. * guix/import/gem.scm (<gem>)[licenses]: Likewise. (json->gem-dependency-list): Likewise. * guix/swh.scm (<directory-entry>)[checksums]: Likewise. Ludovic Courtès
2021-01-20archive: Note service type in ACL hint....* guix/scripts/archive.scm (authorize-key): Mention guix-service-type. Tobias Geerinckx-Rice
2021-01-20import/cran: Add more invalid package names to ignore....* guix/import/cran.scm (invalid-packages): Add more names. Ricardo Wurmus
2021-01-19transformations: Add '--with-latest'....* guix/upstream.scm (upstream-source-compiler): New procedure. (%updaters): Set! it. * guix/transformations.scm (transform-package-latest): New procedure. (%transformations): Add 'with-latest'. (%transformation-options, show-transformation-options-help/detailed): Add '--with-latest'. * tests/transformations.scm ("options->transformation, with-latest"): New test. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès
2021-01-19environment: Fix '--root' option with relative file name....The path normalization of `--root` option of `guix environment` was buggy as it appended full argument after normalized directory. This patch fixes it. * guix/scripts/environment.scm (register-gc-root): Fix gc-root path normalization. * tests/guix-environment.sh: Add test. Co-authored-by: Ludovic Courtès <ludo@gnu.org> JOULAUD François
2021-01-19modules: Recognize #:re-export-and-replace....* guix/modules.scm (extract-dependencies): Recognize #:re-export-and-replace, which was introduced in Guile 3.0. Ludovic Courtès
2021-01-19system: Rename 'disk-image' command 'image'....* guix/scripts/system.scm (system-derivation-for-action): Rename 'disk-image' command 'image'. Warn when using the now deprecated 'disk-image' command. (show-help): Adapt accordingly. (guix-system): Ditto. * tests/guix-system.sh: Ditto. * gnu/system/examples/bare-hurd.tmpl: Ditto. * doc/guix.texi (Building the Installation Image, Building the Installation Image for ARM Boards, Invoking guix pack, Invoking guix system): Adapt documentation. Mathieu Othacehe
2021-01-17image: Rename "raw" image-type to "efi-raw"....* gnu/system/image.scm (raw-image-type): Rename to "efi-raw-image-type". * guix/scripts/system.scm (%default-options): Adapt accordingly. * doc/guix.texi: Ditto. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Mathieu Othacehe
2021-01-16guix: Move narinfo code from substitute script to module....This separation between the code for dealing with narinfos from the code doing that for a purpose should make things clearer, and better support components other that the substitute script in using this code. This is just moving the code around, no code should have been significantly changed. * guix/scripts/substitute.scm (<narinfo>): Move record type to (guix narinfo). (fields->alist, narinfo-hash-algorithm+value, narinfo-hash->sha256, narinfo-signature->canonical-sexp, narinfo-maker, read-narinfo, narinfo-sha256, valid-narinfo?, write-narinfo, narinfo->string, string->narinfo, equivalent-narinfo?, supported-compression?, compresses-better?, narinfo-best-uri): Move procedures to (guix narinfo). (%compression-methods): Move variable to (guix narinfo). * guix/narinfo.scm: New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Add 'guix/narinfo.scm'. Christopher Baines
2021-01-16substitute: Untangle skipping authentication from valid-narinfo?....Rather than having valid-narinfo? evaluate to #t if %allow-unauthenticated-substitutes? is set to #t, just use (const #t) for valid-narinfo? when %allow-unauthenticated-substitutes? is set to #t. This will allow moving valid-narinfo? in to a (guix substitutes) module. * guix/scripts/substitute.scm (process-query, process-substitution): Change the authorized? argument to lookup-narinfo and lookup-narinfos/diverse based on %allow-unauthenticated-substitutes?. (valid-narinfo?): Remove use of %allow-unauthenticated-substitutes?. Christopher Baines
2021-01-14self: Add dependency on guile-zstd....* guix/self.scm (specification->package): Add "guile-zstd". (compiled-guix)[guile-zstd]: New variable. [dependencies]: Add it. Ludovic Courtès
2021-01-13substitute: Add zstd support....* guix/scripts/substitute.scm (%compression-methods): Add zstd. (compresses-better?): "lzip" always wins. Ludovic Courtès
2021-01-13publish: Add support for zstd compression....* guix/scripts/publish.scm (compress-nar)[write-compressed-file]: New procedure. Use it for 'gzip' and 'lzip'. Add 'zstd. (nar-response-port, string->compression-type): Add case for 'zstd'. * tests/publish.scm (zstd-supported?): New procedure. ("/nar/zstd/*"): New test. * doc/guix.texi (Invoking guix publish): Document zstd compression. (Base Services): Add cross-reference to the above node. Ludovic Courtès
2021-01-13utils: Support zstd compression via Guile-zstd....* guix/utils.scm (lzip-port): Return a single value. (zstd-port): New procedure. (decompressed-port, compressed-output-port): Add 'zstd' case. * tests/utils.scm (test-compression/decompression): Test 'zstd' when the (zstd) module is available. Ludovic Courtès
2021-01-13utils: Remove 'compressed-output-port'....This procedure was unused except in one test. * guix/utils.scm (compressed-port): Remove. * tests/utils.scm (test-compression/decompression): Rewrite to use 'compressed-output-port' instead. Ludovic Courtès
2021-01-13substitute: Remove extra 'newline' call....This led to extra "substitute:" lines since commit 79c6614f58a57b985daf8940766319e440311db0 or thereabouts. * guix/scripts/substitute.scm (fetch-narinfos): Remove extra 'newline' call, which can be traced back to d3a652037ef879f9279bc056c43d15ba7afcbb25 (2015). Ludovic Courtès
2021-01-13git: Periodically delete least-recently-used cached checkouts....This ensures ~/.cache/guix/checkouts is periodically cleaned up. * guix/git.scm (cached-checkout-expiration) (%checkout-cache-cleanup-period): New variables. (delete-checkout): New procedure. (update-cached-checkout)[cache-entries]: New procedure. Add call to 'maybe-remove-expired-cache-entries'. * guix/cache.scm (file-expiration-time): Add optional 'timestamp' parameter and honor it. Ludovic Courtès
2021-01-11packages: Fix 'base32' used before definition warning....Before this change, compiling the module would emit the following message: "guix/packages.scm:213:25: warning: macro `base32' used before definition". * guix/packages.scm (define-compile-time-decoder) (base32, base64): Move definitions to the top of the module. Maxim Cournoyer
2021-01-10import: texlive: Produce a partial package definition rather than crashing....This is a small improvement awaiting a definitive fix for <https://issues.guix.gnu.org/45656>. * guix/import/texlive.scm (sxml->package): Produce a warning when the SVN checkout failed. Rather than crashing on the unexpected #f value, return a partial package definition with the source field set to #f. Maxim Cournoyer