Merge pull request #275 from maralcbr/omacom/pkgbuild-portability
Build the omarchy package pair for aarch64
This commit is contained in:
7 files changed
+227
-58
No files matched your search
@@ -5,7 +5,10 @@ pkgrel=1
|
|||||||
_pkgver_base=4.0.0
|
_pkgver_base=4.0.0
|
||||||
_pkgver_base_tag=v3.8.2
|
_pkgver_base_tag=v3.8.2
|
||||||
pkgdesc='Beautiful, modern, and opinionated Arch Linux by DHH (quattro branch tip)'
|
pkgdesc='Beautiful, modern, and opinionated Arch Linux by DHH (quattro branch tip)'
|
||||||
arch=('any')
|
# The payload is architecture-independent, but the dependency set is not: the
|
||||||
|
# boot stack differs per architecture (see depends_x86_64 / depends_aarch64),
|
||||||
|
# and makepkg only honours arch-suffixed arrays on arch-specific packages.
|
||||||
|
arch=('x86_64' 'aarch64')
|
||||||
url='https://github.com/basecamp/omarchy'
|
url='https://github.com/basecamp/omarchy'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
provides=('omarchy')
|
provides=('omarchy')
|
||||||
@@ -17,18 +20,6 @@ depends=(
|
|||||||
'omarchy-keyring'
|
'omarchy-keyring'
|
||||||
'omarchy-settings-dev'
|
'omarchy-settings-dev'
|
||||||
|
|
||||||
# Bootloader stack. Lives here rather than on omarchy-settings because
|
|
||||||
# omarchy-settings is also installed into the live ISO env (for plymouth
|
|
||||||
# / /etc/skel seeding), where the limine-mkinitcpio-hook would fail with
|
|
||||||
# 'Cannot detect an ESP path' inside the chroot. The omarchy-settings
|
|
||||||
# config drop-ins under /etc/mkinitcpio.conf.d/, /etc/limine-entry-tool.d/,
|
|
||||||
# and /etc/snapper/config-templates/ only do anything when these are
|
|
||||||
# installed alongside.
|
|
||||||
'limine'
|
|
||||||
'limine-mkinitcpio-hook'
|
|
||||||
'limine-snapper-sync'
|
|
||||||
'snapper'
|
|
||||||
|
|
||||||
# Wayland / Hyprland core
|
# Wayland / Hyprland core
|
||||||
'hyprland'
|
'hyprland'
|
||||||
'quickshell'
|
'quickshell'
|
||||||
@@ -55,6 +46,29 @@ depends=(
|
|||||||
'ttf-jetbrains-mono-nerd-basic'
|
'ttf-jetbrains-mono-nerd-basic'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Bootloader stack. Lives here rather than on omarchy-settings because
|
||||||
|
# omarchy-settings is also installed into the live ISO env (for plymouth
|
||||||
|
# / /etc/skel seeding), where the limine-mkinitcpio-hook would fail with
|
||||||
|
# 'Cannot detect an ESP path' inside the chroot. The omarchy-settings
|
||||||
|
# config drop-ins under /etc/mkinitcpio.conf.d/, /etc/limine-entry-tool.d/,
|
||||||
|
# and /etc/snapper/config-templates/ only do anything when these are
|
||||||
|
# installed alongside.
|
||||||
|
depends_x86_64=(
|
||||||
|
'limine'
|
||||||
|
'limine-mkinitcpio-hook'
|
||||||
|
'limine-snapper-sync'
|
||||||
|
'snapper'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Apple Silicon boots through m1n1 + GRUB from the Asahi packages and keeps
|
||||||
|
# Arch Linux ARM's kernel and boot layout, so the Limine/Snapper stack does not
|
||||||
|
# apply. Wi-Fi on the Broadcom parts only scans reliably through the iwd
|
||||||
|
# backend, which install/hardware/network.sh selects on Apple Silicon.
|
||||||
|
depends_aarch64=(
|
||||||
|
'iwd'
|
||||||
|
'networkmanager'
|
||||||
|
)
|
||||||
|
|
||||||
makedepends=(
|
makedepends=(
|
||||||
'git'
|
'git'
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,7 +5,12 @@ pkgrel=1
|
|||||||
_pkgver_base=4.0.0
|
_pkgver_base=4.0.0
|
||||||
_pkgver_base_tag=v3.8.2
|
_pkgver_base_tag=v3.8.2
|
||||||
pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers (quattro branch tip)'
|
pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers (quattro branch tip)'
|
||||||
arch=('any')
|
# Arch-specific because the shipped /etc tree is not the same on every
|
||||||
|
# architecture: the Limine, mkinitcpio, zram and oomd drop-ins belong to the
|
||||||
|
# x86_64 boot and memory stack and are left out of the aarch64 package (see
|
||||||
|
# package()). makepkg only honours the arch-suffixed arrays below on
|
||||||
|
# arch-specific packages.
|
||||||
|
arch=('x86_64' 'aarch64')
|
||||||
url='https://github.com/basecamp/omarchy'
|
url='https://github.com/basecamp/omarchy'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
provides=('omarchy-settings')
|
provides=('omarchy-settings')
|
||||||
@@ -44,15 +49,10 @@ makedepends=(
|
|||||||
# scriptlet WILL clobber user edits on each upgrade (documented limitation).
|
# scriptlet WILL clobber user edits on each upgrade (documented limitation).
|
||||||
backup=(
|
backup=(
|
||||||
'etc/fastfetch/config.jsonc'
|
'etc/fastfetch/config.jsonc'
|
||||||
'etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
|
||||||
'etc/mkinitcpio.conf.d/thunderbolt_module.conf'
|
|
||||||
'etc/limine-entry-tool.d/omarchy-defaults.conf'
|
|
||||||
'etc/limine-entry-tool.d/omarchy-uki.conf'
|
|
||||||
'etc/docker/daemon.json'
|
'etc/docker/daemon.json'
|
||||||
'etc/gnupg/dirmngr.conf'
|
'etc/gnupg/dirmngr.conf'
|
||||||
'etc/sysctl.d/99-omarchy-sysctl.conf'
|
'etc/sysctl.d/99-omarchy-sysctl.conf'
|
||||||
'etc/sysctl.d/90-omarchy-file-watchers.conf'
|
'etc/sysctl.d/90-omarchy-file-watchers.conf'
|
||||||
'etc/modprobe.d/omarchy-usb-autosuspend.conf'
|
|
||||||
'etc/systemd/logind.conf.d/10-ignore-power-button.conf'
|
'etc/systemd/logind.conf.d/10-ignore-power-button.conf'
|
||||||
'etc/systemd/logind.conf.d/20-inhibit-delay.conf'
|
'etc/systemd/logind.conf.d/20-inhibit-delay.conf'
|
||||||
'etc/systemd/resolved.conf.d/10-disable-multicast.conf'
|
'etc/systemd/resolved.conf.d/10-disable-multicast.conf'
|
||||||
@@ -63,18 +63,31 @@ backup=(
|
|||||||
'etc/systemd/system/plocate-updatedb.service.d/ac-only.conf'
|
'etc/systemd/system/plocate-updatedb.service.d/ac-only.conf'
|
||||||
'etc/systemd/system.conf.d/20-omarchy-nofile.conf'
|
'etc/systemd/system.conf.d/20-omarchy-nofile.conf'
|
||||||
'etc/systemd/user.conf.d/20-omarchy-nofile.conf'
|
'etc/systemd/user.conf.d/20-omarchy-nofile.conf'
|
||||||
'etc/systemd/oomd.conf.d/10-omarchy.conf'
|
|
||||||
'etc/systemd/zram-generator.conf'
|
|
||||||
'etc/sddm.conf.d/10-theme.conf'
|
'etc/sddm.conf.d/10-theme.conf'
|
||||||
'etc/sddm.conf.d/10-wayland.conf'
|
'etc/sddm.conf.d/10-wayland.conf'
|
||||||
'etc/udev/rules.d/99-omarchy-power-profile.rules'
|
'etc/udev/rules.d/99-omarchy-power-profile.rules'
|
||||||
'etc/udev/rules.d/99-omarchy-wifi-powersave.rules'
|
'etc/udev/rules.d/99-omarchy-wifi-powersave.rules'
|
||||||
)
|
)
|
||||||
|
# backup has no arch-suffixed form, so the x86_64-only drop-ins join it here.
|
||||||
|
# Each of these paths is removed from the aarch64 package in package().
|
||||||
|
if [[ $CARCH == x86_64 ]]; then
|
||||||
|
backup+=(
|
||||||
|
'etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
||||||
|
'etc/mkinitcpio.conf.d/thunderbolt_module.conf'
|
||||||
|
'etc/limine-entry-tool.d/omarchy-defaults.conf'
|
||||||
|
'etc/limine-entry-tool.d/omarchy-uki.conf'
|
||||||
|
'etc/modprobe.d/omarchy-usb-autosuspend.conf'
|
||||||
|
'etc/systemd/oomd.conf.d/10-omarchy.conf'
|
||||||
|
'etc/systemd/zram-generator.conf'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
optdepends=(
|
optdepends=(
|
||||||
'omarchy-dev: Full Omarchy desktop (quattro branch tip)'
|
'omarchy-dev: Full Omarchy desktop (quattro branch tip)'
|
||||||
'inxi: System information for omarchy-debug'
|
'inxi: System information for omarchy-debug'
|
||||||
'fastfetch: System information for omarchy-upload-log'
|
'fastfetch: System information for omarchy-upload-log'
|
||||||
|
)
|
||||||
|
optdepends_x86_64=(
|
||||||
'limine: Bootloader the shipped /etc/mkinitcpio.conf.d/ and /etc/limine-entry-tool.d/ drop-ins are for'
|
'limine: Bootloader the shipped /etc/mkinitcpio.conf.d/ and /etc/limine-entry-tool.d/ drop-ins are for'
|
||||||
'limine-mkinitcpio-hook: Picks up the shipped /etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
'limine-mkinitcpio-hook: Picks up the shipped /etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
||||||
'limine-snapper-sync: Boot-entry sync for snapper snapshots'
|
'limine-snapper-sync: Boot-entry sync for snapper snapshots'
|
||||||
@@ -147,6 +160,14 @@ package() {
|
|||||||
install -d "$pkgdir/usr/share/omarchy/config"
|
install -d "$pkgdir/usr/share/omarchy/config"
|
||||||
cp -a config/. "$pkgdir/usr/share/omarchy/config/"
|
cp -a config/. "$pkgdir/usr/share/omarchy/config/"
|
||||||
|
|
||||||
|
# The Limine/Snapper notifier has nothing to notify about without the x86_64
|
||||||
|
# boot stack; drop it from both seeds so aarch64 users don't autostart a
|
||||||
|
# helper whose backing tool is not installed.
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
rm -f "$pkgdir/etc/skel/.config/autostart/limine-snapper-notify.desktop" \
|
||||||
|
"$pkgdir/usr/share/omarchy/config/autostart/limine-snapper-notify.desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
# Package-owned defaults with real system/XDG locations. User config remains
|
# Package-owned defaults with real system/XDG locations. User config remains
|
||||||
# higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d,
|
# higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d,
|
||||||
# ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list,
|
# ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list,
|
||||||
@@ -174,9 +195,13 @@ package() {
|
|||||||
install -Dm644 default/systemd/user/omarchy-crash-watch.service "$pkgdir/usr/lib/systemd/user/omarchy-crash-watch.service"
|
install -Dm644 default/systemd/user/omarchy-crash-watch.service "$pkgdir/usr/lib/systemd/user/omarchy-crash-watch.service"
|
||||||
# Marks app.slice (and only app.slice) as a systemd-oomd kill candidate, so
|
# Marks app.slice (and only app.slice) as a systemd-oomd kill candidate, so
|
||||||
# memory pressure costs one app scope instead of the compositor session.
|
# memory pressure costs one app scope instead of the compositor session.
|
||||||
# Thresholds live in etc/systemd/oomd.conf.d/10-omarchy.conf.
|
# Thresholds live in etc/systemd/oomd.conf.d/10-omarchy.conf. Both this and
|
||||||
install -Dm644 default/systemd/user/app.slice.d/10-oomd.conf "$pkgdir/usr/lib/systemd/user/app.slice.d/10-oomd.conf"
|
# the zram vendor drop-in belong to the x86_64 memory stack: the aarch64
|
||||||
install -Dm644 default/systemd/zram-generator.conf.d/90-omarchy.conf "$pkgdir/usr/lib/systemd/zram-generator.conf.d/90-omarchy.conf"
|
# install neither enables systemd-oomd nor configures zram swap.
|
||||||
|
if [[ $CARCH == x86_64 ]]; then
|
||||||
|
install -Dm644 default/systemd/user/app.slice.d/10-oomd.conf "$pkgdir/usr/lib/systemd/user/app.slice.d/10-oomd.conf"
|
||||||
|
install -Dm644 default/systemd/zram-generator.conf.d/90-omarchy.conf "$pkgdir/usr/lib/systemd/zram-generator.conf.d/90-omarchy.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
# Same for applications/** — used by omarchy-refresh-applications,
|
# Same for applications/** — used by omarchy-refresh-applications,
|
||||||
# omarchy-install-gaming-*, etc. to copy .desktop files into ~/.local/share.
|
# omarchy-install-gaming-*, etc. to copy .desktop files into ~/.local/share.
|
||||||
@@ -190,6 +215,25 @@ package() {
|
|||||||
# stage separately below).
|
# stage separately below).
|
||||||
install -d "$pkgdir/etc"
|
install -d "$pkgdir/etc"
|
||||||
cp -a etc/. "$pkgdir/etc/"
|
cp -a etc/. "$pkgdir/etc/"
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
# The x86_64 boot stack's drop-ins must not ship on aarch64: mkinitcpio
|
||||||
|
# reads every file under /etc/mkinitcpio.conf.d/, so omarchy_hooks.conf
|
||||||
|
# would inject the Limine hooks into the Asahi kernel's initramfs, and the
|
||||||
|
# Limine entry-tool config has no consumer without Limine.
|
||||||
|
rm -rf "$pkgdir/etc/limine-entry-tool.d" "$pkgdir/etc/mkinitcpio.conf.d"
|
||||||
|
# Memory stack: no zram device or zswap on the aarch64 install, and
|
||||||
|
# systemd-oomd is not enabled there, so the vm.* reclaim tuning written
|
||||||
|
# for zram would be wrong for it. Keep only the network tuning.
|
||||||
|
rm -rf "$pkgdir/etc/systemd/oomd.conf.d"
|
||||||
|
rm -f "$pkgdir/etc/systemd/zram-generator.conf" "$pkgdir/etc/tmpfiles.d/omarchy-zswap.conf"
|
||||||
|
cat >"$pkgdir/etc/sysctl.d/99-omarchy-sysctl.conf" <<'EOF'
|
||||||
|
# Solve common flakiness with SSH (MTU discovery on flaky links).
|
||||||
|
net.ipv4.tcp_mtu_probing=1
|
||||||
|
EOF
|
||||||
|
# USB autosuspend is left at the kernel default on Apple Silicon.
|
||||||
|
rm -f "$pkgdir/etc/modprobe.d/omarchy-usb-autosuspend.conf"
|
||||||
|
rmdir "$pkgdir/etc/modprobe.d" "$pkgdir/etc/tmpfiles.d" 2>/dev/null || true
|
||||||
|
fi
|
||||||
# sudoers.d files must be mode 0440 or sudo will refuse them, and the
|
# sudoers.d files must be mode 0440 or sudo will refuse them, and the
|
||||||
# directory must be 0750 to match the Arch sudo package's filesystem
|
# directory must be 0750 to match the Arch sudo package's filesystem
|
||||||
# convention (otherwise pacman warns about dir-mode drift on every install).
|
# convention (otherwise pacman warns about dir-mode drift on every install).
|
||||||
@@ -280,6 +324,10 @@ EOF
|
|||||||
# live root config.
|
# live root config.
|
||||||
install -d "$pkgdir/usr/share/omarchy/default"
|
install -d "$pkgdir/usr/share/omarchy/default"
|
||||||
cp -a default/. "$pkgdir/usr/share/omarchy/default/"
|
cp -a default/. "$pkgdir/usr/share/omarchy/default/"
|
||||||
|
# The Limine template is read by the x86_64 ISO orchestrator only.
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
rm -rf "$pkgdir/usr/share/omarchy/default/limine"
|
||||||
|
fi
|
||||||
|
|
||||||
# Snapper config template used by the install-time `snapper create-config`.
|
# Snapper config template used by the install-time `snapper create-config`.
|
||||||
install -Dm644 default/snapper/root \
|
install -Dm644 default/snapper/root \
|
||||||
|
|||||||
@@ -1,6 +1,31 @@
|
|||||||
|
_apple_silicon() {
|
||||||
|
[[ $(uname -m) == aarch64 ]] && grep -aq 'apple,' /proc/device-tree/compatible 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
_etc_overrides_apply() {
|
_etc_overrides_apply() {
|
||||||
echo "Applying Omarchy etc-overrides..."
|
echo "Applying Omarchy etc-overrides..."
|
||||||
|
|
||||||
|
# The hardened CUPS authorization applies on every platform. It waits for the
|
||||||
|
# file the cups package owns: an ISO bootstrap without cups installed is left
|
||||||
|
# alone and picks it up once cups lands.
|
||||||
|
if [[ -f /etc/cups/cups-files.conf && -f /usr/share/omarchy/etc-overrides/cups-cups-files.conf ]]; then
|
||||||
|
systemd-sysusers /etc/sysusers.d/omarchy-cups-browsed.conf
|
||||||
|
install -m 0640 -o root -g cups /usr/share/omarchy/etc-overrides/cups-cups-files.conf /etc/cups/cups-files.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apple Silicon installs run on Arch Linux ARM's base with the Asahi
|
||||||
|
# packages, and keep that system identity: /etc/os-release stays the
|
||||||
|
# symlink to the distribution's /usr/lib/os-release, and the PAM, NSS,
|
||||||
|
# plymouth and skel overrides below are not applied there.
|
||||||
|
if _apple_silicon; then
|
||||||
|
echo "Preserving Arch Linux ARM system configuration on Apple Silicon..."
|
||||||
|
if [[ -f /usr/lib/os-release ]]; then
|
||||||
|
rm -f /etc/os-release
|
||||||
|
ln -s ../usr/lib/os-release /etc/os-release
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Ensure parent dirs exist. cups-browsed may not be installed yet during ISO
|
# Ensure parent dirs exist. cups-browsed may not be installed yet during ISO
|
||||||
# bootstrap; do not create /etc/cups/cups-browsed.conf before the package is
|
# bootstrap; do not create /etc/cups/cups-browsed.conf before the package is
|
||||||
# installed or pacman will preserve its packaged file as a noisy .pacnew.
|
# installed or pacman will preserve its packaged file as a noisy .pacnew.
|
||||||
@@ -21,10 +46,6 @@ _etc_overrides_apply() {
|
|||||||
install -d /etc/cups
|
install -d /etc/cups
|
||||||
cp -f /usr/share/omarchy/etc-overrides/cups-cups-browsed.conf /etc/cups/cups-browsed.conf
|
cp -f /usr/share/omarchy/etc-overrides/cups-cups-browsed.conf /etc/cups/cups-browsed.conf
|
||||||
fi
|
fi
|
||||||
if [[ -f /etc/cups/cups-files.conf && -f /usr/share/omarchy/etc-overrides/cups-cups-files.conf ]]; then
|
|
||||||
systemd-sysusers /etc/sysusers.d/omarchy-cups-browsed.conf
|
|
||||||
install -m 0640 -o root -g cups /usr/share/omarchy/etc-overrides/cups-cups-files.conf /etc/cups/cups-files.conf
|
|
||||||
fi
|
|
||||||
cp -f /usr/share/omarchy/etc-overrides/plymouth-plymouthd.conf /etc/plymouth/plymouthd.conf
|
cp -f /usr/share/omarchy/etc-overrides/plymouth-plymouthd.conf /etc/plymouth/plymouthd.conf
|
||||||
cp -f /usr/share/omarchy/etc-overrides/dot.bashrc /etc/skel/.bashrc
|
cp -f /usr/share/omarchy/etc-overrides/dot.bashrc /etc/skel/.bashrc
|
||||||
chmod 0644 /etc/os-release /etc/security/faillock.conf /etc/nsswitch.conf \
|
chmod 0644 /etc/os-release /etc/security/faillock.conf /etc/nsswitch.conf \
|
||||||
|
|||||||
@@ -15,7 +15,12 @@ _commit='346e69e1cec6c4e8924531874af6ba010a1bc99e'
|
|||||||
pkgver=4.0.2
|
pkgver=4.0.2
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers'
|
pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers'
|
||||||
arch=('any')
|
# Arch-specific because the shipped /etc tree is not the same on every
|
||||||
|
# architecture: the Limine, mkinitcpio, zram and oomd drop-ins belong to the
|
||||||
|
# x86_64 boot and memory stack and are left out of the aarch64 package (see
|
||||||
|
# package()). makepkg only honours the arch-suffixed arrays below on
|
||||||
|
# arch-specific packages.
|
||||||
|
arch=('x86_64' 'aarch64')
|
||||||
url='https://github.com/basecamp/omarchy'
|
url='https://github.com/basecamp/omarchy'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
conflicts=('omarchy-settings-dev')
|
conflicts=('omarchy-settings-dev')
|
||||||
@@ -53,15 +58,10 @@ makedepends=(
|
|||||||
# scriptlet WILL clobber user edits on each upgrade (documented limitation).
|
# scriptlet WILL clobber user edits on each upgrade (documented limitation).
|
||||||
backup=(
|
backup=(
|
||||||
'etc/fastfetch/config.jsonc'
|
'etc/fastfetch/config.jsonc'
|
||||||
'etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
|
||||||
'etc/mkinitcpio.conf.d/thunderbolt_module.conf'
|
|
||||||
'etc/limine-entry-tool.d/omarchy-defaults.conf'
|
|
||||||
'etc/limine-entry-tool.d/omarchy-uki.conf'
|
|
||||||
'etc/docker/daemon.json'
|
'etc/docker/daemon.json'
|
||||||
'etc/gnupg/dirmngr.conf'
|
'etc/gnupg/dirmngr.conf'
|
||||||
'etc/sysctl.d/99-omarchy-sysctl.conf'
|
'etc/sysctl.d/99-omarchy-sysctl.conf'
|
||||||
'etc/sysctl.d/90-omarchy-file-watchers.conf'
|
'etc/sysctl.d/90-omarchy-file-watchers.conf'
|
||||||
'etc/modprobe.d/omarchy-usb-autosuspend.conf'
|
|
||||||
'etc/systemd/logind.conf.d/10-ignore-power-button.conf'
|
'etc/systemd/logind.conf.d/10-ignore-power-button.conf'
|
||||||
'etc/systemd/logind.conf.d/20-inhibit-delay.conf'
|
'etc/systemd/logind.conf.d/20-inhibit-delay.conf'
|
||||||
'etc/systemd/resolved.conf.d/10-disable-multicast.conf'
|
'etc/systemd/resolved.conf.d/10-disable-multicast.conf'
|
||||||
@@ -72,18 +72,31 @@ backup=(
|
|||||||
'etc/systemd/system/plocate-updatedb.service.d/ac-only.conf'
|
'etc/systemd/system/plocate-updatedb.service.d/ac-only.conf'
|
||||||
'etc/systemd/system.conf.d/20-omarchy-nofile.conf'
|
'etc/systemd/system.conf.d/20-omarchy-nofile.conf'
|
||||||
'etc/systemd/user.conf.d/20-omarchy-nofile.conf'
|
'etc/systemd/user.conf.d/20-omarchy-nofile.conf'
|
||||||
'etc/systemd/oomd.conf.d/10-omarchy.conf'
|
|
||||||
'etc/systemd/zram-generator.conf'
|
|
||||||
'etc/sddm.conf.d/10-theme.conf'
|
'etc/sddm.conf.d/10-theme.conf'
|
||||||
'etc/sddm.conf.d/10-wayland.conf'
|
'etc/sddm.conf.d/10-wayland.conf'
|
||||||
'etc/udev/rules.d/99-omarchy-power-profile.rules'
|
'etc/udev/rules.d/99-omarchy-power-profile.rules'
|
||||||
'etc/udev/rules.d/99-omarchy-wifi-powersave.rules'
|
'etc/udev/rules.d/99-omarchy-wifi-powersave.rules'
|
||||||
)
|
)
|
||||||
|
# backup has no arch-suffixed form, so the x86_64-only drop-ins join it here.
|
||||||
|
# Each of these paths is removed from the aarch64 package in package().
|
||||||
|
if [[ $CARCH == x86_64 ]]; then
|
||||||
|
backup+=(
|
||||||
|
'etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
||||||
|
'etc/mkinitcpio.conf.d/thunderbolt_module.conf'
|
||||||
|
'etc/limine-entry-tool.d/omarchy-defaults.conf'
|
||||||
|
'etc/limine-entry-tool.d/omarchy-uki.conf'
|
||||||
|
'etc/modprobe.d/omarchy-usb-autosuspend.conf'
|
||||||
|
'etc/systemd/oomd.conf.d/10-omarchy.conf'
|
||||||
|
'etc/systemd/zram-generator.conf'
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
optdepends=(
|
optdepends=(
|
||||||
'omarchy: Full Omarchy desktop'
|
'omarchy: Full Omarchy desktop'
|
||||||
'inxi: System information for omarchy-debug'
|
'inxi: System information for omarchy-debug'
|
||||||
'fastfetch: System information for omarchy-upload-log'
|
'fastfetch: System information for omarchy-upload-log'
|
||||||
|
)
|
||||||
|
optdepends_x86_64=(
|
||||||
'limine: Bootloader the shipped /etc/mkinitcpio.conf.d/ and /etc/limine-entry-tool.d/ drop-ins are for'
|
'limine: Bootloader the shipped /etc/mkinitcpio.conf.d/ and /etc/limine-entry-tool.d/ drop-ins are for'
|
||||||
'limine-mkinitcpio-hook: Picks up the shipped /etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
'limine-mkinitcpio-hook: Picks up the shipped /etc/mkinitcpio.conf.d/omarchy_hooks.conf'
|
||||||
'limine-snapper-sync: Boot-entry sync for snapper snapshots'
|
'limine-snapper-sync: Boot-entry sync for snapper snapshots'
|
||||||
@@ -142,6 +155,14 @@ package() {
|
|||||||
install -d "$pkgdir/usr/share/omarchy/config"
|
install -d "$pkgdir/usr/share/omarchy/config"
|
||||||
cp -a config/. "$pkgdir/usr/share/omarchy/config/"
|
cp -a config/. "$pkgdir/usr/share/omarchy/config/"
|
||||||
|
|
||||||
|
# The Limine/Snapper notifier has nothing to notify about without the x86_64
|
||||||
|
# boot stack; drop it from both seeds so aarch64 users don't autostart a
|
||||||
|
# helper whose backing tool is not installed.
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
rm -f "$pkgdir/etc/skel/.config/autostart/limine-snapper-notify.desktop" \
|
||||||
|
"$pkgdir/usr/share/omarchy/config/autostart/limine-snapper-notify.desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
# Package-owned defaults with real system/XDG locations. User config remains
|
# Package-owned defaults with real system/XDG locations. User config remains
|
||||||
# higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d,
|
# higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d,
|
||||||
# ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list,
|
# ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list,
|
||||||
@@ -169,9 +190,13 @@ package() {
|
|||||||
install -Dm644 default/systemd/user/omarchy-crash-watch.service "$pkgdir/usr/lib/systemd/user/omarchy-crash-watch.service"
|
install -Dm644 default/systemd/user/omarchy-crash-watch.service "$pkgdir/usr/lib/systemd/user/omarchy-crash-watch.service"
|
||||||
# Marks app.slice (and only app.slice) as a systemd-oomd kill candidate, so
|
# Marks app.slice (and only app.slice) as a systemd-oomd kill candidate, so
|
||||||
# memory pressure costs one app scope instead of the compositor session.
|
# memory pressure costs one app scope instead of the compositor session.
|
||||||
# Thresholds live in etc/systemd/oomd.conf.d/10-omarchy.conf.
|
# Thresholds live in etc/systemd/oomd.conf.d/10-omarchy.conf. Both this and
|
||||||
install -Dm644 default/systemd/user/app.slice.d/10-oomd.conf "$pkgdir/usr/lib/systemd/user/app.slice.d/10-oomd.conf"
|
# the zram vendor drop-in belong to the x86_64 memory stack: the aarch64
|
||||||
install -Dm644 default/systemd/zram-generator.conf.d/90-omarchy.conf "$pkgdir/usr/lib/systemd/zram-generator.conf.d/90-omarchy.conf"
|
# install neither enables systemd-oomd nor configures zram swap.
|
||||||
|
if [[ $CARCH == x86_64 ]]; then
|
||||||
|
install -Dm644 default/systemd/user/app.slice.d/10-oomd.conf "$pkgdir/usr/lib/systemd/user/app.slice.d/10-oomd.conf"
|
||||||
|
install -Dm644 default/systemd/zram-generator.conf.d/90-omarchy.conf "$pkgdir/usr/lib/systemd/zram-generator.conf.d/90-omarchy.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
# Same for applications/** — used by omarchy-refresh-applications,
|
# Same for applications/** — used by omarchy-refresh-applications,
|
||||||
# omarchy-install-gaming-*, etc. to copy .desktop files into ~/.local/share.
|
# omarchy-install-gaming-*, etc. to copy .desktop files into ~/.local/share.
|
||||||
@@ -185,6 +210,25 @@ package() {
|
|||||||
# stage separately below).
|
# stage separately below).
|
||||||
install -d "$pkgdir/etc"
|
install -d "$pkgdir/etc"
|
||||||
cp -a etc/. "$pkgdir/etc/"
|
cp -a etc/. "$pkgdir/etc/"
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
# The x86_64 boot stack's drop-ins must not ship on aarch64: mkinitcpio
|
||||||
|
# reads every file under /etc/mkinitcpio.conf.d/, so omarchy_hooks.conf
|
||||||
|
# would inject the Limine hooks into the Asahi kernel's initramfs, and the
|
||||||
|
# Limine entry-tool config has no consumer without Limine.
|
||||||
|
rm -rf "$pkgdir/etc/limine-entry-tool.d" "$pkgdir/etc/mkinitcpio.conf.d"
|
||||||
|
# Memory stack: no zram device or zswap on the aarch64 install, and
|
||||||
|
# systemd-oomd is not enabled there, so the vm.* reclaim tuning written
|
||||||
|
# for zram would be wrong for it. Keep only the network tuning.
|
||||||
|
rm -rf "$pkgdir/etc/systemd/oomd.conf.d"
|
||||||
|
rm -f "$pkgdir/etc/systemd/zram-generator.conf" "$pkgdir/etc/tmpfiles.d/omarchy-zswap.conf"
|
||||||
|
cat >"$pkgdir/etc/sysctl.d/99-omarchy-sysctl.conf" <<'EOF'
|
||||||
|
# Solve common flakiness with SSH (MTU discovery on flaky links).
|
||||||
|
net.ipv4.tcp_mtu_probing=1
|
||||||
|
EOF
|
||||||
|
# USB autosuspend is left at the kernel default on Apple Silicon.
|
||||||
|
rm -f "$pkgdir/etc/modprobe.d/omarchy-usb-autosuspend.conf"
|
||||||
|
rmdir "$pkgdir/etc/modprobe.d" "$pkgdir/etc/tmpfiles.d" 2>/dev/null || true
|
||||||
|
fi
|
||||||
# sudoers.d files must be mode 0440 or sudo will refuse them, and the
|
# sudoers.d files must be mode 0440 or sudo will refuse them, and the
|
||||||
# directory must be 0750 to match the Arch sudo package's filesystem
|
# directory must be 0750 to match the Arch sudo package's filesystem
|
||||||
# convention (otherwise pacman warns about dir-mode drift on every install).
|
# convention (otherwise pacman warns about dir-mode drift on every install).
|
||||||
@@ -275,6 +319,10 @@ EOF
|
|||||||
# live root config.
|
# live root config.
|
||||||
install -d "$pkgdir/usr/share/omarchy/default"
|
install -d "$pkgdir/usr/share/omarchy/default"
|
||||||
cp -a default/. "$pkgdir/usr/share/omarchy/default/"
|
cp -a default/. "$pkgdir/usr/share/omarchy/default/"
|
||||||
|
# The Limine template is read by the x86_64 ISO orchestrator only.
|
||||||
|
if [[ $CARCH == aarch64 ]]; then
|
||||||
|
rm -rf "$pkgdir/usr/share/omarchy/default/limine"
|
||||||
|
fi
|
||||||
|
|
||||||
# Snapper config template used by the install-time `snapper create-config`.
|
# Snapper config template used by the install-time `snapper create-config`.
|
||||||
install -Dm644 default/snapper/root \
|
install -Dm644 default/snapper/root \
|
||||||
|
|||||||
@@ -1,6 +1,31 @@
|
|||||||
|
_apple_silicon() {
|
||||||
|
[[ $(uname -m) == aarch64 ]] && grep -aq 'apple,' /proc/device-tree/compatible 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
_etc_overrides_apply() {
|
_etc_overrides_apply() {
|
||||||
echo "Applying Omarchy etc-overrides..."
|
echo "Applying Omarchy etc-overrides..."
|
||||||
|
|
||||||
|
# The hardened CUPS authorization applies on every platform. It waits for the
|
||||||
|
# file the cups package owns: an ISO bootstrap without cups installed is left
|
||||||
|
# alone and picks it up once cups lands.
|
||||||
|
if [[ -f /etc/cups/cups-files.conf && -f /usr/share/omarchy/etc-overrides/cups-cups-files.conf ]]; then
|
||||||
|
systemd-sysusers /etc/sysusers.d/omarchy-cups-browsed.conf
|
||||||
|
install -m 0640 -o root -g cups /usr/share/omarchy/etc-overrides/cups-cups-files.conf /etc/cups/cups-files.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apple Silicon installs run on Arch Linux ARM's base with the Asahi
|
||||||
|
# packages, and keep that system identity: /etc/os-release stays the
|
||||||
|
# symlink to the distribution's /usr/lib/os-release, and the PAM, NSS,
|
||||||
|
# plymouth and skel overrides below are not applied there.
|
||||||
|
if _apple_silicon; then
|
||||||
|
echo "Preserving Arch Linux ARM system configuration on Apple Silicon..."
|
||||||
|
if [[ -f /usr/lib/os-release ]]; then
|
||||||
|
rm -f /etc/os-release
|
||||||
|
ln -s ../usr/lib/os-release /etc/os-release
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Ensure parent dirs exist. cups-browsed may not be installed yet during ISO
|
# Ensure parent dirs exist. cups-browsed may not be installed yet during ISO
|
||||||
# bootstrap; do not create /etc/cups/cups-browsed.conf before the package is
|
# bootstrap; do not create /etc/cups/cups-browsed.conf before the package is
|
||||||
# installed or pacman will preserve its packaged file as a noisy .pacnew.
|
# installed or pacman will preserve its packaged file as a noisy .pacnew.
|
||||||
@@ -21,10 +46,6 @@ _etc_overrides_apply() {
|
|||||||
install -d /etc/cups
|
install -d /etc/cups
|
||||||
cp -f /usr/share/omarchy/etc-overrides/cups-cups-browsed.conf /etc/cups/cups-browsed.conf
|
cp -f /usr/share/omarchy/etc-overrides/cups-cups-browsed.conf /etc/cups/cups-browsed.conf
|
||||||
fi
|
fi
|
||||||
if [[ -f /etc/cups/cups-files.conf && -f /usr/share/omarchy/etc-overrides/cups-cups-files.conf ]]; then
|
|
||||||
systemd-sysusers /etc/sysusers.d/omarchy-cups-browsed.conf
|
|
||||||
install -m 0640 -o root -g cups /usr/share/omarchy/etc-overrides/cups-cups-files.conf /etc/cups/cups-files.conf
|
|
||||||
fi
|
|
||||||
cp -f /usr/share/omarchy/etc-overrides/plymouth-plymouthd.conf /etc/plymouth/plymouthd.conf
|
cp -f /usr/share/omarchy/etc-overrides/plymouth-plymouthd.conf /etc/plymouth/plymouthd.conf
|
||||||
cp -f /usr/share/omarchy/etc-overrides/dot.bashrc /etc/skel/.bashrc
|
cp -f /usr/share/omarchy/etc-overrides/dot.bashrc /etc/skel/.bashrc
|
||||||
chmod 0644 /etc/os-release /etc/security/faillock.conf /etc/nsswitch.conf \
|
chmod 0644 /etc/os-release /etc/security/faillock.conf /etc/nsswitch.conf \
|
||||||
|
|||||||
+27
-13
@@ -15,7 +15,10 @@ _commit='346e69e1cec6c4e8924531874af6ba010a1bc99e'
|
|||||||
pkgver=4.0.2
|
pkgver=4.0.2
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc='Beautiful, modern, and opinionated Arch Linux by DHH'
|
pkgdesc='Beautiful, modern, and opinionated Arch Linux by DHH'
|
||||||
arch=('any')
|
# The payload is architecture-independent, but the dependency set is not: the
|
||||||
|
# boot stack differs per architecture (see depends_x86_64 / depends_aarch64),
|
||||||
|
# and makepkg only honours arch-suffixed arrays on arch-specific packages.
|
||||||
|
arch=('x86_64' 'aarch64')
|
||||||
url='https://github.com/basecamp/omarchy'
|
url='https://github.com/basecamp/omarchy'
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
conflicts=('omarchy-dev')
|
conflicts=('omarchy-dev')
|
||||||
@@ -31,18 +34,6 @@ depends=(
|
|||||||
# from the same _commit, and forces the pair to upgrade together.
|
# from the same _commit, and forces the pair to upgrade together.
|
||||||
"omarchy-settings=${pkgver}"
|
"omarchy-settings=${pkgver}"
|
||||||
|
|
||||||
# Bootloader stack. Lives here rather than on omarchy-settings because
|
|
||||||
# omarchy-settings is also installed into the live ISO env (for plymouth
|
|
||||||
# / /etc/skel seeding), where the limine-mkinitcpio-hook would fail with
|
|
||||||
# 'Cannot detect an ESP path' inside the chroot. The omarchy-settings
|
|
||||||
# config drop-ins under /etc/mkinitcpio.conf.d/, /etc/limine-entry-tool.d/,
|
|
||||||
# and /etc/snapper/config-templates/ only do anything when these are
|
|
||||||
# installed alongside.
|
|
||||||
'limine'
|
|
||||||
'limine-mkinitcpio-hook'
|
|
||||||
'limine-snapper-sync'
|
|
||||||
'snapper'
|
|
||||||
|
|
||||||
# Wayland / Hyprland core
|
# Wayland / Hyprland core
|
||||||
'hyprland'
|
'hyprland'
|
||||||
'quickshell'
|
'quickshell'
|
||||||
@@ -69,6 +60,29 @@ depends=(
|
|||||||
'ttf-jetbrains-mono-nerd-basic'
|
'ttf-jetbrains-mono-nerd-basic'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Bootloader stack. Lives here rather than on omarchy-settings because
|
||||||
|
# omarchy-settings is also installed into the live ISO env (for plymouth
|
||||||
|
# / /etc/skel seeding), where the limine-mkinitcpio-hook would fail with
|
||||||
|
# 'Cannot detect an ESP path' inside the chroot. The omarchy-settings
|
||||||
|
# config drop-ins under /etc/mkinitcpio.conf.d/, /etc/limine-entry-tool.d/,
|
||||||
|
# and /etc/snapper/config-templates/ only do anything when these are
|
||||||
|
# installed alongside.
|
||||||
|
depends_x86_64=(
|
||||||
|
'limine'
|
||||||
|
'limine-mkinitcpio-hook'
|
||||||
|
'limine-snapper-sync'
|
||||||
|
'snapper'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Apple Silicon boots through m1n1 + GRUB from the Asahi packages and keeps
|
||||||
|
# Arch Linux ARM's kernel and boot layout, so the Limine/Snapper stack does not
|
||||||
|
# apply. Wi-Fi on the Broadcom parts only scans reliably through the iwd
|
||||||
|
# backend, which install/hardware/network.sh selects on Apple Silicon.
|
||||||
|
depends_aarch64=(
|
||||||
|
'iwd'
|
||||||
|
'networkmanager'
|
||||||
|
)
|
||||||
|
|
||||||
makedepends=(
|
makedepends=(
|
||||||
'git'
|
'git'
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
# Maintainer: Alexandre Bouvier <contact@amb.tf>
|
# Maintainer: Alexandre Bouvier <contact@amb.tf>
|
||||||
_pkgname=retroarch-joypad-autoconfig
|
_pkgname=retroarch-joypad-autoconfig
|
||||||
|
# Pinned so every architecture packages the same tree and a rebuild of the
|
||||||
|
# same pkgver reproduces the same contents; bump both together.
|
||||||
|
_commit=033151045d378b64e712a92592467800d7924227
|
||||||
pkgname=$_pkgname-git
|
pkgname=$_pkgname-git
|
||||||
pkgver=1.22.0.r24.g739cee1
|
pkgver=1.22.0.r96.g0331510
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="RetroArch joypad autoconfig files"
|
pkgdesc="RetroArch joypad autoconfig files"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
@@ -12,7 +15,7 @@ makedepends=('git')
|
|||||||
optdepends=('retroarch')
|
optdepends=('retroarch')
|
||||||
provides=("$_pkgname")
|
provides=("$_pkgname")
|
||||||
conflicts=("$_pkgname")
|
conflicts=("$_pkgname")
|
||||||
source=("$_pkgname::git+$url.git")
|
source=("$_pkgname::git+$url.git#commit=$_commit")
|
||||||
b2sums=('SKIP')
|
b2sums=('SKIP')
|
||||||
|
|
||||||
pkgver() {
|
pkgver() {
|
||||||
|
|||||||
Reference in new issue
Block a user