From owner-freebsd-x11@FreeBSD.ORG Sun Jul 3 02:50:05 2011 Return-Path: Delivered-To: freebsd-x11@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21EF91065673 for ; Sun, 3 Jul 2011 02:50:05 +0000 (UTC) (envelope-from stephen@missouri.edu) Received: from wilberforce.math.missouri.edu (wilberforce.math.missouri.edu [128.206.184.213]) by mx1.freebsd.org (Postfix) with ESMTP id E03278FC0A for ; Sun, 3 Jul 2011 02:50:04 +0000 (UTC) Received: from [127.0.0.1] (wilberforce.math.missouri.edu [128.206.184.213]) by wilberforce.math.missouri.edu (8.14.4/8.14.4) with ESMTP id p632o3rA015377; Sat, 2 Jul 2011 21:50:03 -0500 (CDT) (envelope-from stephen@missouri.edu) Message-ID: <4E0FD8DC.20700@missouri.edu> Date: Sat, 02 Jul 2011 21:50:04 -0500 From: Stephen Montgomery-Smith User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: "bf1783@gmail.com" References: <4E0FCDD1.7050809@missouri.edu> In-Reply-To: <4E0FCDD1.7050809@missouri.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "freebsd-x11@FreeBSD.org" , "b. f." Subject: Re: x11/nvidia-driver incompatible with portmaster? X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Jul 2011 02:50:05 -0000 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?