From 4c697a91425a84735451cc73f4a14ab3bb037b2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:05:47 +0200 Subject: [PATCH 1/6] fix: install antergos-release/grub-theme via basestrap (online), enable dinit-user-spawn, add dbus-dinit-user --- .../calamares-online/modules/basestrap.conf | 4 ++ .../etc/calamares/modules/netinstall.yaml | 43 ++++++++---- .../etc/calamares/modules/packagechooser.conf | 1 + .../calamares/modules/packagechooser_dm.conf | 67 +------------------ .../etc/calamares/modules/services-artix.conf | 2 + iso-profiles/antergos/profile.yaml | 8 +++ 6 files changed, 46 insertions(+), 79 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/basestrap.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/basestrap.conf index 6f43bc8..94f019e 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/basestrap.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/basestrap.conf @@ -24,9 +24,13 @@ pacman: mode: "0o755" keyrings: - artix + - antergos-next base_init: elogind operations: - install: - base + - antergos-next-keyring + - antergos-release + - antergos-grub-theme diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml index 2c091a8..91ef00f 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml @@ -23,19 +23,7 @@ - pipewire-alsa - pipewire-pulse - wireplumber - - networkmanager-dinit - - pipewire-dinit - - pipewire-pulse-dinit - - wireplumber-dinit - - dbus-dinit - - sddm-dinit - - syslog-ng-dinit - - acpid-dinit - - bluez-dinit - - cronie-dinit - - cups-dinit - - dhcpcd-dinit - - power-profiles-daemon-dinit + - name: "Kernel" description: "Kernel and modules" @@ -261,3 +249,32 @@ packages: - hyprland - xdg-desktop-portal-hyprland + +- name: "SDDM" + description: "SDDM display manager" + selected: false + packages: + - sddm + - sddm-dinit + - antergos-sddm-theme + +- name: "LightDM" + description: "LightDM display manager" + selected: false + packages: + - lightdm + - lightdm-dinit + +- name: "LXDM" + description: "LXDM display manager" + selected: false + packages: + - lxdm + - lxdm-dinit + +- name: "LY" + description: "LY display manager" + selected: false + packages: + - ly + - ly-dinit diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf index 28e51e8..aee0d95 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf @@ -78,6 +78,7 @@ items: - lm_sensors-dinit - openvpn-dinit - pipewire-dinit + - pipewire-pulse-dinit - power-profiles-daemon-dinit - rsync-dinit - wireplumber-dinit diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf index d8445d3..a63a656 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf @@ -1,7 +1,7 @@ --- mode: required -method: netinstall-add +method: netinstall-select labels: step: "Display Manager" @@ -14,83 +14,18 @@ items: name: sddm description: "QML-based display manager (KDE default)" screenshot: "" - netinstall: - name: "sddm" - description: "SDDM display manager" - selected: true - critical: true - immutable: false - expanded: true - hidden: false - subgroups: - - name: "SDDM" - description: "SDDM packages" - selected: true - hidden: true - packages: - - sddm - - sddm-dinit - - antergos-sddm-theme - id: LightDM name: lightdm description: "Cross-desktop display manager (GTK)" screenshot: "" - netinstall: - name: "lightdm" - description: "LightDM display manager" - selected: false - critical: true - immutable: false - expanded: true - hidden: false - subgroups: - - name: "LightDM" - description: "LightDM packages" - selected: true - hidden: true - packages: - - lightdm - - lightdm-dinit - id: LXDM name: lxdm description: "Lightweight display manager (LXDE)" screenshot: "" - netinstall: - name: "lxdm" - description: "LXDM display manager" - selected: false - critical: true - immutable: false - expanded: true - hidden: false - subgroups: - - name: "LXDM" - description: "LXDM packages" - selected: true - hidden: true - packages: - - lxdm - - lxdm-dinit - id: LY name: ly description: "Minimal TUI display manager" screenshot: "" - netinstall: - name: "ly" - description: "LY display manager" - selected: false - critical: true - immutable: false - expanded: true - hidden: false - subgroups: - - name: "LY" - description: "LY packages" - selected: true - hidden: true - packages: - - ly - - ly-dinit diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf index e5114bb..2cac80c 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf @@ -22,3 +22,5 @@ services: action: "enable" - name: "syslog-ng" action: "enable" + - name: "dinit-user-spawn" + action: "enable" diff --git a/iso-profiles/antergos/profile.yaml b/iso-profiles/antergos/profile.yaml index 19fa8ee..2257511 100644 --- a/iso-profiles/antergos/profile.yaml +++ b/iso-profiles/antergos/profile.yaml @@ -20,6 +20,7 @@ live-session: - wireplumber rootfs: packages: + - antergos-release - qt6-multimedia-ffmpeg - firefox - vlc @@ -54,6 +55,7 @@ rootfs: - bluez-dinit - cronie-dinit - dbus-dinit + - dbus-dinit-user - dhcpcd-dinit - power-profiles-daemon-dinit openrc: @@ -99,6 +101,12 @@ livefs: - okular - partitionmanager - tesseract-data-eng + - pipewire + - pipewire-pulse + - wireplumber + - sof-firmware + - alsa-firmware + - alsa-utils packages-init: dinit: - antergos-live-dinit From 9e55130d01a9ce710156334c0e86443e4378b158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:25:35 +0200 Subject: [PATCH 2/6] fix: set OpenRC critical to false (broken, should not block install) --- .../etc/calamares-online/modules/packagechooser.conf | 2 +- .../live-overlay/etc/calamares/modules/packagechooser.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf index a02eecd..65c4811 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf @@ -88,7 +88,7 @@ items: name: "openrc" description: "OpenRC init system" selected: false - critical: true + critical: false immutable: false expanded: true hidden: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf index aee0d95..a120773 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser.conf @@ -91,7 +91,7 @@ items: name: "openrc" description: "OpenRC init system" selected: false - critical: true + critical: false immutable: false expanded: true hidden: false From 809f8bcafa86b08e21409275637710cdcbe32bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:26:44 +0200 Subject: [PATCH 3/6] fix: address basestrap module findings (callback, umask guard, operations guard) --- .../lib/calamares/modules/basestrap/main.py | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py index 74ba773..246ae25 100644 --- a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py +++ b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py @@ -302,7 +302,7 @@ class PMPacman(PackageManager): """ Call pacman in a loop until it is successful or the number of retries is exceeded :param command: The pacman command to run - :param callback: An optional boolean that indicates if this pacman run should use the callback + :param callback: If True, process output using self.line_cb :return: """ @@ -310,7 +310,10 @@ class PMPacman(PackageManager): while pacman_count <= self.pacman_num_retries: pacman_count += 1 try: - host_env_process_output(command) + if callback: + host_env_process_output(command, callback=self.line_cb) + else: + host_env_process_output(command) return except subprocess.CalledProcessError: if pacman_count > self.pacman_num_retries: @@ -376,17 +379,19 @@ class PMPacman(PackageManager): def setup_requirements(self, rootdir): cal_umask = os.umask(0) - for target in self.pacman_requirements: - dest = rootdir + target["dest"] - if not os.path.exists(dest): - mod = int(target["mode"],8) - os.mkdir(dest, mode=mod) - libcalamares.utils.debug("Mode: {!s}".format(oct(mod))) - libcalamares.utils.debug("Created: {!s}".format(dest)) + try: + for target in self.pacman_requirements: + dest = rootdir + target["dest"] + if not os.path.exists(dest): + mod = int(target["mode"],8) + os.mkdir(dest, mode=mod) + libcalamares.utils.debug("Mode: {!s}".format(oct(mod))) + libcalamares.utils.debug("Created: {!s}".format(dest)) - path = join(rootdir, "run") - os.chmod(path, 0o755) - os.umask(cal_umask) + path = join(rootdir, "run") + os.chmod(path, 0o755) + finally: + os.umask(cal_umask) def copy_file(self, rootdir, f): if os.path.exists(join("/",f)): @@ -533,7 +538,11 @@ def run(): if provider in known_inits: init_pkg = "-".join([base_init, provider]) libcalamares.utils.debug("Init provider package added: {!s}".format(init_pkg)) - operations[0]["install"].append(init_pkg) + if operations and isinstance(operations[0], dict) and isinstance(operations[0].get("install"), list): + operations[0]["install"].append(init_pkg) + else: + libcalamares.utils.warning( + "Cannot add init provider package: missing operations[0]['install'] list") libcalamares.globalstorage.insert("initProvider", provider) libcalamares.globalstorage.insert("baseInit", base_init) break From ab6c1c7192d75b7c814ba6a81d42e6f897728a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:30:26 +0200 Subject: [PATCH 4/6] fix: address basestrap findings (format safety, umask removal, non-list guard) --- .../lib/calamares/modules/basestrap/main.py | 56 +++++++++---------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py index 246ae25..ccc7755 100644 --- a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py +++ b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py @@ -63,24 +63,22 @@ def pretty_status_message(): return custom_status_message if not group_packages: if (total_packages > 0): - # Outside the context of an operation - s = _("Processing packages (%(count)d / %(total)d)") - else: - s = _("Install packages.") - - elif mode_packages is INSTALL: - s = _n("Installing one package.", - "Installing %(num)d packages.", group_packages) - elif mode_packages is REMOVE: - s = _n("Removing one package.", - "Removing %(num)d packages.", group_packages) - else: - # No mode, generic description - s = _("Install packages.") - - return s % {"num": group_packages, + return _("Processing packages (%(count)d / %(total)d)") % { "count": completed_packages, "total": total_packages} + else: + return _("Install packages.") + + elif mode_packages is INSTALL: + return _n("Installing one package.", + "Installing %(num)d packages.", group_packages) % { + "num": group_packages} + elif mode_packages is REMOVE: + return _n("Removing one package.", + "Removing %(num)d packages.", group_packages) % { + "num": group_packages} + else: + return _("Install packages.") @@ -378,20 +376,17 @@ class PMPacman(PackageManager): return args def setup_requirements(self, rootdir): - cal_umask = os.umask(0) - try: - for target in self.pacman_requirements: - dest = rootdir + target["dest"] - if not os.path.exists(dest): - mod = int(target["mode"],8) - os.mkdir(dest, mode=mod) - libcalamares.utils.debug("Mode: {!s}".format(oct(mod))) - libcalamares.utils.debug("Created: {!s}".format(dest)) + for target in self.pacman_requirements: + dest = rootdir + target["dest"] + if not os.path.exists(dest): + mod = int(target["mode"],8) + os.mkdir(dest) + os.chmod(dest, mod) + libcalamares.utils.debug("Mode: {!s}".format(oct(mod))) + libcalamares.utils.debug("Created: {!s}".format(dest)) - path = join(rootdir, "run") - os.chmod(path, 0o755) - finally: - os.umask(cal_umask) + path = join(rootdir, "run") + os.chmod(path, 0o755) def copy_file(self, rootdir, f): if os.path.exists(join("/",f)): @@ -554,7 +549,8 @@ def run(): completed_packages = 0 for op in operations: for packagelist in op.values(): - total_packages += len(subst_locale(packagelist)) + if isinstance(packagelist, list): + total_packages += len(subst_locale(packagelist)) if not total_packages: # Avoids potential divide-by-zero in progress reporting From de2d0959a10865e4e0ad4f6a33c3ca152b60401c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:31:57 +0200 Subject: [PATCH 5/6] fix: pre-resolve subst_locale to avoid double call / locale drift --- .../usr/lib/calamares/modules/basestrap/main.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py index ccc7755..15549d2 100644 --- a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py +++ b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py @@ -547,16 +547,21 @@ def run(): mode_packages = None total_packages = 0 completed_packages = 0 + resolved_operations = [] for op in operations: - for packagelist in op.values(): - if isinstance(packagelist, list): - total_packages += len(subst_locale(packagelist)) + resolved_op = {} + for operation, packagelist in op.items(): + resolved_list = subst_locale(packagelist) if isinstance(packagelist, list) else packagelist + resolved_op[operation] = resolved_list + if isinstance(resolved_list, list): + total_packages += len(resolved_list) + resolved_operations.append(resolved_op) if not total_packages: # Avoids potential divide-by-zero in progress reporting return None - for entry in operations: + for entry in resolved_operations: group_packages = 0 libcalamares.utils.debug(pretty_name()) try: From daf7c6e648af5b68d1a9af5d95a2cdace5e0d14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= Date: Tue, 7 Jul 2026 19:33:19 +0200 Subject: [PATCH 6/6] chore: minor PEP8 fixes, add -Sy rationale comment --- .../usr/lib/calamares/modules/basestrap/main.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py index 15549d2..f90e32d 100644 --- a/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py +++ b/iso-profiles/antergos/live-overlay/usr/lib/calamares/modules/basestrap/main.py @@ -344,6 +344,7 @@ class PMPacman(PackageManager): if from_local: command.append("-U") else: + # -Sy is intentional: fresh chroot has no pacman DB, must sync first command.append("-Sy") command.append("--overwrite=*") @@ -379,7 +380,7 @@ class PMPacman(PackageManager): for target in self.pacman_requirements: dest = rootdir + target["dest"] if not os.path.exists(dest): - mod = int(target["mode"],8) + mod = int(target["mode"], 8) os.mkdir(dest) os.chmod(dest, mod) libcalamares.utils.debug("Mode: {!s}".format(oct(mod))) @@ -388,9 +389,9 @@ class PMPacman(PackageManager): path = join(rootdir, "run") os.chmod(path, 0o755) - def copy_file(self, rootdir, f): - if os.path.exists(join("/",f)): - shutil.copy2(join("/",f), join(rootdir, f)) + def copy_file(self, rootdir, relative_path): + if os.path.exists(join("/", relative_path)): + shutil.copy2(join("/", relative_path), join(rootdir, relative_path)) def init_keyring(self): target_env_process_output(["pacman-key", "--init"])