modular -> monolithic

Bernardo Innocenti bernie at codewiz.org
Sun Jan 20 16:23:22 PST 2008


Matthieu Herrb wrote:

> This has of course some constraints. The more proeminent one is that
> care should be taken to keep the interfaces between the X server and the
> drivers as stable as possible, and to provide some level of backward
> compatibility when this interface changes.

I agree on the necessity to keep the interface clean, for
software engineering reasons.  I don't necessarily agree on
the need to keep the ABI/API stable whenever we find
interesting improvements with a good cost-to-benefits ratio.


> This rule has been violated too often in the past hurting all 3rd party
>  module maintainers. But with ajax's work to clean up the interface, we
> should be able to do less mistakes like this from now.

AFAIK, most off-tree modules are finally migrating back to
being hosted on f.d.o., so it doesn't seem like a major
concern any more.

Also AFAIK, there are just 2 major proprietary drivers left,
with one of them being rapidly replaced in functionality and
performance by its open-source equivalent, and the other one
making promising steps forward.

I don't see the number of proprietary drivers going up in
the future, and I can certainly bet it will tend to go down
now that there's just one renitent hardware vendor being
left alone in their strategy of secrecy reminiscent of the
cold war ;-)


> Last point, one of the goals of the modularization effort was to make it
> possible to contribute to X.Org without having to build the whole tree.
> This is one very important one. Too many people struggle to build the
> whole X.Org without a real need for it. But without stable interfaces,
> it will never be possible to do any development on a system that is not
> shipping bleeding edge versions of all packages.

This is an important point.  Linux lets you build the kernel
proper without modules and even a single module, although
it's a bit too arcane for users to benefit.

We'd certainly benefit if one could just cd to a module
subdirectory and run make there.  As long as you accept
to configure the whole tree, the automake recursive makefiles
support this use case quite well.

-- 
 \___/
 |___|   Bernardo Innocenti - http://www.codewiz.org/
  \___\  One Laptop Per Child - http://www.laptop.org/



More information about the xorg mailing list