From cd203b8799c5df2c2b0b177e66d7450863bd3e4f Mon Sep 17 00:00:00 2001 From: Lukas Greve Date: Wed, 25 Mar 2026 21:18:01 +0100 Subject: [PATCH] Refactor security and guest-agents config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move guest-agents from hypervisor modifier to independent optional feature - Merge guest-agents/gui.ks into base.ks - Remove security from required, add optional security modifier with off option - Fix hypervisor-type modifier key normalization (underscore→hyphen) - Add expand_variants() to handle list values in manifest - Update all tests and expected recipes --- fragments/desktop/vmm/packages.ks | 8 - fragments/desktop/vmm/post-scripts.ks | 9 - fragments/guest-agents/base.ks | 3 +- fragments/guest-agents/gui.ks | 5 - fragments/initial-setup/desktop/config.ks | 8 + fragments/initial-setup/desktop/packages.ks | 7 - .../initial-setup/generic-wayland/packages.ks | 8 - fragments/initial-setup/gnome/packages.ks | 9 - fragments/initial-setup/server/packages.ks | 7 - fragments/repo/fedora-43-iso-mirror.ks | 3 - .../generate_recipe.cpython-314.pyc | Bin 35788 -> 37372 bytes recipe-generator/generate_recipe.py | 56 ++++- recipe-generator/recipe_templates.yaml | 24 +- recipe-generator/recipes_manifest.yaml | 134 ++++------- ...pu_intelgpu_rawhide.cfg => install_43.cfg} | 8 +- recipes/install_43_devel.cfg | 27 +++ recipes/install_43_devel_encrypted.cfg | 28 +++ recipes/install_43_encrypted.cfg | 28 +++ recipes/install_desktop_43.cfg | 2 +- recipes/install_desktop_43_devel.cfg | 2 +- .../install_desktop_43_devel_encrypted.cfg | 25 ++ recipes/install_desktop_43_encrypted.cfg | 25 ++ recipes/install_desktop_rawhide.cfg | 2 +- recipes/install_desktop_rawhide_devel.cfg | 24 ++ ...nstall_desktop_rawhide_devel_encrypted.cfg | 25 ++ recipes/install_desktop_rawhide_encrypted.cfg | 2 +- ..._rawhide.cfg => install_hypervisor_43.cfg} | 8 +- recipes/install_hypervisor_43_devel.cfg | 25 ++ .../install_hypervisor_43_devel_encrypted.cfg | 26 +++ recipes/install_hypervisor_43_encrypted.cfg | 26 +++ ...ide.cfg => install_hypervisor_rawhide.cfg} | 4 +- recipes/install_hypervisor_rawhide_devel.cfg | 25 ++ ...all_hypervisor_rawhide_devel_encrypted.cfg | 26 +++ .../install_hypervisor_rawhide_encrypted.cfg | 26 +++ recipes/install_rawhide.cfg | 27 +++ recipes/install_rawhide_devel.cfg | 27 +++ recipes/install_rawhide_devel_encrypted.cfg | 28 +++ recipes/install_rawhide_encrypted.cfg | 28 +++ recipes/install_server_43.cfg | 2 +- recipes/install_server_43_devel.cfg | 2 +- recipes/install_server_43_devel_encrypted.cfg | 22 ++ ...43.cfg => install_server_43_encrypted.cfg} | 4 +- recipes/install_server_rawhide.cfg | 2 +- recipes/install_server_rawhide_devel.cfg | 2 +- ...install_server_rawhide_devel_encrypted.cfg | 22 ++ recipes/install_server_rawhide_encrypted.cfg | 22 ++ recipes/live_desktop_rawhide.cfg | 4 +- recipes/live_server_rawhide.cfg | 4 +- ...ipe_generator.cpython-314-pytest-8.4.2.pyc | Bin 55034 -> 42523 bytes .../desktop-hypervisor-intelcpu-rawhide.cfg | 24 ++ .../desktop-hypervisor-intelgpu-rawhide.cfg | 24 ++ .../desktop-hypervisor_rawhide.cfg | 35 ++- ...t_integration.cpython-314-pytest-8.4.2.pyc | Bin 14239 -> 14827 bytes tests/integration/test_integration.py | 25 +- tests/test_recipe_generator.py | 217 ++++++------------ 55 files changed, 791 insertions(+), 375 deletions(-) delete mode 100644 fragments/desktop/vmm/packages.ks delete mode 100644 fragments/desktop/vmm/post-scripts.ks delete mode 100644 fragments/guest-agents/gui.ks delete mode 100644 fragments/initial-setup/desktop/packages.ks delete mode 100644 fragments/initial-setup/generic-wayland/packages.ks delete mode 100644 fragments/initial-setup/gnome/packages.ks delete mode 100644 fragments/initial-setup/server/packages.ks delete mode 100644 fragments/repo/fedora-43-iso-mirror.ks rename recipes/{install_hypervisor-desktop_intelcpu_intelgpu_rawhide.cfg => install_43.cfg} (86%) create mode 100644 recipes/install_43_devel.cfg create mode 100644 recipes/install_43_devel_encrypted.cfg create mode 100644 recipes/install_43_encrypted.cfg create mode 100644 recipes/install_desktop_43_devel_encrypted.cfg create mode 100644 recipes/install_desktop_43_encrypted.cfg create mode 100644 recipes/install_desktop_rawhide_devel.cfg create mode 100644 recipes/install_desktop_rawhide_devel_encrypted.cfg rename recipes/{install_hypervisor_amdcpu_rawhide.cfg => install_hypervisor_43.cfg} (87%) create mode 100644 recipes/install_hypervisor_43_devel.cfg create mode 100644 recipes/install_hypervisor_43_devel_encrypted.cfg create mode 100644 recipes/install_hypervisor_43_encrypted.cfg rename recipes/{install_hypervisor_intelcpu_rawhide.cfg => install_hypervisor_rawhide.cfg} (91%) create mode 100644 recipes/install_hypervisor_rawhide_devel.cfg create mode 100644 recipes/install_hypervisor_rawhide_devel_encrypted.cfg create mode 100644 recipes/install_hypervisor_rawhide_encrypted.cfg create mode 100644 recipes/install_rawhide.cfg create mode 100644 recipes/install_rawhide_devel.cfg create mode 100644 recipes/install_rawhide_devel_encrypted.cfg create mode 100644 recipes/install_rawhide_encrypted.cfg create mode 100644 recipes/install_server_43_devel_encrypted.cfg rename recipes/{install_desktop_labwc_43.cfg => install_server_43_encrypted.cfg} (90%) create mode 100644 recipes/install_server_rawhide_devel_encrypted.cfg create mode 100644 recipes/install_server_rawhide_encrypted.cfg create mode 100644 tests/fixtures/expected_recipes/desktop-hypervisor-intelcpu-rawhide.cfg create mode 100644 tests/fixtures/expected_recipes/desktop-hypervisor-intelgpu-rawhide.cfg diff --git a/fragments/desktop/vmm/packages.ks b/fragments/desktop/vmm/packages.ks deleted file mode 100644 index e6cae5c..0000000 --- a/fragments/desktop/vmm/packages.ks +++ /dev/null @@ -1,8 +0,0 @@ -# VMM (Virtual Machine Manager) packages - -%packages --exclude-weakdeps - -virtual-manager -libvirt-client-tools - -%end diff --git a/fragments/desktop/vmm/post-scripts.ks b/fragments/desktop/vmm/post-scripts.ks deleted file mode 100644 index 39bebbb..0000000 --- a/fragments/desktop/vmm/post-scripts.ks +++ /dev/null @@ -1,9 +0,0 @@ -# VMM post-installation scripts - -%post --erroronfail - -# Start libvirt service -systemctl enable libvirtd -systemctl start libvirtd - -%end diff --git a/fragments/guest-agents/base.ks b/fragments/guest-agents/base.ks index 560b3d5..7f88347 100644 --- a/fragments/guest-agents/base.ks +++ b/fragments/guest-agents/base.ks @@ -1,5 +1,6 @@ -# Guest agents for virtual machines (base) +# Guest agents for virtual machines %packages --exclude-weakdeps qemu-guest-agent +spice-vdagent %end diff --git a/fragments/guest-agents/gui.ks b/fragments/guest-agents/gui.ks deleted file mode 100644 index a789159..0000000 --- a/fragments/guest-agents/gui.ks +++ /dev/null @@ -1,5 +0,0 @@ -# Guest agents for virtual machines (GUI only) - -%packages --exclude-weakdeps -spice-vdagent -%end diff --git a/fragments/initial-setup/desktop/config.ks b/fragments/initial-setup/desktop/config.ks index 8ea1a37..5a74dcd 100644 --- a/fragments/initial-setup/desktop/config.ks +++ b/fragments/initial-setup/desktop/config.ks @@ -1 +1,9 @@ # Desktop initial-setup configuration + +firstboot --enable # Enable the Setup Agent to start at boot time + +%packages --exclude-weakdeps + +initial-setup + +%end diff --git a/fragments/initial-setup/desktop/packages.ks b/fragments/initial-setup/desktop/packages.ks deleted file mode 100644 index aa29e8c..0000000 --- a/fragments/initial-setup/desktop/packages.ks +++ /dev/null @@ -1,7 +0,0 @@ -# Initial setup packages - desktop mode - -%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies. - -initial-setup # Initial setup package - -%end # End of the packages section diff --git a/fragments/initial-setup/generic-wayland/packages.ks b/fragments/initial-setup/generic-wayland/packages.ks deleted file mode 100644 index 6180cc6..0000000 --- a/fragments/initial-setup/generic-wayland/packages.ks +++ /dev/null @@ -1,8 +0,0 @@ -# Initial setup packages - generic wayland desktop mode - -%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies. - -initial-setup-gui # Graphical user interface for the initial-setup utility -initial-setup-gui-wayland-generic.x86_64 # Run the initial-setup GUI in Wayland - -%end # End of the packages section diff --git a/fragments/initial-setup/gnome/packages.ks b/fragments/initial-setup/gnome/packages.ks deleted file mode 100644 index 1bd0545..0000000 --- a/fragments/initial-setup/gnome/packages.ks +++ /dev/null @@ -1,9 +0,0 @@ -# Initial setup packages - GNOME desktop mode - -%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies. - -# TO BE TESTED -> initial-setup-gui # Graphical user interface for the initial-setup utility -# TO BE TESTED -> initial-setup-gui-wayland-generic.x86_64 # Run the initial-setup GUI in Wayland -gnome-initial-setup # Add GNOME initial setup too to let user create local account. - -%end # End of the packages section diff --git a/fragments/initial-setup/server/packages.ks b/fragments/initial-setup/server/packages.ks deleted file mode 100644 index 6f322e6..0000000 --- a/fragments/initial-setup/server/packages.ks +++ /dev/null @@ -1,7 +0,0 @@ -# Initial setup packages - server mode - -%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies. - -initial-setup # Initial setup package - -%end # End of the packages section diff --git a/fragments/repo/fedora-43-iso-mirror.ks b/fragments/repo/fedora-43-iso-mirror.ks deleted file mode 100644 index 887109c..0000000 --- a/fragments/repo/fedora-43-iso-mirror.ks +++ /dev/null @@ -1,3 +0,0 @@ -# Fedora ISO repository for F43 (for live ISO builds) - -# repo --name=fedora-iso --metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-43&arch=x86_64 # Uncomment for ISO builds diff --git a/recipe-generator/__pycache__/generate_recipe.cpython-314.pyc b/recipe-generator/__pycache__/generate_recipe.cpython-314.pyc index 393fbc00bd7b373000fcb730aca9bd062788b23d..99a09472532b47f271fafd903afc6ed39d7868e3 100644 GIT binary patch delta 7121 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 delta 5751 zcmb7I3viUzb^hT$8jCq?IDg?bG@6N!vE5Um9X%l3a!>XU&j2l3ZRO$*rC_8d6b`lG$L($MsA{pe##t7$eo|t6EIjVKlh!W??E~3}zc`3=6nwt@OOdr+P;z$epw|?B2 zJ!!~oQj*D1Qq$iF4;wzqmP?XOzm&|CODm;1H~fY1T~-5oOg^?E^}MN!F)zGfuF3V% z0*wd>Ekbp5HLn4UrG~A5S(cS-Hhgb!udYtZ8{l6omE}HSZX#wfRK)>aLxg667KF8s zWv#_I^Q?d8TtLKj1i>oAer9cEYoXfa)y+mad~96U&3qbE4#guu)hWT`AYX#bIt?dn zxGvqk%d)+2)i#sOPTjHX(y%s2+PAP)xM1I85IU@addDn-P;@?Qaa6M2)P!S@tq@C^ zl93T*IGBuxWlw9xid;`?cYLk22cXf}fNO7Yo;S`2(!2*~o>esj6(tf2b1y6`UYys8 zL{%Tf)e?1CTu(_mO|f$ zOKv=a)F0gK8rBXAJyivRq}C3aZAdRYL4=*K+cO{6KkI2@--lm&F5&XW(ZxT z<&jWSi3E~kN<QEuu2Ro`; z%7rl=BaO&gRP#tY9Niv`;HBtKtNFv~GF0=u>bdL99xZ3BMx}q=gNJVW=^Bpx8}ov=Awd= zMEBeM4w4^!O7t9lJ3Kfq#eM`$zNqWBlCp1(%3G7Jp^L};{0jn_WWlXo^Cj~_w2Gu#jQWJw_Yu+IyrQuwB>B;mC}WadyTC|<2S1@BH z_$s23=@L{>;H{f{gh^EUuHbMqj1fIR@e5w>sAQW{|JgCfL`>zh%2&~hpTq9m?_2^N zS?I8O`4TZ1(HTaEBZ+CnKsib9fMI2MsnBN&_7hnM z6osZ9Oy$d0u3(AOBP*}4hBGwh>uvZ1Ji3|^`5jwP>R(sS*R&kRxphp{i=stkl`5;^ zW|AkiLgz4U>yqUS@`CcUlN+DE&NGq10h+|43MWrcb340wsa5} zD=brI{mKit*tLl)7>JFIa117rY7$bENSMDuU2SM2teOx4(b)F5&_&gbBnA>z9L?Ck zf|f{Ml-J;cbv||ioa;ZrZGE|Z>rxSth0mF`N6|HdBk3A|FGT@&cZrwb#0GMSf8H>_ z(A66^wzB20edE$awB<~m70z}A3H&O8nw?oFFcM6L2F1QI$wO!gA8eeH!68d zUOn+B&3&9C-Zg)n$09IMiL4?ol44mVCx(ke2*)a21av3$;ACF`1ZJ8c zyRQg*dCs!=M4grlw11pTC}Fre#?^qLua2 z(~)ePzZ;W_(2R7^;y6@q3R+E>`LY?_-{i5FGyO8y*js3|WV*7IhO?}hKGynL=(sx~ zQwSOBbo>MOxxev#s?Ss-k6<+#ill>uNID|l0Li6*!M{UujOn}b7!juO3m1!v%b};5 zEs-$dIL3p9v~O+S+~yWe;zTPRkZu?x*UV?VPkS%aw!PAFskr^99WHEMHtR*pD{U9L z{8tukzI^YtcbfWt($s%7uk?c3cO|dsXxCL+&J%0Dwf4_uT(*_LvU@h@jF+uG_|82` z3dyCgkoS^KBDRx5tgp+1m$ofgypX8f1n3JA-$(E*f~N_dB=|PLs|2qTyhiXI!8MrI z-&EFw%>*6)()5L%MMDIgH1H%m)bF=ZF_bQPZuh}Q{q=VA{Qn~N7yiy?K|`R3=~CT+ zVvAN2{(UMG{U&2&@X3yUayz6h){SvSDe5bdw@&va#fn~hZYU3$W>}VPD&FK8)%v7S zO*gta)lN#W;_54w<87$hWbJ_=v9Gw#^?+tgUb^&9N(5I?PZu%xo=L#&nWm>eKcV!nwE$&dky4u(KLF z#i^{3dIq~9l!SxV~dGzi{HWxe>b22x)6!W;;HmODPmEUj0Ynguf+;B7I zVHy>BSp^*5Q3H=AZCY)QOpC#@@fS%Oej@g*qIG4C|~1T3GZ{!1T%f6{b1Tug>jJ7+-N&RoN6jZZ?+ z|F$y%x0GC1!GFi@7kcfV)N3^a6F#IJPx#>Fow;x+L8hR%QYp$tHD%JM zR&goCQ3;+IEr+?gbM%>B8SL2Ih2M#1cNehI&+$z7mk8rFuQxuLR7R8DaFma0ykUM2 zKHPIc^Q8p)#^%xM#jy^nem~Zd|Haf)v)4Nro%k+@cT!We02|wE3#E!xB{oh?+LgH!0 zU!-Mp+)8}!lK?6exDC4r9k!_UNympN!6CTx;IC?OXhI&rjQ@i-4DU~LuzaXEaGo84 zPY*P@50iKiVntN9?F#Z}FqTYz6d#4=gUhTR5X-L!K7!DUZG@RyKeG!#gG9q?7~*5R&Bp(qu; zd?&$E1m7SKdGVXrQrVEocBMbJDLbmxNiFGzrUVu35Io`n<%lj{c#WzX2}WbQ9rgPZ z{}Vq+J$dADz1>y&j;rCKtKs?kUU9zTT9oR1ILSWCH=uFstH`f-=vb;Ofi1>56 zGoEYyzue=dtI-`_VrwAyejK@qcy(7teOH?fktD20Q|TjAG)4+ z#6Z;ye;a=KL~UsYHtU%9xkMz~iu8qQCXQxs9V=obF!xx6r&PyuBC*yvc?X^7E#fGn zmhi70*mKO=#os1sErCecWLy5JkcEKj(9~&(T{SIAf9`rD diff --git a/recipe-generator/generate_recipe.py b/recipe-generator/generate_recipe.py index fc47b42..7b7d9ae 100755 --- a/recipe-generator/generate_recipe.py +++ b/recipe-generator/generate_recipe.py @@ -10,6 +10,7 @@ import sys import yaml from pathlib import Path from typing import Dict, List, Optional, Any +from itertools import product # Deprecated/removed command mappings for Fedora 43 (F42) and rawhide @@ -308,8 +309,10 @@ class RecipeGenerator: # Handle modifiers section for mod_key, mod_value in modifiers.items(): - if mod_key in template.get('modifiers', {}): - mod_config = template['modifiers'][mod_key] + # Normalize key: convert underscores to hyphens for template lookup + mod_key_normalized = mod_key.replace('_', '-') + if mod_key_normalized in template.get('modifiers', {}): + mod_config = template['modifiers'][mod_key_normalized] # Handle nested dict modifiers if isinstance(mod_config, dict) and isinstance(mod_value, str): @@ -460,6 +463,8 @@ class RecipeGenerator: """Generate recipe filename from parameters.""" # Extract variant subname if present variant_subname = modifiers.get('variant_subname', '') + if not variant_subname: + variant_subname = modifiers.get('variant_type', '') # Build base parts parts = [recipe_type.replace('_', '-')] @@ -468,10 +473,13 @@ class RecipeGenerator: if variant_subname and variant_subname in ['desktop', 'server', 'hypervisor', 'hypervisor-desktop']: parts.append(variant_subname) - # Add hypervisor-type (list, first type only for filename) - if modifiers.get('hypervisor-type') and isinstance(modifiers['hypervisor-type'], list): - types = modifiers['hypervisor-type'] - parts.extend(types) + # Add hypervisor-type (list or single value for filename) + if modifiers.get('hypervisor_type'): + ht = modifiers['hypervisor_type'] + if isinstance(ht, list): + parts.extend(ht) + else: + parts.append(ht) # Add desktop (non-GNOME only, since GNOME is default) if modifiers.get('desktop') and modifiers['desktop'] != 'gnome': @@ -481,7 +489,7 @@ class RecipeGenerator: parts.append(str(version)) # Add security suffix (devel only, since secure is default) - if modifiers.get('security') == 'devel': + if modifiers.get('security') == 'off': parts.append('devel') # Add storage suffix (encrypted only, since standard is default) @@ -491,6 +499,36 @@ class RecipeGenerator: return '_'.join(parts) + '.cfg' + def expand_variants(self, variants: List[Dict]) -> List[Dict]: + """Expand variants with list values into individual variants.""" + expanded = [] + + for variant in variants: + list_keys = {} + scalar_keys = {} + + for key, value in variant.items(): + if isinstance(value, list): + list_keys[key] = value + else: + scalar_keys[key] = value + + if not list_keys: + expanded.append(variant) + continue + + keys = list(list_keys.keys()) + values_product = product(*[list_keys[k] for k in keys]) + + for combo in values_product: + new_variant = scalar_keys.copy() + for i, key in enumerate(keys): + new_variant[key] = combo[i] + expanded.append(new_variant) + + return expanded + + def main(): parser = argparse.ArgumentParser( description='Generate Phyllome OS kickstart recipes from templates', @@ -650,7 +688,9 @@ def main(): print(f"Error: Unknown recipe type in manifest: {recipe_type}", file=sys.stderr) sys.exit(1) - for variant in recipe_config.get('variants', []): + variants = recipe_config.get('variants', []) + variants = generator.expand_variants(variants) + for variant in variants: version = variant['version'] # Build modifiers dict (exclude 'name', 'version') modifiers = {k: v for k, v in variant.items() if k not in ['name', 'version']} diff --git a/recipe-generator/recipe_templates.yaml b/recipe-generator/recipe_templates.yaml index 9fabd15..5d7f998 100644 --- a/recipe-generator/recipe_templates.yaml +++ b/recipe-generator/recipe_templates.yaml @@ -20,6 +20,7 @@ templates: - hand-picked: fragments/packages/hand-picked.ks optional: hardware-support: fragments/packages/hardware-support.ks + guest-agents: fragments/guest-agents/base.ks variant_type: desktop: server: @@ -31,9 +32,6 @@ templates: storage: standard: fragments/storage/standard.ks encrypted: fragments/storage/encrypted.ks - bootloader: - grub: fragments/bootloader/grub.ks - systemd-boot: fragments/bootloader/systemd-boot.ks desktop: gnome: - fragments/desktop/gnome/config.ks @@ -43,10 +41,12 @@ templates: - fragments/desktop/labwc/config.ks security: secure: fragments/core/security/enabled.ks - devel: fragments/core/security/disabled.ks + "off": fragments/core/security/disabled.ks initial-setup: server: fragments/initial-setup/server/config.ks desktop: fragments/initial-setup/desktop/config.ks + gnome: fragments/initial-setup/gnome/config.ks + generic-wayland: fragments/initial-setup/generic-wayland/config.ks hypervisor-type: amdcpu: fragments/hypervisor/amdcpu.ks intelcpu: fragments/hypervisor/intelcpu.ks @@ -56,11 +56,9 @@ templates: - fragments/hypervisor/base/packages.ks - fragments/hypervisor/base/services.ks - fragments/hypervisor/base/post-scripts.ks - - fragments/guest-agents/base.ks desktop: - fragments/packages/virtual-machine-manager/packages.ks - fragments/packages/virtual-machine-manager/post-scripts.ks - - fragments/guest-agents/gui.ks # Live recipe - for live-desktop or live-server live: @@ -69,22 +67,24 @@ templates: required: - live-core: fragments/live/core/base.ks - storage: fragments/live/core/storage.ks - - bootloader: fragments/bootloader/grub.ks + - bootloader: fragments/live/core/bootloader/grub.ks - locale: fragments/core/locale.ks - services: fragments/core/services.ks - network: fragments/core/network.ks - packages: fragments/live/core/packages.ks - post: fragments/live/post/base.ks - session: fragments/live/post/session.ks + - rpmfusion-nonfree: fragments/repo/rpmfusion-nonfree.ks optional: variant_type: desktop: server: + hardware-support: fragments/packages/hardware-support.ks + guest-agents: fragments/guest-agents/base.ks + hypervisor: fragments/live/hypervisor.ks security: secure: fragments/core/security/enabled.ks - devel: fragments/core/security/disabled.ks - hardware-support: fragments/packages/hardware-support.ks - hypervisor: fragments/live/hypervisor.ks + "off": fragments/core/security/disabled.ks modifiers: version: "43": fragments/repo/fedora-43-mirrors.ks @@ -93,5 +93,5 @@ templates: standard: fragments/live/core/storage.ks encrypted: fragments/live/core/storage.ks bootloader: - grub: fragments/bootloader/grub.ks - systemd-boot: fragments/bootloader/systemd-boot.ks + grub: fragments/live/core/bootloader/grub.ks + systemd-boot: fragments/live/core/bootloader/systemd-boot.ks diff --git a/recipe-generator/recipes_manifest.yaml b/recipe-generator/recipes_manifest.yaml index 5e392d0..3efc3f7 100644 --- a/recipe-generator/recipes_manifest.yaml +++ b/recipe-generator/recipes_manifest.yaml @@ -1,134 +1,78 @@ # Recipe Manifest for Phyllome OS # Define all recipe variants using generators from recipe_templates.yaml # Edit this file to add new variants, then run: make generate-recipes +# +# Supported syntax: +# - Single values: version: "43" +# - List values: version: ["43", "rawhide"] (expands to multiple variants) +# - List modifiers: hypervisor-type: ["amdcpu", "intelcpu"] (expands to separate variants) recipes: # Install variants - desktop - name: install variants: - name: desktop - version: "43" + version: ["43", "rawhide"] desktop: gnome - storage: standard + storage: ["standard", "encrypted"] bootloader: grub - security: secure - hardware-support: true - initial-setup: server - - name: desktop - version: "43" - desktop: gnome - storage: standard - bootloader: grub - security: devel - hardware-support: true - initial-setup: server - - name: desktop - version: "43" - desktop: labwc - storage: standard - bootloader: grub - security: secure - hardware-support: true - initial-setup: server - - name: desktop - version: "rawhide" - desktop: gnome - storage: standard - bootloader: grub - security: secure - hardware-support: true - initial-setup: server - - name: desktop - version: "rawhide" - desktop: gnome - storage: encrypted - bootloader: grub - security: secure - hardware-support: true + hardware-support: [true, false] + guest-agents: [true, false] initial-setup: server + security: [secure, 'off'] - # Install variants - server (minimal, no desktop packages) + # Install variants - server - name: install variants: - name: server - version: "43" - storage: standard + version: ["43", "rawhide"] + storage: ["standard", "encrypted"] bootloader: grub - security: secure - hardware-support: true - initial-setup: server - - name: server - version: "43" - storage: standard - bootloader: grub - security: devel - hardware-support: true - initial-setup: server - - name: server - version: "rawhide" - storage: standard - bootloader: grub - security: secure - hardware-support: true - initial-setup: server - - name: server - version: "rawhide" - storage: standard - bootloader: grub - security: devel - hardware-support: true + hardware-support: [true, false] + guest-agents: [true, false] initial-setup: server + security: [secure, 'off'] - # Install variants - hypervisor + # Install variants - server hypervisor - name: install variants: - - name: hypervisor - version: "rawhide" - storage: standard - bootloader: grub - security: secure - hardware-support: true - hypervisor: base - hypervisor-type: - - amdcpu - - name: hypervisor - version: "rawhide" - storage: standard - bootloader: grub - security: secure - hardware-support: true - hypervisor: base - hypervisor-type: - - intelcpu + - name: hypervisor + version: ["43", "rawhide"] + storage: ["standard", "encrypted"] + bootloader: grub + hardware-support: [true, false] + guest-agents: [true, false] + hypervisor: base + hypervisor-type: ["amdcpu", "intelcpu"] + initial-setup: server + security: [secure, 'off'] - # Install variants - hypervisor with desktop + # Install variants - desktop-hypervisor - name: install variants: - - name: hypervisor-desktop - version: "rawhide" + - name: desktop-hypervisor + version: ["43", "rawhide"] desktop: gnome - storage: standard + storage: ["standard", "encrypted"] bootloader: grub - security: secure - hardware-support: true + hardware-support: [true, false] hypervisor: desktop - hypervisor-type: - - intelcpu - - intelgpu - initial-setup: desktop + hypervisor-type: ["amdcpu", "intelcpu"] + initial-setup: server + security: [secure, 'off'] # Live variants - desktop - name: live variants: - name: desktop version: "rawhide" - security: secure - hardware-support: true + hardware-support: [true, false] + guest-agents: [true, false] # Live variants - server - name: live variants: - name: server version: "rawhide" - security: secure - hardware-support: true + hardware-support: [true, false] + guest-agents: [true, false] diff --git a/recipes/install_hypervisor-desktop_intelcpu_intelgpu_rawhide.cfg b/recipes/install_43.cfg similarity index 86% rename from recipes/install_hypervisor-desktop_intelcpu_intelgpu_rawhide.cfg rename to recipes/install_43.cfg index 79d773b..b0b6d14 100644 --- a/recipes/install_hypervisor-desktop_intelcpu_intelgpu_rawhide.cfg +++ b/recipes/install_43.cfg @@ -19,11 +19,9 @@ %ksappend fragments/desktop/gnome/config.ks %ksappend fragments/desktop/gnome/packages.ks %ksappend fragments/desktop/gnome/post-scripts.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/packages/virtual-machine-manager/packages.ks %ksappend fragments/packages/virtual-machine-manager/post-scripts.ks -%ksappend fragments/guest-agents/gui.ks +%ksappend fragments/initial-setup/server/config.ks %ksappend fragments/hypervisor/intelcpu.ks -%ksappend fragments/hypervisor/intelgpu.ks -%ksappend fragments/initial-setup/desktop/config.ks -%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_43_devel.cfg b/recipes/install_43_devel.cfg new file mode 100644 index 0000000..f7f395b --- /dev/null +++ b/recipes/install_43_devel.cfg @@ -0,0 +1,27 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_43_devel_encrypted.cfg b/recipes/install_43_devel_encrypted.cfg new file mode 100644 index 0000000..26a1e4e --- /dev/null +++ b/recipes/install_43_devel_encrypted.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_43_encrypted.cfg b/recipes/install_43_encrypted.cfg new file mode 100644 index 0000000..2a5b025 --- /dev/null +++ b/recipes/install_43_encrypted.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_43.cfg b/recipes/install_desktop_43.cfg index 29e206f..a3ed18a 100644 --- a/recipes/install_desktop_43.cfg +++ b/recipes/install_desktop_43.cfg @@ -19,6 +19,6 @@ %ksappend fragments/desktop/gnome/config.ks %ksappend fragments/desktop/gnome/packages.ks %ksappend fragments/desktop/gnome/post-scripts.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_43_devel.cfg b/recipes/install_desktop_43_devel.cfg index 3a4b415..30bc4bb 100644 --- a/recipes/install_desktop_43_devel.cfg +++ b/recipes/install_desktop_43_devel.cfg @@ -19,6 +19,6 @@ %ksappend fragments/desktop/gnome/config.ks %ksappend fragments/desktop/gnome/packages.ks %ksappend fragments/desktop/gnome/post-scripts.ks -%ksappend fragments/core/security/disabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/disabled.ks %ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_43_devel_encrypted.cfg b/recipes/install_desktop_43_devel_encrypted.cfg new file mode 100644 index 0000000..55d9870 --- /dev/null +++ b/recipes/install_desktop_43_devel_encrypted.cfg @@ -0,0 +1,25 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_43_encrypted.cfg b/recipes/install_desktop_43_encrypted.cfg new file mode 100644 index 0000000..71a45e4 --- /dev/null +++ b/recipes/install_desktop_43_encrypted.cfg @@ -0,0 +1,25 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_rawhide.cfg b/recipes/install_desktop_rawhide.cfg index 63f6f0c..ccd51b0 100644 --- a/recipes/install_desktop_rawhide.cfg +++ b/recipes/install_desktop_rawhide.cfg @@ -19,6 +19,6 @@ %ksappend fragments/desktop/gnome/config.ks %ksappend fragments/desktop/gnome/packages.ks %ksappend fragments/desktop/gnome/post-scripts.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_rawhide_devel.cfg b/recipes/install_desktop_rawhide_devel.cfg new file mode 100644 index 0000000..fe948ae --- /dev/null +++ b/recipes/install_desktop_rawhide_devel.cfg @@ -0,0 +1,24 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_rawhide_devel_encrypted.cfg b/recipes/install_desktop_rawhide_devel_encrypted.cfg new file mode 100644 index 0000000..0b4ff03 --- /dev/null +++ b/recipes/install_desktop_rawhide_devel_encrypted.cfg @@ -0,0 +1,25 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_rawhide_encrypted.cfg b/recipes/install_desktop_rawhide_encrypted.cfg index 3e8a153..aa038a3 100644 --- a/recipes/install_desktop_rawhide_encrypted.cfg +++ b/recipes/install_desktop_rawhide_encrypted.cfg @@ -19,7 +19,7 @@ %ksappend fragments/desktop/gnome/config.ks %ksappend fragments/desktop/gnome/packages.ks %ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks %ksappend fragments/storage/encrypted.ks %ksappend fragments/core/security/enabled.ks -%ksappend fragments/initial-setup/server/config.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_amdcpu_rawhide.cfg b/recipes/install_hypervisor_43.cfg similarity index 87% rename from recipes/install_hypervisor_amdcpu_rawhide.cfg rename to recipes/install_hypervisor_43.cfg index e1d7988..44dd91c 100644 --- a/recipes/install_hypervisor_amdcpu_rawhide.cfg +++ b/recipes/install_hypervisor_43.cfg @@ -16,10 +16,10 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/hypervisor/base/packages.ks %ksappend fragments/hypervisor/base/services.ks %ksappend fragments/hypervisor/base/post-scripts.ks -%ksappend fragments/guest-agents/base.ks -%ksappend fragments/hypervisor/amdcpu.ks -%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_43_devel.cfg b/recipes/install_hypervisor_43_devel.cfg new file mode 100644 index 0000000..a233413 --- /dev/null +++ b/recipes/install_hypervisor_43_devel.cfg @@ -0,0 +1,25 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_43_devel_encrypted.cfg b/recipes/install_hypervisor_43_devel_encrypted.cfg new file mode 100644 index 0000000..7b62a87 --- /dev/null +++ b/recipes/install_hypervisor_43_devel_encrypted.cfg @@ -0,0 +1,26 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_43_encrypted.cfg b/recipes/install_hypervisor_43_encrypted.cfg new file mode 100644 index 0000000..05eea84 --- /dev/null +++ b/recipes/install_hypervisor_43_encrypted.cfg @@ -0,0 +1,26 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_intelcpu_rawhide.cfg b/recipes/install_hypervisor_rawhide.cfg similarity index 91% rename from recipes/install_hypervisor_intelcpu_rawhide.cfg rename to recipes/install_hypervisor_rawhide.cfg index d611cdf..0275b80 100644 --- a/recipes/install_hypervisor_intelcpu_rawhide.cfg +++ b/recipes/install_hypervisor_rawhide.cfg @@ -16,10 +16,10 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/hypervisor/base/packages.ks %ksappend fragments/hypervisor/base/services.ks %ksappend fragments/hypervisor/base/post-scripts.ks -%ksappend fragments/guest-agents/base.ks +%ksappend fragments/initial-setup/server/config.ks %ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_rawhide_devel.cfg b/recipes/install_hypervisor_rawhide_devel.cfg new file mode 100644 index 0000000..764cab1 --- /dev/null +++ b/recipes/install_hypervisor_rawhide_devel.cfg @@ -0,0 +1,25 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_rawhide_devel_encrypted.cfg b/recipes/install_hypervisor_rawhide_devel_encrypted.cfg new file mode 100644 index 0000000..69b7932 --- /dev/null +++ b/recipes/install_hypervisor_rawhide_devel_encrypted.cfg @@ -0,0 +1,26 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_hypervisor_rawhide_encrypted.cfg b/recipes/install_hypervisor_rawhide_encrypted.cfg new file mode 100644 index 0000000..035bbff --- /dev/null +++ b/recipes/install_hypervisor_rawhide_encrypted.cfg @@ -0,0 +1,26 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/hypervisor/base/packages.ks +%ksappend fragments/hypervisor/base/services.ks +%ksappend fragments/hypervisor/base/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_rawhide.cfg b/recipes/install_rawhide.cfg new file mode 100644 index 0000000..6e5fec6 --- /dev/null +++ b/recipes/install_rawhide.cfg @@ -0,0 +1,27 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_rawhide_devel.cfg b/recipes/install_rawhide_devel.cfg new file mode 100644 index 0000000..00e505f --- /dev/null +++ b/recipes/install_rawhide_devel.cfg @@ -0,0 +1,27 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_rawhide_devel_encrypted.cfg b/recipes/install_rawhide_devel_encrypted.cfg new file mode 100644 index 0000000..22619ac --- /dev/null +++ b/recipes/install_rawhide_devel_encrypted.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_rawhide_encrypted.cfg b/recipes/install_rawhide_encrypted.cfg new file mode 100644 index 0000000..5ca1ad4 --- /dev/null +++ b/recipes/install_rawhide_encrypted.cfg @@ -0,0 +1,28 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/desktop/gnome/config.ks +%ksappend fragments/desktop/gnome/packages.ks +%ksappend fragments/desktop/gnome/post-scripts.ks +%ksappend fragments/packages/virtual-machine-manager/packages.ks +%ksappend fragments/packages/virtual-machine-manager/post-scripts.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/hypervisor/intelcpu.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_43.cfg b/recipes/install_server_43.cfg index 4f99025..7d63af1 100644 --- a/recipes/install_server_43.cfg +++ b/recipes/install_server_43.cfg @@ -16,6 +16,6 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_43_devel.cfg b/recipes/install_server_43_devel.cfg index aa15b3b..a55bb41 100644 --- a/recipes/install_server_43_devel.cfg +++ b/recipes/install_server_43_devel.cfg @@ -16,6 +16,6 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/disabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/disabled.ks %ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_43_devel_encrypted.cfg b/recipes/install_server_43_devel_encrypted.cfg new file mode 100644 index 0000000..3388749 --- /dev/null +++ b/recipes/install_server_43_devel_encrypted.cfg @@ -0,0 +1,22 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_desktop_labwc_43.cfg b/recipes/install_server_43_encrypted.cfg similarity index 90% rename from recipes/install_desktop_labwc_43.cfg rename to recipes/install_server_43_encrypted.cfg index feded74..52b68c9 100644 --- a/recipes/install_desktop_labwc_43.cfg +++ b/recipes/install_server_43_encrypted.cfg @@ -16,7 +16,7 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/desktop/labwc/config.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/fedora-43-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_rawhide.cfg b/recipes/install_server_rawhide.cfg index bf37adf..22e6ced 100644 --- a/recipes/install_server_rawhide.cfg +++ b/recipes/install_server_rawhide.cfg @@ -16,6 +16,6 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/enabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/enabled.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_rawhide_devel.cfg b/recipes/install_server_rawhide_devel.cfg index 6bf77b5..ffd0de7 100644 --- a/recipes/install_server_rawhide_devel.cfg +++ b/recipes/install_server_rawhide_devel.cfg @@ -16,6 +16,6 @@ %ksappend fragments/packages/core-group.ks %ksappend fragments/packages/fedora-remix.ks %ksappend fragments/packages/hand-picked.ks -%ksappend fragments/core/security/disabled.ks %ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/core/security/disabled.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_rawhide_devel_encrypted.cfg b/recipes/install_server_rawhide_devel_encrypted.cfg new file mode 100644 index 0000000..66124e9 --- /dev/null +++ b/recipes/install_server_rawhide_devel_encrypted.cfg @@ -0,0 +1,22 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/disabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/install_server_rawhide_encrypted.cfg b/recipes/install_server_rawhide_encrypted.cfg new file mode 100644 index 0000000..50e20f5 --- /dev/null +++ b/recipes/install_server_rawhide_encrypted.cfg @@ -0,0 +1,22 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# An install recipe for desktop, server, or hypervisor + +%ksappend fragments/core/base.ks +%ksappend fragments/storage/standard.ks +%ksappend fragments/bootloader/grub.ks +%ksappend fragments/core/locale.ks +%ksappend fragments/core/services.ks +%ksappend fragments/core/network.ks +%ksappend fragments/packages/core-group.ks +%ksappend fragments/packages/fedora-remix.ks +%ksappend fragments/packages/hand-picked.ks +%ksappend fragments/initial-setup/server/config.ks +%ksappend fragments/storage/encrypted.ks +%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/live_desktop_rawhide.cfg b/recipes/live_desktop_rawhide.cfg index 521878a..d8fa1c9 100644 --- a/recipes/live_desktop_rawhide.cfg +++ b/recipes/live_desktop_rawhide.cfg @@ -9,12 +9,12 @@ %ksappend fragments/live/core/base.ks %ksappend fragments/live/core/storage.ks -%ksappend fragments/bootloader/grub.ks +%ksappend fragments/live/core/bootloader/grub.ks %ksappend fragments/core/locale.ks %ksappend fragments/core/services.ks %ksappend fragments/core/network.ks %ksappend fragments/live/core/packages.ks %ksappend fragments/live/post/base.ks %ksappend fragments/live/post/session.ks -%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rpmfusion-nonfree.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/recipes/live_server_rawhide.cfg b/recipes/live_server_rawhide.cfg index 521878a..d8fa1c9 100644 --- a/recipes/live_server_rawhide.cfg +++ b/recipes/live_server_rawhide.cfg @@ -9,12 +9,12 @@ %ksappend fragments/live/core/base.ks %ksappend fragments/live/core/storage.ks -%ksappend fragments/bootloader/grub.ks +%ksappend fragments/live/core/bootloader/grub.ks %ksappend fragments/core/locale.ks %ksappend fragments/core/services.ks %ksappend fragments/core/network.ks %ksappend fragments/live/core/packages.ks %ksappend fragments/live/post/base.ks %ksappend fragments/live/post/session.ks -%ksappend fragments/core/security/enabled.ks +%ksappend fragments/repo/rpmfusion-nonfree.ks %ksappend fragments/repo/rawhide-mirrors.ks \ No newline at end of file diff --git a/tests/__pycache__/test_recipe_generator.cpython-314-pytest-8.4.2.pyc b/tests/__pycache__/test_recipe_generator.cpython-314-pytest-8.4.2.pyc index c27421334d9fb2a85aabbc54b44fa0597c6ea15d..28e49e24cc89268b09807e189050e9c208c47f20 100644 GIT binary patch delta 6546 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 delta 11677 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 Y= 50, f"Expected at least 50 fragments, found {fragment_count}" + assert fragment_count >= 45, f"Expected at least 45 fragments, found {fragment_count}" diff --git a/tests/test_recipe_generator.py b/tests/test_recipe_generator.py index 2ea5e7d..8ad372e 100644 --- a/tests/test_recipe_generator.py +++ b/tests/test_recipe_generator.py @@ -9,8 +9,6 @@ sys.path.insert(0, str(RECIPE_GENERATOR_DIR)) from generate_recipe import RecipeGenerator -INGREDIENTS_DIR = Path(__file__).parent.parent / 'ingredients' - class TestRecipeGenerator: """Test RecipeGenerator class.""" @@ -28,9 +26,6 @@ class TestRecipeGenerator: assert isinstance(self.generator.templates, dict) assert len(self.generator.templates) == 2 assert 'install' in self.generator.templates - assert 'install' in self.generator.templates - assert 'install' in self.generator.templates - assert 'live' in self.generator.templates assert 'live' in self.generator.templates def test_validate_template_success(self): @@ -59,90 +54,91 @@ class TestRecipeGenerator: assert any('not found' in error for error in errors) def test_generate_virtual_desktop_basic(self): - """Test generating basic virtual desktop recipe.""" + """Test generating basic desktop recipe.""" content = self.generator.generate_recipe('install', '43', desktop='gnome', storage='standard', security='secure') - assert '# A recipe for a virtual desktop' in content - assert '%ksappend fragments/shared/core/base.ks' in content - assert '%ksappend fragments/shared/desktop/gnome/packages.ks' in content - assert '%ksappend fragments/platform/generic-43/repo/fedora-mirrors.ks' in content - assert '%ksappend fragments/shared/core/security/enabled.ks' in content + assert '# An install recipe for desktop, server, or hypervisor' in content + assert '%ksappend fragments/core/base.ks' in content + assert '%ksappend fragments/desktop/gnome/packages.ks' in content + assert '%ksappend fragments/repo/fedora-43-mirrors.ks' in content + assert '%ksappend fragments/core/security/enabled.ks' in content def test_generate_virtual_desktop_encrypted(self): - """Test generating encrypted virtual desktop recipe.""" + """Test generating encrypted desktop recipe.""" content = self.generator.generate_recipe('install', 'rawhide', desktop='gnome', storage='encrypted', security='secure') - assert '%ksappend fragments/shared/storage/encrypted.ks' in content + assert '%ksappend fragments/storage/encrypted.ks' in content def test_generate_virtual_desktop_labwc(self): - """Test generating LabWC virtual desktop recipe.""" + """Test generating LabWC desktop recipe.""" content = self.generator.generate_recipe('install', '43', desktop='labwc', storage='standard', security='secure') - assert '%ksappend fragments/shared/desktop/labwc/config.ks' in content - assert '%ksappend fragments/shared/desktop/gnome/packages.ks' not in content + assert '%ksappend fragments/desktop/labwc/config.ks' in content + assert '%ksappend fragments/desktop/gnome/packages.ks' not in content def test_generate_virtual_desktop_devel(self): - """Test generating development mode virtual desktop recipe.""" + """Test generating development mode desktop recipe.""" content = self.generator.generate_recipe('install', '43', desktop='gnome', storage='standard', - security='devel') - assert '%ksappend fragments/shared/core/security/disabled.ks' in content - assert '%ksappend fragments/shared/core/security/enabled.ks' not in content + security='off') + assert '%ksappend fragments/core/security/disabled.ks' in content def test_generate_virtual_server(self): - """Test generating virtual server recipe.""" + """Test generating server recipe.""" content = self.generator.generate_recipe('install', 'rawhide', + initial_setup='server', security='secure') - assert '# A recipe for a virtual server' in content - assert '%ksappend fragments/shared/desktop/gnome/packages.ks' not in content - assert '%ksappend fragments/shared/initial-setup/server/config.ks' in content + assert '# An install recipe for desktop, server, or hypervisor' in content + assert '%ksappend fragments/initial-setup/server/config.ks' in content def test_generate_desktop_hypervisor_amd(self): """Test generating AMD CPU hypervisor recipe.""" content = self.generator.generate_recipe('install', 'rawhide', - cpu='amdcpu', + variant_type='hypervisor', + hypervisor='base', + hypervisor_type='amdcpu', security='secure') - assert '%ksappend fragments/shared/hypervisor/amdcpu.ks' in content - assert '%ksappend fragments/shared/hypervisor/intelcpu.ks' not in content + assert '%ksappend fragments/hypervisor/amdcpu.ks' in content + assert '%ksappend fragments/hypervisor/intelcpu.ks' not in content def test_generate_desktop_hypervisor_intel_gpu(self): """Test generating Intel CPU+GPU hypervisor recipe.""" content = self.generator.generate_recipe('install', 'rawhide', - cpu='intelcpu', - gpu='intelgpu', + variant_type='hypervisor', + hypervisor='base', + hypervisor_type='intelcpu', security='secure') - assert '%ksappend fragments/shared/hypervisor/intelcpu.ks' in content - assert '%ksappend fragments/shared/hypervisor/intelgpu.ks' in content + assert '%ksappend fragments/hypervisor/intelcpu.ks' in content def test_generate_live_desktop(self): """Test generating live desktop recipe.""" content = self.generator.generate_recipe('live', 'rawhide', desktop='gnome', security='secure') - assert '# A recipe for a live desktop' in content - assert '%ksappend fragments/shared/live/core/base.ks' in content - assert '%ksappend fragments/shared/live/core/storage.ks' in content + assert '# A live recipe for live-desktop or live-server' in content + assert '%ksappend fragments/live/core/base.ks' in content + assert '%ksappend fragments/live/core/storage.ks' in content def test_generate_live_server(self): """Test generating live server recipe.""" content = self.generator.generate_recipe('live', 'rawhide', security='secure') - assert '# A recipe for a live server' in content - assert '%ksappend fragments/shared/live/core/base.ks' in content - assert '%ksappend fragments/shared/initial-setup/server/config.ks' in content + assert '# A live recipe for live-desktop or live-server' in content + assert '%ksappend fragments/live/core/base.ks' in content def test_no_duplicate_includes(self): """Test that duplicate includes are prevented.""" content = self.generator.generate_recipe('install', 'rawhide', - cpu='intelcpu', - gpu='intelgpu', + variant_type='hypervisor', + hypervisor='base', + hypervisor_type='intelcpu', security='secure') includes = [line for line in content.split('\n') if line.startswith('%ksappend')] paths = [line.split()[1] for line in includes] @@ -160,49 +156,35 @@ class TestRecipeGenerator: def test_filename_generation_standard(self): """Test filename generation for standard configuration.""" filename = self.generator.generate_filename('install', '43', - desktop='gnome', - storage='standard', - security='secure') - assert filename == 'install_desktop_43.cfg' + desktop='gnome', + storage='standard', + security='secure') + assert filename == 'install_43.cfg' def test_filename_generation_encrypted(self): """Test filename generation for encrypted storage.""" filename = self.generator.generate_filename('install', 'rawhide', - desktop='gnome', - storage='encrypted', - security='secure') - assert filename == 'virtual-desktop_rawhide_encrypted.cfg' + desktop='gnome', + storage='encrypted', + security='secure') + assert filename == 'install_rawhide_encrypted.cfg' def test_filename_generation_devel(self): """Test filename generation for development mode.""" filename = self.generator.generate_filename('install', '43', - desktop='gnome', - storage='standard', - security='devel') - assert filename == 'virtual-desktop_43_devel.cfg' - - def test_filename_generation_cpu_gpu(self): - """Test filename generation for hypervisor with CPU/GPU.""" - filename = self.generator.generate_filename('install', 'rawhide', - cpu='intelcpu', - gpu='intelgpu', - security='secure') - assert filename == 'install_hypervisor_intelcpu_intelgpu_rawhide.cfg' - - def test_filename_generation_labwc(self): - """Test filename generation for non-default desktop.""" - filename = self.generator.generate_filename('install', '43', - desktop='labwc', - storage='standard', - security='secure') - assert filename == 'virtual-desktop_labwc_43.cfg' + desktop='gnome', + storage='standard', + security='off') + assert filename == 'install_43_devel.cfg' def test_filename_generation_hypervisor(self): - """Test filename generation for live server with hypervisor.""" - filename = self.generator.generate_filename('live', 'rawhide', - security='secure', - hypervisor=True) - assert filename == 'live-server_rawhide_hypervisor.cfg' + """Test filename generation for hypervisor.""" + filename = self.generator.generate_filename('install', 'rawhide', + variant_type='hypervisor', + hypervisor='base', + hypervisor_type='intelcpu', + security='secure') + assert filename == 'install_hypervisor_intelcpu_rawhide.cfg' def test_invalid_recipe_type(self): """Test error on invalid recipe type.""" @@ -247,91 +229,30 @@ clearpart --all --initlabel part /boot/efi --fstype="efi" --size=512 part / --fstype="ext4" --grow %packages -@base-graphical + %end """ issues = self.generator.validate_recipe_semantic(content, '43') - # Should have no syntax errors - assert not any('Syntax' in issue for issue in issues) - assert not any('Validation' in issue for issue in issues) + assert issues == [] + + def test_validate_recipe_semantic_invalid_syntax(self): + """Test semantic validation detects invalid syntax.""" + content = "validcommand\ninvalidcommand without proper format\n%packages\n%end" + issues = self.generator.validate_recipe_semantic(content, '43') + assert len(issues) > 0 def test_validate_recipe_semantic_empty(self): """Test semantic validation with empty content.""" content = "" issues = self.generator.validate_recipe_semantic(content, '43') - # Empty content should fail parsing but not crash - assert len(issues) >= 0 # At least info about empty content - - def test_validate_recipe_semantic_invalid_syntax(self): - """Test semantic validation detects invalid syntax.""" - content = """text -invalidcmd --option=value -%packages -@base-graphical -%end -""" - issues = self.generator.validate_recipe_semantic(content, '43') - # Should detect invalid command - has_syntax_error = any('Syntax' in issue or 'invalidcmd' in issue.lower() - for issue in issues) - # Or pykickstart warning if not available - has_warning = any('Warning' in issue or 'pykickstart' in issue.lower() - for issue in issues) - assert has_syntax_error or has_warning - - - def test_validate_recipe_full_validation(self): - """Test full validation combines file and semantic checks.""" - content = self.generator.generate_recipe('install', '43', - desktop='gnome', - storage='standard', - security='secure') - issues = self.generator.validate_recipe(content) - # Check ingredient existence - assert len([i for i in issues if 'Missing' in i]) == 0, \ - f"Found missing ingredients: {issues}" + assert issues == [] def test_check_deprecated_removed_command(self): - """Test detection of removed deprecated command.""" - content = """text -authconfig --enableshadow -%packages -@core -%end -""" - issues = self.generator.validate_recipe_semantic(content, '43') - # Should detect authconfig as removed - has_removed = any('ERROR' in i and 'authconfig' in i for i in issues) - assert has_removed + """Test detection of removed commands.""" + issues = self.generator._check_deprecated_commands("authconfig") + assert any('removed' in issue.lower() for issue in issues) def test_check_deprecated_warning_command(self): - """Test detection of deprecated command as warning.""" - content = """text -keyboard --evgrd -%packages -@core -%end -""" - issues = self.generator.validate_recipe_semantic(content, '43') - # Should detect keyboard as deprecated (warning) - has_warning = any('Warning' in i and 'keyboard' in i for i in issues) - assert has_warning - - def test_extract_version_with_dash(self): - """Test version extraction from filename with dash.""" - filename = 'test-43.cfg' - version = self.generator.extract_version('', filename) - assert version == '43' - - def test_extract_version_with_underscore(self): - """Test version extraction from filename with underscore.""" - filename = 'test_43.cfg' - version = self.generator.extract_version('', filename) - assert version == '43' - - def test_extract_version_from_content(self): - """Test version extraction from content.""" - content = "%ksappend fragments/platform/generic-43/repo/fedora-mirrors.ks" - version = self.generator.extract_version(content, 'test.cfg') - assert version == '43' - + """Test detection of deprecated commands.""" + issues = self.generator._check_deprecated_commands("keyboard") + assert any('deprecated' in issue.lower() for issue in issues)