summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2019-10-01import: crate: Support recursive imports.Martin Becze
* guix/import/crate.scm (crate-recursive-import): New procedure. (crate->guix-package): Return dependencies as a second value. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-10-01pull: Do not use '~*', which 'msgfmt' fails to interpret.Konrad Hinsen
Really fixes <https://bugs.gnu.org/37505>. This is a followup to f751b4646d3989d76dad9e33e39f9724c7c50be6. * guix/scripts/pull.scm (display-channel-news): Remove second occurrence of '~*' in a format string. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-10-01inferior: Change to use the (guix repl) module.Christopher Baines
Rather than (guix scripts repl), from which the machine-repl procedure was removed in [1]. 1: 92a4087bf4862d5ba9b77111eba3c68c2a1c4679 * guix/inferior.scm (inferior-pipe): Load (guix repl) rather than (guix scripts repl).
2019-10-01pull: Do not use '~*', which 'msgfmt' fails to interpret.Ludovic Courtès
Fixes <https://bugs.gnu.org/37505>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/pull.scm (display-channel-news): Use ~a instead of ~* when reporting new channels.
2019-10-01ui: 'show-what-to-build' colorizes store file names.Ludovic Courtès
* guix/ui.scm (colorize-store-file-name): New procedure. (show-what-to-build)[colorize-store-item]: New variable. Use it throughout.
2019-09-29syscalls: 'define-as-needed' does not re-export local variables.Ludovic Courtès
Fixes <https://bugs.gnu.org/36723>. Reported by Timothy Sample <samplet@ngyro.com>. * guix/build/syscalls.scm (define-as-needed): Rewrite to use lower-level module primitives; define VARIABLE only if it's not already defined to avoid "re-exporting local variable" error.
2019-09-28offload: Include the port number in the machine lock file name.Ludovic Courtès
This is useful when a single machine appears several time, with different port numbers. * guix/scripts/offload.scm (machine-slot-file): Add MACHINE's port to the file name.
2019-09-27compile: Fix race condition on completion progress.Eric Bavier
This prevent a race condition where multiple compilation threads could report the same progress. * guix/build/compile.scm (compile-files)<completed>: Rename to... <progress>: ...this. Increment in same mutex region as the compilation is reported.
2019-09-26self: Mark trivial "-modules" derivations as non-substitutable.Ludovic Courtès
The resulting nar takes ~500KiB and it's quicker to build it locally than to download it. * guix/self.scm (node-source+compiled): Pass #:options to 'computed-file'.
2019-09-26guix download: Ensure destination file-name is valid in the store.Hartmut Goebel
Avoid invalid store-file-name by explicitly passing the destination name, replacing any character not allowed in the store-file-name by an underscore. Fixes <http://issues.guix.gnu.org/issue/26175> * guix/scripts/download.scm (safe-naensure-valid-store-file-nameme): New function. (download-to-store*): Use it to generate a "safe" basename of URL.
2019-09-26guix package: Add '--list-profiles'.Ludovic Courtès
* guix/scripts/package.scm (show-help, %options): Add '--list-profiles'. (process-query): Honor it. * tests/guix-package.sh: Add test.
2019-09-25pull: Dim the commit ID when displaying news.Ludovic Courtès
* guix/scripts/pull.scm (display-news-entry): Dim the commit line.
2019-09-25colors: Add 'dim'.Ludovic Courtès
* guix/colors.scm (coloring-procedure): New procedure. (%highlight-color): Remove. (highlight): Define in terms of 'coloring-procedure'. (dim): New procedure.
2019-09-23pull: Use ~/.cache/guix/checkouts instead of ~/.cache/guix/pull.Ludovic Courtès
Previously 'channel-news-for-commit' would use the former while 'guix pull' would use the latter. Consequently, the first 'guix pull -N' would clone the repository anew. * guix/scripts/pull.scm (guix-pull): Remove 'cache', and leave %REPOSITORY-CACHE-DIRECTORY to its default value.
2019-09-23gexp: Remove unused procedure.Ludovic Courtès
* guix/gexp.scm (syntax-location-string): Remove.
2019-09-23gexp: Catch and report non-self-quoting gexp inputs.Ludovic Courtès
Previously we would, for example, generate build scripts in the store; when trying to run them, we'd get a 'read' error due to the presence of #<foo> syntax in there. * guix/gexp.scm (gexp->sexp)[self-quoting?]: New procedure. [reference->sexp]: Check whether the argument in a <gexp-input> box is self-quoting. Raise a '&gexp-input-error' condition if it's not. * tests/gexp.scm ("lower-gexp, non-self-quoting input"): New test.
2019-09-23repl, marionette: 'self-quoting?' matches keywords.Ludovic Courtès
* guix/repl.scm (self-quoting?): Add 'keyword?' and 'array?'; remove 'vector?' and 'bytevector?'. * gnu/tests.scm (marionette-shepherd-service) <start>: Likewise. <modules>: Remove (rnrs bytevector).
2019-09-23show, search: Add '--load-path'.Ludovic Courtès
* guix/scripts/search.scm (show-help, %options): Add -L/--load-path. * guix/scripts/show.scm (show-help, %options): Add -L/--load-path.
2019-09-23build: ruby-build-system: Fix typo.Vagrant Cascadian
* guix/build/ruby-build-system: Fix spelling of "invocation".
2019-09-23import: stackage: Fix typo.Vagrant Cascadian
* guix/import/stackage: Fix spelling of "version".
2019-09-23inferior: Fix typo.Vagrant Cascadian
* guix/inferior: Fix spelling of "specifications".
2019-09-23lint: Fix typo.Vagrant Cascadian
* guix/lint: Fix spelling of "mentioning".
2019-09-23scripts: container: Fix typo.Vagrant Cascadian
* guix/scripts/container/exec (show-help): Fix spelling of COMMAND.
2019-09-23deploy: Add '--verbosity' and properly interpret build log.Ludovic Courtès
This is a followup to 91300526b7d9d775bd98a700ed3758420ef9eac6. * guix/scripts/deploy.scm (show-help, %options): Add '--verbosity'. (guix-deploy): Wrap 'with-store' in 'with-status-verbosity'.
2019-09-23pull: Display news titles directly upon 'pull'.Ludovic Courtès
* guix/scripts/pull.scm (display-profile-news): Return true when there's more to display. (display-news-entry-title): New procedure. (display-news-entry): Use it. (display-channel-specific-news): Return true when there's more to display. (display-channel-news-headlines): New procedure. (build-and-install): Call it. When 'display-channel-news-headlines' or 'display-profile-news' returns #t, print a hint to run "pull --news". (display-new/upgraded-packages): Return true when there's more to display.
2019-09-23pull: '-l' displays channel news.Ludovic Courtès
* guix/scripts/pull.scm (display-channel-news): Make 'previous' a parameter. (process-query)[list-generations]: Call 'display-channel-news'.
2019-09-23pull: Display channel news.Ludovic Courtès
* guix/scripts/pull.scm (display-news-entry) (display-channel-specific-news): New procedures. (display-channel-news): Call it. (display-new/upgraded-packages): Adjust hint message. * doc/guix.texi (Invoking guix pull): Mention it.
2019-09-23ui: Add 'current-message-language'.Ludovic Courtès
* guix/ui.scm (%default-message-language): New variable. (current-message-language): New procedure.
2019-09-23channels: Allow news entries to refer to a tag.Ludovic Courtès
Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/channels.scm (<channel-news-entry>)[tag]: New field. (sexp->channel-news-entry): Accept either 'commit' or 'tag' in 'entry' forms. (resolve-channel-news-entry-tag): New procedure. (channel-news-for-commit): Move 'with-repository' form one level higher. Call 'resolve-channel-news-entry-tag' on all the news entries. * guix/tests/git.scm (populate-git-repository): Add clause for 'tag'. * tests/channels.scm ("channel-news, one entry"): Create a tag and add an entry with a tag. Check that the tag is resolved and also visible in the <channel-news-entry> record. * doc/guix.texi (Channels): Mention tags in news entries.
2019-09-23channels: Add support for a news file.Ludovic Courtès
* guix/channels.scm (<channel-metadata>)[news-file]: New field. (read-channel-metadata): Set the 'news-file' field. (read-channel-metadata-from-source): Likewise. (<channel-news>, <channel-news-entry>): New record types. (sexp->channel-news-entry, read-channel-news) (channel-news-for-commit): New procedures. * guix/tests/git.scm (populate-git-repository): For 'add', allow CONTENTS to be a procedure. * tests/channels.scm ("channel-news, no news") ("channel-news, one entry"): New tests. * doc/guix.texi (Channels): Document it.
2019-09-23git: Add 'commit-difference'.Ludovic Courtès
* guix/git.scm (commit-closure, commit-difference): New procedures. * guix/tests/git.scm, tests/git.scm: New files. * Makefile.am (dist_noinst_DATA): Add guix/tests/git.scm. (SCM_TESTS): Add tests/git.scm.
2019-09-23git: 'update-cached-checkout' avoids network access when unnecessary.Ludovic Courtès
* guix/git.scm (reference-available?): New procedure. (update-cached-checkout): Avoid call to 'remote-fetch' when REPOSITORY already contains REF.
2019-09-23pull: '--news' shows the list of channels added or removed.Ludovic Courtès
* guix/scripts/pull.scm (display-channel, channel=?) (display-channel-news, display-news): New procedures. (process-query): Call 'display-news' instead of 'display-profile-news'.
2019-09-21guix package: '--show' ignores deprecated packages.Ludovic Courtès
* guix/scripts/package.scm (process-query) <'show>: Remove superseded packages. * tests/guix-package-aliases.sh: Add test.
2019-09-21guix package: Add 'guix show' alias.zimoun
* guix/scripts/show.scm: New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Add it. * tests/guix-package-aliases.sh: Add test. * doc/guix.texi (Invoking guix package): Document it and use it in a example. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-21inferior: Propagate '&store-protocol-error' error conditions.Ludovic Courtès
Until now '&store-protocol-error' conditions raised in the inferior would not be correctly propagated because SRFI-35 records lack a read syntax. Reported at <https://bugs.gnu.org/37449> by Carl Dong <contact@carldong.me>. * guix/inferior.scm (port->inferior): Import (srfi srfi-34) in the inferior. (inferior-eval-with-store): Define 'error?' and 'error-message'. Wrap call to PROC in 'guard'. Check the response of INFERIOR for a 'store-protocol-error' or a 'result' tag. * tests/inferior.scm ("inferior-eval-with-store, &store-protocol-error"): New test.
2019-09-20import/github: Check for more version prefixes.Efraim Flashner
* guix/import/github.scm (latest-released-version): Allow the version string to begin with the word 'version'.
2019-09-19ui: 'relevance' connects regexps with a logical and.zimoun
Fixes <https://bugs.gnu.org/36763>. Previously, the logical and connecting the regexps did not output the expected results (introduced in 8874faaaac665100a095ef25e39c9a389f5a397f). * guix/ui.scm (relevance) [score]: Change its arguments. [regexp->score]: New procedure. * tests/ui.scm ("package-relevance"): Add test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-18scripts: pull: Add options for generation managementKonrad Hinsen
* guix/scripts/pull.scm (%options) Add --roll-back, --switch-generation, --delete-generations (process-generation-change): New function (guix-pull): Execute generation management operations * doc/guix.texi: Document the generation management operations Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-18pull: Work around Ubuntu's 'sudo'.Ludovic Courtès
Partly fixes <https://bugs.gnu.org/36785>. Reported by Julien Lepiller <julien@lepiller.eu>. * guix/scripts/pull.scm (ensure-default-profile): Do not call 'migrate-generations' when "SUDO_USER" is set.
2019-09-18import: pypi: Refresher recognizes pythonhosted.org source URLs.Ludovic Courtès
This is a followup to a5376200541abf8245973e601be246bf65b8b6c7. Since that commit, 'pypi-package?' would return false for most Python packages, and thus "guix refresh python-xxx" would report that no updaters apply to the package. * guix/import/pypi.scm (pypi-package?)[pypi-url?]: Recognize "files.pythonhosted.org" URLs.
2019-09-18guix package: "guix package -f FILE" ensures FILE returns a package.Ludovic Courtès
* guix/scripts/package.scm (options->installable): Add clause for 'install option with a non-package object. * tests/guix-package.sh: Add test.
2019-09-16Revert "build-system/r: Use %bioconductor-version."Efraim Flashner
This reverts commit 41ca406fa54e69f61c55b11ffe5cf465192a907c. This commit breaks 'guix pull', as reported by Hao Chen.
2019-09-16build-system/r: Use %bioconductor-version.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Use %bioconductor-version instead of hard-coding the version string.
2019-09-16import/cran: Export %bioconductor-version.Ricardo Wurmus
* guix/import/cran.scm (%bioconductor-version): Export it.
2019-09-16pack: Provide a meaningful "repository name" for Docker.Ludovic Courtès
Previously, images produced by 'guix pack -f docker' would always show up as "profile" in the output of 'docker images'. With this change, 'docker images' shows a name constructed from the packages found in the image--e.g., "bash-coreutils-grep-sed". * guix/docker.scm (canonicalize-repository-name): New procedure. (generate-tag): Remove. (manifest): Add optional 'tag' parameter and honor it. (repositories): Likewise. (build-docker-image): Add #:repository parameter and pass it to 'manifest' and 'repositories'. * guix/scripts/pack.scm (docker-image)[build]: Compute 'tag' and pass it as #:repository to 'build-docker-image'.
2019-09-16pack: Add packages in the order in which they appear on the command line.Ludovic Courtès
* guix/scripts/pack.scm (guix-pack)[manifest-from-args](packages): Reverse order of packages taken from OPTS.
2019-09-14import/utils: beautify-description: Recognize more fragments.Ricardo Wurmus
* guix/import/utils.scm (beautify-description): Handle additional common initial sentence fragments in descriptions.
2019-09-13build-system/cargo: Remove unused function.Efraim Flashner
* guix/build/cargo-build-system.scm (touch): Remove it.
2019-09-13build-system/cargo: Use 'strip-store-file-name'.Efraim Flashner
This is a follow-up to f58b2f38e4dfdbb8473fb2816d44fae6ad9cbc79. * guix/build/cargo-build-system.scm (configure): Use bespoke 'strip-store-file-name' function.