On 07/02/2011 09:02 PM, Stephen Montgomery-Smith wrote:
> On 07/02/2011 08:39 PM, b. f. wrote:
>>> You are correct. It wouldn't be NO_REINSTALL.
>>> But would you guys be interested in some creative way to make this work?
>>> Perhaps xorg-server could be modified to first check "pkg_info | grep
>>> nvidia-driver", and if this comes up true, then the xorg-server port and
>>> package would not install libgl.*.
>>> I could do something like this, but before I work on it and put forth a
>>> proof of concept, I would first like to hear good reasons why I this
>>> might be a bad idea.
>> It's a bad idea because it's sensitive to the order of
>> (de)installation. It's always been unfortunate that nvidia-driver
>> collides with xorg-server and libGL. It would be better if
>> xorg-server and libGL were patched to install a linker script instead
>> of the libGL.so and libglx.so symlinks, which would favor the
>> nvidia-specific libraries over the generic libraries if the former
>> were present. Or if nvidia-driver didn't replace the shared libraries
>> of the other ports, but used additions to libmap.conf(5) instead.
> What about the linker script? What are you proposing with that idea?
Maybe the xorg-server and libGL ports install the libglx.la etc stuff
into a folder called share/xorg/gl-libs, and the nvidia-drivers install
their stuff into a folder called share/nvidia-driver/gl-libs.
Further, the libGL port installs a script libexec/xorg/link-gl-libs.sh,
which links lib/modules/extensions/libglx.la to either the stuff in
share/xorg/gl-libs, or the stuff in share/nvidia-driver/gl-libs,
depending upon whether share/nvidia-driver/gl-libs exists or not.
And then the libGL, xorg-server and the nvidia-driver libraries all call
this script, both upon installation and deinstallation (via appropriate
@exec and @unexec entries in the pkg-plist files).
The advantage of this over the libmap.conf idea is that this handles the
static libraries as well as the dynamic libraries.
If you guys think this is a good idea, it is well within my abilities to
produce a proof of concept PR. What do you think?