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 393fbc0..99a0947 100644 Binary files a/recipe-generator/__pycache__/generate_recipe.cpython-314.pyc and b/recipe-generator/__pycache__/generate_recipe.cpython-314.pyc differ 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 c274213..28e49e2 100644 Binary files a/tests/__pycache__/test_recipe_generator.cpython-314-pytest-8.4.2.pyc and b/tests/__pycache__/test_recipe_generator.cpython-314-pytest-8.4.2.pyc differ diff --git a/tests/fixtures/expected_recipes/desktop-hypervisor-intelcpu-rawhide.cfg b/tests/fixtures/expected_recipes/desktop-hypervisor-intelcpu-rawhide.cfg new file mode 100644 index 0000000..e4d5a3d --- /dev/null +++ b/tests/fixtures/expected_recipes/desktop-hypervisor-intelcpu-rawhide.cfg @@ -0,0 +1,24 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# A recipe for a desktop 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/core/security/enabled.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/repo/rawhide-mirrors.ks diff --git a/tests/fixtures/expected_recipes/desktop-hypervisor-intelgpu-rawhide.cfg b/tests/fixtures/expected_recipes/desktop-hypervisor-intelgpu-rawhide.cfg new file mode 100644 index 0000000..e4d5a3d --- /dev/null +++ b/tests/fixtures/expected_recipes/desktop-hypervisor-intelgpu-rawhide.cfg @@ -0,0 +1,24 @@ +# __ ____ ____ _____ +# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ +# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ +# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / +# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ +# /_/ /____/ + +# A recipe for a desktop 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/core/security/enabled.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/repo/rawhide-mirrors.ks diff --git a/tests/fixtures/expected_recipes/desktop-hypervisor_rawhide.cfg b/tests/fixtures/expected_recipes/desktop-hypervisor_rawhide.cfg index 9f0c592..e4d5a3d 100644 --- a/tests/fixtures/expected_recipes/desktop-hypervisor_rawhide.cfg +++ b/tests/fixtures/expected_recipes/desktop-hypervisor_rawhide.cfg @@ -7,23 +7,18 @@ # A recipe for a desktop hypervisor -%ksappend fragments/shared/core/base.ks -%ksappend fragments/shared/storage/standard.ks -%ksappend fragments/platform/generic-rawhide/bootloader/grub.ks -%ksappend fragments/shared/core/locale.ks -%ksappend fragments/shared/core/services.ks -%ksappend fragments/shared/core/network.ks -%ksappend fragments/shared/packages/core-group.ks -%ksappend fragments/shared/packages/fedora-remix.ks -%ksappend fragments/shared/packages/hand-picked.ks -%ksappend fragments/shared/packages/hardware-support.ks -%ksappend fragments/shared/initial-setup/desktop/config.ks -%ksappend fragments/shared/desktop/gnome/config.ks -%ksappend fragments/shared/desktop/gnome/packages.ks -%ksappend fragments/shared/desktop/gnome/post-scripts.ks -%ksappend fragments/shared/desktop/vmm/packages.ks -%ksappend fragments/shared/desktop/vmm/post-scripts.ks -%ksappend fragments/platform/generic-rawhide/repo/rawhide-mirrors.ks -%ksappend fragments/shared/hypervisor/base/services.ks -%ksappend fragments/shared/hypervisor/base/packages.ks -%ksappend fragments/shared/hypervisor/base/post-scripts.ks \ No newline at end of file +%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/core/security/enabled.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/repo/rawhide-mirrors.ks diff --git a/tests/integration/__pycache__/test_integration.cpython-314-pytest-8.4.2.pyc b/tests/integration/__pycache__/test_integration.cpython-314-pytest-8.4.2.pyc index a2d8b72..6fa7595 100644 Binary files a/tests/integration/__pycache__/test_integration.cpython-314-pytest-8.4.2.pyc and b/tests/integration/__pycache__/test_integration.cpython-314-pytest-8.4.2.pyc differ diff --git a/tests/integration/test_integration.py b/tests/integration/test_integration.py index baf4708..6e8b8fa 100644 --- a/tests/integration/test_integration.py +++ b/tests/integration/test_integration.py @@ -75,17 +75,22 @@ def test_container_build(): def test_fragments_structure(): """Verify fragment directory structure.""" - # Check platform directories - assert (FRAGMENTS_DIR / 'platform' / 'generic-43' / 'repo').exists() - assert (FRAGMENTS_DIR / 'platform' / 'generic-rawhide' / 'repo').exists() + # Check core directories + assert (FRAGMENTS_DIR / 'core' / 'security').exists() - # Check shared directories - assert (FRAGMENTS_DIR / 'shared' / 'core').exists() - assert (FRAGMENTS_DIR / 'shared' / 'packages').exists() - assert (FRAGMENTS_DIR / 'shared' / 'storage').exists() - assert (FRAGMENTS_DIR / 'shared' / 'desktop').exists() - assert (FRAGMENTS_DIR / 'shared' / 'hypervisor').exists() + # Check desktop directories + assert (FRAGMENTS_DIR / 'desktop' / 'gnome').exists() + assert (FRAGMENTS_DIR / 'desktop' / 'labwc').exists() + assert (FRAGMENTS_DIR / 'desktop' / 'vmm').exists() + + # Check hypervisor directories + assert (FRAGMENTS_DIR / 'hypervisor' / 'base').exists() + assert (FRAGMENTS_DIR / 'hypervisor' / 'base').exists() + + # Check live directories + assert (FRAGMENTS_DIR / 'live' / 'core' / 'bootloader').exists() + assert (FRAGMENTS_DIR / 'live' / 'post').exists() # Count fragments fragment_count = len(list(FRAGMENTS_DIR.glob('**/*.ks'))) - assert fragment_count >= 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)