Modular X.org and the Unichrome forks.
Luc Verhaegen
libv at skynet.be
Wed Dec 21 19:36:04 PST 2005
As many are probably aware, unichrome.sf.net split up in the past year.
I remained at the project i started, while Thomas Hellstrom created
openchrome.org.
Recently, the X.org via driver has been altered by both sides, in a
civilised way (fairly - via_dri.h 5.0.0 shouldn't get a repeat). Before
the fork I was pulling in unichrome.sf.net releases, a few weeks after
each release. After the fork, unichrome.sf.net CVS code (there were no
releases for a while) plus some changes were added to the tree by
Thomas. In the run up to the X.org release, bugfixes were committed by
both.
Now the tree is re-opened and the "bugfixes only" regulation is no more.
I've always tried to keep this whole mess as far away from X.org as
possible (except for the endless whining on irc, it had to spill out
somewhere :)), but now things have come to a point where it can no
longer be ignored. It's time to bring some clarity in this whole issue.
In the time since the fork both trees have grown apart quite
considerably:
unichrome.sf.net code:
- VBE modesetting removed (only hurts unichrome Pro panels - VBE was
part of the reason for the fork)
- XvMC removed.
- Cache prefetching memcpy removed.
- Clean and maintainable Xv implementation.
- Clean driver level fb allocation abstraction.
- Very high degree of output device seperation. (my pet peeve)
- Chrontel CH7011 TV encoder support.
Openchrome.org code:
- Kept XvMC.
- Kept VBE modesetting for unichrome pro panel.
- Kept cache prefetching memcpy.
- Routine to generate unichrome Pro dotclocks.
- Dma blit (drm).
- EXA support plus XAA changes.
- Expands vt162x code with some support for vt1625 (in as far as either
can claim support for any of the VIA TV encoders - no free datasheets
:))
These are by no means complete lists, but they do outline in what ways
both trees have grown apart.
It has become close to impossible to merge the unichrome.sf.net code
into the openchrome code, the only feasible merge direction is the other
way around. The unichrome.sf.net code has seen fundamental changes,
while the major openchrome changes mainly were additions. I do have to
commend Thomas on his drm dma blit (a good solution for the painful Xv
buffer copy which i will support really soon) and Exa support.
But this is not the solution I have been suggested and which I am going
to repeat now.
Every time the fork and the repercussions on X.org have been discussed,
the option to "deprecate" the X.org side driver was mentioned. This
means that the driver is maintained on a "bugfixes only" level, as it
has in the last few months. This probably translates to a cvs remove on
HEAD, leaving the code in the monolith and 7.0 branch for bugfixes
releases.
This means that, unless the fork is resolved, future X releases will not
officially endorse any unichrome driver. X.org will not choose a side.
For X.org and especially for release managers, this means one less thing
to worry about. You can just point the bugs to either of us, and the
issue will be handled by us. You do not have to do deal with the issues
of two people at odds committing conflicting code to your CVS tree.
This will also remove a third "fork" from this mess, and bring a lot
more clarity, for both users, distributors and developers.
For distributors, the fact that the driver isn't maintained in X
directly is no longer a problem, thanks to the great work put into
modularising X. You are now free to package whichever you want, and you
can place blame accordingly :). I'm sure both Thomas and I will do
whatever is in our power to make this no more painful than it needs to
be.
I'm also certain that both of us will continue to contribute to the
higher levels of X as we have done in the past.
As for the projects themselves, this allows each project to progress on
their own merit, as this means a level playing field for both. It's
healthy competition, that drives code further, faster, the way free
software is meant to be. It also gives us both the ability to continue
down the paths we each have chosen.
I hope that this clears this painful situation, in a way that is
acceptable for all parties.
Luc Verhaegen.
More information about the xorg
mailing list