opinions please: expanding the definition of "software freedom"
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
* 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
One might also argue that systemd, in particular, conflicts with freedom
1 - in terms of feature creep, poorly documented code, changing APIs,
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."
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra