aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/profiles.scm27
-rw-r--r--tests/guix-package.sh15
-rw-r--r--tests/inferior.scm11
3 files changed, 49 insertions, 4 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 8acfcff8c1..669ebe04e5 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -314,12 +314,31 @@ file name."
"Return a list of manifest entries, one for each item listed in PACKAGES.
Elements of PACKAGES can be either package objects or package/string tuples
denoting a specific output of a package."
+ (define inferiors-loaded?
+ ;; This hack allows us to provide seamless integration for inferior
+ ;; packages while not having a hard dependency on (guix inferior).
+ (resolve-module '(guix inferior) #f #f #:ensure #f))
+
+ (define (inferior->entry)
+ (module-ref (resolve-interface '(guix inferior))
+ 'inferior-package->manifest-entry))
+
(manifest
(map (match-lambda
- ((package output)
- (package->manifest-entry package output))
- ((? package? package)
- (package->manifest-entry package)))
+ ((package output)
+ (package->manifest-entry package output))
+ ((? package? package)
+ (package->manifest-entry package))
+ ((thing output)
+ (if inferiors-loaded?
+ ((inferior->entry) thing output)
+ (throw 'wrong-type-arg 'packages->manifest
+ "Wrong package object: ~S" (list thing) (list thing))))
+ (thing
+ (if inferiors-loaded?
+ ((inferior->entry) thing)
+ (throw 'wrong-type-arg 'packages->manifest
+ "Wrong package object: ~S" (list thing) (list thing)))))
packages)))
(define (manifest->gexp manifest)
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index cef3b3452e..f7dfbfad00 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -358,6 +358,21 @@ EOF
guix package --bootstrap -m "$module_dir/manifest.scm"
guix package -I | grep guile
test `guix package -I | wc -l` -eq 1
+guix package --rollback --bootstrap
+
+# Applying a manifest file with inferior packages.
+cat > "$module_dir/manifest.scm"<<EOF
+(use-modules (guix inferior))
+
+(define i
+ (open-inferior "$abs_top_srcdir" #:command "scripts/guix"))
+
+(let ((guile (car (lookup-inferior-packages i "guile-bootstrap"))))
+ (packages->manifest (list guile)))
+EOF
+guix package --bootstrap -m "$module_dir/manifest.scm"
+guix package -I | grep guile
+test `guix package -I | wc -l` -eq 1
# Error reporting.
cat > "$module_dir/manifest.scm"<<EOF
diff --git a/tests/inferior.scm b/tests/inferior.scm
index 6f6abd28a1..d1d5c00a77 100644
--- a/tests/inferior.scm
+++ b/tests/inferior.scm
@@ -182,4 +182,15 @@
(close-inferior inferior)
(manifest-entry->list entry)))
+(test-equal "packages->manifest"
+ (map manifest-entry->list
+ (manifest-entries (packages->manifest
+ (find-best-packages-by-name "guile" #f))))
+ (let* ((inferior (open-inferior %top-builddir
+ #:command "scripts/guix"))
+ (guile (first (lookup-inferior-packages inferior "guile")))
+ (manifest (packages->manifest (list guile))))
+ (close-inferior inferior)
+ (map manifest-entry->list (manifest-entries manifest))))
+
(test-end "inferior")
. Change-Id: I562ae6533b518a853b9b59f8fb69c0135364277f Hilton Chain 2024-01-20gnu: gnutls: Update to 3.8.3 [security-fixes]....Fixes CVE-2024-0553 and CVE-2024-0567. gnu/packages/tls.scm (gnutls-3.8.2): Rename to ... (gnutls/fixed): ... this. Update to 3.8.3. (gnutls): Rename replacement to gnutls/fixed. Change-Id: Ic44b3b0481ffd51cdc42a2d71a598f001b43c6f7 Signed-off-by: John Kehayias <john.kehayias@protonmail.com> Co-authored-by: John Kehayias <john.kehayias@protonmail.com> Jack Hill 2024-01-11gnu: Update guile-gnutls to 3.7.14....* gnu/packages/tls.scm (guile-gnutls): Update to 3.7.14. Change-Id: I851cb3554f1dcf5c286c345634ea71c5a7bbd973 David Thompson 2024-01-05gnutls: Update to 3.8.2 (fixes CVE-2023-5981)....* gnu/packages/tls.scm (gnutls): Graft with gnutls-3.8.2. (gnutls-3.8.1): Replace with... (gnutls-3.8.2): ... this. Remove obsolete set-path-max phase, and make the variable private. Change-Id: Ib5cd276c9ecc87d1adc2f4f9633d49676cfe856d Maxim Cournoyer 2024-01-04gnu: openssl: Fix building on x86_64-linux-gnux32....* gnu/packages/tls.scm (target->openssl-target): Add entry for x86_64-linux-gnux32. Change-Id: Icbbdb76134da0811b8493c55ca2d3acdb77c5883 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Efraim Flashner 2023-12-12Revert "gnu: openssl: Don't error when targeting avr."...This reverts commit baeff7f546d700ae4f0c873bd0fce0ca84bebd21. Efraim Flashner 2023-12-12gnu: openssl: Don't error when targeting avr....* gnu/packages/tls.scm (target->openssl-target): Add case for avr. Change-Id: I1cfc8b50fa4b2b864f8f8aa8898cc405ffc02580 Efraim Flashner 2023-11-07gnu: mbedtls-apache: Update to 2.28.5....This fixes mbedtls-apache failing some tests for unknown reasons after recent updates and ungrafting to other packages. This should soon be renamed to mbedtls-apache-lts and a newer version added; see <https://issues.guix.gnu.org/66718>. * gnu/packages/tls.scm (mbedtls-apache): Update to 2.28.5. Change-Id: Ie513c11cb60262be9865ebbd1f6238d39f299c42 John Kehayias 06-06vm: 'qemu-image' uses the native partitioning tools and bootloader....* gnu/system/vm.scm (qemu-image): Use #+ for Parted, the bootloader, etc. Ludovic Courtès 2020-06-06vm: 'expression->derivation-in-linux-vm' always returns a native build....* gnu/system/vm.scm (expression->derivation-in-linux-vm): Remove #:target. [builder]: Use #+. Don't pass #:target-arm32? and #:target-aarch64? to 'load-in-linux-vm'. Pass #:target #f to 'gexp->derivation'. (qemu-image): Adjust accordingly. * gnu/build/vm.scm (load-in-linux-vm): Remove #:target-aarch64? and #:target-arm32?. Define them as local variables. Ludovic Courtès 2020-05-16vm: Use 'let-system'....* gnu/system/vm.scm (expression->derivation-in-linux-vm)[check]: New macro. [builder]: Use 'let-system' and 'check' instead of referencing '%current-system' and '%current-target-system'. Ludovic Courtès 2020-05-08Merge branch 'core-updates'Marius Bakke 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-05Merge branch 'master' into core-updatesMarius Bakke 2020-05-05vm: Remove obsolete procedures....* gnu/build/vm.scm (install-efi, make-iso9660-image): Remove those procedures that are now implemented in (gnu build image) module, (initialize-hard-disk): remove efi support. * gnu/system/vm.scm (iso9660-image): Remove it, (qemu-image): adapt it to remove ISO9660 support. Mathieu Othacehe 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-05system: vm: Move operating-system-uuid....* gnu/system/vm.scm (operating-system-uuid): Move to ... * gnu/system.scm: ... here. Mathieu Othacehe 2020-04-26Merge branch 'master' into core-updatesMarius Bakke 2020-04-26vm: Remove unused import....* gnu/system/vm.scm: Do not import (gnu packages make-bootstrap). Marius Bakke 2020-04-11vm: Make the device node procedure a parameter....* gnu/build/vm.scm (root-partition-initializer): Add #:make-device-nodes parameter and use it. * gnu/system/vm.scm (qemu-image): Add #:device-node parameter. Pass #:make-device-nodes to 'root-partition-initializer'. Ludovic Courtès 2020-04-11vm: 'qemu-image' can pass options to the 'mkfs' command....* gnu/build/vm.scm (<partition>)[file-system-options]: New field. (create-ext-file-system, create-fat-file-system) (format-partition): Add #:options and honor it. (initialize-partition): Pass #:options to 'format-partition'. * gnu/system/vm.scm (qemu-image): Add #:file-system-options and use it for the root partition. Ludovic Courtès 2020-04-11vm: 'qemu-image' accepts a list of extra populate directives....* gnu/build/vm.scm (root-partition-initializer): Add #:extra-directives parameter and pass it to 'populate-root-file-system'. * gnu/system/vm.scm (qemu-image): Add #:extra-directives parameter and pass it to 'root-partition-initializer'. Ludovic Courtès 2020-04-10vm: Use virtio network driver....This fixes a regression introduced in 8e53fe2b91d2776bc1529e7b34967c8f1d9edc32 where 'guix system vm' would no longer be using virtio. * gnu/system/vm.scm (common-qemu-options): Add "-nic user,model=virtio-net-pci". Marius Bakke 2020-04-10vm: 'system-disk-image' honors #:substitutable? for ISO9660 images....This is a followup to a328f66a9e16d7bae765d8bc088e4a97037e6e2b. * gnu/system/vm.scm (iso9660-image): Add #:substitutable? and pass it to 'expression->derivation-in-linux-vm'. (system-disk-image): Pass #:substitutable? to 'iso9660-image'. Ludovic Courtès 2020-04-08vm: Allow images to be marked as non-substitutable....* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add #:substitutable? parameter. Pass it to 'gexp->derivation'. (qemu-image): Add #:substitutable? and pass it to 'expression->derivation-in-linux-vm'. (system-disk-image): Add #:substitutable? and pass it to 'qemu-image'. Ludovic Courtès 2020-03-26vm: Distinguish between success and failure of the guest code....Fixes <https://bugs.gnu.org/34276>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Produce '/xchg/.exit-status' file upon success. * gnu/build/vm.scm (load-in-linux-vm): Check for 'xchg/.exit-status' once QEMU has completed and respond accordingly. Ludovic Courtès 2020-03-10vm: Compute UUIDs truly deterministically....This is a followup to 1540075c790dfaeff52c93392f2fc63b9e23b77e. The mistake had no effect on prior Guile versions but it's visible since Guile 3.0.1 and the fix for <https://bugs.gnu.org/39634>. * gnu/system/vm.scm (operating-system-uuid): Hash a list of 'file-system-digest' values, not the 'file-system-type' procedure. Ludovic Courtès 2020-03-02file-systems: Add a 'file-system-device->string' procedure....* gnu/system/file-systems.scm (file-system-device->string): New procedure. * gnu/system.scm (bootable-kernel-arguments): Use it. * gnu/system/vm.scm (operating-system-uuid): Likewise. * guix/scripts/system.scm (display-system-generation): Likewise. Maxim Cournoyer