Age | Commit message (Expand) | Author |
2020-12-15 | database: Remove #:deduplicate? from 'register-items'....It is now up to the caller to deduplicate store contents.
* guix/store/database.scm (register-items): Remove #:deduplicate?
parameter and call to 'deduplicate'.
(register-path): Call 'deduplicate' when #:deduplicate? is true.
* gnu/build/image.scm (register-closure): Adjust call accordingly.
* gnu/build/vm.scm (register-closure): Likewise.
* guix/nar.scm (finalize-store-file): Likewise.
* guix/scripts/pack.scm (store-database): Likewise.
| Ludovic Courtès |
2020-12-15 | image: 'register-closure' leaves it up to the caller to deduplicate....* gnu/build/image.scm (register-closure): Remove #:deduplicate?
parameter and pass #:deduplicate? #f to 'register-items'.
(initialize-root-partition): Adjust accordingly.
* gnu/build/vm.scm (register-closure, root-partition-initializer):
Likewise.
| Ludovic Courtès |
2020-12-15 | store-copy: 'populate-store' can optionally deduplicate files....Until now deduplication was performed as an additional pass after
copying files, which involve re-traversing all the files that had just
been copied.
* guix/store/deduplication.scm (copy-file/deduplicate): New procedure.
* tests/store-deduplication.scm ("copy-file/deduplicate"): New test.
* guix/build/store-copy.scm (populate-store): Add #:deduplicate?
parameter and honor it.
* tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f
to 'populate-store'.
* gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate?
to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'.
* gnu/build/vm.scm (root-partition-initializer): Likewise.
* gnu/build/install.scm (populate-single-profile-directory): Pass
#:deduplicate? #f to 'populate-store'.
* gnu/build/linux-initrd.scm (build-initrd): Likewise.
* guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New
procedure.
[build]: Pass it as an argument to 'source-module-closure'.
* guix/scripts/pack.scm (squashfs-image)[build]: Wrap in
'with-extensions'.
* gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New
procedure.
[builder]: Pass it to 'source-module-closure'.
* gnu/system/install.scm (cow-store-service-type)[import-module?]: New
procedure. Pass it to 'source-module-closure'.
| Ludovic Courtès |
2020-12-15 | database: Remove #:reset-timestamps? from 'register-items'....The assumption now is that the caller took care of resetting timestamps
and permissions.
* guix/store/database.scm (register-items): Remove #:reset-timestamps?
parameter and the call to 'reset-timestamps'.
(register-path): Adjust accordingly and add call to 'reset-timestamps'.
* gnu/build/image.scm (register-closure): Remove #:reset-timestamps?
parameter to 'register-items'.
* gnu/build/vm.scm (register-closure): Likewise.
* guix/nar.scm (finalize-store-file): Adjust accordingly.
* guix/scripts/pack.scm (store-database)[build]: Likewise.
| Ludovic Courtès |
2020-12-15 | image: 'register-closure' assumes already-reset timestamps....* gnu/build/image.scm (register-closure): Remove #:reset-timestamps?
parameter. Pass #:reset-timestamps? #f to 'register-items'.
(initialize-root-partition): Adjust accordingly.
* gnu/build/vm.scm (register-closure, root-partition-initializer):
Likewise.
| Ludovic Courtès |
2020-12-15 | store-copy: 'populate-store' resets timestamps....Until now, 'populate-store' would reset permissions but not timestamps,
so callers would resort to going through an extra directory traversal to
reset timestamps.
* guix/build/store-copy.scm (reset-permissions): Remove.
(copy-recursively): New procedure.
(populate-store): Pass #:keep-permissions? to 'copy-recursively'.
Remove call to 'reset-permissions'.
* tests/gexp.scm ("gexp->derivation, store copy"): In BUILD-DRV, check
whether 'populate-store' canonicalizes permissions and timestamps.
* gnu/build/image.scm (initialize-root-partition): Pass #:reset-timestamps? #f
to 'register-closure'.
* gnu/build/vm.scm (root-partition-initializer): Likewise.
| Ludovic Courtès |
2020-06-18 | database: 'register-items' takes an open database....* guix/store/database.scm (store-database-directory)
(store-database-file): New procedures.
(call-with-database): Add call to 'mkdir-p'.
(register-items): Add 'db' parameter and remove #:state-directory and #:schema.
(register-path): Use 'store-database-file' and 'with-database', and
parameterize SQL-SCHEMA.
* gnu/build/image.scm (register-closure): Likewise.
* gnu/build/vm.scm (register-closure): Likewise.
* guix/scripts/pack.scm (store-database)[build]: Likewise.
| Ludovic Courtès |
2020-06-06 | vm: '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-05 | Merge branch 'master' into core-updates | Marius Bakke |
2020-05-05 | vm: 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-05 | build: bootloader: Add install-efi procedure....* gnu/build/bootloader.scm (install-efi): New procedure copied from (gnu build vm).
(install-efi-loader): New exported procedure, wrapping install-efi.
* gnu/build/vm.scm (initialize-hard-disk): Adapt to use install-efi-loader.
| Mathieu Othacehe |
2020-04-11 | vm: 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-11 | linux-boot: 'make-essential-device-nodes' root parameter is optional....* gnu/build/linux-boot.scm (make-essential-device-nodes): Change 'root'
to an optional parameter.
* gnu/build/vm.scm (root-partition-initializer): Adjust accordingly.
| Ludovic Courtès |
2020-04-11 | vm: Preserve file permissions on /dev....Previously, when REGISTER-CLOSURES? was false, we'd set all the files
under /dev to #o644, including /dev/null, /dev/zero, etc.
* gnu/build/vm.scm (root-partition-initializer): Call 'reset-timestamps'
separately for /dev, with #:preserve-permissions? #t.
| Ludovic Courtès |
2020-04-11 | vm: '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-11 | vm: '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-10 | vm: Transparently compress iso9660 images....* gnu/build/vm.scm (make-iso9660-image): Use the ‘--zisofs’ xorriso
filter at the highest compression settings for supported directories.
| Tobias Geerinckx-Rice |
2020-03-26 | vm: 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 |
2019-12-18 | gnu: Remove uses of deprecated Qemu network configuration....* gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from
ARCH-SPECIFIC-FLAGS to the Qemu command line. Use the "-nic" option of Qemu
instead of "-device" and "-net".
* gnu/system/vm.scm (common-qemu-options): Do not add a '-net' command.
(virtual-machine-compiler): Use "-nic user,..." instead of "-net".
* doc/guix.texi (Installing Guix in a VM, Invoking guix system, Running Guix
in a VM): Do the same for examples.
| Marius Bakke |
2019-12-01 | build: vm: Fix qemu-command procedure....* gnu/build/vm.scm (qemu-command): When system is "armhf-linux", use "arm" as
qemu cpu prefix.
| Mathieu Othacehe |
2019-11-22 | system: vm: Add arm64 support....* gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it
to pass correct arguments to qemu.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new
target-arm64? argument added above. Do not add ESP partition on all ARM
targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets.
| Mathieu Othacehe |
2019-11-22 | build: vm: Fix arm32 support....* gnu/build/vm.scm (load-in-linux-vm): Disable qemu highmem support on ARM32
systems.
| Mathieu Othacehe |
2019-05-18 | vm: Create installation media with MBR and HFS only, no GPT....* gnu/build/vm.scm (make-iso9660-image): Accept XORRISO,
GRUB-MKRESCUE-ENVIRONMENT.
* gnu/system/vm.scm (iso9660-image): Pass XORRISO; accept
GRUB-MKRESCUE-ENVIRONMENT.
(system-disk-image): Pass GRUB-MKRESCUE-ENVIRONMENT.
* gnu/packages/patches/xorriso-no-mbr-in-inner-efi.patch: New file.
* gnu/packages/patches/xorriso-no-partition-table-in-inner-efi.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/cdrom.scm (xorriso)[source]: Add patches.
[arguments]<#:phases>[install-frontends]:
Add phase.
| Danny Milosavljevic |
2019-04-29 | vm: Pass -smp to QEMU to allow use of multiple cores....* gnu/build/vm.scm (load-in-linux-vm): Pass (parallel-job-count) to QEMU with
-smp to allow using multiple cores.
| Christopher Baines |
2019-04-25 | vm: Adjust FAT serial number code to 32-bit Guile....On 32-bit systems, 'string-hash' would raise an out-of-range exception
when the second argument was 2^32.
* gnu/build/vm.scm (make-iso9660-image): Pass 2^32 - 1 to 'string-hash'.
| Ludovic Courtès |
2019-04-21 | vm: Use a fixed FAT serial number for 'efi.img' in ISO images....Partly fixes <https://bugs.gnu.org/35283>.
* gnu/build/vm.scm (make-iso9660-image): Set the
'GRUB_FAT_SERIAL_NUMBER' environment variable.
| Ludovic Courtès |
2019-04-21 | vm: Reset file timestamps of the EFI image in ISO images....Partly fixes <https://bugs.gnu.org/35283>.
* gnu/build/vm.scm (make-iso9660-image): Set the 'SOURCE_DATE_EPOCH'
environment variable.
| Ludovic Courtès |
2019-04-21 | vm: Reset file timestamps in ISO images....Partly fixes <https://bugs.gnu.org/35283>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
* gnu/build/vm.scm (make-iso9660-image): Pass "-volume_date
all_file_dates =1".
| Ludovic Courtès |
2019-04-14 | vm: Remove Xorriso "-padding" option....This is a followup to 66ec389580d4f1e4b81e1c72afe2749a547a0e7c.
This reverts 178be030c0e4fdeac5e1c968b5c99d84bb4691db, which is no
longer needed.
* gnu/build/vm.scm (make-iso9660-image): Remove "-padding" option.
| Ludovic Courtès |
2019-03-13 | Remove traces of "GuixSD"....* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
| Ludovic Courtès |
2018-12-19 | vm: Re-enable KVM on i386....The workaround is apparently no longer needed with Linux-libre 4.19.2
in the host.
* gnu/build/vm.scm (load-in-linux-vm): Remove special case for
"qemu-system-i386", thereby re-enabling KVM.
| Ludovic Courtès |
2018-12-06 | vm: Add padding in the ISO image....Fixes <https://bugs.gnu.org/33639>.
Thanks to Ricardo Wurmus and Thomas Schmitt for their suggestions!
* gnu/build/vm.scm (make-iso9660-image): Pass "-padding 10m" to
xorriso.
| Ludovic Courtès |
2018-11-06 | pack: Import (guix store database) only when '--localstatedir' is passed....This is another way to address <https://bugs.gnu.org/32184>, which was
previously addressed in commit 19c924af4f3726688ca155a905ebf1cb9acdfca2.
* gnu/build/install.scm (register-closure): Move to...
* gnu/build/vm.scm (register-closure): ... here. New procedure.
* guix/scripts/pack.scm (self-contained-tarball)[build]: Remove
now unneeded 'with-extensions' form and custom (guix config) module.
* tests/guix-pack.sh: Revert the strategy from
commit 19c924af4f3726688ca155a905ebf1cb9acdfca2.
* tests/pack.scm ("self-contained-tarball"): Likewise.
| Ludovic Courtès |