From 89d442a74ab0b3fc49f838c15f3f722f1be74720 Mon Sep 17 00:00:00 2001 From: nippy Date: Sun, 12 Apr 2026 18:11:38 +0200 Subject: live --- .forgejo/.DS_Store | Bin 0 -> 6148 bytes .forgejo/workflows/build-iso.yml | 125 ++++++++ README.md | 139 ++++++++ alap.sh | 21 ++ build.sh | 21 ++ .../etc/NetworkManager/conf.d/wifi_backend.conf | 2 + releng/airootfs/etc/default/grub | 54 ++++ releng/airootfs/etc/group | 17 + releng/airootfs/etc/gshadow | 2 + releng/airootfs/etc/hostname | 1 + releng/airootfs/etc/iwd/main.conf | 2 + releng/airootfs/etc/locale.conf | 1 + releng/airootfs/etc/localtime | 1 + releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf | 3 + releng/airootfs/etc/mkinitcpio.d/linux.preset | 8 + releng/airootfs/etc/modprobe.d/broadcom-wl.conf | 11 + releng/airootfs/etc/motd | 11 + releng/airootfs/etc/os-release | 11 + releng/airootfs/etc/pacman.conf | 108 +++++++ releng/airootfs/etc/pacman.d/chaotic-mirrorlist | 349 +++++++++++++++++++++ .../etc/pacman.d/hooks/reflector-mirrorlist.hook | 11 + .../zzzz99-remove-custom-hooks-from-airootfs.hook | 18 ++ releng/airootfs/etc/pacman.d/mirrorlist | 111 +++++++ releng/airootfs/etc/passwd | 2 + .../etc/polkit-1/rules.d/49-nopasswd_global.rules | 8 + releng/airootfs/etc/profile.d/autostart.sh | 4 + releng/airootfs/etc/profile.d/raveos-fastfetch.sh | 18 ++ releng/airootfs/etc/resolv.conf | 1 + releng/airootfs/etc/shadow | 2 + releng/airootfs/etc/skel/.bashrc | 16 + .../etc/skel/.config/fastfetch/config-kitty.jsonc | 43 +++ .../etc/skel/.config/fastfetch/config.jsonc | 93 ++++++ .../etc/skel/.config/fastfetch/raveos-logo.png | Bin 0 -> 136727 bytes .../etc/skel/.config/fastfetch/raveos-logo.txt | 19 ++ .../airootfs/etc/ssh/sshd_config.d/10-archiso.conf | 3 + releng/airootfs/etc/sudoers | 139 ++++++++ .../systemd/journald.conf.d/volatile-storage.conf | 2 + .../etc/systemd/logind.conf.d/do-not-suspend.conf | 4 + .../etc/systemd/network/20-ethernet.network | 24 ++ .../etc/systemd/network/20-wlan.network.disabled | 20 ++ .../airootfs/etc/systemd/network/20-wwan.network | 19 ++ .../networkd.conf.d/ipv6-privacy-extensions.conf | 2 + .../etc/systemd/resolved.conf.d/archiso.conf | 4 + .../system-generators/systemd-gpt-auto-generator | 1 + .../etc/systemd/system/choose-mirror.service | 10 + .../cloud-init.target.wants/cloud-config.service | 1 + .../cloud-init.target.wants/cloud-final.service | 1 + .../cloud-init-local.service | 1 + .../cloud-init-main.service | 1 + .../cloud-init-network.service | 1 + .../dbus-org.freedesktop.ModemManager1.service | 1 + .../system/dbus-org.freedesktop.network1.service | 1 + .../system/dbus-org.freedesktop.resolve1.service | 1 + .../system/dbus-org.freedesktop.timesync1.service | 1 + .../etc/systemd/system/etc-pacman.d-gnupg.mount | 8 + .../system/getty@tty1.service.d/autologin.conf | 3 + .../etc/systemd/system/livecd-alsa-unmuter.service | 13 + .../etc/systemd/system/livecd-talk.service | 20 ++ .../multi-user.target.wants/ModemManager.service | 1 + .../multi-user.target.wants/NetworkManager.service | 1 + .../multi-user.target.wants/choose-mirror.service | 1 + .../hv_fcopy_daemon.service | 1 + .../multi-user.target.wants/hv_kvp_daemon.service | 1 + .../multi-user.target.wants/hv_vss_daemon.service | 1 + .../system/multi-user.target.wants/iwd.service | 1 + .../multi-user.target.wants/livecd-talk.service | 1 + .../multi-user.target.wants/pacman-init.service | 1 + .../multi-user.target.wants/reflector-once.service | 1 + .../system/multi-user.target.wants/sshd.service | 1 + .../systemd-resolved.service | 1 + .../multi-user.target.wants/vboxservice.service | 1 + .../multi-user.target.wants/vmtoolsd.service | 1 + .../vmware-vmblock-fuse.service | 1 + .../systemd-networkd-wait-online.service | 1 + .../etc/systemd/system/pacman-init.service | 16 + .../etc/systemd/system/reflector-once.service | 11 + .../system/sockets.target.wants/pcscd.socket | 1 + .../sockets.target.wants/systemd-networkd.socket | 1 + .../sound.target.wants/livecd-alsa-unmuter.service | 1 + .../systemd-time-wait-sync.service | 1 + .../sysinit.target.wants/systemd-timesyncd.service | 1 + .../wait-for-only-one-interface.conf | 6 + .../etc/systemd/system/wpa_supplicant.service | 1 + releng/airootfs/root/.automated_script.sh | 44 +++ releng/airootfs/root/.config/openbox/autostart | 8 + releng/airootfs/root/.config/openbox/menu.xml | 22 ++ releng/airootfs/root/.config/openbox/rc.xml | 46 +++ releng/airootfs/root/.gnupg/scdaemon.conf | 4 + releng/airootfs/root/.loader.conf | 4 + releng/airootfs/root/.xinitrc | 1 + releng/airootfs/root/.zlogin | 6 + releng/airootfs/usr/local/bin/Installation_guide | 5 + releng/airootfs/usr/local/bin/choose-mirror | 29 ++ releng/airootfs/usr/local/bin/livecd-sound | 239 ++++++++++++++ .../usr/local/share/livecd-sound/asound.conf.in | 3 + .../calamares/kernel-install/95-raveos.install | 84 +++++ releng/bootstrap_packages | 2 + .../efiboot/loader/entries/01-archiso-linux.conf | 5 + .../loader/entries/03-archiso-memtest86+x64.conf | 4 + releng/efiboot/loader/loader.conf | 3 + releng/grub/grub.cfg | 105 +++++++ releng/grub/loopback.cfg | 78 +++++ releng/packages.x86_64 | 187 +++++++++++ releng/pacman.conf | 108 +++++++ releng/profiledef.sh | 34 ++ releng/syslinux/archiso_head.cfg | 28 ++ releng/syslinux/archiso_pxe-linux.cfg | 32 ++ releng/syslinux/archiso_pxe.cfg | 5 + releng/syslinux/archiso_sys-linux.cfg | 20 ++ releng/syslinux/archiso_sys.cfg | 8 + releng/syslinux/archiso_tail.cfg | 35 +++ releng/syslinux/splash.png | Bin 0 -> 45400 bytes releng/syslinux/syslinux.cfg | 11 + 113 files changed, 2729 insertions(+) create mode 100644 .forgejo/.DS_Store create mode 100644 .forgejo/workflows/build-iso.yml create mode 100755 alap.sh create mode 100755 build.sh create mode 100644 releng/airootfs/etc/NetworkManager/conf.d/wifi_backend.conf create mode 100644 releng/airootfs/etc/default/grub create mode 100644 releng/airootfs/etc/group create mode 100644 releng/airootfs/etc/gshadow create mode 100644 releng/airootfs/etc/hostname create mode 100644 releng/airootfs/etc/iwd/main.conf create mode 100644 releng/airootfs/etc/locale.conf create mode 120000 releng/airootfs/etc/localtime create mode 100644 releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf create mode 100644 releng/airootfs/etc/mkinitcpio.d/linux.preset create mode 100644 releng/airootfs/etc/modprobe.d/broadcom-wl.conf create mode 100644 releng/airootfs/etc/motd create mode 100644 releng/airootfs/etc/os-release create mode 100644 releng/airootfs/etc/pacman.conf create mode 100644 releng/airootfs/etc/pacman.d/chaotic-mirrorlist create mode 100644 releng/airootfs/etc/pacman.d/hooks/reflector-mirrorlist.hook create mode 100644 releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook create mode 100644 releng/airootfs/etc/pacman.d/mirrorlist create mode 100644 releng/airootfs/etc/passwd create mode 100644 releng/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules create mode 100755 releng/airootfs/etc/profile.d/autostart.sh create mode 100644 releng/airootfs/etc/profile.d/raveos-fastfetch.sh create mode 100644 releng/airootfs/etc/resolv.conf create mode 100644 releng/airootfs/etc/shadow create mode 100644 releng/airootfs/etc/skel/.bashrc create mode 100644 releng/airootfs/etc/skel/.config/fastfetch/config-kitty.jsonc create mode 100644 releng/airootfs/etc/skel/.config/fastfetch/config.jsonc create mode 100644 releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.png create mode 100644 releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.txt create mode 100644 releng/airootfs/etc/ssh/sshd_config.d/10-archiso.conf create mode 100644 releng/airootfs/etc/sudoers create mode 100644 releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf create mode 100644 releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf create mode 100644 releng/airootfs/etc/systemd/network/20-ethernet.network create mode 100644 releng/airootfs/etc/systemd/network/20-wlan.network.disabled create mode 100644 releng/airootfs/etc/systemd/network/20-wwan.network create mode 100644 releng/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf create mode 100644 releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf create mode 120000 releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator create mode 100644 releng/airootfs/etc/systemd/system/choose-mirror.service create mode 120000 releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service create mode 120000 releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service create mode 120000 releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service create mode 120000 releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service create mode 120000 releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service create mode 120000 releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service create mode 120000 releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service create mode 120000 releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service create mode 120000 releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service create mode 100644 releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount create mode 100644 releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service create mode 100644 releng/airootfs/etc/systemd/system/livecd-talk.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector-once.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service create mode 120000 releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service create mode 120000 releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service create mode 100644 releng/airootfs/etc/systemd/system/pacman-init.service create mode 100644 releng/airootfs/etc/systemd/system/reflector-once.service create mode 120000 releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket create mode 120000 releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket create mode 120000 releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service create mode 120000 releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service create mode 120000 releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service create mode 100644 releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf create mode 120000 releng/airootfs/etc/systemd/system/wpa_supplicant.service create mode 100755 releng/airootfs/root/.automated_script.sh create mode 100755 releng/airootfs/root/.config/openbox/autostart create mode 100644 releng/airootfs/root/.config/openbox/menu.xml create mode 100644 releng/airootfs/root/.config/openbox/rc.xml create mode 100644 releng/airootfs/root/.gnupg/scdaemon.conf create mode 100755 releng/airootfs/root/.loader.conf create mode 100644 releng/airootfs/root/.xinitrc create mode 100644 releng/airootfs/root/.zlogin create mode 100755 releng/airootfs/usr/local/bin/Installation_guide create mode 100755 releng/airootfs/usr/local/bin/choose-mirror create mode 100755 releng/airootfs/usr/local/bin/livecd-sound create mode 100644 releng/airootfs/usr/local/share/livecd-sound/asound.conf.in create mode 100755 releng/airootfs/usr/share/calamares/kernel-install/95-raveos.install create mode 100644 releng/bootstrap_packages create mode 100644 releng/efiboot/loader/entries/01-archiso-linux.conf create mode 100644 releng/efiboot/loader/entries/03-archiso-memtest86+x64.conf create mode 100644 releng/efiboot/loader/loader.conf create mode 100644 releng/grub/grub.cfg create mode 100644 releng/grub/loopback.cfg create mode 100644 releng/packages.x86_64 create mode 100644 releng/pacman.conf create mode 100644 releng/profiledef.sh create mode 100644 releng/syslinux/archiso_head.cfg create mode 100644 releng/syslinux/archiso_pxe-linux.cfg create mode 100644 releng/syslinux/archiso_pxe.cfg create mode 100644 releng/syslinux/archiso_sys-linux.cfg create mode 100644 releng/syslinux/archiso_sys.cfg create mode 100644 releng/syslinux/archiso_tail.cfg create mode 100644 releng/syslinux/splash.png create mode 100644 releng/syslinux/syslinux.cfg diff --git a/.forgejo/.DS_Store b/.forgejo/.DS_Store new file mode 100644 index 0000000..4159d69 Binary files /dev/null and b/.forgejo/.DS_Store differ diff --git a/.forgejo/workflows/build-iso.yml b/.forgejo/workflows/build-iso.yml new file mode 100644 index 0000000..6e060f7 --- /dev/null +++ b/.forgejo/workflows/build-iso.yml @@ -0,0 +1,125 @@ +name: Build and Release RaveOS ISO + +on: + push: + branches: ["main"] + workflow_dispatch: + +jobs: + build-iso: + runs-on: iso-builder + + env: + TMPDIR: ${{ github.workspace }}/.tmp + GIT_TMPDIR: ${{ github.workspace }}/.tmp + + steps: + - name: Checkout build repository + uses: actions/checkout@v4 + + - name: Prepare temp directories (NO /tmp usage) + run: | + mkdir -p "${GITHUB_WORKSPACE}/.tmp" + mkdir -p "${GITHUB_WORKSPACE}/release-tmp" + df -h + + - name: Fix raveos-core-repo pacman repo (overwrite clean) + run: | + sudo sed -i '/^\[raveos-core-repo\]/,/^$/d' /etc/pacman.conf + cat <<'EOF' | sudo tee -a /etc/pacman.conf + [raveos-core-repo] + SigLevel = Never TrustAll + Server = https://page.rp1.hu/x86_64/ + EOF + + - name: Update pacman databases + run: sudo pacman -Sy --noconfirm + + - name: Verify archiso + run: mkarchiso --version + + - name: Setup Chaotic-AUR + run: | + if [ ! -f /etc/pacman.d/chaotic-mirrorlist ]; then + sudo mkdir -p /etc/pacman.d + echo 'Server = https://cdn-mirror.chaotic.cx/$repo/$arch' | sudo tee /etc/pacman.d/chaotic-mirrorlist + sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com || true + sudo pacman-key --lsign-key 3056513887B78AEB || true + sudo pacman -U --noconfirm \ + https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst \ + https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst || true + fi + + - name: Build ISO + run: | + chmod +x ./build.sh + sudo ./build.sh + + - name: Check build output + run: | + ls -lh output/*.iso + + - name: Generate release info + run: | + ISO_FILE=$(ls output/*.iso | head -1) + ISO_NAME=$(basename "$ISO_FILE") + ISO_SIZE=$(du -h "$ISO_FILE" | cut -f1) + ISO_SHA256=$(sha256sum "$ISO_FILE" | cut -d' ' -f1) + BUILD_DATE=$(date '+%Y-%m-%d %H:%M:%S') + COMMIT_SHA=${GITHUB_SHA} + COMMIT_SHORT=${GITHUB_SHA::7} + + cat < release-info.md + # RaveOS Latest Release + + **Build Date:** ${BUILD_DATE} + **Filename:** ${ISO_NAME} + **Size:** ${ISO_SIZE} + **SHA256:** ${ISO_SHA256} + **Source Commit:** ${COMMIT_SHORT} + + ## Download + + [Download ${ISO_NAME}](https://git.rp1.hu/RaveOS/RaveOS-Releases/raw/branch/main/${ISO_NAME}) + + ## Verification + + \`\`\`bash + wget https://git.rp1.hu/RaveOS/RaveOS-Releases/raw/branch/main/${ISO_NAME} + echo "${ISO_SHA256} ${ISO_NAME}" | sha256sum -c + \`\`\` + EOF + + cat release-info.md + + + - name: Push ISO to Releases repository + run: | + set -e + + cd "${GITHUB_WORKSPACE}/release-tmp" + rm -rf ./* + + git clone --depth=1 git@git.rp1.hu:RaveOS/RaveOS-Releases.git . + git config user.name "RaveOS Builder" + git config user.email "builder@raveos.local" + + rm -f *.iso + cp "${GITHUB_WORKSPACE}/output/"*.iso . + cp "${GITHUB_WORKSPACE}/release-info.md" README.md + + git add . + git commit -m "Release $(ls *.iso)" + git push origin main + + - name: Cleanup (SAFE) + if: always() + run: | + sudo umount -R "${GITHUB_WORKSPACE}/work" 2>/dev/null || true + sudo umount -R "${GITHUB_WORKSPACE}/output" 2>/dev/null || true + sudo rm -rf "${GITHUB_WORKSPACE}/work" + sudo rm -rf "${GITHUB_WORKSPACE}/output" + sudo rm -rf "${GITHUB_WORKSPACE}/release-tmp" + sudo rm -rf "${GITHUB_WORKSPACE}/.tmp" + sudo rm -rf /var/cache/pacman/pkg/* + df -h diff --git a/README.md b/README.md index e69de29..34bbef9 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,139 @@ +# RaveOS 2.0 Beta — ISO Build - 1 - + +Arch Linux alapú egyedi disztribúció tőbb asztali környezettel, automatizált telepítővel és teljes témarendszerrel. + +> **Build rendszer:** Forgejo CI → `mkarchiso` → automatikus kiadás +> **Alap:** Arch Linux (rolling) + CachyOS kernel + Chaotic-AUR +> **Asztali környezet:** GNOME 47+ (Wayland), Hyprland támogatás béta állapotban! + +---- + +## Változásnapló + +### Build 2026-04-08 + +#### Főbb változások + +- Calamares frissítve lett a jelenlegi legújabb használt verzióra. +- Bekerült a Legacy boot támogatás az ISO-ba. +- Frissítve lett a `chaotic-mirrorlist` csomag. +- A Calamares most már MBR partíciós sémán is rendesen tud GRUB-bal telepíteni. +- A `grub` bekerült a pacstrap által telepített alapcsomagok közé. +- A Calamares fordítási készlete a szükséges nyelvekre lett szűkítve. +- Javítva lett a Calamares nyelvválasztó lenyíló menü megjelenése a sötét témában. + + +### Build 2026-02-27 + +#### `[app]` RaveOS App Installer + +- **rave CLI integráció** — `rave` rendszer karbantartó parancs (upgrade, clean, autoremove, install, remove, search, stb.) és bash completion (`rave-comp.sh`) beépítve a csomagba. Orphan cleanup guard fix (`pacman -Qtdq` üres → skip). +- **13 dconf INI fájl** — 6 új beállítás fájl: `nautilus.ini` (tree-view, show-hidden), `media-keys.ini` (Ctrl+Alt+T = Terminal), `peripherals.ini` (numlock, flat mouse), `session.ini` (idle-delay 900), `app-folders.ini` (System mappa), `gtk4-file-chooser.ini` (sort-directories-first). 2 frissített: `shell.ini`, `extensions.ini`. +- **Hidden apps** — 6 felesleges alkalmazás (`bssh`, `bvnc`, `avahi-discover`, `vim`, `qvidcap`, `qv4l2`) elrejtése NoDisplay=true override-dal a `~/.local/share/applications/` mappában. +- **dash-to-dock frissítés** — fekete háttér, 33% átlátszóság, 44px ikonok, DOTS running indicator stílus, minimize-or-overview kattintás. +- **burn-my-windows** — `aura-glow-animation-time=444` hozzáadva. +- **blur-my-shell, vitals, shutdowntimer** beállítások frissítése. +- **SHA256 manifest** — 623 fájl, 0 FAIL. + +#### `[theme]` profile.d export fix + +- **profile.d export bug javítás** — `export _RAVEOS_GREETING_DONE=1` → `_RAVEOS_GREETING_DONE=1` (export nélkül). A GDM login shellje source-olja a `/etc/profile.d/` scripteket → `export` esetén a változó öröklődik a gnome-session és minden gyerek processzhez → a guard blokkolta a fastfetch-et minden terminálon. Fix: shell-local változó, nem öröklődik. + +#### `[iso]` Csomagok + +- **`hblock` hozzáadva** a `packages.x86_64`-hez — a `rave upgrade` parancs használja, nélküle "command not found" hiba volt. + +#### `[theme]` Terminál és SHA256 javítások +- **GNOME Console terminál téma javítás** — a `/etc/profile.d/` scriptek csak login shellben futnak, de a GNOME Console (kgx) nem login shellt indít. Megoldás: `.bashrc` snippet hozzáadva, ami source-olja a profile.d scriptet. Guard változó (`_RAVEOS_GREETING_DONE`) megakadályozza a dupla futást login shelleknél. +- **GNOME kitty telepítés javítás** — a GNOME téma többé nem telepíti automatikusan a kitty csomagot (csak `fastfetch`). A kitty konfig fájlok a témában maradnak, így ha a felhasználó kézzel felrakja a kitty-t, a téma azonnal érvényes. +- **Hyprland terminál támogatás bővítés** — a Hyprland `theme-data.tar.gz` mostantól tartalmazza a fastfetch, kitty és profile.d fájlokat (korábban hiányoztak). A `metadata.json` kiegészítve terminal szekciókkal, a kitty automatikusan települ. +- **SHA256 metadata.json javítás** — mindkét metadata.json (GNOME + Hyprland) frissítve, manifest újragenerálva, 437/437 fájl hash egyezik. + + +### Build 2026-02-26 + +#### `[app]` RaveOS App Installer + +- **SHA256 integritásvédelem** — minden művelet (telepítés, törlés, mentés, visszaállítás, téma alkalmazás) blokkolva van, ha bármely követett fájl módosult. Az Infó oldalon valós idejű integritás állapot látható a módosult fájlok listájával. ISO telepítés alatt (Calamares) még nincs manifest, így az ellenőrzés nem blokkol. +- **Terminál üdvözlő rendszer** — a téma alkalmazás mostantól telepíti a fastfetch + kitty csomagokat és beállít egy rendszerszintű terminál üdvözlőt az `/etc/profile.d/`-n keresztül. GNOME Console-ban ASCII "RAVE OS" szöveges banner jelenik meg, Kitty terminálban a teljes bagoly logó PNG-ként a kitty grafikus protokollon keresztül. A kitty kép reszponzív — 8–24 sor között skálázódik a terminál magasságától függően. +- **Extension frissítés** — a `unity-like-appswitcher@gonza.com` lecserélve a karbantartott fork-ra: `unity-like-appswitcher-reforged@gabeszm` (magyar lokalizációval). +- **Téma oldal UI** — a GNOME és Hyprland téma kártyák most már vízszintesen középre igazítottak. +- **Hyprland terminál támogatás** — a `_setup_terminal()` hívás a `apply_gnome_theme()` és `apply_hyprland_theme()` függvényekből is meghívódik, így mindkét asztali környezet megkapja a fastfetch + kitty beállítást. +- **Verzió konzisztencia** — minden belépési pont (`main.py`, `bin/raveos-app-installer.py`) a központi `config.py`-ból importálja az `APP_VERSION`-t a beégetett stringek helyett. +- **Infó oldal** — alkalmazás verzió, lista verzió, téma verzió és SHA256 integritás állapot egyetlen kártya elrendezésben. + +#### `[theme]` GNOME Téma (theme-data.tar.gz) + +- `fastfetch/config.jsonc` — szöveges logó konfig hagyományos terminálokhoz +- `fastfetch/config-kitty.jsonc` — PNG képes logó konfig "RaveOS Beta 2.0" fejléccel +- `fastfetch/raveos-logo.txt` — színes RAVE OS blokkbetűs banner (zöld + cián) +- `fastfetch/raveos-logo.png` — 256×256 optimalizált bagoly logó kitty protokollhoz +- `kitty/kitty.conf` — Nord sötét téma, JetBrains Mono betűtípus, 0.92 átlátszóság +- `profile.d/raveos-fastfetch.sh` — rendszerszintű üdvözlő script reszponzív képpel +- Extension csere: `unity-like-appswitcher@gonza.com` → `unity-like-appswitcher-reforged@gabeszm` +- `dconf/shell.ini` enabled-extensions lista frissítve az új extension UUID-val + +#### `[calamares]` Telepítő + +- **IgnorePkg munkafolyamat:** + - Build-idejű `pacman.conf`: IgnorePkg **aktív** (megakadályozza a GNOME 48/mutter frissítést ISO build alatt) + - `airootfs/etc/pacman.conf`: IgnorePkg **kikommentelve** (inaktívan szállítva a felhasználónak) + - `shellprocess-enableservices.conf`: első indításkor visszaállítja az IgnorePkg-t sed-del + +#### `[iso]` Csomagok és rendszer + +- `p7zip` → `7zip` (Arch csomagnév változás) +- `xone-dkms` → `xpadneo-dkms` (jobb Xbox kontroller támogatás) +- `zenpower` flatpak → `cpupower-gui` pacman (chaotic-aur, natív) +- Bluetooth modul eltávolítva az alkalmazáslistából (rendszerszintű, nem felhasználó által telepíthető) +- GNOME Screenshot eltávolítva (GNOME 47+-ba beépítve) +- `pamac` → `octopi` (grafikus csomagkezelő csere) +- `vulkan-radeon` megjelölve mint `removable: false` +- Reflector: első indítási szolgáltatás (`reflector-once.service`) automatikusan magyar tükröket választ +- Discord telepítő script tartalmazza a Vencord + OpenAsar modokat és pacman hookot az automatikus újratelepítéshez Discord frissítés után + + +### Build 2026-02-15 — Első béta + +- Első nyilvános béta kiadás (`RaveOS-2.0-Beta`) +- GNOME asztali környezet Yaru-olive-dark témával, zöld akcentussal +- Adwaitaru-olive ikon téma +- blur-my-shell, dash-to-dock, burn-my-windows, rounded-window-corners, Vitals kiegészítők +- SDDM astronaut téma egyedi RaveOS háttérképpel +- Calamares telepítő RaveOS arculattal és egyedi modulokkal +- RaveOS App Installer (PyQt6) 60+ válogatott alkalmazással +- Mentés/visszaállítás rendszer kiválasztható elemekkel és méret kijelzéssel +- Többnyelvű támogatás (angol, magyar) +- Automatikus frissítési rendszer Forgejo repositoryból +- Chaotic-AUR és yay-bin előtelepítve + +--- + +### Pre-Beta (2026-01 → 2026-02) + +`[hardware]` Microcode frissítések (AMD + Intel) · Zenpower5 integráció · Automatikus VGA driver felismerés (Intel/AMD/NVIDIA) · WiFi modul támogatás (Broadcom, Atheros, MediaTek, Intel, Marvell, Qualcomm) · Bluetooth stack (bluez + eszközök) + +`[kernel]` CachyOS kernel teljesítmény javításokkal · DKMS támogatás külső modulokhoz (broadcom-wl-dkms) · linux-headers modulépítéshez + +--- + +## Mappa struktúra + +``` +releng/ +├── airootfs/ # Gyökér fájlrendszer overlay +│ ├── etc/ # Rendszer konfiguráció (pacman, dconf, sddm, calamares) +│ └── usr/ # Binárisok, szolgáltatások, hookok +├── efiboot/ # EFI boot konfiguráció +├── grub/ # GRUB bootloader konfig - Kezdetleges config egyelőre hibát dob. +├── syslinux/ # Syslinux bootloader konfig +├── packages.x86_64 # Csomaglista (181 csomag) +├── pacman.conf # Build-idejű pacman konfiguráció +└── profiledef.sh # ISO metaadatok és build beállítások +``` + +## Build + +```bash +./build.sh +``` diff --git a/alap.sh b/alap.sh new file mode 100755 index 0000000..76acfdf --- /dev/null +++ b/alap.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -e + +OUTDIR="$(pwd)/output" +WORKDIR="$(pwd)/output/work" + +echo "==> Cleaning previous builds..." +rm -rf "$OUTDIR" +mkdir -p "$OUTDIR" + +echo "==> Building RaveOS ISO..." +echo " Output: $OUTDIR" +echo " Work: $WORKDIR" +echo "" + +mkarchiso -v -w "$WORKDIR" -o "$OUTDIR" releng/ + +echo "" +echo "==> Build completed successfully!" +echo "" +ls -lh "$OUTDIR"/*.iso \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..76acfdf --- /dev/null +++ b/build.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -e + +OUTDIR="$(pwd)/output" +WORKDIR="$(pwd)/output/work" + +echo "==> Cleaning previous builds..." +rm -rf "$OUTDIR" +mkdir -p "$OUTDIR" + +echo "==> Building RaveOS ISO..." +echo " Output: $OUTDIR" +echo " Work: $WORKDIR" +echo "" + +mkarchiso -v -w "$WORKDIR" -o "$OUTDIR" releng/ + +echo "" +echo "==> Build completed successfully!" +echo "" +ls -lh "$OUTDIR"/*.iso \ No newline at end of file diff --git a/releng/airootfs/etc/NetworkManager/conf.d/wifi_backend.conf b/releng/airootfs/etc/NetworkManager/conf.d/wifi_backend.conf new file mode 100644 index 0000000..515c976 --- /dev/null +++ b/releng/airootfs/etc/NetworkManager/conf.d/wifi_backend.conf @@ -0,0 +1,2 @@ +[device] +wifi.backend=iwd diff --git a/releng/airootfs/etc/default/grub b/releng/airootfs/etc/default/grub new file mode 100644 index 0000000..c9416a2 --- /dev/null +++ b/releng/airootfs/etc/default/grub @@ -0,0 +1,54 @@ +# GRUB boot loader configuration + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="RaveOS" +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" +GRUB_CMDLINE_LINUX="" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable booting from LUKS encrypted devices +GRUB_ENABLE_CRYPTODISK=y + +# Set to 'countdown' or 'hidden' to change timeout behavior, +# press ESC key to display menu. +GRUB_TIMEOUT_STYLE=menu + +# Uncomment to use basic console +GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +GRUB_GFXMODE=auto + +# Uncomment to allow the kernel use the same resolution used by grub +GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +#GRUB_COLOR_NORMAL="light-blue/black" +#GRUB_COLOR_HIGHLIGHT="light-cyan/blue" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" +#GRUB_THEME="/path/to/gfxtheme" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +# Uncomment to make GRUB remember the last selection. This requires +# setting 'GRUB_DEFAULT=saved' above. +#GRUB_SAVEDEFAULT="true" diff --git a/releng/airootfs/etc/group b/releng/airootfs/etc/group new file mode 100644 index 0000000..5b8b111 --- /dev/null +++ b/releng/airootfs/etc/group @@ -0,0 +1,17 @@ +root:x:0:root +sys:x:3:bin,raveos +network:x:90:raveos +power:x:98:raveos +adm:x:999:raveos +wheel:x:998:raveos +uucp:x:987:raveos +optical:x:990:raveos +rfkill:x:983:raveos +video:x:986:raveos +storage:x:988:raveos +audio:x:995:raveos +users:x:985:raveos +nopasswdlogin:x:966:raveos +autologin:x:967:raveos +plugdev:x:46:raveos +raveos:x:1000: diff --git a/releng/airootfs/etc/gshadow b/releng/airootfs/etc/gshadow new file mode 100644 index 0000000..b37e18f --- /dev/null +++ b/releng/airootfs/etc/gshadow @@ -0,0 +1,2 @@ +root:!*::root +raveos:!*:: diff --git a/releng/airootfs/etc/hostname b/releng/airootfs/etc/hostname new file mode 100644 index 0000000..02af87a --- /dev/null +++ b/releng/airootfs/etc/hostname @@ -0,0 +1 @@ +raveos-netinst diff --git a/releng/airootfs/etc/iwd/main.conf b/releng/airootfs/etc/iwd/main.conf new file mode 100644 index 0000000..d613231 --- /dev/null +++ b/releng/airootfs/etc/iwd/main.conf @@ -0,0 +1,2 @@ +[General] +EnableNetworkConfiguration=false diff --git a/releng/airootfs/etc/locale.conf b/releng/airootfs/etc/locale.conf new file mode 100644 index 0000000..f9c983c --- /dev/null +++ b/releng/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=C.UTF-8 diff --git a/releng/airootfs/etc/localtime b/releng/airootfs/etc/localtime new file mode 120000 index 0000000..0e35b57 --- /dev/null +++ b/releng/airootfs/etc/localtime @@ -0,0 +1 @@ +/usr/share/zoneinfo/UTC \ No newline at end of file diff --git a/releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf b/releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf new file mode 100644 index 0000000..5c008e5 --- /dev/null +++ b/releng/airootfs/etc/mkinitcpio.conf.d/archiso.conf @@ -0,0 +1,3 @@ +HOOKS=(base udev microcode modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) +COMPRESSION="xz" +COMPRESSION_OPTIONS=(-9e) diff --git a/releng/airootfs/etc/mkinitcpio.d/linux.preset b/releng/airootfs/etc/mkinitcpio.d/linux.preset new file mode 100644 index 0000000..8e85205 --- /dev/null +++ b/releng/airootfs/etc/mkinitcpio.d/linux.preset @@ -0,0 +1,8 @@ +# mkinitcpio preset file for the 'linux' package on archiso + +PRESETS=('archiso') + +ALL_kver='/boot/vmlinuz-linux' +archiso_config='/etc/mkinitcpio.conf.d/archiso.conf' + +archiso_image="/boot/initramfs-linux.img" diff --git a/releng/airootfs/etc/modprobe.d/broadcom-wl.conf b/releng/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 0000000..d57bc07 --- /dev/null +++ b/releng/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -0,0 +1,11 @@ +# The broadcom-wl package requires some modules to be disabled in order to use +# wl. Since the ISO image needs to cover many hardware cases, this file +# overrides the default blacklist in /usr/lib/modprobe.d/ +# +# If you need to use wl, you may need to delete this file, then `rmmod` any +# already-loaded modules that are now blacklisted before proceeding to modprobe +# wl itself. + +blacklist b43 +blacklist bcma +blacklist ssb \ No newline at end of file diff --git a/releng/airootfs/etc/motd b/releng/airootfs/etc/motd new file mode 100644 index 0000000..4d9eda1 --- /dev/null +++ b/releng/airootfs/etc/motd @@ -0,0 +1,11 @@ +To install Arch Linux follow the installation guide: +https://wiki.archlinux.org/title/Installation_guide + +For Wi-Fi, authenticate to the wireless network using the iwctl utility. +For mobile broadband (WWAN) modems, connect with the mmcli utility. +Ethernet, WLAN and WWAN interfaces using DHCP should work automatically. + +After connecting to the internet, the installation guide can be accessed +via the convenience script Installation_guide. + +                                           diff --git a/releng/airootfs/etc/os-release b/releng/airootfs/etc/os-release new file mode 100644 index 0000000..4728aeb --- /dev/null +++ b/releng/airootfs/etc/os-release @@ -0,0 +1,11 @@ +NAME="RaveOS" +PRETTY_NAME="RaveOS" +ID=arch +BUILD_ID=rolling +ANSI_COLOR="38;2;23;147;209" +HOME_URL="https://rp1.hu" +DOCUMENTATION_URL="https://rp1.hu/" +SUPPORT_URL="https://rp1.hu/" +BUG_REPORT_URL="https://git.rp1.hu" +PRIVACY_POLICY_URL="https://git.rp1.hu" +LOGO=raveos-logo diff --git a/releng/airootfs/etc/pacman.conf b/releng/airootfs/etc/pacman.conf new file mode 100644 index 0000000..9ba30ee --- /dev/null +++ b/releng/airootfs/etc/pacman.conf @@ -0,0 +1,108 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = linux-cachyos linux-cachyos-headers gnome-session gnome-console gedit gnome-disk-utility gnome-system-monitor eog gnome-calculator baobab gnome-control-center gnome-tweaks gnome-browser-connector gnome-settings-daemon nautilus gnome-shell-extensions mutter +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +# We cannot check disk space from within a chroot environment +#CheckSpace +#VerbosePkgLists +ILoveCandy +ParallelDownloads = 5 +#DownloadUser = alpm +#DisableSandbox + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[core-testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +[raveos-core-repo] +SigLevel = Never TrustAll +Server = https://page.rp1.hu/x86_64/ + +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist diff --git a/releng/airootfs/etc/pacman.d/chaotic-mirrorlist b/releng/airootfs/etc/pacman.d/chaotic-mirrorlist new file mode 100644 index 0000000..283a314 --- /dev/null +++ b/releng/airootfs/etc/pacman.d/chaotic-mirrorlist @@ -0,0 +1,349 @@ +# Mirrorlist for Chaotic-AUR (https://aur.chaotic.cx/) + +# This file contains 3 different types of mirrors: +# 1. Virtual mirrors: These mirrors do not refer to any specific mirror or region of the world +# * geo-mirror.chaotic.cx: Automatically routes to the geographically closest up-to-date mirror based on IP address. +# * random-mirror.chaotic.cx: Automatically routes to a random (but semi-persistent) up-to-date mirror. +# 2. Country mirrors: Any requests made to these mirrors will be routed to an up-to-date mirror located in the specific country. +# * If your machine is located in the same country as the country mirror in question, the closest mirror in that country will be used. +# * If your machine is located in a different country than the country mirror, a random (but semi-persistent) mirror in that country will be used. +# * Common format: [country code]-mirror.chaotic.cx +# 3. Regular mirrors: These refer to specific mirrors and do not automatically route to any other mirror. +# * If the mirror is out of date or offline, the mirror will return an appropriate error code. Pacman will skip it automatically. +# * Common format: [country code]-[number]-mirror.chaotic.cx (but there are exceptions to this format) + +# Most of these mirrors are disabled by default. The topmost mirror will be the default mirror. The rest will be fallbacks. +# Uncomment+move the mirrors to your desire. By default, geo-mirror, cdn-mirror and a few country mirrors are enabled, +# to allow for a reasonable number of fallbacks while keeping the defaults short. Have fun! + +## Geo mirror (virtual) +# Automatic routing to the geographically closest mirror (default) +Server = https://geo-mirror.chaotic.cx/$repo/$arch + +## CDN mirror (regular) +# Global +# * By: Garuda Linux donators, hosted on Cloudflare R2 +Server = https://cdn-mirror.chaotic.cx/$repo/$arch + + +## --- Country mirrors --- + +# Argentina (AR) +#Server = https://ar-mirror.chaotic.cx/$repo/$arch + +# Australia (AU) +#Server = https://au-mirror.chaotic.cx/$repo/$arch + +# Brazil (BR) +Server = https://br-mirror.chaotic.cx/$repo/$arch + +# Canada (CA) +#Server = https://ca-mirror.chaotic.cx/$repo/$arch + +# Chile (CL) +#Server = https://cl-mirror.chaotic.cx/$repo/$arch + +# Colombia (CO) +#Server = https://co-mirror.chaotic.cx/$repo/$arch + +# France (FR) +#Server = https://fr-mirror.chaotic.cx/$repo/$arch + +# Germany (DE) +Server = https://de-mirror.chaotic.cx/$repo/$arch + +# Greece (GR) +#Server = https://gr-mirror.chaotic.cx/$repo/$arch + +# Hong Kong (HK) +#Server = https://hk-mirror.chaotic.cx/$repo/$arch + +# India (IN) +Server = https://in-mirror.chaotic.cx/$repo/$arch + +# Indonesia (ID) +#Server = https://id-mirror.chaotic.cx/$repo/$arch + +# Israel (IL) +#Server = https://il-mirror.chaotic.cx/$repo/$arch + +# Italy (IT) +#Server = https://it-mirror.chaotic.cx/$repo/$arch + +# Japan (JP) +#Server = https://jp-mirror.chaotic.cx/$repo/$arch + +# Mexico (MX) +#Server = https://mx-mirror.chaotic.cx/$repo/$arch + +# Netherlands (NL) +#Server = https://nl-mirror.chaotic.cx/$repo/$arch + +# New Zealand (NZ) +#Server = https://nz-mirror.chaotic.cx/$repo/$arch + +# Nigeria (NG) +#Server = https://ng-mirror.chaotic.cx/$repo/$arch + +# Peru (PE) +#Server = https://pe-mirror.chaotic.cx/$repo/$arch + +# Poland (PL) +#Server = https://pl-mirror.chaotic.cx/$repo/$arch + +# Russia (RU) +#Server = https://ru-mirror.chaotic.cx/$repo/$arch + +# Saudi Arabia (SA) +#Server = https://sa-mirror.chaotic.cx/$repo/$arch + +# Singapore (SG) +#Server = https://sg-mirror.chaotic.cx/$repo/$arch + +# South Africa (ZA) +#Server = https://za-mirror.chaotic.cx/$repo/$arch + +# South Korea (KR) +#Server = https://kr-mirror.chaotic.cx/$repo/$arch + +# Spain (ES) +#Server = https://es-mirror.chaotic.cx/$repo/$arch + +# Sweden (SE) +#Server = https://se-mirror.chaotic.cx/$repo/$arch + +# Switzerland (CH) +#Server = https://ch-mirror.chaotic.cx/$repo/$arch + +# Taiwan (TW) +#Server = https://tw-mirror.chaotic.cx/$repo/$arch + +# Thailand (TH) +#Server = https://th-mirror.chaotic.cx/$repo/$arch + +# United Arab Emirates (AE) +#Server = https://ae-mirror.chaotic.cx/$repo/$arch + +# United Kingdom (GB) +#Server = https://gb-mirror.chaotic.cx/$repo/$arch + +# United States of America (US) +Server = https://us-mirror.chaotic.cx/$repo/$arch + +# Vietnam (VN) +#Server = https://vn-mirror.chaotic.cx/$repo/$arch + + +## --- Regular mirrors --- + +# Argentina (AR) +# * By: a0xz +#Server = https://ar-1-mirror.chaotic.cx/$repo/$arch + +# Australia (AU) +# * By: a0xz +#Server = https://au-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://au-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://au-3-mirror.chaotic.cx/$repo/$arch + +# Brazil (BR) +# * By: Universidade Federal de São Carlos (São Carlos) +#Server = https://br-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://br-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://br-3-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://br-4-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://br-5-mirror.chaotic.cx/$repo/$arch + +# Canada (CA) +# * By: All Things Linux +#Server = https://ca-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://ca-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://ca-3-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://ca-4-mirror.chaotic.cx/$repo/$arch + +# Chile (CL) +# * By: Jonathan Gutiérrez +#Server = https://cl-1-mirror.chaotic.cx/$repo/$arch +# * By: Jonathan Gutiérrez +#Server = https://cl-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://cl-3-mirror.chaotic.cx/$repo/$arch + +# Colombia (CO) +# * By: Eduard Tolosa +#Server = https://co-1-mirror.chaotic.cx/$repo/$arch + +# France (FR) +# * By: a0xz +#Server = https://fr-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://fr-2-mirror.chaotic.cx/$repo/$arch + +# Germany (DE) +# * By: Nico +#Server = https://de-2-mirror.chaotic.cx/$repo/$arch +# * By: redgloboli +#Server = https://de-4-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://de-1-mirror.chaotic.cx/$repo/$arch + +# Greece (GR) +# * By: vmmaniac +#Server = https://gr-1-mirror.chaotic.cx/$repo/$arch + +# Hong Kong (HK) +# * By: a0xz +#Server = https://hk-1-mirror.chaotic.cx/$repo/$arch + +# India (IN) +# * By: Albony +#Server = https://in-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://in-3-mirror.chaotic.cx/$repo/$arch +# * By: Albony (Chennai) +#Server = https://in-4-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://in-5-mirror.chaotic.cx/$repo/$arch + +# Indonesia (ID) +# * By: a0xz +#Server = https://id-1-mirror.chaotic.cx/$repo/$arch + +# Israel (IL) +# * By: a0xz +#Server = https://il-1-mirror.chaotic.cx/$repo/$arch + +# Italy (IT) +# * By: a0xz +#Server = https://it-1-mirror.chaotic.cx/$repo/$arch + +# Japan (JP) +# * By: a0xz +#Server = https://jp-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://jp-2-mirror.chaotic.cx/$repo/$arch + +# Mexico (MX) +# * By: a0xz +#Server = https://mx-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://mx-2-mirror.chaotic.cx/$repo/$arch + +# Netherlands (NL) +# * By: a0xz +#Server = https://nl-1-mirror.chaotic.cx/$repo/$arch + +# New Zealand (NZ) +# * By: a0xz +#Server = https://nz-1-mirror.chaotic.cx/$repo/$arch + +# Nigeria (NG) +# * By: a0xz +#Server = https://ng-1-mirror.chaotic.cx/$repo/$arch + +# Peru (PE) +# * By: a0xz +#Server = https://pe-1-mirror.chaotic.cx/$repo/$arch + +# Poland (PL) +# * By: a0xz +#Server = https://pl-1-mirror.chaotic.cx/$repo/$arch + +# Russia (RU) +# * By: Котпро203 +#Server = https://ru-1-mirror.chaotic.cx/$repo/$arch + +# Saudi Arabia (SA) +# * By: a0xz +#Server = https://sa-1-mirror.chaotic.cx/$repo/$arch + +# Singapore (SG) +# * By: freedif.org (City state) +#Server = https://sg-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://sg-2-mirror.chaotic.cx/$repo/$arch + +# South Africa (ZA) +# * By: a0xz +#Server = https://za-1-mirror.chaotic.cx/$repo/$arch + +# South Korea (KR) +# * By: (Seoul) +#Server = https://kr-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://kr-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://kr-3-mirror.chaotic.cx/$repo/$arch + +# Spain (ES) +# * By: JKANetwork +#Server = https://es-1-mirror.chaotic.cx/$repo/$arch +# * By: Ícar +#Server = https://es-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://es-3-mirror.chaotic.cx/$repo/$arch + +# Sweden (SE) +# * By: Academic Computer Club in Umeå (accum.se) +#Server = https://se-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://se-2-mirror.chaotic.cx/$repo/$arch + +# Switzerland (CH) +# * By: a0xz +#Server = https://ch-1-mirror.chaotic.cx/$repo/$arch + +# Taiwan (TW) +# * By: a0xz +#Server = https://tw-1-mirror.chaotic.cx/$repo/$arch + +# Thailand (TH) +# * By: a0xz +#Server = https://th-1-mirror.chaotic.cx/$repo/$arch + +# United Arab Emirates (AE) +# * By: a0xz +#Server = https://ae-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://ae-2-mirror.chaotic.cx/$repo/$arch + +# United Kingdom (GB) +# * By: Wilbur +#Server = https://gb-1-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://gb-2-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://gb-3-mirror.chaotic.cx/$repo/$arch + +# United States of America (US) +# * By: Technetium1 +#Server = https://us-mi-mirror.chaotic.cx/$repo/$arch +# * By: ash +#Server = https://us-ut-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-hi-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-nv-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-fl-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-ny-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-az-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-or-mirror.chaotic.cx/$repo/$arch +# * By: a0xz +#Server = https://us-ca-mirror.chaotic.cx/$repo/$arch + +# Vietnam (VN) +# * By: +#Server = https://vn-1-mirror.chaotic.cx/$repo/$arch diff --git a/releng/airootfs/etc/pacman.d/hooks/reflector-mirrorlist.hook b/releng/airootfs/etc/pacman.d/hooks/reflector-mirrorlist.hook new file mode 100644 index 0000000..312c41e --- /dev/null +++ b/releng/airootfs/etc/pacman.d/hooks/reflector-mirrorlist.hook @@ -0,0 +1,11 @@ +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = pacman-mirrorlist + +[Action] +Description = Updating mirrorlist with reflector (Hungary)... +When = PostTransaction +Depends = reflector +Exec = /usr/bin/reflector -c HU --protocol https --sort rate --latest 20 --download-timeout 5 --threads 20 --save /etc/pacman.d/mirrorlist diff --git a/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook new file mode 100644 index 0000000..8dfb943 --- /dev/null +++ b/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook @@ -0,0 +1,18 @@ +# remove from airootfs! +# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process. +# If not, they would be used when pacstrap is run in the live environment. + +[Trigger] +Operation = Install +Operation = Upgrade +Operation = Remove +Type = Package +Target = * + +[Action] +Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build... +When = PostTransaction +Depends = sh +Depends = coreutils +Depends = grep +Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)" diff --git a/releng/airootfs/etc/pacman.d/mirrorlist b/releng/airootfs/etc/pacman.d/mirrorlist new file mode 100644 index 0000000..71078e6 --- /dev/null +++ b/releng/airootfs/etc/pacman.d/mirrorlist @@ -0,0 +1,111 @@ + + +## France +Server = http://mirror.trap.moe/archlinux/$repo/os/$arch +Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch +Server = http://archlinux.mailtunnel.eu/$repo/os/$arch +Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch +Server = https://archlinux.mailtunnel.eu/$repo/os/$arch +Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch +Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch +Server = http://fr.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = https://fr.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = https://f.matthieul.dev/mirror/archlinux/$repo/os/$arch +Server = http://f.matthieul.dev/mirror/archlinux/$repo/os/$arch +Server = https://mirror.trap.moe/archlinux/$repo/os/$arch +Server = https://mirror.peeres-telecom.fr/archlinux/$repo/os/$arch +Server = https://mirrors.jtremesay.org/archlinux/$repo/os/$arch +Server = http://mirror.peeres-telecom.fr/archlinux/$repo/os/$arch +Server = http://archlinux.datagr.am/$repo/os/$arch +Server = https://arch.syxpi.fr/arch/$repo/os/$arch +Server = http://archmirror.hogwarts.fr/$repo/os/$arch +Server = http://arch.yourlabs.org/$repo/os/$arch +Server = http://mirror.oldsql.cc/archlinux/$repo/os/$arch +Server = https://mirror.rznet.fr/archlinux/$repo/os/$arch +Server = http://mirror.rznet.fr/archlinux/$repo/os/$arch +Server = https://arch.yourlabs.org/$repo/os/$arch +Server = https://mirror.oldsql.cc/archlinux/$repo/os/$arch +Server = https://mirror.thekinrar.fr/archlinux/$repo/os/$arch +Server = http://mirror.bakertelekom.fr/Arch/$repo/os/$arch +Server = https://mirror.bakertelekom.fr/Arch/$repo/os/$arch +Server = http://arch.syxpi.fr/arch/$repo/os/$arch +Server = https://archmirror.hogwarts.fr/$repo/os/$arch +Server = https://mirror.smayzy.ovh/archlinux/$repo/os/$arch +Server = http://mirror.lastmikoi.net/archlinux/$repo/os/$arch +Server = https://mirrors.eric.ovh/arch/$repo/os/$arch +Server = http://mir.archlinux.fr/$repo/os/$arch +Server = http://mirrors.gandi.net/archlinux/$repo/os/$arch +Server = https://mirrors.gandi.net/archlinux/$repo/os/$arch +Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch +Server = http://mirror.its-tps.fr/archlinux/$repo/os/$arch +Server = https://mirror.its-tps.fr/archlinux/$repo/os/$arch +Server = https://mirror.wormhole.eu/archlinux/$repo/os/$arch +Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch +Server = https://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch +Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch +Server = https://elda.asgardius.company/archlinux/$repo/os/$arch + + +## Netherlands +Server = http://ams.nl.mirrors.bjg.at/arch/$repo/os/$arch +Server = https://ams.nl.mirrors.bjg.at/arch/$repo/os/$arch +Server = http://ftp.nluug.nl/os/Linux/distr/archlinux/$repo/os/$arch +Server = https://nl.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = http://nl.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = http://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch +Server = https://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch +Server = http://mirror.nl.cdn-perfprod.com/archlinux/$repo/os/$arch +Server = http://ftp.snt.utwente.nl/pub/os/linux/archlinux/$repo/os/$arch +Server = http://mirror.cj2.nl/archlinux/$repo/os/$arch +Server = https://mirror.nl.cdn-perfprod.com/archlinux/$repo/os/$arch +Server = https://mirror.cj2.nl/archlinux/$repo/os/$arch +Server = http://archlinux.mirror.wearetriple.com/$repo/os/$arch +Server = https://archlinux.mirror.wearetriple.com/$repo/os/$arch +Server = http://mirrors.xtom.nl/archlinux/$repo/os/$arch +Server = https://mirrors.xtom.nl/archlinux/$repo/os/$arch +Server = http://mirror.bouwhuis.network/archlinux/$repo/os/$arch +Server = https://mirror.bouwhuis.network/archlinux/$repo/os/$arch +Server = https://nl.mirror.flokinet.net/archlinux/$repo/os/$arch +Server = http://nl.mirror.flokinet.net/archlinux/$repo/os/$arch +Server = http://arch.mirrors.lavatech.top/$repo/os/$arch +Server = http://mirror.koddos.net/archlinux/$repo/os/$arch +Server = https://mirror.mijn.host/archlinux/$repo/os/$arch +Server = http://mirror.mijn.host/archlinux/$repo/os/$arch +Server = https://mirror.koddos.net/archlinux/$repo/os/$arch +Server = https://arch.mirrors.lavatech.top/$repo/os/$arch +Server = https://archlinux.mirror.liteserver.nl/$repo/os/$arch +Server = http://archlinux.mirror.liteserver.nl/$repo/os/$arch +Server = http://mirror.lyrahosting.com/archlinux/$repo/os/$arch +Server = https://mirror.lyrahosting.com/archlinux/$repo/os/$arch +Server = https://mirror.iusearchbtw.nl/$repo/os/$arch +Server = http://mirrors.evoluso.com/archlinux/$repo/os/$arch +Server = http://mirror.serverion.com/archlinux/$repo/os/$arch +Server = https://mirror.serverion.com/archlinux/$repo/os/$arch + + +## United Kingdom +Server = https://london.mirror.pkgbuild.com/$repo/os/$arch +Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch +Server = http://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch +Server = https://repo.c48.uk/arch/$repo/os/$arch +Server = https://uk.repo.c48.uk/arch/$repo/os/$arch +Server = https://gb.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = http://gb.mirrors.cicku.me/archlinux/$repo/os/$arch +Server = http://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch +Server = https://mirror.server.net/archlinux/$repo/os/$arch +Server = http://mirror.server.net/archlinux/$repo/os/$arch +Server = https://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch +Server = https://repo.slithery.uk/$repo/os/$arch +Server = http://mirror.netweaver.uk/archlinux/$repo/os/$arch +Server = https://mirror.netweaver.uk/archlinux/$repo/os/$arch +Server = https://mirror.st2projects.com/archlinux/$repo/os/$arch +Server = http://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch +Server = https://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch +Server = https://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch +Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch +Server = http://mirror.marcusn.net/archlinux/$repo/os/$arch +Server = https://mirror.marcusn.net/archlinux/$repo/os/$arch +Server = http://mirror.cov.ukservers.com/archlinux/$repo/os/$arch +Server = https://mirror.cov.ukservers.com/archlinux/$repo/os/$arch +Server = https://lon.mirror.rackspace.com/archlinux/$repo/os/$arch +Server = http://lon.mirror.rackspace.com/archlinux/$repo/os/$arch diff --git a/releng/airootfs/etc/passwd b/releng/airootfs/etc/passwd new file mode 100644 index 0000000..e997f05 --- /dev/null +++ b/releng/airootfs/etc/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/usr/bin/zsh +raveos:x:1000:1000::/home/raveos:/usr/bin/bash diff --git a/releng/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules b/releng/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules new file mode 100644 index 0000000..cca8039 --- /dev/null +++ b/releng/airootfs/etc/polkit-1/rules.d/49-nopasswd_global.rules @@ -0,0 +1,8 @@ +/* Allow members of the wheel group to execute any actions + * without password authentication, similar to "sudo NOPASSWD:" + */ +polkit.addRule(function(action, subject) { + if (subject.isInGroup("wheel")) { + return polkit.Result.YES; + } +}); diff --git a/releng/airootfs/etc/profile.d/autostart.sh b/releng/airootfs/etc/profile.d/autostart.sh new file mode 100755 index 0000000..1dfb4a5 --- /dev/null +++ b/releng/airootfs/etc/profile.d/autostart.sh @@ -0,0 +1,4 @@ +#!/bin/bash +if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then + startx +fi diff --git a/releng/airootfs/etc/profile.d/raveos-fastfetch.sh b/releng/airootfs/etc/profile.d/raveos-fastfetch.sh new file mode 100644 index 0000000..c97dc67 --- /dev/null +++ b/releng/airootfs/etc/profile.d/raveos-fastfetch.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# RaveOS terminal greeting +# Guard: prevent double execution (login shell profile.d + .bashrc) +[[ -n "$_RAVEOS_GREETING_DONE" ]] && return 2>/dev/null +_RAVEOS_GREETING_DONE=1 + +if command -v fastfetch &>/dev/null; then + if [[ "$TERM" == "xterm-kitty" ]]; then + _rows=$(tput lines 2>/dev/null || echo 40) + _logo_h=$(( _rows * 40 / 100 )) + (( _logo_h < 8 )) && _logo_h=8 + (( _logo_h > 24 )) && _logo_h=24 + fastfetch --config ~/.config/fastfetch/config-kitty.jsonc --logo-height "$_logo_h" + unset _rows _logo_h + else + fastfetch + fi +fi diff --git a/releng/airootfs/etc/resolv.conf b/releng/airootfs/etc/resolv.conf new file mode 100644 index 0000000..8dda3fc --- /dev/null +++ b/releng/airootfs/etc/resolv.conf @@ -0,0 +1 @@ +nameserver 1.1.1.1 diff --git a/releng/airootfs/etc/shadow b/releng/airootfs/etc/shadow new file mode 100644 index 0000000..824230b --- /dev/null +++ b/releng/airootfs/etc/shadow @@ -0,0 +1,2 @@ +root::14871:::::: +raveos:$6$jcfVB0VnKJYxHo7t$j/U9j8Civmx0O9f/mb1.nzw.BZLISLEKS.QwgOXNKWGpkLVisvP5Zfs4lcuzXglZBUAxj9oknnPBiCZOIgd25.:14871:::::: diff --git a/releng/airootfs/etc/skel/.bashrc b/releng/airootfs/etc/skel/.bashrc new file mode 100644 index 0000000..2d2fb5e --- /dev/null +++ b/releng/airootfs/etc/skel/.bashrc @@ -0,0 +1,16 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +alias ls='ls --color=auto' +alias grep='grep --color=auto' +PS1='[\u@\h \W]\$ ' + +# >>> RaveOS terminal greeting >>> +if [[ -f /etc/profile.d/raveos-fastfetch.sh ]]; then + source /etc/profile.d/raveos-fastfetch.sh +fi +# <<< RaveOS terminal greeting <<< diff --git a/releng/airootfs/etc/skel/.config/fastfetch/config-kitty.jsonc b/releng/airootfs/etc/skel/.config/fastfetch/config-kitty.jsonc new file mode 100644 index 0000000..d99f7a7 --- /dev/null +++ b/releng/airootfs/etc/skel/.config/fastfetch/config-kitty.jsonc @@ -0,0 +1,43 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/fastfetch/raveos-logo.png", + "type": "kitty-direct", + "height": 16, + "padding": { + "top": 1, + "left": 2, + "right": 2 + } + }, + "display": { + "separator": " → ", + "color": { + "keys": "green", + "title": "cyan" + } + }, + "modules": [ + { "type": "custom", "format": "\u001b[1;32mRaveOS \u001b[0;36m" }, + "separator", + { "type": "os", "key": "OS" }, + { "type": "kernel", "key": "Kernel" }, + { "type": "uptime", "key": "Uptime" }, + { "type": "packages", "key": "Packages" }, + { "type": "shell", "key": "Shell" }, + { "type": "de", "key": "DE" }, + { "type": "wm", "key": "WM" }, + { "type": "terminal", "key": "Terminal" }, + "separator", + { "type": "cpu", "key": "CPU" }, + { "type": "gpu", "key": "GPU" }, + { "type": "memory", "key": "RAM" }, + { "type": "disk", "key": "Disk", "folders": "/" }, + "separator", + { "type": "display", "key": "Display" }, + { "type": "theme", "key": "Theme" }, + { "type": "icons", "key": "Icons" }, + "break", + "colors" + ] +} diff --git a/releng/airootfs/etc/skel/.config/fastfetch/config.jsonc b/releng/airootfs/etc/skel/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..f5f842d --- /dev/null +++ b/releng/airootfs/etc/skel/.config/fastfetch/config.jsonc @@ -0,0 +1,93 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/fastfetch/raveos-logo.txt", + "type": "file", + "color": { + "1": "green", + "2": "36", + "3": "white" + }, + "padding": { + "top": 1, + "left": 2, + "right": 3 + } + }, + "display": { + "separator": " → ", + "color": { + "keys": "green", + "title": "cyan" + } + }, + "modules": [ + "title", + "separator", + { + "type": "os", + "key": "OS" + }, + { + "type": "kernel", + "key": "Kernel" + }, + { + "type": "uptime", + "key": "Uptime" + }, + { + "type": "packages", + "key": "Packages" + }, + { + "type": "shell", + "key": "Shell" + }, + { + "type": "de", + "key": "DE" + }, + { + "type": "wm", + "key": "WM" + }, + { + "type": "terminal", + "key": "Terminal" + }, + "separator", + { + "type": "cpu", + "key": "CPU" + }, + { + "type": "gpu", + "key": "GPU" + }, + { + "type": "memory", + "key": "RAM" + }, + { + "type": "disk", + "key": "Disk", + "folders": "/" + }, + "separator", + { + "type": "display", + "key": "Display" + }, + { + "type": "theme", + "key": "Theme" + }, + { + "type": "icons", + "key": "Icons" + }, + "break", + "colors" + ] +} diff --git a/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.png b/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.png new file mode 100644 index 0000000..93ebb33 Binary files /dev/null and b/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.png differ diff --git a/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.txt b/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.txt new file mode 100644 index 0000000..41f87e2 --- /dev/null +++ b/releng/airootfs/etc/skel/.config/fastfetch/raveos-logo.txt @@ -0,0 +1,19 @@ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⢠⡀⠀⠀⠀⠀⠀⠀⡀⠀⣰⣾⣿⣿⣷⣄⠀⣠⠀⠀⠀⠀⠀⠀⢀⠄⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠙⣦⣄⡀⠠⡀⠀⣿⡆⠙⣿⣿⣿⡿⠃⢰⣧⠀⣀⠄⢀⣤⡴⠋⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⣀⠀⠑⢮⣙⠛⠂⠙⠀⡅⣹⣄⢸⣿⣿⡇⣠⡏⠁⠈⠉⠐⠟⣉⡵⠊⠀⣠⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠄⢈⣃⡀⠐⠿⣷⣦⣀⢰⣼⣈⣿⣾⣿⣿⣿⣿⢁⣥⡆⣠⣴⣾⠿⠂⢀⣀⠁⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠠⠤⠬⠿⠿⠷⠌⠻⢿⢷⡝⢿⣿⡌⣿⡿⢱⣿⡿⢫⡾⠿⠟⠡⠾⠿⠯⠥⠤⠄⠀⠀⠀⠀ +⠀⠀⠀⠙⠂⠈⠀⠀⠄⠀⠉⠀⠐⠶⢷⣦⣬⡁⠏⠷⢈⣥⣴⠿⠶⠂⠀⠉⠁⠀⠀⠀⠁⠘⠊⠂⠀⠀ +⠀⠀⠀⠀⢀⠄⢠⣴⣶⠀⠀⠀⢀⡀⠀⠉⠙⠃⣠⡄⠘⠉⠁⠀⢀⡀⠀⠀⢠⣶⣦⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⣠⠤⠌⠁⣩⣿⣇⡀⠢⣜⣛⠛⠀⠀⡴⢫⡝⣄⠀⠀⠛⢛⡡⠔⢀⣼⣯⣅⠈⠁⠤⡄⠀⠀⠀ +⠀⠀⠀⢀⡠⢴⠾⠉⢉⣿⣿⣷⣶⣭⣶⣾⡟⣱⣿⣿⡜⢻⣶⣦⣥⣶⣾⣿⣯⡉⠉⠷⡤⢄⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⢀⡴⠂⢚⠟⢉⣾⠿⠛⢙⠉⣠⠈⢹⠇⠁⣄⢈⠋⠛⠿⣷⡉⠿⡓⡐⢦⡀⠀⠁⠀⠀⠀ +⠀⠀⠀⠀⠀⠒⢉⣵⣿⣷⣧⠆⢂⠶⢿⡽⠛⠰⣦⣴⠀⠛⣯⠿⡢⡐⠲⣽⣼⣿⣮⡙⠓⠀⠀⠄⠀⠀ +⠀⠀⢀⣴⠷⠂⣾⣿⠿⠛⣡⣾⡤⠀⠘⠁⢰⣴⣿⣿⣤⠀⠈⠃⠀⢤⣶⣌⠻⢿⣿⣧⠐⠾⣦⡀⠀⠀ +⠀⠀⠀⠀⠀⠘⠉⠀⢠⣼⠏⠋⣠⢠⡄⢀⠻⠉⣿⡿⠈⠟⡄⢰⡀⡀⠻⠹⣦⡀⠀⠉⠃⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠂⠀⠁⠀⡄⡿⠀⢣⠀⠀⠐⡌⢡⠀⠈⢀⡌⠈⢧⠂⠀⠈⠀⠑⠀⠀⠀⠀⠀⠀⠀ +⢠⣤⣤⣤⣤⣄⣰⢠⣤⣴⣦⠟⣥⣦⣀⢳⣦⡆⣴⣦⣶⣴⣾⣄⠀⢈⣷⣶⣶⣦⣄⣄⣠⣴⣶⣦⣤⠀ +⢸⣿⣧⣤⣽⡿⢁⣿⣟⣹⣿⡄⠘⣿⣿⣾⡿⠀⣿⣿⣶⣶⣾⠋⠀⢾⣿⡍⠁⢹⣿⡎⠿⠷⠶⣶⣭⡀ +⠸⣿⠇⠙⢿⡦⢼⡿⠛⠛⢿⣷⠀⠹⣿⡿⠁⠀⢿⣿⣶⣶⣶⠆⠀⠘⠿⢷⣶⠿⠟⠀⠿⢿⣶⡾⠿⠃ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ diff --git a/releng/airootfs/etc/ssh/sshd_config.d/10-archiso.conf b/releng/airootfs/etc/ssh/sshd_config.d/10-archiso.conf new file mode 100644 index 0000000..6ea7b41 --- /dev/null +++ b/releng/airootfs/etc/ssh/sshd_config.d/10-archiso.conf @@ -0,0 +1,3 @@ +# Allow root login using password authentication +PasswordAuthentication yes +PermitRootLogin yes diff --git a/releng/airootfs/etc/sudoers b/releng/airootfs/etc/sudoers new file mode 100644 index 0000000..faf0e3f --- /dev/null +++ b/releng/airootfs/etc/sudoers @@ -0,0 +1,139 @@ +## sudoers file. +## +## This file MUST be edited with the 'visudo' command as root. +## Failure to use 'visudo' may result in syntax or file permission errors +## that prevent sudo from running. +## +## See the sudoers man page for the details on how to write a sudoers file. +## + +## +## Host alias specification +## +## Groups of machines. These may include host names (optionally with wildcards), +## IP addresses, network numbers or netgroups. +# Host_Alias WEBSERVERS = www1, www2, www3 + +## +## User alias specification +## +## Groups of users. These may consist of user names, uids, Unix groups, +## or netgroups. +# User_Alias ADMINS = millert, dowdy, mikef + +## +## Cmnd alias specification +## +## Groups of commands. Often used to group related commands together. +# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \ +# /usr/bin/pkill, /usr/bin/top +# +# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff +# +# Cmnd_Alias DEBUGGERS = /usr/bin/gdb, /usr/bin/lldb, /usr/bin/strace, \ +# /usr/bin/truss, /usr/bin/bpftrace, \ +# /usr/bin/dtrace, /usr/bin/dtruss +# +# Cmnd_Alias PKGMAN = /usr/bin/apt, /usr/bin/dpkg, /usr/bin/rpm, \ +# /usr/bin/yum, /usr/bin/dnf, /usr/bin/zypper, \ +# /usr/bin/pacman + +## +## Defaults specification +## +## Preserve editor environment variables for visudo. +## To preserve these for all commands, remove the "!visudo" qualifier. +Defaults!/usr/bin/visudo env_keep += "SUDO_EDITOR EDITOR VISUAL" +## +## Use a hard-coded PATH instead of the user's to find commands. +## This also helps prevent poorly written scripts from running +## arbitrary commands under sudo. +Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/bin" +## +## You may wish to keep some of the following environment variables +## when running commands via sudo. +## +## Locale settings +# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET" +## +## Run X applications through sudo; HOME is used to find the +## .Xauthority file. Note that other programs use HOME to find +## configuration files and this may lead to privilege escalation! +# Defaults env_keep += "HOME" +## +## X11 resource path settings +# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH" +## +## Desktop path settings +# Defaults env_keep += "QTDIR KDEDIR" +## +## Allow sudo-run commands to inherit the callers' ConsoleKit session +# Defaults env_keep += "XDG_SESSION_COOKIE" +## +## Uncomment to enable special input methods. Care should be taken as +## this may allow users to subvert the command being run via sudo. +# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER" +## +## Uncomment to disable "use_pty" when running commands as root. +## Commands run as non-root users will run in a pseudo-terminal, +## not the user's own terminal, to prevent command injection. +# Defaults>root !use_pty +## +## Uncomment to run commands in the background by default. +## This can be used to prevent sudo from consuming user input while +## a non-interactive command runs if "use_pty" or I/O logging are +## enabled. Some commands may not run properly in the background. +# Defaults exec_background +## +## Uncomment to send mail if the user does not enter the correct password. +# Defaults mail_badpass +## +## Uncomment to enable logging of a command's output, except for +## sudoreplay and reboot. Use sudoreplay to play back logged sessions. +## Sudo will create up to 2,176,782,336 I/O logs before recycling them. +## Set maxseq to a smaller number if you don't have unlimited disk space. +# Defaults log_output +# Defaults!/usr/bin/sudoreplay !log_output +# Defaults!/usr/local/bin/sudoreplay !log_output +# Defaults!REBOOT !log_output +# Defaults maxseq = 1000 +## +## Uncomment to disable intercept and log_subcmds for debuggers and +## tracers. Otherwise, anything that uses ptrace(2) will be unable +## to run under sudo if intercept_type is set to "trace". +# Defaults!DEBUGGERS !intercept, !log_subcmds +## +## Uncomment to disable intercept and log_subcmds for package managers. +## Some package scripts run a huge number of commands, which is made +## slower by these options and also can clutter up the logs. +# Defaults!PKGMAN !intercept, !log_subcmds +## +## Uncomment to disable PAM silent mode. Otherwise messages by PAM +## modules such as pam_faillock will not be printed. +# Defaults !pam_silent + +## +## Runas alias specification +## + +## +## User privilege specification +## +root ALL=(ALL:ALL) ALL + +## Uncomment to allow members of group wheel to execute any command +%wheel ALL=(ALL:ALL) ALL + +## Same thing without a password +# %wheel ALL=(ALL:ALL) NOPASSWD: ALL + +## Uncomment to allow members of group sudo to execute any command +# %sudo ALL=(ALL:ALL) ALL + +## Uncomment to allow any user to run sudo if they know the password +## of the user they are running the command as (root by default). +# Defaults targetpw # Ask for the password of the target user +# ALL ALL=(ALL:ALL) ALL # WARNING: only use this together with 'Defaults targetpw' + +## Read drop-in files from /etc/sudoers.d +@includedir /etc/sudoers.d diff --git a/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf new file mode 100644 index 0000000..b69850d --- /dev/null +++ b/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -0,0 +1,2 @@ +[Journal] +Storage=volatile diff --git a/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf new file mode 100644 index 0000000..f3ecb39 --- /dev/null +++ b/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf @@ -0,0 +1,4 @@ +[Login] +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore diff --git a/releng/airootfs/etc/systemd/network/20-ethernet.network b/releng/airootfs/etc/systemd/network/20-ethernet.network new file mode 100644 index 0000000..d3a3271 --- /dev/null +++ b/releng/airootfs/etc/systemd/network/20-ethernet.network @@ -0,0 +1,24 @@ +[Match] +# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). +# See https://bugs.archlinux.org/task/70892 +# Instead match by globbing the network interface name. +Name=en* +Name=eth* + +[Link] +RequiredForOnline=routable + +[Network] +DHCP=yes +MulticastDNS=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=100 + +[IPv6AcceptRA] +RouteMetric=100 diff --git a/releng/airootfs/etc/systemd/network/20-wlan.network.disabled b/releng/airootfs/etc/systemd/network/20-wlan.network.disabled new file mode 100644 index 0000000..8b70a95 --- /dev/null +++ b/releng/airootfs/etc/systemd/network/20-wlan.network.disabled @@ -0,0 +1,20 @@ +[Match] +Name=wl* + +[Link] +RequiredForOnline=routable + +[Network] +DHCP=yes +MulticastDNS=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=600 + +[IPv6AcceptRA] +RouteMetric=600 diff --git a/releng/airootfs/etc/systemd/network/20-wwan.network b/releng/airootfs/etc/systemd/network/20-wwan.network new file mode 100644 index 0000000..6e1c8dd --- /dev/null +++ b/releng/airootfs/etc/systemd/network/20-wwan.network @@ -0,0 +1,19 @@ +[Match] +Name=ww* + +[Link] +RequiredForOnline=routable + +[Network] +DHCP=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# Use values from NetworkManager. From nm_device_get_route_metric_default in +# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c +[DHCPv4] +RouteMetric=700 + +[IPv6AcceptRA] +RouteMetric=700 diff --git a/releng/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf b/releng/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/releng/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf new file mode 100644 index 0000000..636f3bd --- /dev/null +++ b/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for archiso + +[Resolve] +MulticastDNS=yes diff --git a/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/choose-mirror.service b/releng/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..b6a3562 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/choose-mirror.service @@ -0,0 +1,10 @@ +[Unit] +Description=Choose mirror from the kernel command line +ConditionKernelCommandLine=mirror + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service new file mode 120000 index 0000000..ebc50f0 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service new file mode 120000 index 0000000..80fa3c8 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service new file mode 120000 index 0000000..dd8e9f1 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service new file mode 120000 index 0000000..875ff73 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-main.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service new file mode 120000 index 0000000..ae77734 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-network.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service new file mode 120000 index 0000000..4c158e6 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000..038961e --- /dev/null +++ b/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -0,0 +1,8 @@ +[Unit] +Description=Temporary /etc/pacman.d/gnupg directory + +[Mount] +What=tmpfs +Where=/etc/pacman.d/gnupg +Type=tmpfs +Options=mode=0755,noswap diff --git a/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..b9d22eb --- /dev/null +++ b/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 0000000..03db4b9 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -0,0 +1,13 @@ +[Unit] +Description=Unmute All Sound Card Controls For Use With The Live Arch Environment +# This needs to run after the audio device becomes available. +Wants=systemd-udev-settle.service +After=systemd-udev-settle.service sound.target +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/livecd-sound -u + +[Install] +WantedBy=sound.target diff --git a/releng/airootfs/etc/systemd/system/livecd-talk.service b/releng/airootfs/etc/systemd/system/livecd-talk.service new file mode 100644 index 0000000..b38df22 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/livecd-talk.service @@ -0,0 +1,20 @@ +[Unit] +Description=Screen reader service +After=livecd-alsa-unmuter.service +Before=getty@tty1.service +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +TTYPath=/dev/tty13 +ExecStartPre=/usr/bin/chvt 13 +ExecStart=/usr/local/bin/livecd-sound -p +ExecStartPost=/usr/bin/chvt 1 +ExecStartPost=systemctl start espeakup.service +StandardInput=tty +TTYVHangup=yes +TTYVTDisallocate=yes +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service new file mode 120000 index 0000000..e874a9b --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/NetworkManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/NetworkManager.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service new file mode 120000 index 0000000..2d8d256 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service @@ -0,0 +1 @@ +../choose-mirror.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service new file mode 120000 index 0000000..20ac7b2 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service new file mode 120000 index 0000000..a7eac4a --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service new file mode 120000 index 0000000..eae19ef --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service new file mode 120000 index 0000000..3625abd --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/iwd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service new file mode 120000 index 0000000..b917481 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service @@ -0,0 +1 @@ +/etc/systemd/system/livecd-talk.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service new file mode 120000 index 0000000..d09eec6 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service @@ -0,0 +1 @@ +../pacman-init.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector-once.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector-once.service new file mode 120000 index 0000000..d1b7b88 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector-once.service @@ -0,0 +1 @@ +../reflector-once.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service new file mode 120000 index 0000000..d21ebd9 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sshd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service new file mode 120000 index 0000000..cb2d560 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxservice.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service new file mode 120000 index 0000000..e0a11a7 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service new file mode 120000 index 0000000..173f306 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service new file mode 120000 index 0000000..7d6ad92 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/pacman-init.service b/releng/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000..82e0e0f --- /dev/null +++ b/releng/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,16 @@ +[Unit] +Description=Initializes Pacman keyring +Requires=etc-pacman.d-gnupg.mount +Wants=network-online.target +After=etc-pacman.d-gnupg.mount time-sync.target network-online.target +BindsTo=etc-pacman.d-gnupg.mount +Before=archlinux-keyring-wkd-sync.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate + +[Install] +WantedBy=multi-user.target diff --git a/releng/airootfs/etc/systemd/system/reflector-once.service b/releng/airootfs/etc/systemd/system/reflector-once.service new file mode 100644 index 0000000..5a73044 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/reflector-once.service @@ -0,0 +1,11 @@ +[Unit] +Description=Update pacman mirrorlist with reflector +Wants=network-online.target +After=network-online.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/reflector -c HU --protocol https --sort rate --latest 20 --download-timeout 5 --threads 20 --save /etc/pacman.d/mirrorlist + +[Install] +WantedBy=multi-user.target diff --git a/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket new file mode 120000 index 0000000..3897c63 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/pcscd.socket \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket new file mode 120000 index 0000000..51942c8 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service new file mode 120000 index 0000000..98c0fc8 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service @@ -0,0 +1 @@ +../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 0000000..cabf28b --- /dev/null +++ b/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-time-wait-sync.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf new file mode 100644 index 0000000..c9f9bce --- /dev/null +++ b/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -0,0 +1,6 @@ +# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist, +# network-online.target gets needlessly delayed. +# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online +[Service] +ExecStart= +ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any diff --git a/releng/airootfs/etc/systemd/system/wpa_supplicant.service b/releng/airootfs/etc/systemd/system/wpa_supplicant.service new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/releng/airootfs/etc/systemd/system/wpa_supplicant.service @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/releng/airootfs/root/.automated_script.sh b/releng/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..f7f3ced --- /dev/null +++ b/releng/airootfs/root/.automated_script.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +script_cmdline() { + local param + for param in $( + + + + + xterm + + + + + calamares + + + + + + systemctl reboot + + + + diff --git a/releng/airootfs/root/.config/openbox/rc.xml b/releng/airootfs/root/.config/openbox/rc.xml new file mode 100644 index 0000000..6fb7896 --- /dev/null +++ b/releng/airootfs/root/.config/openbox/rc.xml @@ -0,0 +1,46 @@ + + + + Clearlooks + + + Noto Sans + 10 + Bold + Normal + + + + Noto Sans + 10 + Normal + Normal + + + + Noto Sans + 10 + Bold + Normal + + + + Noto Sans + 10 + Normal + Normal + + + + Noto Sans + 10 + Normal + Normal + + + + + no + + + \ No newline at end of file diff --git a/releng/airootfs/root/.gnupg/scdaemon.conf b/releng/airootfs/root/.gnupg/scdaemon.conf new file mode 100644 index 0000000..e1f3d1f --- /dev/null +++ b/releng/airootfs/root/.gnupg/scdaemon.conf @@ -0,0 +1,4 @@ +disable-ccid +disable-pinpad +pcsc-driver /usr/lib/libpcsclite.so +pcsc-shared diff --git a/releng/airootfs/root/.loader.conf b/releng/airootfs/root/.loader.conf new file mode 100755 index 0000000..0ca44c8 --- /dev/null +++ b/releng/airootfs/root/.loader.conf @@ -0,0 +1,4 @@ +default raveos.conf +timeout 3 +editor no + diff --git a/releng/airootfs/root/.xinitrc b/releng/airootfs/root/.xinitrc new file mode 100644 index 0000000..2c21291 --- /dev/null +++ b/releng/airootfs/root/.xinitrc @@ -0,0 +1 @@ +exec openbox-session diff --git a/releng/airootfs/root/.zlogin b/releng/airootfs/root/.zlogin new file mode 100644 index 0000000..bf6bc8f --- /dev/null +++ b/releng/airootfs/root/.zlogin @@ -0,0 +1,6 @@ +# fix for screen readers +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then + setopt SINGLE_LINE_ZLE +fi + +~/.automated_script.sh diff --git a/releng/airootfs/usr/local/bin/Installation_guide b/releng/airootfs/usr/local/bin/Installation_guide new file mode 100755 index 0000000..58b97b0 --- /dev/null +++ b/releng/airootfs/usr/local/bin/Installation_guide @@ -0,0 +1,5 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later + +exec xdg-open 'https://wiki.archlinux.org/title/Installation_guide' diff --git a/releng/airootfs/usr/local/bin/choose-mirror b/releng/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000..d2349de --- /dev/null +++ b/releng/airootfs/usr/local/bin/choose-mirror @@ -0,0 +1,29 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +get_cmdline() { + local param + for param in $(/etc/pacman.d/mirrorlist < +# $2 +# $3 +unmute_and_set_level() { + [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout + systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute + return 0 +} + +# $1 +# $2 +mute_and_zero_level() { + [[ -n "$1" && -n "$2" ]] || bugout + systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute + return 0 +} + +# $1 +# $2 +# $3 "on" | "off" +switch_control() { + [[ -n "$3" && -n "$1" ]] || bugout + systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" + systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" + return 0 +} + +# $1 +sanify_levels_on_card() { + unmute_and_set_level "$1" "Front" "80%" + unmute_and_set_level "$1" "Master" "80%" + unmute_and_set_level "$1" "Master Mono" "80%" + unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B + unmute_and_set_level "$1" "Playback" "80%" + unmute_and_set_level "$1" "Headphone" "100%" + unmute_and_set_level "$1" "PCM" "80%" + unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 + unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx + unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 + unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 + unmute_and_set_level "$1" "Synth" "80%" + unmute_and_set_level "$1" "CD" "80%" + unmute_and_set_level "$1" "PC Speaker" "100%" + + mute_and_zero_level "$1" "Mic" + mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 + + # Intel P4P800-MX + switch_control "$1" "Master Playback Switch" on + switch_control "$1" "Master Surround" on + + # Trident/YMFPCI/emu10k1: + unmute_and_set_level "$1" "Wave" "80%" + unmute_and_set_level "$1" "Music" "80%" + unmute_and_set_level "$1" "AC97" "80%" + + # DRC: + unmute_and_set_level "$1" "Dynamic Range Compression" "80%" + + # Required for HDA Intel (hda-intel): + unmute_and_set_level "$1" "Front" "80%" + + # Required for SB Live 7.1/24-bit (ca0106): + unmute_and_set_level "$1" "Analog Front" "80%" + + # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard + switch_control "$1" "IEC958 Capture Monitor" off + + # Required for hardware allowing toggles for AC97 through IEC958, + # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. + unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" + + # Required for newer Via hardware + unmute_and_set_level "$1" "VIA DXS,0" "80%" + unmute_and_set_level "$1" "VIA DXS,1" "80%" + unmute_and_set_level "$1" "VIA DXS,2" "80%" + unmute_and_set_level "$1" "VIA DXS,3" "80%" + + # Required on some notebooks with ICH4: + switch_control "$1" "Headphone Jack Sense" off + switch_control "$1" "Line Jack Sense" off + + # Some machines need one or more of these to be on; + # others need one or more of these to be off: + + switch_control "$1" "Audigy Analog/Digital Output Jack" on + switch_control "$1" "SB Live Analog/Digital Output Jack" on + + # D1984 -- Thinkpad T61/X61 + switch_control "$1" "Speaker" on + switch_control "$1" "Headphone" on + + # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) + unmute_and_set_level "$1" "Digital" "80%" + + return 0 +} + +# $1 | "all" +sanify_levels() { + local ttsdml_returnstatus=0 + local card + case "$1" in + all) + for card in $(echo_card_indices); do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; + esac + return "$ttsdml_returnstatus" +} + +# List all cards that *should* be usable for PCM audio. In my experience, +# the console speaker (handled by the pcsp driver) isn't a suitable playback +# device, so we'll exclude it. +list_non_pcsp_cards() { + for card in $(echo_card_indices); do + local cardfile="/proc/asound/card${card}/id" + if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then + echo "$card" + fi + done +} + +# Properly initialize the sound card so that we have audio at boot. +unmute_all_cards() { + sanify_levels all +} + +is_numeric() { + local str="$1" + [[ "$str" =~ ^[0-9]+$ ]] +} + +set_default_card() { + local card="$1" + sed -e "s/%card%/$card/g" /etc/asound.conf +} + +play_on_card() { + local card="$1" file="$2" + aplay -q "-Dplughw:$card,0" "$file" +} + +# If there are multiple usable sound cards, prompt the user to choose one, +# using auditory feedback. +pick_a_card() { + set -f + usable_cards="$(list_non_pcsp_cards)" + num_usable_cards="$(wc -w <<<"$usable_cards")" + + if (( num_usable_cards == 1 )); then + systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" + exit 0 + fi + systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" + for card in "${usable_cards[@]}"; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav & + done + wait + sleep 1 + for card in "${usable_cards[@]}"; do + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi + done +} + +if (( $# == 0 )); then + echo "error: No argument passed." + exit 1 +fi +while [[ "${1}" != "" ]]; do + case ${1} in + -h|--help) + usage + exit + ;; + -u|--unmute) + systemd-cat -t "livecdsound" printf "Unmuting all cards" + unmute_all_cards + ;; + -p|--pick) + pick_a_card + ;; + *) + echo "error: Unsupported argument" + usage + exit 1 + ;; + esac + shift +done diff --git a/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in b/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in new file mode 100644 index 0000000..3f9c7aa --- /dev/null +++ b/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in @@ -0,0 +1,3 @@ +Defaults node +defaults.ctl.card %card%; +defaults.pcm.card %card%; diff --git a/releng/airootfs/usr/share/calamares/kernel-install/95-raveos.install b/releng/airootfs/usr/share/calamares/kernel-install/95-raveos.install new file mode 100755 index 0000000..fc31285 --- /dev/null +++ b/releng/airootfs/usr/share/calamares/kernel-install/95-raveos.install @@ -0,0 +1,84 @@ +#!/bin/bash +# Single-entry, systemd-compliant kernel-install hook for CachyOS + +set -e + +COMMAND="$1" # add | remove +KERNEL_VERSION="$2" # e.g. 6.18.4-1-cachyos + +# Only act on CachyOS kernels +case "$KERNEL_VERSION" in + *cachyos*) ;; + *) exit 0 ;; +esac + +BOOT_ROOT="${KERNEL_INSTALL_BOOT_ROOT:-/boot}" +ENTRY_DIR="$BOOT_ROOT/loader/entries" +ENTRY_FILE="$ENTRY_DIR/raveos.conf" + +# -------------------------------------------------- +# Fixed CachyOS kernel paths (non-versioned) +# -------------------------------------------------- +LINUX_IMAGE="/vmlinuz-linux-cachyos" +INITRAMFS_IMAGE="/initramfs-linux-cachyos.img" + +# -------------------------------------------------- +# Microcode (must be first initrd) +# -------------------------------------------------- +MICROCODE="" +[ -f "$BOOT_ROOT/intel-ucode.img" ] && MICROCODE="/intel-ucode.img" +[ -f "$BOOT_ROOT/amd-ucode.img" ] && MICROCODE="/amd-ucode.img" + +# -------------------------------------------------- +# Root device detection +# -------------------------------------------------- +ROOT_SRC="$(findmnt -no SOURCE /)" +ROOT_FS="$(findmnt -no FSTYPE /)" +ROOT_OPTS="$(findmnt -no OPTIONS /)" + +OPTIONS="rw quiet" + +# LUKS +if [[ "$ROOT_SRC" == /dev/mapper/* ]]; then + UUID="$(blkid -s UUID -o value "$ROOT_SRC" || true)" + if [ -n "$UUID" ]; then + OPTIONS="cryptdevice=UUID=$UUID:cryptroot root=/dev/mapper/cryptroot $OPTIONS" + else + OPTIONS="root=$ROOT_SRC $OPTIONS" + fi +else + PARTUUID="$(blkid -s PARTUUID -o value "$ROOT_SRC" || true)" + [ -n "$PARTUUID" ] && OPTIONS="root=PARTUUID=$PARTUUID $OPTIONS" +fi + +# -------------------------------------------------- +# Btrfs subvolume support +# -------------------------------------------------- +if [ "$ROOT_FS" = "btrfs" ]; then + SUBVOL="$(echo "$ROOT_OPTS" | tr ',' '\n' | grep '^subvol=' || true)" + [ -n "$SUBVOL" ] && OPTIONS="$OPTIONS rootflags=$SUBVOL" +fi + +mkdir -p "$ENTRY_DIR" + +case "$COMMAND" in + add) + { + echo "title RaveOS Linux (CachyOS Kernel)" + echo "linux $LINUX_IMAGE" + [ -n "$MICROCODE" ] && echo "initrd $MICROCODE" + echo "initrd $INITRAMFS_IMAGE" + echo "options $OPTIONS" + } > "$ENTRY_FILE" + ;; + + remove) + # Only remove entry if this was the last CachyOS kernel + rm -f "$ENTRY_FILE" + ;; + + *) + exit 0 + ;; +esac + diff --git a/releng/bootstrap_packages b/releng/bootstrap_packages new file mode 100644 index 0000000..64966d0 --- /dev/null +++ b/releng/bootstrap_packages @@ -0,0 +1,2 @@ +arch-install-scripts +base diff --git a/releng/efiboot/loader/entries/01-archiso-linux.conf b/releng/efiboot/loader/entries/01-archiso-linux.conf new file mode 100644 index 0000000..23f917d --- /dev/null +++ b/releng/efiboot/loader/entries/01-archiso-linux.conf @@ -0,0 +1,5 @@ +title RaveOS install medium (%ARCH%, UEFI) +sort-key 01 +linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% cow_spacesize=4G copytoram=n diff --git a/releng/efiboot/loader/entries/03-archiso-memtest86+x64.conf b/releng/efiboot/loader/entries/03-archiso-memtest86+x64.conf new file mode 100644 index 0000000..7a0ef5e --- /dev/null +++ b/releng/efiboot/loader/entries/03-archiso-memtest86+x64.conf @@ -0,0 +1,4 @@ +title Memtest86+ +sort-key 03 +efi /boot/memtest86+/memtest.efi +architecture x64 diff --git a/releng/efiboot/loader/loader.conf b/releng/efiboot/loader/loader.conf new file mode 100644 index 0000000..0384b10 --- /dev/null +++ b/releng/efiboot/loader/loader.conf @@ -0,0 +1,3 @@ +timeout 15 +default 01-archiso-linux.conf +beep off diff --git a/releng/grub/grub.cfg b/releng/grub/grub.cfg new file mode 100644 index 0000000..2d191ae --- /dev/null +++ b/releng/grub/grub.cfg @@ -0,0 +1,105 @@ +# Load partition table and file system modules +insmod part_gpt +insmod part_msdos +insmod fat +insmod iso9660 +insmod ntfs +insmod ntfscomp +insmod exfat +insmod udf + +# Use graphics-mode output +if loadfont "${prefix}/fonts/unicode.pf2" ; then + insmod all_video + set gfxmode="auto" + terminal_input console + terminal_output console +fi + +# Enable serial console +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug +if serial --unit=0 --speed=115200; then + terminal_input --append serial + terminal_output --append serial +fi + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu}-${grub_platform}" +fi + +# Set default menu entry +default=archlinux +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "RaveOS Install Medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'raveos' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +} + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == 'i386' -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + elif [ "${grub_cpu}" == 'arm64' -a -f '/shellaa64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellaa64.efi + } + elif [ "${grub_cpu}" == 'riscv64' -a -f '/shellriscv64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellriscv64.efi + } + elif [ "${grub_cpu}" == 'loongarch64' -a -f '/shellloongarch64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellloongarch64.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} + + +# GRUB init tune for accessibility +play 600 988 1 1319 4 diff --git a/releng/grub/loopback.cfg b/releng/grub/loopback.cfg new file mode 100644 index 0000000..6020fbd --- /dev/null +++ b/releng/grub/loopback.cfg @@ -0,0 +1,78 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=archiso_img_dev --file "${iso_path}" +probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu}-${grub_platform}" +fi + +# Set default menu entry +default=archlinux +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "RaveOS Cosmic install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == 'i386' -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + elif [ "${grub_cpu}" == 'arm64' -a -f '/shellaa64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellaa64.efi + } + elif [ "${grub_cpu}" == 'riscv64' -a -f '/shellriscv64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellriscv64.efi + } + elif [ "${grub_cpu}" == 'loongarch64' -a -f '/shellloongarch64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellloongarch64.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/releng/packages.x86_64 b/releng/packages.x86_64 new file mode 100644 index 0000000..3a6f879 --- /dev/null +++ b/releng/packages.x86_64 @@ -0,0 +1,187 @@ +alsa-utils +amd-ucode +arch-install-scripts +archinstall +b43-fwcutter +base +bcachefs-tools +bind +bolt +brltty +broadcom-wl-dkms +dkms +linux-headers +btrfs-progs +clonezilla +cloud-init +cryptsetup +darkhttpd +ddrescue +dhcpcd +diffutils +dmidecode +dmraid +dnsmasq +dosfstools +e2fsprogs +edk2-shell +efibootmgr +espeakup +ethtool +exfatprogs +f2fs-tools +fatresize +foot-terminfo +fsarchiver +gpart +gpm +gptfdisk +grml-zsh-config +grub +hdparm +hyperv +intel-ucode +irssi +iw +iwd +jfsutils +kitty-terminfo +ldns +less +lftp +libfido2 +libusb-compat +linux +linux-atm +linux-firmware +linux-firmware-atheros +linux-firmware-broadcom +linux-firmware-intel +linux-firmware-marvell +linux-firmware-mediatek +linux-firmware-qcom +livecd-sounds +lsb-release +lsscsi +lvm2 +lynx +man-db +man-pages +mc +mdadm +memtest86+ +memtest86+-efi +mkinitcpio +mkinitcpio-archiso +mkinitcpio-nfs-utils +mmc-utils +modemmanager +mtools +nano +nbd +ndisc6 +nfs-utils +nilfs-utils +nmap +ntfs-3g +nvme-cli +open-iscsi +open-vm-tools +openconnect +openpgp-card-tools +openssh +openvpn +partclone +parted +partimage +pcsclite +ppp +pptpclient +pv +qemu-guest-agent +refind +reflector +rsync +rxvt-unicode-terminfo +screen +sdparm +sequoia-sq +sg3_utils +smartmontools +sof-firmware +squashfs-tools +sudo +syslinux +systemd-resolvconf +tcpdump +terminus-font +testdisk +tmux +tpm2-tools +tpm2-tss +udftools +usb_modeswitch +usbmuxd +usbutils +vim +virtualbox-guest-utils-nox +vpnc +wireless-regdb +wireless_tools +wpa_supplicant +wvdial +xdg-utils +xfsprogs +xl2tpd +zsh +spice-vdagent +bash-completion + +# Calamares and additional packages +calamares +raveos-calamares-theme +raveos-calamares-module +raveos-gnome-theme +qt6-base +qt6-svg +qt6-declarative +qt6-tools +polkit +frameworkintegration +os-prober + +# Fonts +noto-fonts +noto-fonts-cjk +noto-fonts-emoji +noto-fonts-extra + +# Minimal Xsession +openbox +xorg-server +xorg-xinit +xorg-xset +xterm +sudo +nano +networkmanager + +# Chaotic-AUR +chaotic-keyring +chaotic-mirrorlist +archlinux-keyring + +# Yay +yay-bin + +# Terminal greeting +fastfetch + +# Ad blocker (rave upgrade) +hblock + +# Bluetooth +bluez +bluez-libs +bluez-tools +bluez-utils \ No newline at end of file diff --git a/releng/pacman.conf b/releng/pacman.conf new file mode 100644 index 0000000..ebe4585 --- /dev/null +++ b/releng/pacman.conf @@ -0,0 +1,108 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = gnome-session gnome-console gedit gnome-disk-utility gnome-system-monitor eog gnome-calculator baobab gnome-control-center gnome-tweaks gnome-browser-connector gnome-settings-daemon nautilus gnome-shell-extensions mutter +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +# We cannot check disk space from within a chroot environment +#CheckSpace +#VerbosePkgLists +ILoveCandy +ParallelDownloads = 5 +#DownloadUser = alpm +#DisableSandbox + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[core-testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +[raveos-core-repo] +SigLevel = Never TrustAll +Server = https://page.rp1.hu/x86_64/ + +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist diff --git a/releng/profiledef.sh b/releng/profiledef.sh new file mode 100644 index 0000000..959862f --- /dev/null +++ b/releng/profiledef.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# shellcheck disable=SC2034 + +iso_name="raveos" +iso_label="raveos_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" +iso_publisher="RaveOS" +iso_application="RaveOS Live/Rescue DVD" +iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" +install_dir="arch" +buildmodes=('iso') +bootmodes=('bios.syslinux' + 'uefi.systemd-boot') +pacman_conf="pacman.conf" +airootfs_image_type="squashfs" +airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M') +bootstrap_tarball_compression=('zstd' '-c' '-T0' '--auto-threads=logical' '--long' '-19') +file_permissions=( + ["/etc/shadow"]="0:0:400" + ["/etc/gshadow"]="0:0:400" + ["/root"]="0:0:750" + ["/root/.automated_script.sh"]="0:0:755" + ["/root/.gnupg"]="0:0:700" + ["/root/.loader.conf"]="0:0:755" + ["/usr/local/bin/choose-mirror"]="0:0:755" + ["/usr/local/bin/Installation_guide"]="0:0:755" + ["/usr/local/bin/livecd-sound"]="0:0:755" + ["/etc/pacman.d/chaotic-mirrorlist"]="0:0:644" + ["/etc/pacman.d/mirrorlist"]="0:0:644" + ["/etc/pacman.d/hooks/reflector-mirrorlist.hook"]="0:0:644" + ["/etc/group"]="0:0:400" + ["/root/.config/openbox/autostart"]="0:0:755" + ["/etc/profile.d/autostart.sh"]="0:0:755" + ["/usr/share/calamares/kernel-install/95-raveos.install"]="0:0:755" +) diff --git a/releng/syslinux/archiso_head.cfg b/releng/syslinux/archiso_head.cfg new file mode 100644 index 0000000..671ab4e --- /dev/null +++ b/releng/syslinux/archiso_head.cfg @@ -0,0 +1,28 @@ +SERIAL 0 115200 +UI vesamenu.c32 +MENU TITLE Arch Linux +MENU BACKGROUND splash.png + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 7 +MENU VSHIFT 10 +MENU TABMSGROW 14 +MENU CMDLINEROW 14 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32 + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std + +MENU CLEAR +MENU IMMEDIATE diff --git a/releng/syslinux/archiso_pxe-linux.cfg b/releng/syslinux/archiso_pxe-linux.cfg new file mode 100644 index 0000000..872aae8 --- /dev/null +++ b/releng/syslinux/archiso_pxe-linux.cfg @@ -0,0 +1,32 @@ +LABEL arch_nbd +TEXT HELP +Boot the Arch Linux install medium using NBD. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (%ARCH%, NBD) +LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y +SYSAPPEND 3 + +LABEL arch_nfs +TEXT HELP +Boot the Arch Linux live medium using NFS. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (%ARCH%, NFS) +LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y +SYSAPPEND 3 + +LABEL arch_http +TEXT HELP +Boot the Arch Linux live medium using HTTP. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (%ARCH%, HTTP) +LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y +SYSAPPEND 3 diff --git a/releng/syslinux/archiso_pxe.cfg b/releng/syslinux/archiso_pxe.cfg new file mode 100644 index 0000000..b4c9a80 --- /dev/null +++ b/releng/syslinux/archiso_pxe.cfg @@ -0,0 +1,5 @@ +INCLUDE archiso_head.cfg + +INCLUDE archiso_pxe-linux.cfg + +INCLUDE archiso_tail.cfg diff --git a/releng/syslinux/archiso_sys-linux.cfg b/releng/syslinux/archiso_sys-linux.cfg new file mode 100644 index 0000000..d945c7a --- /dev/null +++ b/releng/syslinux/archiso_sys-linux.cfg @@ -0,0 +1,20 @@ +LABEL arch +TEXT HELP +Boot the Arch Linux install medium on BIOS. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (%ARCH%, BIOS) +LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% + +# Accessibility boot option +LABEL archspeech +TEXT HELP +Boot the Arch Linux install medium on BIOS with speakup screen reader. +It allows you to install Arch Linux or perform system maintenance with speech feedback. +ENDTEXT +MENU LABEL Arch Linux install medium (%ARCH%, BIOS) with ^speech +LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on diff --git a/releng/syslinux/archiso_sys.cfg b/releng/syslinux/archiso_sys.cfg new file mode 100644 index 0000000..662482c --- /dev/null +++ b/releng/syslinux/archiso_sys.cfg @@ -0,0 +1,8 @@ +INCLUDE archiso_head.cfg + +DEFAULT arch +TIMEOUT 150 + +INCLUDE archiso_sys-linux.cfg + +INCLUDE archiso_tail.cfg diff --git a/releng/syslinux/archiso_tail.cfg b/releng/syslinux/archiso_tail.cfg new file mode 100644 index 0000000..e84897c --- /dev/null +++ b/releng/syslinux/archiso_tail.cfg @@ -0,0 +1,35 @@ +LABEL existing +TEXT HELP +Boot an existing operating system. +Press TAB to edit the disk and partition number to boot. +ENDTEXT +MENU LABEL Boot existing OS +COM32 chain.c32 +APPEND hd0 0 + +# https://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX /boot/memtest86+/memtest + +# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool) +LABEL hdt +MENU LABEL Hardware Information (HDT) +COM32 hdt.c32 +APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz + +LABEL reboot +TEXT HELP +Reboot computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Reboot +COM32 reboot.c32 + +LABEL poweroff +TEXT HELP +Power off computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Power Off +COM32 poweroff.c32 diff --git a/releng/syslinux/splash.png b/releng/syslinux/splash.png new file mode 100644 index 0000000..64b959a Binary files /dev/null and b/releng/syslinux/splash.png differ diff --git a/releng/syslinux/syslinux.cfg b/releng/syslinux/syslinux.cfg new file mode 100644 index 0000000..cbda72f --- /dev/null +++ b/releng/syslinux/syslinux.cfg @@ -0,0 +1,11 @@ +DEFAULT select + +LABEL select +COM32 whichsys.c32 +APPEND -pxe- pxe -sys- sys -iso- sys + +LABEL pxe +CONFIG archiso_pxe.cfg + +LABEL sys +CONFIG archiso_sys.cfg -- cgit v1.3