File piccolo-os.kiwi of Package images

<?xml version="1.0" encoding="utf-8"?>
<!-- OBS-Profiles: @BUILD_FLAVOR@ -->
<image schemaversion="7.4" name="piccolo-os" displayname="Piccolo OS">
    <description type="system">
        <author>AtDexters Lab</author>
        <contact>piccolo-factory@atdexters.com</contact>
        <specification>Piccolo OS</specification>
    </description>
    <profiles>
        <!-- Platforms -->
        <profile name="VirtualBox" description="VirtualBox for x86_64" arch="x86_64" />
        <profile name="RaspberryPi" description="RaspberryPi (3+, aarch64)" arch="aarch64" />
        <profile name="Rock64" description="Rock64" arch="aarch64" />
        <profile name="SelfInstall" description="Self Installing Image" arch="x86_64,aarch64" />
    </profiles>
    <preferences profiles="VirtualBox">
        <version>0.2.0</version>
        <packagemanager>zypper</packagemanager>
        <rpm-excludedocs>true</rpm-excludedocs>
        <locale>en_US</locale>
        <type
            image="oem"
            filesystem="btrfs"
            fsmountoptions="noatime,compress=zstd:1"
            format="vdi"
            firmware="uefi"
            bootpartition="false"
            bootkernel="custom"
            devicepersistency="by-uuid"
            btrfs_root_is_snapshot="true"
            btrfs_root_is_readonly_snapshot="true"
            btrfs_quota_groups="true"
        >
            <bootloader name="grub2" console="gfxterm" timeout="1" />
            <systemdisk>
                <volume name="home" />
                <volume name="root" />
                <volume name="opt" />
                <volume name="srv" />
                <volume name="boot/grub2/i386-pc" />
                <volume name="boot/grub2/x86_64-efi" mountpoint="boot/grub2/x86_64-efi" />
                <volume name="boot/writable" />
                <volume name="usr/local" />
                <volume name="piccolo-core" />
                <volume name="var" copy_on_write="false" />
            </systemdisk>
            <oemconfig>
                <oem-resize>false</oem-resize>
            </oemconfig>
            <!-- No <size> element: the VDI is kept minimal (~2-3GB) so that
                 piccolod can partition the remaining space at first boot
                 (data partition + root expansion). The consumer (dev-vm.sh,
                 Install to Disk, or target hardware) resizes the disk to the
                 actual capacity before booting. -->
        </type>
    </preferences>
    <preferences profiles="RaspberryPi">
        <version>0.2.0</version>
        <packagemanager>zypper</packagemanager>
        <rpm-excludedocs>true</rpm-excludedocs>
        <locale>en_US</locale>
        <type
            image="oem"
            initrd_system="dracut"
            filesystem="btrfs"
            fsmountoptions="noatime,compress=zstd:1"
            firmware="efi"
            bootpartition="false"
            devicepersistency="by-uuid"
            btrfs_root_is_snapshot="true"
            efipartsize="16"
            editbootinstall="editbootinstall_rpi.sh"
            btrfs_root_is_readonly_snapshot="true"
            btrfs_quota_groups="false"
        >
            <bootloader name="grub2" console="gfxterm" timeout="1" />
            <systemdisk>
                <volume name="home" />
                <volume name="root" />
                <volume name="opt" />
                <volume name="srv" />
                <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi" />
                <volume name="boot/writable" />
                <volume name="usr/local" />
                <volume name="piccolo-core" />
                <volume name="var" copy_on_write="false" />
            </systemdisk>
            <oemconfig>
                <oem-resize>false</oem-resize>
            </oemconfig>
        </type>
    </preferences>
    <preferences profiles="Rock64">
        <version>0.2.0</version>
        <packagemanager>zypper</packagemanager>
        <rpm-excludedocs>true</rpm-excludedocs>
        <locale>en_US</locale>
        <type
            image="oem"
            initrd_system="dracut"
            filesystem="btrfs"
            fsmountoptions="noatime,compress=zstd:1"
            firmware="efi"
            bootpartition="false"
            devicepersistency="by-uuid"
            btrfs_root_is_snapshot="true"
            efipartsize="16"
            editbootinstall="editbootinstall_rock64.sh"
            btrfs_root_is_readonly_snapshot="true"
            btrfs_quota_groups="false"
            disk_start_sector="32768"
        >
            <bootloader name="grub2" timeout="1" />
            <systemdisk>
                <volume name="home" />
                <volume name="root" />
                <volume name="opt" />
                <volume name="srv" />
                <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi" />
                <volume name="boot/writable" />
                <volume name="usr/local" />
                <volume name="piccolo-core" />
                <volume name="var" copy_on_write="false" />
            </systemdisk>
            <oemconfig>
                <oem-resize>false</oem-resize>
            </oemconfig>
        </type>
    </preferences>
    <preferences profiles="SelfInstall">
        <version>0.2.0</version>
        <packagemanager>zypper</packagemanager>
        <rpm-excludedocs>true</rpm-excludedocs>
        <locale>en_US</locale>
        <type
            image="oem"
            filesystem="btrfs"
            fsmountoptions="noatime,compress=zstd:1"
            firmware="uefi"
            initrd_system="dracut"
            installiso="true"
            installpxe="true"
            bootpartition="false"
            bootkernel="custom"
            devicepersistency="by-uuid"
            btrfs_root_is_snapshot="true"
            btrfs_root_is_readonly_snapshot="true"
            btrfs_quota_groups="true"
        >
            <bootloader name="grub2" console="gfxterm" timeout="1" />
            <systemdisk>
                <volume name="home" />
                <volume name="root" />
                <volume name="tmp" />
                <volume name="opt" />
                <volume name="srv" />
                <volume name="boot/grub2/i386-pc" />
                <volume name="boot/grub2/x86_64-efi" mountpoint="boot/grub2/x86_64-efi" />
                <volume name="boot/grub2/arm64-efi" mountpoint="boot/grub2/arm64-efi" />
                <volume name="boot/writable" />
                <volume name="usr/local" />
                <volume name="piccolo-core" />
                <volume name="var" copy_on_write="false" />
            </systemdisk>
            <oemconfig>
                <oem-device-filter>/dev/ram</oem-device-filter>
                <oem-multipath-scan>false</oem-multipath-scan>
                <oem-resize>false</oem-resize>
            </oemconfig>
            <machine memory="512" guestOS="suse" HWversion="4">
                <vmdisk id="0" controller="ide" />
                <vmnic driver="e1000" interface="0" mode="bridged" />
            </machine>
        </type>
    </preferences>

    <!-- TODO: Make Users and Repository Dynamic -->

    <!--
    <repository type="rpm-md" alias="tw-oss" priority="99">
        <source path="http://192.168.0.100:8888/oss" />
    </repository>

    <repository type="rpm-md" alias="piccolo-os-x86_64" priority="80" imageinclude="true"
        arch="x86_64">
        <source
    path="https://download.opensuse.org/repositories/home:/abhishekborar93:/piccolo-os/openSUSE_Tumbleweed/"
    />
    </repository>
    <repository type="rpm-md" alias="piccolo-os-aarch64" priority="80" imageinclude="true"
        arch="aarch64">
        <source
    path="https://download.opensuse.org/repositories/home:/abhishekborar93:/piccolo-os/openSUSE_Factory_ARM/"
    />
    </repository> 
    -->

    <repository type="rpm-md" alias="obs-repo" priority="99">
        <source path="obsrepositories:/" />
    </repository>

    <packages type="image">
        <package name="live-add-yast-repos" />
        <!-- kiwi build-time OEM repartitioning; not an RPM runtime dep -->
        <package name="dracut-kiwi-oem-repart" />
        <!-- All basesystem, base-zypper, defaults, and image-composition
             packages are Requires of piccolo-os-support (single source of truth
             for both image build and transactional-update dup). -->
        <package name="piccolo-os-support" />
    </packages>

    <packages type="image" profiles="SelfInstall,RaspberryPi,Rock64">
        <package name="patterns-microos-hardware" />
        <package name="kernel-firmware-all" /> <!-- Fix choice between kernel-firmware and
        kernel-firmware-all -->
    </packages>

    <packages type="image" profiles="SelfInstall">
        <package name="dracut-kiwi-oem-dump" />
    </packages>

    <packages type="image" profiles="VirtualBox">
        <package name="virtualbox-guest-tools" />
    </packages>

    <packages type="image" profiles="RaspberryPi">
        <package name="raspberrypi-firmware" arch="aarch64" />
        <package name="raspberrypi-firmware-config" arch="aarch64" />
        <package name="raspberrypi-firmware-dt" arch="aarch64" />
        <package name="arm-trusted-firmware-rpi4" arch="aarch64" />
        <package name="u-boot-rpiarm64" arch="aarch64" />
        <package name="bcm43xx-firmware" />
        <package name="wireless-regdb" />
        <package name="wireless-tools" />
        <package name="wpa_supplicant" />
    </packages>
    <packages type="image" profiles="Rock64">
        <package name="u-boot-rock64-rk3328" arch="aarch64" />
        <package name="dtb-rockchip" arch="aarch64" />
    </packages>

    <packages type="bootstrap">
        <!-- Avoid that zypper picks the busybox-foo variant for those, that would fail later -->
        <package name="coreutils" />
        <package name="gawk" />
        <package name="gzip" />
        <package name="hostname" />
        <!-- Avoid libressl -->
        <package name="openssl" />
        <!-- Avoid libz-ng-compat1, boo#1245263 -->
        <package name="libz1" />

        <package name="filesystem" />
        <package name="glibc-locale-base" />
        <!-- So that https repos work for image package downloads -->
        <package name="ca-certificates-mozilla" />
        <!-- TODO: Use the proper flavors once available -->
        <package name="MicroOS-release-dvd" />
    </packages>
</image>
openSUSE Build Service is sponsored by