User:lone Wolf

From ArchWiki
Jump to navigation Jump to search

OpenRC on Archlinux

I have been an Archlinux user since 2005 and intend to keep using archlinux.

Around 2012 Arch switched from sysinit to systemd. I didn't like the new init system and started looking for alternatives. Soon I was contributing to openrc on arch.

Late 2018 there were software problems with openrc servicefiles and I had big hardware problems. After the hardware problems had been solved I lacked time to solve the openrc issues so stuck with systemd.

Recently I looked at openrc again and felt a new design for dealing with servicefiles was needed. My goal is to have systemd and openrc coexist, with as little changes as possible. My personal workflow and packaging style will influence my choices heavily.

If readers want to comment, use my talk page.


OpenRC on Archlinux/Packaging notes

This subpage aims to details choices I made.

AUR OpenRC package

openrcAUR has many changes in version 0.42.1 (not uploaded yet)

  • sysvinit dependency removed
  • coexist with archlinux base meta-package, especially systemd & systemd-sysvcompat
  • no support for upstream/gentoo network configuration methods, use archlinux tools instead
  • redesigned service support

Services

Upstream often includes systemd servicefiles, but providing openrc servicefiles is rare. Openrc has some support for runit and s6 services, but those are also not commonly present. Creating services ourselves that stay close to upstream servicefiles for other init systems seems a better solution.

To keep the number of packages manageable while allowing flexibility I'll use split packages that won't auto-activate anything. All subpackages will have openrc prepended to their name, this should make it easy to find them. Currently i'm thinking there will be 3 packages.

openrc-base-services will have one choice for essential services , while openrc-extra-services will have alternative choices (can be more then one). openrc-optional-services is discussed further down.

Examples
Purpose openrc-base-services openrc-extra-services
device management udev
power management acpid
sound support alsa pulseaudio
wired network dhcpcd dhclient
wireless wpa_supplicant iwd
IPC dbus
cron cronie fcron
time synchronisation ntp chrony
logging syslog-ng
firewall nftables iptables

openrc-optional-services

Holds services not deemed essential, but useful.

lvm, cups , transmission are examples. Session management / polkit support (elogind, systemd-shim ) would also be placed here.