Bug#727708: On diversity
What is Debian ? In one respect, Debian is an operating system. And
of course in another respect Debian is a community.
But there are two other aspects of Debian's nature that have been very
important for our success:
* Debian is a forum for cooperation and technical development.
Specifically Debian is a place where if you have some particular
goals, you can find other like-minded people and collaborate with
them to achieve them. Even if others in the project don't
necessarily think those goals are important.
(I remember when I was very dismissive of the idea that
cross-building Debian would ever be feasible or useful. I was
wrong; but more importantly, the fact that I - and some others -
thought that way was no blocker to those who wanted to the work.)
* Debian, as a piece of software, tries to be all things to all
people (within reason).
That is, the software we ship is both a working system, but also a
template, including all the pieces, for making your own operating
system, the way you want it.
This may mean that everything we do is slightly less slick in the
"usual" case, but I think the value of that flexibility massively
outweighs the costs. If others want to derive from us and make
more specific choices then that's good, but we should truly aim to
be as universal an upstream distro as we can be.
These two things are very closely related; arguably they are aspects
of the same principles.
We are reluctant to commit to any particular way of doing things;
reluctant to declare other people's goals out of our scope; and
reluctant to tell our users and downstreams that things Will Be Done
in a particular way. We make those firm choices only when absolutely
This flexibility and tolerance for divergence has made Debian an
extremely attractive target for everyone to work within, work on, and
derive from. I think it has been key to the success of the project.
Of course all this diversity brings substantial distribution-wide
costs. We do regularly struggle with issues where a particular goal
imposes costs on packages, and we try to minimise that.
But the flipside is that this acceptance for others' goals and choices
brings those people into our community, providing us with the manpower
we have used to build the best, the most flexible, and the most
derived-from Free Software operating system in the world.
I passionately believe that we need to retain this aspect of our
community, even if that causes us extra work; and even if it causes
friction with those who would like to make the world nice and simple
by only supporting certain goals, certain use cases, or certain
Now let me apply that to init systems:
If you think that the difference between upstart and systemd, or
between either of those and systemd, is not important, then perhaps
you could conclude that it was OK to impose a particular decision on
all of our users and all of our downstreams.
But I think the differences /are/ important.
That means that we need to be the venue where systemd proponents, and
upstart proponents, and openrc proponents, can make the best system
Naturally that will involve some compromises. That's an unavoidable
cost of trying to be the best place for everyone to pursue their own
I think in this case those compromises are absolutely essential. Not
just from a technical point of view because of the advantages of one
system over another. But also to ensure that Debian continues to be
the place where serious and dynamic people come to do their stuff.