Commit Graph
223 Commits
Author SHA1 Message Date
c-ludenberg 12088b6bb6 fix: add antergos-release to basestrap ops, fix SDDM theme selection 2026-07-11 19:13:30 +02:00
c-ludenberg ad897d4f7f docs: restore story README for GitLab 2026-07-10 22:20:47 +02:00
c-ludenberg a96c14a0d3 add pipewire.desktop autostart and configure SDDM Wayland compositor
Place pipewire.desktop in root-overlay /etc/skel/.config/autostart/
so PipeWire starts via XDG autostart on login via the patched
artix-pipewire-launcher (now supports dinit in our pipewire fork).

Configure SDDM [Wayland] section with kwin_wayland compositor
command for a Wayland-native greeter display.

Includes:
- buildiso: antergos theme symlinked as artix for prepare_grub
- profile.yaml: dinit-user-spawn -> userspawn-dinit, added
  dbus-dinit-user, pipewire-pulse-dinit, userspawn-dinit to livefs,
  antergos-lsb-release
- services-artix.conf: dinit-user-spawn -> userspawn
- basestrap.conf: xlibre-xserver for online install
- pacman.conf: IgnorePkg xorg-server to avoid conflict with xlibre
- sddm.conf: Wayland compositor command
- common.yaml: cleanup (dedup lsb-release, vi->ex-vi-compat,
  remove artix-grub-theme, jack2, noto-fonts-emoji)
- iso-x86_64.conf: IgnorePkg xorg-server for ISO build
2026-07-10 22:17:49 +02:00
c-ludenberg 89a8dbc66f docs: restore technical README for GitHub (cherry-pick to origin only, gitlab keeps story) 2026-07-10 17:56:12 +02:00
c-ludenberg d7f1397e50 fix: enable xlibre-xserver (use-xlibre: true) to resolve X provider conflicts
xlibre-xserver is the modern Artix unified X server that provides
both x11win-server (required by SDDM) and xorg-server (required by
all DEs). Setting use-xlibre: false caused the old split packages
(x11win-server from system repo vs xorg-server from world repo) to
conflict during online installs when users selected SDDM + any DE
that pulls xorg-server/xlibre-xserver.

Switched both full and minimal profiles to use-xlibre: true.
2026-07-08 21:36:51 +02:00
c-ludenberg 167f90ffe7 fix(antergos-minimal): add DM/DE compatibility warnings to packagechooser
SDDM pulls x11win-server (system repo) which conflicts with
xlibre-xserver (world repo) pulled by Cinnamon/MATE/LXQt.
Added warning descriptions to all DM choices suggesting
LightDM for incompatible combos.
2026-07-08 21:15:08 +02:00
c-ludenberg a042c45a8b fix(antergos-minimal): fix malformed YAML in minimal-info.conf, copy to online/offline module dirs
- YAML document separator '---' was glued to 'qmlSearch' key, causing
  the notesqml module to fall back to default example release notes
- Copied the config to calamares-online/modules/ and
  calamares-offline/modules/ so both modes can find it
2026-07-08 19:37:49 +02:00
c-ludenberg 47241c7218 Merge branch 'master' of https://gitlab.com/moonlightos-dev/antergos-iso 2026-07-08 18:51:58 +02:00
c-ludenberg 8698fe4995 feat: add Antergos NeXT Minimal (Xfce) profile — lightweight ISO edition
Introduces iso-profiles/antergos-minimal/, a new Xfce-based profile for
building a lightweight Antergos NeXT ISO under the 2 GB GitHub Releases
limit (the full Plasma profile produces ~2.15 GB).

Profile structure:
- profile.yaml: Xfce4 desktop, dinit-only init packages, Falkon browser,
  minimal app selection, antergos-xfce-theme included in rootfs
- root-overlay/: SDDM configured for xfce.desktop, GRUB theme pointed to
  antergos, xfconf settings for Antergos-NeXT GTK/xfwm4 theme
- live-overlay/: Calamares offline + online configs, netinstall with
  multiple DE options (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway,
  Hyprland), notesqml@minimal-info step explaining the edition rationale,
  basestrap operations for antergos-release/grub-theme/keyring, display
  manager selection (SDDM/LightDM/LXDM/LY), audio services (pipewire),
  and antergos-xfce-theme in the Xfce subgroup

Default Xfce theme is set to Antergos-NeXT (Numix-derived, blue accent)
via xfconf XML in both live-overlay and root-overlay skel directories.
2026-07-08 18:51:35 +02:00
RaveCore-Labs ce252c5625 Merge branch 'profile-trim' into 'master'
Profile trim: swap firefox->falkon, plasma->plasma-meta, drop mpv

See merge request moonlightos-dev/antergos-iso!4
2026-07-08 18:22:02 +02:00
c-ludenberg 5c7724bf18 Profile trim: swap firefox->falkon, plasma->plasma-meta, drop mpv
- firefox (286 MiB) -> falkon (16 MiB): -270 MiB, KDE-native browser
- plasma group (665 MiB) -> plasma-meta (328 MiB): -337 MiB, drops
  unneeded wallpapers, X11-only packages, and dev tools
- mpv removed: -30 MiB, music preview feature long gone

ISO estimated ~2.8 GB -> ~2.15 GB, matching Artix Plasma size.
2026-07-08 18:21:51 +02:00
c-ludenberg 64d5d7bf35 Profile trim: swap firefox->falkon, plasma->plasma-meta, drop mpv
- firefox (286 MiB) -> falkon (16 MiB): -270 MiB, KDE-native browser
- plasma group (665 MiB) -> plasma-meta (328 MiB): -337 MiB, drops
  unneeded wallpapers, X11-only packages, and dev tools
- mpv removed: -30 MiB, music preview feature long gone

ISO estimated ~2.8 GB -> ~2.15 GB, matching Artix Plasma size.
2026-07-08 18:21:41 +02:00
RaveCore-Labs 3d03d9b6ff Merge branch 'warn-codeql' into 'master'
docs: call out CodeQL/Copilot AI in warning header

See merge request moonlightos-dev/antergos-iso!3
2026-07-07 20:12:20 +02:00
c-ludenberg da3dc22379 docs: call out CodeQL/Copilot AI in warning header 2026-07-07 20:12:10 +02:00
c-ludenberg dcdc48817f docs: call out CodeQL/Copilot AI in warning header 2026-07-07 20:12:05 +02:00
RaveCore-Labs 9ce9203943 Merge branch 'revert-codeql' into 'master'
revert: basestrap/main.py to pre-CodeQL state with critical warning

See merge request moonlightos-dev/antergos-iso!2
2026-07-07 20:08:20 +02:00
c-ludenberg a9a46a519d revert: basestrap/main.py to pre-CodeQL state with critical warning
Restores original callback (hardcoded False), pretty_status_message refactor,
umask pattern, known_inits name, unguarded operations access, and inline
subst_locale — all of which were changed in earlier CodeQL fix commits.

Keeps only harmless changes: unused import removal (sys, re), PEP8 comma
space, and _change_mode zero-division guard.

Adds large ASCII warning header: DO NOT EDIT without full ISO test.
2026-07-07 20:08:07 +02:00
c-ludenberg 4b105c60da revert: basestrap/main.py to pre-CodeQL state with critical warning
Restores original callback (hardcoded False), pretty_status_message refactor,
umask pattern, known_inits name, unguarded operations access, and inline
subst_locale — all of which were changed in earlier CodeQL fix commits.

Keeps only harmless changes: unused import removal (sys, re), PEP8 comma
space, and _change_mode zero-division guard.

Adds large ASCII warning header: DO NOT EDIT without full ISO test.
2026-07-07 20:06:50 +02:00
RaveCore-Labs 1baaf5903f Merge branch 'fix-codeql' into 'master'
basestrap: fix remaining CodeQL findings

See merge request moonlightos-dev/antergos-iso!1
2026-07-07 19:40:36 +02:00
c-ludenberg 2d4694f3d0 basestrap: fix remaining CodeQL findings
- Guard _change_mode progress division against zero total_packages
- Document why -Syu is inappropriate in installer context (reproducibility)
- Promote known_inits to module-level KNOWN_INIT_PROVIDERS constant
2026-07-07 19:40:19 +02:00
c-ludenberg b4e1808e5f basestrap: fix remaining CodeQL findings
- Guard _change_mode progress division against zero total_packages
- Document why -Syu is inappropriate in installer context (reproducibility)
- Promote known_inits to module-level KNOWN_INIT_PROVIDERS constant
2026-07-07 19:37:54 +02:00
c-ludenberg 988547c94b fix: merge gitlab (keep -Sy with rationale comment) 2026-07-07 19:34:25 +02:00
c-ludenberg daf7c6e648 chore: minor PEP8 fixes, add -Sy rationale comment 2026-07-07 19:33:19 +02:00
c-ludenberg 7d081c4730 fix: pre-resolve subst_locale to avoid double call / locale drift 2026-07-07 19:32:02 +02:00
c-ludenberg de2d0959a1 fix: pre-resolve subst_locale to avoid double call / locale drift 2026-07-07 19:31:57 +02:00
c-ludenberg 0f3adc70b9 fix: address basestrap findings (format safety, umask removal, non-list guard) 2026-07-07 19:30:51 +02:00
c-ludenberg ab6c1c7192 fix: address basestrap findings (format safety, umask removal, non-list guard) 2026-07-07 19:30:26 +02:00
c-ludenberg 809f8bcafa fix: address basestrap module findings (callback, umask guard, operations guard) 2026-07-07 19:28:44 +02:00
c-ludenberg db809e6898 fix: address basestrap module findings (callback, -Sy->-S, umask guard, operations guard) 2026-07-07 19:26:50 +02:00
c-ludenberg 9dff90ef46 fix: set OpenRC critical to false (broken, should not block install) 2026-07-07 19:25:44 +02:00
c-ludenberg 9e55130d01 fix: set OpenRC critical to false (broken, should not block install) 2026-07-07 19:25:35 +02:00
c-ludenberg a381290740 fix: install antergos-release/grub-theme via basestrap (online), enable dinit-user-spawn, add dbus-dinit-user 2026-07-07 19:06:01 +02:00
c-ludenberg 4c697a9142 fix: install antergos-release/grub-theme via basestrap (online), enable dinit-user-spawn, add dbus-dinit-user 2026-07-07 19:05:47 +02:00
c-ludenberg f931f74fa9 docs: add real press links 2026-07-07 18:21:02 +02:00
c-ludenberg 194d169335 docs: add GitLab-specific README with the full story 2026-07-07 18:17:14 +02:00
c-ludenberg 5b0cbc5102 fix: install dinit service packages through netinstall Default group instead of packagechooser
basestrap module (from calamares-extensions) reads netinstallAdd only
for the init provider name (e.g. 'dinit') to add elogind-dinit. It
does NOT install the subgroup packages from the user's packagechooser
selection (networkmanager-dinit, pipewire-dinit, etc.). So these were
selected in the GUI but never present in the target system.

Since the netinstall view's packageOperations -> packages module flow
works correctly, move all required *-dinit service packages into the
netinstall.yaml Default group (online) and profile.yaml rootfs (offline).

Also revert settings.conf back to services-artix + postcfg — these
modules DO exist (from calamares-extensions) and work correctly when
the service packages are installed. Remove the unnecessary shellprocess
files that were added as a mistaken workaround.
2026-07-07 17:40:50 +02:00
c-ludenberg 0f3ed4f346 fix: replace broken services-artix/postcfg modules with shellprocess
services-artix and postcfg Calamares modules don't exist in upstream
Calamares (they're Garuda/Artix fork patches). Our custom Calamares
builds from pure upstream, so these steps get silently skipped during
installation, leaving NO services enabled in the installed system.

Replace them with shellprocess@enable-services, which uses the
built-in shellprocess module to run a post-install script that:
- Detects the init system (dinit/openrc/runit/s6)
- Enables all system services via boot.d symlinks or equivalent
- Sets up user services (pipewire, wireplumber) for the created user

Affects both online and offline installer settings.
2026-07-06 22:59:57 +02:00
c-ludenberg 2283ff2131 fix: add missing dinit service packages for live environment
add_svc_dinit() in services.sh creates boot.d symlinks for each service
listed in live-session: services: — but only if the service file exists
at /etc/dinit.d/<name>. Without the -dinit packages installed in the
livefs, all services were silently skipped and the display manager
never started.

Add acpid-dinit, bluez-dinit, cronie-dinit, cups-dinit,
networkmanager-dinit, power-profiles-daemon-dinit, sddm-dinit,
syslog-ng-dinit, dbus-dinit, pipewire-dinit, wireplumber-dinit
2026-07-06 21:41:48 +02:00
c-ludenberg 777dd07b74 fix: add branding, network, audio packages to netinstall + init chooser
- Plasma group in netinstall.yaml now includes antergos-plasma-theme,
  antergos-next-desktop-settings, and full KDE app list from branding
- Default group adds networkmanager, pipewire, pipewire-pulse,
  wireplumber, firefox, mesa for working network/audio out of the box
- Init chooser packagechooser.conf adds pipewire-dinit and
  wireplumber-dinit services to all four init sections (dinit, openrc,
  s6, runit) for audio service enablement
2026-07-06 20:49:18 +02:00
c-ludenberg 9bb6257dd2 fix: copy finished.conf to shared modules dir
finished.conf was only in calamares-online/modules/ and
calamares-offline/modules/, not in calamares/modules/. When
settings.conf gets copied at runtime, Calamares looks for
modules at /etc/calamares/modules/finished.conf which didn't
exist, silently falling back to defaults with systemctl reboot
(broken on Artix).
2026-07-06 20:24:53 +02:00
c-ludenberg 1233d21516 fix: mark OpenRC as broken in installer with warning
OpenRC conflicts with dinit-rc over virtual init-rc. Runit and S6
use different virtuals so they're fine. OpenRC stays listed but
with a visible warning until a fix is found.
2026-07-06 20:23:02 +02:00
c-ludenberg aad3d86af5 chore: clean up unreachable pass/else in run_pacman retry loop 2026-07-06 20:08:35 +02:00
c-ludenberg 023ee01cc2 chore: remove __pycache__ from repo, add to .gitignore 2026-07-06 20:07:37 +02:00
c-ludenberg 6d28e35d06 chore: fix CodeQL findings
- Remove unused sys import (basestrap/main.py)
- Remove unused target_env_call import (packages/main.py)
- Remove unused progress_match variable in both files
- Remove dead if False: callback branch (basestrap/main.py)
2026-07-06 20:07:32 +02:00
c-ludenberg 87518fba99 docs: add SECURITY.md, CONTRIBUTING.md, update maintainer name 2026-07-06 20:02:17 +02:00
c-ludenberg 5b4aade95f fix(ci): add sudo -E to build command, update IA metadata for Dinit 2026-07-06 19:56:25 +02:00
c-ludenberg 4fc2eaa262 docs: remove stale migration announcement, fix Polish README
- README.md: replace migration banner with branch link
- README.pl.md: same, plus Dlaczego Artix + OpenRC? -> Dlaczego Artix?
- docs/index.md: remove migration banner, update init refs
2026-07-06 19:51:35 +02:00
c-ludenberg 05ae4f25cc feat: switch default init from OpenRC to Dinit
All approaches to keep OpenRC as default failed:
  - --ignore: pacman ignores it during fresh install provider resolution
  - --assume-installed=init-logind: ALPM doesn't check assume-installed for virtual providers
  - --ask=12: infinite loop (pacman re-adds elogind-dinit after each removal)
  - dummy package in custom repo: init-rc conflict hits via different path

Dinit works because pacman --noconfirm naturally picks elogind-dinit
(alphabetically before elogind-openrc), pulling dinit-rc which has no
conflict. All inits (OpenRC, Runit, S6) remain selectable in the
online installer.

Changes:
  - buildiso: INITSYS='dinit', remove --assume-installed/--ask hacks
  - basestrap/main.py, packages/main.py: remove same hacks
  - profile.yaml: antergos-live-dinit for dinit, move openrc pkg to init-specific
  - packagechooser.conf (x2): default=Dinit, Dinit first in item list
  - packagechooser_dm.conf: *-dinit instead of *-openrc
  - README.md, README.pl.md, docs/*: update all OpenRC-first references
  - AGENTS.md: document dinit as default
2026-07-06 19:42:27 +02:00
c-ludenberg 64b08a95ad fix: replace --ignore with --assume-installed=init-logind to bypass provider selection
--ignore doesn't reliably prevent pacman from considering elogind-dinit
during fresh provider resolution on all pacman versions. --assume-installed
creates a dummy installed package for init-logind, satisfying the
dependency from base without needing any provider at all. The explicitly
listed elogind-openrc then gets installed normally and provides
init-logind for real.

Dropped --ignore entirely in favor of --assume-installed + --ask=4
(conflict resolution safety net). --assume-installed only added for
non-dinit providers (openrc, runit, s6).
2026-07-05 22:23:01 +02:00
c-ludenberg 69da290ac5 fix: add --ask=4 safety net for init-rc conflicts in all three pacman code paths
--ignore alone doesn't reliably prevent provider resolution during fresh
pacman -S installs. --ask=4 auto-answers YES to conflict resolution
questions (e.g. 'remove dinit-rc?') with --noconfirm, providing a safety
net when --ignore doesn't prevent the dinit-rc vs openrc conflict.

All three code paths updated:
  - buildiso: make_rootfs() basestrap call
  - basestrap/main.py: PMPacman.install()
  - packages/main.py: PMPacman.install()
2026-07-05 22:16:40 +02:00