modular -> monolithic
libv at skynet.be
Mon Jan 21 11:47:07 PST 2008
On Mon, Jan 21, 2008 at 12:33:47PM +1000, Dave Airlie wrote:
> On Jan 21, 2008 10:47 AM, George Michaelson <ggm at pobox.com> wrote:
> > I have really only twiddled with Xorg as an early-adopter (l)user,
> > hassling developers. But I have looked at and built code
> > off GIT as well as packaged state.
> > I believe that the cost to the BSD camp in terms of re-factoring their
> > packaging model to take account of modular server build, and
> > disaggregated drivers has now been 'amortized' (for want of a better
> > word) and the benefits are coming in.
> > I can't speak for other distributions/OS but I suspect the same is
> > true. 1-2 years of painful integration is now either complete
> > or nearly so. A litany of documentation and supporting activity is now
> > built around things as they are.
> > To take the step of walking backwards into monolithic build, at this
> > point, would make quite a lot of people in your userbase very unhappy
> > (I believe). Do you really want to "just do it" this time? RIght now?
> The thing is modularity was about a whole lot more than
> server/drivers, it was primarily about removing the libs fonts and
> apps and Mesa builds from the server build, granted the drivers were
> done at the time but this may have been a step too far, I can't see
> rolling the drivers back into the server package being a major job for
> any distro.. the big thing of going to modular for distros was
> autotools and depend tree building..
This whole "partial" remonolithicalisation seems to not address the real
issue, which is a wrong general mindset, and instead this equals
sticking ones head in the sand and hoping that things magically go
There is no advantage to this as opposed to having a build test system
placing blame all the time. Each choice incurs pain, but one choice has
only pain and no undesired (or desired) sideeffects.
But i think there are some things you are working towards that you
aren't immediately telling us. Things which would be rather hard to
stomach, unless it gets sneaked up on all of us.
By moving drivers inside the tree again, a load of drivers will get
culled, right? And then the new monolith can be blamed for that.
The other "advantage" is that you can let the SDK bitrot and then
eventually kill that too.
So, you would be using the new monolith as an excuse to drop those
things you probably (wrongly) see as a "limiting factor" to development.
Remonolithicalisation will not solve the real issue, it will only
There will probably be a major cull. After which, rm -Rf will be the
standard way of dealing with no-longer-building drivers, that is, when
they are not one of the Big Three. Heck, i'm sure some people here would
prefer to cull all but the Big One.
Then there is the fact that drivers are not supposed to build outside of
the server any more, and are no longer made backwards, means that users
have to spend all their time compiling X servers. This to test bugfixes
for their drivers or to get the hardware support they need.
This does not exactly speed up driver development.
And this does not in any way change the problem of building a new X
stack from nothing.
Not many people in this whole discussion have really built X themselves
recently. I know i haven't done so for the last year or so, even though
i should. It is just too big a hassle.
Now, for me and for people who actually want to use X, building the
drivers is not the problem at all. They usually only have a limited
amount of dependencies. Xserver, libdrm, and that's pretty much it.
This is because building the drivers is easy once you have an Xserver.
Building the Xserver isn't, and this is why the various build scripts
and tools have existed, or why people generally have stopped building X.
So, joining Xserver and drivers has no advantage there.
All you will end up doing is slowing driver development.
Everybody agrees we need improved build breakage checking, and some way
of placing blame, so that people are not dragging their feet as much
on fixing drivers, or so that people make more carefull decisions
concerning api changes.
And while you might not like it, a tinderbox like system will not lead
to a wholesale driver cull, or subsequent culling of the SDK.
SUSE/Novell X Driver Developer.
More information about the xorg