File PersistenceOS.kiwi of Package PersistenceOS

<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="8.3" name="PersistenceOS" displayname="PersistenceOS">
  <description type="system">
    <author>PersistenceOS Team</author>
    <contact>support@persistenceos.org</contact>
    <specification>PersistenceOS Installation Image (MicroOS 6.1 Base)</specification>
  </description>

  <preferences>
    <version>6.1.0</version>
    <packagemanager>zypper</packagemanager>
    <locale>en_US</locale>
    <keytable>us</keytable>
    <timezone>UTC</timezone>
    <rpm-check-signatures>false</rpm-check-signatures>
    <rpm-excludedocs>true</rpm-excludedocs>
    <type image="oem" filesystem="btrfs" firmware="uefi" installiso="true" bootpartition="false" btrfs_root_is_snapper_snapshot="false">
        <bootloader name="grub2" console="serial" timeout="10"/>
        <size unit="G">8</size>
    </type>
  </preferences>

  <profiles>
    <profile name="PersistenceOS" description="PersistenceOS Image Profile" arch="x86_64"/>
  </profiles>

  <users>
    <user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
  </users>

  <repository type="rpm-md">
    <source path="obsrepositories:/"/>
  </repository>

  <packages type="image">
    <!-- Base system packages -->
    <package name="patterns-microos-base"/>
    <package name="patterns-microos-defaults"/>
    <package name="systemd"/>
    <package name="dracut"/>
    <package name="grub2"/>
    <package name="kernel-default"/>
    <package name="openssh"/>
    <package name="firewalld"/>
    <package name="NetworkManager"/>

    <!-- Health checker packages -->
    <package name="health-checker"/>
    <package name="health-checker-plugins-MicroOS"/>

    <!-- Filesystem-related packages -->
    <package name="btrfsprogs"/>
    <package name="e2fsprogs"/>
    <package name="xfsprogs"/>
    <package name="lvm2"/>

    <!-- Virtualization packages -->
    <package name="libvirt-daemon"/>
    <package name="libvirt-client"/>
    <package name="qemu-kvm"/>
    <package name="qemu-tools"/>

    <!-- Web UI packages -->
    <package name="python3-base"/>
    <!-- Python & API Runtime - FastAPI/Uvicorn serves both static files and API endpoints directly -->
    <package name="python311-base"/>
    <package name="python311-pip"/> <!-- Ensure pip is available for package installation -->
    <!-- Try RPM packages first, fallback to pip installation in config.sh -->
    <package name="python311-fastapi"/>
    <package name="python311-uvicorn"/>
    <package name="python311-psutil"/>
    <package name="python311-pydantic"/>
    <package name="python311-typing-extensions"/>
    <package name="python311-websockets"/> <!-- for WebSocket support -->
    <package name="python311-aiofiles"/> <!-- for async file operations -->
    <package name="python311-python-multipart"/> <!-- for form data parsing -->
    <package name="python311-starlette"/> <!-- Core dependency for FastAPI -->
    <package name="python311-httptools"/> <!-- For better HTTP parsing performance -->
    <package name="python311-ujson"/> <!-- For faster JSON handling -->
    <package name="python311-netifaces"/>
    <package name="python311-requests"/> <!-- HTTP client library -->
    <package name="python311-PyYAML"/> <!-- YAML processing -->
    <package name="python311-lxml"/> <!-- XML processing -->
    <package name="python311-Pillow"/> <!-- Image processing -->
    <package name="python311-cryptography"/> <!-- Cryptographic functions -->
    <package name="python311-bcrypt"/> <!-- Password hashing -->
    <package name="python311-passlib"/> <!-- Password utilities -->
    <package name="python311-python-jose"/> <!-- JWT handling -->

    <!-- Security packages -->
    <package name="policycoreutils"/>
    <package name="selinux-policy"/>
    <package name="openssl"/> <!-- For SSL certificate generation -->
    <package name="pam_pwquality"/>

    <!-- Utilities -->
    <package name="vim"/>
    <package name="vim-small"/> <!-- Minimal vim for space efficiency -->
    <package name="less"/>
    <package name="tar"/>
    <package name="gzip"/>
    <package name="zip"/>
    <package name="unzip"/>
    <package name="wget"/>
    <package name="curl"/>
    <package name="rsync"/>
    <package name="sudo"/>
    <package name="timezone"/>
    <package name="bash-completion"/>
    <package name="dracut-kiwi-oem-repart"/>
    <package name="dracut-kiwi-oem-dump"/>

    <!-- System information and monitoring tools -->
    <package name="util-linux"/> <!-- for lscpu, uptime, lsblk -->
    <package name="hostname"/> <!-- replacement for inetutils -->
    <package name="procps"/> <!-- for free, ps commands -->
    <package name="jq"/> <!-- for JSON processing -->
    <package name="figlet"/> <!-- for enhanced welcome screen -->
    <package name="findutils"/> <!-- find command -->
    <package name="grep"/> <!-- text search -->
    <package name="sed"/> <!-- stream editor -->
    <package name="awk"/> <!-- text processing -->

    <!-- Network utilities -->
    <package name="iproute2"/> <!-- for ip command -->
    <package name="iputils"/> <!-- for ping command -->

    <!-- Security and system tools -->
    <package name="nftables"/> <!-- Modern firewall -->
    <package name="iptables"/> <!-- Legacy firewall compatibility -->
    <package name="logrotate"/> <!-- Log rotation -->
    <package name="cron"/> <!-- Task scheduling -->

    <!-- Additional Virtualization packages -->
    <package name="libvirt-daemon-qemu"/>
    <package name="libvirt-daemon-config-network"/> <!-- VM networking configuration -->
    <package name="dnsmasq"/>
    <package name="iproute2"/> <!-- provides ip command for network bridging -->

    <!-- UEFI Support for VMs - CRITICAL for enhanced VM creation -->
    <package name="ovmf"/> <!-- UEFI firmware for virtual machines -->
    <package name="qemu-ovmf-x86_64"/> <!-- x86_64 UEFI firmware -->

    <!-- Enhanced Virtualization Support -->
    <package name="virt-manager-common"/> <!-- VM configuration utilities -->
    <package name="qemu-guest-agent"/> <!-- Guest agent for VMs -->

    <!-- Additional Storage packages -->
    <package name="snapper"/>
    <package name="snapper-zypp-plugin"/> <!-- Snapper integration with zypper -->
    <package name="smartmontools"/>
    <package name="mdadm"/>
    <package name="parted"/> <!-- Disk partitioning tools -->
    <package name="gdisk"/> <!-- GPT partitioning tools -->

    <!-- Hardware detection and monitoring tools -->
    <package name="pciutils"/> <!-- lspci command -->
    <package name="usbutils"/> <!-- lsusb command -->
    <package name="dmidecode"/> <!-- Hardware information -->

    <!-- System monitoring and performance -->
    <package name="lsof"/> <!-- List open files -->

    <!-- Container and additional virtualization support -->
    <package name="podman"/> <!-- Container runtime -->
    <package name="slirp4netns"/> <!-- User-mode networking for containers -->
    <package name="fuse-overlayfs"/> <!-- Overlay filesystem for containers -->
    <package name="toolbox"/> <!-- Container-based development environment -->

    <!-- Template engine support -->
    <package name="python3-Jinja2"/>

    <!-- Additional system libraries -->
    <package name="glib2-tools"/> <!-- GLib utilities -->
    <package name="dbus-1"/> <!-- D-Bus system -->
    <package name="systemd-sysvinit"/> <!-- SysV init compatibility -->

    <!-- Development and debugging tools (optional but useful) -->
    <package name="strace"/> <!-- System call tracer -->
    <package name="gdb"/> <!-- GNU debugger -->
    <package name="valgrind"/> <!-- Memory debugging -->

    <!-- File system utilities -->
    <package name="dosfstools"/> <!-- FAT filesystem tools -->
    <package name="ntfs-3g"/> <!-- NTFS filesystem support -->

    <!-- KIWI Overlay Archive - Contains all web UI files -->
    <archive name="root.tar.gz"/>
  </packages>

  <packages type="bootstrap">
    <package name="filesystem"/>
    <package name="glibc-locale"/>
    <package name="ca-certificates"/>
  </packages>
</image>

openSUSE Build Service is sponsored by