From 80686835f4d6ef1a42a97ffcfbc48746861a129c Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 12 Aug 2026 06:22:06 +0000 Subject: Expand typed Controller package set --- profiles/alt-controller.toml | 102 +++++++++++++++++++++++++++++++++++++++++-- tests/model_validation.rs | 21 +++++++++ tests/package_installer.rs | 4 +- 3 files changed, 122 insertions(+), 5 deletions(-) diff --git a/profiles/alt-controller.toml b/profiles/alt-controller.toml index fa903fb..60c9226 100644 --- a/profiles/alt-controller.toml +++ b/profiles/alt-controller.toml @@ -10,11 +10,105 @@ flavour = "rt" initrd_features = ["add-modules", "compress", "cleanup", "rdshell", "rootfs", "qemu", "usb"] initrd_modules = ["ext4", "ahci.ko", "ahci_platform.ko", "sd_mod.ko", "virtio_blk.ko", "virtio_net.ko", "virtio_pci.ko"] +# Explicit, typed replacement for the retired profile's vendored package lists. +# Conditional legacy selectors are resolved for the x86_64 Controller target. [packages] base = [ - "basesystem", "fakeroot", "interactivesystem", "shadow-utils", "e2fsprogs", - "apt", "apt-https", "bootloader-utils", "make-initrd", "chrony", - "systemd-networkd", "iputils", "control", "openssh-server", "systemd-sysvinit", - "libiec61850" + "anacron", + "apt", + "apt-https", + "apt-repo", + "apt-rsync", + "apt-scripts", + "attr", + "audit", + "basesystem", + "bash-completion-util-linux", + "bootloader-utils", + "ca-certificates-digital.gov.ru", + "cgroup", + "chkconfig", + "chrony", + "control", + "cpio", + "cpupower", + "curl", + "dhcpcd", + "e2fsprogs", + "etcnet", + "fakeroot", + "fdisk", + "firmware-intel-ucode", + "fwupd", + "fwupd-efi", + "gcrypt-gost-utils", + "glibc-timezones", + "gnutls-utils", + "gostsum", + "gzip-utils", + "hdparm", + "hostinfo", + "hwclock", + "iftop", + "installer-feature-online-repo", + "interactivesystem", + "inxi", + "ipmitool", + "iptables", + "iputils", + "irqbalance", + "iucode_tool", + "kbd", + "keyutils", + "lft", + "libgcrypt-gost20", + "libiec61850", + "linuxptp", + "lm_sensors3", + "local-policy", + "lsof", + "make-initrd", + "make-initrd-multipath", + "make-initrd-ucode", + "mtr", + "multipath-tools", + "netlist", + "ntpdate", + "openresolv", + "openssh", + "openssh-askpass-common", + "openssh-blacklist", + "openssh-clients", + "openssh-common", + "openssh-server", + "openssh-server-control", + "openssl", + "openssl-gost-engine", + "pciids", + "pciutils", + "rsync", + "rsyslog", + "setarch", + "sfdisk", + "shadow-suite", + "shadow-utils", + "smartmontools", + "su", + "sysstat", + "systemd", + "systemd-analyze", + "systemd-networkd", + "systemd-sysvinit", + "tar", + "tcpdump", + "terminfo-extra", + "traceroute", + "udev", + "unzip", + "update-kernel", + "usbutils", + "whois", + "xz", + "zip", ] selectors = ["^kernel-(image|modules-())-(rt)$"] diff --git a/tests/model_validation.rs b/tests/model_validation.rs index 5134a6f..f94a656 100644 --- a/tests/model_validation.rs +++ b/tests/model_validation.rs @@ -41,6 +41,27 @@ fn parses_a_typed_image_spec() { assert_eq!(spec.packages.selectors[0].as_str(), "^kernel-image-rt$"); } +#[test] +fn controller_spec_preserves_the_vendored_controller_package_set() { + let spec = ImageSpec::load(std::path::Path::new("profiles/alt-controller.toml")) + .expect("controller spec parses"); + + assert_eq!(spec.packages.base.len(), 96); + for package in [ + "make-initrd-multipath", + "firmware-intel-ucode", + "openssh-server-control", + "systemd-analyze", + "libiec61850", + "rsyslog", + ] { + assert!( + spec.packages.base.iter().any(|candidate| candidate == package), + "controller package set must contain {package}" + ); + } +} + #[test] fn compiles_a_validated_spec_into_an_immutable_build_plan() { let spec = load(VALID_SPEC).expect("valid spec"); diff --git a/tests/package_installer.rs b/tests/package_installer.rs index b322aa9..e527f14 100644 --- a/tests/package_installer.rs +++ b/tests/package_installer.rs @@ -84,7 +84,9 @@ fn build_plan_compiles_its_typed_package_request() { assert_eq!(request.workdir(), std::path::Path::new("work/alt-controller")); assert_eq!(request.apt_config().as_path(), std::path::Path::new("profiles/apt.conf")); - assert_eq!(request.packages()[0], "apt"); + assert_eq!(request.packages()[0], "anacron"); + assert!(request.packages().contains(&"apt".to_owned())); assert!(request.packages().contains(&"libiec61850".to_owned())); + assert!(request.packages().contains(&"make-initrd-multipath".to_owned())); assert_eq!(request.selectors(), ["^kernel-(image|modules-())-(rt)$"]); } -- cgit v1.2.3