summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2020-01-06Adjust module autoloads.Ludovic Courtès
In Guile < 2.9.7, autoloading a module would give you access to all its bindings. In future versions, autoloading a module gives access only to the listed bindings, as per #:select (see <https://bugs.gnu.org/38895>). This commit adjusts autoloads to the new semantics, allowing Guix to be built with Guile 2.9.7/2.9.8. * guix/build/download.scm <top level>: Remove call to 'module-autoload!'. (load-gnutls): New procedure. (tls-wrap): Call it. * guix/git.scm <top level>: Remove call to 'module-autoload!'. (load-git-submodules): New procedure. (update-submodules): Call it instead of 'resolve-interface'. * gnu/bootloader/grub.scm: Replace #:autoload with #:use-module. * gnu/packages.scm: Likewise. * gnu/packages/ssh.scm: Likewise. * gnu/packages/tex.scm: Likewise. * gnu/services/cuirass.scm: Likewise. * gnu/services/mcron.scm: Likewise. * guix/lint.scm: Augment list of bindings in #:autoload. * guix/scripts/build.scm: Likewise. * guix/scripts/gc.scm: Likewise. * guix/scripts/pack.scm: Likewise. * guix/scripts/publish.scm: Likewise. * guix/scripts/pull.scm: Likewise. * guix/utils.scm: Remove unnecessary #:autoload clauses; replace one of them with #:use-module.
2020-01-04gexp: Add 'raw-derivation-file'.Ludovic Courtès
* guix/gexp.scm (<raw-derivation-file>): New record type. (raw-derivation-file-compiler): New gexp compiler. * tests/gexp.scm ("lower-gexp, raw-derivation-file") ("raw-derivation-file"): New tests.
2020-01-04build-system/guile: Add #:implicit-inputs?.Jan Nieuwenhuizen
* guix/build-system/guile.scm (lower): Add implicit-inputs? keyword parameter. [private-keywords]: Add it. Honor it.
2020-01-03import: cran: Fix file descriptor leak.Ludovic Courtès
Fixes <https://bugs.gnu.org/38836>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/import/cran.scm (bioconductor-packages-list): Close the port returned by 'http-fetch/cached'. (fetch-description): Likewise.
2020-01-03download: Do not leak file descriptors on TLS ports.Ludovic Courtès
Fixes <https://bugs.gnu.org/20145>. * guix/build/download.scm (%tls-ports, register-tls-record-port): Remove. (tls-wrap): Remove call to 'register-tls-record-port'. Return a custom binary input/output port instead. This is a backport of what Guile 2.2's (web client) module has been doing. (close-connection): Define as an alias for 'close-port'. * guix/http-client.scm (http-fetch): Remove #:keep-alive? parameter, which was ignored and unused. Pass #:keep-alive? #f to 'http-get'. * guix/lint.scm (probe-uri): Use 'close-port' instead of 'close-connection'. * guix/scripts/substitute.scm (http-multiple-get): Likewise.
2020-01-03gexp: 'gexp->script' marks its result as non-offloadable and non-substitutable.Ludovic Courtès
* guix/gexp.scm (gexp->script): Pass #:local-build? and #:substitutable? to 'gexp->derivation'.
2020-01-03gnu: uglify-js: Move back next to sbcl-cl-uglify-js definition.Pierre Neidhardt
This fixes the bug which prevented uglify-js from being defined properly, and cascaded back to all Common Lisp packages. * gnu/packages/bioinformatics.scm: Replace javascript module with lisp-xyz. * gnu/packages/cran.scm: Use lisp-xyz module. * gnu/packages/javascript.scm (uglify-js): Move from here... * gnu/packages/lisp-xyz.scm: ... To here. * gnu/packages/web.scm: Replace javascript module with lisp-xyz. * guix/build-system/minify.scm: Find uglify-js in the lisp-xyz module.
2020-01-02ui: It's 2020 now!Ludovic Courtès
* guix/ui.scm (show-version-and-exit): Change year to 2020.
2019-12-30import: crate: Honor crate version for recursive imports.Ludovic Courtès
Fixes <https://bugs.gnu.org/38709>. Reported by Valentin Ignatev <valentignatev@gmail.com>. * guix/import/crate.scm (crate-recursive-import): Add optional 'version' parameter and honor it. * guix/scripts/import/crate.scm (guix-import-crate): Pass VERSION as 2nd argument to 'crate-recursive-import'.
2019-12-29profiles: Fix profile-derivation cross-compilation.Mathieu Othacehe
* guix/store.scm (current-target-system): New exported monadic procedure. * guix/profiles.scm (profile-derivation): Set target at bind time using the above procedure.
2019-12-29inferior: Add 'inferior-package-provenance'.Ludovic Courtès
* guix/inferior.scm (inferior-package-provenance): New procedure.
2019-12-29pack: Save provenance information when using '--manifest'.Ludovic Courtès
* guix/scripts/pack.scm (guix-pack)[manifest-from-args]: Remove 'provenance', and add 'with-provenance' procedure. Wrap 'cond' form in 'with-provenance'.
2019-12-29guix package: Save provenance information when using '--manifest'.Ludovic Courtès
Fixes <https://bugs.gnu.org/38673>. Reported by zimoun <zimon.toutoune@gmail.com>. * guix/describe.scm (manifest-entry-with-provenance): New procedure. * guix/scripts/package.scm (process-actions): Use it when FILES is non-empty.
2019-12-29profiles: Add 'map-manifest-entries'.Ludovic Courtès
* guix/scripts/pack.scm (map-manifest-entries): Move to... * guix/profiles.scm (map-manifest-entries): ... here.
2019-12-27guix: emacs-utils: Add emacs-batch-disable-compilation.Leo Prikler
* guix/build/emacs-utils.scm (emacs-batch-disable-compilation): New procedure. Signed-off-by: Brett Gilio <brettg@gnu.org>
2019-12-27git: 'commit-difference' takes a list of excluded commits.Ludovic Courtès
* guix/git.scm (commit-closure): Add 'visited' optional parameter. (commit-difference): Add 'excluded' optional parameter; pass second argument to 'commit-closure'. * tests/git.scm ("commit-difference, excluded commits"): New test.
2019-12-26download: Enable TLS 1.3.Marius Bakke
This reverts commit e4ee84202633636b4c8cef4a332f0c74912a3b23. * guix/build/download.scm (tls-wrap): Dot not disable TLS 1.3.
2019-12-26gnu: Remove squashfs-tools-next.Ricardo Wurmus
* gnu/packages/compression.scm (squashfs-tools-next): Remove variable. * guix/scripts/pack.scm (squashfs-image, guix-pack): Use squashfs-tools. * tests/pack.scm: Use squashfs-tools.
2019-12-26build-system: linux-module: Add substitutable keyword.Efraim Flashner
* guix/build-system/linux-module.scm (linux-module-build) Add substitutable keyword.
2019-12-26guix: swh: Fix again example URI in comment for <origin>.Björn Höfling
This is a follow up to 6afea7489b76c8db58d4f389fdbedc7c2b8992bd * guix/swh.scm(<origin>): Write 'https' instead of 'ttps' for the URL.
2019-12-23build-system: qt: Adjust indentation.Hartmut Goebel
* guix/build-system/qt.scm (qt-build, qt-cross-build): Adjust indentation.
2019-12-23build-system: qt: Actually use qt-build-system, not cmake-build-system.Hartmut Goebel
When the qt-build-system was created, based on the cmake-build-system, some references to cmake have been missed to be changed. * guix/build-system/qt.scm (qt-build, qt-cross-build)[modules]: Use qt-build-system, not cmake-build-system. [builder]: Call qt-build, not cmake-build. Coauthored-by: Ludovic Courtès <ludo@gnu.org>
2019-12-22gexp: Add system and target support to gexp->file.Mathieu Othacehe
* guix/gexp.scm (gexp->file): Add system and target arguments and pass them to gexp->derivation and load-path-expression calls, (scheme-file-compiler): adapt accordingly to pass system and target arguments.
2019-12-21guix system: Honor the build options in 'delete-generations'.Ludovic Courtès
Until now, 'guix system delete-generations' would ignore OPTS; for example, it would not enable #:print-extended-build-trace? & co., leading to suboptimal output. * guix/scripts/system.scm (process-command)[with-store*]: New macro. Use it for 'delete-generations', 'switch-generation', and 'roll-back'.
2019-12-20gnupg: 'gnupg-verify*' returns a status symbol.Ludovic Courtès
This allows callers to distinguish between signature verification failure and missing key. * guix/gnupg.scm (gnupg-receive-keys): Return true on success. (gnupg-verify*): Check return value of 'gnupg-receive-keys'. Return two values, the first one being a symbol. * guix/upstream.scm (download-tarball): Get the two return values of 'gnupg-verify*', and match on the first one. * gnu/packages/bash.scm (download-patches): Check the first return value of 'gnupg-verify*'.
2019-12-19gnupg: Compile regexps only once.Ludovic Courtès
This halves the run time on a large number of subsequent 'gnupg-verify' calls. * guix/gnupg.scm (sigid-rx, goodsig-rx, validsig-rx, expkeysig-rx) (errsig-rx): New variables, lifted from... (gnupg-verify)[status-line->sexp]: ... here.
2019-12-19guix: Fix %hurd-systems list.Efraim Flashner
* guix/packages.scm (%hurd-systems): Replace i585-gnu with i586-gnu.
2019-12-18download: Remove ramses.wh2.tu-dresden.de kernel mirror.Mark H Weaver
* guix/download.scm (%mirrors): Remove ramses.wh2.tu-dresden.de, which seems to no longer work.
2019-12-18gnupg: 'gnupg-status-missing-key?' returns a fingerprint when possible.Ludovic Courtès
Until then, 'gnupg-status-missing-key?' would return a key id. Its user, 'gnupg-verify*', would then fetch a key with that ID from key servers, thus possibly the wrong key (due to key ID collisions). If it did fetch the wrong key, the effect would be a signature verification failure down the path--e.g., in "guix refresh -u". * guix/gnupg.scm (gnupg-verify)[maybe-fingerprint]: New procedure. [status-line->sexp](errsig-rx): Add parenthetical expression at the end. Fetch it and add it to the 'signature-error' sexp. (gnupg-status-missing-key?): Match the whole 'signature-error' sexp and return preferably the fingerprint rather than KEY-ID. (gnupg-receive-keys): Rename 'key-id' parameter to 'fingerprint/key-id'.
2019-12-18gnupg: 'gnupg-status-good-signature?' no longer returns a key ID.Ludovic Courtès
Returning a key ID was inconsequential because the only user of 'gnupg-status-good-signature?', (guix upstream) (via 'gnupg-verify*'), would not check the return value as long as it's true. * guix/gnupg.scm (gnupg-status-good-signature?): Return a fingerprint/user pair instead of key-id/user. (gnupg-verify*): Mention it in docstring.
2019-12-18guix: swh: Fix example URI in comment for <origin>.Björn Höfling
This is a one-character follow-up to 356a79becc4061d158c68718ad169abac1ab672f Reported by Jonathan Brielmaier <jonathan.brielmaier@web.de>. * guix/swh.scm(<origin>): Remove a slash from example URI witin a comment.
2019-12-18gexp: Allow character literals in GEXP->SEXP.Marius Bakke
Fixes <https://bugs.gnu.org/38628>. * tests/gexp.scm ("lower-gexp, character literal"): New test. * guix/gexp.scm (gexp->sexp)[self-quoting?]: Add CHAR? to the tested types. * guix/repl.scm (self-quoting?): Likewise. * gnu/tests.scm (marionette-shepherd-service)[self-quoting?]: Likewise.
2019-12-17swh: Fix API call for getting origin.Björn Höfling
When using the archival linter, git origins already in the archive where not recognized due to an API change and where repeatedly asked for archival. This is fixed here. * guix/swh.scm (lookup-origin): Fix API URI for getting origin. (<origin>): Fix comment with API URI example.
2019-12-15guix: Upgrade to Bioconductor 3.10.Ricardo Wurmus
* guix/build-system/r.scm (bioconductor-uri): Switch to version 3.10. * guix/import/cran.scm (%bioconductor-version): Same.
2019-12-15base64: Do not use (rnrs).Ludovic Courtès
* guix/base64.scm: Remove #:use-module clauses for (rnrs) and (srfi srfi-13). Add other #:use-module clauses. (fxbit-field): Define as an alias for 'bit-field. (fx=?, fx+, mod): New aliases. (assert): New macro.
2019-12-15challenge: Fix type mismatch when comparing to a local hash.Ludovic Courtès
* guix/scripts/challenge.scm (call-with-mismatches)[narinfo1]: When LOCAL-HASH is true, call 'narinfo-hash->sha256' and use 'bytevector=?' instead of 'string=?'.
2019-12-14import: cran: Recognize LGPL 2.1+.Ricardo Wurmus
* guix/import/cran.scm (string->license): Add case for lgpl2.1+.
2019-12-13import: utils: Update docstring of 'recursive-import'.Ludovic Courtès
This is a followup to 70a8e13277d4a44b89dd9ee2290b98105f0235f1. * guix/import/utils.scm (recursive-import): Update docstring.
2019-12-13emacs-build-system: Ensure the core libraries appear last in the load path.Maxim Cournoyer
Fixes bug #38568 (see: https://bugs.gnu.org/38568). * guix/build/emacs-build-system.scm (add-source-to-load-path): Ensure the core libraries appear last in the load path. Reported-by: Jelle Licht <jlicht@fsfe.org>
2019-12-12challenge: Support "--diff=diffoscope".Ludovic Courtès
* guix/scripts/challenge.scm (call-with-nar): New procedure. (narinfo-contents): Express in terms of 'call-with-nar'. (call-with-mismatches, report-differing-files/external): New procedures. (%diffoscope-command): New variable. (%options): Support "diffoscope" and a string starting with "/". * tests/challenge.scm (call-mismatch-test): New procedure. ("differing-files"): Rewrite in terms of 'call-mismatch-test'. ("call-with-mismatches"): New test. * doc/guix.texi (Invoking guix challenge): Document it.
2019-12-12challenge: Add "--diff".Ludovic Courtès
* guix/scripts/challenge.scm (dump-port*): New variable. (archive-contents, store-item-contents, narinfo-contents) (differing-files, report-differing-files): New procedures. (summarize-report): Add #:report-differences and call it. (show-help, %options): Add "--diff". (%default-options): Add 'difference-report' key. (report-differing-files): Parameterize CURRENT-TERMINAL-COLUMNS and pass #:report-differences to 'summarize-report'. * guix/tests/http.scm (%local-url): Add optional argument. (call-with-http-server): Fix docstring typo. * tests/challenge.scm (query-path-size, make-narinfo): New procedures. ("differing-files"): New test. * doc/guix.texi (Invoking guix challenge): Document "--diff".
2019-12-12progress: Add 'progress-report-port'.Ludovic Courtès
* guix/scripts/substitute.scm (progress-report-port): Move to... * guix/progress.scm (progress-report-port): ... here. New procedure.
2019-12-12serialization: Remove unused procedure.Ludovic Courtès
* guix/serialization.scm (write-contents): Remove.
2019-12-12challenge: Report the best narinfo URI.Ludovic Courtès
* guix/scripts/substitute.scm (select-uri): Rename to... (narinfo-best-uri): ... this, and make public. Update callers. * guix/scripts/challenge.scm (summarize-report): Use 'narinfo-best-uri' instead of (first (narinfo-uris ...)).
2019-12-12guix archive: Add '--list'.Ludovic Courtès
* guix/scripts/archive.scm (show-help, %options): Add '--list'. (list-contents): New procedure. (guix-archive): Honor the '--list' option. * tests/guix-archive.sh: Test it. * doc/guix.texi (Invoking guix archive): Document it.
2019-12-12serialization: Add 'fold-archive'.Ludovic Courtès
* guix/serialization.scm (read-contents): Remove. (read-file-type, fold-archive): New procedures. (restore-file): Rewrite in terms of 'fold-archive'. * tests/nar.scm ("write-file-tree + fold-archive") ("write-file-tree + fold-archive, flat file"): New tests.
2019-12-11import: crate: Better handle license expressions.Brice Waegeneire
* guix/import/crate.scm (%dual-license-rx): Removed function. (crate->guix-package): Handle most of the multi-licensing cases. * tests/crate.scm (licenses): Add tests for some licenses. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-12-11import: utils: 'recursive-import' returns a list rather than a stream.Ludovic Courtès
* guix/import/utils.scm (recursive-import): Remove 'list->stream' call. * guix/scripts/import/cran.scm (guix-import-cran): Remove 'stream->list' call. * guix/scripts/import/crate.scm (guix-import-crate): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * guix/scripts/import/gem.scm (guix-import-gem): Likewise. * guix/scripts/import/hackage.scm (guix-import-hackage): Likewise. * guix/scripts/import/opam.scm (guix-import-opam): Likewise. * guix/scripts/import/pypi.scm (guix-import-pypi): Likewise. * guix/scripts/import/stackage.scm (guix-import-stackage): Likewise. * tests/gem.scm ("gem-recursive-import"): Likewise. * tests/import-utils.scm ("recursive-import"): Likewise. Co-authored-by: Brian Leung <bkleung89@gmail.com>
2019-12-11import: utils: 'recursive-import' returns packages in topological order.Ludovic Courtès
* guix/import/utils.scm (topological-sort): New procedure. (recursive-import): Rewrite to use it. * tests/import-utils.scm ("recursive-import"): New test. * guix/import/cran.scm (cran->guix-package): Always return two values. * guix/scripts/import/cran.scm (guix-import-cran): Remove 'reverse' call on 'cran-recursive-import' result. * guix/scripts/import/crate.scm (guix-import-crate): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * guix/scripts/import/gem.scm (guix-import-gem): Likewise. * guix/scripts/import/hackage.scm (guix-import-hackage): Likewise. * guix/scripts/import/opam.scm (guix-import-opam): Likewise. * guix/scripts/import/pypi.scm (guix-import-pypi): Likewise. * guix/scripts/import/stackage.scm (guix-import-stackage): Likewise. * tests/gem.scm ("gem-recursive-import"): Change the order of package expressions accordingly.
2019-12-10profiles: Use 'getpwuid' when $USER and $LOGNAME are undefined.Ludovic Courtès
Reported by YOANN P <yoann_mac_donald@hotmail.com>. * guix/profiles.scm (%profile-directory): Fall back to 'getpwuid' when "USER" and "LOGNAME" are undefined.