modular -> monolithic

Russell Shaw rjshaw at netspace.net.au
Wed Jan 23 19:19:02 PST 2008


Egbert Eich wrote:
> Russell Shaw writes:
>  > Egbert Eich wrote:
>  > 
>  > What is an out-of-band release?
>  > 
>  > In the monolithic model, drivers can still be released separately to X because
>  > they're plugins that can be installed into users systems without recompiling.
>  > 
> 
> Russell, I'm aware that driver are loadable binary modules - they have been
> since the year 2000 - and longer in the XFree86 3.99 development tree.
>  
> I'm talking about source code releases - not a binary blop that you pull out
> of a build.
> The driver maintainer does a source release by doing some constancy checks, 
> tagging it in the SCM, create a tarball (containing the version number in 
> the name), calculate an md5, push the tarball onto a public server and make 
> an annoucement (with a signed email containing the md5 sum).
> This way whoever is interested can just get the driver sources and compile
> them  for the Xserver he is using - preferrably the last stable released
> version.
> How do you make this work when the maintainer can no create a separate tar
> ball but just bumps a version number in come configure.ac file in git HEAD?
> 
> Do you expect the user to install a possibly unstable server from git HEAD 
> because he wants to use the released driver?

I was thinking of the way driver development for the kernel is done.

You download the parts of X required (using whatever version you
want, such as the last stable release of X), then hack on the driver
until bug-free and compiling it as a module.

It means that anyone that wants to compile a module needs some parts
of the X source tree available, but with the right design, that tree
won't be *everything* like it used to be.

If an api change to X is done, then it would be easy to download all
the X driver sources *into* the tree and do a complete build and fix
any breakages.

> Soon we will hear people complain: "I just want to exchange the driver,
> why do I have to get the entire server?"

Drivers are just a binary download from the distros website. Compiling a
driver is a developers job and so downloading a subset of the X tree to
do that shouldn't be a problem.

> Also, how do you want to build the driver for a different server when
> there is no separate build environment any more?

Just download an abi compatible version of the X tree and compile the
driver within it.

> And if we want to keep the separate build environment and make the driver
> self contained - where is the advantage?

Drivers are not self contained, because they interface with the internal
X apis, even if you install a driver standalone with autoconf.

For that reason, it doesn't make sense to me why you would want to do that,
unless you're making an input or graphics card driver for general purpose use
outside of X.
..

>  > Maybe some other parts of X could be made modules too.
> 
> ?! Have you ever looked at it? They are.



More information about the xorg mailing list