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>