Subject: Experience with modular-x11
To: None <tech-pkg@NetBSD.org, tech-x11@NetBSD.org>
From: Vincent <10.50@free.fr>
List: tech-x11
Date: 12/13/2006 11:43:13
Hi there,
I don't know if this will be useful to anyone, but since nobody appears 
to use the modular-x11-server yet, here is what I had to suffer to get 
something sane and running.

The first thing is that the wrapper script incorrectly copies only part 
of the .pc files installed by the libX* libraries. Therefore, albeit the 
dependency check works, the configure script fails complaining about 
missing prerequisites. This can be fixed by manually copying all the .pc 
in the /usr/pkg/lib/pkgconfig files into .buildlink/lib/pkgconfig.

Next, sometimes one of the library depends on the "old" xorg. This 
dependency must be manually erased by editing the work.xxx/.depend file. 
This process must be carried out for all softwares that depend on 
xorg-libs-6.9.0, and also for other dependencies like xcursor, Xft, xpm 
and other that are now embedded in libX...

But it is then impossible to build the package, because buildlink 
reports that xorg-libs is missing during the buildlink phase. One must 
therefore create artificial .buildlink_xorg-libs_done in the 
work.xxx/.buildlink repertory, and so on, one fake file per cancelled 
dependency in the .depends file. My experience shows that practically 
only three majors fake files are to be created: xorg-libs, xcursor and xpm.

The next thing to do is to copy explicitly all the libX* libraries into 
the .buildlink/lib directory, because the script fails to do so, and the 
link phase may fail.

Once all these steps are carried out, the package compiles and installs 
normally.

All these operations can be more or less compiled into a single simple 
shell script, except for the .depend editing (though...).

Of course, all this mess is needed only if you want to preserve the 
dependency hierarchy as handled by the package mechanism.

Some packages won't build at all, especially those that depends on imake 
or old X-related building tools. Up to now, this has been critical only 
for nas (which is needed by mplayer or xine) and xv. Xv can be replaced 
easily by a more modern software like ImageMagick or the like. For nas, 
one must either build it on another machine still equipped with the old 
xorg, or install the binary (which failed for me).

As for the impression, having an old ATI Radeon M7 video card, it seems 
to me that the video is really faster, especially OpenGL. I can't be 
more precise, because my feeling is only based on fluidity of some 3D 
xlock screen and the rather vague impression that windows appear and 
move quicker than with 6.9.0. Maybe some optimizations are carried out 
during the build process that couldn't be achieved by the old monolithic 
process, or this is an effet of GCC 4.1, I can't tell.

Bye!
Vincent