Motivation
I was a happy Debian user from 1999. I had some experience with a few other
distros, toyed around with a few different BSD installations and occassionally
used different proprietary UNIX systems. Being aware of how different systems
address the packaging problem with pros and cons, I really liked most aspects
of Debian's choices.
However, there were a few things I always disliked about Debian's choices and
a few that went wrong over time:
- both building packages and installing packages (debconf) depend on perl
so it is effectively impossible to install a minimal system without perl
- plus lately it started to depend on python3 (Devuan beowulf: init
scripts depend on lsb-base which depends on python3-all)
- non-minimalistic defaults (such as tasksel or vi for editor); after a
base system installation I always have to go through the package list
and remove dozens of packages I will never need
- bootstraping doesn't work as good as it could, making installation painful:
my preferred way of installation is booting up a grml from a cd or
pendrive (could be any such distro) and running debootstrap; unfortunately
debootstrap is very sensitive to the host systems age, which means I
can not install recent Debian from a 10 years old grml - not because
there's any real good reason (e.g. kernel ABI incompatibility), but
because of debootstrap's unreasonable implicit dependencies
- the package build mechanism doesn't make life easy (TODO: link details)
- because of unreasonable administrative overhead, the gatekeeping effect
is high so it's not easy to get a new package in Debian even if you are
willing to maintain it
- from time to time I run into a major problem with dpkg status database
messed up (due to running out of disk space or blackout during upgrade);
it's very hard or impossible to completly restore such systems
- some of the bloat renders systems practically unusable; for example the
other day I tried to run gdb on one of my Devuan systems and it failed
to start up because of some cryptic python3 problem. I never even
wanted python in gdb! Such things conditioned me to avoid upgrading
my systems not wanting to fight breaks introduced by bloat I didn't want
to install anyway
- default settings of some software I use daily are just wrong; for example
mc installs with internal editor disabled. I hardly can imagine someone
starting mc and then wanting to use emacs as editor when emacs surely has
its internal file navigation tool...
I could fix a few of these problems by rolling my own alternative packages
but then I'd have to keep those packages up-to-date and the more packages I have
to fix the closer I get to actually having a Debian based distro of my own.
On the other hand, if all these were fixed, Devuan (Debian) would still not
be perfect because it's a generic distribution for a wide audience while I
am a console junkie with unusual preferences. One may reason I should go
for one of those "minimalistic" distros, like a smallish bsd, openwrt, alpine.
I have some minimal experience with some of them, but they are sligtly
further from optimum than Debian. The most common problems with them are:
- binary vs. source distro: I prefer binary packages because I have a large
number of systems using one of 3 architectures and it just doesn't
make sense to recompile the same shell or awk or gcc 15 times just because
I happen to have 15 installations
- they are not brave enough in minimalism: I want to have my gdb
without python support/dependency, whether it takes a
./configure option or a patch. I want my system to speak English and
I don't want to install language files with random software. I want to
be able to install a base system that boots up, gives me a shell but
doesn't even have a text editor. Most of the minimalistic distros are
not brave enough to actively turn off or even patch out bloat from
most software...
- ... but they try to save on the wrong side, for example saving on
packge descriptions, license information or trying to make the package
manager's feature set so small that it's nearly unusable
My conclusion is: I have to roll my own distro. For a long time I thought
it was impossible to do because it takes too much effort but lately I figured
there's a shortcut.