Commit Graph
32 Commits
Author SHA1 Message Date
c-ludenberg 3c6968ba56 chore(release): slip Arranxo date to 2026.08.17
Packages CI + ISO build take ~30+ min; move the release date forward
so the ISO and packages stay in sync. os-release and docs updated.
2026-08-16 23:50:41 +02:00
c-ludenberg 9c356b55d4 release: 2026.08.16 Arranxo (semi-hotfix) — os-release + release notes
- Bump os-release to 2026.08.16 Arranxo in root/live overlays
- Add live-overlay usr/lib/os-release copy for self-containment
- Rewrite latest-release section for the semi-hotfix (COSMIC DM fix,
  zsh lockout fix, new Plasma Minimal DE entry, jtadlock91 credit)
2026-08-16 21:34:42 +02:00
c-ludenberg 2570a6470a fix: batch non-critical packages in single pacman call, drop old plasma theme, enable filesystem picker
Non-critical packages (Desktop/Plasma group, Utilities) went through try_install which installed them one-at-a-time (45 individual pacman calls). Override operation_try_install in PMPacman to batch all plain-string packages into a single call, matching the behavior of operation_install.

Also:
- Remove antergos-plasma-theme from rootfs (profile.yaml) and both netinstall Plasma groups
- Add allowFileSystemTypeSelection: true to both antergos and minimal partition.conf
- Both main.py files (profile + minimal) get the batching fix
2026-07-19 19:19:58 +02:00
c-ludenberg d794336975 feat: community standards, AI moderator, SDDM switch, and README fix
so github told me my repo has NO community standards apparently
CODE_OF_CONDUCT? nonexistent. ISSUE_TEMPLATES? nada.
PULL_REQUEST_TEMPLATE? the void stared back.
and github profiles has a little checklist like im some
kind of degenerate who doesnt know how to run a project.

well NOW i have standards. and they are ROCK SOLID STABLE.
you want systemd? fork from before-systemd-change and figure
it out yourself, i gave you a numbered tutorial right in the
CoC. the AI moderator will read it and then politely but
firmly tell you to go fork yourself (the repo, not literally,
read the CoC).

also threw in the pixie SDDM switch that i apparently never
committed to the netinstall yamls either (kill me), the batch
install main.py cleanup, and fixed the README lying about
why artix.

DEUS VULT and please file your issues in the YAML forms
provided or the AI will judge you
2026-07-19 18:24:30 +02:00
c-ludenberg dcdc48817f docs: call out CodeQL/Copilot AI in warning header 2026-07-07 20:12:05 +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
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 daf7c6e648 chore: minor PEP8 fixes, add -Sy rationale comment 2026-07-07 19:33:19 +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 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 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 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
c-ludenberg 2c0d2424b4 fix: add --ignore logic to packages module too
The branding's netinstall.yaml has a Base System group with 'base'
that gets added to packageOperations. The packages module then
reinstalls base without --ignore, triggering the same init-logind
resolution bug. Adding the same --ignore logic from the basestrap
module.
2026-07-05 22:03:03 +02:00
c-ludenberg fe4e86257b fix: use --ignore instead of separate provider call to prevent init conflict
Using --ignore=elogind-dinit (and alphabetically-before providers for
other inits) prevents pacman --noconfirm from resolving init-logind
to the wrong provider. This is more robust than installing the
provider separately, which can fail if base's deps are missing.
2026-07-05 21:41:53 +02:00
c-ludenberg 81f215166d fix: install init-logind provider before base to avoid dinit-rc/openrc conflict
dinit-rc and openrc both provide AND conflict with virtual init-rc and
cannot coexist. When base depends on init-logind (virtual), pacman with
--noconfirm picks the first alphabetically -- elogind-dinit over
elogind-openrc -- pulling in dinit -> dinit-rc, which conflicts with
openrc (pulled by elogind-openrc via dbus-openrc).

Fix: use operations.insert(0, ...) so elogind-{init} installs as a
separate pacman call BEFORE base, satisfying init-logind before base
needs it.
2026-07-05 21:11:00 +02:00
c-ludenberg 64e0990a50 fix: restore base_init logic in basestrap with init-filtered netinstallAdd 2026-07-05 20:54:05 +02:00
c-ludenberg 8033575d50 fix: use --overwrite=* as single arg in packages module 2026-07-05 20:52:04 +02:00
c-ludenberg ac52aeea16 fix: restore packages/main.py corrupted by debugfs journal dump 2026-07-05 20:44:39 +02:00
c-ludenberg 6579acb421 fix: remove broken netinstallAdd/base_init logic from basestrap causing invalid elogind-sddm package 2026-07-05 20:39:14 +02:00
c-ludenberg 96c3d459c1 fix: add --overwrite=* to basestrap install to fix error code 1 2026-07-05 20:25:57 +02:00
c-ludenberg 2df1216df8 fix: restore packages/main.py custom module 2026-07-05 20:15:56 +02:00
c-ludenberg 75b454f3c8 fix: remove stray packages/main.py that got re-added 2026-07-05 20:08:20 +02:00
c-ludenberg 5f72d2b58b fix: add tesseract-data-eng to livefs to prevent provider prompt during basestrap 2026-07-05 20:07:52 +02:00
c-ludenberg b0e6525166 revert: restore original basestrap.conf, basestrap/main.py, remove broken packages/main.py 2026-07-05 20:03:00 +02:00
c-ludenberg 7beee69be4 feat: expand Calamares installer with DM chooser, explicit DE packages, and custom packages module
- Add packagechooser@dm instance for display manager selection (SDDM/LightDM/LXDM/LY)
- Expand desktop environment package lists (Xfce MATE LXQt i3) with explicit packages
- Change plasma -> plasma-meta and lsb-release -> antergos-lsb-release
- Add bootloader, displaymanager, grubcfg, postcfg, services-artix module configs
- Install antergos-release, antergos-wallpapers, antergos-grub-theme via basestrap
- Add custom packages/main.py with one-at-a-time install and --overwrite='*'
- Add --overwrite='*' to basestrap main.py for pacman -Sy operations
2026-07-04 22:44:04 +02:00
c-ludenberg 189b357d9b fix: install antergos-next-keyring during basestrap, remove artix-release from target
- Add antergos-next-keyring to basestrap install list so keyring files
  are available in the target early (uses host keyring which already
  trusts the Antergos key)
- Add antergos-next to keyrings list so pacman-key --populate imports
  the Antergos key into the target's keychain
- try_remove artix-release so antergos-release doesn't conflict when
  packages module runs later (replaces= PKGBUILD fix also pushed, but
  this works regardless of rebuild)
- Fix remove() method in basestrap main.py: was missing --root <target>,
  causing removals to operate on the HOST instead of the target
2026-07-02 23:37:16 +02:00
c-ludenberg 317725620b fix: patch basestrap module to remove hardcoded hasInternet check
The basestrap module from calamares-extensions had a hardcoded check that
skipped installing 'base' if hasInternet wasn't True in global storage.
This silently left the target empty, causing the packages module to fail
with error 127 (pacman not found in chroot).

Changes:
- Make hasInternet check configurable via skip_if_no_internet (default false),
  matching the packages module pattern
- Fix potential NameError when netinstallAdd isn't in global storage
- Copy basestrap.conf to global modules override so it's available to online
  mode (the launcher only copies settings.conf, not module configs)
2026-07-02 22:58:11 +02:00