summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2020-07-28store: deduplication: Handle fs without d_type support....scandir* uses readdir, which means that the file type property can be 'unknown if the underlying file-system does not support d_type. Make sure to fallback to lstat in that case. Fixes: https://issues.guix.gnu.org/issue/42579. * guix/store/deduplication.scm (deduplicate): Handle the case where properties is 'unknown because the underlying file-system does not support d_type. Mathieu Othacehe
2020-07-27upstream: Handle the case where the file name has no extension....Fixes <https://bugs.gnu.org/42504>. Reported by Alexandru-Sergiu Marton <brown121407@posteo.ro>. * guix/upstream.scm (package-update/url-fetch): Handle the case where the file name has no extension. Danny Milosavljevic
2020-07-27machine: ssh: Check for potential system downgrades....This is a followup to 8e31736b0a60919cc1bfc5dc22c395b09243484a. * guix/scripts/system/reconfigure.scm (check-forward-update): Add #:current-channels. Use it instead of OLD. * gnu/services.scm (sexp->system-provenance): New procedure. (system-provenance): Use it. * gnu/machine/ssh.scm (<machine-ssh-configuration>)[allow-downgrades?]: New field. (machine-check-forward-update): New procedure. (check-deployment-sanity)[assertions]: Call it. * doc/guix.texi (Invoking guix deploy): Document 'allow-downgrades?' field. Ludovic Courtès
2020-07-27processes: Allow 'less' to properly estimate line length....Until now, the first few lines in the output of 'guix processes' could disappear in 'less'. * guix/ui.scm (call-with-paginated-output-port): Add #:less-options parameter and honor it. (with-paginated-output-port): Allow callers to pass #:less-options. * guix/scripts/processes.scm (guix-processes): Pass #:less-options to 'with-paginated-output-port'. Ludovic Courtès
2020-07-25guix system: Report file system errors using 'report-error'....* guix/scripts/system.scm (check-file-system-availability)[file-system-location*]: Return a <location> record instead of a string. [error]: Use 'report-error' instead of 'format'. Change callers accordingly. Ludovic Courtès
2020-07-25Use 'formatted-message' instead of '&message' where appropriate....* gnu.scm (%try-use-modules): Use 'formatted-message' instead of '&message'. * gnu/machine/digital-ocean.scm (maybe-raise-unsupported-configuration-error): Likewise. * gnu/machine/ssh.scm (machine-check-file-system-availability): Likewise. (machine-check-building-for-appropriate-system): Likewise. (deploy-managed-host): Likewise. (maybe-raise-unsupported-configuration-error): Likewise. * gnu/packages.scm (search-patch): Likewise. * gnu/services.scm (%service-with-default-value): Likewise. (files->etc-directory): Likewise. (fold-services): Likewise. * gnu/system.scm (locale-name->definition*): Likewise. * gnu/system/mapped-devices.scm (check-device-initrd-modules): Likewise. (check-luks-device): Likewise. * guix/channels.scm (latest-channel-instance): Likewise. * guix/cve.scm (json->cve-items): Likewise. * guix/git-authenticate.scm (commit-signing-key): Likewise. (commit-authorized-keys): Likewise. (authenticate-commit): Likewise. (verify-introductory-commit): Likewise. * guix/remote.scm (remote-pipe-for-gexp): Likewise. * guix/scripts/graph.scm (assert-package): Likewise. * guix/scripts/offload.scm (private-key-from-file*): Likewise. * guix/ssh.scm (authenticate-server*): Likewise. (open-ssh-session): Likewise. (remote-inferior): Likewise. * guix/ui.scm (matching-generations): Likewise. * guix/upstream.scm (package-update): Likewise. * tests/channels.scm ("latest-channel-instances, missing introduction for 'guix'"): Catch 'formatted-message?'. ("authenticate-channel, wrong first commit signer"): Likewise. * tests/lint.scm ("patches: not found"): Adjust message string. * tests/packages.scm ("patch not found yields a run-time error"): Catch 'formatted-message?'. * guix/lint.scm (check-patch-file-names): Handle 'formatted-message?'. (check-derivation): Ditto. Ludovic Courtès
2020-07-25diagnostics: Add '&formatted-message'....This allows 'gettext' to be called on the format string at the site where the exception is caught (rather than the site where it's thrown). It also allows for argument highlighting. * guix/diagnostics.scm (&formatted-message): New condition type. (check-format-string): New procedure. (formatted-message): New macro. * guix/ui.scm (report-load-error): Add clause for 'formatted-message?'. (warn-about-load-error): Likewise. (call-with-error-handling): Likewise. (read/eval): Likewise. Ludovic Courtès
2020-07-25diagnostics: Add a procedural variant of diagnostic procedures....Callers can pass 'report-error', 'warning', etc. to 'apply'. * guix/diagnostics.scm (trivial-format-string?): New procedure, moved from... (highlight-argument): ... here. (define-diagnostic): Add 'identifier?' clause. (emit-diagnostic): New procedure. Ludovic Courtès
2020-07-25ui: Factorize '&message' handling....* guix/ui.scm (call-with-error-handling): Factorize the three 'message-condition?' clauses into one. Ludovic Courtès
2020-07-25utils: Move '&fix-hint' to (guix diagnostics)....* guix/utils.scm (&fix-hint): Move to... * guix/diagnostics.scm (&fix-hint): ... here. * gnu.scm: Adjust imports accordingly. * gnu/system/mapped-devices.scm: Likewise. * guix/channels.scm: Likewise. * guix/profiles.scm: Likewise. * guix/scripts/system/reconfigure.scm: Likewise. * guix/ssh.scm: Likewise. Ludovic Courtès
2020-07-25utils: Remove compatibility re-export of 'memoize'....The 'memoize' binding was re-exported in 2016, commit 19e1d5f7f90194f1ac7e783b28a688ce1441786d, as a backwards-compatibility measure that makes little sense now. * guix/utils.scm: Don't re-export 'memoize'. * guix/import/pypi.scm: Adjust imports. * tests/pypi.scm: Remove duplicate (guix memoization) import. Ludovic Courtès
2020-07-25utils: Move <location> and '&error-location' to (guix diagnostics)....* guix/utils.scm (<location>, source-properties->location) (location->source-properties, &error-location): Move to... * guix/diagnostics.scm: ... here. * gnu.scm: Adjust imports accordingly. * gnu/machine.scm: Likewise. * gnu/system.scm: Likewise. * gnu/tests.scm: Likewise. * guix/inferior.scm: Likewise. * tests/channels.scm: Likewise. * tests/packages.scm: Likewise. Ludovic Courtès
2020-07-24Merge branch 'master' into stagingMarius Bakke
2020-07-24quirks: Adjust patch to allow traveling back to Dec. 2018....Fixes <https://bugs.gnu.org/42519>. This fixes: guix time-machine --commit=897f303d2fa61497a931cf5fcb43349eb5f44c14 a commit dated Dec. 2018. * guix/quirks.scm (%bug-41214-patch)[accesses-guile-2.2-optimization-options?]: Add second 'match' clause. Ludovic Courtès
2020-07-24import: github: Gracefully handle projects that have disappeared....Fixes <https://bugs.gnu.org/42509>. Reported by Alexandru-Sergiu Marton <brown121407@posteo.ro>. * guix/import/github.scm (fetch-releases-or-tags): Use 'http-fetch' instead of 'json-fetch', and guard against 404 errors. Upon 404, emit a warning and return the empty vector. Ludovic Courtès
2020-07-24pack: '-R' applies to propagated inputs too....Fixes <https://bugs.gnu.org/42510>. * guix/scripts/pack.scm (wrapped-manifest-entry): Recurse on 'dependencies' field. * tests/guix-pack-relocatable.sh: Add test. Ludovic Courtès
2020-07-23guix system: 'reconfigure' disallows downgrades by default....This is similar to what 9744cc7b4636fafb772c94adb8f05961b5b39f16 did for 'guix pull'. * guix/scripts/system/reconfigure.scm (ensure-forward-reconfigure) (warn-about-backward-reconfigure, channel-relations) (check-forward-update): New procedures. * guix/scripts/system.scm (perform-action): Add #:validate-reconfigure. Call 'check-forward-update' when ACTION is 'reconfigure. (%options, show-help): Add "--allow-downgrades". (%default-options): Add 'validate-reconfigure' key. (process-action): Pass #:validate-reconfigure to 'perform-action'. * doc/guix.texi (Invoking guix system): Document 'guix system describe' more prominently, and document '--allow-downgrades'. Ludovic Courtès
2020-07-23git: 'update-cached-checkout' has a new #:check-out? parameter....* guix/git.scm (update-cached-checkout): Add #:check-out? parameter and honor it. Ludovic Courtès
2020-07-23git: Factorize 'resolve-reference'....* guix/git.scm (resolve-reference): New procedure. (switch-to-ref): Use it. Ludovic Courtès
2020-07-21git-authenticate: Show fingerprint in missing-key error message....* guix/git-authenticate.scm (commit-signing-key): In the 'missing-key' case, add call to 'openpgp-format-fingerprint'. Ludovic Courtès
2020-07-21lint: source: Always return a list....Fixes a regression introduced in c10526672e515f07c92dc447bbc592808f67238e. Previously we would return *unspecified* for a package whose source is not an origin. * guix/lint.scm (check-source): Add alternate 'if' branch. Ludovic Courtès
2020-07-21upstream: 'download-tarball' gracefully handles missing signatures....This avoids a backtrace with "guix refresh -u rdiff-backup", which has ".asc" signatures instead of ".sig". * guix/upstream.scm (download-tarball): Gracefully handle the case where SIG is false. * guix/gnu-maintenance.scm (latest-savannah-release): Add comment about 'file->signature'. Ludovic Courtès
2020-07-20gnu-maintenance: Recognize "RC" as denoting a pre-release tarball....* guix/gnu-maintenance.scm (%alpha-tarball-rx): Add "RC". Ludovic Courtès
2020-07-20gnu-maintenance: Handle lists returned by 'origin-uri'....This fixes "guix refresh man-pages", for instance. * guix/gnu-maintenance.scm (latest-savannah-release) (latest-kernel.org-release): Handle the case where 'origin-uri' returns a list. Ludovic Courtès
2020-07-20gnu-maintenance: Call 'adjusted-upstream-source' only when there's a source....This is a followup to 59a47fb67853dd28891376fc970699f11c0f972f. * guix/gnu-maintenance.scm (latest-savannah-release): Call 'adjusted-upstream-source' only when 'latest-html-release' returns true. (latest-kernel.org-release): Likewise. Ludovic Courtès
2020-07-20json: Re-export 'define-json-mapping' from (json) when available....This prepares for the migration to Guile-JSON 4.3.0. * guix/json.scm (define-as-needed): New macro. (define-json-mapping): Use 'define-as-needed' instead of 'define-syntax-rule'. Ludovic Courtès
2020-07-20gnu-maintenance: 'kernel.org' and 'savannah' updaters rewrite URLs....This makes sure they return 'mirror://' URLs rather that URLs pointing to the specific mirror they talk to. * guix/gnu-maintenance.scm (url-prefix-rewrite) (adjusted-upstream-source): New procedures. (latest-savannah-release, latest-kernel.org-release): Use it. Ludovic Courtès
2020-07-20upstream: Use 'warning' instead of 'format'....* guix/upstream.scm (update-package-source): Use 'warning' instead of 'format'. Ludovic Courtès
2020-07-20download: Add Savannah mirror....* guix/download.scm (%mirrors): Add nongnu.freemirror.org. Ludovic Courtès
2020-07-20gnu-maintenance: Add 'savannah' updater....* guix/gnu-maintenance.scm (savannah-package?, %savannah-base) (%savannah-updater): New variables. (latest-savannah-release): New procedure. (latest-xorg-release): Fix docstring. Ludovic Courtès
2020-07-20gnu-maintenance: 'latest-html-release' honors #:file->signature....* guix/gnu-maintenance.scm (latest-html-release): Call FILE->SIGNATURE instead of the in-line ".tar.sign" policy. Ludovic Courtès
2020-07-20pack: Build the store database under a UTF-8 locale....Fixes <https://bugs.gnu.org/42389>. Reported by branjam4@gmail.com. * guix/scripts/pack.scm (store-database)[build]: Add calls to 'setenv' and 'setlocale'. * tests/pack.scm ("self-contained-tarball + localstatedir, UTF-8 file names"): New test. Ludovic Courtès
2020-07-20pack: 'self-contained-tarball' runs derivation in a UTF-8local....* guix/scripts/pack.scm (self-contained-tarball) [set-utf8-locale]: New variable. [build]: Use it. * tests/pack.scm ("self-contained-tarball"): Use a <profile> record instead of 'profile-derivation'. Ludovic Courtès
2020-07-20ssh: Speed up RPCs by using #:nodelay....Partly fixes <https://bugs.gnu.org/41702>. * guix/ssh.scm (open-ssh-session): Enable #:nodelay. * m4/guix.m4 (GUIX_CHECK_GUILE_SSH): Add feature check for this new parameter. * doc/guix.texi (Requirements): Adjust. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Lars-Dominik Braun
2020-07-17build-system/maven: Make default-maven-plugins a procedure....This allows compiling the module without the (gnu packages maven) module being available. * guix/build-system/maven.scm (%default-maven-plugins): Rename to default-maven-plugins, and convert to a procedure. * doc/guix.texi (maven-build-system): Update. Christopher Baines
2020-07-17guix: Add maven-build-system....* guix/build-system/maven.scm: New file. * guix/build/maven-build-system.scm: New file. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document the maven build system. Julien Lepiller
2020-07-17guix: java-utils: Add Maven-related phases....* guix/build/maven/java.scm: New file. * guix/build/maven/plugin.scm: New file. * guix/build/maven/pom.scm: New file. * Makefile.am (MODULES): Add them. * guix/build-system/ant.scm (%ant-build-system-modules): Add them to the build side. * guix/build/java-utils.scm (generate-plugin.xml, install-pom-file) (install-from-pom): New procedures. Julien Lepiller
2020-07-15build/cargo-utils: Use all allocated threads to generate checksums....* guix/build/cargo-utils.scm (generate-all-checksums): Use n-par-for-each instead of for-each when regenerating checksums for source crates. Efraim Flashner
2020-07-15ui: 'with-error-handling' does not unwind the stack....Since a07d5e558b5403dad0a59776b950b6b02169c249, we've been getting useless backtraces upon unhandled errors, like this: Backtrace: 1 (primitive-load "/home/…/bin/guix") In guix/ui.scm: 1953:12 0 (run-guix-command _ . _) guix/ui.scm:1953:12: In procedure run-guix-command: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f This change finally gives us real backtraces back. * guix/ui.scm (guard*): New macro. (call-with-error-handling): Use it instead of 'guard'. Ludovic Courtès
2020-07-15services: Add 'system-provenance' procedure....* gnu/services.scm (sexp->channel, system-provenance): New procedures. * guix/scripts/system.scm (sexp->channel): Remove. (display-system-generation): Use 'system-provenance' instead of parsing the "provenance" file right here. Ludovic Courtès
2020-07-13packages: Ensure bags are insensitive to '%current-system'....Fixes <https://bugs.gnu.org/42327>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. This is a followup to f52fbf7094c9c346d38ad469cc8d92d18387786e. * guix/packages.scm (bag-transitive-inputs, bag-transitive-build-inputs) (bag-transitive-host-inputs, bag-transitive-target-inputs): Parameterize %CURRENT-SYSTEM in addition to %CURRENT-TARGET-SYSTEM. * tests/packages.scm ("package->bag, sensitivity to %current-system"): New test. Ludovic Courtès
2020-07-12lint: source: Validate URLs of Git references....Until now the 'source' checker would look at URL for 'url-fetch' origins but not for 'git-fetch' origins. * guix/lint.scm (check-source): Add case for 'git-reference?'. * tests/lint.scm ("source, git-reference: 301 -> 200"): New test. Ludovic Courtès
2020-07-12scripts: Typo in args-fold*....* guix/scripts.scm (args-fold*): Add missing 'args' parameter so that the all parameter names match their value. Jan (janneke) Nieuwenhuizen
2020-07-11image: Do not set journal_model=WAL for the Hurd....This fixes <https://bugs.gnu.org/42151>. * gnu/system/images/hurd.scm (hurd-initialize-root-partition): Use #:wal-mode #f in call to ... * gnu/build/image.scm (initialize-root-partition): ... this, add #:wal-mode? parameter, pass it to ... (register-closure): ... this, add #:wal-mode? parameter, pass it to ... * guix/store/database.scm (with-database): ... this, add #:wal-mode? parameter, pass it to ... (call-with-database): ... this, add #:wal-mode? parameter; when set to #f, do not set journal_model=WAL. Jan (janneke) Nieuwenhuizen
2020-07-11Add 'guix git authenticate'....* guix/scripts/git.scm, guix/scripts/git/authenticate.scm, tests/guix-git-authenticate.sh: New files. * Makefile.am (MODULES): Add the *.scm files. (SH_TESTS): Add 'tests/guix-git-authenticate.sh'. * doc/guix.texi (Channels)[Specifying Channel Authorizations]: Mention 'guix git authenticate'. (Invoking guix git authenticate): New node. * po/guix/POTFILES.in: Add 'guix/scripts/git.scm' and 'guix/scripts/git/authenticate.scm'. Ludovic Courtès
2020-07-11git: Add 'with-git-error-handling'....* guix/scripts/pull.scm (report-git-error, with-git-error-handling): Move to... * guix/git.scm: ... here. * guix/scripts/time-machine.scm: Adjust accordingly. Ludovic Courtès
2020-07-11git-authenticate: Factorize 'authenticate-repository'....* guix/git-authenticate.scm (repository-cache-key) (verify-introductory-commit, authenticate-repository): New procedures. * guix/channels.scm (verify-introductory-commit): Remove. (authenticate-channel): Rewrite in terms of 'authenticate-repository'. Ludovic Courtès
2020-07-10download-nar: Hide colliding 'dump-port*' binding....* guix/build/download-nar.scm: Hide 'dump-port*' from (guix serialization). Ludovic Courtès
2020-07-10cve: Fix typos in <cve> accessor....* guix/cve.scm (<cve>)[references]: Rename accessor to 'cve-references' and fix adjust exported name accordingly. Ludovic Courtès
2020-07-10git-download: Don't verify X.509 certificate of SWH....Fixes <https://bugs.gnu.org/42286>. Regression introduced with the switch to Guile 3.0 in commit b6bee63bed4f013064c0d902e7c8b83ed7514ade. * guix/git-download.scm (git-fetch): Parameterize %VERIFY-SWH-CERTIFICATE. Ludovic Courtès