summary refs log tree commit diff
path: root/img
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-10-09 11:40:35 +0000
committerAlyssa Ross <hi@alyssa.is>2022-11-13 23:58:53 +0000
commitd30f0248583e523eddb716aa931489b11a44e3f6 (patch)
tree39417941eb3d7c5366a0768c4692c83547a2af2a /img
parent7266451ab6136d75142e6e45e2bc8c6843bbc994 (diff)
downloadspectrum-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.nix116
-rw-r--r--img/combined/eosimages.nix18
-rw-r--r--img/combined/grub.cfg.in24
-rw-r--r--img/combined/run-vm.nix25
-rw-r--r--img/installer/app/0001-gpt-disable-gpt-partition-attribute-55-check.patch37
-rw-r--r--img/installer/app/0002-gpt-disable-partition-table-CRC-check.patch36
-rw-r--r--img/installer/app/0003-install-remove-Endless-OS-ad.patch99
-rw-r--r--img/installer/app/0004-finished-don-t-run-eos-diagnostics.patch44
-rw-r--r--img/installer/app/0005-finished-promote-spectrum-not-the-Endless-forum.patch32
-rw-r--r--img/installer/app/default.nix41
-rw-r--r--img/installer/app/vendor-customer-support.ini5
-rw-r--r--img/installer/configuration.nix57
-rw-r--r--img/installer/default.nix25
-rw-r--r--img/installer/run-vm.nix46
-rw-r--r--img/installer/seat.rules9
-rw-r--r--img/live/Makefile72
-rw-r--r--img/live/default.nix55
-rw-r--r--img/live/shell.nix15
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";
-  }
-)