____ _
/ ___| _ __ __ _ _ __| | __
\___ \| '_ \ / _` | '__| |/ /
___) | |_) | (_| | | | <
|____/| .__/ \__,_|_| |_|\_\
|_|
About
Spark is an Arch Linux meta-distro with systemd swapped out for other solutions that are arguably even worse.
Disclaimer
Spark is a personal project made to fit my personal tastes. I do not promise to provide support to you. Should you decide to use it, it may very well happen that you will be on your own facing any issues that may arise.
Prerequisites
- An understanding of the inner workings of linux-based systems
- Familiarity with the Arch Linux install procedure.
- Either a running linux OS or a live medium.
Installation
The installation process is very similar to Arch's, so you can mostly follow the Arch Install Guide. The differences, as follows:
Instead of installing the base package group with pacstrap, download the latest rootfs tarball and smear it all over the target dir. Provided you have a decent enough connection, you can do this:
curl https://mirror.fleshless.org/spark/rootfs/latest.tar.zst | zstd -cd | tar -C /mnt -x
You should run pacman -Suy
in the chroot, as the rootfs is only updated once a month or so.
There is no prebuilt kernel in the rootfs. You can either build your own or install the linux package.
There is no (e)udev (or a device node manager of any kind ) in the rootfs. You will have to choose and install the one you want. Note that if you go for the stock Arch kernel, you will need systemd-udev or eudev to provide the udev hook.
There is a central config file: /etc/rc.conf
. Modify it to your liking.
Add init=/usr/bin/sinit
to your kernel command line.
/proc is mounted with hidepid=2 by default, so users only see their own processes.
Code
Most of the related code is found here.
Addendum
ssm
If you write new init scripts for ssm, consider showing them to me. I will add them to the services repo if they are clean enough.
Device permissions
If you are not using a logind implementation (elogind from gentoo is a thing), you would have to add users to respective groups for them to use devices. i.e. video, audio, fuse and such.
Device node managers
If you choose not to use a device manager that provides libudev (udev or eudev), hotplugging in X.Org will not work. You will need to set set up your input devices in X.org. You can also do that by installing xorg-noudev-conf from AUR or the spark repo.
(u|w|b)tmp
spark-rc creates /run/utmp by default. To use wtmp and btmp, you will have to create them by hand or add them to /etc/rc.conf
Edits
- Removed the Lennart quote about disabled people. I thought it was an obvious joke, but it generated some tension, and that's just not good.
- Switched the rootfs to zst.
Contacts
There's an IRC channel on OFTC: #spark
Also see the about page.