[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OT: Saving GNU/Linux FOSS in the age of Android and iOS



Sorry for this off topic post, but I think this list reaches many of
the people in Debian community who combined have some influence over
the direction of Debian.  If there is a better forum for this
discussion, please let me know.

Hackers love to share. GNU/Linux should embrace this. If they do,
GNU/Linux FOSS development could increase tenfold. That's the entire
point of my argument.  However, it requires a major change in how we
enable developers to contribute to GNU/Linux (including Debian).

GNU/Linux developers and the Debian devs need to wake up to the fact
that we've built a cathedral when we need a bazaar. As you've likely
read in the <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/";>paper
by that title</a>, Emacs was developed in a manner where every bit was
laid by expert craftsman under the watchful eye of RMS. Contributors
were not allowed to add to the cathedral willy-nilly. GNU was going to
be built right, even if RMS had to do it himself. Meanwhile, Linux
Torvalds threw out his kernel to the world and encouraged everyone to
use it and people started building all sorts of stuff. Anyone could
write a program today, and have it shared on the list tomorrow. That
was the bazaar, and it's where the heart and sole of GNU/Linux was
created, including the amazing Debian package manager. It is wonderful
to have pre-compiled repositories of verified code compiled from
source, and that's the foundation that made Debian great. The problem
is that this binary repository is managed lovingly by devoted monks.
Every brick is carefully examined by experts and nothing gets included
unless it passes the high standards of the Debian monastery. The good
news is that it's no longer just one man in charge. The bad news is
there's now a group of devoted monks in charge. The process of
carefully examining every brick and excluding most has not changed
since Emacs.

The magic happening in Android, and I hate to admit but iOS too, is
they've gone back to the bazaar model where anyone can share any app
they like. Sure, most of it is crap. In fact they probably have an app
for crap. Part of it is driven by developer greed, which is counter to
what Debian stands for, but most of it is just hackers enjoying their
new found freedom to share. Sure, the base is solid, and carefully
crafted and built at Google. You can't just write any old crud and
expect it to ship installed on every phone by default. You need the
default code base to "just work". However, anyone is enabled to share
whatever crap they like as an app in the market. That freedom to share
is missing in Debian.

To get there in GNU/Linux, I'm recommending that a basic "app" run in
a chroot and permissions jail, with hard links to the exact shared
libraries with which the app was originally built and tested.
Multiple copies of any given shared library only need to be on the
disk once.  Apps could have their own /usr/lib directories for their
shared libraries, but on the actual disk it should be
/Apps/MyStupidFartApp/usr/lib/libsndfile.so.whatever. This would keep
MyStupidFartApp from colliding with my friend's competing
BiggerAndBetterFarts app, as we're likely to want to install a
/etc/fart.conf. Later, when my friend submits a patch to libsndfile
which gets included in Debian, it totally breaks my poorly tested fart
app. Why should my popular fart app suffer because it has bugs that
were sensitized by a new libsndfile shared library? If we just run
them in their own jails, and never upgrade their shared libraries
(except in sever security situations), that fart app should continue
to run for decades. Why should I go through the Debian packaging and
review process to share a stupid buggy fart app? Why does Debian stand
in my way?

We've broken sharing in a major way, but it's more than just the
Debian packaging and review system at fault. We've also fragmented our
app distribution channels. For Android, if you're in the Market, which
any old fool can do with close to zero effort, everyone on the planet
can find and install your app with a few touches. In GNU/Linux land,
we've got Debian, Red Hat, Suse, Gentoo, and many other incompatible
distros where a binary from one will not run on the other. If I want
the whole world of deviant GNU/Linux hackers to enjoy the deep tones
of my stupid buggy fart app, I have to package it many different ways,
and pass the high standards of the monks of the various Linux base
distros. It's never going to happen.

Therefore, to get back to the bazaar, we have to allow apps to ship
with the various binary libraries that are not included and compatible
in every distro. When my fart app loads sound files, it should use the
exact compiled binary of libsndfile and all it's dependent binaries
all the way down to libc6 that it was tested with by the author.  This
way, the app will run on every recent Linux distro.  We need a place
were a stupid hacker can write a stupid fart app, and have every Linux
user farting away the next week. That's what we need to save
GNU/Linux.

We need a cross-distro App Center, where software can be published
with zero or minimal review, and then run on any GNU/Linux platform.
There has been efforts in this direction recently.  The Zero Install
guys are making good progress, for example.  There was a meeting
recently where various distros discussed a cross-platform package
installer, but it ended in everyone agreeing to continue with business
as usual with a band-aid on top that wont make any difference.

In any case, I'm not promoting a specific solution.  I just hope to
convince some of the Debian devs that there is a problem, and to start
thinking about a solution.  If Debian wants simply to be the software
run on servers in dark closets, fine.  Ignore the problem in that
case.  If Debian wants to be directly meaningful to as many people as
possible, it needs more apps, and to do that, we need to offer
developers a better way to reach users.

Bill


Reply to: