summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2020-05-05image: Add a new API....Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This is quite fragile, very slow, and almost unusable without KVM. For all these reasons, add support for host image generation. This implies the use new image generation mechanisms. - Raw disk images: images of partitions are created using tools such as mke2fs and mkdosfs depending on the partition file-system type. The partition images are then assembled into a final image using genimage. - ISO9660 images: the ISO root directory is populated within the store. GNU xorriso is then called on that directory, in the exact same way as this is done in (gnu build vm) module. Those mechanisms are built upon the new (gnu image) module. * gnu/image.scm: New file. * gnu/system/image.scm: New file. * gnu/build/image: New file. * gnu/local.mk: Add them. * gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm. * gnu/ci.scm (qemu-jobs): Adapt to new API. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Ditto. Mathieu Othacehe
2020-05-05build: store-copy: Export file-size procedure....* guix/build/store-copy.scm (file-size): Export it. Mathieu Othacehe
2020-05-04openpgp: Add missing type predicate for '&openpgp-invalid-signature-error'....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. Ludovic Courtès
2020-05-04openpgp: Raise error conditions instead of calling 'error'....* 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. Ludovic Courtès
2020-05-04openpgp: Add 'string->openpgp-packet'....* 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. Ludovic Courtès
2020-05-04openpgp: 'lookup-key-by-{id,fingerprint}' return the key first....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. Ludovic Courtès
2020-05-04openpgp: 'verify-openpgp-signature' looks up by fingerprint when possible....* 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. Ludovic Courtès
2020-05-04openpgp: Add 'lookup-key-by-fingerprint'....* 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'. Ludovic Courtès
2020-05-04openpgp: Store the issuer key id and fingerprint in <openpgp-signature>....* 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. Ludovic Courtès
2020-05-04openpgp: Decode the issuer-fingerprint signature subpacket....* 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'. Ludovic Courtès
2020-05-04Add (guix openpgp)....* 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. Ludovic Courtès
2020-05-01profiles: Mark manual database as non-substitutable....Fixes <https://bugs.gnu.org/40381>. Reported by pkill9 <pkill9@runbox.com>. * guix/profiles.scm (manual-database): Pass #:substitutable? #f. Ludovic Courtès
2020-04-27guix: edit: Make nano the default editor....* 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> Raghav Gururajan
2020-04-27import: crate: Gracefully handle non-existent crates....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 ...). Ludovic Courtès
2020-04-26channels: Use a declarative profile....* guix/channels.scm (package-cache-file): Use 'profile' instead of 'profile-derivation'. Ludovic Courtès
2020-04-26pack: Use a declarative profile....* guix/scripts/pack.scm (guix-pack): Use a declarative profile instead of 'profile-derivation'. Ludovic Courtès
2020-04-26profiles: Add lowerable <profile> record type....* guix/profiles.scm (<profile>): New record type. * tests/profiles.scm ("<profile>"): New test. Ludovic Courtès
2020-04-26substitute: Close port at the end of http-multiple-get....* guix/scripts/substitute.scm (http-multiple-get): Add close-port call. Christopher Baines
2020-04-26substitute: Make http-multiple-get batch size configurable....* guix/scripts/substitute.scm (http-multiple-get): Add batch-size parameter. Christopher Baines
2020-04-26substitute: Use the same port for multiple request batches....In http-multiple-get. * guix/scripts/substitute.scm (http-multiple-get): Switch port to p in one occurrence. Christopher Baines
2020-04-24guix package: Export 'search-path-environment-variables'.......because Emacs-Guix uses it. * guix/scripts/package.scm (search-path-environment-variables): Export. Marius Bakke
2020-04-24Revert "licenses: Export license record."...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. Mathieu Othacehe
2020-04-23compile: Pre-load the compiler outside 'with-target'....* 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'. Ludovic Courtès
2020-04-23licenses: Export license record....* guix/licenses.scm (<license>): Export it. Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com> zimoun
2020-04-23git-version: Raise a condition instead of an error....* guix/git-download.scm (git-version): Replace ERROR with RAISE and CONDITION. This is a follow-up to commit bbf6bc1acc9bbdebf7ee7b68c0fa091733a5f6e1. Jakub Kądziołka
2020-04-23git-version: Handle invalid arguments gracefully...* guix/git-download.scm (git-version): Add a check for commit ID length. Jakub Kądziołka
2020-04-22profiles: Add #:name parameter to 'profile-derivation'....* guix/profiles.scm (profile-derivation): Add #:name and pass it to 'gexp->derivation'. Ludovic Courtès
2020-04-22gexp: Add 'load-path?' field to <scheme-file>....* 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. Ludovic Courtès
2020-04-21self: Build and install 'guix-cookbook.info' and its translations....* guix/self.scm (translate-texi-manuals)[build]: Translate and install guix-cookbook.texi. (info-manual)[build]: Handle "guix-cookbook*.texi". Ludovic Courtès
2020-04-21self: translate-texi-manuals: Add 'available-translations'....* guix/self.scm (translate-texi-manuals)[build](available-translations): New procedure. Use it rather than directly calling 'find-files' & co. Ludovic Courtès
2020-04-21self: translate-texi-manuals: Don't hardcode "guix.texi"....* guix/self.scm (translate-texi-manuals)[build](translate-texi): Add 'prefix' and #:extras parameters and honor them. Adjust callers. Ludovic Courtès
2020-04-21packages: Recommend against the use of 'package-file'....* guix/packages.scm (package-file): Recommend against its use in the docstring. * doc/guix.texi (The Store Monad): Likewise. Ludovic Courtès
2020-04-20syscalls: Fix Linux detection in 'readdir*'....* guix/build/syscalls.scm (readdir*): Fix Linux detection for `arm-unknown-linux-gnueabihf'. Julien Lepiller
2020-04-19tests: Invoke 'git' with a custom '.gitconfig' and ignore the system config....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'. Ludovic Courtès
2020-04-19status: Remove extra space before ellipsis....Extra space was introduced in 8fa4ac5be4d5f8a1e62635842b16486832ff49f1. * guix/status.scm (print-build-event): Remove extra space before ellipsis. Ludovic Courtès
2020-04-17gnupg: Accept revoked keys....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> Tobias Geerinckx-Rice
2020-04-17ui: Fix typos, 80-col & grammar in comments & docstrings....* 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> Vincent Legoll
2020-04-17status: Allow double-click select of URLs....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> TomZ
2020-04-16import/print: Don't factorize URI if there's no version match....* guix/import/print.scm (package->code): If FACTORIZE-URI returns just the unmodified string use that as the URI. Ricardo Wurmus
2020-04-16import/utils: alist->package: Include arguments....* guix/import/utils.scm (alist->package): Process arguments field in input data and include it in the generated package. Ricardo Wurmus
2020-04-16import/json: json->code: Handle files with more than one definition....* guix/import/json.scm (json->code): Convert JSON arrays to lists of package definitions. (json->scheme-file): Write all expressions to the target file. Ricardo Wurmus
2020-04-16import/utils: alist->package: Ignore known inputs....* 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. Ricardo Wurmus
2020-04-16import/print: package->code: Wrap S-expression in definition....* guix/import/print.scm (package->code): Return a definition, not just a package expression. Ricardo Wurmus
2020-04-16import/json: Use json->code....* guix/import/json.scm (json->code): Export procedure. * guix/scripts/import/json.scm (guix-import-json): Use json->code. Ricardo Wurmus
2020-04-16scripts/package: Handle JSON files....* guix/scripts/package.scm (%options): Support loading from JSON files when "install-from-file" is used. Ricardo Wurmus
2020-04-16scripts/build: options->things-to-build: Handle .json files....* guix/scripts/build.scm (options->things-to-build): Handle files that end on .json. Ricardo Wurmus
2020-04-16import/json: Add json->scheme-file....* guix/import/json.scm (json->code, json->scheme-file): New procedures. Ricardo Wurmus
2020-04-16import/print: package->code: Wrap build system value in module reference....* guix/import/print.scm (package->code): Return build system value with corresponding module. Ricardo Wurmus
2020-04-16import/print: Return license with prefix....* guix/import/print.scm (license->code): Prepend license: prefix. Ricardo Wurmus
2020-04-16syscalls: 'readdir*' chooses between the Linux and Hurd code at run time....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. Ludovic Courtès