summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* openpgp: Add missing type predicate for '&openpgp-invalid-signature-error'.Ludovic Courtès2020-05-04
| | | | | | | | Reported by brendyyn on #guix. The mistake led to a macro expansion error on Guile 2.2 but not on 3.0.2. * guix/openpgp.scm (&openpgp-invalid-signature-error): Add missing type predicate.
* openpgp: Raise error conditions instead of calling 'error'.Ludovic Courtès2020-05-04
| | | | | | | | | | | * guix/openpgp.scm (&openpgp-error, &openpgp-unrecognized-packet-error) (&openpgp-invalid-signature-error): New error conditions. (openpgp-hash-algorithm): Add 'signature-port' parameter. Raise an error condition instead of calling 'error'. (parse-subpackets): Likewise. (get-data): Raise instead of calling 'error'. (get-openpgp-detached-signature/ascii): Likewise. (get-signature): Likewise.
* openpgp: Add 'string->openpgp-packet'.Ludovic Courtès2020-05-04
| | | | | | | * guix/openpgp.scm (string->openpgp-packet): New procedure. * tests/openpgp.scm ("verify-openpgp-signature, missing key") ("verify-openpgp-signature, good signatures") ("verify-openpgp-signature, bad signature"): Use it.
* openpgp: 'lookup-key-by-{id,fingerprint}' return the key first.Ludovic Courtès2020-05-04
| | | | | | | | | | | | Previously, 'lookup-key-by-{id,fingerprint}' would always return the list of packets where the primary key is first. Thus, the caller would need to use 'find' to actually find the requested key. * guix/openpgp.scm (keyring-insert): Always add KEY to PACKETS. (lookup-key-by-id, lookup-key-by-fingerprint): Change to return the key as the first value. (verify-openpgp-signature): Remove now unneeded call to 'find'. * tests/openpgp.scm ("get-openpgp-keyring"): Adjust accordingly.
* openpgp: 'verify-openpgp-signature' looks up by fingerprint when possible.Ludovic Courtès2020-05-04
| | | | | | | | | * guix/openpgp.scm (verify-openpgp-signature): Use 'lookup-key-by-fingerprint' when SIG contains a fingerprint. Honor FINGERPRINT in the 'find' predicate. Upon missing-key, return FINGERPRINT if available. * tests/openpgp.scm ("verify-openpgp-signature, missing key"): Adjust expected value accordingly.
* openpgp: Add 'lookup-key-by-fingerprint'.Ludovic Courtès2020-05-04
| | | | | | | | | | | | * guix/openpgp.scm (<openpgp-keyring>)[table]: Rename to... [ids]: ... this. [fingerprints]: New field. (keyring-insert, lookup-key-by-fingerprint): New procedures. (%empty-keyring): Adjust. (get-openpgp-keyring): Manipulate KEYRING instead of its vhash, use 'keyring-insert'. * tests/openpgp.scm ("get-openpgp-keyring"): Test 'lookup-key-by-fingerprint'.
* openpgp: Store the issuer key id and fingerprint in <openpgp-signature>.Ludovic Courtès2020-05-04
| | | | | | | | | | * guix/openpgp.scm (<openpgp-signature>)[issuer, issuer-fingerprint]: New fields. (openpgp-signature-issuer, openpgp-signature-issuer-fingerprint): Remove. (verify-openpgp-signature): Use 'openpgp-signature-issuer-key-id'. (get-signature): Initialize 'issuer' and 'issuer-fingerprint'. * tests/openpgp.scm ("get-openpgp-detached-signature/ascii"): Adjust accordingly.
* openpgp: Decode the issuer-fingerprint signature subpacket.Ludovic Courtès2020-05-04
| | | | | | | | | | | | | | * guix/openpgp.scm (SUBPACKET-ISSUER-FINGERPRINT): New variable. (openpgp-signature-issuer-fingerprint): New procedure. (key-id-matches-fingerprint?): New procedure. (get-signature): Look for the 'issuer and 'issuer-fingerprint subpackets. Ensure the issuer key ID matches the fingerprint when both are available. (parse-subpackets): Handle SUBPACKET-ISSUER-FINGERPRINT. * tests/openpgp.scm (%rsa-key-fingerprint) (%dsa-key-fingerprint, %ed25519-key-fingerprint): New variables. * tests/openpgp.scm ("get-openpgp-detached-signature/ascii"): Check the result of 'openpgp-signature-issuer-fingerprint'.
* Add (guix openpgp).Ludovic Courtès2020-05-04
| | | | | | | | | * guix/openpgp.scm, tests/openpgp.scm, tests/civodul.key, tests/dsa.key, tests/ed25519.key, tests/rsa.key, tests/ed25519.sec: New files. * Makefile.am (MODULES): Add guix/openpgp.scm. (SCM_TESTS): Add tests/openpgp.scm. (EXTRA_DIST): Add tests/*.key and tests/ed25519.sec.
* profiles: Mark manual database as non-substitutable.Ludovic Courtès2020-05-01
| | | | | | | Fixes <https://bugs.gnu.org/40381>. Reported by pkill9 <pkill9@runbox.com>. * guix/profiles.scm (manual-database): Pass #:substitutable? #f.
* guix: edit: Make nano the default editor.Raghav Gururajan2020-04-27
| | | | | | | | | * guix/scripts/edit.scm: Make nano the default editor. Nano is sensible default, as it is installed by base system. For development, user can set custom value for $EDITOR. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* import: crate: Gracefully handle non-existent crates.Ludovic Courtès2020-04-27
| | | | | | | | Fixes <https://bugs.gnu.org/40891>. Reported by Hartmut Goebel <h.goebel@crazy-compilers.com>. * guix/import/crate.scm (crate->guix-package): Wrap value of 'version-number' and 'version*' in (and crate ...).
* channels: Use a declarative profile.Ludovic Courtès2020-04-26
| | | | | * guix/channels.scm (package-cache-file): Use 'profile' instead of 'profile-derivation'.
* pack: Use a declarative profile.Ludovic Courtès2020-04-26
| | | | | * guix/scripts/pack.scm (guix-pack): Use a declarative profile instead of 'profile-derivation'.
* profiles: Add lowerable <profile> record type.Ludovic Courtès2020-04-26
| | | | | * guix/profiles.scm (<profile>): New record type. * tests/profiles.scm ("<profile>"): New test.
* substitute: Close port at the end of http-multiple-get.Christopher Baines2020-04-26
| | | | * guix/scripts/substitute.scm (http-multiple-get): Add close-port call.
* substitute: Make http-multiple-get batch size configurable.Christopher Baines2020-04-26
| | | | * guix/scripts/substitute.scm (http-multiple-get): Add batch-size parameter.
* substitute: Use the same port for multiple request batches.Christopher Baines2020-04-26
| | | | | | | In http-multiple-get. * guix/scripts/substitute.scm (http-multiple-get): Switch port to p in one occurrence.
* guix package: Export 'search-path-environment-variables'.Marius Bakke2020-04-24
| | | | | | ...because Emacs-Guix uses it. * guix/scripts/package.scm (search-path-environment-variables): Export.
* Revert "licenses: Export license record."Mathieu Othacehe2020-04-24
| | | | | | This reverts commit f0779922ff260df2404c90504986aa59553154fb. We do not want to export the license record, see: https://lists.gnu.org/archive/html/guix-commits/2020-04/msg01923.html.
* compile: Pre-load the compiler outside 'with-target'.Ludovic Courtès2020-04-23
| | | | | | | | | | * guix/build/compile.scm (compile-files): Move call to 'compile' before 'with-target'. Failing to do that, if the target has a different word size than the host, the first call to 'compile-file' fails with: ice-9/eval.scm:293:34: In procedure load-thunk-from-memory: ELF file does not have native word size while attempting loading 'language/spec.go'.
* licenses: Export license record.zimoun2020-04-23
| | | | | | * guix/licenses.scm (<license>): Export it. Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
* git-version: Raise a condition instead of an error.Jakub Kądziołka2020-04-23
| | | | | | | * guix/git-download.scm (git-version): Replace ERROR with RAISE and CONDITION. This is a follow-up to commit bbf6bc1acc9bbdebf7ee7b68c0fa091733a5f6e1.
* git-version: Handle invalid arguments gracefullyJakub Kądziołka2020-04-23
| | | | * guix/git-download.scm (git-version): Add a check for commit ID length.
* profiles: Add #:name parameter to 'profile-derivation'.Ludovic Courtès2020-04-22
| | | | | * guix/profiles.scm (profile-derivation): Add #:name and pass it to 'gexp->derivation'.
* gexp: Add 'load-path?' field to <scheme-file>.Ludovic Courtès2020-04-22
| | | | | | | * guix/gexp.scm (<scheme-file>)[load-path?]: New field. (scheme-file): Add #:set-load-path? and honor it. (scheme-file-compiler): Pass #:set-load-path? to 'gexp->file'. * doc/guix.texi (G-Expressions): Document it.
* self: Build and install 'guix-cookbook.info' and its translations.Ludovic Courtès2020-04-21
| | | | | | * guix/self.scm (translate-texi-manuals)[build]: Translate and install guix-cookbook.texi. (info-manual)[build]: Handle "guix-cookbook*.texi".
* self: translate-texi-manuals: Add 'available-translations'.Ludovic Courtès2020-04-21
| | | | | | * guix/self.scm (translate-texi-manuals)[build](available-translations): New procedure. Use it rather than directly calling 'find-files' & co.
* self: translate-texi-manuals: Don't hardcode "guix.texi".Ludovic Courtès2020-04-21
| | | | | * guix/self.scm (translate-texi-manuals)[build](translate-texi): Add 'prefix' and #:extras parameters and honor them. Adjust callers.
* packages: Recommend against the use of 'package-file'.Ludovic Courtès2020-04-21
| | | | | | * guix/packages.scm (package-file): Recommend against its use in the docstring. * doc/guix.texi (The Store Monad): Likewise.
* syscalls: Fix Linux detection in 'readdir*'.Julien Lepiller2020-04-20
| | | | | * guix/build/syscalls.scm (readdir*): Fix Linux detection for `arm-unknown-linux-gnueabihf'.
* tests: Invoke 'git' with a custom '.gitconfig' and ignore the system config.Ludovic Courtès2020-04-19
| | | | | | | | | | Fixes <https://bugs.gnu.org/37679>. Reported by Gábor Boskovits <boskovits@gmail.com>. * guix/tests/git.scm (call-with-environment-variables): New procedure. (with-environment-variables): New macro. (populate-git-repository)[git]: Wrap (git-command) invocation in 'call-with-temporary-directory' and 'with-environment-variables'.
* status: Remove extra space before ellipsis.Ludovic Courtès2020-04-19
| | | | | | | Extra space was introduced in 8fa4ac5be4d5f8a1e62635842b16486832ff49f1. * guix/status.scm (print-build-event): Remove extra space before ellipsis.
* gnupg: Accept revoked keys.Tobias Geerinckx-Rice2020-04-17
| | | | | | | | | | | | | | I (nckx) have revoked all RSA subkeys, in favour of my older and freshly-refreshed ECDSA ones. This was merely a precaution: to my knowledge all my RSA private keys have been carefully destroyed and were never compromised. This commit keeps ‘make authenticate’ happy. * guix/gnupg.scm (revkeysig-rx): New variable for revoked keys. (gnupg-verify): Parse it. (gnupg-status-good-signature?): Accept it as ‘good’ for our purposes. * build-aux/git-authenticate.scm (%committers): Clarify nckx's subkeys. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* ui: Fix typos, 80-col & grammar in comments & docstrings.Vincent Legoll2020-04-17
| | | | | | | | | | | * guix/ui.scm (load*): Fix comment line length. (leave-on-EPIPE): Fix typo in docstring. (substitutable-info): Fix typo in comment. (indented-string): Fix typo in docstring. (%package-metrics): Fix typo in comment. (run-guix): Fix grammar in docstring. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* status: Allow double-click select of URLs.TomZ2020-04-17
| | | | | | | | Various places while downloading or compiling guix prints the source URL. This change makes the URL easier to use by placing a space between the URL and the trailing dots. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* import/print: Don't factorize URI if there's no version match.Ricardo Wurmus2020-04-16
| | | | | * guix/import/print.scm (package->code): If FACTORIZE-URI returns just the unmodified string use that as the URI.
* import/utils: alist->package: Include arguments.Ricardo Wurmus2020-04-16
| | | | | * guix/import/utils.scm (alist->package): Process arguments field in input data and include it in the generated package.
* import/json: json->code: Handle files with more than one definition.Ricardo Wurmus2020-04-16
| | | | | | * guix/import/json.scm (json->code): Convert JSON arrays to lists of package definitions. (json->scheme-file): Write all expressions to the target file.
* import/utils: alist->package: Ignore known inputs.Ricardo Wurmus2020-04-16
| | | | | | | * guix/import/utils.scm (alist->package): Accept optional list of known inputs, which are excluded from the specification lookup. * guix/import/print.scm (package->code)[package-lists->code]: Handle inputs which are just symbols.
* import/print: package->code: Wrap S-expression in definition.Ricardo Wurmus2020-04-16
| | | | | * guix/import/print.scm (package->code): Return a definition, not just a package expression.
* import/json: Use json->code.Ricardo Wurmus2020-04-16
| | | | | * guix/import/json.scm (json->code): Export procedure. * guix/scripts/import/json.scm (guix-import-json): Use json->code.
* scripts/package: Handle JSON files.Ricardo Wurmus2020-04-16
| | | | | * guix/scripts/package.scm (%options): Support loading from JSON files when "install-from-file" is used.
* scripts/build: options->things-to-build: Handle .json files.Ricardo Wurmus2020-04-16
| | | | | * guix/scripts/build.scm (options->things-to-build): Handle files that end on .json.
* import/json: Add json->scheme-file.Ricardo Wurmus2020-04-16
| | | | * guix/import/json.scm (json->code, json->scheme-file): New procedures.
* import/print: package->code: Wrap build system value in module reference.Ricardo Wurmus2020-04-16
| | | | | * guix/import/print.scm (package->code): Return build system value with corresponding module.
* import/print: Return license with prefix.Ricardo Wurmus2020-04-16
| | | | * guix/import/print.scm (license->code): Prepend license: prefix.
* syscalls: 'readdir*' chooses between the Linux and Hurd code at run time.Ludovic Courtès2020-04-16
| | | | | | | | | | | | | | | | | | | | Partly fixes <https://bugs.gnu.org/40574>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. Previously, we'd choose at expansion time whether to use the Hurd or the Linux variant, taking the cross-compilation target into account. This would lead to the wrong decision when (guix build syscalls) is evaluated while we're cross-compiling to GNU/Hurd. This is a followup to 1ab9e483391f8b62b873833ea71cb0074efa03e7. * guix/build/syscalls.scm (define-generic-identifier) (read-dirent-header, %struct-dirent-header, sizeof-dirent-header): Remove. (readdir*): Rename to... (readdir-procedure): ... this, and add parameters. (readdir*): Define as a call to 'readdir-procedure' as a function of %HOST-TYPE.
* Merge branch 'version-1.1.0'Ludovic Courtès2020-04-15
|\
| * weather: Delete duplicate entries coming from '--manifest'.Ludovic Courtès2020-04-14
| | | | | | | | * guix/scripts/weather.scm (load-manifest): Call 'delete-duplicates'.