____ _ / ___| _ __ __ _ _ __| | __ \___ \| '_ \ / _` | '__| |/ / ___) | |_) | (_| | | | < |____/| .__/ \__,_|_| |_|\_\ |_| 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. [latest rootfs tarball]: https://builder.fleshless.org/rootfs [Arch Install Guide]: https://wiki.archlinux.org/index.php/installation_guide [eudev]: https://github.com/gentoo/eudev [set up your input devices in X.org]: https://github.com/slashbeast/mdev-like-a-boss/tree/master/xorg.conf.d [about]: /pages/about.html [build your own]: https://kernel.org/ [conference talk]: https://www.youtube.com/watch?v=ZTdUmlGxVo0 [here]: https://code.fleshless.org/Spark