summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2020-05-11guix graph: Add '--path'....* guix/scripts/graph.scm (display-path): New procedure. (%options, show-help): Add '--path'. (guix-graph): Handle it. * tests/guix-graph.sh: Add tests. * doc/guix.texi (Invoking guix graph): Document it. (Invoking guix size): Mention it. Ludovic Courtès
2020-05-11graph: Add 'shortest-path'....* guix/graph.scm (shortest-path): New procedure. * tests/graph.scm ("shortest-path, packages + derivations") ("shortest-path, reverse packages") ("shortest-path, references"): New tests. Ludovic Courtès
2020-05-11graph: reference/referrer node types work with graph traversal....The graph traversal procedures in (guix graph) assume that nodes can be compared with 'eq?', which was not the case for nodes of %REFERENCE-NODE-TYPE and %REFERRER-NODE-TYPE (strings). * guix/scripts/graph.scm (intern): New procedure. (ensure-store-items, references*) (%reference-node-type, non-derivation-referrers) (%referrer-node-type): Use it on all store items. * tests/graph.scm ("node-transitive-edges, references"): New test. Ludovic Courtès
2020-05-11guix package, show: Support multiple queries....* guix/scripts/package.scm (process-query): Show multiple queries. * guix/scripts/show.scm (guix-show): Reverse to display in order. Signed-off-by: Ludovic Courtès <ludo@gnu.org> zimoun
2020-05-08Merge branch 'core-updates'Marius Bakke
2020-05-07build-system/emacs: Hide the 'delete' binding from (guix build utils)....This gets rid of a warning from 'compute-guix-derivation.drv' when running on Guile 3.0. (guix build emacs-build-system) includes (srfi srfi-1) anyway. * guix/build/emacs-build-system.scm: Do not import 'delete' from (guix build utils). Marius Bakke
2020-05-07nar: 'with-temporary-store-file' uses a single connection...Previously the 'with-store' form was entered every time a different temporary file was tried. This caused there to be as many simultaneous open connections as there were attempts, and prevented the (loop ...) call from being a tail call. This change fixes that. * guix/nar.scm (with-temporary-store-file): open connection once prior to entering the loop. Caleb Ristvedt
2020-05-07nar: 'finalize-store-file' follows proper store lock protocol....* guix/nar.scm (finalize-store-file): check for deletion token when acquiring lock, write deletion token and delete lock file before releasing lock. Caleb Ristvedt
2020-05-07guix system: 'docker-image' honors '--network'....* gnu/system/vm.scm (system-docker-image): Add #:shared-network? and pass it to 'containerized-operating-system'. (qemu-image): * guix/scripts/system.scm (system-derivation-for-action): Pass #:shared-network? to 'system-docker-image'. * doc/guix.texi (Invoking guix system): Document it. Ludovic Courtès
2020-05-07channels: Add patch for <https://bugs.gnu.org/41028>....Without this patch, we couldn't jump from here to commits before 05e783871c2c69b402e088863d46f5be7915ac74 because the 'compute-guix-derivation' script would crash with an unbound-variable error for 'call-with-new-thread'. Fixes <https://bugs.gnu.org/41028>. Reported by Christopher Baines <mail@cbaines.net>. * guix/channels.scm (%bug-41028-patch): New variable. (%patches): Add it. Ludovic Courtès
2020-05-07channels: Add mechanism to patch checkouts of the 'guix channel....* guix/channels.scm (<patch>): New record type. (apply-patches): New procedure. (latest-channel-instance)[dot-git?]: New procedure. Use 'update-cached-checkout' and 'add-to-store' instead of 'latest-repository-commit'. Call 'apply-patches' when CHANNEL is the 'guix channel. (%patches): New variable. * guix/git.scm (url+commit->name): Make public. * tests/channels.scm ("latest-channel-instances includes channel dependencies") ("latest-channel-instances excludes duplicate channel dependencies"): Mock 'update-cached-checkout' instead of 'latest-repository-commit'. Wrap body in 'with-store' and pass the store to 'latest-channel-instances'. Ludovic Courtès
2020-05-07channels: Add 'latest-channel-instance'....* guix/channels.scm (latest-channel-instance): New procedure. (latest-channel-instances): Use it. Ludovic Courtès
2020-05-07syscalls: Add ioctl flags for the Hurd....Use #include <stdio.h> #include <net/if.h> #include <hurd/ioctl.h> int main () { printf ("SIOCSIFFLAGS #x%x\n", SIOCSIFFLAGS); printf ("SIOCGIFADDR #x%x\n", SIOCGIFADDR); printf ("SIOCSIFADDR #x%x\n", SIOCSIFADDR); printf ("SIOCGIFNETMASK #x%x\n", SIOCGIFNETMASK); printf ("SIOCSIFNETMASK #x%x\n", SIOCSIFNETMASK); #if 0 printf ("SIOCADDRT #x%x\n", SIOCADDRT); printf ("SIOCDELRT #x%x\n", SIOCDELRT); #endif } to fill in some blanks. Adding and removing route apparently not supported. * guix/build/syscalls.scm (SIOCSIFFLAGS SIOCGIFADDR, SIOCSIFADDR, SIOCGIFNETMASK, SIOCSIFNETMASK): Jan (janneke) Nieuwenhuizen
2020-05-06Merge branch 'master' into core-updatesMarius Bakke
2020-05-05syscalls: 'define-c-struct' supports cross-compilation....Reported by Jan (janneke) Nieuwenhuizen <janneke@gnu.org>. Before that, we'd always use the 'sizeof' and 'alignof' value obtained from the host at macro-expansion time. * guix/build/syscalls.scm (sizeof*, alignof*): When the target word size differs from the host word size, emit a call to 'sizeof'/'alignof'. Ludovic Courtès
2020-05-05Merge branch 'master' into core-updatesMarius Bakke
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-02Merge branch 'master' into core-updatesMarius Bakke
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-30Merge branch 'master' into core-updates... Conflicts: gnu/local.mk gnu/packages/backup.scm gnu/packages/emacs-xyz.scm gnu/packages/guile.scm gnu/packages/lisp.scm gnu/packages/openldap.scm gnu/packages/package-management.scm gnu/packages/web.scm gnu/packages/xorg.scm Marius Bakke
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-24Merge branch 'master' into core-updatesMarius Bakke
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-23Merge branch 'master' into core-updates... Conflicts: etc/news.scm gnu/local.mk gnu/packages/bootloaders.scm gnu/packages/linphone.scm gnu/packages/linux.scm gnu/packages/tls.scm gnu/system.scm Marius Bakke
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