Skip to content

Instantly share code, notes, and snippets.

@mkumatag
Last active May 23, 2024 05:59
Show Gist options
  • Save mkumatag/b8c051268023d182c5cb277e197ce7d5 to your computer and use it in GitHub Desktop.
Save mkumatag/b8c051268023d182c5cb277e197ce7d5 to your computer and use it in GitHub Desktop.
How to build fedora-bootc on power

How to build fedora-bootc on power

First build the boot-image-builder for power

$ git clone https://github.com/osbuild/bootc-image-builder.git
$ cd bootc-image-builder/
$ make build-container
$ podman tag <image> quay.io/powercloud/bootc-image-builder:latest
$ podman push quay.io/powercloud/bootc-image-builder:latest

build fedora-bootc

$ git clone https://gitlab.com/fedora/bootc/base-images.git
$ cd base-images/

perform the below changes to use the previously built bootc-image-builder tool

$ git diff
diff --git a/Containerfile b/Containerfile
index 8179432..7bac8f0 100644
--- a/Containerfile
+++ b/Containerfile
@@ -26,7 +26,7 @@
 # renovate: datasource=endoflife-date depName=fedora versioning=docker
 FROM quay.io/fedora/fedora:40 as repos

-FROM quay.io/centos-bootc/bootc-image-builder:latest as builder
+FROM quay.io/powercloud/bootc-image-builder:latest as builder
 ARG MANIFEST=fedora-bootc.yaml
 COPY --from=repos /etc/dnf/vars /etc/dnf/vars
 COPY --from=repos /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-* /etc/pki/rpm-gpg
$ podman build --security-opt=label=disable --cap-add=all   --device /dev/fuse -t localhost/fedora-bootc .
$ podman tag <image> quay.io/powercloud/fedora-bootc:40
$ podman push quay.io/powercloud/fedora-bootc:40

How to test:

$ podman run -ti quay.io/powercloud/fedora-bootc:40
Failed to set RLIMIT_CORE: Operation not permitted
systemd 255.6-1.fc40 running in system mode (+PAM +AUDIT +SELINUX -APPARMOR +IMA +SMACK +SECCOMP -GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN -IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
Detected virtualization podman.
Detected architecture ppc64-le.

Welcome to Fedora Linux 40.20240523.0 (Forty)!

Initializing machine ID from container UUID.
bpf-lsm: BPF LSM hook not enabled in the kernel, BPF LSM not supported
Queued start job for default target graphical.target.
[  OK  ] Created slice system-getty.slice - Slice /system/getty.
[  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Created slice system-sshd\x2dkeygen.slice - Slice /system/sshd-keygen.
[  OK  ] Created slice user.slice - User and Session Slice.
[  OK  ] Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target cryptsetup.target - Local Encrypted Volumes.
[  OK  ] Reached target integritysetup.target - Local Integrity Protected Volumes.
[  OK  ] Reached target slices.target - Slice Units.
[  OK  ] Reached target swap.target - Swaps.
[  OK  ] Reached target veritysetup.target - Local Verity Protected Volumes.
[  OK  ] Listening on dm-event.socket - Device-mapper event daemon FIFOs.
[  OK  ] Listening on lvm2-lvmpolld.socket - LVM2 poll daemon socket.
[  OK  ] Listening on systemd-coredump.socket - Process Core Dump Socket.
[  OK  ] Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[  OK  ] Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[  OK  ] Listening on systemd-journald.socket - Journal Socket.
[  OK  ] Listening on systemd-oomd.socket - Userspace Out-Of-Memory (OOM) Killer Socket.
[  OK  ] Listening on systemd-userdbd.socket - User Database Manager Socket.
         Starting lvm2-monitor.service - Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling...
         Starting systemd-journald.service - Journal Service...
         Starting systemd-network-generator.service - Generate network units from Kernel command line...
         Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
         Starting systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully...
[  OK  ] Finished systemd-network-generator.service - Generate network units from Kernel command line.
[  OK  ] Reached target network-pre.target - Preparation for Network.
[  OK  ] Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
         Starting systemd-hwdb-update.service - Rebuild Hardware Database...
         Starting systemd-userdbd.service - User Database Manager...
[  OK  ] Started systemd-journald.service - Journal Service.
         Starting systemd-journal-flush.service - Flush Journal to Persistent Storage...
systemd-userdbd.service: ProtectHostname=yes is configured, but UTS namespace setup is prohibited (container manager?), ignoring namespace setup.
[  OK  ] Finished systemd-journal-flush.service - Flush Journal to Persistent Storage.
[  OK  ] Started systemd-userdbd.service - User Database Manager.
[  OK  ] Finished systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully.
         Starting systemd-sysusers.service - Create System Users...
[  OK  ] Finished lvm2-monitor.service - Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling.
[  OK  ] Finished systemd-sysusers.service - Create System Users.
         Starting systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev...
[  OK  ] Finished systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev.
[  OK  ] Reached target local-fs-pre.target - Preparation for Local File Systems.
[  OK  ] Reached target local-fs.target - Local File Systems.
         Starting ldconfig.service - Rebuild Dynamic Linker Cache...
         Starting selinux-autorelabel-mark.service - Mark the need to relabel after reboot...
         Starting systemd-tmpfiles-setup.service - Create Volatile Files and Directories...
[  OK  ] Finished selinux-autorelabel-mark.service - Mark the need to relabel after reboot.
[  OK  ] Finished ldconfig.service - Rebuild Dynamic Linker Cache.
[  OK  ] Finished systemd-tmpfiles-setup.service - Create Volatile Files and Directories.
         Starting systemd-journal-catalog-update.service - Rebuild Journal Catalog...
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
         Starting systemd-resolved.service - Network Name Resolution...
         Starting systemd-update-utmp.service - Record System Boot/Shutdown in UTMP...
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
         Starting systemd-resolved.service - Network Name Resolution...
[  OK  ] Finished systemd-update-utmp.service - Record System Boot/Shutdown in UTMP.
[  OK  ] Finished systemd-journal-catalog-update.service - Rebuild Journal Catalog.
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
         Starting systemd-resolved.service - Network Name Resolution...
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
         Starting systemd-resolved.service - Network Name Resolution...
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
         Starting systemd-resolved.service - Network Name Resolution...
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
[FAILED] Failed to start systemd-resolved.service - Network Name Resolution.
See 'systemctl status systemd-resolved.service' for details.
[  OK  ] Reached target nss-lookup.target - Host and Network Name Lookups.
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
         Mounting var-lib-nfs-rpc_pipefs.mount - RPC Pipe File System...
[FAILED] Failed to mount var-lib-nfs-rpc_pipefs.mount - RPC Pipe File System.
See 'systemctl status var-lib-nfs-rpc_pipefs.mount' for details.
[DEPEND] Dependency failed for rpc_pipefs.target.
[DEPEND] Dependency failed for rpc-gssd.service - RPC security service for NFS client and server.
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
[  OK  ] Finished systemd-hwdb-update.service - Rebuild Hardware Database.
         Starting systemd-update-done.service - Update is Completed...
[  OK  ] Finished systemd-update-done.service - Update is Completed.
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started ostree-finalize-staged.path - OSTree Monitor Staged Deployment.
[  OK  ] Started dnf-makecache.timer - dnf makecache --timer.
[  OK  ] Started logrotate.timer - Daily rotation of log files.
[  OK  ] Started raid-check.timer - Weekly RAID setup health check.
[  OK  ] Started systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories.
[  OK  ] Started unbound-anchor.timer - daily update of the root trust anchor for DNSSEC.
[  OK  ] Reached target paths.target - Path Units.
[  OK  ] Reached target timers.target - Timer Units.
[  OK  ] Listening on avahi-daemon.socket - Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on bootupd.socket.
[  OK  ] Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Listening on pcscd.socket - PC/SC Smart Card Daemon Activation Socket.
[  OK  ] Reached target sockets.target - Socket Units.
         Starting dbus-broker.service - D-Bus System Message Bus...
[  OK  ] Started dbus-broker.service - D-Bus System Message Bus.
[  OK  ] Reached target basic.target - Basic System.
         Starting NetworkManager.service - Network Manager...
         Starting avahi-daemon.service - Avahi mDNS/DNS-SD Stack...
         Starting dracut-shutdown.service - Restore /run/initramfs on shutdown...
         Starting ssh-host-keys-migration.service - Update OpenSSH host key permissions...
         Starting sshd-keygen@ecdsa.service - OpenSSH ecdsa Server Key Generation...
         Starting sshd-keygen@ed25519.service - OpenSSH ed25519 Server Key Generation...
         Starting sshd-keygen@rsa.service - OpenSSH rsa Server Key Generation...
[  OK  ] Reached target nss-user-lookup.target - User and Group Name Lookups.
         Starting systemd-homed.service - Home Area Manager...
         Starting systemd-logind.service - User Login Management...
         Starting udisks2.service - Disk Manager...
[  OK  ] Finished dracut-shutdown.service - Restore /run/initramfs on shutdown.
[  OK  ] Started avahi-daemon.service - Avahi mDNS/DNS-SD Stack.
[  OK  ] Finished sshd-keygen@ecdsa.service - OpenSSH ecdsa Server Key Generation.
[  OK  ] Finished sshd-keygen@ed25519.service - OpenSSH ed25519 Server Key Generation.
[  OK  ] Finished ssh-host-keys-migration.service - Update OpenSSH host key permissions.
[  OK  ] Started systemd-homed.service - Home Area Manager.
         Starting polkit.service - Authorization Manager...
[  OK  ] Finished systemd-homed-activate.service - Home Area Activation.
         Starting systemd-hostnamed.service - Hostname Service...
         Starting systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer...
[  OK  ] Started systemd-logind.service - User Login Management.
[FAILED] Failed to start polkit.service - Authorization Manager.
See 'systemctl status polkit.service' for details.
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
[  OK  ] Started systemd-hostnamed.service - Hostname Service.
[  OK  ] Started udisks2.service - Disk Manager.
         Starting NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service...
[  OK  ] Started NetworkManager.service - Network Manager.
[  OK  ] Reached target network.target - Network.
         Starting NetworkManager-wait-online.service - Network Manager Wait Online...
         Starting gssproxy.service - GSSAPI Proxy Daemon...
[  OK  ] Started NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service.
[  OK  ] Started gssproxy.service - GSSAPI Proxy Daemon.
[  OK  ] Reached target nfs-client.target - NFS client services.
[  OK  ] Reached target remote-fs-pre.target - Preparation for Remote File Systems.
[  OK  ] Reached target remote-cryptsetup.target - Remote Encrypted Volumes.
[  OK  ] Reached target remote-fs.target - Remote File Systems.
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started console-getty.service - Console Getty.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Finished NetworkManager-wait-online.service - Network Manager Wait Online.
[  OK  ] Reached target network-online.target - Network is Online.
         Starting rpc-statd-notify.service - Notify NFS peers of a restart...
[FAILED] Failed to start systemd-oomd.service - Userspace Out-Of-Memory (OOM) Killer.
See 'systemctl status systemd-oomd.service' for details.
[  OK  ] Started rpc-statd-notify.service - Notify NFS peers of a restart.
[  OK  ] Finished sshd-keygen@rsa.service - OpenSSH rsa Server Key Generation.
[  OK  ] Reached target sshd-keygen.target.
         Starting sshd.service - OpenSSH server daemon...
[  OK  ] Started sshd.service - OpenSSH server daemon.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.
         Starting systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP...
[  OK  ] Finished systemd-update-utmp-runlevel.service - Record Runlevel Change in UTMP.

Fedora Linux 40.20240523.0 (Forty)
Kernel 6.8.9-100.fc38.ppc64le on an ppc64le (console)

450a4c1b8b81 login:

Note: There are few services are failed to start, needs further investigation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment