summaryrefslogtreecommitdiff
path: root/gnu/system/image.scm
Commit message (Collapse)AuthorAge
* system: image: Fix disk-image name.Mathieu Othacehe2020-06-26
| | | | | | | This is a follow-up of 5980ec8ada5ede54bde6558c7ab8bf492bc70f85. * gnu/system/image.scm (system-disk-image): When using the image name, convert it to string first.
* system: image: Use the image name as the disk-image derivation name.Mathieu Othacehe2020-06-26
| | | | | * gnu/system/image.scm (system-disk-image): Use the image name as disk-image derivation name, if defined. Otherwise use the generic "disk-image" name.
* image: hurd: Initialize root partition for the Hurd.Jan (janneke) Nieuwenhuizen2020-06-25
| | | | | | | | This is a follow-up to commit b904b59ce592c89dfb4675a8c06757afed6738a0. * gnu/system/image.scm (hurd-initialize-root-partition): Move to ... * gnu/system/images/hurd.scm (hurd-initialize-root-partition): ... here. (hurd-disk-image): Use it.
* system: image: Enable compression on ISO9660 images.Mathieu Othacehe2020-06-24
| | | | | | | ISO9660 image compression was temporarily disabled to speed-up tests of the new image API. Enable it again. * gnu/system/image.scm (iso9660-image)[compression]: Enable it.
* image: Move hurd image definition to a dedicated file.Mathieu Othacehe2020-06-24
| | | | | | | | | | | | This moves hurd-disk-image to a dedicated file. It also defines a default operating-system so that the image can be built standalone. * gnu/system/images/hurd.scm: New file, * gnu/local.mk (GNU_SYSTEM_MODULES): add it, * gnu/system/image.scm (root-offset, root-label): Export it, (hurd-disk-image): remove it as this is now defined in the new, Hurd dedicated file above, (find-image): adapt to avoid loop dependency.
* system: image: Remove fakeroot dependencies.Mathieu Othacehe2020-06-23
| | | | | | | | Since c29bb909d241e7215e574e93d9799e701cbc6ddb, fakeroot "sed" and "coreutils" dependencies are now explicit. * gnu/system/image.scm (system-disk-image): Remove "sed" and "coreutils" from inputs.
* system: image: Remove "image-root" when building raw disk-images.Mathieu Othacehe2020-06-22
| | | | | | | | | | | | | | | | | The "image-root" derivation output is used as a temporary directory that is passed to mke2fs and mkdosfs later on. By merging the creation of this directory and the production of partition images, we can get rid of the derivation. As mke2fs and mkdosfs are not able to override file permissions, call those commands with fakeroot. This way, all the image files will be owned by root, even if image generation is done in an unprivilegded context. * gnu/system/image.scm (system-disk-image): Merge "image-root" and "iso9660-image" derivations so that we spare an extra derivation. Also add "fakeroot" and its runtime dependencies to the inputs. * gnu/build/image.scm (make-ext-image, make-vfat-image): Make sure that mke2fs and mkdosfs are respectively called by fakeroot.
* system: image: Remove "image-root" derivation when building ISO.Mathieu Othacehe2020-06-22
| | | | | | | | | The "image-root" derivation output is used as a temporary directory that is passed to GNU Xorriso later on. By merging the creation of this directory and the production of an ISO image, we can get rid of the derivation. * gnu/system/image.scm (system-iso9660-image): Merge "image-root" and "iso9660-image" derivations so that we spare an extra derivation.
* system: image: Make sure target is set.Mathieu Othacehe2020-06-14
| | | | | * gnu/system/image.scm (system-image): Move "with-parameters" call so that it encapsulates "operating-system-bootcfg".
* system: image: Remove left-over.Mathieu Othacehe2020-06-14
| | | | | * gnu/system/image.scm: Remove a left-over since maybe-with-target procedure was removed.
* image: Remove 'maybe-with-target'.Mathieu Othacehe2020-06-13
| | | | | * gnu/system/image.scm (maybe-with-target): Remove, (system-image): adapt accordingly.
* image: Add 'target' support.Mathieu Othacehe2020-06-13
| | | | | | | | | * gnu/image.scm (<image>)[target]: New field, (image-target): new public method. * gnu/system/image.scm (hurd-disk-image): Set "i586-pc-gnu" as image 'target' field, (maybe-with-target): new procedure, (system-image): honor image 'target' field using the above procedure.
* image: Make 'find-image' non-monadic.Jan (janneke) Nieuwenhuizen2020-06-13
| | | | | | | | * gnu/system/image.scm (find-image): Make non-monadic. Add 'target' parameter. * gnu/tests/install.scm (run-install): Update caller, passing (%current-target-system). * guix/scripts/system.scm (perform-action): Likewise.
* system: image: Do not produce an HFS tree when building an ISO.Mathieu Othacehe2020-06-12
| | | | | | Use "mbr_only" mode to make sure that no HFS+ tree are generated. * gnu/system/image.scm (system-image): Set MKRESCUE_SED_MODE to "mbr_only".
* hurd-boot: Further cleanup of "rc".Jan (janneke) Nieuwenhuizen2020-06-08
| | | | | | | * gnu/packages/hurd.scm (hurd-rc-script): Move implementation to ... * gnu/build/hurd-boot.scm (boot-hurd-system): ...here, new file. * gnu/build/linux-boot.scm (make-hurd-device-nodes): Move there likewise. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* image: Add Hurd support.Mathieu Othacehe2020-06-08
| | | | | | | * gnu/system/image.scm (hurd-disk-image): New exported variable, (root-offset, root-label): new variables, (esp-partition, root-partition): adapt accordingly, (find-image): add Hurd support.
* image: Do not use VM to create disk-images.Mathieu Othacehe2020-05-29
| | | | | | | | | | | | | | | | Now that installing Grub on raw disk-images is supported, we do not need to rely on (gnu system vm) module. * gnu/system/image.scm (make-system-image): Rename to ... (system-image): ... this, and remove the compatibility wrapper. (find-image): Turn to a monadic procedure. This will become useful when introducing Hurd support, to be able to detect the target system. * gnu/ci.scm (qemu-jobs): Use lower-object now that system-image returns a file-like object. * gnu/tests/install.scm (run-install): Ditto. * guix/scripts/system.scm (system-derivation-for-action): Add a 'base-image' argument, (perform-action): adapt accordingly.
* image: Add a post-MBR gap to the default image.Mathieu Othacehe2020-05-29
| | | | | | | | | | The generic 'efi-disk-image' needs to be bootable on systems without EFI. To do that, GRUB is installed in the post-MBR gap. Make sure that the first partition starts with an offset, to make this gap large enough for GRUB. * gnu/system/image.scm (root-offset, root-label): New variables, (esp-partition): use 'root-offset' as the partition offset, (root-partition): use 'root-label' as the partition label.
* system: image: Fix image-with-os.Mathieu Othacehe2020-05-29
| | | | | * gnu/system/image.scm (image-with-os): Do not reorder partitions, as we want them to be created according to definition order.
* image: Use grub-efi to install the EFI bootloader.Mathieu Othacehe2020-05-29
| | | | | | | * gnu/build/image.scm (initialize-efi-partition): Rename bootloader-package argument to grub-efi. * gnu/system/image.scm (system-disk-image): Adapt accordingly to pass grub-efi package.
* system: image: Correct genimage configuration file indentation.Mathieu Othacehe2020-05-29
| | | | | * gnu/system/image.scm (system-disk-image): Fix genimage configuration file indentation.
* image: Add bootloader installation support.Mathieu Othacehe2020-05-29
| | | | | | | * gnu/build/image.scm (initialize-root-partition): Add bootloader-package and bootloader-installer arguments. Run the bootloader-installer if defined. * gnu/system/image.scm (system-disk-image): Adapt the partition initializer call accordingly.
* bootloader: Add 'disk-image-installer'.Mathieu Othacehe2020-05-29
| | | | | | | | | | | | | * gnu/bootloader.scm (<bootloader>)[disk-image-installer]: New field, (bootloader-disk-image-installer): export it. * gnu/bootloader/grub.scm (install-grub-disk-image): New procedure ... (grub-bootloader): ... used as "disk-image-installer" here. (grub-efi-bootloader): set "disk-image-installer" to #f. * gnu/system/image.scm (root-partition?, find-root-partition): Move to "Helpers" section. (root-partition-index): New procedure. (system-disk-image): Honor disk-image-installer, and use it to install the bootloader directly on the disk-image, if supported.
* image: Add partition file-system options support.Mathieu Othacehe2020-05-26
| | | | | | | | * gnu/image.scm (<partition>)[file-system-options]: New field, (partition-file-system-options): new exported procedure. * gnu/system/image.scm (partition->gexp): Adapt accordingly. * gnu/build/image.scm (sexp->partition): Also adapt accordingly, (make-ext-image): and pass file-system options to mke2fs.
* image: Set offset default to zero.Mathieu Othacehe2020-05-26
| | | | | * gnu/image.scm (<partition>)[offset]: Set to zero by default. * gnu/system/image.scm (system-disk-image): Adapt accordingly.
* system: image: Fix disk-image cross-compilation.Mathieu Othacehe2020-05-26
| | | | | | * gnu/system/image.scm (system-disk-image): Use the native version of the helper packages (e2fsprogs, dosfstools, mtools, genimage, coreutils and findutils).
* image: Add partition offset support.Mathieu Othacehe2020-05-26
| | | | | | * gnu/image.scm (partition-offset): New procedure, (<partition>)[offset]: new field. * gnu/system/image.scm (system-disk-image): Apply the partition offset.
* image: Add a new API.Mathieu Othacehe2020-05-05
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.