Compare commits
20
Commits
626f0f9110
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a553429ba | ||
|
|
cd4302cb09 | ||
|
|
fff901ef1a | ||
|
|
e74a88d133 | ||
|
|
ccf4f9d881 | ||
|
|
698c7679be | ||
|
|
cdda0a57a3 | ||
|
|
b4010ee2fb | ||
|
|
cd442c555f | ||
|
|
6e040e05a7 | ||
|
|
8a6a97559d | ||
|
|
8ad3589223 | ||
|
|
c7142ac43a | ||
|
|
73dd52e04e | ||
|
|
ae6eef4045 | ||
|
|
842f754681 | ||
|
|
bbdbef980b | ||
|
|
1ea58e3452 | ||
|
|
5fcbdc2e9d | ||
|
|
2fd464dd5c |
@@ -21,17 +21,10 @@ jobs:
|
||||
run: |
|
||||
pip install PyYAML pykickstart
|
||||
|
||||
- name: Generate all recipes
|
||||
- name: Generate, lint, and validate dishes
|
||||
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
|
||||
cd cook
|
||||
make all
|
||||
|
||||
build-iso:
|
||||
needs: validate
|
||||
@@ -46,31 +39,36 @@ jobs:
|
||||
|
||||
- name: Initialize mock
|
||||
run: |
|
||||
mock -r fedora-43-x86_64 --init
|
||||
mock -r fedora-44-x86_64 --init
|
||||
|
||||
- name: Install required packages
|
||||
run: |
|
||||
mock -r fedora-43-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
|
||||
mock -r fedora-44-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
|
||||
|
||||
- name: Generate dishes
|
||||
run: |
|
||||
cd cook
|
||||
make all
|
||||
|
||||
- name: Copy configuration file to mock
|
||||
run: |
|
||||
mock -r fedora-43-x86_64 --copyin recipes/live-server_rawhide.cfg /builddir
|
||||
mock -r fedora-44-x86_64 --copyin dishes/desktop_44_standard_grub_gnome_guest-agents.cfg /builddir
|
||||
|
||||
- name: Build ISO with livemedia-creator
|
||||
run: |
|
||||
mock -r fedora-43-x86_64 --shell --enable-network --isolation=simple << 'EOF'
|
||||
mock -r fedora-44-x86_64 --shell --enable-network --isolation=simple << 'EOF'
|
||||
cd /builddir
|
||||
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
|
||||
livemedia-creator --ks desktop_44_standard_grub_gnome_guest-agents.cfg --no-virt --resultdir /var/lmc --project phyllomeos --make-iso --volid phyllomeos --iso-only --iso-name desktop-44.iso --releasever 44 --macboot
|
||||
EOF
|
||||
|
||||
- name: Upload ISO as artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: server-43.iso
|
||||
path: /var/lmc/server-43.iso
|
||||
name: desktop-44.iso
|
||||
path: /var/lmc/desktop-44.iso
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Cleanup mock environment
|
||||
if: always()
|
||||
run: |
|
||||
mock -r fedora-43-x86_64 --clean
|
||||
mock -r fedora-44-x86_64 --clean
|
||||
|
||||
@@ -6,8 +6,8 @@ on:
|
||||
- "v*.*.*"
|
||||
|
||||
env:
|
||||
FEDORA_VERSION: 43
|
||||
KICKSTART_FILE: live-desktop-hypervisor
|
||||
FEDORA_VERSION: 44
|
||||
KICKSTART_FILE: desktop_44_standard_grub_gnome_guest-agents
|
||||
|
||||
jobs:
|
||||
checkout:
|
||||
@@ -29,6 +29,11 @@ jobs:
|
||||
run: |
|
||||
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
|
||||
|
||||
- name: Generate dishes
|
||||
run: |
|
||||
cd cook
|
||||
make all
|
||||
|
||||
- name: Copy configuration file to mock
|
||||
run: |
|
||||
mock -r fedora-${{ env.FEDORA_VERSION }}-x86_64 --copyin dishes/${{ env.KICKSTART_FILE }} /builddir
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Generated build products (created by `make all` in cook/)
|
||||
cook/recipes/*.cfg
|
||||
cook/dishes/*.cfg
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.pytest_cache/
|
||||
-739
@@ -1,739 +0,0 @@
|
||||
# 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*
|
||||
@@ -1,59 +0,0 @@
|
||||
# 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.
|
||||
@@ -4,47 +4,131 @@
|
||||
|
||||
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.sh
|
||||
```
|
||||
|
||||
- Execute it and pick `virtual-desktop-hypervisor` when prompted:
|
||||
- Execute it and pick a dish, e.g. `desktop_44_standard_grub_gnome_guest-agents`, when prompted:
|
||||
|
||||
```
|
||||
./deploy-vm.sh
|
||||
./deploy.sh
|
||||
|
||||
Executing: ./deploy/core-count.sh
|
||||
System has more than 2 core (nproc --all: 6).
|
||||
[...]
|
||||
10. virtual-desktop-hypervisor
|
||||
Available files:
|
||||
1. desktop_44_standard_grub_gnome
|
||||
[...]
|
||||
Enter the number of the file you want to select: 10
|
||||
You selected: virtual-desktop-hypervisor
|
||||
8. desktop_44_standard_grub_gnome_guest-agents
|
||||
[...]
|
||||
Enter the number of the file you want to select: 8
|
||||
You selected: desktop_44_standard_grub_gnome_guest-agents
|
||||
|
||||
Starting install...
|
||||
Retrieving 'vmlinuz' | 16 MB 00:00:00
|
||||
Retrieving 'initrd.img' | 161 MB 00:00:05
|
||||
Allocating 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
|
||||
Transferring 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
|
||||
Allocating 'virtinst-qxr2jxcb-initrd.img' | 161 MB 00:00:00
|
||||
Transferring 'virtinst-qxr2jxcb-initrd.img' | 161 MB 00:00:00
|
||||
Allocating 'virtual-desktop-hypervisor.img' | 10 GB 00:00:00
|
||||
Allocating 'desktop_44_standard_grub_gnome_guest-agents.img' | 10 GB 00:00:00
|
||||
Creating domain...
|
||||
```
|
||||
|
||||
`deploy.sh` regenerates the `recipes` and `dishes` (they are build products) before deploying.
|
||||
After a successfull installation, the virtual machine will shutdown and be ready to use when powered on again.
|
||||
|
||||
## Repository structure
|
||||
|
||||
This repository contains such files broken down as:
|
||||
|
||||
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: the basic building blocks for assembling Phyllome OS and other derivatives.
|
||||
* `cook/ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: the basic building blocks for assembling Phyllome OS and other derivatives.
|
||||
|
||||
* `recipes`🧾 🧩: lists of ingredients to compose several editions
|
||||
* `cook/recipes`🧾 🧩: lists of ingredients to compose several editions. **Build product**: generated by `make all`.
|
||||
|
||||
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁: read-to-consume and standalone kickstart artifacts, which can be used to deploy complete systems
|
||||
* `cook/dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁: ready-to-consume and standalone kickstart artifacts, which can be used to deploy complete systems. **Build product**: generated by `make all`.
|
||||
|
||||
Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment or a storage configuration.
|
||||
- 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. The cooking pipeline is fully data-driven:
|
||||
|
||||
* `cook/recipes_manifest.yaml` declares which editions (groups) and which variant matrix to build.
|
||||
* `cook/recipe_templates.yaml` ("Proteus") wires variant values and flags to ingredient fragments: `base` (always included), `choices` (exactly-one per category), `features` (additive).
|
||||
* `make all` (in `cook/`) composes recipes, flattens them into dishes with pykickstart in-process, lints the invariants pykickstart can't check, and validates every dish.
|
||||
|
||||
### Requirements
|
||||
|
||||
- `qemu`
|
||||
- `libvirt`
|
||||
- `virt-install`
|
||||
- `pykickstart` (needed to flatten and validate; `pip install -r cook/requirements.txt`)
|
||||
|
||||
### Example: 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:
|
||||
|
||||
```
|
||||
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" > cook/ingredients/extra-luanti.ks
|
||||
```
|
||||
|
||||
- Wire it as a new optional feature in `cook/recipe_templates.yaml`:
|
||||
|
||||
```yaml
|
||||
features:
|
||||
luanti: extra-luanti.ks
|
||||
```
|
||||
|
||||
- Regenerate:
|
||||
|
||||
```
|
||||
cd cook && make all
|
||||
```
|
||||
|
||||
- Every dish that enables the `luanti` feature now contains the new ingredient. To name such dishes distinctly, enable the flag in the manifest, e.g. add `luanti: [true, false]` to a variant list.
|
||||
|
||||
Alternatively, for a bespoke dish not part of the matrix, append the ingredient directly to an existing recipe and re-flatten it:
|
||||
|
||||
```
|
||||
echo "%include ../ingredients/extra-luanti.ks # Sandbox video game engine" >> cook/recipes/desktop_44_standard_grub_gnome.cfg
|
||||
cd cook && make generate
|
||||
```
|
||||
|
||||
### Example: create a new edition from the existing list of ingredients
|
||||
|
||||
- Print the full ingredient inventory derived from the templates:
|
||||
|
||||
```
|
||||
cd cook && make inventory
|
||||
```
|
||||
|
||||
- Define a new edition (a group named e.g. `server`) in `cook/recipes_manifest.yaml` with the desired variants; the cartesian product of its list values generates one dish per combination.
|
||||
|
||||
### Useful targets (in `cook/`)
|
||||
|
||||
```
|
||||
make all # generate recipes + dishes, lint, and validate (default)
|
||||
make lint # check the manifest/templates without writing files
|
||||
make validate # validate existing dishes
|
||||
make inventory # print the ingredient catalog derived from the templates
|
||||
make test # run the pytest test suite
|
||||
```
|
||||
|
||||
## FAQ
|
||||
|
||||
- **I change one ingredient and many dishes are affected** — just run `make all` to regenerate the full matrix; recipes and dishes are derived from the templates, so they cannot drift.
|
||||
|
||||
- **I want to inspect what a dish contains** — forget `git diff`: generated files are intentionally untracked. Open `cook/recipes/<name>.cfg` for the include list or `cook/dishes/<name>.cfg` for the flattened kickstart.
|
||||
|
||||
- **The `%packages` sections are merged and sorted by pykickstart** — that is expected canonical output.
|
||||
|
||||
## 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
|
||||
+39
-39
@@ -1,52 +1,52 @@
|
||||
.PHONY: help generate-recipes validate-recipes clean clean-dishes install-deps flatten-dishes all
|
||||
.PHONY: help generate lint validate inventory test install-deps clean clean-recipes clean-dishes all
|
||||
|
||||
PYTHON ?= python3
|
||||
|
||||
default: 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 " all - Generate recipes and dishes, lint, and validate (default)"
|
||||
@echo " generate - Same as 'all'"
|
||||
@echo " lint - Lint manifest and templates without writing files"
|
||||
@echo " validate - Validate existing dishes without regenerating"
|
||||
@echo " inventory - Print the ingredient inventory derived from recipe_templates.yaml"
|
||||
@echo " test - Run the pytest test suite"
|
||||
@echo " install-deps - Install Python dependencies"
|
||||
@echo " clean - Remove generated recipes and dishes"
|
||||
@echo " clean-recipes- Remove generated recipes only"
|
||||
@echo " clean-dishes - Remove generated dishes only"
|
||||
|
||||
all: generate-recipes flatten-dishes validate-recipes
|
||||
@echo "✓ All recipes generated, flattened, and validated"
|
||||
all: generate
|
||||
|
||||
generate:
|
||||
@$(PYTHON) generate_recipe.py
|
||||
|
||||
lint:
|
||||
@$(PYTHON) generate_recipe.py --no-generate --no-validate
|
||||
|
||||
validate:
|
||||
@$(PYTHON) generate_recipe.py --no-generate --no-lint
|
||||
|
||||
inventory:
|
||||
@$(PYTHON) generate_recipe.py --inventory
|
||||
|
||||
test:
|
||||
@$(PYTHON) -m pytest tests
|
||||
|
||||
install-deps:
|
||||
pip install -r requirements.txt
|
||||
@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:
|
||||
@rm -f recipes/*.cfg dishes/*.cfg
|
||||
@echo "Generated recipes and dishes removed. Run 'make all' 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."
|
||||
@rm -f recipes/*.cfg
|
||||
@echo "Generated recipes removed. Run 'make generate' to regenerate."
|
||||
|
||||
clean-all:
|
||||
rm -f dishes/*.cfg
|
||||
rm -f recipes/*.cfg
|
||||
@echo "✓ Flattened dishes and generated recipes removed. Run 'make all' to regenerate."
|
||||
clean-dishes:
|
||||
@rm -f dishes/*.cfg
|
||||
@echo "Generated dishes removed. Run 'make generate' to regenerate."
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# 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
|
||||
|
||||
# Booloader configuration
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-bootloader-grub.cfg # GNU GRUB bootloader
|
||||
# %include ../ingredients/core-bootloader-systemd-boot.cfg # systemd-boot, an EFI-only bootloader
|
||||
# %include ../ingredients/live-core-bootloader-grub.cfg # GNU GRUB for live systems
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#bootloader
|
||||
|
||||
# System locale configuration
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-locale.cfg # System locale sets to Swiss French as keyboard layout and English as language. Timezone is also set. Can be changed during by end-user during first boot
|
||||
|
||||
# Security mode
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-security-off.cfg # Sets security to low
|
||||
# %include ../ingredients/core-security-on.cfg # Sets security to medium
|
||||
|
||||
# System services
|
||||
# Optional
|
||||
# %include ../ingredients/core-services.cfg # List of systemd services that are explicitly enabled
|
||||
|
||||
# Network configuration
|
||||
# %include ../ingredients/core-network.cfg # Network configuration
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#id123
|
||||
|
||||
# Repositories
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-fedora-repo.cfg # Official repositories for Fedora
|
||||
# %include ../ingredients/core-fedora-repo-rawhide.cfg # Official repositories for Fedora Rawhide
|
||||
|
||||
# Packages
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
||||
# %include ../ingredients/core-packages-mandatory-trimming-attempt.cfg # Trimming attempt for the mandatory packages
|
||||
# Mandatory packages for live editions
|
||||
# %include ../ingredients/live-core-mandatory-packages.cfg # For live systems
|
||||
# Other optional packages
|
||||
# Recommended but not strictly required
|
||||
# %include ../ingredients/core-packages-default.cfg # Recommended extra packages
|
||||
# %include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support. Recommended for non-virtual systems
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-9-package-selection
|
||||
|
||||
# Pre- and post-installation sections
|
||||
# Optional
|
||||
# All options can be picked
|
||||
# %include ../ingredients/pre.cfg # Triggered just after the kickstart file has been parsed
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-4-pre-installation-script
|
||||
# %include ../ingredients/pre-install.cfg # Script triggered just after the system storage has been set up
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-5-pre-install-script
|
||||
# %include ../ingredients/core-post-nochroot.cfg # Triggered after the installation no chroot
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-6-post-installation-script
|
||||
# %include ../ingredients/core-post.cfg # Triggered after the installation
|
||||
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-6-post-installation-script
|
||||
# Two options have to be picked, for live systems only
|
||||
# %include ../ingredients/live-core-post.cfg # Post configuration script for a live system only
|
||||
# %include ../ingredients/live-core-post-live-session.cfg # Live session script
|
||||
|
||||
# OEM setup
|
||||
# Exactly one option has to be picked
|
||||
# %include ../ingredients/core-desktop-initial-setup.cfg # Ensures that GNOME initial setup will launch on the first system start-up
|
||||
# %include ../ingredients/core-server-initial-setup.cfg # For headless systems
|
||||
|
||||
# A GNOME Shell-based desktop environment
|
||||
# Optional
|
||||
# %include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
|
||||
# Documentation: https://fedoraproject.org/wiki/InitialSetup
|
||||
|
||||
# Virtualization-related packages
|
||||
# Optional
|
||||
# %include ../ingredients/base-desktop-virtual-machine-manager.cfg # Virtual Machine Manager
|
||||
# %include ../ingredients/base-hypervisor.cfg # Generic building block to build a virtualization host
|
||||
|
||||
# Virtualization-related options
|
||||
# Optional
|
||||
# %include ../ingredients/base-hypervisor-amdcpu.cfg # Virtualization configuration for AMD (tm) CPUs
|
||||
# %include ../ingredients/base-hypervisor-intelcpu.cfg # Virtualization configuration for Intel (tm) CPUs
|
||||
# %include ../ingredients/base-hypervisor-intelgpu.cfg # Virtualization configuration for Intel (tm) GPUs from 4th to the 9th generation (compatible with vfio-mdev)
|
||||
# %include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
exec "$(dirname "$0")/../recipe-generator/generate_recipe.py" "$@"
|
||||
@@ -1,90 +0,0 @@
|
||||
#!/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()
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,137 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,137 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,137 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,138 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,137 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,141 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,141 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,141 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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,141 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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
|
||||
@@ -1,140 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
@@ -1,139 +0,0 @@
|
||||
# Generated by pykickstart v3.69
|
||||
#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="rawhide" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&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=rawhide&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
|
||||
+289
-329
@@ -1,7 +1,19 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Recipe generator for Phyllome OS.
|
||||
Reads recipes_manifest.yaml and generates kickstart recipe files.
|
||||
Recipe and dish generator for Phyllome OS.
|
||||
|
||||
Reads recipes_manifest.yaml (the variant matrix) and recipe_templates.yaml
|
||||
(the ingredient wiring) to:
|
||||
|
||||
1. compose kickstart "recipes" (%include lists) under recipes/,
|
||||
2. flatten them into standalone "dishes" under dishes/ using pykickstart
|
||||
in-process (no external ksflatten binary), and
|
||||
3. lint the invariants pykickstart cannot check (exactly-one per choice
|
||||
category, known keys, existing fragments, unique filenames) and
|
||||
validate every generated dish.
|
||||
|
||||
Everything is derived from YAML; ingredient names, order and filenames are
|
||||
pure functions of the manifest and templates.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -11,103 +23,30 @@ import sys
|
||||
|
||||
import yaml
|
||||
|
||||
from pykickstart.version import DEVEL, returnClassForVersion
|
||||
from pykickstart.parser import KickstartParser
|
||||
|
||||
# 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',
|
||||
],
|
||||
},
|
||||
}
|
||||
HEADER = """# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \\/ ___/
|
||||
# / __ \\/ __ \\/ / / / / / __ \\/ __ `__ \\/ _ \\ / / / /\\__ \\
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\\__, /_/_/\\____/_/ /_/ /_/\\___/ \\____//____/
|
||||
# /_/ /____/
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def load_yaml(path):
|
||||
with open(path) as f:
|
||||
return yaml.safe_load(f)
|
||||
|
||||
|
||||
def expand_variants(variant_config):
|
||||
"""Expand variant config with list values into cartesian product."""
|
||||
"""Expand a variant config into its cartesian product.
|
||||
|
||||
Keys holding a list of values expand to one variant per combination;
|
||||
scalar and boolean keys are fixed across every combination.
|
||||
"""
|
||||
keys = variant_config.keys()
|
||||
values = []
|
||||
for key in keys:
|
||||
@@ -116,274 +55,295 @@ def expand_variants(variant_config):
|
||||
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 default_choice(choices):
|
||||
"""Return the first declared value of a choices category."""
|
||||
return next(iter(choices))
|
||||
|
||||
|
||||
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('repository', '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
|
||||
def collect_fragments(templates, variant):
|
||||
"""Resolve a variant to the ordered list of ingredient fragments.
|
||||
|
||||
Returns (fragments, problems) where problems is a list of human-readable
|
||||
lint messages. Choices default to their first declared value when the
|
||||
variant omits them.
|
||||
"""
|
||||
fragments = list(templates.get('base', []))
|
||||
problems = []
|
||||
|
||||
# Use ingredient paths as-is (simple paths relative to project root)
|
||||
# ksflatten-relative will handle conversion during flattening
|
||||
for category, mapping in templates.get('choices', {}).items():
|
||||
value = variant.get(category)
|
||||
if value is None:
|
||||
value = default_choice(mapping)
|
||||
path = mapping.get(value)
|
||||
if path is None:
|
||||
problems.append(
|
||||
"choice '%s': unknown value '%s' (expected one of %s)"
|
||||
% (category, value, ', '.join(sorted(mapping))))
|
||||
else:
|
||||
fragments.append(path)
|
||||
|
||||
for feature, body in templates.get('features', {}).items():
|
||||
value = variant.get(feature)
|
||||
if value is None or isinstance(value, bool) and not value:
|
||||
continue
|
||||
if isinstance(body, str):
|
||||
fragments.append(body)
|
||||
else:
|
||||
rendered = body.get(value)
|
||||
if rendered is None:
|
||||
problems.append(
|
||||
"feature '%s': unknown value '%s' (expected one of %s)"
|
||||
% (feature, value, ', '.join(sorted(body))))
|
||||
elif isinstance(rendered, list):
|
||||
fragments.extend(rendered)
|
||||
else:
|
||||
fragments.append(rendered)
|
||||
|
||||
fragments = list(dict.fromkeys(fragments))
|
||||
return fragments, problems
|
||||
|
||||
|
||||
def render_filename(templates, group_name, variant):
|
||||
"""Build a deterministic, collision-free dish name for a variant.
|
||||
|
||||
Tokens follow the canonical category order from the templates (choices
|
||||
first, then features), independent of the key order the manifest uses, so
|
||||
reordering the manifest -- or YAML tools that sort keys -- never renames
|
||||
dishes. Boolean True renders the key itself, boolean False is omitted,
|
||||
other values render str(value). The group name prefixes every dish,
|
||||
making names unique across groups.
|
||||
"""
|
||||
order = list(templates.get('choices', {})) + list(templates.get('features', {}))
|
||||
tokens = []
|
||||
for key in order:
|
||||
if key not in variant:
|
||||
continue
|
||||
value = variant[key]
|
||||
if isinstance(value, bool):
|
||||
if value:
|
||||
tokens.append(key)
|
||||
else:
|
||||
tokens.append(str(value))
|
||||
return "%s_%s.cfg" % (group_name, '_'.join(tokens))
|
||||
|
||||
|
||||
def render_recipe(fragments):
|
||||
"""Render a recipe (%include list) for the given ingredient fragments."""
|
||||
includes = '\n'.join(f'%include ../ingredients/{slug}' for slug in fragments)
|
||||
return HEADER + includes + '\n'
|
||||
|
||||
|
||||
def lint_manifest(manifest, templates, ingredients_root):
|
||||
"""Return a list of lint problems across the whole manifest."""
|
||||
problems = []
|
||||
group_names = set()
|
||||
|
||||
for group in manifest.get('recipes', []):
|
||||
group_name = group.get('name', 'unknown')
|
||||
if group_name in group_names:
|
||||
problems.append("duplicate group name '%s'" % group_name)
|
||||
group_names.add(group_name)
|
||||
|
||||
for config in group.get('variants', []):
|
||||
for variant in expand_variants(config):
|
||||
known = set(templates.get('choices')) | set(templates.get('features'))
|
||||
for key in variant:
|
||||
if key not in known:
|
||||
problems.append(
|
||||
"unknown variant key '%s' (group '%s')" % (key, group_name))
|
||||
_, probs = collect_fragments(templates, variant)
|
||||
problems.extend(probs)
|
||||
name = render_filename(templates, group_name, variant)
|
||||
problems.extend(check_fragments_exist(templates, variant, ingredients_root))
|
||||
|
||||
filenames = []
|
||||
for group in manifest.get('recipes', []):
|
||||
group_name = group.get('name', 'unknown')
|
||||
for config in group.get('variants', []):
|
||||
for variant in expand_variants(config):
|
||||
filenames.append(render_filename(templates, group_name, variant))
|
||||
seen = set()
|
||||
unique_ingredients = []
|
||||
for ing in ingredients:
|
||||
if ing not in seen:
|
||||
seen.add(ing)
|
||||
unique_ingredients.append(ing)
|
||||
for name in filenames:
|
||||
if name in seen:
|
||||
problems.append("duplicate dish name '%s'" % name)
|
||||
seen.add(name)
|
||||
|
||||
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
|
||||
return problems
|
||||
|
||||
|
||||
def generate_recipes(manifest_path, output_dir):
|
||||
"""Generate all recipes from manifest."""
|
||||
with open(manifest_path) as f:
|
||||
manifest = yaml.safe_load(f)
|
||||
def check_fragments_exist(templates, variant, ingredients_root):
|
||||
fragments, _ = collect_fragments(templates, variant)
|
||||
problems = []
|
||||
for slug in fragments:
|
||||
path = os.path.join(ingredients_root, slug)
|
||||
if not os.path.isfile(path):
|
||||
problems.append("missing ingredient fragment '%s'" % slug)
|
||||
return problems
|
||||
|
||||
|
||||
def flatten_recipe(recipe_path):
|
||||
"""Flatten a recipe (%include list) into a standalone kickstart string."""
|
||||
handler = returnClassForVersion(DEVEL)()
|
||||
parser = KickstartParser(handler)
|
||||
parser.readKickstart(recipe_path)
|
||||
return str(handler)
|
||||
|
||||
|
||||
def validate_dish(dish_path):
|
||||
"""Return (ok, error) for a standalone kickstart dish."""
|
||||
try:
|
||||
handler = returnClassForVersion(DEVEL)()
|
||||
parser = KickstartParser(handler)
|
||||
parser.readKickstart(dish_path)
|
||||
return True, None
|
||||
except Exception as exc: # noqa: BLE001 - report any parse failure
|
||||
return False, str(exc)
|
||||
|
||||
|
||||
def generate(manifest_path, templates_path, recipes_dir, dishes_dir,
|
||||
ingredients_dir, do_generate=True, do_lint=True, do_validate=True):
|
||||
"""Full cooking pipeline. Returns an exit code (0 on success)."""
|
||||
manifest = load_yaml(manifest_path)
|
||||
templates = load_yaml(templates_path)
|
||||
ingredients_root = os.path.join(os.path.dirname(os.path.abspath(manifest_path)),
|
||||
ingredients_dir)
|
||||
|
||||
if do_lint:
|
||||
problems = lint_manifest(manifest, templates, ingredients_root)
|
||||
else:
|
||||
problems = []
|
||||
|
||||
failures = []
|
||||
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
|
||||
recipe_dir = os.path.abspath(recipes_dir)
|
||||
dish_dir = os.path.abspath(dishes_dir)
|
||||
if do_generate:
|
||||
os.makedirs(recipe_dir, exist_ok=True)
|
||||
os.makedirs(dish_dir, exist_ok=True)
|
||||
|
||||
filepath = write_recipe_file(all_ingredients, variant, output_dir, group_name)
|
||||
generated.append(filepath)
|
||||
for group in manifest.get('recipes', []):
|
||||
group_name = group.get('name', 'unknown')
|
||||
for config in group.get('variants', []):
|
||||
for variant in expand_variants(config):
|
||||
fragments, probs = collect_fragments(templates, variant)
|
||||
problems.extend(probs)
|
||||
name = render_filename(templates, group_name, variant)
|
||||
generated.append(name)
|
||||
if not do_generate:
|
||||
continue
|
||||
|
||||
return generated
|
||||
recipe_path = os.path.join(recipe_dir, name)
|
||||
with open(recipe_path, 'w') as f:
|
||||
f.write(render_recipe(fragments))
|
||||
|
||||
|
||||
def validate_recipe(recipe_path):
|
||||
"""Validate a recipe file using pykickstart."""
|
||||
dish_path = os.path.join(dish_dir, name)
|
||||
try:
|
||||
from pykickstart.parser import KickstartParser
|
||||
from pykickstart.version import returnClassForVersion
|
||||
dish = flatten_recipe(recipe_path)
|
||||
with open(dish_path, 'w') as f:
|
||||
f.write(dish)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
failures.append('%s: flatten failed: %s' % (name, exc))
|
||||
|
||||
ks_class = returnClassForVersion()
|
||||
parser = KickstartParser(ks_class)
|
||||
if do_validate and do_generate:
|
||||
for name in generated:
|
||||
dish_path = os.path.join(dish_dir, name)
|
||||
if not os.path.isfile(dish_path):
|
||||
continue
|
||||
ok, error = validate_dish(dish_path)
|
||||
if not ok:
|
||||
problems.append('%s: invalid dish: %s' % (name, error))
|
||||
|
||||
# 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)
|
||||
if do_generate:
|
||||
print("Generated %d recipes and %d dishes" % (len(generated), len(generated)))
|
||||
if problems:
|
||||
for problem in problems:
|
||||
print("lint: %s" % problem, file=sys.stderr)
|
||||
if failures:
|
||||
for failure in failures:
|
||||
print(failure, file=sys.stderr)
|
||||
return 1 if (problems or failures) else 0
|
||||
|
||||
|
||||
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}")
|
||||
def print_inventory(templates_path, ingredients_dir):
|
||||
templates = load_yaml(templates_path)
|
||||
root = os.path.abspath(ingredients_dir)
|
||||
out = []
|
||||
out.append("Ingredient inventory for Phyllome OS (from %s)" % templates_path)
|
||||
out.append("=" * 60)
|
||||
out.append("\nBase (always included, in order):")
|
||||
for slug in templates.get('base', []):
|
||||
out.append(" %-40s %s" % (slug, os.path.exists(os.path.join(root, slug)) and "ok" or "MISSING"))
|
||||
out.append("\nChoices (exactly one per category):")
|
||||
for category, mapping in templates.get('choices', {}).items():
|
||||
out.append(" %s:" % category)
|
||||
for value, slug in mapping.items():
|
||||
out.append(" %-12s %-30s %s" % (value, slug,
|
||||
os.path.exists(os.path.join(root, slug)) and "ok" or "MISSING"))
|
||||
out.append("\nFeatures (additive):")
|
||||
for feature, body in templates.get('features', {}).items():
|
||||
out.append(" %s:" % feature)
|
||||
if isinstance(body, str):
|
||||
out.append(" (flag) %-30s %s" % (body,
|
||||
os.path.exists(os.path.join(root, body)) and "ok" or "MISSING"))
|
||||
else:
|
||||
print(f"✗ {filename}: {error}", file=sys.stderr)
|
||||
errors.append((filename, error))
|
||||
|
||||
return len(errors) == 0
|
||||
for value, slugs in body.items():
|
||||
if isinstance(slugs, list):
|
||||
for slug in slugs:
|
||||
out.append(" %-12s %-30s %s" % (value, slug,
|
||||
os.path.exists(os.path.join(root, slug)) and "ok" or "MISSING"))
|
||||
else:
|
||||
out.append(" %-12s %-30s %s" % (value, slugs,
|
||||
os.path.exists(os.path.join(root, slugs)) and "ok" or "MISSING"))
|
||||
print('\n'.join(out))
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Generate Phyllome OS recipes')
|
||||
def main(argv=None):
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Generate Phyllome OS recipes and dishes')
|
||||
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()
|
||||
help='recipe variant manifest (default: recipes_manifest.yaml)')
|
||||
parser.add_argument('--templates', default='recipe_templates.yaml',
|
||||
help='ingredient templates (default: recipe_templates.yaml)')
|
||||
parser.add_argument('--recipes-dir', default='recipes',
|
||||
help='output directory for recipe include lists (default: recipes)')
|
||||
parser.add_argument('--dishes-dir', default='dishes',
|
||||
help='output directory for flattened dishes (default: dishes)')
|
||||
parser.add_argument('--ingredients-dir', default='ingredients',
|
||||
help='ingredient fragments directory (default: ingredients)')
|
||||
parser.add_argument('--no-generate', action='store_true',
|
||||
help='do not write recipes or dishes (lint/validate only)')
|
||||
parser.add_argument('--no-lint', action='store_true',
|
||||
help='skip manifest linting')
|
||||
parser.add_argument('--no-validate', action='store_true',
|
||||
help='skip dish validation')
|
||||
parser.add_argument('--inventory', action='store_true',
|
||||
help='print the ingredient inventory from templates and exit')
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
# 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)
|
||||
manifest_path = args.manifest if os.path.isabs(args.manifest) \
|
||||
else os.path.join(script_dir, args.manifest)
|
||||
templates_path = args.templates if os.path.isabs(args.templates) \
|
||||
else os.path.join(script_dir, args.templates)
|
||||
|
||||
output_dir = args.output_dir
|
||||
if not os.path.isabs(args.output_dir):
|
||||
output_dir = os.path.join(script_dir, args.output_dir)
|
||||
if args.inventory:
|
||||
print_inventory(templates_path, args.ingredients_dir)
|
||||
return 0
|
||||
|
||||
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")
|
||||
return generate(
|
||||
manifest_path, templates_path, args.recipes_dir, args.dishes_dir,
|
||||
args.ingredients_dir,
|
||||
do_generate=not args.no_generate,
|
||||
do_lint=not args.no_lint,
|
||||
do_validate=not args.no_validate)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
sys.exit(main())
|
||||
@@ -2,8 +2,27 @@
|
||||
|
||||
%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.
|
||||
# Kernel arguments cannot be attached to a single canonical location at %post time:
|
||||
# anaconda always creates /etc/kernel/cmdline (kernel-install source for both
|
||||
# systemd-boot and GRUB+BLS layouts), but GRUB+BLS boot entries have already been
|
||||
# generated from it by the kernel package scriptlets, and non-BLS flows still read
|
||||
# /etc/default/grub. Update every surface idempotently, guarded by file existence.
|
||||
|
||||
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization
|
||||
IOMMU_ARGS="iommu=pt rd.driver.pre=vfio-pci"
|
||||
|
||||
if [ -f /mnt/sysimage/etc/kernel/cmdline ]; then # kernel-install source (systemd-boot now, GRUB+BLS for future kernels)
|
||||
grep -q "iommu=pt" /mnt/sysimage/etc/kernel/cmdline || echo " $IOMMU_ARGS" >> /mnt/sysimage/etc/kernel/cmdline # Append IOMMU arguments once
|
||||
fi
|
||||
|
||||
if [ -f /mnt/sysimage/etc/default/grub ]; then # GRUB: arguments for grub.cfg-based boot flows
|
||||
grep -q "iommu=pt" /mnt/sysimage/etc/default/grub || sed -i "s/\(quiet\)/\1 $IOMMU_ARGS/i" /mnt/sysimage/etc/default/grub # Append IOMMU arguments once
|
||||
fi
|
||||
|
||||
for bls_entry in /mnt/sysimage/boot/loader/entries/*.conf; do # Already-generated boot entries share one "options" line shape
|
||||
[ -e "$bls_entry" ] || continue # Nothing matched: the glob stays literal
|
||||
grep -q "iommu=pt" "$bls_entry" || sed -i "s/^\(options .*\)/\1 $IOMMU_ARGS/" "$bls_entry" # Patch the options line of each entry once
|
||||
done
|
||||
|
||||
grep -q "nested=1" /mnt/sysimage/etc/modprobe.d/kvm.conf 2>/dev/null || echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on AMD CPUs, exactly once
|
||||
|
||||
%end # End of the %post section
|
||||
|
||||
@@ -2,8 +2,27 @@
|
||||
|
||||
%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.
|
||||
# Kernel arguments cannot be attached to a single canonical location at %post time:
|
||||
# anaconda always creates /etc/kernel/cmdline (kernel-install source for both
|
||||
# systemd-boot and GRUB+BLS layouts), but GRUB+BLS boot entries have already been
|
||||
# generated from it by the kernel package scriptlets, and non-BLS flows still read
|
||||
# /etc/default/grub. Update every surface idempotently, guarded by file existence.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs
|
||||
IOMMU_ARGS="intel_iommu=on iommu=pt rd.driver.pre=vfio-pci"
|
||||
|
||||
if [ -f /mnt/sysimage/etc/kernel/cmdline ]; then # kernel-install source (systemd-boot now, GRUB+BLS for future kernels)
|
||||
grep -q "intel_iommu=on" /mnt/sysimage/etc/kernel/cmdline || echo " $IOMMU_ARGS" >> /mnt/sysimage/etc/kernel/cmdline # Append IOMMU arguments once
|
||||
fi
|
||||
|
||||
if [ -f /mnt/sysimage/etc/default/grub ]; then # GRUB: arguments for grub.cfg-based boot flows
|
||||
grep -q "intel_iommu=on" /mnt/sysimage/etc/default/grub || sed -i "s/\(quiet\)/\1 $IOMMU_ARGS/i" /mnt/sysimage/etc/default/grub # Append IOMMU arguments once
|
||||
fi
|
||||
|
||||
for bls_entry in /mnt/sysimage/boot/loader/entries/*.conf; do # Already-generated boot entries share one "options" line shape
|
||||
[ -e "$bls_entry" ] || continue # Nothing matched: the glob stays literal
|
||||
grep -q "intel_iommu=on" "$bls_entry" || sed -i "s/^\(options .*\)/\1 $IOMMU_ARGS/" "$bls_entry" # Patch the options line of each entry once
|
||||
done
|
||||
|
||||
grep -q "nested=1" /mnt/sysimage/etc/modprobe.d/kvm.conf 2>/dev/null || echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs, exactly once
|
||||
|
||||
%end # End of the %post section
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
# Desktop initial-setup configuration
|
||||
|
||||
firstboot --enable # Enable the Setup Agent to start at boot time
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
|
||||
initial-setup
|
||||
|
||||
%end
|
||||
@@ -10,16 +10,16 @@ gnome-initial-setup # Add GNOME initial setup too to let user create local accou
|
||||
|
||||
%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
|
||||
%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
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# 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
|
||||
@@ -0,0 +1,93 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Core packages, broken down explicitly instead of using the `@core` group.
|
||||
#
|
||||
# Why: dishes that keep the Fedora remix packages (generic-release,
|
||||
# generic-logos, fedora-remix-logos) cannot coexist with fedora-release /
|
||||
# fedora-logos — both pairs hard-conflict. Listing the core packages
|
||||
# explicitly deselects the Fedora release/branding packages while the
|
||||
# remix packages provide `system-release`, `system-release(44)`,
|
||||
# `fedora-release-identity` and `system-logos` in their place.
|
||||
#
|
||||
# Package list mirrors the Fedora 44 `core` comps group (mandatory +
|
||||
# default packages), plus `basesystem`, `kernel` and `dhcp-client` from
|
||||
# the hidden core group, plus `fedora-repos` (usually pulled in via
|
||||
# fedora-release-common, which is deselected here), plus session-system
|
||||
# essentials (`dbus-daemon`, `systemd-pam`) that would otherwise be
|
||||
# dropped by --exclude-weakdeps.
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Package description courtesy of the Fedora project
|
||||
|
||||
## Mandatory packages found in `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 `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
|
||||
|
||||
## Repository definitions, pulled explicitly since fedora-release is deselected
|
||||
fedora-repos # Fedora package repositories
|
||||
|
||||
## Session-system essentials that nothing else hard-requires: with
|
||||
## --exclude-weakdeps they would be dropped (systemd merely recommends
|
||||
## systemd-pam; only anaconda requires dbus-daemon during installation).
|
||||
## Without them, login sessions never register with logind (no
|
||||
## pam_systemd.so) and display managers cannot spawn the session bus
|
||||
## (no /usr/bin/dbus-run-session), which yields a silent black screen.
|
||||
dbus-daemon # D-BUS message bus (provides /usr/bin/dbus-run-session, used by gdm-wayland-session et al.)
|
||||
systemd-pam # systemd PAM module (pam_systemd.so — registers login sessions with logind, starts user@.service)
|
||||
|
||||
## Deselect Fedora release/branding packages — the remix packages below
|
||||
## provide system-release, system-release(44), fedora-release-identity and
|
||||
## system-logos instead
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-logos
|
||||
|
||||
%end # End of the packages section
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
|
||||
grub2-tools # Provides grub2-mkconfig and grub2-editenv, required by the grub2-common %posttrans scriptlet (exit 127 otherwise, which fails the whole dnf transaction)
|
||||
pciutils # PCI bus related utilities
|
||||
libusb # Library for accessing USB devices
|
||||
usbutils # Linux USB utilities
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Fedora 44 repositories
|
||||
|
||||
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-44&arch=x86_64 # Official Fedora mirror
|
||||
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f44&arch=x86_64 # Official Fedora updates mirror
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-44&arch=x86_64 # Official Fedora updates mirror
|
||||
@@ -1,21 +0,0 @@
|
||||
# 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
|
||||
# Updates for the current release tree
|
||||
repo --name=rpmfusion-nonfree-updates --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
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
|
||||
@@ -1,9 +0,0 @@
|
||||
# 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
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end # End of the %post section
|
||||
@@ -1,5 +0,0 @@
|
||||
# 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
|
||||
@@ -1 +0,0 @@
|
||||
# Server-specific post-install tasks
|
||||
@@ -1,5 +0,0 @@
|
||||
# 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
|
||||
@@ -1,5 +0,0 @@
|
||||
# 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
|
||||
@@ -0,0 +1,8 @@
|
||||
# BIOS boot storage configuration (GPT disk label with a BIOS boot partition)
|
||||
|
||||
zerombr # Destroy all the contents of disks with invalid partition tables or other formatting unrecognizable to the installer
|
||||
clearpart --all --initlabel --disklabel=gpt # Erase all partitions, initialize a GPT disk label, and initialize the disk label to the default for the target architecture
|
||||
|
||||
part biosboot --fstype="biosboot" --size=2 --label=biosboot # Creates a 2 MiB BIOS boot partition, required to install GRUB on a GPT-labelled disk under legacy BIOS firmware
|
||||
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
|
||||
@@ -1,6 +0,0 @@
|
||||
# Validation fragment - success if empty
|
||||
|
||||
%post
|
||||
# If this is being run, it's a success
|
||||
echo SUCCESS > /root/RESULT
|
||||
%end
|
||||
+49
-51
@@ -1,56 +1,53 @@
|
||||
# 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
|
||||
# Phyllome OS ingredient templates ("Proteus")
|
||||
#
|
||||
# Maps recipe variants to kickstart ingredient fragments. Every fragment path
|
||||
# is relative to the ingredients/ directory.
|
||||
#
|
||||
# Sections:
|
||||
# base -- fragments included in every recipe, in declaration order.
|
||||
# choices -- "exactly-one" categories. Each variant must resolve to a single
|
||||
# value per category; pykickstart cannot detect two variants of a
|
||||
# choice being enabled at once, so the generator enforces it.
|
||||
# When a variant omits a category, the first declared value is used.
|
||||
# features -- additive fragments a variant enables independently:
|
||||
# * a plain string => boolean flag; included when the variant
|
||||
# value is truthy (e.g. hardware-support)
|
||||
# * a dict => one-of; the variant value selects the
|
||||
# matching fragment(s)
|
||||
|
||||
name: proteus
|
||||
description: "Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system"
|
||||
required:
|
||||
|
||||
base:
|
||||
- core/base.ks
|
||||
- core/locale.ks
|
||||
- core/network.ks
|
||||
- core/services.ks
|
||||
- packages/core-explicit.ks
|
||||
- packages/fedora-remix.ks
|
||||
- packages/hand-picked.ks
|
||||
|
||||
choices:
|
||||
repository:
|
||||
"43": repo/fedora-43-mirrors.ks
|
||||
core:
|
||||
"base": core/base.ks
|
||||
"44": repo/fedora-44-mirrors.ks
|
||||
rawhide: repo/rawhide-mirrors.ks
|
||||
storage:
|
||||
standard: storage/standard.ks
|
||||
encrypted: storage/encrypted.ks
|
||||
biosboot: storage/biosboot.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
|
||||
grub: bootloader/grub.ks
|
||||
systemd-boot: bootloader/systemd-boot.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
|
||||
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
|
||||
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
|
||||
|
||||
features:
|
||||
desktop:
|
||||
gnome:
|
||||
- desktop/gnome/config.ks
|
||||
@@ -58,19 +55,20 @@ optional:
|
||||
- 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:
|
||||
- hypervisor/base/packages.ks
|
||||
- hypervisor/base/services.ks
|
||||
- hypervisor/base/post-scripts.ks
|
||||
- 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
|
||||
hypervisor_type:
|
||||
amdcpu: hypervisor/amdcpu.ks
|
||||
intelcpu: hypervisor/intelcpu.ks
|
||||
intelgpu: hypervisor/intelgpu.ks
|
||||
hardware-support: packages/hardware-support.ks
|
||||
guest-agents: guest-agents/base.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/encrypted.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/grub.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/fedora-43-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include packages/hardware-support.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
@@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# Universal template to generate kickstart recipes for a server, a desktop or a hypervisor system
|
||||
|
||||
%include repo/rawhide-mirrors.ks
|
||||
%include core/base.ks
|
||||
%include bootloader/systemd-boot.ks
|
||||
%include storage/standard.ks
|
||||
%include core/locale.ks
|
||||
%include core/services.ks
|
||||
%include core/network.ks
|
||||
%include packages/core.ks
|
||||
%include packages/fedora-remix.ks
|
||||
%include packages/hand-picked.ks
|
||||
%include core/security/enabled.ks
|
||||
%include initial-setup/server/config.ks
|
||||
%include guest-agents/base.ks
|
||||
%include desktop/gnome/config.ks
|
||||
%include desktop/gnome/packages.ks
|
||||
%include desktop/gnome/post-scripts.ks
|
||||
+44
-55
@@ -1,72 +1,61 @@
|
||||
# Recipe Manifest for Phyllome OS
|
||||
# Define all recipe variants using generators from recipe_templates.yaml
|
||||
# Edit this file to add new variants, then run: make generate-recipes
|
||||
# Define all recipe variants using ingredients from recipe_templates.yaml.
|
||||
# Edit this file to add new variants, then run: make all
|
||||
#
|
||||
# Supported syntax:
|
||||
# Syntax:
|
||||
# - Single values: repository: "43"
|
||||
# - List values: repository: ["43", "rawhide"] (expands to multiple variants)
|
||||
# - List modifiers: hypervisor_type: ["amdcpu", "intelcpu"] (expands to separate variants)
|
||||
# - List values: repository: ["43", "44", "rawhide"] (expands to multiple variants)
|
||||
# - Booleans: hardware-support: true / false (feature flags)
|
||||
#
|
||||
# NOTE: List values create a cartesian product.
|
||||
# Example: repository: ["43", "rawhide"] + storage: ["standard", "encrypted"]
|
||||
# creates 4 variants: (43,standard), (43,encrypted), (rawhide,standard), (rawhide,encrypted)
|
||||
# Example: repository: ["43", "44", "rawhide"] + storage: ["standard", "encrypted"]
|
||||
# creates 6 variants: (43,standard), (43,encrypted), (44,standard), (44,encrypted),
|
||||
# (rawhide,standard), (rawhide,encrypted)
|
||||
#
|
||||
# NOTE: The 'name' field is no longer used with the universal template.
|
||||
# It can be kept for organization but doesn't affect generated filenames.
|
||||
# NOTE: The 'name' field prefixes every generated dish/recipe filename, e.g.
|
||||
# the group below yields dishes like desktop_43_gnome_standard_grub_guest-agents.cfg.
|
||||
|
||||
recipes:
|
||||
# Desktop variants
|
||||
- name: desktop
|
||||
variants:
|
||||
- repository: ["43", "rawhide"]
|
||||
- repository: ["43", "44", "rawhide"]
|
||||
desktop: gnome
|
||||
storage: ["standard", "encrypted"]
|
||||
bootloader: ["grub", "systemd-boot"]
|
||||
hardware-support: [true, false]
|
||||
guest-agents: [true, false]
|
||||
|
||||
# # Server variants
|
||||
# - name: server
|
||||
# variants:
|
||||
# - repository: ["43", "rawhide"]
|
||||
# storage: standard
|
||||
# bootloader: grub
|
||||
# hardware-support: false
|
||||
# guest-agents: true
|
||||
#
|
||||
# # Hypervisor variants
|
||||
# - name: hypervisor
|
||||
# variants:
|
||||
# - repository: 43
|
||||
# storage: standard
|
||||
# bootloader: grub
|
||||
# hardware-support: true
|
||||
# guest-agents: false
|
||||
# hypervisor: base
|
||||
# hypervisor_type: ["amdcpu", "intelcpu"]
|
||||
#
|
||||
# # Desktop-hypervisor variants
|
||||
# - name: desktop-hypervisor
|
||||
# variants:
|
||||
# - repository: 43
|
||||
# desktop: gnome
|
||||
# storage: standard
|
||||
# bootloader: grub
|
||||
# hardware-support: false
|
||||
# guest-agents: true
|
||||
# hypervisor: desktop
|
||||
# hypervisor_type: ["amdcpu", "intelcpu"]
|
||||
#
|
||||
# # Live desktop variants
|
||||
# - name: desktop-live
|
||||
# variants:
|
||||
# - repository: 43
|
||||
# hardware-support: true
|
||||
# guest-agents: false
|
||||
#
|
||||
# # Live server variants
|
||||
# - name: server-live
|
||||
# variants:
|
||||
# - repository: 43
|
||||
# hardware-support: true
|
||||
# guest-agents: false
|
||||
# Server variants
|
||||
- name: server
|
||||
variants:
|
||||
- repository: ["44"]
|
||||
storage: standard
|
||||
bootloader: systemd-boot
|
||||
hardware-support: false
|
||||
guest-agents: true
|
||||
initial-setup: server
|
||||
|
||||
# Hypervisor variants
|
||||
- name: hypervisor
|
||||
variants:
|
||||
- repository: ["44"]
|
||||
storage: standard
|
||||
bootloader: systemd-boot
|
||||
hardware-support: true
|
||||
guest-agents: false
|
||||
hypervisor: base
|
||||
hypervisor_type: intelcpu
|
||||
# Desktop-hypervisor variants
|
||||
- name: desktop-hypervisor
|
||||
variants:
|
||||
- repository: "44"
|
||||
desktop: gnome
|
||||
storage: biosboot
|
||||
bootloader: grub
|
||||
security: enabled
|
||||
initial-setup: gnome
|
||||
hardware-support: true
|
||||
guest-agents: false
|
||||
hypervisor: desktop
|
||||
hypervisor_type: intelcpu
|
||||
@@ -0,0 +1,5 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
COOK_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
sys.path.insert(0, COOK_DIR)
|
||||
@@ -0,0 +1,281 @@
|
||||
"""Tests for the Phyllome OS recipe generator (cook/generate_recipe.py)."""
|
||||
|
||||
import os
|
||||
|
||||
import pytest
|
||||
import yaml
|
||||
|
||||
import generate_recipe as gen
|
||||
|
||||
COOK_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def templates():
|
||||
return gen.load_yaml(os.path.join(COOK_DIR, "recipe_templates.yaml"))
|
||||
|
||||
|
||||
BASE_FRAGMENTS = [
|
||||
"core/base.ks",
|
||||
"core/locale.ks",
|
||||
"core/network.ks",
|
||||
"core/services.ks",
|
||||
"packages/core-explicit.ks",
|
||||
"packages/fedora-remix.ks",
|
||||
"packages/hand-picked.ks",
|
||||
]
|
||||
|
||||
|
||||
def desktop_group(variants):
|
||||
return {"recipes": [{"name": "desktop", "variants": variants}]}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# expand_variants
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_expand_variants_cartesian_count():
|
||||
config = {
|
||||
"repository": ["43", "rawhide"],
|
||||
"desktop": "gnome",
|
||||
"storage": ["standard", "encrypted"],
|
||||
"bootloader": ["grub", "systemd-boot"],
|
||||
"hardware-support": [True, False],
|
||||
"guest-agents": [True, False],
|
||||
}
|
||||
variants = gen.expand_variants(config)
|
||||
assert len(variants) == 2 * 2 * 2 * 2 * 2
|
||||
# Every variant keeps the scalar key and resolves one value per list key.
|
||||
for variant in variants:
|
||||
assert variant["desktop"] == "gnome"
|
||||
assert variant["repository"] in ("43", "rawhide")
|
||||
assert variant["storage"] in ("standard", "encrypted")
|
||||
assert variant["bootloader"] in ("grub", "systemd-boot")
|
||||
assert isinstance(variant["hardware-support"], bool)
|
||||
assert isinstance(variant["guest-agents"], bool)
|
||||
|
||||
|
||||
def test_expand_variants_all_combos_present():
|
||||
config = {
|
||||
"storage": ["standard", "encrypted"],
|
||||
"bootloader": ["grub", "systemd-boot"],
|
||||
}
|
||||
combos = {(v["storage"], v["bootloader"]) for v in gen.expand_variants(config)}
|
||||
assert combos == {
|
||||
("standard", "grub"),
|
||||
("standard", "systemd-boot"),
|
||||
("encrypted", "grub"),
|
||||
("encrypted", "systemd-boot"),
|
||||
}
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# collect_fragments
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_collect_fragments_gnome_standard(templates):
|
||||
variant = {
|
||||
"repository": "43",
|
||||
"desktop": "gnome",
|
||||
"storage": "standard",
|
||||
"bootloader": "grub",
|
||||
"hardware-support": False,
|
||||
"guest-agents": False,
|
||||
}
|
||||
fragments, problems = gen.collect_fragments(templates, variant)
|
||||
assert problems == []
|
||||
assert fragments[:7] == BASE_FRAGMENTS
|
||||
assert "repo/fedora-43-mirrors.ks" in fragments
|
||||
assert "storage/standard.ks" in fragments
|
||||
assert "storage/encrypted.ks" not in fragments
|
||||
assert "bootloader/grub.ks" in fragments
|
||||
assert "core/security/enabled.ks" in fragments
|
||||
assert "core/security/disabled.ks" not in fragments
|
||||
assert "initial-setup/server/config.ks" in fragments
|
||||
assert "guest-agents/base.ks" not in fragments
|
||||
assert "packages/hardware-support.ks" not in fragments
|
||||
for slug in ("desktop/gnome/config.ks", "desktop/gnome/packages.ks",
|
||||
"desktop/gnome/post-scripts.ks"):
|
||||
assert slug in fragments
|
||||
|
||||
|
||||
@pytest.mark.parametrize("release", ["43", "44"])
|
||||
def test_collect_fragments_release_repository(templates, release):
|
||||
variant = {"repository": release}
|
||||
fragments, problems = gen.collect_fragments(templates, variant)
|
||||
assert problems == []
|
||||
assert f"repo/fedora-{release}-mirrors.ks" in fragments
|
||||
|
||||
|
||||
def test_collect_fragments_choices_default_to_first(templates):
|
||||
variant = {"repository": "43"}
|
||||
fragments, problems = gen.collect_fragments(templates, variant)
|
||||
assert problems == []
|
||||
# Omitted choices fall back to their first declared value.
|
||||
assert "storage/standard.ks" in fragments
|
||||
assert "bootloader/grub.ks" in fragments
|
||||
assert "core/security/enabled.ks" in fragments
|
||||
assert "initial-setup/server/config.ks" in fragments
|
||||
|
||||
|
||||
def test_collect_fragments_flags(templates):
|
||||
off, off_problems = gen.collect_fragments(
|
||||
templates, {"repository": "43", "hardware-support": False, "guest-agents": False})
|
||||
on, on_problems = gen.collect_fragments(
|
||||
templates, {"repository": "43", "hardware-support": True, "guest-agents": True})
|
||||
assert off_problems == [] and on_problems == []
|
||||
assert "packages/hardware-support.ks" not in off
|
||||
assert "guest-agents/base.ks" not in off
|
||||
assert "packages/hardware-support.ks" in on
|
||||
assert "guest-agents/base.ks" in on
|
||||
|
||||
|
||||
def test_collect_fragments_unknown_choice_reports_problem(templates):
|
||||
_, problems = gen.collect_fragments(templates, {"repository": "sid"})
|
||||
assert any("repository" in p and "sid" in p for p in problems)
|
||||
|
||||
|
||||
def test_collect_fragments_unknown_feature_reports_problem(templates):
|
||||
_, problems = gen.collect_fragments(templates, {"repository": "43", "desktop": "kde"})
|
||||
assert any("desktop" in p and "kde" in p for p in problems)
|
||||
|
||||
|
||||
def test_collect_fragments_dedups(templates):
|
||||
variant = {"repository": "43", "desktop": "gnome"}
|
||||
fragments, _ = gen.collect_fragments(templates, variant)
|
||||
assert len(fragments) == len(set(fragments))
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# render_filename
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_render_filename(templates):
|
||||
manifest = desktop_group([
|
||||
{"repository": "43", "desktop": "gnome", "storage": "standard",
|
||||
"bootloader": "grub", "hardware-support": True, "guest-agents": False},
|
||||
])
|
||||
group = manifest["recipes"][0]
|
||||
name = gen.render_filename(templates, group["name"],
|
||||
gen.expand_variants(group["variants"][0])[0])
|
||||
assert name == "desktop_43_standard_grub_gnome_hardware-support.cfg"
|
||||
|
||||
|
||||
def test_render_filename_key_order_irrelevant(templates):
|
||||
# Naming must not depend on the order keys appear in the manifest.
|
||||
a = {"repository": "43", "storage": "standard", "bootloader": "grub",
|
||||
"desktop": "gnome"}
|
||||
b = {"desktop": "gnome", "bootloader": "grub", "storage": "standard",
|
||||
"repository": "43"}
|
||||
assert gen.render_filename(templates, "desktop", a) == \
|
||||
gen.render_filename(templates, "desktop", b)
|
||||
|
||||
|
||||
def test_render_filenames_unique_across_matrix(templates):
|
||||
manifest = desktop_group([
|
||||
{"repository": ["43", "rawhide"], "desktop": "gnome",
|
||||
"storage": ["standard", "encrypted"],
|
||||
"bootloader": ["grub", "systemd-boot"],
|
||||
"hardware-support": [True, False], "guest-agents": [True, False]},
|
||||
])
|
||||
names = []
|
||||
for group in manifest["recipes"]:
|
||||
for config in group["variants"]:
|
||||
for variant in gen.expand_variants(config):
|
||||
names.append(gen.render_filename(templates, group["name"], variant))
|
||||
assert len(names) == 32
|
||||
assert len(set(names)) == 32
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# lint_manifest
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_lint_clean_manifest(templates):
|
||||
manifest = desktop_group([
|
||||
{"repository": "43", "desktop": "gnome", "storage": "standard",
|
||||
"bootloader": "grub", "hardware-support": False, "guest-agents": False},
|
||||
])
|
||||
problems = gen.lint_manifest(manifest, templates, os.path.join(COOK_DIR, "ingredients"))
|
||||
assert problems == []
|
||||
|
||||
|
||||
def test_lint_catches_missing_ingredient(templates, tmp_path):
|
||||
# Point lint at an empty ingredients dir so every fragment is missing.
|
||||
manifest = desktop_group([
|
||||
{"repository": "43", "desktop": "gnome", "storage": "standard",
|
||||
"bootloader": "grub"},
|
||||
])
|
||||
problems = gen.lint_manifest(manifest, templates, str(tmp_path))
|
||||
assert any("missing ingredient fragment" in p for p in problems)
|
||||
|
||||
|
||||
def test_lint_catches_unknown_key_and_duplicates(templates):
|
||||
manifest = {
|
||||
"recipes": [
|
||||
{"name": "desktop", "variants": [
|
||||
{"repository": "43", "storage": "btrfs", "bootloader": "grub",
|
||||
"desktop": "kde", "typo-key": True}]},
|
||||
{"name": "desktop", "variants": [
|
||||
{"repository": "43", "storage": "standard", "bootloader": "grub"}]},
|
||||
]
|
||||
}
|
||||
problems = gen.lint_manifest(manifest, templates, os.path.join(COOK_DIR, "ingredients"))
|
||||
text = "\n".join(problems)
|
||||
assert "unknown variant key 'typo-key'" in text
|
||||
assert "unknown value 'btrfs'" in text
|
||||
assert "unknown value 'kde'" in text
|
||||
assert "duplicate group name 'desktop'" in text
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# flatten / validate via pykickstart
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_flatten_and_validate(tmp_path):
|
||||
ingredients = tmp_path / "ingredients"
|
||||
recipes = tmp_path / "recipes"
|
||||
ingredients.mkdir()
|
||||
recipes.mkdir()
|
||||
(ingredients / "core.ks").write_text("text\nrootpw --lock\n")
|
||||
(ingredients / "locale.ks").write_text("lang en_US.UTF-8\n")
|
||||
|
||||
recipe = recipes / "desktop_43.cfg"
|
||||
recipe.write_text(
|
||||
"%include ../ingredients/core.ks\n%include ../ingredients/locale.ks\n")
|
||||
|
||||
dish = gen.flatten_recipe(str(recipe))
|
||||
assert "text" in dish
|
||||
assert "rootpw --lock" in dish
|
||||
assert "lang en_US.UTF-8" in dish
|
||||
# The flattened output is standalone: no %include may survive.
|
||||
assert "%include" not in dish
|
||||
|
||||
dish_path = tmp_path / "desktop_43.dish"
|
||||
dish_path.write_text(dish)
|
||||
ok, error = gen.validate_dish(str(dish_path))
|
||||
assert ok, error
|
||||
|
||||
|
||||
def test_generate_writes_recipes_and_dishes(tmp_path, templates):
|
||||
manifest = tmp_path / "manifest.yaml"
|
||||
manifest.write_text(yaml.safe_dump(desktop_group([
|
||||
{"repository": "43", "desktop": "gnome", "storage": "standard",
|
||||
"bootloader": "grub", "hardware-support": False, "guest-agents": False},
|
||||
])))
|
||||
# recipes/ must be a sibling of ingredients/ for %include resolution, so
|
||||
# symlink the real ingredients tree next to the generated recipes.
|
||||
(tmp_path / "ingredients").symlink_to(os.path.join(COOK_DIR, "ingredients"),
|
||||
target_is_directory=True)
|
||||
recipes = tmp_path / "recipes"
|
||||
dishes = tmp_path / "dishes"
|
||||
recipes.mkdir()
|
||||
dishes.mkdir()
|
||||
|
||||
code = gen.generate(str(manifest), os.path.join(COOK_DIR, "recipe_templates.yaml"),
|
||||
str(recipes), str(dishes), "ingredients")
|
||||
assert code == 0
|
||||
assert len(list(recipes.glob("*.cfg"))) == 1
|
||||
assert len(list(dishes.glob("*.cfg"))) == 1
|
||||
dish = (dishes / "desktop_43_standard_grub_gnome.cfg").read_text()
|
||||
assert "%include" not in dish
|
||||
@@ -11,6 +11,12 @@ execute_script() {
|
||||
return 0 # Indicate success
|
||||
}
|
||||
|
||||
# Generate recipes and dishes before deployment (they are build products)
|
||||
if ! (cd cook && make all); then
|
||||
echo "Failed to generate dishes in cook/ (see 'make all' in cook/)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Array of scripts
|
||||
scripts=(
|
||||
"./deploy/install-prerequisites-on-linux.sh"
|
||||
|
||||
@@ -142,7 +142,7 @@ fi
|
||||
echo "You selected: $uri"
|
||||
|
||||
# Get a list of files in "dishes" directory
|
||||
mapfile -t dish_name < <(find "dishes/" -maxdepth 1 -type f \( -name "virtual*" \) -printf "%f\n" | sed 's/\.[^.]*$//')
|
||||
mapfile -t dish_name < <(find "cook/dishes/" -maxdepth 1 -type f \( -name "*guest-agents*" \) -printf "%f\n" | sed 's/\.[^.]*$//')
|
||||
|
||||
# Check if there are any files
|
||||
if [ ${#dish_name[@]} -eq 0 ]; then
|
||||
@@ -183,7 +183,7 @@ else
|
||||
location_param="$fedora_iso"
|
||||
echo "Using local ISO: $fedora_iso"
|
||||
else
|
||||
location_param="https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/"
|
||||
location_param="https://download.fedoraproject.org/pub/fedora/linux/releases/44/Everything/x86_64/os/"
|
||||
echo "Using default online repository"
|
||||
fi
|
||||
fi
|
||||
@@ -191,7 +191,7 @@ fi
|
||||
# virt-install command with user-defined VM name
|
||||
virt-install \
|
||||
--connect "$uri" \
|
||||
--os-variant fedora41 \
|
||||
--os-variant fedora-unknown \
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
@@ -220,7 +220,7 @@ virt-install \
|
||||
--memballoon none \
|
||||
--disk path="${disk_path}/${vm_name}.img",format=raw,bus=virtio,cache=writeback,size="$disk_size" \
|
||||
--location="$location_param" \
|
||||
--initrd-inject ./dishes/"$vm_name".cfg \
|
||||
--initrd-inject cook/dishes/"$vm_name".cfg \
|
||||
--extra-args "inst.ks=file:/$vm_name.cfg"
|
||||
|
||||
echo "virt-install command executed with VM name: $vm_name"
|
||||
|
||||
Reference in New Issue
Block a user