# SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: 2021-2023, 2025 Alyssa Ross # SPDX-FileCopyrightText: 2022 Unikie # SPDX-FileCopyrightText: 2025 Demi Marie Obenour import ../../lib/call-package.nix ( { callSpectrumPackage, spectrum-build-tools, rootfs, src , lib, pkgsStatic, stdenvNoCC , cryptsetup, dosfstools, jq, mtools, util-linux , systemdUkify, bash }: let inherit (lib) toUpper; stdenv = stdenvNoCC; systemd = systemdUkify.overrideAttrs ({ mesonFlags ? [], ... }: { # The default limit is too low to build a generic aarch64 distro image: # https://github.com/systemd/systemd/pull/37417 mesonFlags = mesonFlags ++ [ "-Defi-stub-extra-sections=3000" ]; }); initramfs = callSpectrumPackage ../../host/initramfs {}; efiArch = stdenv.hostPlatform.efiArch; in stdenv.mkDerivation { name = "spectrum-live.img"; src = lib.fileset.toSource { root = ../..; fileset = lib.fileset.intersection src (lib.fileset.unions [ ./. ../../lib/common.mk ../../lib/kcmdline-utils.mk ../../lib/verity.mk ../../scripts/format-uuid.awk ../../scripts/format-uuid.sh ../../scripts/make-gpt.bash ../../scripts/make-gpt.sh ../../scripts/make-live-image.sh ../../scripts/sfdisk-field.awk ../../version ]); }; sourceRoot = "source/release/live"; nativeBuildInputs = [ bash cryptsetup dosfstools jq spectrum-build-tools mtools systemd util-linux ]; env = { 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"; VERSION = import ../../lib/version.nix; DESTDIR = "$(out)"; } // lib.optionalAttrs stdenv.hostPlatform.linux-kernel.DTB or false { DTBS = "${rootfs.kernel}/dtbs"; }; enableParallelBuilding = true; __structuredAttrs = true; unsafeDiscardReferences = { out = true; }; dontFixup = true; passthru = { inherit initramfs rootfs; }; } ) (_: {})