Commit Graph
32 Commits
Author SHA1 Message Date
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 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 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
c-ludenberg 10894d9d90 fix: add systemd-machine-id-setup stub for Calamares machineid module 2026-06-30 21:11:47 +02:00
c-ludenberg 9fd12c4c03 delete: deleted the tumor 2026-06-28 21:42:23 +02:00
c-ludenberg 24b529d576 fix: add antergos-wallpapers to rootfs packages, restore Install Artix hide
- antergos-wallpapers now installed into rootfs so the KDE wallpaper picker
  shows the Antergos wallpaper automatically (package installs to
  /usr/share/wallpapers/antergos-wallpaper/ with metadata.desktop).
- Restored calamares-config-switcher.desktop in live-overlay with
  NoDisplay=true to hide 'Install Artix' from the app menu. Previous deletion
  exposed the package version, making it visible again.
2026-06-28 21:05:27 +02:00
c-ludenberg 8af2e3ec1d fix: replace pkexec with sudo -E in calamares launcher, override stock calamares.desktop, remove redundant calamares-next.desktop 2026-06-28 18:14:13 +02:00
c-ludenberg 0d9b3af062 feat: migrate from archiso to artools — are you threatening me in SKECHERS?!
Strip out archiso (airootfs, efiboot, syslinux, mkarchiso, prepare.sh,
Dockerfile, mirrorlist, profiledef.sh, packages.x86_64, reset.sh,
run_before_squashfs.sh) and adopt artools buildiso with full antergos
iso-profiles. Bitch, you NEED therapy.

Are you threatening me?
- 154 files changed, 2804 insertions, 7352 deletions
- buildiso wrapper + iso-profiles/antergos/ (profile.yaml, root-overlay,
  live-overlay) + iso-profiles/common/common.yaml
- pacman.conf.d/iso-x86_64.conf with antergos-pkgs repo first

...Are you THREATENING me in SKECHERS?!
- Calamares offline + online module dirs, antergos-next branding
- componentName must match dir or Branding.cpp goes full T-square
- calamares before calamares-branding-antergos-next so --overwrite='*'
  wins correctly. YOU'RE ON YOUR FOURTH WIFE RIGHT NOW-
- calamares-next.desktop in live-overlay (/usr/share + /etc/skel/Desktop)
- netinstall.yaml bundled. No remote deps. Kill that bitch (Cnchi).

What fuckin' college would care if you drew some bullshit picture
about your feelings?
- CI: artixlinux/artixlinux:base container, install artools, buildiso -p
  antergos, IA upload with collection=open_source_software. Class is in
  session. Maybe I should grow 40 feet! Then you'd REALLY like me!
- IA: mediatype=software keeps us out of Community Texts jail. The
  question is; what's this stick gonna do?

It's honestly super humbling, when the trashiest repo you know;
probably coked out of its mind... says the most thoughtful thing
you've done in years.
- README.md rewritten with Artix/OpenRC/KDE badges, build instructions,
  migration notes. Nice SpongeBob impression. ...Nice SpongeBob impression.
- AGENTS.md updated (identity ritual, gotchas, commands, repo layout)
- Restore LICENSE, NOTICES, APOLOGY.txt, CHANGELOG.md from git history.
  Some files you just don't let die. No matter what, you NEVER use that
  N-word! (...should've said nothing.)
- .gitignore: work/ iso/ out/. Go work at Starbucks with your little apron.

So laugh all you want. Forget about me all you want. But at least
I'll be gorgeous forever. Mother, I'm in the SquashFS now.

Signed-off-by: Celestia Ludenberg <ash8820@proton.me>
2026-06-27 18:03:54 +02:00