Important news and changelog
2017-07-27 -- Return of the Jedi
After the Great Init Purge, the Sythtemd Order installed their dark components on almost every system of the galaxy. All software was forced to depend on the greed, hatred and deception of sythtemd and the Knights of the Old Linux were either converted to the dark side or exiled to the outer rim distros. However, after the initial persecution, the most devoted and powerful Linux Knights re-grouped and...
...great pleasure and honour to announce the birth of a new project, it is! One with a very ambitious aim: to replace all the contaminated software packages of the official Arch repositories with systemd-free ones. This requires what might technically considered a mini-fork. Three new repositories,
[system], [world] and [galaxy] have been created which must be placed
before the official Arch ones. This ensures that upstream (if this term can be used anymore) updates will never break the new setup.
The [arch-openrc] and [arch-nosystemd] repos will stop being updated.
Existing OpenRC systems (whether arch-openrc or manjaro-openrc) can be converted to the new scheme with minimal effort. Older eudev-openrc ones might need some more tweaking, especially with concern to the desktop: consolekit2 is replaced by elogind. In any case, the procedure outlined below is meant for OpenRC systems only. Those with vanilla Arch or Manjaro must first
migrate as described.
In brief, the new repos must be placed before the official Arch or Manjaro ones. Then, sysvinit (provided now by openrc itself) and systemd-sysusers must be removed, as well as consolekit which is replaced by elogind. Next, the base and base devel group must be installed from the new repos and a full-system upgrade must be run. All -nosystemd and consolekit packages have to be replaced by their equivalent too. Finally udev, dbus and elogind services must be enabled and mkinitcpio has to be run for your kernel.
We need contributors to the project, help with hosting the repos, building packages, beta testers, feedback... you name it! Any help is welcome and highly appreciated, this is bigger than Arch/Manjaro-OpenRC!
All credits go to Jedi Masters Artoo, Chris and Aaditya!
The procedure is roughly the following, it widely depends on individual setups and it's still in beta.
PROCEED WITH CAUTION! You must be fairly confortable with Linux and keep an extra kernel in /boot and a bootable medium nearby.
Fresh install ISOs will be available soon are already available!
The guide is work-in-progress, updated with each report we receive. If something needs correction for your setup, report it!
1. All commands below must be run as root (hence the "#" sign). Put these repos in /etc/pacman.conf *before* the official Arch/Manjaro ones and disable [core] of the latter:
# Artix repos
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# Arch repos, overriden and [core] disabled
# [core]
# Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
The [multilib] repo will eventually be available too.
The [arch-openrc] and [arch-nosystemd] repos (or [openrc-eudev] if you're still on it) must be disabled.
2. Rename /etc/pacman.d/mirrorlist to /etc/pacman.d/mirrorlist-arch
# mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-arch
3. Create a new /etc/pacman.d/mirrorlist, refresh the database and install the new keyring. The new keyring can be installed either by lowering the security levels in pacman.conf or by ignoring pacman, see below.
# cat > /etc/pacman.d/mirrorlist <<EOF
# Worldwide mirrors
Server = https://mirrors.dotsrc.org/artix-linux/repos/\$repo/os/\$arch
Server = http://mirror.strits.dk/artix-linux/repos/\$repo/os/\$arch
Server = https://artix.mief.nl/repos/\$repo/os/\$arch
Server = http://mirror1.artixlinux.org/artix-linux/repos/\$repo/os/\$arch
EOF
Clean all cache, because some of our own packages will have a different signature and pacman will complain. If you have a large cache and want to keep it, don't -Scc but you'll be asked to remove some corrupted packages and re-download. Then, force sync:
# pacman -Scc && pacman -Syy
To allow installation of our keyring, change pacman.conf directives:
SigLevel = Never #Required DatabaseOptional
LocalFileSigLevel = Never #Optional
Run:
# pacman -S artix-keyring
# pacman-key --populate artix
And restore pacman.conf security (i.e. SigLevels). Alternatively, don't touch pacman.conf and install the required artoo's key manually:
# pacman -S artix-keyring
# pacman-key --populate artix
# pacman-key --lsign-key 78C9C713EAD7BEC69087447332E21894258C6105
People coming from Manjaro OpenRC, will additionally need to remove most Manjaro specific packages:
# pacman -Q | grep -i manjaro
Examine the list and fill in the following accordingly.
# mv /etc/conf.d/rpcbind /etc/conf.d/rpcbindmanj
# pacman -Rdd manjaro-system-ng (or manjaro-system)
# pacman -Rsc manjaro-tools-base manjaro-tools-pkg mhwd mhwd-db manjaro-firmware manjaro-settings-manager intel-ucode lsb-release rpcbind-openrc
4. First off, some packages must be removed manually (sysvinit is provided by openrc and consolekit is replaced by elogind).
# pacman -Rdd sysvinit udev-openrc consolekit consolekit-openrc
Install the dummy systemd packages
# pacman -S --asdeps systemd-dummy libsystemd-dummy
5. All your packages from base and base-devel groups must be replaced from the ones in [system]. Artix uses linux-lts as its default kernel, so it must be installed too, along with openrc-system. If you intend to use a third-party kernel, it's perfectly fine; however only linux-lts is provided at the moment in the Artix repositories.
# pacman -Su base base-devel openrc-system grub linux-lts linux-lts-headers
Otherwise you must find only the installed ones and replace them.
# pacman -Qg base base-devel | awk '{print $2}' | sort | uniq > installed
Assemble the entire list
# pacman -Sg base base-devel | awk '{print $2}' | sort | uniq >| groups
And compare them against it
# pacman -S `comm -2 installed groups`
6. All -nosystemd packages must be replaced with their equivalent from the new repos. If pacman refuses to uninstall one due to dependencies remove it with -Rdd and then install its equivalent. Do the same for -elogind, -consolekit and -upower packages. This means that polkit-consolekit, among others, must be replaced by polkit.
# for p in `pacman -Qq|grep nosystemd`; do pacman -S `sed s/-nosystemd// <<<$p`; done
# for p in `pacman -Qq|grep elogind`; do pacman -S `sed s/-elogind// <<<$p`; done
...
7. Remove more systemd cruft and then run a full system upgrade:
# pacman -Rsdd systemd-sysusers
# pacman -Su
# pacman -S --needed opensysusers
8. Make sure udev, dbus and elogind services are enabled
(they should already be, but it won't hurt to re-add them)
# rc-update add udev boot
# rc-update del elogind default
# rc-update add elogind boot
# rc-update add dbus default
9. Check if your mkinitcpio.conf has been renamed to .pacsave and recreate your kernel's initramfs with mkinitcpio. I also had to re-install grub in one laptop because it couldn't boot and dropped into a shell. Also check if your grub.cfg is still in place or pacsaved.
# mkinitcpio -p linux-lts (the default Artix kernel) or # mkinitcpio -P (all installed kernels)
# update-grub
The following commands must be run either from inside the migrating machine or through a "full" chroot, i.e.
mount --bind {/dev,/proc,/sys} to the chroot.
# grub-install /dev/sda (your boot disk or partition, for BIOS systems)
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub (for UEFI systems)
# grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub (ditto, a user reported success with this one)
10. Go to /etc/conf.d and merge those .pacnew, .pacorig or whatever config files. I use extra/meld for very quick, visual representation and merging of the differences. Check whether your /etc/{passwd,shadow,groups} have been renamed to .pacsaves!
11. Check if /sbin/init exists! If not, you missed something or hit a bug. Simply re-install openrc:
# pacman -S openrc
12. Find packages not in repos (i.e. from the AUR). Some might need updating/rebuilding or removal, if they're show-stoppers (unlikely):
# pacman -Qm
13. Graphics. This mostly concerns closed source binary drivers like NVidia's. You can either use nvidia-lts with our linux-lts or the nvidia-dkms package which builds the module for all installed kernels.
14. Reboot. Your normal menu or command line reboot action won't be present or work, just sync and umount your partitions manually, remount / read-only, hit the power button and profit!
Use some common sense when executing these instructions. I repeat, the project is still beta, do expect minor problems. Then, report glitches, errors, success stories to the
comments section.
2017-05-19 -- Help Wanted
We need help. More specifically, we need people able and willing to contribute to package maintenance on the AUR (openrc and nosystemd packages) and pull requests on our
github repo. You can either create new packages, adopt orphan ones or nag the maintainers to update theirs.
Perhaps we even need people who would help in the package building process, but please understand that such responsibility requires a certain level of expertise and trust.
Drop us an e-mail, we'd be glad to have you on board.
2017-05-18 -- The war isn't over, the bad guys haven't won. We're not shutting down.
We can still compete with systemd. We're constantly side by side, however short on time and resources. We shall never accept defeat.
We wish to thank each and everyone who contributes to this project.
Thanks for being with us, it's a wonderful ride!
(Obligatory April Fools refutation)
2017-04-01 -- The war is over, the bad guys have won. We're shutting down.
We can't compete anymore with systemd. We're constantly a step behind, always short on time and resources. It's about time we accepted defeat.
We wish to thank each and everyone who contributed to this project.
Thanks for having been with us, it's been a wonderful ride!
2016-12-06 -- Important repo updates.
The [openrc-eudev] repo will no longer be maintained, to avoid duplicate effort. People still using it should switch to the [arch-openrc] and [arch-nosystemd] repos instead. The latter are signed repositories, so you'll need to install
openrc-keyring to use them.
Report any issues to
Comments.
2016-12-05 -- Arch-OpenRC ISO updates.
A
new section for clean installations has been added.
2016-09-18 -- YADBU: yet another d-bus update.
And now for something completely different; dbus! Hopefully, you won't have to worry about it any more: dbus-nosystemd contains now the binaries and libs, while dbus-openrc is the init script provider. Say 'y' when asked to replace dbus-openrc with dbus-openrc.
WARNING: if you see any error messages from pacman about dbus-openrc or dbus-nosystemd during upgrade, you must reinstall manually before rebooting:
# pacman -S dbus-openrc dbus-nosystemd
2016-08-31 -- Important changes to packages.
Recent changes in eudev package names require manual intervention. Namely, eudev, eudev-systemd, libeudev, and libeudev-systemd must be installed with -Sdd:
pacman -Sdd eudev eudev-systemd libeudev libeudev-systemd
Additionally, dbus-openrc replaces libdbus, so answer "yes" when asked to remove libdbus. Users of the [arch-openrc] and [arch-nosystemd] repos with dbus-nosystemd are advised to remove it by installing the new all-inclusive dbus-openrc package. Depending on your setup and dependencies you might need to force the dbus-openrc upgrade with -Sdd:
pacman -Sdd dbus-openrc
Afterwards, proceed with
"pacman -Su" as normally. Please, report any glitches to our
comments mini-forum.
2016-05-06 -- Arch-OpenRC ISO updates.
With the latest
OpenRC ISO the installation procedure is the exact same as of the official Archlinux ISO, except it installs openrc instead of systemd. You simply "pacstrap -i /mnt base" like normal; the [arch-openrc] repo and the GPG key are added automatically. A new repo,
[arch-nosystemd], containing (surprise) all the nosystemd AUR packages, has split off the [arch-openrc] one, to better accommodate people who want a more obvious separation of conflicting packages with upstream.
People using the [openrc-eudev] repo should continue using it as the repos contain more or less the same packages, with some differences in the groups, because the former repo is intended for clean OpenRC installations. A merge is under consideration.
2016-04-06 -- yet another dbus update.
The dbus-openrc package from the Manjaro OpenRC project has been reduced to just an init script and follows the ISO date versioning scheme (dbus-openrc-20160329). This eases the maintenance effort on the Manjaro-OpenRC team since they now use the upstream dbus package. However, the [openrc-eudev] repo is targetted mainly towards the Archland where alternative init systems are not in the official repos like Manjaro and some unexpected new systemd "feature" might eventually break things. Therefore, I've decided to keep a full dbus-openrc package in our repo (1.10.8-4), which conflicts with and replaces the initscript-only one. For now, the end-user experience should be the same with both versions, so you can keep whatever version you like.
2016-03-22 -- dbus strikes again.
As usual, the dbus update has created a mess. First, an upstream change in the shebang of /etc/init.d/dbus made the init script inaccessible, which was fixed downstream immediately. But then, dbus-1.10.8 decided to pull silently libaudit.so from [extra]/audit in my build system, and users not having audit in theirs were screwed, as the PKGBUILD neither lists it as a dependency nor enables it at configure. Hopefully, most of them recognized the source of the problem, installed audit and got around it. Anyway, dbus-openrc-1.10.8-3 is audit-free (and much smaller at that) and problem-free.
2016-02-27 -- Clean Arch-OpenRC ISO!
An
Arch-OpenRC installation ISO is available for new systemd-free installations! Read the on-page instructions for more information.
2016-02-03 -- New look.
A new, more colourful CSS and table-less redesign of the installation page, another kind contribution of parazyd /
projectarch.tk
2016-01-28 -- New mirror.
A
second repo mirror, courtesy of parazyd /
projectarch.tk
[openrc-eudev]
SigLevel = PackageOptional
Server = http://downloads.sourceforge.net/project/archopenrc/\$repo/\$arch
Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/\$repo/\$arch
Server = https://pub.projectarch.tk/mirror/archopenrc/\$repo/\$arch
2016-01-15 -- New mirror.
A
new unofficial OpenRC repository has come online (x86_64 only), thanks to jaco!
[openrc]
Server = http://www.autistici.org/arch-openrc/repo/
2015-11-14 -- dbus update.
dbus-openrc-1.10.2 is in the repo, feel free to upgrade
2015-11-03 -- dbus problems.
libdbus-1.10.2 from [testing] breaks dbus-daemon and you can't login to desktop
Downgrade to libdbus-1.10.0 (pacman -S core/libdbus) until dbus-openrc-1.10.2 is available.
2015-11-02 -- A repo mirror at heanet
A user notified us about a mirror of [openrc-eudev] at
HEAnet.ie, which should resolve any pacman 404's.
Append "Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/\$repo/\$arch" to your [openrc-eudev] section and profit:
[openrc-eudev]
SigLevel = PackageOptional
Server = http://downloads.sourceforge.net/project/archopenrc/\$repo/\$arch
Server = ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/\$repo/\$arch
2015-10-17 -- openrc-core renamed to openrc
This created a good mess, as some packages (mostly from the AUR) still depend on openrc-core and manual intervention is required to solve some dependency problems.
1. Install dbus-openrc, ignoring any deps (answer Y to remove any conflicts, as dbus-nosystemd):
pacman -Syydd dbus-openrc
2. Fully update normally (say Y to replace openrc-core with openrc):
pacman -Su
3. If pacman complains about conflicting packages, pacman -Rdd them and reinstall after step 4
4. Install as needed udev-openrc and netifrc:
pacman -S --needed udev-openrc netifrc
5. Go to /etc/conf.d and check if your original net, hostname, keymaps and consolefont files have moved to *.pacsave (they should have). Restore. Do the same for /etc/rc.conf.
6. Do not reboot unless all above steps are completed.
7. If you had updated before you read the news and borked your box, you should still be able to boot into console (see step 8). From there, manually insmod your network interface (hwd or hwdetect --show-net helps tremendously if you don't remember your card's module name), assign it an IP and default route (or try dhcpcd/dchlient) and install udev-openrc, netifrc and dbus-openrc as described above. Then restore the pacsaves in /etc/conf.d and /etc/rc.conf.pacsave.
8. Chances are you're autostarting a window manager; if that's the case and you arrive at your graphical login without a keyboard and mouse, append "softlevel=single" (if that fails, use "init=/bin/sh" instead) to your kernel command line at your bootloader. Then remount / read-write (mount / -o remount,rw) and follow step 7.
2015-09-20 -- ncurses-6 update
A major ncurses update from 5.9 to 6.0 needed a rebuild of openrc-core. Hopefully, not many were affected.