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
This commit is contained in:
2026-07-06 19:42:27 +02:00
parent 64b08a95ad
commit 05ae4f25cc
15 changed files with 185 additions and 215 deletions
@@ -7,9 +7,79 @@ labels:
step: "Init selection"
step[de]: "Initauswahl"
default: OpenRC
default: Dinit
items:
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: ""
netinstall:
name: "dinit"
description: "Dinit init system"
selected: true
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- id: OpenRC
name: openrc
description: "OpenRC init system"
@@ -81,76 +151,6 @@ items:
- power-profiles-daemon-openrc
- rsync-openrc
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: ""
netinstall:
name: "dinit"
description: "Dinit init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- id: S6
name: s6
description: "S6 init system"
@@ -7,9 +7,79 @@ labels:
step: "Init selection"
step[de]: "Initauswahl"
default: OpenRC
default: Dinit
items:
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: "/etc/calamares/modules/images/dinit.svg"
netinstall:
name: "dinit"
description: "Dinit init system"
selected: true
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- id: OpenRC
name: openrc
description: "OpenRC init system"
@@ -81,76 +151,6 @@ items:
- power-profiles-daemon-openrc
- rsync-openrc
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: "/etc/calamares/modules/images/dinit.svg"
netinstall:
name: "dinit"
description: "Dinit init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- id: S6
name: s6
description: "S6 init system"
@@ -29,7 +29,7 @@ items:
hidden: true
packages:
- sddm
- sddm-openrc
- sddm-dinit
- antergos-sddm-theme
- id: LightDM
@@ -51,7 +51,7 @@ items:
hidden: true
packages:
- lightdm
- lightdm-openrc
- lightdm-dinit
- id: LXDM
name: lxdm
@@ -72,7 +72,7 @@ items:
hidden: true
packages:
- lxdm
- lxdm-openrc
- lxdm-dinit
- id: LY
name: ly
@@ -93,4 +93,4 @@ items:
hidden: true
packages:
- ly
- ly-openrc
- ly-dinit
@@ -343,18 +343,6 @@ class PMPacman(PackageManager):
# Don't report download progress for each file
command.append("--noprogressbar")
# Pre-tend init-logind is already provided so pacman's resolver
# skips provider selection entirely, preventing it from selecting
# elogind-dinit (alphabetically before elogind-openrc) which would
# pull in dinit -> dinit-rc and conflict with OpenRC.
if libcalamares.globalstorage.contains("initProvider"):
provider = libcalamares.globalstorage.value("initProvider")
if provider and provider != "dinit":
command.append("--assume-installed=init-logind")
# Safety net: auto-answer YES to conflict resolution
command.append("--ask=4")
if self.pacman_needed_only:
command.append("--needed")
@@ -221,18 +221,6 @@ class PMPacman(PackageManager):
command.append("--noprogressbar")
command.append("--overwrite=*")
# Pre-tend init-logind is already provided so pacman's resolver
# skips provider selection entirely, preventing it from selecting
# elogind-dinit (alphabetically before elogind-openrc) which would
# pull in dinit -> dinit-rc and conflict with OpenRC.
if libcalamares.globalstorage.contains("initProvider"):
provider = libcalamares.globalstorage.value("initProvider")
if provider and provider != "dinit":
command.append("--assume-installed=init-logind")
# Safety net: auto-answer YES to conflict resolution
command.append("--ask=4")
if self.pacman_needed_only is True:
command.append("--needed")
if self.pacman_disable_timeout is True:
+1 -2
View File
@@ -76,7 +76,6 @@ livefs:
- antergos-grub-live
- virtualbox-guest-utils
- broadcom-wl
- antergos-live-openrc
- antergos-grub-theme
- plasma
- ark
@@ -96,7 +95,7 @@ livefs:
- tesseract-data-eng
packages-init:
dinit:
- artix-live-dinit
- antergos-live-dinit
openrc:
- antergos-live-openrc
runit: