From a5b2c5aee33ecb01d985b9f8d3251a996fe3f0b8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 30 Aug 2026 20:49:45 +0000 Subject: [PATCH] Complete archiso profile for OrionOS ISO build - iso/profile/profiledef.sh: archiso profile with BIOS+UEFI bootmodes - iso/profile/packages.x86_64: full package list (X11, audio, OrionOS deps) - iso/profile/pacman.conf: pacman config for archiso - iso/profile/airootfs/: live overlay (xinitrc, hostname, skel) - iso/docker/Dockerfile: builds OrionOS from source, installs into airootfs, runs mkarchiso --- iso/docker/Dockerfile | 75 ++++++++++++++++-------- iso/profile/airootfs/etc/hostname | 1 + iso/profile/airootfs/etc/orionos/xinitrc | 9 +++ iso/profile/airootfs/etc/skel/.xinitrc | 2 + iso/profile/airootfs/root/.xinitrc | 2 + iso/profile/packages.x86_64 | 72 +++++++++++++++++++++++ iso/profile/pacman.conf | 14 +++++ iso/profile/profiledef.sh | 22 +++++++ 8 files changed, 174 insertions(+), 23 deletions(-) create mode 100644 iso/profile/airootfs/etc/hostname create mode 100644 iso/profile/airootfs/etc/orionos/xinitrc create mode 100644 iso/profile/airootfs/etc/skel/.xinitrc create mode 100644 iso/profile/airootfs/root/.xinitrc create mode 100644 iso/profile/packages.x86_64 create mode 100644 iso/profile/pacman.conf create mode 100644 iso/profile/profiledef.sh diff --git a/iso/docker/Dockerfile b/iso/docker/Dockerfile index 9326eaf..9976d1a 100644 --- a/iso/docker/Dockerfile +++ b/iso/docker/Dockerfile @@ -1,33 +1,62 @@ FROM archlinux:latest -# Install archiso and build dependencies -RUN pacman -Syu --noconfirm \ - archiso \ - base-devel \ - git \ - libx11 \ - libxft \ - libxfixes \ - dbus \ - libpng \ - feh \ - picom \ - libpam \ - ttf-dejavu \ - xorg-server \ - xorg-xinit \ - xterm \ - notify-send-py \ - && pacman -Scc --noconfirm +# Update and install archiso + OrionOS build dependencies +RUN pacman -Syu --noconfirm && \ + pacman -S --noconfirm \ + archiso \ + base-devel \ + git \ + libx11 \ + libxft \ + libxfixes \ + libxext \ + libpng \ + dbus \ + pam \ + fontconfig \ + freetype2 \ + xorg-server \ + xorg-xinit \ + feh \ + picom \ + alsa-utils \ + ttf-dejavu \ + noto-fonts \ + pkgconf && \ + pacman -Scc --noconfirm WORKDIR /build + +# Copy OrionOS source COPY . /build/orionos # Build OrionOS components -RUN cd /build/orionos && make && make install +RUN cd /build/orionos && make 2>&1 | tail -20 -# Copy archiso profile and build the ISO -RUN cp -r /build/orionos/iso/profile /tmp/orionos-profile -RUN mkarchiso -v -w /tmp/iso-work -o /output /tmp/orionos-profile +# Install binaries into the staging root that archiso will include +RUN cd /build/orionos && \ + install -Dm755 wm/orionwm /build/orionos/iso/profile/airootfs/usr/local/bin/orionwm && \ + install -Dm755 deskbar/oriondeskbar /build/orionos/iso/profile/airootfs/usr/local/bin/oriondeskbar && \ + install -Dm755 launcher/orionlauncher /build/orionos/iso/profile/airootfs/usr/local/bin/orionlauncher && \ + install -Dm755 themes/orionwallpaper /build/orionos/iso/profile/airootfs/usr/local/bin/orionwallpaper && \ + install -Dm755 orionnotify/orionnotify /build/orionos/iso/profile/airootfs/usr/local/bin/orionnotify && \ + install -Dm755 orionlock/orionlock /build/orionos/iso/profile/airootfs/usr/local/bin/orionlock && \ + install -Dm755 orionshot/orionshot /build/orionos/iso/profile/airootfs/usr/local/bin/orionshot && \ + install -Dm755 orionclip/orionclip /build/orionos/iso/profile/airootfs/usr/local/bin/orionclip && \ + install -Dm755 orionpkg/orionpkg /build/orionos/iso/profile/airootfs/usr/local/bin/orionpkg && \ + cp -r themes/OrionOS /build/orionos/iso/profile/airootfs/usr/share/themes/ && \ + install -Dm644 themes/picom.conf /build/orionos/iso/profile/airootfs/etc/orionos/picom.conf + +# Generate default wallpaper +RUN mkdir -p /build/orionos/iso/profile/airootfs/usr/share/orionos/wallpapers && \ + bash /build/orionos/themes/wallpapers/generate-default.sh 2>/dev/null && \ + cp -f /build/orionos/themes/wallpapers/orionos-default.png \ + /build/orionos/iso/profile/airootfs/usr/share/orionos/wallpapers/ 2>/dev/null || true + +# Build the ISO +RUN mkarchiso -v \ + -w /tmp/iso-work \ + -o /output \ + /build/orionos/iso/profile CMD ["/bin/bash"] diff --git a/iso/profile/airootfs/etc/hostname b/iso/profile/airootfs/etc/hostname new file mode 100644 index 0000000..ae391d8 --- /dev/null +++ b/iso/profile/airootfs/etc/hostname @@ -0,0 +1 @@ +orionos diff --git a/iso/profile/airootfs/etc/orionos/xinitrc b/iso/profile/airootfs/etc/orionos/xinitrc new file mode 100644 index 0000000..778b2b3 --- /dev/null +++ b/iso/profile/airootfs/etc/orionos/xinitrc @@ -0,0 +1,9 @@ +#!/bin/bash +# OrionOS live session autostart + +picom --config /etc/orionos/picom.conf & +orionwallpaper & +orionnotify & +orionclip & +oriondeskbar & +exec orionwm diff --git a/iso/profile/airootfs/etc/skel/.xinitrc b/iso/profile/airootfs/etc/skel/.xinitrc new file mode 100644 index 0000000..75e8555 --- /dev/null +++ b/iso/profile/airootfs/etc/skel/.xinitrc @@ -0,0 +1,2 @@ +#!/bin/bash +source /etc/orionos/xinitrc diff --git a/iso/profile/airootfs/root/.xinitrc b/iso/profile/airootfs/root/.xinitrc new file mode 100644 index 0000000..75e8555 --- /dev/null +++ b/iso/profile/airootfs/root/.xinitrc @@ -0,0 +1,2 @@ +#!/bin/bash +source /etc/orionos/xinitrc diff --git a/iso/profile/packages.x86_64 b/iso/profile/packages.x86_64 new file mode 100644 index 0000000..c52df27 --- /dev/null +++ b/iso/profile/packages.x86_64 @@ -0,0 +1,72 @@ +# OrionOS live system packages + +# Base system +base +linux +linux-firmware +mkinitcpio + +# X11 +xorg-server +xorg-xinit +xorg-xrandr +xorg-xsetroot +xorg-xev + +# Fonts +ttf-dejavu +noto-fonts +ttf-liberation + +# Dependencies for OrionOS components +libx11 +libxft +libxfixes +libxext +libpng +dbus +libpam +fontconfig +freetype2 + +# Desktop utilities +feh +picom +xterm +libnotify + +# Audio +alsa-utils +pulseaudio + +# Brightness +light + +# Media playback control +playerctl + +# Arch tools +pacman-contrib +pkexec +polkit + +# System tools +bash +coreutils +util-linux +procps-ng +grep +gawk +sed +tar +gzip + +# Network +networkmanager +dhcpcd + +# Misc +git +vim +less +which diff --git a/iso/profile/pacman.conf b/iso/profile/pacman.conf new file mode 100644 index 0000000..fcb4029 --- /dev/null +++ b/iso/profile/pacman.conf @@ -0,0 +1,14 @@ +[options] +HoldPkg = pacman glibc +Architecture = auto +CheckSpace +ParallelDownloads = 5 + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist diff --git a/iso/profile/profiledef.sh b/iso/profile/profiledef.sh new file mode 100644 index 0000000..2dcf7a6 --- /dev/null +++ b/iso/profile/profiledef.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# archiso profile definition for OrionOS + +iso_name="OrionOS" +iso_label="ORIONOS_$(date +%Y%m)" +iso_publisher="OrionOS Project" +iso_application="OrionOS Live" +iso_version="$(date +%Y.%m)" +install_dir="arch" +buildmodes=('iso') +bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' + 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp' + 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito') +arch="x86_64" +pacman_conf="pacman.conf" +airootfs_image_type="squashfs" +airootfs_image_tool_options=('-comp' 'zstd' '-Xcompression-level' '15') +file_permissions=( + ["/etc/orionos/xinitrc"]="0:0:755" + ["/root/.xinitrc"]="0:0:755" + ["/etc/skel/.xinitrc"]="0:0:755" +)