Age | Commit message (Expand) | Author |
2020-05-05 | image: 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-05 | build: store-copy: Export file-size procedure....* guix/build/store-copy.scm (file-size): Export it.
| Mathieu Othacehe |
2020-05-04 | openpgp: 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-04 | openpgp: 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-04 | openpgp: 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-04 | openpgp: '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-04 | openpgp: '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-04 | openpgp: 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-04 | openpgp: 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-04 | openpgp: 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-04 | Add (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-01 | profiles: 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-27 | guix: 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-27 | import: 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-26 | channels: Use a declarative profile....* guix/channels.scm (package-cache-file): Use 'profile' instead of
'profile-derivation'.
| Ludovic Courtès |
2020-04-26 | pack: Use a declarative profile....* guix/scripts/pack.scm (guix-pack): Use a declarative profile instead
of 'profile-derivation'.
| Ludovic Courtès |
2020-04-26 | profiles: Add lowerable <profile> record type....* guix/profiles.scm (<profile>): New record type.
* tests/profiles.scm ("<profile>"): New test.
| Ludovic Courtès |
2020-04-26 | substitute: Close port at the end of http-multiple-get....* guix/scripts/substitute.scm (http-multiple-get): Add close-port call.
| Christopher Baines |
2020-04-26 | substitute: Make http-multiple-get batch size configurable....* guix/scripts/substitute.scm (http-multiple-get): Add batch-size parameter.
| Christopher Baines |
2020-04-26 | substitute: 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-24 | guix package: Export 'search-path-environment-variables'.......because Emacs-Guix uses it.
* guix/scripts/package.scm (search-path-environment-variables): Export.
| Marius Bakke |
2020-04-24 | Revert "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-23 | compile: 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-23 | licenses: Export license record....* guix/licenses.scm (<license>): Export it.
Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
| zimoun |
2020-04-23 | git-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-23 | git-version: Handle invalid arguments gracefully...* guix/git-download.scm (git-version): Add a check for commit ID length.
| Jakub Kądziołka |
2020-04-22 | profiles: Add #:name parameter to 'profile-derivation'....* guix/profiles.scm (profile-derivation): Add #:name and pass it to
'gexp->derivation'.
| Ludovic Courtès |
2020-04-22 | gexp: 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-21 | self: 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-21 | self: 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-21 | self: 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-21 | packages: 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-20 | syscalls: Fix Linux detection in 'readdir*'....* guix/build/syscalls.scm (readdir*): Fix Linux detection for
`arm-unknown-linux-gnueabihf'.
| Julien Lepiller |
2020-04-19 | tests: 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-19 | status: 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-17 | gnupg: 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-17 | ui: 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-17 | status: 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-16 | import/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-16 | import/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-16 | import/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-16 | import/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-16 | import/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-16 | import/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-16 | scripts/package: Handle JSON files....* guix/scripts/package.scm (%options): Support loading from JSON files when
"install-from-file" is used.
| Ricardo Wurmus |
2020-04-16 | scripts/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-16 | import/json: Add json->scheme-file....* guix/import/json.scm (json->code, json->scheme-file): New procedures.
| Ricardo Wurmus |
2020-04-16 | import/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-16 | import/print: Return license with prefix....* guix/import/print.scm (license->code): Prepend license: prefix.
| Ricardo Wurmus |
2020-04-16 | syscalls: '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 |