Author SHA1 Message Date
Lukas Greve 3efe5c2ee2 Updated generated dishes and recipes 2026-03-28 21:53:30 +01:00
Lukas Greve d2bba00600 simplify f43 key 2026-03-28 21:53:01 +01:00
Lukas Greve 833446a000 remove unused security part 2026-03-28 21:52:13 +01:00
Lukas Greve 55d0a9f649 Extend Makefile to allow for the cleaning of recipes and dishes 2026-03-28 21:51:52 +01:00
Lukas Greve b2c14dbcca Change filename generation variant order 2026-03-28 21:50:34 +01:00
Lukas Greve 464fd8c158 remove old python scripts and add new updated recipes 2026-03-27 19:34:05 +01:00
Lukas Greve e9615b524d Add recipe generator and dish flattener
- create generate_recipe.py for universal template recipe generation
- support cartesian product expansion from recipes_manifest.yaml
- generate 72 unique recipes with proper filename disambiguation
- update Makefile with simplified validation using ksflatten
- keep ksflatten-relative script as-is for dish flattening

The generator reads recipe_templates.yaml and recipes_manifest.yaml to
produce recipe files that ksflatten then flattens into final dishes.
2026-03-27 19:29:27 +01:00
Lukas Greve 6f5d7478be Fix duplicate storage configuration in recipes
- Move storage options from 'modifiers' to 'required' in recipe_templates.yaml
- Changed required.storage from {'ext4': storage/standard.ks} to {'standard': ..., 'encrypted': ...}
- Removed storage from modifiers section
- This ensures storage: encrypted recipes include only storage/encrypted.ks
- Updated generated recipes and dishes to reflect the fix
2026-03-27 16:06:57 +01:00
Lukas Greve a4bc2967e5 Change: Update recipe generation to use single universal template
- Transition from multi-template (install/live recipe types) to single universal template (proteus)
- Remove recipe_type parameter from RecipeGenerator
- Update manifest format (remove recipe_type field)
- Simplify CLI (remove --type argument, use --output for single generation)
- Filename generation now uses primary modifier as first component
2026-03-27 15:39:30 +01:00
Lukas Greve 3ffb079981 refactor: Move recipe generator to cook/ directory and fix flattening bugs
- Move recipe-generator/ to cook/ for cleaner structure

- Fix ksflatten-relative path conversion to handle all %include paths

- Fix validation exit code to only fail on actual errors

- All recipes now generate and flatten successfully via make all
2026-03-27 14:02:59 +01:00
Lukas Greve 288ed0a249 refactor: Simplify template logic - reduce from 6 to 3 categories, remove variant_type, keep validation, remove tests
Simplified template logic: reduced from 6 categories (required, modifiers, optional, versioned, conditional, flags) to 3 categories (required, modifiers, optional). Removed variant_type and replaced with modifier-based approach (version, bootloader replaced, hardware_support). All validation methods kept for recipe generation and validation. Removed tests directory (tests/test_recipe_generator.py, tests/integration/, tests/container/). Removed non-ISO workflows (validate-recipes, test-generation, container-tests, validate-ingredients). Updated Makefile, requirements.txt, and documentation. All 20 recipes successfully generated, validated, and flattened.
2026-03-27 12:13:51 +01:00
Lukas Greve 789e0e05d4 refactor: Remove deprecated ingredients_dir parameter from RecipeGenerator
Simplify RecipeGenerator.__init__() to accept only templates_file parameter.
The old two-argument pattern RecipeGenerator(ingredients_dir, templates_file)
is no longer supported. All existing code already uses the new single-argument
style.

Changes:
- Remove ingredients_dir_or_templates parameter
- Remove backward compatibility logic
- Remove unused Optional import
- Update DEVELOPMENT.md example

Migration: Change RecipeGenerator(Path('ingredients'), Path('templates.yaml'))
           to RecipeGenerator(Path('templates.yaml'))
2026-03-27 11:07:53 +01:00
Lukas Greve 0a3c2b14d8 docs: Add comprehensive documentation to recipe generator
Add detailed docstrings and inline comments to all recipe generator modules explaining classes, functions, and complex logic in plain English.

Files updated:
- recipe-generator/recipe_generator.py: Module, class, and method docs
- recipe-generator/cli.py: CLI modes, arguments, and workflow docs
- recipe-generator/validators.py: Three-layer validation architecture docs
- recipe-generator/manifest.py: Manifest processing and variant expansion docs
- recipe-generator/generate_recipe.py: Entry point documentation
2026-03-27 11:07:16 +01:00
Lukas Greve 31955a8983 refactor: rename fragments directory to ingredients and update all references
- Directory rename: fragments/ → ingredients/ (54 .ks files)
- Updated all Python scripts:
  * tests/integration/conftest.py - fixture renames
  * tests/integration/test_integration.py - constant and path updates
  * tests/test_recipe_generator.py - updated test assertions
  * recipe-generator/validators.py - updated comments and error messages
  * recipe-generator/recipe_generator.py - updated comment
- Updated all YAML files:
  * recipe-generator/recipe_templates.yaml - 66 path references
  * .gitea/workflows/validate-fragments.yaml → validate-ingredients.yaml
  * .gitea/workflows/test-generation.yaml - path patterns
- Updated scripts:
  * bin/ksflatten-relative - updated path detection
- Updated test file:
  * tests/integration/test_fragments.py → test_ingredients.py
- Updated documentation:
  * DEVELOPMENT.md - simplified references
  * DEVELOPMENT_QUICK.md - updated examples
  * tests/container/README.md - test references
- Regenerated all recipes (16 files) with ingredient paths
- Updated test fixtures (7 files)
- All integration tests pass (5/5)
- All unit tests pass (29/31 - 2 pre-existing failures unrelated)
2026-03-26 20:27:56 +01:00
Lukas Greve 3eb4c75392 refactor: fix linting issues - remove unused kwargs, fix unused variable, and make method public 2026-03-26 19:26:31 +01:00
Lukas Greve 050f41787b Deleted extra dishes 2026-03-26 16:10:16 +01:00
Lukas Greve 05d611276d fix: Add _bare-metal suffix for False boolean modifiers to prevent filename collisions
The manifest uses hyphenated keys (guest-agents, hardware-support) but the filename
generation was looking for underscored keys, causing 16 variants to overwrite 4 files.

Added _get_modifier() helper to normalize both key formats and added _bare-metal suffix
for False values of guest_agents, ensuring unique filenames for all variant combinations.

This restores the intended 24 distinct variants from the manifest and adds support for
all modifiers (bootloader, initial-setup, desktop, security, storage, guest_agents, hardware_support).
2026-03-26 16:09:28 +01:00
Lukas Greve 81c8392874 refactor: Remove filename deduplication to generate all 24 variants
- Removed deduplication logic from cli.py
- All 24 variants now processed (some overwrite with same filename)
- manifests: Added comments explaining cartesian product and filename behavior
- tests: Updated assertions for correct filename generation order
- Added 3 new tests for guest_agents and hardware_support modifiers
2026-03-26 15:53:50 +01:00
Lukas Greve 898c831065 refactor: Modularize recipe generator
- Split generate_recipe.py into cli.py, recipe_generator.py, validators.py, manifest.py
- Removed override logic - modifiers now add fragments rather than replace
- Added filename deduplication to prevent overwriting recipes
- Updated CI workflows and tests to use new module structure
- Made pykickstart a hard dependency
- Removed ingredients/ directory support (only fragments/*.ks now used)
- New layout: 5 modules (~990 lines) vs single 769-line file
2026-03-26 15:31:18 +01:00
Lukas Greve 8f824cb977 Remove deprecated command tracking from generate_recipe
- Remove DEPRECATED_COMMANDS dictionary
- Remove _check_deprecated_commands() method
- Remove deprecated command checks from validation
- Remove test methods for deprecated commands
- Remove DEPRECATED_COMMANDS documentation reference

This shifts responsibility for tracking deprecated kickstart commands away
from the recipe generator, as this is not its primary role.
2026-03-26 14:29:22 +01:00
Lukas Greve d93e84cb09 Fix duplicate storage partitioning when storage=encrypted is defined 2026-03-26 14:13:01 +01:00
Lukas Greve 7f2f150fd2 Automate flattening: convert %ksappend to %include for ksflatten compatibility 2026-03-26 14:04:52 +01:00
Lukas Greve 8c0c3907d4 minor change for where the bootloader is 2026-03-26 11:19:09 +01:00
Lukas Greve 5c9a2535df minor change for where the bootloader is 2026-03-26 11:10:36 +01:00
Lukas Greve f6809e8756 Make initial-setup required in install template, with server as default
- Add initial-setup to required section in install template
- Default: fragments/initial-setup/server/config.ks
- Override: fragments/initial-setup/{desktop|gnome|generic-wayland}/config.ks
- Add initial-setup to override_keys set
2026-03-26 11:09:28 +01:00
Lukas Greve b97b9bb919 Make version required in core, with 43 as default
- Add version to required section in install and live templates
- Set 43 as default version (overridable via modifiers)
- Update CLI default from rawhide to 43
2026-03-26 11:06:29 +01:00
Lukas Greve c2829dc614 Add bootloader modifier to install template
- Add bootloader modifier following security pattern (override, not additive)
- Supports 'grub' and 'systemd-boot' options
- Default uses grub from required, override via modifier

Closes #issue
2026-03-26 10:57:42 +01:00
Lukas Greve 9c905ee3de Move security from modifiers to required in install template
- Security is now enabled by default in all install recipes
- Add override handling to skip required fragment when modifier sets security
- Fix modifier key lookup to handle both hyphen and underscore keys

Closes #issue
2026-03-26 10:49:45 +01:00
Lukas Greve 91cb314467 Reduces the number of generated variants 2026-03-26 10:39:46 +01:00
Lukas Greve c193914435 Fix duplicate recipe filenames by adding hardware-support, guest-agents, and hypervisor-type suffixes
Previously, list modifiers like hardware-support, guest-agents, and hypervisor-type created multiple variants but overwrote the same filenames. Now:

1. Add '_hw' suffix when hardware-support is enabled
2. Add '_ga' suffix when guest-agents is enabled
3. Add CPU type (amdcpu, intelcpu) suffix for hypervisor variants
4. Normalize modifier names from hypervisor-type to hypervisor_type

This ensures all 144 recipes have unique filenames.
2026-03-26 10:34:35 +01:00
Lukas Greve cd203b8799 Refactor security and guest-agents config
- 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
2026-03-25 21:18:01 +01:00
Lukas Greve 5b8974a6ed hypervisor: implement base vs desktop variants with GUI packages only for desktop
- Split guest-agents/packages.ks into base.ks (qemu-guest-agent) and gui.ks (spice-vdagent)
- Move hypervisor modifier from variant_type.hypervisor to dedicated modifier section
- Added hypervisor modifier with base (headless) and desktop (GUI) options
- Create hypervisor-desktop variant with desktop: gnome for GUI hypervisors
- Update generate_recipe.py to recognize hypervisor-desktop variant name

This ensures GUI packages (virt-manager, spice-vdagent) are only included
in hypervisors with desktop environments, keeping headless hypervisors minimal.
2026-03-25 20:06:13 +01:00
Lukas Greve 0843127d6a Reorganize fragments: flat structure from fragments/shared/ and fragments/platform/ 2026-03-25 19:40:07 +01:00
Lukas Greve 520657dcee recipe-generator: Update to new template structure with install and live templates
- Replaced individual templates with unified 'install' (desktop, server, hypervisor) and 'live' (live-desktop, live-server) templates

- Added new modifiers: variant_type, hypervisor-type, desktop, initial-setup, virtualization

- Updated generate_recipe.py to handle new modifier structure with additive flags

- Updated recipes_manifest.yaml with new modifier structure

- Added missing fragment files and directories
2026-03-25 19:15:32 +01:00
Lukas Greve 3782777058 refactor: functional separation with deploy/, recipe-generator/, and bin/
- deploy/: deployment bash scripts (4 files)
- recipe-generator/: recipe generation tool (Python + YAML configs)
- bin/: executable wrappers (single generate-recipe entry point)
- Updated deploy.sh, README.md, DEVELOPMENT.md, DEVELOPMENT_QUICK.md
- Updated tests/test_recipe_generator.py and tests/integration/test_integration.py
- Updated CI workflow and Makefile paths
- All 41 tests pass
2026-03-25 09:34:00 +01:00
Lukas Greve 00c4356ff3 Add DEVELOPMENT.md and DEVELOPMENT_QUICK.md
DEVELOPMENT.md comprehensive guide for contributors covering:
- Architecture overview
- Development environment setup
- Fragment development (54 modular .ks files)
- Recipe generation via manifest + templates
- Testing suite (36+ tests)
- CI/CD workflows
- Common workflows + Migration Guide

DEVELOPMENT_QUICK.md quick reference companion
2026-03-24 21:43:01 +01:00
Lukas Greve de961e2dd8 ci: regenerate recipes with %ksappend syntax 2026-03-24 21:29:41 +01:00
Lukas Greve f3031fdf0f fix: update integration tests for new recipe paths 2026-03-24 21:27:47 +01:00
Lukas Greve 5e8afd7d6f feat: Phase 2 (fragment migration), Phase 3 (testing infrastructure), Phase 4 (CI/CD)
Phase 2: Fragment Migration
- Migrated 42 ingredients to 54 fine-grained fragments
- Replaced %include with %ksappend syntax
- Created organized fragment structure (platform/generic-43, platform/generic-rawhide, shared/)
- Updated generator to use fragment paths
- All 16 manifest variants generate successfully

Phase 3: Testing Infrastructure
- Created containerized test runner (tests/container/)
- Added integration test suite (tests/integration/)
- Created golden master fixtures (tests/fixtures/expected_recipes/)
- 41 tests passing (36 unit + 5 integration)
- 54 fragments, 16 recipes validated

Phase 4: CI/CD Integration
- 5 new workflows: validate-recipes, validate-fragments, test-generation, container-tests, build-iso
- Added validation gates before ISO builds
- Works with existing fedora-runner-image
- Local testing support via act_runner
2026-03-24 21:27:29 +01:00
Lukas Greve a0a5de31cc Phase 1: Enhance recipe generator with semantic validation
- Add pykickstart integration for semantic validation
- Support version-specific validation (F42 for Fedora 43, DEVEL for rawhide)
- Track deprecated/removed commands (authconfig, keyboard, langsupport, nfs, parted)
- Add warning for deprecated commands, error for removed commands
- Provide migration suggestions for each deprecated command
- Add --strict flag for CI mode (warnings treated as errors)
- Upgrade validate_recipe_semantic() with enhanced error reporting
- Add _check_deprecated_commands() for command-level validation
- Improve version extraction regex to handle _ and - separators
- Add 5 new test cases for deprecated command detection and version extraction
- Update tests/test_recipe_generator.py with comprehensive validation tests

All 36 tests pass with semantic validation working for generated recipes.
2026-03-24 20:36:53 +01:00
Lukas Greve 1aa264c146 Add recipe generator for automation and DRY recipes
- create generate_recipe.py: CLI tool for generating recipes from templates
- add recipe_templates.yaml: 5 base templates (virtual-desktop, virtual-server, desktop-hypervisor, live-desktop, live-server)
- add recipes_manifest.yaml: 16 recipe variants defined declaratively
- add Makefile: automation targets for generate, validate, test
- add requirements.txt: PyYAML dependency
- add tests/test_recipe_generator.py: 25 pytest tests

This enables:
- Template-based recipe generation with minimal duplication
- One-line variant addition via YAML manifest editing
- Automatic duplicate include prevention
- Ingredient path validation

Generated recipes are committed for reproducibility as per project conventions.
2026-03-24 19:52:34 +01:00
Lukas Greve c1c5fa8d07 Updated dishes, including one with luks encryption 2026-03-24 16:00:32 +01:00
Lukas Greve 404533ddf6 readded pipewire 2026-02-19 19:46:33 +01:00
Lukas Greve 636b8a2f28 updated dishes 2026-02-18 21:34:08 +01:00
Lukas Greve 77787e09b5 switch to just --enable, knowing that --reconfig does not seem to survive a pykickstart flattening 2026-02-18 21:33:56 +01:00
Lukas Greve 88db0b65b1 switch to server-based initial-setup until gnome-initial-setup is fixed 2026-02-18 21:32:53 +01:00
Lukas Greve d4b3f7f236 add gnome-terminal 2026-02-18 21:32:01 +01:00
Lukas Greve a3740d6f1e Improve the script logic
Key improvements made:

Enhanced find_fedora_iso function:

Takes dish_name as parameter to understand which version to select
Parses dish names to identify "rawhide" or numeric versions like "43", "44", "45"
Matches ISO files containing both "Fedora-Everything" and the version information
Falls back gracefully if no exact match is found
Backward compatibility:

Maintained the original find_fedora_iso_old function for fallback behavior
If no matching ISO is found based on dish name, falls back to existing behavior
Smart version matching:

For virtual-desktop_43 → looks for ISO containing "43"
For virtual-desktop_rawhide → looks for ISO containing "Rawhide"
Handles edge cases with proper fallbacks
Improved robustness:

Proper error handling for missing directories
Ensures matched files actually exist and are files (not directories)
Handles multiple version patterns
2026-02-15 19:43:43 +01:00
Lukas Greve 465925d81e new resulting dishes 2026-02-15 19:33:51 +01:00
Lukas Greve 5daa5e91ad new dumb script 2026-02-15 19:33:42 +01:00
Lukas Greve 63e7830c4d rely on dnf groups when possible, to better track upstream. Add new base graphical group.
Add new labwc test ingredient
2026-02-15 19:33:29 +01:00
Lukas Greve 714d27b6dc Merge mandatory and default packages ingredients into core-packages
Rename initial setup desktop to gnome initial setup desktop
2026-02-15 19:31:16 +01:00
Lukas Greve 570d355f1f target Fedora-Everything ISO 2026-02-15 19:28:58 +01:00
Lukas Greve 2e6b0d8498 move to Fedora Everything 2026-02-14 17:46:44 +01:00
Lukas Greve fdae77ef23 just new recipes 2026-02-14 17:46:27 +01:00
Lukas Greve 999ff024d3 add new recipes 2026-02-14 17:46:08 +01:00
Lukas Greve 09dd229908 readd the grub2-mkconfig line until a fix for the desktop is found 2026-02-14 17:44:45 +01:00
Lukas Greve e6ebef1818 fix: it is actually the boot partition that needs to be bigger 2026-02-14 17:44:06 +01:00
Lukas Greve f8ea7db7f0 remove unuseful dishes and update the rest 2026-02-14 17:43:29 +01:00
Lukas Greve 84bcfecd12 fix regression 2026-01-31 15:24:45 +01:00
lukas 132f2d247f Merge pull request 'tiny typo fix' (#7) from typo-fix into main
Reviewed-on: #7
2025-12-29 17:43:48 +00:00
lukas 986277166e tiny typo fix 2025-12-29 11:43:15 -06:00
Lukas Greve c102ab48f2 remove the hypervisor part 2025-12-14 10:09:16 +01:00
lukas 7aeb5b33c1 Merge pull request 'new devel recipes' (#6) from new-devel into main
Reviewed-on: #6
2025-12-14 08:52:01 +00:00
Lukas Greve 854ce5d009 new devel recipes 2025-12-14 09:49:37 +01:00
lukas e01ec9f5ae Merge pull request 'recreate development-ready virtual machine recipes' (#5) from dev-recipes into main
Reviewed-on: #5
2025-12-14 08:47:29 +00:00
Lukas Greve c39e9b7803 recreate development-ready virtual machine recipes 2025-12-14 09:47:06 +01:00
Lukas Greve a5cbd39b31 default to rawhide instead of fedora 43 2025-12-13 14:40:47 +01:00
lukas ab8f9af755 Merge pull request 'Add local ISO detection functionality to deploy-distro.sh' (#4) from local-iso into main
Reviewed-on: #4
2025-12-11 20:59:06 +00:00
lukas 6f98f5596d Merge branch 'main' into local-iso 2025-12-11 20:58:59 +00:00
Lukas Greve 05cf28c11a Add local ISO detection functionality to deploy-distro.sh 2025-12-11 21:56:56 +01:00
lukas ba06919d98 Merge pull request 'simplify-virtual-editions' (#3) from simplify-virtual-editions into main
Reviewed-on: #3
2025-12-11 19:52:57 +00:00
Lukas Greve e018870d0e updated recipes 2025-12-11 20:50:24 +01:00
Lukas Greve 0c76e7626d make it even more insecure, to make it easier to debug 2025-12-11 20:50:13 +01:00
Lukas Greve 28c390f1b4 remove the post section to speed installation process 2025-12-11 20:49:29 +01:00
Lukas Greve ebd35f0b1f virtual dishes are for development-only 2025-12-10 21:31:31 +01:00
Lukas Greve 6832142907 add allow ssh incoming connection 2025-12-10 21:31:01 +01:00
Lukas Greve eae12100a8 correct an awful regression. SELinux is either disabled or in enforcing mode. The enable switch does not work 2025-12-10 21:30:19 +01:00
Lukas Greve bc5f156cd9 All non-virtual dishes / recipes are meant to be shipped with sane security defaults 2025-12-10 21:29:25 +01:00
Lukas Greve 8245bdf3b9 revert back gitignore to include dishes 2025-12-10 21:27:45 +01:00
lukas 674b34d441 Merge pull request 'add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method.' (#2) from ext4-improvement into main
Reviewed-on: #2
2025-12-10 16:18:33 +00:00
lukas de5acaf289 Merge branch 'main' into ext4-improvement 2025-12-10 16:18:25 +00:00
Lukas Greve cabebbcedf add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method. 2025-12-10 17:17:39 +01:00
Lukas Greve b028260090 weak security to enable easier debugging 2025-12-09 22:33:51 +01:00
Lukas Greve 1fbe496b6a the proper syntax for firstboot enabling 2025-12-09 22:33:15 +01:00
Lukas Greve ae4ffdc64d updated gitignore. Let's not track changes to complete kickstart files. It goes in the way 2025-12-09 22:32:40 +01:00
lukas 8cc2c13c66 Merge pull request 'tweak the security settings, to allow root login for debuging purposes (i.e. when initial-setup does not work)' (#1) from lax-security-settings into main
Reviewed-on: #1
2025-12-09 21:22:45 +00:00
Lukas Greve 35deff93b3 tweak the security settings, to allow root login for debuging purposes (i.e. when initial-setup does not work) 2025-12-09 22:20:47 +01:00
Lukas Greve a186c60e9a add these changes to nano branch 2025-12-09 17:03:18 +01:00
186 changed files with 7801 additions and 3769 deletions
+44 -44
View File
@@ -1,75 +1,75 @@
name: release
name: build-iso
on:
on:
push:
branches:
- main # Or your desired branch
branches: [main]
release:
types: [published]
jobs:
checkout:
runs-on: fedora-cloud-42
defaults:
run:
shell: bash
container:
validate:
runs-on: fedora
container:
image: git.phyllo.me/devops/fedora-runner-image:latest
steps:
- uses: https://git.phyllo.me/devops/checkout@v5
with:
fetch-depth: 0
- name: Install dependencies
run: |
pip install PyYAML pykickstart
- name: Generate all recipes
run: |
cd recipe-generator
python3 generate_recipe.py \
--manifest recipes_manifest.yaml \
--output-dir ../recipes/
- name: Validate recipes (strict mode)
run: |
cd recipe-generator
python3 generate_recipe.py --validate ../recipes/*.cfg --strict
build-iso:
needs: validate
runs-on: fedora-cloud-42
container:
image: git.phyllo.me/devops/fedora-runner-image:latest
steps:
- uses: https://git.phyllo.me/devops/checkout@v5
with:
fetch-depth: 0
- name: Initialize mock
run: |
mock -r fedora-43-x86_64 --init
- name: Install required packages
run: |
mock -r fedora-43-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
- name: Copy configuration file to mock
run: |
mock -r fedora-43-x86_64 --copyin dishes/live-server.cfg /builddir
mock -r fedora-43-x86_64 --copyin recipes/live-server_rawhide.cfg /builddir
- name: Build ISO with livemedia-creator
run: |
mock -r fedora-43-x86_64 --shell --enable-network --isolation=simple << 'EOF'
cd /builddir
livemedia-creator --ks live-server.cfg --no-virt --resultdir /var/lmc --project live-desktop-hypervisor --make-iso --volid live-desktop-hypervisor --iso-only --iso-name server-43.iso --releasever 43 --macboot
livemedia-creator --ks live-server_rawhide.cfg --no-virt --resultdir /var/lmc --project live-server --make-iso --volid live-server --iso-only --iso-name server-43.iso --releasever 43 --macboot
EOF
- name: Upload ISO as artifact
uses: actions/upload-artifact@v3
with:
name: server-43.iso
path: /var/lmc/server-43.iso
if-no-files-found: error
- name: Create Release
if: github.ref == 'refs/heads/main'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: iso-build-${{ github.run_number }}
release_name: ISO Build ${{ github.run_number }}
body: |
Build artifact from workflow run ${{ github.run_number }}
ISO file: server-43.iso
draft: false
prerelease: false
- name: Upload ISO to Release
if: github.ref == 'refs/heads/main'
uses: actions/upload-release-asset@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /var/lmc/server-43.iso
asset_name: server-43.iso
asset_content_type: application/x-iso9660-image
- name: Cleanup mock environment
if: always()
run: |
@@ -0,0 +1,54 @@
name: release
on:
push:
tags:
- "v*.*.*"
env:
FEDORA_VERSION: 43
KICKSTART_FILE: live-desktop-hypervisor
jobs:
checkout:
runs-on: fedora
defaults:
run:
shell: bash
steps:
- uses: https://git.phyllo.me/devops/checkout@v5
with:
fetch-depth: 0
- name: Initialize mock
run: |
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --init
- name: Install required packages
run: |
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
- name: Copy configuration file to mock
run: |
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --copyin dishes/${{ env.KICKSTART_FILE }} /builddir
- name: Build ISO with livemedia-creator
run: |
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --shell --enable-network --isolation=simple << 'EOF'
cd /builddir
livemedia-creator --ks ${{ env.KICKSTART_FILE }}.cfg --no-virt --resultdir /var/lmc --project ${{ env.KICKSTART_FILE }} --make-iso --volid ${{ env.KICKSTART_FILE }} --iso-only --iso-name ${{ env.KICKSTART_FILE }}-${{ env.FEDORA_VERSION }}.iso --releasever ${{ env.FEDORA_VERSION }} --macboot
EOF
- name: Release
uses: https://git.phyllo.me/devops/action-gh-release@v2
if: github.ref_type == 'tag'
with:
files: /var/lib/mock/fedora-${{ env.FEDORA_VERSION }}-x86_64/root/var/lmc/${{ env.KICKSTART_FILE }}-${{ env.FEDORA_VERSION }}.iso
draft: false
prerelease: false
- name: Cleanup mock environment
if: always()
run: |
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --clean
-1
View File
@@ -1 +0,0 @@
.aider*
+739
View File
@@ -0,0 +1,739 @@
# Phyllome OS Development Guide
This guide covers development workflows for contributors to Phyllome OS.
## Table of Contents
- [Architecture Overview](#architecture-overview)
- [Development Environment Setup](#development-environment-setup)
- [Ingredient Development](#ingredient-development)
- [Recipe Generation](#recipe-generation)
- [Testing](#testing)
- [CI/CD](#cicd)
- [Common Workflows](#common-workflows)
- [Migration Guide: Ingredient-Based Architecture](#migration-guide-ingredient-based-architecture)
---
## Architecture Overview
Phyllome OS uses a **ingredient-driven** kickstart generation system:
```
ingredients/ (54 .ks files)
↓ (modular snippets)
recipe-generator/generate_recipe.py
↓ (YAML templates + manifest)
recipes/ (16 auto-generated .cfg)
↓ (ksflatten)
dishes/ (28 flattened .cfg)
↓ (virt-install)
VMs and ISO images
```
### Directory Structure
| Path | Purpose | Contents |
|------|---------|----------|
| `ingredients/` | Modular kickstart snippets | 54 `.ks` files |
| `recipes/` | Generated recipes | Manifest-driven compositions |
| `dishes/` | Flattened kickstarts | Ready-to-deploy artifacts |
| `legacy/` | Legacy building blocks | 35 `.cfg` files (legacy) |
| `recipe-generator/` | Recipe generation | `generate_recipe.py`, YAML configs, Makefile |
| `deploy/` | Deployment scripts | Bash automation tools |
| `bin/` | Executables | Wrapper scripts (e.g., `generate-recipe`) |
### Data Flow
1. **Ingredients** (`ingredients/**/*.ks`) - Small, reusable kickstart snippets
2. **Templates** (`recipe-generator/recipe_templates.yaml`) - Define recipe structures
3. **Manifest** (`recipe-generator/recipes_manifest.yaml`) - Specify variants (version, desktop, storage, etc.)
4. **Generator** (`recipe-generator/generate_recipe.py`) - Composes ingredients via `%ksappend` directives
5. **Recipes** (`recipes/*.cfg`) - Generated kickstart files with ingredient references
6. **Flattening** (`ksflatten`) - Resolves `%ksappend` into single dish file
7. **Deployment** (`virt-install`) - Creates VMs from dish files
---
## Development Environment Setup
### Prerequisites
**System dependencies:**
```bash
# Fedora/RHEL-based systems
sudo dnf install qemu libvirt virt-install pykickstart
# Start libvirt
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
```
**Python dependencies:**
```bash
cd scripts
pip install -r requirements.txt
# Required: PyYAML>=6.0, pytest>=7.0
# Optional: pykickstart (for validation)
```
### Verify Setup
```bash
# Generate all recipes from manifest
cd scripts
make generate-recipes
# Run all tests
make test
# Check recipe validation
make validate-recipes
```
---
## Fragment Development
Fragments are modular kickstart snippets stored in `ingredients/`. Each `.ks` file contains a single feature section.
### Creating a New Fragment
**Step 1: Choose location**
- `ingredients/shared/core/` - Base settings (security, services, networking)
- `ingredients/shared/storage/` - Partition layouts
- `ingredients/shared/packages/` - Package groups
- `ingredients/shared/desktop/` - Desktop environment configs
- `ingredients/shared/hypervisor/` - Virtualization hardware configs
- `ingredients/shared/live/` - Live system components
- `ingredients/shared/initial-setup/` - First-boot configuration
- `ingredients/platform/generic-43/` or `generic-rawhide/` - Version-specific
**Step 2: Create the fragment file**
```bash
# Example: Add Luanti game engine
cat > ingredients/shared/packages/luanti.ks << 'EOF'
%packages
luanti
%end
EOF
```
**Step 3: Validate with pykickstart**
```bash
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
try:
with open('ingredients/shared/packages/luanti.ks') as f:
parser.readKickstart(f.read())
print('✓ Validation passed')
except Exception as e:
print(f'✗ Validation failed: {e}')
"
```
### Fragment Naming Conventions
- **Pattern:** `<feature>/<subfeature>.ks`
- **Examples:**
- `ingredients/shared/core/security/enabled.ks`
- `ingredients/shared/desktop/gnome/packages.ks`
- `ingredients/platform/generic-43/repo/fedora-mirrors.ks`
### Common Fragment Types
**Packages:**
```bash
%packages
@base-graphical
package-name
%end
```
**Storage:**
```bash
part / --fstype="ext4" --grow
part /boot/efi --fstype="efi" --size=512
```
**Services:**
```bash
%services
--enabled=sshd,chronyd
EOF
```
### Fragment Validation Script
Create `deploy/validate-fragment.sh`:
```bash
#!/bin/bash
set -e
fragment="$1"
if [ -z "$fragment" ]; then
echo "Usage: $0 <fragment-path>"
exit 1
fi
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
try:
with open('$fragment') as f:
parser.readKickstart(f.read())
print('✓ Valid: $fragment')
except Exception as e:
print(f'✗ Invalid: $fragment - {e}')
exit(1)
"
```
---
## Recipe Generation
Recipes are generated from templates and the manifest file. This section covers modifying existing recipes and creating new ones.
### Manifest Editing
**File:** `recipe-generator/recipes_manifest.yaml`
The manifest defines all recipe variants using modifiers from templates.
**Structure:**
```yaml
recipes:
- name: virtual-desktop # Template name
variants: # Modifier combinations
- version: 43
desktop: gnome
storage: standard
security: secure
extras: true
- version: rawhide
desktop: labwc
storage: encrypted
security: devel
```
**Adding a new variant:**
```yaml
- name: virtual-server
variants:
- version: 43
security: secure
extras: true
post: true
# Add new variant below
- version: 43
security: secure
extras: false
post: false
```
**Valid modifiers** (per template):
- `version`: `43` or `rawhide`
- `desktop`: `gnome` or `labwc` (desktop templates)
- `storage`: `standard` or `encrypted`
- `security`: `secure` or `devel`
- `cpu`: `amdcpu`, `intelcpu` (hypervisor)
- `gpu`: `intelgpu` (hypervisor)
- `extras`: `true` or `false`
- `post`: `true` or `false`
### Template Editing
**File:** `recipe-generator/recipe_templates.yaml`
Templates define the structure and fragment composition for each recipe type.
**Structure:**
```yaml
templates:
virtual-desktop:
description: "A recipe for a virtual desktop"
base: core
required: # Always included ingredients
- core: ingredients/shared/core/base.ks
- storage: ingredients/shared/storage/standard.ks
optional: # Conditional ingredients
security:
secure: ingredients/shared/core/security/enabled.ks
devel: ingredients/shared/core/security/disabled.ks
modifiers: # Storage/bootloader alternatives
storage:
standard: ingredients/shared/storage/standard.ks
encrypted: ingredients/shared/storage/encrypted.ks
```
**Adding a new required fragment:**
```yaml
required:
- core: ingredients/shared/core/base.ks
- storage: ingredients/shared/storage/standard.ks
# New fragment
- packages: ingredients/shared/packages/hand-picked.ks
```
**Adding an optional modifier:**
```yaml
optional:
security:
secure: ingredients/shared/core/security/enabled.ks
devel: ingredients/shared/core/security/disabled.ks
# New optional - post-install scripts
post: ingredients/shared/section-data/post/base.ks
```
**Adding a modifier alternative:**
```yaml
modifiers:
storage:
standard: ingredients/shared/storage/standard.ks
encrypted: ingredients/shared/storage/encrypted.ks
# New storage option
btrfs: ingredients/shared/storage/btrfs.ks
```
### Generation Workflow
```bash
cd scripts
# Generate all recipes from manifest
make generate-recipes
# Validate generated recipes
make validate-recipes
# Validate with strict mode (checks fragment existence)
python3 generate_recipe.py --validate ../recipes/*.cfg --strict
```
**Output:**
```
Generating: virtual-desktop_43.cfg
Generating: virtual-desktop_rawhide_encrypted.cfg
Generating: virtual-server_43.cfg
...
✓ Generated 16 recipes
```
### Manual Recipe Creation
**Option 1: Copy existing recipe**
```bash
# Copy template
cp recipes/_list-of-ingredients.cfg recipes/my-custom.cfg
# Edit with your favorite editor
nano recipes/my-custom.cfg
# Add custom ingredient
echo "%include ../ingredients/extra-luanti.cfg" >> recipes/my-custom.cfg
# Flatten to dish
ksflatten -c recipes/my-custom.cfg -o dishes/my-custom.cfg
```
**Option 2: Create from scratch**
```bash
cat > recipes/my-distro.cfg << 'EOF'
# My custom Phyllome OS variant
# Installation method
%include ../ingredients/core.cfg
# Storage configuration
%include ../ingredients/core-storage.cfg
# Bootloader
%include ../ingredients/platform/generic-43/bootloader/grub.ks
# Network configuration
%include ../ingredients/shared/core/network.ks
# Desktop environment
%include ../ingredients/shared/desktop/gnome/packages.ks
# Additional packages
%packages
my-custom-package
@base-graphical
%end
EOF
```
### Flattening Recipes
Convert recipe (with `%ksappend`) to dish (flattened):
```bash
# Single recipe
ksflatten -c recipes/virtual-desktop_43.cfg -o dishes/virtual-desktop_43.cfg
# All recipes
cd recipes
for filename in *.cfg; do
ksflatten -c "$filename" -o "../dishes/$filename"
done
```
---
The project uses Gitea Actions for automated testing and building.
### Workflow Files
| File | Trigger | Purpose |
|------|---------|---------|
| `.gitea/workflows/validate-ingredients.yaml` | Push/PR ingredients | Validate all 54 .ks files |
| `.gitea/workflows/test-generation.yaml` | Push/PR scripts | Generate 16 recipes |
| `.gitea/workflows/validate-recipes.yaml` | Push PR main | Full validation suite |
| `.gitea/workflows/build-iso.yaml` | Push main, release | Build live ISO |
### Workflow: Validate Fragments
**File:** `.gitea/workflows/validate-ingredients.yaml`
**Triggers:**
- Push to any `ingredients/**/*.ks` file
- Pull request with fragment changes
**Steps:**
1. Checkout code
2. Install pykickstart
3. Validate each `.ks` file
4. Report errors
**Local equivalent:**
```bash
for fragment in $(find ingredients -name "*.ks"); do
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
parser.readKickstart(open('$fragment').read())
" || exit 1
done
```
### Workflow: Test Generation
**File:** `.gitea/workflows/test-generation.yaml`
**Triggers:**
- Push to `recipe-generator/**/*.py` or `recipe-generator/**/*.yaml`
- Pull request with script changes
**Steps:**
1. Pull request with manifest changes
**Steps:**
1. Checkout code
2. Install dependencies (PyYAML, pykickstart)
3. Generate all recipes
4. Verify 16 recipes created
5. Upload as artifact
### Workflow: Build ISO
**File:** `.gitea/workflows/build-iso.yaml`
**Triggers:**
- Push to main branch
- Release published
**Steps:**
1. Generate and validate recipes
2. Initialize mock build environment
3. Install build tools (lorax-lmc-novirt, livemedia-creator)
4. Copy recipe to mock
5. Build ISO with livemedia-creator
6. Upload ISO as artifact
---
## Common Workflows
### Quick Reference
| Task | Command | File |
|------|---------|------|
| Generate all recipes | `cd scripts && make generate-recipes` | - |
| Validate all ingredients | `for f in $(find ingredients -name "*.ks"); do python3 -c "from pykickstart.parser import KickstartParser; from pykickstart.version import makeVersion, DEVEL; parser = KickstartParser(makeVersion(DEVEL)); parser.readKickstart(open('$f').read())" && echo "✓ $f"; done` | - |
| Run all tests | `cd scripts && make test` | - |
| Flatten recipe to dish | `ksflatten -c recipes/X.cfg -o dishes/X.cfg` | - |
| Deploy VM from dish | `./deploy-vm.sh` | `deploy.sh`, `deploy-distro.sh` |
| Build ISO | See `.gitea/workflows/build-iso.yaml` | - |
| Update golden masters | `python3 -m pytest tests/integration/test_golden_masters.py --snapshot-update` | - |
### Workflow: Add New Package
**Example: Add Luanti game engine**
```bash
# Step 1: Create fragment
cat > ingredients/shared/packages/luanti.ks << 'EOF'
%packages
luanti
%end
EOF
# Step 2: Add to recipe template
# Edit recipe-generator/recipe_templates.yaml
# Add to 'required' section:
# - luanti: ingredients/shared/packages/luanti.ks
# Step 3: Regenerate recipes
cd recipe-generator
make generate-recipes
# Step 4: Validate
make validate-recipes
# Step 5: Flatten and test
ksflatten -c ../recipes/virtual-desktop_43.cfg -o ../dishes/virtual-desktop_43.cfg
```
### Workflow: Add New Desktop Environment
**Example: Add KDE Plasma**
```bash
# Step 1: Create desktop fragment
cat > ingredients/shared/desktop/kde/packages.ks << 'EOF'
%packages
@kde-desktop
plasma-workspace
EOF
# Step 2: Add to template
# Edit recipe-generator/recipe_templates.yaml
# Add to optional/desktop section:
# kde: ingredients/shared/desktop/kde/packages.ks
# Step 3: Add variant to manifest
# Edit recipe-generator/recipes_manifest.yaml
# Add variant:
# - version: 43
# desktop: kde
# storage: standard
# security: secure
# Step 4: Generate and test
make generate-recipes
make test
```
### Workflow: Create New Recipe Type
**Example: Create minimal-server recipe**
```bash
# Step 1: Add template to recipe_templates.yaml
cat >> recipe-generator/recipe_templates.yaml << 'EOF'
minimal-server:
description: "A minimal server recipe"
base: core
required:
- core: ingredients/shared/core/base.ks
- storage: ingredients/shared/storage/standard.ks
- bootloader: ingredients/platform/generic-43/bootloader/grub.ks
- packages: ingredients/shared/packages/core-group.ks
- fedora-remix: ingredients/shared/packages/fedora-remix.ks
optional:
security:
secure: ingredients/shared/core/security/enabled.ks
devel: ingredients/shared/core/security/disabled.ks
version:
"43": ingredients/platform/generic-43/repo/fedora-mirrors.ks
"rawhide": ingredients/platform/generic-rawhide/repo/rawhide-mirrors.ks
EOF
# Step 2: Add variant to recipes_manifest.yaml
cat >> recipe-generator/recipes_manifest.yaml << 'EOF'
- name: minimal-server
variants:
- version: 43
security: secure
EOF
# Step 3: Generate and validate
make generate-recipes
make validate-recipes
```
---
## Migration Guide: Fragment-Based Architecture
Phyllome OS migrated from a monolithic ingredient-based system to a modular fragment-based architecture (Phase 2).
### Before: Ingredient-Based
**File:** `ingredients/extra-luanti.cfg`
```bash
%packages
luanti
%end
```
**Recipe:** `recipes/virtual-desktop-luanti.cfg`
```bash
%include ../ingredients/core.cfg
%include ../ingredients/extra-luanti.cfg
```
**Issues:**
- Duplicate `%include` directives across recipes
- Hard to maintain common patterns
- No automatic version matrix
### After: Fragment-Based
**Fragment:** `ingredients/shared/packages/luanti.ks`
```bash
%packages
luanti
%end
```
**Template:** `recipe-generator/recipe_templates.yaml`
```yaml
templates:
virtual-desktop:
required:
- luanti: ingredients/shared/packages/luanti.ks
```
**Recipe:** `recipes/virtual-desktop_43.cfg`
```bash
# Generated automatically
%ksappend ingredients/shared/core/base.ks
%ksappend ingredients/shared/packages/luanti.ks
```
### Migration Benefits
| Aspect | Before | After |
|--------|--------|-------|
| Maintenance | Repetitive includes | Single source in template |
| Variants | Manual recipe creation | Manifest-driven generation |
| Testing | Per-recipe validation | Fragment-level validation |
| Code duplication | High | None (DRY principle) |
### Why `%ksappend` over `%include`?
- **`%include`** - Simple file inclusion (copied into result)
- **`%ksappend`** - References external file (keeps file path in flattened output)
**Benefits of `%ksappend`:**
1. Smaller dish files (no duplicate content)
2. Clear dependency tracking
3. Better validation (fragment existence checks)
4. Easier debugging (visible fragment References)
### Migration Checklist
- [ ] Review all `ingredients/*.cfg` files
- [ ] Identify reusable patterns
- [ ] Create `ingredients/shared/` for common components
- [ ] Update `recipe_templates.yaml` with new structure
- [ ] Update `recipes_manifest.yaml` for variants
- [ ] Regenerate recipes with `make generate-recipes`
- [ ] Validate with `make validate-recipes`
- [ ] Flatten to dishes with `ksflatten`
- [ ] Run tests with `make test`
---
## Troubleshooting
### Common Issues
**1. Duplicate %ksappend entries**
```bash
# Detect duplicates
grep "^%ksappend" recipes/*.cfg | sort | uniq -d
```
**Fix:** Check template for duplicate fragment references
**2. Missing fragment error**
```
ERROR: Missing fragment: ingredients/shared/unknown/missing.ks
```
**Fix:** Verify fragment exists in `ingredients/shared/`
**3. Deprecated command warning**
```
keyboard command is deprecated. Use keyboard --vckeymap instead.
```
**4. pykickstart validation fails**
```bash
# Check fragment with pykickstart
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
try:
with open('fragment.ks') as f:
parser.readKickstart(f.read())
print('Valid')
except Exception as e:
print(f'Error: {e}')
"
```
### Debugging Generator
```bash
# Verbose mode
python3 generate_recipe.py --manifest recipes_manifest.yaml --output-dir ../recipes/ --verbose
# Check template loading
python3 -c "
from pathlib import Path
import sys
sys.path.insert(0, '.')
from generate_recipe import RecipeGenerator
gen = RecipeGenerator(Path('recipe_templates.yaml'))
print('Templates:', list(gen.templates.keys()))
"
```
---
## Additional Resources
- **Kickstart Documentation:** https://pykickstart.readthedocs.io/
- **Fedora Kickstarts:** https://pagure.io/fedora-kickstarts
- **virt-install:** `man virt-install`
- **livemedia-creator:** `man livemedia-creator`
---
*Last updated: March 2026*
+59
View File
@@ -0,0 +1,59 @@
# Phyllome OS Development Workflow
This is a quick-reference guide for developers. For comprehensive coverage, see [DEVELOPMENT.md](./DEVELOPMENT.md).
## Quick Start
```bash
# Prerequisites
sudo dnf install qemu libvirt virt-install pykickstart
pip install PyYAML
# Verify setup
cd recipe-generator && make generate-recipes
```
## Core Workflows
### Add Fragment
```bash
# Create new kickstart snippet
cat > ingredients/shared/packages/new-package.ks << 'EOF'
%packages
new-package
%end
```
### Add to Recipe
```bash
# Edit recipe-generator/recipe_templates.yaml to include fragment
# Edit recipe-generator/recipes_manifest.yaml to add variant
# Regenerate
cd recipe-generator && make generate-recipes && make validate-recipes
```
```
### Validate Fragments
```bash
for f in $(find ingredients -name "*.ks"); do
python3 -c "
from pykickstart.parser import KickstartParser
from pykickstart.version import makeVersion, DEVEL
parser = KickstartParser(makeVersion(DEVEL))
parser.readKickstart(open('$f').read())
" || echo "✗ $f"
done
```
## Architecture
```
ingredients/ (54 .ks) → recipe-generator/generate_recipe.py → recipes/ (16 .cfg) → ksflatten → dishes/ (28 .cfg)
```
See `DEVELOPMENT.md` Section 1 for detailed architecture overview.
+2 -149
View File
@@ -4,10 +4,9 @@
Provided that some dependencies are met (`libvirt` is running on your computer, QEMU is installed, etc), one could run the following script to deploy virtual machines, including Phyllome OS itself.
- Make the script executable:
- :
```
chmod +x deploy-vm.sh
```
- Execute it and pick `virtual-desktop-hypervisor` when prompted:
@@ -15,7 +14,7 @@ chmod +x deploy-vm.sh
```
./deploy-vm.sh
Executing: ./scripts/core-count.sh
Executing: ./deploy/core-count.sh
System has more than 2 core (nproc --all: 6).
[...]
10. virtual-desktop-hypervisor
@@ -49,149 +48,3 @@ Each ingredient represents a feature or a set of integrated features, such as a
- Ingredients prefixed with *live* such as `live-core.cfg` are to be used with live editions only
- *core* ingredients are meant be used in all their respective recipes, *base* ingredients, recommended but optional, and extra provides more stuff (sic)
## Development
Using a pull request, you can suggest a modification to an existing ingredient or create a new ingredient from scratch.
### Requirements
- `qemu`
- `libvirt`
- `virt-install`
- `pykickstart`
### Example 1: add a new package and include it into a recipe
- Add [Luanti](https://www.luanti.org/), a free and open-source sandbox video game engine formerly known as Minetest, as a standalone ingredient, using the `echo` command
```
echo "%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies
luanti # Multiplayer infinite-world block sandbox with survival mode
%end # End of the packages section" > ingredients/extra-luanti.cfg
```
Instead of creating a recipe from scratch, let's make a copy of the `virtual-desktop.cfg` recipe, which provide a Desktop environment necessary for *luanti* to function
```
cp recipes/virtual-desktop.cfg recipes/virtual-desktop-luanti.cfg
```
- Add the extra ingredient to the new recipe:
```
echo "%include ../ingredients/extra-luanti.cfg # Sandbox video game engine" >> recipes/virtual-desktop-luanti.cfg
```
#### Flatten
- Prepare the dish by following the recipe, a process called 'flattening'
```
ksflatten -c recipes/virtual-desktop-luanti.cfg -o dishes/virtual-desktop-luanti.cfg
```
> If any errors are detected, go back and fix them.
It is time to test the new dish!
#### Kickstart
- Make the `deploy-vm.sh` script executable
```
chmod +x deploy-vm.sh
```
- Execute the script
```
./deploy-vm.sh
```
- Select the new dish, *virtual-desktop-luanti*
```
[...]
Available files:
1. desktop-hypervisor-amdcpu
[...]
14. virtual-desktop-luanti
```
- When the installation is done, the machine will shut down
- Start it again, and ensure that Luanti has correctly been installed
That's it !
### Example 2: Create a new recipe from the existing list of ingredients
The file `recipes/_list-of-ingredients.cfg` can be copied and edited to create your own remix of Phyllome OS, which itself is a remix of Fedora.
```
cp recipes/_list-of-ingredients.cfg recipes/my-new-distro.cfg
```
Then edit the said file to include your favorite ingredient
```
nano recipes/my-new-distro.cfg
```
```
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# The list of ingredients for composing Phyllome OS
# Uncomment lines with "%include" to enable ingredient
# Installation method
# Exactly one option has to be picked
# %include ../ingredients/core.cfg # Text mode
# %include ../ingredients/live-core.cfg # For live systems only
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#graphical-or-text-or-cmdline
# Storage configuration
# Exactly one option has to be picked
# WARNING !!! Will erase local disks!
# %include ../ingredients/core-storage.cfg # Basic ext4 partition layout for UEFI-based systems
# %include ../ingredients/live-core-storage.cfg # For live systems only
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#part-or-partition
[...]
```
- Once you are done, you can [flatten](#flatten) the file and [kickstart](#kickstart) it as explained in the previous section.
## FAQ
If multiple dishes are affected by your ingredient, you can flatten them all
- Navigate to the recipes' directory
```
cd recipes
```
- Then use the following
```
for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
```
The following message can safetly be ignored:
```
/usr/lib/python3.13/site-packages/pykickstart/commands/partition.py:461: KickstartParseWarning: A partition with the mountpoint / has already been defined.
```
## Acknowledgement
Thanks to the main contributors of the official Fedora kickstart files repository, and related tools:
> Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert, Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen Jesse Keating, Luya Tshimbalanga, Matthias Clasen, Pedro Silva, Rahul Sundaram, Sebastian Dziallas Sebastian Vahl, wart. More information here : https://pagure.io/fedora-kickstarts
+52
View File
@@ -0,0 +1,52 @@
.PHONY: help generate-recipes validate-recipes clean clean-dishes install-deps flatten-dishes all
help:
@echo "Phyllome OS Recipe Generator"
@echo ""
@echo "Available targets:"
@echo " generate-recipes - Generate all recipes from manifest"
@echo " validate-recipes - Validate existing recipes"
@echo " all - Generate, validate, and flatten all recipes (default)"
@echo " flatten-dishes - Flatten all recipes to dishes"
@echo " clean-dishes - Remove flattened dishes"
@echo " clean-recipes - Remove generated recipes"
@echo " clean-all - Remove recipes and dishes"
@echo " install-deps - Install Python dependencies"
all: generate-recipes flatten-dishes validate-recipes
@echo "✓ All recipes generated, flattened, and validated"
install-deps:
pip install -r requirements.txt
generate-recipes:
@rm -f recipes/*.cfg
@python3 generate_recipe.py \
--manifest recipes_manifest.yaml \
--output-dir recipes/
validate-recipes:
@echo "Validating recipes..."
@for f in dishes/*.cfg; do \
if [ -f "$$f" ]; then \
echo " Processing: $$(basename $$f)"; \
ksflatten -c "$$f" -o /dev/null 2>&1 && echo " ✓ OK" || { echo " ✗ FAILED"; exit 1; }; \
fi; \
done
flatten-dishes:
@echo "Flattening recipes to dishes..."
@python bin/ksflatten-relative recipes dishes
clean-dishes:
rm -f dishes/*.cfg
@echo "✓ Flattened dishes removed. Run 'make flatten-dishes' to regenerate."
clean-recipes:
rm -f recipes/*.cfg
@echo "Generated recipes removed. Edit recipes_manifest.yaml and run 'make generate-recipes' to regenerate. Run 'make clean-dishes' to remove flattened dishes."
clean-all:
rm -f dishes/*.cfg
rm -f recipes/*.cfg
@echo "✓ Flattened dishes and generated recipes removed. Run 'make all' to regenerate."
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
exec "$(dirname "$0")/../recipe-generator/generate_recipe.py" "$@"
+90
View File
@@ -0,0 +1,90 @@
#!/usr/bin/env python3
"""
Flatten kickstart recipes with relative %include paths.
Converts %include ingredients/... to %include ../ingredients/... relative to recipes/ location.
"""
import os
import sys
import subprocess
import tempfile
def flatten_recipe(recipe_path, output_path):
"""Flatten a recipe file, converting relative paths."""
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Read the recipe
with open(recipe_path, 'r') as f:
content = f.read()
# Convert %include paths to relative (from recipes/ perspective)
lines = []
for line in content.split('\n'):
if line.startswith('%include '):
# Get the fragment path from %include path
parts = line.split(None, 1)
if len(parts) >= 2:
fragment_path = parts[1]
# Make it relative to recipes/
# From recipes/, ingredients/ is at ../ingredients/
if fragment_path.startswith('ingredients/'):
relative_path = '../' + fragment_path
else:
relative_path = '../ingredients/' + fragment_path
lines.append('%include ' + relative_path)
else:
lines.append(line)
else:
lines.append(line)
# Write to temp file in recipes directory
temp_fd, temp_path = tempfile.mkstemp(suffix='.ks', dir=os.path.dirname(recipe_path))
try:
os.write(temp_fd, '\n'.join(lines).encode('utf-8'))
os.close(temp_fd)
# Call ksflatten
cmd = ['ksflatten', '-c', temp_path, '-o', output_path]
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"Error flattening {os.path.basename(recipe_path)}:", file=sys.stderr)
print(result.stderr, file=sys.stderr)
return False
return True
finally:
os.unlink(temp_path)
def main():
if len(sys.argv) < 3:
print("Usage: ksflatten-relative RECIPE_DIR DISH_DIR", file=sys.stderr)
print("Example: ksflatten-relative recipes dishes", file=sys.stderr)
sys.exit(1)
recipe_dir = sys.argv[1]
dish_dir = sys.argv[2]
if not os.path.isdir(recipe_dir):
print(f"Error: {recipe_dir} is not a directory", file=sys.stderr)
sys.exit(1)
os.makedirs(dish_dir, exist_ok=True)
recipes = [f for f in os.listdir(recipe_dir) if f.endswith('.cfg')]
for recipe_name in sorted(recipes):
recipe_path = os.path.join(recipe_dir, recipe_name)
dish_path = os.path.join(dish_dir, recipe_name)
print(f" Processing: {recipe_name}")
if not flatten_recipe(recipe_path, dish_path):
sys.exit(1)
print("✓ All recipes flattened to dishes")
if __name__ == '__main__':
main()
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+139
View File
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,139 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
+138
View File
@@ -0,0 +1,138 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
usbutils
wget
%end
@@ -0,0 +1,56 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%packages --exclude-weakdeps
@core
@hardware-support
curl
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
libusb
nano
pciutils
usbutils
wget
%end
@@ -0,0 +1,56 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%packages --exclude-weakdeps
@core
@hardware-support
curl
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
libusb
nano
pciutils
usbutils
wget
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
@@ -33,18 +33,11 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-base-post.log
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
@@ -74,36 +67,24 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-amdcpu-post.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization
%end
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
audit
basesystem
bash
coreutils
@core
@hardware-support
curl
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
e2fsprogs
fedora-remix-logos
filesystem
firewalld
fwupd
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
hostname
initial-setup
iproute
iputils
kbd
kernel
less
libusb
libvirt
libvirt-client
@@ -120,35 +101,11 @@ libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
nano
ncurses
openssh-clients
openssh-server
parted
pciutils
plymouth
policycoreutils
prefixdevname
procps-ng
qemu-guest-agent
qemu-kvm
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
spice-vdagent
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
usbutils
util-linux
vim-minimal
virt-install
wget
zram-generator-defaults
%end
@@ -1,7 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -14,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
@@ -25,82 +27,17 @@ timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=none --timeout=1
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=5120
part / --size=8576
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
%post --logfile=/mnt/sysimage/root/post-live-core.log
# Enable livesys services
systemctl enable livesys.service
systemctl enable livesys-late.service
# enable tmpfs for /tmp
systemctl enable tmp.mount
# make it so that we don't do writing to the overlay for things which
# are just tmpdirs/caches
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
cat >> /etc/fstab << EOF
vartmp /var/tmp tmpfs defaults 0 0
EOF
# work around for poor key import UI in PackageKit
rm -f /var/lib/rpm/__db*
echo "Packages within this LiveCD"
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
# Note that running rpm recreates the rpm db files which aren't needed or wanted
rm -f /var/lib/rpm/__db*
# go ahead and pre-make the man -k cache (#455968)
/usr/bin/mandb
# make sure there aren't core files lying around
rm -f /core*
# remove random seed, the newly installed instance should make it's own
rm -f /var/lib/systemd/random-seed
# convince readahead not to collect
# FIXME: for systemd
echo 'File created by kickstart. See systemd-update-done.service(8).' \
| tee /etc/.updated >/var/.updated
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
# See bug 1317709
rm -f /boot/*-rescue*
# Disable network service here, as doing it in the services line
# fails due to RHBZ #1369794
systemctl disable network
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
%end
%post --logfile=/mnt/sysimage/root/post-live-session.log
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-base-post.log
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
@@ -130,56 +67,24 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-intelcpu-post.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs
%end
%packages --exclude-weakdeps
@anaconda-tools
NetworkManager
NetworkManager-config-connectivity-fedora
aajohan-comfortaa-fonts
alsa-sof-firmware
amd-gpu-firmware
atheros-firmware
audit
b43-fwcutter
b43-openfwwf
basesystem
bash
brcmfmac-firmware
cirrus-audio-firmware
coreutils
@core
@hardware-support
curl
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
dracut-live
e2fsprogs
fedora-remix-logos
filesystem
firewalld
fwupd
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
glibc-all-langpacks
hostname
initial-setup
intel-audio-firmware
intel-gpu-firmware
intel-vsc-firmware
iproute
iputils
iwlegacy-firmware
iwlwifi-dvm-firmware
iwlwifi-mvm-firmware
kbd
kernel
kernel-modules
kernel-modules-extra
less
libertas-firmware
libusb
libvirt
libvirt-client
@@ -196,39 +101,11 @@ libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
livesys-scripts
man-db
mt7xxx-firmware
nano
ncurses
nvidia-gpu-firmware
nxpwireless-firmware
openssh-clients
openssh-server
parted
pciutils
plymouth
policycoreutils
prefixdevname
procps-ng
qemu-kvm
realtek-firmware
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
tiwilink-firmware
usbutils
util-linux
vim-minimal
virt-install
wget
zram-generator-defaults
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
@@ -33,55 +33,25 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%packages --exclude-weakdeps
basesystem
bash
@core
curl
dhcp-client
dnf5
dracut
filesystem
glibc
hostname
fedora-remix-logos
generic-logos
generic-release
generic-release-common
generic-release-notes
initial-setup
iproute
iputils
kbd
kernel
ncurses
parted
procps-ng
libusb
nano
pciutils
qemu-guest-agent
rootfiles
rpm
setup
shadow-utils
spice-vdagent
systemd
util-linux
-audit
-coreutils
-e2fsprogs
-less
-man-db
-openssh-clients
-openssh-server
-policycoreutils
-selinux-policy-targeted
-sssd-common
-sssd-kcm
-sudo
-vim-minimal
usbutils
wget
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
@@ -35,37 +35,11 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-initial-setup-gnome.log
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
@@ -77,7 +51,7 @@ cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.overr
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
@@ -98,7 +72,7 @@ EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
@@ -130,77 +104,37 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
audit
basesystem
bash
coreutils
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
e2fsprogs
fedora-remix-logos
filesystem
firefox
firewalld
fwupd
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-session-wayland-session
gnome-shell
gnome-terminal
hostname
iproute
iputils
kbd
kernel
less
gvfs-fuse
initial-setup
libusb
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
ncurses
openssh-clients
openssh-server
parted
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
qemu-guest-agent
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
spice-vdagent
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
usbutils
util-linux
vim-minimal
wget
wpa_supplicant
zram-generator-defaults
-gnome-tour
%end
+140
View File
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --encrypted --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
@@ -35,37 +35,11 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-initial-setup-gnome.log
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
@@ -77,7 +51,7 @@ cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.overr
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
@@ -98,7 +72,7 @@ EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
@@ -129,95 +103,102 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/root/vmm-post-scripts.log
# Create a file to autostart virt-manager
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
[Desktop Entry]
Type=Application
Name=Virtual Machine Manager
Exec=virt-manager
EOF
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
[org.virt-manager.virt-manager.details]
show-toolbar=false
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
unapplied-dev=false
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-amdcpu-post.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization
%end
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
alsa-sof-firmware
amd-gpu-firmware
atheros-firmware
audit
b43-fwcutter
b43-openfwwf
basesystem
bash
brcmfmac-firmware
cirrus-audio-firmware
coreutils
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
e2fsprogs
fedora-remix-logos
filesystem
firefox
firewalld
fwupd
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-session-wayland-session
gnome-shell
gnome-terminal
hostname
intel-audio-firmware
intel-gpu-firmware
intel-vsc-firmware
iproute
iputils
iwlegacy-firmware
iwlwifi-dvm-firmware
iwlwifi-mvm-firmware
kbd
kernel
less
libertas-firmware
gvfs-fuse
initial-setup
libusb
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
mt7xxx-firmware
nano
ncurses
nvidia-gpu-firmware
nxpwireless-firmware
openssh-clients
openssh-server
parted
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
realtek-firmware
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
tiwilink-firmware
qemu-guest-agent
spice-vdagent
usbutils
util-linux
vim-minimal
virt-manager
wget
wpa_supplicant
zram-generator-defaults
-gnome-tour
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,12 +16,12 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
@@ -35,37 +35,11 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-initial-setup-gnome.log
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
[pages]
skip=privacy
[goa]
providers=local-first!
EOF
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
@@ -77,7 +51,7 @@ cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.overr
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
@@ -98,7 +72,7 @@ EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
@@ -129,7 +103,7 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome-virtual-machine-manager.log
%post --nochroot --logfile=/mnt/sysimage/root/vmm-post-scripts.log
# Create a file to autostart virt-manager
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
@@ -142,45 +116,37 @@ EOF
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
@@ -192,126 +158,47 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
%post --nochroot --logfile=/mnt/sysimage/root/hypervisor-intelcpu-post.log
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs
%end
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
audit
basesystem
bash
coreutils
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
e2fsprogs
fedora-remix-logos
filesystem
firefox
firewalld
fwupd
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-session-wayland-session
gnome-shell
gnome-terminal
hostname
iproute
iputils
kbd
kernel
less
gvfs-fuse
initial-setup
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
nano
ncurses
openssh-clients
openssh-server
parted
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
qemu-guest-agent
qemu-kvm
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
spice-vdagent
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
usbutils
util-linux
vim-minimal
virt-install
virt-manager
wget
wpa_supplicant
zram-generator-defaults
-gnome-tour
%end
+140
View File
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,141 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
@hardware-support
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -0,0 +1,140 @@
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
# Shutdown after installation
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/gnome-desktop-post.log
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
automount-open=false
autorun-never=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
[org.gnome.desktop.wm.preferences]
button-layout=':minimize,maximize,close'
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
[org.gnome.desktop.a11y]
always-show-universal-access-status=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
[org.gnome.desktop.interface]
enable-animations=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
disable-sound-output=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
[org.gnome.desktop.search-providers]
disable-external=true
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
[org.gnome.desktop.notifications.application]
enable-sound-alerts=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
[org.gnome.desktop.sound]
event-sounds=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
[org.gnome.desktop.thumbnailers]
disable-all=true
EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
@base-graphical
@core
bash-color-prompt
curl
dconf
dejavu-sans-mono-fonts
fedora-remix-logos
firefox
gdm
generic-logos
generic-release
generic-release-common
generic-release-notes
gnome-backgrounds.noarch
gnome-control-center
gnome-session-wayland-session
gnome-shell
gnome-terminal
gvfs-fuse
initial-setup
libusb
mozilla-ublock-origin.noarch
nano
nautilus
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
qemu-guest-agent
spice-vdagent
usbutils
wget
%end
@@ -1,9 +1,9 @@
# Generated by pykickstart v3.62
# Generated by pykickstart v3.68
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -16,10 +16,10 @@ network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
#Root password
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
@@ -33,75 +33,25 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
%post --logfile=/mnt/sysimage/root/post.log
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
%end
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=2048 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
audit
basesystem
bash
coreutils
@core
curl
dhcp-client
dnf5
dnf5-plugins
dracut
dracut-config-rescue
e2fsprogs
fedora-remix-logos
filesystem
firewalld
fwupd
generic-logos
generic-release
generic-release-common
generic-release-notes
glibc
hostname
initial-setup
iproute
iputils
kbd
kernel
less
libusb
man-db
nano
ncurses
openssh-clients
openssh-server
parted
pciutils
plymouth
policycoreutils
prefixdevname
procps-ng
qemu-guest-agent
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
spice-vdagent
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
usbutils
util-linux
vim-minimal
wget
zram-generator-defaults
%end
+389
View File
@@ -0,0 +1,389 @@
#!/usr/bin/env python3
"""
Recipe generator for Phyllome OS.
Reads recipes_manifest.yaml and generates kickstart recipe files.
"""
import argparse
import itertools
import os
import sys
import yaml
# Template mappings from recipe_templates.yaml
TEMPLATES = {
'required': {
'repository': {
'43': 'repo/fedora-43-mirrors.ks',
'rawhide': 'repo/rawhide-mirrors.ks',
},
'core': {
'base': 'core/base.ks',
},
'bootloader': {
'grub': 'bootloader/grub.ks',
'systemd-boot': 'bootloader/systemd-boot.ks',
},
'storage': {
'standard': 'storage/standard.ks',
'encrypted': 'storage/encrypted.ks',
},
'locale': {
'default': 'core/locale.ks',
},
'services': {
'minimal': 'core/services.ks',
},
'network': {
'network-manager': 'core/network.ks',
},
'packages': {
'core': 'packages/core.ks',
},
'brand': {
'fedora-remix': 'packages/fedora-remix.ks',
},
'extra': {
'extra': 'packages/hand-picked.ks',
},
'security': {
'enabled': 'core/security/enabled.ks',
'disabled': 'core/security/disabled.ks',
},
'initial-setup': {
'server': 'initial-setup/server/config.ks',
'gnome': 'initial-setup/gnome/config.ks',
'generic-wayland': 'initial-setup/generic-wayland/config.ks',
},
},
'optional': {
'hardware-support': 'packages/hardware-support.ks',
'guest-agents': 'guest-agents/base.ks',
'hypervisor': {
'base': [
'hypervisor/base/packages.ks',
'hypervisor/base/services.ks',
'hypervisor/base/post-scripts.ks',
],
'desktop': [
'packages/virtual-machine-manager/packages.ks',
'packages/virtual-machine-manager/post-scripts.ks',
],
},
'desktop': {
'gnome': [
'desktop/gnome/config.ks',
'desktop/gnome/packages.ks',
'desktop/gnome/post-scripts.ks',
],
'labwc': [
'desktop/labwc/config.ks',
],
},
'hypervisor_type': {
'amdcpu': 'hypervisor/amdcpu.ks',
'intelcpu': 'hypervisor/intelcpu.ks',
'intelgpu': 'hypervisor/intelgpu.ks',
},
},
'live': {
'core': [
'live/core/base.ks',
'live/core/storage.ks',
'live/core/packages.ks',
],
'bootloader': {
'grub': 'live/core/bootloader/grub.ks',
'systemd-boot': 'live/core/bootloader/systemd-boot.ks',
},
'post': [
'live/post/base.ks',
'live/post/session.ks',
],
},
}
def expand_variants(variant_config):
"""Expand variant config with list values into cartesian product."""
keys = variant_config.keys()
values = []
for key in keys:
val = variant_config[key]
if isinstance(val, list):
values.append([(key, v) for v in val])
else:
values.append([(key, val)])
combos = itertools.product(*values)
return [dict(combo) for combo in combos]
def get_required_ingredients(variant):
"""Get required ingredients for a variant."""
ingredients = []
# Handle special case: security "secure" maps to "enabled"
security = variant.get('security', 'enabled')
if security == 'secure':
security = 'enabled'
# Build variant dict with special mappings
variant_map = dict(variant)
variant_map['security'] = security
for category, mapping in TEMPLATES['required'].items():
key = variant_map.get(category, list(mapping.keys())[0])
if category == 'version':
key = str(key)
path = mapping.get(key)
if path:
ingredients.append(path)
return ingredients
def get_optional_ingredients(variant):
"""Get optional ingredients based on variant flags."""
ingredients = []
# Handle boolean flags
for opt_key in ['hardware-support', 'guest-agents']:
if variant.get(opt_key):
path = TEMPLATES['optional'].get(opt_key)
if path:
ingredients.append(path)
# Handle live flag
if variant.get('live'):
ingredients.extend(TEMPLATES['live']['core'])
bootloader = variant.get('bootloader', 'grub')
ingredients.append(TEMPLATES['live']['bootloader'][bootloader])
ingredients.extend(TEMPLATES['live']['post'])
# Handle desktop
desktop = variant.get('desktop')
if desktop:
desktop_map = TEMPLATES['optional']['desktop']
if desktop in desktop_map:
ingredients.extend(desktop_map[desktop])
# Handle hypervisor
hypervisor = variant.get('hypervisor')
if hypervisor:
hypervisor_map = TEMPLATES['optional']['hypervisor']
if hypervisor in hypervisor_map:
ingredients.extend(hypervisor_map[hypervisor])
# Handle hypervisor_type
hypervisor_type = variant.get('hypervisor_type')
if hypervisor_type:
path = TEMPLATES['optional']['hypervisor_type'].get(hypervisor_type)
if path:
ingredients.append(path)
return ingredients
def generate_filename(variant, group_name=None):
"""Generate filename from variant configuration."""
parts = []
# Guest agents
if variant.get('guest-agents'):
parts.append('virtual')
# Desktop
desktop = variant.get('desktop')
if desktop:
parts.append(desktop)
# Hypervisor type
if variant.get('hypervisor'):
parts.append(f"hypervisor-{variant['hypervisor']}")
if variant.get('hypervisor_type'):
parts.append(variant['hypervisor_type'])
# Storage
if variant.get('storage') == 'encrypted':
parts.append('encrypted')
# Bootloader
if variant.get('bootloader') == 'systemd-boot':
parts.append('systemd-boot')
# Hardware support
if variant.get('hardware-support'):
parts.append('hardware-support')
# Security (only if not default)
if variant.get('security') == 'disabled':
parts.append('security-disabled')
# Add group name if specified (for uniqueness)
if group_name and group_name in ['desktop-live', 'server-live']:
parts.append(group_name.replace('live', ''))
# Version
parts.append(str(variant.get('version', '43')))
return '_'.join(parts) + '.cfg'
def write_recipe_file(ingredients, variant, output_dir, group_name=None):
"""Write recipe file with header and includes."""
os.makedirs(output_dir, exist_ok=True)
filename = generate_filename(variant, group_name)
filepath = os.path.join(output_dir, filename)
header = f"""# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \\/ ___/
# / __ \\/ __ \\/ / / / / / __ \\/ __ `__ \\/ _ \\ / / / /\\__ \\
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\\__, /_/_/\\____/_/ /_/ /_/\\___/ \\____//____/
# /_/ /____/
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
"""
# Use ingredient paths as-is (simple paths relative to project root)
# ksflatten-relative will handle conversion during flattening
seen = set()
unique_ingredients = []
for ing in ingredients:
if ing not in seen:
seen.add(ing)
unique_ingredients.append(ing)
includes = '\n'.join(f'%include {ing}' for ing in unique_ingredients)
content = header + includes + '\n'
with open(filepath, 'w') as f:
f.write(content)
return filepath
def generate_recipes(manifest_path, output_dir):
"""Generate all recipes from manifest."""
with open(manifest_path) as f:
manifest = yaml.safe_load(f)
generated = []
for recipe_group in manifest.get('recipes', []):
group_name = recipe_group.get('name', 'unknown')
for variant_config in recipe_group.get('variants', []):
for variant in expand_variants(variant_config):
required = get_required_ingredients(variant)
optional = get_optional_ingredients(variant)
all_ingredients = required + optional
filepath = write_recipe_file(all_ingredients, variant, output_dir, group_name)
generated.append(filepath)
return generated
def validate_recipe(recipe_path):
"""Validate a recipe file using pykickstart."""
try:
from pykickstart.parser import KickstartParser
from pykickstart.version import returnClassForVersion
ks_class = returnClassForVersion()
parser = KickstartParser(ks_class)
# Get absolute path and change to that directory for include resolution
abs_path = os.path.abspath(recipe_path)
recipe_dir = os.path.dirname(abs_path)
original_dir = os.getcwd()
os.chdir(recipe_dir)
parser.readKickstart(abs_path)
os.chdir(original_dir)
return True, None
except Exception as e:
os.chdir(original_dir)
return False, str(e)
def validate_all(recipes_dir):
"""Validate all recipes in directory."""
if not os.path.isdir(recipes_dir):
print(f"Error: {recipes_dir} is not a directory", file=sys.stderr)
return False
errors = []
for filename in sorted(os.listdir(recipes_dir)):
if filename.endswith('.cfg'):
filepath = os.path.join(recipes_dir, filename)
valid, error = validate_recipe(filepath)
if valid:
print(f"{filename}")
else:
print(f"{filename}: {error}", file=sys.stderr)
errors.append((filename, error))
return len(errors) == 0
def main():
parser = argparse.ArgumentParser(description='Generate Phyllome OS recipes')
parser.add_argument('--manifest', default='recipes_manifest.yaml',
help='Path to recipes manifest YAML')
parser.add_argument('--output-dir', default='recipes/',
help='Output directory for recipe files')
parser.add_argument('--validate', action='store_true',
help='Validate generated recipes')
parser.add_argument('files', nargs='*', default=[],
help='Recipe files to validate')
args = parser.parse_args()
# Generate recipes from cook/ directory
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
# Paths relative to cook/ directory
manifest_path = args.manifest
if not os.path.isabs(args.manifest):
manifest_path = os.path.join(script_dir, args.manifest)
output_dir = args.output_dir
if not os.path.isabs(args.output_dir):
output_dir = os.path.join(script_dir, args.output_dir)
print(f"Generating recipes from {manifest_path} to {output_dir}...")
recipes = generate_recipes(manifest_path, output_dir)
print(f"✓ Generated {len(recipes)} recipe files")
# Validate if requested (from command line files or directory)
if args.validate or args.files:
print("\nValidating recipes...")
if args.files:
# Validate specific files
all_valid = True
for filepath in args.files:
valid, error = validate_recipe(filepath)
if valid:
print(f"{os.path.basename(filepath)}")
else:
print(f"{os.path.basename(filepath)}: {error}", file=sys.stderr)
all_valid = False
if not all_valid:
sys.exit(1)
else:
# Validate output directory
if not validate_all(output_dir):
sys.exit(1)
print("✓ All recipes validated")
if __name__ == '__main__':
main()
@@ -1 +1,3 @@
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1
# GRUB bootloader configuration
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1
@@ -0,0 +1,3 @@
# systemd-boot bootloader configuration
bootloader --sdboot --location=mbr --timeout=1 # Use systemd-boot and set a timeout to 1
+5
View File
@@ -0,0 +1,5 @@
# Core base kickstart configuration
# Common settings for all Phyllome OS installations
text # Kickstart installation in text mode
poweroff # Shut down the system after a successful installation
@@ -1,3 +1,5 @@
# Keyboard, language, and timezone configuration
keyboard --xlayouts='ch (fr)' # Set keyboard layouts for Romandy
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK
timezone Europe/Zurich --utc # Set system timezone to Zurich
timezone Europe/Zurich --utc # Set system timezone to Zurich
@@ -1 +1,3 @@
network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network devices, enable them at boot time device and sets a particular hostname. "link" selects the first device reaching an up state
# Network configuration
network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network devices, enable them at boot time device and sets a particular hostname. "link" selects the first device reaching an up state
@@ -0,0 +1,5 @@
# Security configuration - disabled mode
rootpw --plaintext 1234 --allow-ssh # Root account is enabled with weak password and allow ssh
selinux --disabled # Disable SELinux
firewall --enabled --ssh # Reject incoming connections that are not in response to outbound requests except SSH
@@ -0,0 +1,5 @@
# Security configuration - enabled mode
rootpw --lock # No root login from the console
selinux --enforcing # Set SELinux to enforcing mode
firewall --enabled # Enable firewall
@@ -1 +1,3 @@
# System services
services --enabled=NetworkManager,systemd-resolved # List of comma-separated systemd services that can be explicitly enabled
+1
View File
@@ -0,0 +1 @@
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
@@ -0,0 +1,51 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# GNOME desktop packages
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
@base-graphical
## provides the following as mandatory packages:
# mesa-dri-drivers
# mesa-vulkan-drivers
# plymouth-system-theme
# @critical-path-gnome not using this group but hand-picking packages
## Mandatory packages found in hidden `@critical-path-gnome` group (`dnf group info --hidden critical-path-gnome`)
## Not using
## provides the following as mandatory packages:
bash-color-prompt # Color prompt for bash shell
dconf # A configuration system
gdm # The GNOME Display Manager
# gnome-classic-session # GNOME "classic" mode session
gnome-control-center # Utilities to configure the GNOME desktop
# gnome-initial-setup # Bootstrapping your OS
gnome-shell # Window management and application launching for GNOME
gvfs-fuse # FUSE support for gvfs
# ptyxis # A container oriented terminal for GNOME
### and the following as default packages
# NetworkManager-pptp # NetworkManager VPN plugin for PPTP
# avahi # Local network service discovery
# gnome-bluetooth # Bluetooth graphical utilities
gnome-session-wayland-session # Desktop file for wayland based gnome session
# gnome-software # A software center for GNOME
nautilus # File manager for GNOME
# toolbox # Tool for interactive command line environments on Linux
## Extra hand-picked packages
gnome-backgrounds.noarch # wallpapers from the GNOME project
gnome-terminal # Terminal emulator for GNOME
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
firefox # Mozilla Firefox Web browser
mozilla-ublock-origin.noarch # An efficient blocker for Firefox
pipewire-alsa # PipeWire media server ALSA support
pipewire-pulseaudio # PipeWire PulseAudio implementation
pipewire-jack-audio-connection-kit # PipeWire JACK implementation
%end # End of the packagages section
@@ -1,30 +1,6 @@
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
# GNOME desktop post-installation configuration
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak dependencies
gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
gnome-terminal # install the default terminal for GNOME Shell
gnome-control-center # Utilities to configure the GNOME desktop
-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot
mesa-dri-drivers # add mesa drivers otherwise there is a blank screen when first booting a desktop-based kickstart without virtualization tools
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
gnome-backgrounds.noarch # wallpapers from the GNOME project
wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in GNOME Shell, but necessary to configure wireless networks using the Network Manager
NetworkManager-wifi # Provides the plugin to manage Wireless networking within GNOME Shell
firefox # Internet browser
mozilla-ublock-origin.noarch # An efficient ad blocker for Firefox
pipewire-alsa # PipeWire media server ALSA support
pipewire-pulseaudio # PipeWire PulseAudio implementation
pipewire-jack-audio-connection-kit # PipeWire JACK implementation
%end # End of the packagages section
%post --nochroot --log=/mnt/sysimage/root/base-desktop-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
# [org.gnome.desktop.background]
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
# EOF
%post --nochroot --log=/mnt/sysimage/root/gnome-desktop-post.log # Beginning of %post section. Those commands are executed outside the chroot environment
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
[org.gnome.desktop.media-handling]
@@ -36,7 +12,7 @@ cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.overr
[org.gnome.Terminal.Legacy.Profile]
font='DejaVu Sans Mono 12'
use-system-font=false
audible-bell=false
auditable-bell=false
EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
@@ -57,7 +33,7 @@ EOF
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
[org.gnome.desktop.privacy]
remove-old-temp-files=true
remember-recent-files=false
remember-recent-file=false
remember-app-usage=false
disable-camera=true
disable-microphone=true
@@ -86,4 +62,4 @@ EOF
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end # End of the %post section
%end # End of the %post section
+19
View File
@@ -0,0 +1,19 @@
# Untested
xconfig --startxonboot # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies.
@base-graphical
## provides the following as mandatory packages:
# mesa-dri-drivers
# mesa-vulkan-drivers
# plymouth-system-theme
labwc # A Wayland window-stacking compositor
## Extra hand-picked packages
firefox # Mozilla Firefox Web browser
mozilla-ublock-origin.noarch # An efficient blocker for Firefox
%end # End of the packagages section
+6
View File
@@ -0,0 +1,6 @@
# Guest agents for virtual machines
%packages --exclude-weakdeps
qemu-guest-agent
spice-vdagent
%end
@@ -1,7 +1,9 @@
%post --nochroot --log=/mnt/sysimage/root/base-hypervisor-amdcpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
# AMD CPU optimization for hypervisor
%post --nochroot --log=/mnt/sysimage/root/hypervisor-amdcpu-post.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization
%end # End of the %post section
%end # End of the %post section
@@ -0,0 +1,30 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Virtualization packages
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
qemu-kvm # QEMU metapackage for KVM support
libvirt # Library providing a simple virtualization API
libvirt-client # Client side utilities of the libvirt library
libvirt-client-qemu # Additional client side utilities for QEMU. Used to interact with some QEMU specific features of libvirt.
libvirt-daemon # Server side daemon and supporting files for libvirt library
libvirt-daemon-common # Miscellaneous files and utilities used by other libvirt daemons
libvirt-daemon-config-network # Default configuration files for the libvirtd daemon. Provides NAT based networking
libvirt-daemon-driver-interface # Interface driver plugin for the libvirtd daemon
libvirt-daemon-driver-network # The network driver plugin for the libvirtd daemon, providing an implementation of the virtual network APIs using the Linux bridge capabilities.
libvirt-daemon-driver-qemu # QEMU driver plugin for the libvirtd daemon
libvirt-daemon-kvm # Server side daemon & driver required to run KVM guests
libvirt-daemon-log # Server side daemon for managing logs
libvirt-daemon-qemu # Server side daemon and driver required to manage the virtualization capabilities of the QEMU TCG emulators
libvirt-nss # Libvirt plugin for Name Service Switch
libvirt-dbus # libvirt D-Bus API binding
libvirt-daemon-driver-ch # Cloud-Hypervisor driver plugin for libvirtd daemon
virt-install # Utilities for installing virtual machines
%end # End of the packages section
@@ -0,0 +1,31 @@
# Hypervisor base post-installation configuration
%post --nochroot --log=/mnt/sysimage/root/hypervisor-base-post.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
# virsh pool-build isos # Build the pool
# virsh pool-start isos # Start it
# virsh pool-autostart isos # Set-it to autostart
# fetch custom script and make it executable
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
# virsh define linux.xml
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
# virsh define windows.xml
%end # End of the %post section
@@ -0,0 +1,3 @@
# Hypervisor base configuration
services --enabled="NetworkManager,systemd-resolved,libvirtd" # Without libvirtd here, it appears the service won't automatically start
@@ -1,7 +1,9 @@
%post --nochroot --log=/mnt/sysimage/root/base-hypervisor-intelcpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
# Intel CPU optimization for hypervisor
%post --nochroot --log=/mnt/sysimage/root/hypervisor-intelcpu-post.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs
%end # End of the %post section
%end # End of the %post section
@@ -1,4 +1,6 @@
%post --nochroot --log=/mnt/sysimage/root/base-hypervisor-intelgpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installtion troubleshooting
# Intel GPU passthrough configuration
%post --nochroot --log=/mnt/sysimage/root/hypervisor-intelgpu-post.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installtion troubleshooting
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
@@ -6,4 +8,4 @@ sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub #
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
%end # End of the %post section
%end # End of the %post section
@@ -0,0 +1,9 @@
# Desktop initial-setup configuration
firstboot --enable # Enable the Setup Agent to start at boot time
%packages --exclude-weakdeps
initial-setup
%end
@@ -0,0 +1,11 @@
# Initial setup - generic wayland desktop mode
firstboot --enable # Initial Setup will start after the first reboot
%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
@@ -0,0 +1,25 @@
# Initial setup - GNOME desktop mode
firstboot --enable # Initial Setup will start after the first reboot
%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
# %post --nochroot --log=/mnt/sysimage/root/initial-setup-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
#
# truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
#
# ## Append lines to existing vendor.conf file, so that options are skipped upon reboot
# cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
# [pages]
# skip=privacy
# [goa]
# providers=local-first!
# EOF
#
# %end # End of the %post section
@@ -0,0 +1,9 @@
# Initial setup - server mode
firstboot --enable --reconfig # Enable the Setup Agent to start at boot time in reconfiguration mode. This mode enables the language, mouse, keyboard, root password, security level, time zone, and networking configuration options in addition to the default ones
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies.
initial-setup # Initial setup package
%end # End of the packages section
+3
View File
@@ -0,0 +1,3 @@
# Live core base configuration
poweroff # Shut down the system after a successful installation
@@ -0,0 +1,3 @@
# Live core bootloader configuration
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1 and to location to none
@@ -0,0 +1,3 @@
# Live core systemd-boot configuration
bootloader --sdboot --location=none --timeout=1 # Use systemd-boot and set location to none
@@ -1,3 +1,5 @@
# Anaconda tools and kernel packages for live media
%packages # Beginning of the package section. Include weak dependencies. Description courtesy of the Fedora project
@anaconda-tools
@@ -20,4 +22,4 @@ glibc-all-langpacks
# provide the livesys scripts
livesys-scripts
%end
%end
@@ -1,5 +1,7 @@
# Live core storage configuration
zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default.
part / --fstype="ext4" --size=5120 # Create a root partition of around 7GB
part / --size=8576
part / --size=8576
+14
View File
@@ -0,0 +1,14 @@
# Live desktop hypervisor configuration
# Enable virtualization support in live environment
%packages
qemu-kvm
libvirt-client
virt-install
%end
%post --erroronfail
# Setup libvirt for live environment
mkdir -p /var/lib/libvirt
systemctl enable libvirtd
%end
@@ -1,4 +1,6 @@
%post --log=/mnt/sysimage/root/post-live-core.log # Beginning of the post-installation section. Add logging.
# Live core post-installation configuration
%post --log=/mnt/sysimage/root/live-core-post.log # Beginning of the post-installation section. Add logging.
# Enable livesys services
systemctl enable livesys.service
@@ -48,4 +50,4 @@ systemctl disable network
rm -f /etc/machine-id
touch /etc/machine-id
%end
%end
@@ -1,6 +1,8 @@
# Live session configuration
%post --log=/mnt/sysimage/root/post-live-session.log # Beginning of the post-installation section. Add logging.
# set livesys session type
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%end
+67
View File
@@ -0,0 +1,67 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Core DNF package group
# More information: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#id240
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies. Package description courtesy of the Fedora project
@core
## Mandatory packages found in hidden `core` group (`dnf group info --hidden core`)
# audit # User space tools for kernel auditing
# basesystem # The skeleton package which defines a simple Fedora system
# bash # The Bourne Again SHell, a command-line interpreter.
# coreutils # A set of basic GNU tools commonly used in shell scripts
# curl # A utility for getting files from remote servers (FTP, HTTP, and others)
# dhcp-client # Provides the ISC DHCP client daemon and dhclient-script
# dnf5 # Command-line package manager
# e2fsprogs # Utilities for managing ext2, ext3, and ext4 file systems
# filesystem # The basic directory layout for a Linux system
# glibc # The GNU libc libraries
# hostname # Utility to set/show the host name or domain name
# iproute # Advanced IP routing and network device configuration tools
# iputils # Network monitoring tools including ping
# kbd # Tools for configuring the console (keyboard, virtual terminals, etc.)
# kernel # The Linux kernel
# less # A text file browser similar to more, but better. Can be excluded
# man-db # Tools for searching and reading man pages. Can be excluded
# ncurses # Ncurses support utilities
# openssh-clients # An open source SSH client applications. Can be excluded
# openssh-server # An open source SSH server daemon. Can be excluded
# parted # The GNU disk partition manipulation program
# policycoreutils # SELinux policy core utilities. Can be excluded
# procps-ng # System and process monitoring utilities
# rootfiles # The basic required files for the root user's directory
# rpm # The RPM package management system
# selinux-policy-targeted # SELinux targeted policy. Can be excluded
# setup # A set of system configuration and setup files
# shadow-utils # Utilities for managing accounts and shadow password files
# sssd-common # Common files for the SSSD. Can be excluded
# sssd-kcm # An implementation of a Kerberos KCM server. Can be excluded
# sudo # Allows restricted root access for specified users
# systemd # System and Service Manager
# util-linux # Collection of basic system utilities
# vim-minimal # A minimal version of the VIM editor
## Default packages found in hidden `core` group (`dnf group info --hidden core`)
# NetworkManager # Network connection manager and user applications
# dnf5-plugins # Plugins for dnf5
# dracut-config-rescue # dracut configuration to turn on rescue image generation
# firewalld # A firewall daemon with D-Bus interface providing a dynamic firewall
# fwupd # Firmware update daemon
# plymouth # Graphical Boot Animation and Logger
# prefixdevname # Udev helper utility that provides network interface naming using user defined prefix
# systemd-resolved # Network Name Resolution manager
# zram-generator-defaults # Default configuration for zram-generator
## Optionnal packages found in hidden `core` group (`dnf group info --hidden core`)
## Not installed by default unless "@core --optional" is used
# dracut-config-generic
# initial-setup
# initscripts
%end # End of the packages section
+18
View File
@@ -0,0 +1,18 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Packages to be used to create a Fedora Remix and comply Fedora Remix legal guidelines: https://fedoraproject.org/wiki/Remix
%packages --exclude-weakdeps
fedora-remix-logos # Fedora Remix logos
generic-release # Generic release files
generic-logos # Icons and pictures
generic-release-common # Generic release files
generic-release-notes # Release Notes
%end # End of the packages section
+12
View File
@@ -0,0 +1,12 @@
# Hand-picked packages
%packages --exclude-weakdeps
pciutils # PCI bus related utilities
libusb # Library for accessing USB devices
usbutils # Linux USB utilities
curl # transfer a URL
wget # An advanced file and recursive website downloader
nano # A small text editor
%end # End of the packages section
@@ -0,0 +1,61 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Extended physical hardware support. Useful for bare metal deployments.
%packages --exclude-weakdeps
@hardware-support
## Mandatory packages found in hidden `hardware-support` group
# alsa-sof-firmware # Audio drivers and firmware for ALSA. Essential for audio functionality.
# amd-gpu-firmware # Firmware for AMD GPUs. Required for proper GPU operation.
# atheros-firmware # Firmware for Atheros wireless network adapters. Critical for wireless connectivity.
# b43-fwcutter # Utility for cutting firmware files for B43 drivers. Needed for driver compatibility.
# b43-openfwwf # Driver and firmware for B43 network cards. Essential for network card operation.
# brcmfmac-firmware # Firmware for Broadcom MAC controllers. Required for wireless and wired network performance.
# cirrus-audio-firmware # Firmware for Cirrus Logic audio chips. Necessary for audio hardware support.
# intel-audio-firmware # Firmware for Intel audio processors. Required for integrated audio functionality.
# intel-gpu-firmware # Firmware for Intel GPUs. Essential for GPU operation.
# intel-vsc-firmware # Firmware for Intel Video Scheduling Controller. Required for GPU performance.
# iwlegacy-firmware # Legacy firmware for older Intel wireless cards. Needed for compatibility.
# iwlwifi-dvm-firmware # Firmware for Intel Wireless Link 5100/5200 series. Crucial for wireless connectivity.
# iwlwifi-mvm-firmware # Firmware for Intel Wireless Link 5300/5400 series. Required for wireless performance.
# libertas-firmware # Firmware for Broadcom wireless network cards. Essential for wireless connectivity.
# mt7xxx-firmware # Firmware for MediaTek wireless network adapters. Required for wireless connectivity.
# nvidia-gpu-firmware # Firmware for NVIDIA GPUs. Essential for GPU operation.
# nxpwireless-firmware # Firmware for NXP wireless network adapters. Required for wireless connectivity.
# realtek-firmware # Firmware for Realtek network adapters and audio devices. Essential for various device support.
# tiwilink-firmware # Firmware for TI WiLink wireless network adapters. Required for wireless connectivity.
## Optional packages found in hidden `hardware-support` group
## Not installed by default unless "@hardware-support --optional" is used
# acpi # Command-line ACPI client
# acpitool # Command line ACPI client
# alsa-firmware # Firmware for several ALSA-supported sound cards
# atmel-firmware # Firmware for Atmel at76c50x wireless network chips
# cmospwd # BIOS password cracker utility
# dvb-firmware # Firmware for various DVB broadcast receivers
# gpsd # Service daemon for mediating access to a GPS
# gpsd-clients # Clients for gpsd
# hddtemp # Hard disk temperature tool
# hdparm # A utility for displaying and/or setting hard disk parameters
# iscan-firmware # Firmware for Epson flatbed scanners
# libifp # General-purpose library-driver for iRiver's iFP portable audio players
# lsscsi # List SCSI devices (or hosts) and associated information
# mlxsw_spectrum-firmware # Firmware for Mellanox Spectrum 1/2/3 Switches
# mrvlprestera-firmware # Firmware for Marvell Prestera Switchdev/ASIC devices
# netronome-firmware # Firmware for Netronome Smart NICs
# opensc # Smart card library and applications
# pcsc-lite # PC/SC Lite smart card framework and applications
# pcsc-lite-ccid # Generic USB CCID smart card reader driver
# qcom-accel-firmware # Firmware for Qualcomm Technologies data center / Open-vRAN Accelerators
# qed-firmware # Firmware for Marvell FastLinQ adapters family
# radeontop # AMD Radeon video cards monitoring utility
# wpan-tools # Userspace tools for the Linux IEEE 802.15.4 stack
# zd1211-firmware # Firmware for wireless devices based on zd1211 chipset
%end # End of the packages section
@@ -0,0 +1,5 @@
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies.
virt-manager # Install virt-manager, a graphical front-end for QEMU/KVM
%end
@@ -1,10 +1,6 @@
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
# Virt-manager post-installation configuration
virt-manager # Install virt-manager, a graphical front-end for QEMU/KVM
%end
%post --nochroot --log=/mnt/sysimage/root/base-desktop-gnome-virtual-machine-manager.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
%post --nochroot --log=/mnt/sysimage/root/vmm-post-scripts.log # Beginning of %post section
# Create a file to autostart virt-manager
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
@@ -17,45 +13,37 @@ EOF
# Modify the default virt-manager behavior for misc. options
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
# Modify the default virt-manager behavior for misc. options
[org.virt-manager.virt-manager]
xmleditor-enabled=true
manager-window-height=600
manager-window-width=200
# Libvirt URIs listed in the manager window
[org.virt-manager.virt-manager.connections]
uris=['qemu:///system', 'qemu:///session']
autoconnect=['qemu:///session']
# Show usage in the domain list
[org.virt-manager.virt-manager.vmlist-fields]
cpu-usage=false
# Settings related to statistics
[org.virt-manager.virt-manager.stats]
update-interval=3
enable-disk-poll=true
enable-memory-poll=true
enable-net-poll=true
# Default behavior for the console
[org.virt-manager.virt-manager.console]
scaling=2
resize-guest=1
autoconnect=false
# Do not show toolbar
[org.virt-manager.virt-manager.details]
show-toolbar=false
# Modify default values for new VMs
[org.virt-manager.virt-manager.new-vm]
storage-format='raw'
cpu-default='host-model'
graphics-type='spice'
# Modify the default virt-manager behavior for confirmation dialogues
[org.virt-manager.virt-manager.confirm]
forcepoweroff=false
removedev=false
@@ -1,3 +1,5 @@
# Fedora 43 repositories
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64 # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64 # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64 # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64 # Official Fedora updates mirror
@@ -1,2 +1,4 @@
# Fedora Rawhide repositories
repo --name=rawhide --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64
@@ -1,3 +1,5 @@
# RPM Fusion non-free repositories
# RPM fusion repositories
# For the current release tree
repo --name=rpmfusion-nonfree --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
@@ -16,4 +18,4 @@ echo "List of incuded RPM Fusion packages with their size:"
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
echo
%end
%end
@@ -1,6 +1,9 @@
# Core post-installation configuration
%post --log=/mnt/sysimage/root/post.log # Beginning of the post-installation section. Log all messages to a given file
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
dnf update -y # Update the system
dnf update -y # Update the system
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end # End of the %post section
%end # End of the %post section
@@ -1,3 +1,5 @@
# Post-installation no-chroot section
%post --nochroot --log=/mnt/sysimage/root/post-nochroot.log # Beginning of the post-installation section. Log all messages to a given file
%end # End of the %post section
%end # End of the %post section
@@ -0,0 +1 @@
# Server-specific post-install tasks
@@ -1,3 +1,5 @@
# Pre-installation kickstart section
%pre --log=/mnt/sysimage/root/pre.log Beginning of the pre section. Log all messages to a given file
%end # End of the %post section
%end # End of the %post section
@@ -1,3 +1,5 @@
# Pre-installation kickstart section
%pre --log=/mnt/sysimage/root/pre-install.log Beginning of the pre-installation section. Log all messages to a given file
%end # End of the %post section
%end # End of the %post section
+8
View File
@@ -0,0 +1,8 @@
# Encrypted storage configuration
zerombr # Destroy all the contents of disks with invalid partition tables or other formatting unrecognizable to the installer
clearpart --all --initlabel # Erase all partitions and Initializes the disk label to the default for the target architecture
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi # Creates a 512 MiB EFI system partition
part /boot --fstype="ext4" --size=2048 --label=boot # Creates a 2048 MiB ext4 boot partition
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit" --encrypted --passphrase= # Create a single encrypted root partition with the remaining space.
+8
View File
@@ -0,0 +1,8 @@
# Standard storage configuration
zerombr # Destroy all the contents of disks with invalid partition tables or other formatting unrecognizable to the installer
clearpart --all --initlabel # Erase all partitions and Initializes the disk label to the default for the target architecture
part /boot/efi --fstype="efi" --size=512 --fsoptions="umask=0077,shortname=winnt" --label=efi # Creates a 512 MiB EFI system partition
part /boot --fstype="ext4" --size=2048 --label=boot # Creates a 2048 MiB ext4 boot partition
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit" # Create a single root partition with the remaining space
@@ -0,0 +1,6 @@
# Validation fragment - success if empty
%post
# If this is being run, it's a success
echo SUCCESS > /root/RESULT
%end
+76
View File
@@ -0,0 +1,76 @@
# Proteus is a template generator for Phyllome OS
# Fragment paths use relative paths from project root
# Required elements can all be replaced by a listed modifier
# Optional elements add features
name: proteus
description: "Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system"
required:
repository:
"43": repo/fedora-43-mirrors.ks
core:
"base": core/base.ks
bootloader:
"grub": bootloader/grub.ks
storage:
"ext4": storage/standard.ks
locale:
"fr_CH": core/locale.ks
services:
"minimal": core/services.ks
network:
"network-manager": core/network.ks
packages:
"core": packages/core.ks
brand:
"fedora-remix": packages/fedora-remix.ks
extra:
"extra": packages/hand-picked.ks
security:
"enabled": core/security/enabled.ks
initial-setup:
"server": initial-setup/server/config.ks
modifiers:
repository:
"rawhide": repo/rawhide-mirrors.ks
storage:
"encrypted": storage/encrypted.ks
security:
"disabled": core/security/disabled.ks
initial-setup:
gnome: initial-setup/gnome/config.ks
generic-wayland: initial-setup/generic-wayland/config.ks
live:
core:
"live-base": livecore/base.ks
bootloader:
"systemd-boot": live/core/bootloader/systemd-boot.ks
packages:
"live-core": live/core/packages.ks
optional:
hardware-support: packages/hardware-support.ks
guest-agents: guest-agents/base.ks
hypervisor: live/hypervisor.ks
desktop:
gnome:
- desktop/gnome/config.ks
- desktop/gnome/packages.ks
- desktop/gnome/post-scripts.ks
labwc:
- desktop/labwc/config.ks
hypervisor_type:
amdcpu: hypervisor/amdcpu.ks
intelcpu: hypervisor/intelcpu.ks
intelgpu: hypervisor/intelgpu.ks
hypervisor:
base:
- hypervisor/base/packages.ks
- hypervisor/base/services.ks
- hypervisor/base/post-scripts.ks
desktop:
- packages/virtual-machine-manager/packages.ks
- packages/virtual-machine-manager/post-scripts.ks
post:
live:
- base: live/post/base.ks
- session: live/post/session.ks

Some files were not shown because too many files have changed in this diff Show More