Name: shiva-core Version: 1.0 Release: 18.fc44 Summary: ShivaOS — Branding, configuration et base système License: MIT URL: https://shivaos.com BuildArch: noarch Requires: shiva-pulse Requires: zram-generator Obsoletes: fedora-release-identity-kde-desktop < 45 Obsoletes: fedora-release-identity-workstation < 45 Obsoletes: fedora-release-identity-basic < 45 %description Branding complet ShivaOS : wallpaper, icônes Kickoff, os-release, SDDM, désactivation KWallet et plasma-welcome, repo APT configuré. %prep # no sources %build # no compilation %install mkdir -p %{buildroot} # os-release : pas de fichier dans %install — écrit via %post pour éviter # le conflit RPM avec fedora-release-common qui possède /usr/lib/os-release # --- repo shivaos --- mkdir -p %{buildroot}/etc/yum.repos.d cat > %{buildroot}/etc/yum.repos.d/shivaos.repo << 'EOF' [shivaos] name=ShivaOS 44 — Pure Gaming Ecosystem baseurl=https://packages.redhat.com/api/pulp-content/public-copr/freuja/ShivaOs/fedora-$releasever-$basearch/ enabled=1 gpgcheck=1 gpgkey=https://download.copr.fedorainfracloud.org/results/freuja/ShivaOs/pubkey.gpg repo_gpgcheck=0 EOF # --- KWallet désactivé système --- mkdir -p %{buildroot}/etc/xdg cat > %{buildroot}/etc/xdg/kwalletrc << 'EOF' [Wallet] Enabled=false First Use=false EOF cat > %{buildroot}/etc/xdg/kded6rc << 'EOF' [Module-kwalletd] autoload=false [Module-plasma_welcome] autoload=false EOF # --- plasma-welcomerc système --- cat > %{buildroot}/etc/xdg/plasma-welcomerc << 'EOF' [General] LastStartedVersion=99.0.0 ShowOnStartup=false EOF # --- shiva-ai.conf --- mkdir -p %{buildroot}/etc cat > %{buildroot}/etc/shiva-ai.conf << 'EOF' backend=auto groq_model=llama-3.3-70b-versatile ollama_model=phi3:mini EOF # --- Wallpaper --- mkdir -p %{buildroot}/usr/share/wallpapers/ShivaOS/contents/images # Le fichier wallpaper est installé séparément via shiva-branding # --- AppStream metainfo (notes de version dans Discover) --- mkdir -p %{buildroot}/usr/share/metainfo cat > %{buildroot}/usr/share/metainfo/com.shivaos.core.metainfo.xml << 'EOF' com.shivaos.core ShivaOS Pure Gaming Ecosystem basé sur Fedora 44 / KDE Plasma

ShivaOS est une distribution Linux gaming intégrant Steam, Lutris, Proton-GE, MangoHud, GameMode et l'assistant IA Shiva.

https://shivaos.com https://github.com/freuja-wq/shiva-os-core/issues
  • Migration du dépôt par défaut vers le backend Pulp (plus fiable)
  • Correction de la détection des miroirs de mise à jour
  • Ajout de shiva-pulse comme dépendance obligatoire
  • Optimisation du heartbeat système
  • Kernel CachyOS activé par défaut automatiquement à chaque mise à jour
  • Amélioration de la gestion GRUB via kernel-install hook
  • Fix conflit os-release avec fedora-release-identity-kde-desktop
  • Remplacement propre des paquets fedora-release-identity via Obsoletes
  • Release initiale ShivaOS 44
MIT MIT
EOF # --- kernel-install hook : CachyOS toujours par défaut --- mkdir -p %{buildroot}/etc/kernel/install.d cat > %{buildroot}/etc/kernel/install.d/90-shiva-grub-default.install << 'EOF' #!/bin/bash COMMAND="$1" KERNEL_VERSION="$2" [[ "$COMMAND" == "add" ]] || exit 0 [[ "$KERNEL_VERSION" == *cachyos* ]] || exit 0 grubby --set-default "/boot/vmlinuz-${KERNEL_VERSION}" EOF chmod 755 %{buildroot}/etc/kernel/install.d/90-shiva-grub-default.install # --- skel config --- mkdir -p %{buildroot}/etc/skel/.config cat > %{buildroot}/etc/skel/.config/kwalletrc << 'EOF' [Wallet] Enabled=false First Use=false EOF cat > %{buildroot}/etc/skel/.config/kded6rc << 'EOF' [Module-kwalletd] autoload=false [Module-plasma_welcome] autoload=false EOF cat > %{buildroot}/etc/skel/.config/plasma-welcomerc << 'EOF' [General] LastStartedVersion=99.0.0 ShowOnStartup=false EOF # --- dracut : GPU dans initramfs (évite écran noir après GRUB) --- mkdir -p %{buildroot}/usr/lib/dracut/dracut.conf.d cat > %{buildroot}/usr/lib/dracut/dracut.conf.d/99-shivaos-gpu.conf << 'EOF' # ShivaOS — Drivers GPU forcés dans l'initramfs # Garantit l'affichage dès le boot, évite l'écran noir après GRUB add_drivers+=" amdgpu radeon i915 xe nouveau " add_drivers+=" virtio-gpu vmwgfx simpledrm " add_drivers+=" drm_ttm_helper ttm drm_display_helper " # Firmware AMD (RX 5000+, iGPU Raphael) install_items+=" /usr/lib/firmware/amdgpu " # Firmware Intel iGPU + Arc (Xe/i915) install_items+=" /usr/lib/firmware/i915 " install_items+=" /usr/lib/firmware/xe " # NVIDIA : nouveau est le fallback initramfs (avant que akmod-nvidia compile) # akmod-nvidia installe lui-même /usr/lib/modprobe.d/nvidia.conf (blacklist nouveau) # au 2e boot — pas besoin de blacklister nouveau dans l'initramfs early_microcode="yes" compress="zstd" EOF # --- sysctl gaming : BORE + VM + réseau optimisés --- mkdir -p %{buildroot}/etc/sysctl.d cat > %{buildroot}/etc/sysctl.d/99-shivaos-gaming.conf << 'EOF' # ShivaOS — Gaming sysctl (BORE + VM + réseau) # ── BORE scheduler ──────────────────────────────────────────────── kernel.sched_bore = 1 kernel.sched_burst_cache_lifetime = 60000000 kernel.sched_burst_inherit_type = 0 kernel.sched_burst_penalty_offset = 22 kernel.sched_burst_penalty_scale = 1280 kernel.sched_burst_smoothness = 1 kernel.sched_autogroup_enabled = 1 # ── VM — optimisé SSD/NVMe gaming ───────────────────────────────── # swappiness=10 : garder le max en RAM, swapper en dernier recours vm.swappiness = 10 vm.vfs_cache_pressure = 50 vm.dirty_bytes = 268435456 vm.dirty_background_bytes = 67108864 vm.dirty_writeback_centisecs = 1500 vm.page-cluster = 0 # Désactive la compaction proactive (cause des micro-stutters) vm.compaction_proactiveness = 0 vm.watermark_boost_factor = 1 vm.watermark_scale_factor = 125 # OOM killer cible le processus fautif, pas un aléatoire vm.oom_kill_allocating_task = 1 # ── CPU / système ───────────────────────────────────────────────── kernel.nmi_watchdog = 0 kernel.unprivileged_userns_clone = 1 # Réduit l'overhead splitlock (améliore perf gaming) kernel.split_lock_mitigate = 0 # ── Fichiers ouverts ────────────────────────────────────────────── fs.file-max = 2097152 # ── Réseau gaming (BBR3 déjà actif via kernel) ──────────────────── net.core.netdev_max_backlog = 16384 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_tw_reuse = 1 EOF # --- zram : swap compressé en RAM (zstd, 50% RAM) ---------------- mkdir -p %{buildroot}/etc/systemd cat > %{buildroot}/etc/systemd/zram-generator.conf << 'EOF' # ShivaOS — zram swap compressé en RAM # Zstd : meilleur ratio compression/vitesse (recommandé gaming) # host-memory-limit : active zram seulement si >= 4 Go RAM [zram0] zram-size = min(ram / 2, 8192) compression-algorithm = zstd swap-priority = 100 EOF # --- udev I/O scheduler gaming --- mkdir -p %{buildroot}/usr/lib/udev/rules.d cat > %{buildroot}/usr/lib/udev/rules.d/60-shivaos-ioscheduler.rules << 'EOF' # ShivaOS — I/O scheduler par type de disque # NVMe : kyber (ultra-faible latence) ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="kyber" # SSD SATA : mq-deadline (bon compromis latence/débit) ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" # HDD : bfq (fair queuing, évite les stutters) ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq" # SATA link power : performance max (pas de power saving sur les disques) ACTION=="add", SUBSYSTEM=="scsi_host", KERNEL=="host*", ATTR{link_power_management_policy}="max_performance" EOF # --- GameMode config système (agressive, gaming max) ------------- mkdir -p %{buildroot}/usr/share/gamemode cat > %{buildroot}/usr/share/gamemode/gamemode.ini << 'EOF' [general] reaper_freq=5 defaultgov=powersave desiredgov=performance igpu_desiredgov=performance softrealtime=auto renice=10 ioprio=0 inhibit_screensaver=1 [filter] whitelist= blacklist=systemd;dbus;pipewire;wireplumber [cpu] park_cores=no pin_cores=yes [gpu] apply_gpu_optimisations=accept-responsibility gpu_device=0 amd_performance_level=high nv_powermizer_mode=1 EOF # --- udev CPU governor performance sur AC ------------------------- cat > %{buildroot}/usr/lib/udev/rules.d/50-shivaos-cpupower.rules << 'EOF' # ShivaOS — Governor CPU performance sur AC, powersave sur batterie # Réduit les micro-pauses de re-clocking CPU en jeu SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", \ RUN+="/bin/sh -c 'for f in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $f 2>/dev/null || true; done'" SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", \ RUN+="/bin/sh -c 'for f in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo powersave > $f 2>/dev/null || true; done'" EOF # --- udev USB HID polling 1000Hz (souris/manettes gaming) -------- cat > %{buildroot}/usr/lib/udev/rules.d/70-shivaos-hid.rules << 'EOF' # ShivaOS — USB HID polling rate 1000Hz pour souris et manettes gaming # Réduit la latence d'entrée de 8ms (125Hz défaut) à 1ms ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="?*", \ ATTR{bInterfaceClass}=="03", ATTR{bInterfaceSubClass}=="01", \ ATTR{bInterfaceProtocol}=="02", \ RUN+="/bin/sh -c 'echo 1 > /sys$devpath/../power/wakeup; echo 1000 > /sys$devpath/../polling_interval 2>/dev/null || true'" # Polling rate maximal pour les périphériques HID USB génériques ACTION=="add", SUBSYSTEM=="hid", \ RUN+="/bin/sh -c 'echo 1000 > /sys$devpath/../polling_interval 2>/dev/null || true'" EOF # --- modprobe blacklist watchdogs --- mkdir -p %{buildroot}/usr/lib/modprobe.d cat > %{buildroot}/usr/lib/modprobe.d/shivaos-blacklist.conf << 'EOF' # ShivaOS — Watchdogs CPU désactivés (cycles CPU inutiles, micro-interruptions) blacklist iTCO_wdt blacklist iTCO_vendor_support blacklist sp5100_tco EOF # --- modprobe NVIDIA optimisations --- cat > %{buildroot}/usr/lib/modprobe.d/shivaos-nvidia.conf << 'EOF' # ShivaOS — Paramètres NVIDIA open modules options nvidia NVreg_UsePageAttributeTable=1 options nvidia NVreg_InitializeSystemMemoryAllocations=0 options nvidia NVreg_DynamicPowerManagement=0x02 EOF # --- audio Intel HDA : désactive power saving sur AC (élimine craquements) --- cat > %{buildroot}/usr/lib/udev/rules.d/20-shivaos-audio.rules << 'EOF' # ShivaOS — Intel HDA : pas de power saving sur AC (craquements audio) SUBSYSTEM=="module", ACTION=="add", KERNEL=="snd_hda_intel", \ RUN+="/bin/sh -c 'echo 0 > /sys/module/snd_hda_intel/parameters/power_save'" EOF # --- shiva-scx : service systemd pour scx_rusty (gaming scheduler) --- mkdir -p %{buildroot}/usr/lib/systemd/system cat > %{buildroot}/usr/lib/systemd/system/shiva-scx.service << 'EOF' [Unit] Description=ShivaOS SCX Gaming Scheduler Documentation=https://github.com/sched-ext/scx After=multi-user.target ConditionPathExists=/usr/bin/scx_rusty [Service] Type=simple ExecStart=/usr/bin/scx_rusty Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF # --- THP madvise + NUMA balancing off (anti-stutter) ------------- cat > %{buildroot}/usr/lib/systemd/system/shiva-thp.service << 'EOF' [Unit] Description=ShivaOS — Transparent Huge Pages madvise + NUMA off DefaultDependencies=no After=local-fs.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled; echo defer+madvise > /sys/kernel/mm/transparent_hugepage/defrag; echo 0 > /proc/sys/kernel/numa_balancing 2>/dev/null || true' [Install] WantedBy=multi-user.target EOF # --- earlyoom config (évite le freeze système OOM) --------------- mkdir -p %{buildroot}/etc/default cat > %{buildroot}/etc/default/earlyoom << 'EOF' # ShivaOS — earlyoom : tue les processus avant que le système freeze # Déclenche quand mémoire libre < 3% et swap < 3% EARLYOOM_ARGS="-m 3 -s 3 -r 0 --prefer '(chromium|chrome|firefox)' --avoid '(sshd|systemd)'" EOF # --- systemd : augmenter les limites file descriptors --- mkdir -p %{buildroot}/usr/lib/systemd/system.conf.d cat > %{buildroot}/usr/lib/systemd/system.conf.d/10-shivaos-limits.conf << 'EOF' [Manager] DefaultLimitNOFILE=2048:2097152 DefaultTimeoutStartSec=15s DefaultTimeoutStopSec=10s EOF mkdir -p %{buildroot}/usr/lib/systemd/user.conf.d cat > %{buildroot}/usr/lib/systemd/user.conf.d/10-shivaos-limits.conf << 'EOF' [Manager] DefaultLimitNOFILE=1024:1048576 EOF %post # Branding os-release : écrase le contenu sans toucher au propriétaire RPM (fedora-release-common) cat > /usr/lib/os-release << 'OSEOF' NAME="ShivaOS" VERSION="44 (Pure Gaming Ecosystem)" ID=shivaos ID_LIKE=fedora VERSION_ID=44 PRETTY_NAME="ShivaOS 44 — Pure Gaming Ecosystem" ANSI_COLOR="1;38;2;255;100;0" HOME_URL="https://shivaos.com" BUG_REPORT_URL="https://shivaos.com" LOGO=shivaos-logo OSEOF [ -L /etc/os-release ] || ln -sf /usr/lib/os-release /etc/os-release %files /etc/kernel/install.d/90-shiva-grub-default.install /usr/share/metainfo/com.shivaos.core.metainfo.xml /etc/yum.repos.d/shivaos.repo /etc/xdg/kwalletrc /etc/xdg/kded6rc /etc/xdg/plasma-welcomerc /etc/shiva-ai.conf /etc/skel/.config/kwalletrc /etc/skel/.config/kded6rc /etc/skel/.config/plasma-welcomerc /etc/sysctl.d/99-shivaos-gaming.conf /etc/systemd/zram-generator.conf /etc/default/earlyoom /usr/share/gamemode/gamemode.ini /usr/lib/udev/rules.d/50-shivaos-cpupower.rules /usr/lib/systemd/system/shiva-scx.service /usr/lib/systemd/system/shiva-thp.service /usr/lib/dracut/dracut.conf.d/99-shivaos-gpu.conf /usr/lib/udev/rules.d/60-shivaos-ioscheduler.rules /usr/lib/udev/rules.d/70-shivaos-hid.rules /usr/lib/udev/rules.d/20-shivaos-audio.rules /usr/lib/modprobe.d/shivaos-blacklist.conf /usr/lib/modprobe.d/shivaos-nvidia.conf /usr/lib/systemd/system.conf.d/10-shivaos-limits.conf /usr/lib/systemd/user.conf.d/10-shivaos-limits.conf %changelog * Wed May 20 2026 ShivaOS Team - 1.0-18.fc44 - shiva-scx.service : active scx_rusty au boot (sched-ext gaming scheduler) - shiva-thp.service : Transparent Huge Pages en mode madvise + NUMA balancing désactivé - earlyoom config : tue les processus quand mémoire < 3%% (évite freeze OOM) - Prêt pour scx_rusty + irqbalance + earlyoom dans les Containerfiles * Wed May 20 2026 ShivaOS Team - 1.0-17.fc44 - FIX CRITIQUE : vm.swappiness 100 → 10 (garder les données en RAM, pas sur disque) - zram-generator : swap compressé zstd en RAM (50% RAM max 8Go) — grosse perf gaming - sysctl gaming étendu : sched_autogroup, compaction_proactiveness=0, oom_kill_allocating_task - sysctl réseau : rmem/wmem 16Mo, tcp_fastopen=3, tcp_mtu_probing, tcp_tw_reuse - split_lock_mitigate=0 : réduit overhead kernel sur jeux multithreadés - udev HID 1000Hz : polling USB gaming devices (souris/manettes) à 1000Hz (latence 1ms vs 8ms) - Renommé 99-shivaos-bore.conf → 99-shivaos-gaming.conf (contenu plus large que BORE) - Requires zram-generator ajouté * Fri May 09 2026 ShivaOS Team - 1.0-16.fc44 - dracut : nouveau gardé comme fallback initramfs NVIDIA (pas de blacklist dans initramfs) - akmod-nvidia installe son propre blacklist nouveau au 2e boot — plus de conflit * Fri May 09 2026 ShivaOS Team - 1.0-15.fc44 - dracut : firmware Intel Arc (xe) + iGPU (i915) ajoutés dans initramfs (fix écran noir Arc) * Fri May 09 2026 ShivaOS Team - 1.0-14.fc44 - dracut config : GPU AMD/Intel/NVIDIA/fallback forcés dans initramfs (fix écran noir après GRUB) - firmware amdgpu inclus dans initramfs pour boot AMD immédiat * Fri May 09 2026 ShivaOS Team - 1.0-13.fc44 - udev I/O scheduler : NVMe→kyber, SSD→mq-deadline, HDD→BFQ + SATA max_performance - modprobe blacklist : iTCO_wdt + sp5100_tco (watchdogs AMD/Intel inutiles) - modprobe NVIDIA : NVreg_UsePageAttributeTable=1, NVreg_InitializeSystemMemoryAllocations=0 - udev audio : Intel HDA power_save=0 sur AC (élimine craquements) - systemd limits : DefaultLimitNOFILE=2097152, timeouts 15s/10s * Fri May 08 2026 ShivaOS Team - 1.0-12.fc44 - Suppression Provides/Obsoletes fedora-release-identity (causait conflits dans images Atomic) - os-release géré uniquement via %%post, aucun conflit possible avec paquets base Kinoite * Fri May 08 2026 ShivaOS Team - 1.0-11.fc44 - Ajout Obsoletes fedora-release-identity-kinoite pour compatibilité image Atomic/Kinoite * Fri May 08 2026 ShivaOS Team - 1.0-10.fc44 - Fix conflit Atomic/COPR : os-release écrit via %%post au lieu d'être possédé par RPM - Compatible avec fedora-release-common dans les images Kinoite/Atomic * Fri May 08 2026 ShivaOS Team - 1.0-9.fc44 - Fix lenteur système avec kernel-shivaos : sysctl BORE tuning installé dans /etc/sysctl.d/ - Corrige timeouts polkit/packagekit après screen lock (sched_burst_penalty_scale 1536→1280) - Ajout réglages VM gaming (vm.swappiness, dirty_bytes, page-cluster, file-max) basés sur CachyOS * Tue May 05 2026 ShivaOS Team - 1.0-8.fc44 - Migration vers le backend Pulp pour le dépôt shivaos (meilleure disponibilité) * Tue May 05 2026 ShivaOS Team - 1.0-7.fc44 - Ajout dépendance shiva-pulse (installation automatique avec shiva-core) * Tue May 05 2026 ShivaOS Team - 1.0-6.fc44 - Ajout hook kernel-install : kernel CachyOS automatiquement défaut GRUB à chaque update * Tue May 05 2026 ShivaOS Team - 1.0-5.fc44 - Fix release tag : dist tag fc44 explicite pour éviter comparaison RPM incorrecte * Tue May 05 2026 ShivaOS Team - 1.0-4 - Ajout AppStream metainfo pour notes de version dans KDE Discover * Tue May 05 2026 ShivaOS Team - 1.0-3 - Fix conflit os-release : installer dans /usr/lib/os-release + symlink /etc/os-release - Ajouter Obsoletes fedora-release-identity-* pour remplacement propre * Thu May 01 2026 ShivaOS Team - 1.0-1 - Release initiale ShivaOS 44