summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* profiles: 'check-for-collisions' filters out more non-collisions upfront.Ludovic Courtès2021-06-05
| | | | | | | | | | | | | When running: GUIX_PROFILING="gc object-cache" ./pre-inst-env \ guix install gnome -p /tmp/sdsdfsd --no-grafts -n this reduces the number of object cache lookup from 115K to 96K, with a slight CPU and memory usage reduction as well. * guix/profiles.scm (check-for-collisions)[candidates]: Exclude entries if their 'item' fields are eq?.
* guix: Update to Bioconductor 3.13.Ricardo Wurmus2021-06-05
| | | | | * guix/build-system/r.scm (bioconductor-uri): Update version. * guix/import/cran.scm (%bioconductor-version): Update.
* licenses: Add BSD-1-Clause license.Xinglu Chen2021-06-03
| | | | * licenses.scm (bsd-1): New variable.
* import: Add CHICKEN egg importer.Xinglu Chen2021-06-03
| | | | | | | | | | | | * guix/import/egg.scm: New file. * guix/scripts/import/egg.scm: New file. * tests/egg.scm: New file. * Makefile.am (MODULES, SCM_TESTS): Register them. * po/guix/POTFILES.in: Likewise. * guix/scripts/import.scm (importers): Add egg importer. * doc/guix.texi (Invoking guix import, Invoking guix refresh): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu-maintenance: 'generic-html' computes the right source URL.Ludovic Courtès2021-06-03
| | | | | | | | | | | | | | | | | Fixes a regression introduced in 84f8bae0f85de081bbc55aa54ad6a50981a06a43, whereby the URL computed for the new ffmpeg (for instance) would be: https://ffmpeg.org/ffmpeg-4.4.tar.xz instead of: https://ffmpeg.org/releases/ffmpeg-4.4.tar.xz Reported by Maxim Cournoyer. * guix/gnu-maintenance.scm (latest-html-release)[url->release]: Adjust computation in the case of a URI-reference with a relative path.
* ui, lint: Simplify exception handling in Guile 3 style.Ludovic Courtès2021-06-01
| | | | | | | * guix/lint.scm (check-derivation)[try]: Remove "catch #t" wrapping. * guix/ui.scm (call-with-error-handling): Remove "catch 'system-error" and move 'system-error handling to the &exception-with-kind-and-args clause.
* maint: Require Guile 3.0.Ludovic Courtès2021-06-01
| | | | | | | | | | | | * configure.ac: Require Guile 3.0. * doc/guix.texi (Requirements): Adjust accordingly. * gnu/packages/package-management.scm (guile2.2-guix): Remove. * guix/lint.scm (exception-with-kind-and-args?): Remove 'cond-expand'. * guix/scripts/deploy.scm (deploy-machine*): Likewise. * guix/store.scm (call-with-store): Likewise. * guix/swh.scm (http-get*, http-post*): Likewise. * guix/ui.scm (without-compiler-optimizations, guard*) (call-with-error-handling): Likewise.
* publish: Add keep-alive support when sending nar.Mathieu Othacehe2021-06-01
| | | | | | | | | | | | | | | | The default Guile web server implementation supports the keep alive mechanism. However, in our custom http-write implementation, the connection is unconditionally close after sending nar files. To prevent that, when supported, add the client port to the server poll set so that further requests can be handled without closing the connection. * guix/scripts/publish.scm (nar-response-port): Rename it into ... (nar-compressed-port): ... this procedure. Operate directly on a given PORT. (http-write): Add keep-alive support when sending nar files. * guix/scripts/substitute.scm (process-substitution): Pass the download size to the progress-report-port procedure so that it doesn't block reading from the input port when keep-alive is supported.
* publish: Preserve the request connection header.Mathieu Othacehe2021-06-01
| | | | | | | | | | The Guile web server is reading the response connection header to decide whether to close the connection. However, as the request connection header is not forwarded to the response, this mechanism cannot work. * guix/scripts/publish.scm (add-extra-headers): New procedure. (make-request-handler): Use it to forward the request connection header to the response.
* progress: Add a download-size argument to progress-report-port.Mathieu Othacehe2021-06-01
| | | | * guix/progress.scm (progress-report-port): Add a download-size argument.
* gnu-maintenance: 'generic-html' correctly handles relative release URLs.Ludovic Courtès2021-05-28
| | | | | * guix/gnu-maintenance.scm (latest-html-release)[url->release]: Fix source URL construction in cases where URL is a possibly relative path.
* gnu-maintenance: 'release-file?' accepts 'v' prefix as in "PKG-v1.2.tgz".Ludovic Courtès2021-05-28
| | | | | | * guix/gnu-maintenance.scm (%tarball-rx, %package-name-rx): Accept 'v' and 'V' prefixes. Accept ".tgz" extension. * tests/gnu-maintenance.scm ("release-file?"): Add test.
* guix build: Emit "nothing to do" warning only when needed.Ludovic Courtès2021-05-28
| | | | | | | This is a followup to 681af1fb78a735b51dc811aed770b2948212c3fc. * guix/scripts/build.scm (guix-build): Emit "nothing to do" warning only when both DRV and ITEMS are null.
* guix package: Do not warn about "missing arguments" when there's nothing to do.Ludovic Courtès2021-05-28
| | | | | | | | | | In some cases, running "guix upgrade" can trigger this warning, and "missing arguments" is misleading then. Reported by flatwhatson on #guix. * guix/scripts/package.scm (process-actions): Change warning to "nothing to do".
* import: opam: Generate license for package.Xinglu Chen2021-05-28
| | | | | | | | | * guix/import/opam.scm (opam->guix-package): Generate license for the ‘license’ field. * tests/opam.scm (test-opam-file): Update accordingly. ("opam->guix-package"): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* git-download: Support submodules in 'git-predicate'.Andrew Whatson2021-05-28
| | | | | | | | * guix/git-download.scm (git-file-list): Add prefix and recursive? arguments. Recurse into submodules when requested. (git-predicate): Add recursive? argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* git-download: 'git-predicate' now ignores deleted files.Ludovic Courtès2021-05-28
| | | | | | | | | | | When git-predicate is used on an active worktree, some files in the index might not exist on the filesystem. Instead of failing with "No such file or directory", these should be ignored. * guix/git-download.scm (git-predicate): Wrap 'lstat' call in 'false-if-exception'. Return RESULT when STAT is #f. Co-authored-by: Andrew Whatson <whatson@gmail.com>
* scripts: Commands warn when passed zero arguments.Ludovic Courtès2021-05-28
| | | | | | | | | | | | | | | | This is a followup to 3f8326237df780404c172ef4127195cc20becd66. * guix/scripts/archive.scm (export-from-store): Warn then FILES is empty. * guix/scripts/build.scm (guix-build): Likewise. * guix/scripts/copy.scm (warn-if-empty): New procedure. (send-to-remote-host, retrieve-from-remote-host): Call it. * guix/scripts/edit.scm (guix-edit): Warn when SPECS is empty. * guix/scripts/environment.scm (guix-environment): Warn when MANIFEST has zero entries. * guix/scripts/graph.scm (guix-graph): Warn then ITEMS is empty. * guix/scripts/package.scm (process-actions): Warn when FILES and TRANS are both empty.
* deploy: Error out when the FILE argument is missing.Ludovic Courtès2021-05-28
| | | | * guix/scripts/deploy.scm (guix-deploy): Error out when FILE is false.
* guix: ci: Add spec support to latest-evaluations.Mathieu Othacehe2021-05-26
| | | | * guix/ci.scm (latest-evaluations): Add spec parameter support.
* guix: ci: Fix evaluation complete? field.Mathieu Othacehe2021-05-26
| | | | * guix/ci.scm (<evaluation>): Fix evaluation complete? field.
* import: hackage: Prefix licenses with 'license:'.Xinglu Chen2021-05-22
| | | | | | | | | * guix/import/hackage.scm (string->license): Prefix the value of the license field with ‘license:’. * tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* lint: archival: Lookup content in Disarchive database.Ludovic Courtès2021-05-22
| | | | | | | | | | | * guix/lint.scm (lookup-disarchive-spec): New procedure. (check-archival): When 'lookup-content' returns #f, call 'lookup-disarchive-spec'. Call 'lookup-directory' on the result of 'lookup-directory'. * guix/download.scm (%disarchive-mirrors): Make public. * tests/lint.scm ("archival: missing content"): Set '%disarchive-mirrors'. ("archival: content unavailable but disarchive available"): New test.
* scripts: discover: Report Avahi errors.Mathieu Othacehe2021-05-22
| | | | | | Fixes: <https://issues.guix.gnu.org/48561>. * guix/scripts/discover (guix-discover): Report Avahi errors.
* guix: Build texlive-configuration only when texlive-base is present.Ricardo Wurmus2021-05-20
| | | | | | | Fixes <https://bugs.gnu.org/48519>. * guix/profiles.scm (texlive-configuration): Build only if texlive-base is present in the profile's manifest.
* scripts: challenge: Fix regression.Mathieu Othacehe2021-05-20
| | | | | | | | | | This is a follow-up of 3cde5231aa78aa5e31b27888cd78ee0b250a7a1c that fixes the challenge test. When dealing with uncompressed NAR, the file size is false. Propagate it to progress-reporter/file as it used to be the case. * guix/scripts/challenge.scm (call-with-nar): Accept false size.
* ui: 'load*' compiles with '-O1'.Ludovic Courtès2021-05-17
| | | | | | | | | | | With this change, the wall-clock time of: guix system build --no-grafts -d gnu/system/install.scm goes from 5.0s to 2.3s on Guile 3.0.5. * guix/ui.scm (without-compiler-optimizations): New macro. (load*): Use it.
* ui: Remove Guile 2.2.3 workaround.Ludovic Courtès2021-05-17
| | | | | | | This became dead code with commit 4f621a2b003e85d480999e4d0630e9dc3de85bc3. * guix/ui.scm (load*): Remove Guile 2.2.3 workaround.
* publish: Add '--negative-ttl'.Ludovic Courtès2021-05-16
| | | | | | | | | * guix/scripts/publish.scm (show-help, %options): Add '--negative-ttl'. (render-narinfo, render-narinfo/cached, make-request-handler): Add #:negative-ttl and honor it. (run-publish-server): Add #:narinfo-negative-ttl and honor it. (guix-publish): Honor '--negative-ttl'. * tests/publish.scm ("negative TTL", "no negative TTL"): New tests.
* substitutes: Reduce negative TTLs.Ludovic Courtès2021-05-16
| | | | | * guix/substitutes.scm (%narinfo-negative-ttl): Change to 15mn. (%narinfo-transient-error-ttl): Halve.
* inferior: Support querying package replacements.Christopher Baines2021-05-15
| | | | | | | | I'm looking at this to help with adding support for looking up package replacements to store in the Guix Data Service. * guix/inferior.scm (inferior-package-replacement): New procedure. * tests/inferior.scm ("inferior-package-replacement"): New test.
* swh: 'lookup-origin-revision' ignores partial visits.Ludovic Courtès2021-05-14
| | | | | * guix/swh.scm (lookup-origin-revision): Filter out visits with a status different from 'full.
* self: Add dependency on Disarchive.Ludovic Courtès2021-05-14
| | | | | | | | | This enables the Disarchive fallback implemented in commit fbc2a52a32ddc664db8ebab420c2e17b1432c744 (on foreign distros). * guix/self.scm (specification->package): Add "disarchive". (compiled-guix): Add DISARCHIVE to DEPENDENCIES in the #:dependencies argument to 'guix-command'.
* import: go: Fix goproxy option argument's format.Zheng Junjie2021-05-14
| | | | | | | | | | | | Commit a8b927a562 Added new procedure go-module-available-versions use 'string-append' to GOPROXY, but 'string->symbol' let GOPROXY is a symbol (it must be a string), which would lead to wrong-type-arg errors in the 'string-append' procedure. * guix/scripts/import/go.scm (%options)[goproxy]: Remove call to 'string->symbol'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* challenge: Be defensive in the size passed to the progress reporter.Ludovic Courtès2021-05-13
| | | | | | | | | Possibly fixes <https://bugs.gnu.org/48045>. Reported by Bone Baboon <bone.baboon@disroot.org>. * guix/scripts/challenge.scm (call-with-nar): Rename second value returned by 'http-fetch' to match reality. Change second argument to 'progress-reporter/file'.
* self: Build with 'guile-3.0-latest'.Ludovic Courtès2021-05-13
| | | | | * guix/self.scm (specification->package): Use 'guile-3.0-latest' instead of 'guile-3.0/libgc-7'.
* channels: Add a #:system argument to channel-instances->manifest.Christopher Baines2021-05-12
| | | | | | | | | | | | | | | | | | | | | | This allows computing a manifest for a specific system. Previously this was possible, but only through changing %current-system, which caused the derivation to be computed using that system as well (so computing a derivation for aarch64-linux on x86_64-linux would require running aarch64-linux code). This new argument adds the possibility of computing derivations for non-native systems, without having to run non-native code. I'm looking at this as it will enable the Guix Data Service to compute channel instance derivations without relying on QEMU emulation for non-native systems (it should be faster as well). * guix/channels.scm (build-from-source): Add #:system argument and pass to build. (build-channel-instance): Add system argument and pass to build-from-source. (channel-instance-derivations): Add #:system argument and pass to build-channel-instance, also rename system to current-system-value. (channel-instances->manifest): Add #:system argument and pass to channel-instance-derivations.
* Merge branch 'version-1.3.0'Maxim Cournoyer2021-05-11
|\
| * describe: Gracefully handle profiles that lack provenance info.Ludovic Courtès2021-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/48313>. Previously, 'current-channels' would return the empty list when 'current-profile' is true but the profile lacks provenance info. * guix/describe.scm (current-channels)[build-time-metadata]: New procedure. Call it when 'manifest-entry-channel' returns #f for all of ENTRIES. * guix/scripts/describe.scm (guix-describe): When PROFILE is true, pass third argument to 'display-profile-info'.
| * diagnostics, ui: Adjust to 'read-error' and 'syntax-error' in Guile 3.0.6.Ludovic Courtès2021-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | * guix/diagnostics.scm (source-properties->location): Add clause for vectors. * guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6. * tests/guix-package.sh: Relax regexp for the "unbound variable" diagnostic check. * tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6. * tests/records.scm (location-alist): New procedure. ("define-record-type* & wrong field specifier") ("define-record-type* & wrong field specifier, identifier") ("define-record-type* & duplicate initializers"): Use it.
| * swh: Adjust for compatibility with Guile 2.2's (web client).Ludovic Courtès2021-05-05
| | | | | | | | | | | | | | Guile <= 2.2.7 did not support #:verify-certificate? so work around it. * guix/swh.scm (http-get*, http-post*) [! guile-3]: Add variant for Guile 2.2.
| * http-client: Remove exception mishandling in 'http-multiple-get'.Ludovic Courtès2021-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/47867>. Reported by Florian Pelz <pelzflorian@pelzflorian.de>. The non-tail recursive call to 'connect' could cause requests to be processed twice, with 'p' possibly closed the second time. Regression introduced in 205833b72c5517915a47a50dbe28e7024dc74e57 and carried over in 45fce38fb0b6c6796906149ade145b8d3594c1c6. * guix/http-client.scm (http-multiple-get): Remove call to 'close-port' and recursive call to 'connect' when the 'write-request' block returns #f.
| * http-client, substitute: Gracefully handle GnuTLS EAGAIN/EINTR.Ludovic Courtès2021-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/47867>. Reported by Florian Pelz <pelzflorian@pelzflorian.de>. In GnuTLS up to 3.7.1 included, GNUTLS_E_AGAIN and GNUTLS_E_INTERRUPTED are not handled by 'write_to_session_record_port' and could be thrown at the caller. This patch works around that by dropping connections altogether and restarting when this happens. * guix/http-client.scm (false-if-networking-error): Swallow ERROR/AGAIN and ERROR/INTERRUPTED. * guix/scripts/substitute.scm (call-with-cached-connection): Likewise.
| * cve: Gracefully handle bogus CVE entries.Ludovic Courtès2021-04-25
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/47941>. Reported by Jack Hill <jackhill@jackhill.us>. * guix/cve.scm (reference-data->cve-references): Gracefully handle lack of "reference_data". (cpe-match->cve-configuration): Gracefully handle lack of "cpe23Uri".
| * import: Remove Nix importer.Ludovic Courtès2021-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This importer has suffered from bitrot and no longer works with current Nix and Nixpkgs. See <https://bugs.gnu.org/32339> and <https://bugs.gnu.org/36255>. * guix/import/snix.scm, guix/scripts/import/nix.scm, tests/snix.scm: Remove. * Makefile.am (MODULES, SCM_TESTS): Remove them. * guix/scripts/import.scm (importers): Remove "nix". * build-aux/test-env.in: Remove NIXPKGS variable. * configure.ac: Remove '--with-nixpkgs' option. * doc/guix.texi (Invoking guix import): Remove bit about "guix import nix". * etc/completion/fish/guix.fish: Likewise.
| * import: go: Autoload (htmlprag).Ludovic Courtès2021-04-23
| | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/47924>. Reported by Carl Dong <contact@carldong.me>. * guix/import/go.scm: Autoload (htmlprag).
| * import: go: Do not set '%strict-tokenizer?' from the top level.Ludovic Courtès2021-04-23
| | | | | | | | | | | | | | | | | | | | This avoids interference with other users of (htmlprag) and makes the intent clearer. * guix/import/go.scm <top level>: Remove call to '%strict-tokenizer?'. (go-package-licenses, go-package-description) (go-package-synopsis, fetch-module-meta-data): Pass #:strict? #t to 'html->sxml'.
* | ssh: Fix type that broke offloading.Ludovic Courtès2021-05-11
| | | | | | | | | | | | | | Reported by Simon Streit <simon@netpanic.org>. Regression introduced in 3270308eebe82075d2f02517c5a2b1599928495c. * guix/ssh.scm (remote-daemon-channel)[redirect]: Unquote SOCKET-NAME.
* | guix: scripts system: Increase the size for generating Docker container images.Roel Janssen2021-05-10
| | | | | | | | * guix/scripts/system.scm: Override the default of 256.
* | ssh: Honor GUIX_DAEMON_SOCKET on the target machine.Ludovic Courtès2021-05-08
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/48240>. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/ssh.scm (remote-daemon-channel)[redirect]: Define 'connect-to-daemon'. Use the same-named procedure from (guix store) when available, and honor GUIX_DAEMON_SOCKET.