diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-10-09 11:40:35 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-11-13 23:58:53 +0000 |
commit | d30f0248583e523eddb716aa931489b11a44e3f6 (patch) | |
tree | 39417941eb3d7c5366a0768c4692c83547a2af2a /img | |
parent | 7266451ab6136d75142e6e45e2bc8c6843bbc994 (diff) | |
download | spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.gz spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.bz2 spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.lz spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.xz spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.zst spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.zip |
release: rename from "img"
I think this is more descriptive, and "img" is a name better used for VM images. Signed-off-by: Alyssa Ross <hi@alyssa.is> Message-Id: <20221009114036.463071-6-hi@alyssa.is>
Diffstat (limited to 'img')
-rw-r--r-- | img/combined/default.nix | 116 | ||||
-rw-r--r-- | img/combined/eosimages.nix | 18 | ||||
-rw-r--r-- | img/combined/grub.cfg.in | 24 | ||||
-rw-r--r-- | img/combined/run-vm.nix | 25 | ||||
-rw-r--r-- | img/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch | 37 | ||||
-rw-r--r-- | img/installer/app/0002-gpt-disable-partition-table-CRC-check.patch | 36 | ||||
-rw-r--r-- | img/installer/app/0003-install-remove-Endless-OS-ad.patch | 99 | ||||
-rw-r--r-- | img/installer/app/0004-finished-don-t-run-eos-diagnostics.patch | 44 | ||||
-rw-r--r-- | img/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch | 32 | ||||
-rw-r--r-- | img/installer/app/default.nix | 41 | ||||
-rw-r--r-- | img/installer/app/vendor-customer-support.ini | 5 | ||||
-rw-r--r-- | img/installer/configuration.nix | 57 | ||||
-rw-r--r-- | img/installer/default.nix | 25 | ||||
-rw-r--r-- | img/installer/run-vm.nix | 46 | ||||
-rw-r--r-- | img/installer/seat.rules | 9 | ||||
-rw-r--r-- | img/live/Makefile | 72 | ||||
-rw-r--r-- | img/live/default.nix | 55 | ||||
-rw-r--r-- | img/live/shell.nix | 15 |
18 files changed, 0 insertions, 756 deletions
diff --git a/img/combined/default.nix b/img/combined/default.nix deleted file mode 100644 index 2865376..0000000 --- a/img/combined/default.nix +++ /dev/null @@ -1,116 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> -# SPDX-FileCopyrightText: 2021 Yureka <yuka@yuka.dev> -# SPDX-FileCopyrightText: 2022 Unikie - -{ config ? import ../../nix/eval-config.nix {} }: with config.pkgs; - -let - inherit (builtins) storeDir; - inherit (pkgs.lib) removePrefix toUpper; - - eosimages = import ./eosimages.nix { inherit config; }; - - installerPartUuid = "6e23b026-9f1e-479d-8a58-a0cda382e1ce"; - installer = import ../installer { - inherit config; - - extraConfig = { - boot.initrd.availableKernelModules = [ "squashfs" ]; - - fileSystems.${storeDir} = { - device = "/dev/disk/by-partuuid/${installerPartUuid}"; - }; - }; - }; - - rootfs = runCommand "installer.img" { - nativeBuildInputs = [ squashfs-tools-ng ]; - } '' - sed 's,^${storeDir}/,,' ${writeReferencesToFile installer.store} | - tar -C ${storeDir} -c --verbatim-files-from -T - \ - --owner 0 --group 0 | tar2sqfs $out - ''; - - efiArch = stdenv.hostPlatform.efiArch; - - grub = grub2_efi; - - grubCfg = substituteAll { - src = ./grub.cfg.in; - - nativeBuildInputs = [ mtools ]; - - preInstall = '' - export spectrumKernelParams="$( - mcopy -i ${eosimages.image}@@1M ::/loader/entries/spectrum.conf - | - grep '^options ' | - sed 's/^options //')" - ''; - - linux = removePrefix storeDir installer.kernel; - initrd = removePrefix storeDir installer.initramfs; - inherit (installer) kernelParams; - }; - - esp = runCommand "esp.img" { - nativeBuildInputs = [ grub libfaketime dosfstools mtools ]; - grubTargetDir = "${grub}/lib/grub/${grub.grubTarget}"; - # Definition copied from util/grub-install-common.c. - # Last checked: GRUB 2.06 - pkglib_DATA = [ - "efiemu32.o" "efiemu64.o" "moddep.lst" "command.lst" "fs.lst" "partmap.lst" - "parttool.lst" "video.lst" "crypto.lst" "terminal.lst" "modinfo.sh" - ]; - passthru = { inherit grubCfg; }; - } '' - truncate -s 15M $out - faketime "1970-01-01 00:00:00" mkfs.vfat -i 0x2178694e -n EFI $out - mmd -i $out ::/EFI ::/EFI/BOOT \ - ::/grub ::/grub/${grub.grubTarget} ::/grub/fonts - - mcopy -i $out ${grubCfg} ::/grub/grub.cfg - mcopy -i $out $grubTargetDir/*.mod ::/grub/${grub.grubTarget} - for file in $pkglib_DATA; do - path="$grubTargetDir/$file" - ! [ -e "$path" ] || mcopy -i $out "$path" ::/grub/${grub.grubTarget} - done - mcopy -i $out ${grub}/share/grub/unicode.pf2 ::/grub/fonts - - grub-mkimage -o grub${efiArch}.efi -p "(hd0,gpt1)/grub" -O ${grub.grubTarget} part_gpt fat - mcopy -i $out grub${efiArch}.efi ::/EFI/BOOT/BOOT${toUpper efiArch}.EFI - - fsck.vfat -n $out - ''; -in - -runCommand "spectrum-installer" { - nativeBuildInputs = [ grub jq util-linux systemdMinimal ]; - passthru = { inherit esp installer eosimages; }; -} '' - blockSize() { - wc -c "$1" | awk '{printf "%d\n", ($1 + 511) / 512}' - } - - fillPartition() { - read start size < <(sfdisk -J "$1" | jq -r --argjson index "$2" \ - '.partitiontable.partitions[$index] | "\(.start) \(.size)"') - dd if="$3" of="$1" seek="$start" count="$size" conv=notrunc - } - - espSize="$(blockSize ${esp})" - installerSize="$(blockSize ${rootfs})" - eosimagesSize="$(blockSize ${eosimages})" - - truncate -s $(((3 * 2048 + $espSize + $installerSize + $eosimagesSize) * 512)) $out - sfdisk $out <<EOF - label: gpt - size=$espSize, type=U - size=$installerSize, type=L, uuid=${installerPartUuid} - size=$eosimagesSize, type=56a3bbc3-aefa-43d9-a64d-7b3fd59bbc4e - EOF - - fillPartition $out 0 ${esp} - fillPartition $out 1 ${rootfs} - fillPartition $out 2 ${eosimages} -'' diff --git a/img/combined/eosimages.nix b/img/combined/eosimages.nix deleted file mode 100644 index 9f2ab10..0000000 --- a/img/combined/eosimages.nix +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -{ config ? import ../../nix/eval-config.nix {} }: with config.pkgs; - -runCommand "eosimages.img" { - nativeBuildInputs = [ e2fsprogs tar2ext4 ]; - imageName = "Spectrum-0.0-x86_64-generic.0.Live.img"; - image = import ../live { inherit config; }; -} '' - mkdir dir - cd dir - ln -s $image Spectrum-0.0-x86_64-generic.0.Live.img - sha256sum $imageName > $imageName.sha256 - tar -chf $NIX_BUILD_TOP/eosimages.tar * - tar2ext4 -i $NIX_BUILD_TOP/eosimages.tar -o $out - e2label $out eosimages -'' diff --git a/img/combined/grub.cfg.in b/img/combined/grub.cfg.in deleted file mode 100644 index d24391d..0000000 --- a/img/combined/grub.cfg.in +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: EUPL-1.2+ -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -insmod efi_gop -insmod efi_uga - -insmod font -loadfont /grub/fonts/unicode.pf2 - -insmod gfxterm -set gfxpayload=keep -terminal_output gfxterm - -menuentry "Try Spectrum" { - loopback live (hd0,gpt3)/Spectrum-0.0-x86_64-generic.0.Live.img - linux (live,gpt1)/spectrum/linux @spectrumKernelParams@ - initrd (live,gpt1)/spectrum/initrd -} - -menuentry "Install Spectrum" { - set root=(hd0,gpt2) - linux @linux@ @kernelParams@ - initrd @initrd@ -} diff --git a/img/combined/run-vm.nix b/img/combined/run-vm.nix deleted file mode 100644 index 047bc3f..0000000 --- a/img/combined/run-vm.nix +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> - -{ config ? import ../../nix/eval-config.nix {} }: with config.pkgs; - -let - image = import ./. { inherit config; }; -in - -writeShellScript "run-spectrum-installer-vm.sh" '' - export PATH=${lib.makeBinPath [ coreutils qemu_kvm ]} - img="$(mktemp spectrum-installer-target.XXXXXXXXXX.img)" - truncate -s 10G "$img" - exec 3<>"$img" - rm -f "$img" - exec qemu-kvm -cpu host -m 4G -machine q35,kernel-irqchip=split -snapshot \ - -display gtk,gl=on \ - -device intel-iommu,intremap=on \ - -device virtio-vga-gl \ - -device qemu-xhci \ - -device usb-storage,drive=drive1,removable=true \ - -drive file=${qemu_kvm}/share/qemu/edk2-${stdenv.hostPlatform.qemuArch}-code.fd,format=raw,if=pflash,readonly=true \ - -drive file=${image},id=drive1,format=raw,if=none,readonly=true \ - -drive file=/proc/self/fd/3,format=raw,if=virtio -'' diff --git a/img/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch b/img/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch deleted file mode 100644 index 2e37268..0000000 --- a/img/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2738d4316abe780e50a4f6241b9845fe200edfdd Mon Sep 17 00:00:00 2001 -SPDX-License-Identifier: GPL-2.0-or-later -SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -From: Alyssa Ross <hi@alyssa.is> -Date: Thu, 9 Dec 2021 21:10:11 +0000 -Subject: [PATCH 1/5] gpt: disable gpt partition attribute 55 check - -Endless OS uses flag 55 to mean a partition should be auto-grown, and -to identify Endless OS partitions. Both of these meanings of flag 55 -are specific to Endless OS though, so it doesn't make sense for -installing other operating systems. ---- - gnome-image-installer/util/gpt.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/gnome-image-installer/util/gpt.c b/gnome-image-installer/util/gpt.c -index c88ba9b9..7a33210f 100644 ---- a/gnome-image-installer/util/gpt.c -+++ b/gnome-image-installer/util/gpt.c -@@ -241,12 +241,14 @@ int is_eos_gpt_valid(struct ptable *pt, uint64_t *size) - || memcmp(&pt->partitions[i].type_guid, GPT_GUID_LINUX_ROOTFS2, 16)==0 - || memcmp(&pt->partitions[i].type_guid, GPT_GUID_LINUX_ROOTFS3, 16)==0 - || memcmp(&pt->partitions[i].type_guid, GPT_GUID_LINUX_ROOTFS4, 16)==0) { -+#if 0 - uint64_t flags = 0; - memcpy(&flags, pt->partitions[i].attributes, 8); - if(!is_nth_flag_set(flags, 55)) { - // 55th flag must be 1 for EOS images - continue ; - } -+#endif - has_root=1; - break ; - } --- -2.33.0 - diff --git a/img/installer/app/0002-gpt-disable-partition-table-CRC-check.patch b/img/installer/app/0002-gpt-disable-partition-table-CRC-check.patch deleted file mode 100644 index 2075067..0000000 --- a/img/installer/app/0002-gpt-disable-partition-table-CRC-check.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2dac5859a943b499db7cbb078bde827c0b3cc7df Mon Sep 17 00:00:00 2001 -SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -SPDX-License-Identifier: GPL-2.0-or-later -From: Alyssa Ross <hi@alyssa.is> -Date: Thu, 9 Dec 2021 21:09:33 +0000 -Subject: [PATCH 2/5] gpt: disable partition table CRC check - -This is faulty, I think because eos-installer only looks at the first -three entries in the partition table. ---- - gnome-image-installer/util/gpt.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/gnome-image-installer/util/gpt.c b/gnome-image-installer/util/gpt.c -index 7a33210f..7ba99ebb 100644 ---- a/gnome-image-installer/util/gpt.c -+++ b/gnome-image-installer/util/gpt.c -@@ -213,6 +213,7 @@ int is_eos_gpt_valid(struct ptable *pt, uint64_t *size) - g_warning("invalid header crc"); - return 0; - } -+#if 0 - // crc32 of partition table - int n = pt->header.ptable_count * pt->header.ptable_partition_size; - uint8_t *buffer = (uint8_t*)malloc(n); -@@ -226,6 +227,7 @@ int is_eos_gpt_valid(struct ptable *pt, uint64_t *size) - return 0; - } - free(buffer); -+#endif - - // The first partition must be an EFI System Partition - if(memcmp(&pt->partitions[0].type_guid, GPT_GUID_EFI, 16)!=0) { --- -2.33.0 - diff --git a/img/installer/app/0003-install-remove-Endless-OS-ad.patch b/img/installer/app/0003-install-remove-Endless-OS-ad.patch deleted file mode 100644 index 33abd60..0000000 --- a/img/installer/app/0003-install-remove-Endless-OS-ad.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 7072ac1bfc3c8d77db122b6ba3d943bc2c477eb5 Mon Sep 17 00:00:00 2001 -SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -SPDX-License-Identifier: GPL-2.0-or-later -From: Alyssa Ross <hi@alyssa.is> -Date: Thu, 9 Dec 2021 21:06:16 +0000 -Subject: [PATCH 3/5] install: remove Endless OS ad - ---- - .../pages/install/gis-install-page.ui | 74 ------------------- - 1 file changed, 74 deletions(-) - -diff --git a/gnome-image-installer/pages/install/gis-install-page.ui b/gnome-image-installer/pages/install/gis-install-page.ui -index d3b7769c..2fcc31b9 100644 ---- a/gnome-image-installer/pages/install/gis-install-page.ui -+++ b/gnome-image-installer/pages/install/gis-install-page.ui -@@ -45,80 +45,6 @@ - <property name="position">1</property> - </packing> - </child> -- <child> -- <object class="GtkOverlay" id="graphics_overlay"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <child> -- <object class="GtkImage" id="infographics"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="xpad">12</property> -- <property name="ypad">12</property> -- <property name="resource">/org/gnome/initial-setup/software_screens.png</property> -- </object> -- <packing> -- <property name="index">-1</property> -- </packing> -- </child> -- <child type="overlay"> -- <object class="GtkBox" id="infolabels"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="halign">start</property> -- <property name="margin_left">48</property> -- <property name="margin_top">48</property> -- <property name="orientation">vertical</property> -- <child> -- <object class="GtkLabel" id="label1"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="halign">start</property> -- <property name="label" translatable="yes">Endless OS</property> -- <property name="xalign">0</property> -- <attributes> -- <attribute name="weight" value="bold"/> -- <attribute name="scale" value="2"/> -- <attribute name="foreground" value="#ffffffffffff"/> -- </attributes> -- </object> -- <packing> -- <property name="expand">False</property> -- <property name="fill">True</property> -- <property name="position">0</property> -- </packing> -- </child> -- <child> -- <object class="GtkLabel" id="label2"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="halign">start</property> -- <property name="margin_top">16</property> -- <property name="label" translatable="yes">Fast, easy to use and powerful – with or without internet. -- --Endless OS is preloaded with over 100 apps, making it useful from the moment you turn it on.</property> -- <property name="wrap">True</property> -- <property name="max_width_chars">26</property> -- <property name="xalign">0</property> -- <attributes> -- <attribute name="foreground" value="#ffffffffffff"/> -- </attributes> -- </object> -- <packing> -- <property name="expand">False</property> -- <property name="fill">True</property> -- <property name="position">1</property> -- </packing> -- </child> -- </object> -- </child> -- </object> -- <packing> -- <property name="expand">False</property> -- <property name="fill">True</property> -- <property name="position">2</property> -- </packing> -- </child> - </object> - <packing> - <property name="expand">True</property> --- -2.33.0 - diff --git a/img/installer/app/0004-finished-don-t-run-eos-diagnostics.patch b/img/installer/app/0004-finished-don-t-run-eos-diagnostics.patch deleted file mode 100644 index a4827ba..0000000 --- a/img/installer/app/0004-finished-don-t-run-eos-diagnostics.patch +++ /dev/null @@ -1,44 +0,0 @@ -From edb82b623c4238fc18b7a317f05562a92519419f Mon Sep 17 00:00:00 2001 -SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -SPDX-License-Identifier: GPL-2.0-or-later -From: Alyssa Ross <hi@alyssa.is> -Date: Thu, 9 Dec 2021 21:06:36 +0000 -Subject: [PATCH 4/5] finished: don't run eos-diagnostics - -This has to be installed separately from eos-installer, and we don't -currently do that for the Spectrum installer. If there was an error, -eos-installer would try to run it, and then display an additional -error message about not being able to find it on the error screen. ---- - .../pages/finished/gis-finished-page.c | 15 --------------- - 1 file changed, 15 deletions(-) - -diff --git a/gnome-image-installer/pages/finished/gis-finished-page.c b/gnome-image-installer/pages/finished/gis-finished-page.c -index b546fcbe..9f75d2ef 100644 ---- a/gnome-image-installer/pages/finished/gis-finished-page.c -+++ b/gnome-image-installer/pages/finished/gis-finished-page.c -@@ -300,21 +300,6 @@ gis_finished_page_shown (GisPage *page) - gtk_widget_hide (priv->success_box); - gis_assistant_locale_changed (assistant); - -- if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) -- { -- /* Running eos-diagnostics can be slow enough that we can't do it -- * synchronously on the UI thread. -- */ -- GFile *image_dir = G_FILE (gis_store_get_object (GIS_STORE_IMAGE_DIR)); -- /* See implementation of gis_write_diagnostics_async for rationale. */ -- const gchar *home_dir = priv->gedit != NULL ? g_get_home_dir () : NULL; -- -- g_application_hold (G_APPLICATION (page->driver)); -- gis_write_diagnostics_async (NULL, image_dir, home_dir, -- NULL, write_diagnostics_cb, -- g_object_ref (self)); -- } -- - if (gis_store_is_unattended()) - { - g_timeout_add_seconds (1, (GSourceFunc)toggle_leds, page); --- -2.33.0 - diff --git a/img/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch b/img/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch deleted file mode 100644 index 590635d..0000000 --- a/img/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9b163a05e237ff27688093252da8440592df5898 Mon Sep 17 00:00:00 2001 -SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> -SPDX-License-Identifier: GPL-2.0-or-later -From: Alyssa Ross <hi@alyssa.is> -Date: Thu, 9 Dec 2021 21:07:38 +0000 -Subject: [PATCH 5/5] finished: promote #spectrum, not the Endless forum - ---- - gnome-image-installer/pages/finished/gis-finished-page.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/gnome-image-installer/pages/finished/gis-finished-page.c b/gnome-image-installer/pages/finished/gis-finished-page.c -index 9f75d2ef..f5af32f1 100644 ---- a/gnome-image-installer/pages/finished/gis-finished-page.c -+++ b/gnome-image-installer/pages/finished/gis-finished-page.c -@@ -481,11 +481,9 @@ gis_finished_page_locale_changed (GisPage *page) - } - - support_email = get_customer_support_email (); -- support_email_markup = g_strdup_printf ("<a href=\"mailto:%1$s\">%1$s</a>", -- support_email); - /* Translators: the %s is the customer support email address */ -- support_markup = g_strdup_printf (_("Please contact %s or join the <a href=\"https://community.endlessos.com/\">Endless Community</a> to troubleshoot."), -- support_email_markup); -+ support_markup = g_strdup_printf (_("Please contact %s or join #spectrum on irc.libera.chat to troubleshoot."), -+ support_email); - gtk_label_set_markup (priv->support_label, support_markup); - } - --- -2.33.0 - diff --git a/img/installer/app/default.nix b/img/installer/app/default.nix deleted file mode 100644 index 26f0b81..0000000 --- a/img/installer/app/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> - -{ lib, eos-installer, fetchurl, fetchpatch }: - -let - logo = fetchurl { - url = "https://spectrum-os.org/git/www/plain/logo/logo140.png?id=5ac2d787b12e05a9ea91e94ca9373ced55d7371a"; - sha256 = "008dkzapyrkbva3ziyb2fa1annjwfk28q9kwj1bgblgrq6sxllxk"; - }; -in - -eos-installer.overrideAttrs ({ patches ? [], postPatch ? "", ... }: { - patches = patches ++ [ - (fetchpatch { - name = "finished-use-poweroff-from-PATH.patch"; - url = "https://github.com/endlessm/eos-installer/commit/a537fde1f2bc6bcbcd86a6e926aeeba824583e19.patch"; - sha256 = "0fl7254v78f9amzw774daap9rf46q6jw3pn7h4drj1jfqayk558j"; - }) - (fetchpatch { - name = "diskimage-find-names-for-uncompressed-image-files.patch"; - url = "https://github.com/endlessm/eos-installer/commit/cb6f176ba0340a571efb8cb2f607d5d592b94c98.patch"; - sha256 = "1q5chzln0l81fwj279ak1pixga2wiqj6v98qf67lv69y16176pzm"; - }) - (fetchpatch { - name = "Add-more-log-messages-for-invalid-disk-images.patch"; - url = "https://github.com/endlessm/eos-installer/commit/9a3a0c219e4bb1190ac995d0bbaa20816dd0618d.patch"; - sha256 = "0x22dlh1mqvlflr01iaqsb7b9vkcz06sbnfhcr5c6f3x2vzbp4jx"; - }) - ./0001-gpt-disable-gpt-partition-attribute-55-check.patch - ./0002-gpt-disable-partition-table-CRC-check.patch - ./0003-install-remove-Endless-OS-ad.patch - ./0004-finished-don-t-run-eos-diagnostics.patch - ./0005-finished-promote-spectrum-not-the-Endless-forum.patch - ]; - - postPatch = postPatch + '' - find . -type f -print0 | xargs -0 sed -i 's/Endless OS/Spectrum/g' - cp ${logo} gnome-image-installer/pages/finished/endless_logo.png - ''; -}) diff --git a/img/installer/app/vendor-customer-support.ini b/img/installer/app/vendor-customer-support.ini deleted file mode 100644 index 4c4e650..0000000 --- a/img/installer/app/vendor-customer-support.ini +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: CC0-1.0 -# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> - -[Customer Support] -Email = discuss@spectrum-os.org diff --git a/img/installer/configuration.nix b/img/installer/configuration.nix deleted file mode 100644 index 50d154f..0000000 --- a/img/installer/configuration.nix +++ /dev/null @@ -1,57 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -{ lib, modulesPath, pkgs, ... }: - -let - inherit (builtins) readFile; -in - -{ - imports = [ (modulesPath + "/profiles/all-hardware.nix") ]; - - boot.consoleLogLevel = 2; - boot.kernelParams = [ "udev.log_priority=5" ]; - boot.initrd.verbose = false; - - boot.plymouth.enable = true; - boot.plymouth.logo = pkgs.callPackage ( - { lib, runCommand, fetchurl, inkscape }: - runCommand "spectrum-logo.png" { - nativeBuildInputs = [ inkscape ]; - svg = fetchurl { - url = "https://spectrum-os.org/git/www/plain/logo/logo_mesh.svg?id=5ac2d787b12e05a9ea91e94ca9373ced55d7371a"; - sha256 = "1k5025nc5mxdls7bw7wk1734inadvibqxvg8b8yg6arr3y9yy46k"; - }; - } '' - inkscape -w 48 -h 48 -o "$out" "$svg" - '' - ) {}; - - fileSystems."/" = { fsType = "tmpfs"; }; - - services.cage.enable = true; - services.cage.program = - "${pkgs.callPackage ./app {}}/bin/gnome-image-installer"; - users.users.demo = { group = "demo"; isSystemUser = true; }; - users.groups.demo = {}; - security.polkit.extraConfig = readFile ./seat.rules; - - services.udisks2.enable = true; - - documentation.enable = false; - networking.firewall.enable = false; - networking.resolvconf.enable = false; - nix.enable = false; - services.timesyncd.enable = false; - - boot.loader.systemd-boot.enable = true; - - environment.systemPackages = with pkgs; [ gnome.adwaita-icon-theme ]; - - systemd.tmpfiles.rules = [ - "L+ /var/lib/eos-image-defaults/vendor-customer-support.ini - - - - ${app/vendor-customer-support.ini}" - ]; - - system.stateVersion = lib.trivial.release; -} diff --git a/img/installer/default.nix b/img/installer/default.nix deleted file mode 100644 index 0c57704..0000000 --- a/img/installer/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -{ config ? import ../../nix/eval-config.nix {}, extraConfig ? {} }: -with config.pkgs; - -let - inherit (builtins) head match storeDir; - inherit (nixos { - imports = [ ./configuration.nix extraConfig ]; - }) config; -in - -{ - kernel = "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}"; - - initramfs = "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}"; - - kernelParams = toString ([ - "init=${config.system.build.toplevel}/init" - ] ++ config.boot.kernelParams); - - store = writeReferencesToFile config.system.build.toplevel; -} - diff --git a/img/installer/run-vm.nix b/img/installer/run-vm.nix deleted file mode 100644 index 4efbf1a..0000000 --- a/img/installer/run-vm.nix +++ /dev/null @@ -1,46 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -{ config ? import ../../nix/eval-config.nix {} }: - -let - inherit (builtins) storeDir; - inherit (config) pkgs; - inherit (pkgs) coreutils qemu_kvm stdenv writeShellScript; - inherit (pkgs.lib) makeBinPath escapeShellArg; - - eosimages = import ../combined/eosimages.nix { inherit config; }; - - installer = import ./. { - inherit config; - - extraConfig = { - boot.initrd.availableKernelModules = [ "9p" "9pnet_virtio" ]; - - fileSystems.${storeDir} = { - fsType = "9p"; - device = "store"; - # This can be removed when running Linux ≥5.15. - options = [ "msize=131072" ]; - }; - }; - }; -in - -writeShellScript "run-spectrum-installer-vm.sh" '' - export PATH=${makeBinPath [ coreutils qemu_kvm ]} - img="$(mktemp spectrum-installer-target.XXXXXXXXXX.img)" - truncate -s 10G "$img" - exec 3<>"$img" - rm -f "$img" - exec qemu-kvm -cpu host -m 4G -machine q35 -snapshot \ - -display gtk,gl=on \ - -device virtio-vga-gl \ - -virtfs local,mount_tag=store,path=/nix/store,security_model=none,readonly=true \ - -drive file=${qemu_kvm}/share/qemu/edk2-${stdenv.hostPlatform.qemuArch}-code.fd,format=raw,if=pflash,readonly=true \ - -drive file=${eosimages},format=raw,if=virtio,readonly=true \ - -drive file=/proc/self/fd/3,format=raw,if=virtio \ - -kernel ${installer.kernel} \ - -initrd ${installer.initramfs} \ - -append ${escapeShellArg installer.kernelParams} -'' diff --git a/img/installer/seat.rules b/img/installer/seat.rules deleted file mode 100644 index 79ff400..0000000 --- a/img/installer/seat.rules +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-License-Identifier: EUPL-1.2+ -// SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is> - -polkit.addRule(function (action, subject) { - // The user of the graphical session should be able to do anything. - if (subject.seat) { - return polkit.Result.YES; - } -}); diff --git a/img/live/Makefile b/img/live/Makefile deleted file mode 100644 index 773d597..0000000 --- a/img/live/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -# SPDX-License-Identifier: EUPL-1.2+ -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -# qemu-kvm is non-standard, but is present in at least Fedora and -# Nixpkgs. If you don't have qemu-kvm, you'll need to set e.g. -# QEMU_KVM = qemu-system-x86_64 -enable-kvm. -QEMU_KVM = qemu-kvm - -MCOPY = mcopy -MKFS_FAT = mkfs.fat -MMD = mmd -OBJCOPY = objcopy -SCRIPTS = ../../scripts -TRUNCATE = truncate -VERITYSETUP = veritysetup - -build/live.img: $(SCRIPTS)/format-uuid.sh $(SCRIPTS)/make-gpt.sh build/boot.fat build/rootfs.verity.superblock build/rootfs.verity.roothash $(ROOT_FS) $(EXT_FS) - $(SCRIPTS)/make-gpt.sh $@.tmp \ - build/boot.fat:c12a7328-f81f-11d2-ba4b-00a0c93ec93b \ - build/rootfs.verity.superblock:2c7357ed-ebd2-46d9-aec1-23d437ec2bf5:$$($(SCRIPTS)/format-uuid.sh "$$(dd if=build/rootfs.verity.roothash bs=32 skip=1 count=1 status=none)") \ - $(ROOT_FS):4f68bce3-e8cd-4db1-96e7-fbcaf984b709:$$($(SCRIPTS)/format-uuid.sh "$$(head -c 32 build/rootfs.verity.roothash)") \ - $(EXT_FS):9293e1ff-cee4-4658-88be-898ec863944f - mv $@.tmp $@ - -build/spectrum.conf: build/rootfs.verity.roothash - printf "title Spectrum\n" > $@ - printf "linux /spectrum/linux\n" >> $@ - printf "initrd /spectrum/initrd\n" >> $@ - printf "options ro console=tty console=ttyS0 intel_iommu=on roothash=" >> $@ - cat build/rootfs.verity.roothash >> $@ - -build/boot.fat: $(KERNEL) $(INITRAMFS) $(SYSTEMD_BOOT_EFI) build/spectrum.conf - $(TRUNCATE) -s 440401920 $@ - $(MKFS_FAT) $@ - $(MMD) -i $@ ::/EFI ::/EFI/BOOT ::/loader ::/loader/entries ::/spectrum - $(MCOPY) -i $@ build/spectrum.conf ::/loader/entries - $(MCOPY) -i $@ $(KERNEL) ::/spectrum/linux - $(MCOPY) -i $@ $(INITRAMFS) ::/spectrum/initrd - $(MCOPY) -i $@ $(SYSTEMD_BOOT_EFI) ::/EFI/BOOT/$(EFINAME) - -# veritysetup format produces two files, but Make only (portably) -# supports one output per rule, so we combine the two outputs then -# define two more rules to separate them again. -build/rootfs.verity: $(ROOT_FS) - mkdir -p build - $(VERITYSETUP) format $(ROOT_FS) build/rootfs.verity.superblock.tmp \ - | awk -F ':[[:blank:]]*' '$$1 == "Root hash" {print $$2; exit}' \ - > build/rootfs.verity.roothash.tmp - cat build/rootfs.verity.roothash.tmp build/rootfs.verity.superblock.tmp \ - > $@ - rm build/rootfs.verity.roothash.tmp build/rootfs.verity.superblock.tmp -build/rootfs.verity.roothash: build/rootfs.verity - head -n 1 build/rootfs.verity > $@ -build/rootfs.verity.superblock: build/rootfs.verity - tail -n +2 build/rootfs.verity > $@ - -clean: - rm -rf build -.PHONY: clean - -run: build/live.img - $(QEMU_KVM) -m 4G \ - -cpu host \ - -machine q35,kernel-irqchip=split \ - -display gtk,gl=on \ - -device intel-iommu,intremap=on \ - -device virtio-vga-gl \ - -device qemu-xhci \ - -device usb-storage,drive=drive1,removable=true \ - -drive file=$(OVMF_CODE),format=raw,if=pflash,readonly=true \ - -drive file=build/live.img,id=drive1,format=raw,if=none,readonly=true -.PHONY: run diff --git a/img/live/default.nix b/img/live/default.nix deleted file mode 100644 index 4301ccc..0000000 --- a/img/live/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> -# SPDX-FileCopyrightText: 2022 Unikie - -{ config ? import ../../nix/eval-config.nix {} }: config.pkgs.callPackage ( - -{ stdenvNoCC, cryptsetup, dosfstools, jq, mtools, util-linux, stdenv -, systemd }: - -let - inherit (config) pkgs; - inherit (pkgs.lib) cleanSource cleanSourceWith hasSuffix toUpper; - - extfs = pkgs.pkgsStatic.callPackage ../../host/initramfs/extfs.nix { - inherit config; - }; - rootfs = import ../../host/rootfs { inherit config; }; - scripts = import ../../scripts { inherit config; }; - initramfs = import ../../host/initramfs { inherit config rootfs; }; - efiArch = stdenv.hostPlatform.efiArch; -in - -stdenvNoCC.mkDerivation { - name = "spectrum-live.img"; - - src = cleanSourceWith { - filter = name: _type: - name != "${toString ./.}/build" && - !(hasSuffix ".nix" name); - src = cleanSource ./.; - }; - - nativeBuildInputs = [ cryptsetup dosfstools jq mtools util-linux ]; - - EXT_FS = extfs; - INITRAMFS = initramfs; - KERNEL = "${rootfs.kernel}/${stdenv.hostPlatform.linux-kernel.target}"; - ROOT_FS = rootfs; - SYSTEMD_BOOT_EFI = "${systemd}/lib/systemd/boot/efi/systemd-boot${efiArch}.efi"; - EFINAME = "BOOT${toUpper efiArch}.EFI"; - - buildFlags = [ "build/live.img" ]; - makeFlags = [ "SCRIPTS=${scripts}" ]; - - installPhase = '' - runHook preInstall - mv build/live.img $out - runHook postInstall - ''; - - enableParallelBuilding = true; - - passthru = { inherit rootfs; }; -} -) {} diff --git a/img/live/shell.nix b/img/live/shell.nix deleted file mode 100644 index dcf2059..0000000 --- a/img/live/shell.nix +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: MIT -# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross <hi@alyssa.is> - -{ config ? import ../../nix/eval-config.nix {} }: - -with config.pkgs; - -(import ./. { inherit config; }).overrideAttrs ( - { nativeBuildInputs ? [], ... }: - { - nativeBuildInputs = nativeBuildInputs ++ [ qemu_kvm ]; - - OVMF_CODE = "${qemu_kvm}/share/qemu/edk2-${stdenv.hostPlatform.qemuArch}-code.fd"; - } -) |