Folks,
I've been watching the ongoing battles raging around systemd - and
being bitten by it, as I consider upgrading a bunch of Debian based
system, and dread the lurking dependencies that come with a radical
re-architecting of critical system components.
The weekend of Libreplanet seems to be as good an opportunity to raise
this, as any.
I've begun to wonder if there is a conflict between software freedom
and key pieces of software that create massive dependency webs. Or
put another way, "vendor lock-in."
The basic FSF definition of software freedom focuses on four basic
freedoms:
* The freedom to run the program as you wish, for any purpose
(freedom 0).
* The freedom to study how the program works, and change it so it does
your computing as you wish (freedom 1). Access to the source code is
a precondition for this.
* The freedom to redistribute copies so you can help your neighbor
(freedom 2).
* The freedom to distribute copies of your modified versions to others
(freedom 3). By doing this you can give the whole community a chance
to benefit from your changes. Access to the source code is a
precondition for this.
I begin to wonder if programs that create massive dependencies - such
as systemd - directly conflict with freedom 0. The more that a
specific piece of code becomes required, for other code to work - the
less free we become to run other programs. In general, there has
been a trend toward cross-platform development, along with cleanly
defined interfaces that allow for interchangeable parts (e.g., exim
vs. postfix vs. sendmail). To date, this carries down to the o/s
level (Linux vs. Hurd vs. BSD vs. Illumos). But systemd reverses
that, creating a LOT of vendor lock-in. (I expect there are other
examples, but systemd is the one that's on stage at the moment - some
would say the clear and present danger.)
One might also argue that systemd, in particular, conflicts with
freedom 1 - in terms of feature creep, poorly documented code,
changing APIs, etc., etc.
Which leads me to wonder if we, perhaps, need a 5th freedom:
* "Freedom from vendor lock-in," or words to that effect.
One might also want to consider whether the spread of spyware and
malware might inspire a 6th freedom:
* "Freedom from hidden software" or something like that.
Or maybe, these are both part of "freedom to control the configuration
of your computing system."
Opinions?
Miles Fidelman