From owner-freebsd-ports@FreeBSD.ORG Wed Feb 22 22:26:00 2012 Return-Path: Delivered-To: ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 482401065676; Wed, 22 Feb 2012 22:26:00 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1A0BD8FC14; Wed, 22 Feb 2012 22:26:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q1MMPxiM065582; Wed, 22 Feb 2012 22:25:59 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q1MMPxqf065581; Wed, 22 Feb 2012 22:25:59 GMT (envelope-from bapt@FreeBSD.org) X-Authentication-Warning: freefall.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f Date: Wed, 22 Feb 2012 23:25:45 +0100 From: Baptiste Daroussin To: danfe@FreeBSD.org, x11@FreeBSD.org, ports@FreeBSD.org Message-ID: <20120222222544.GA88092@azathoth.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="fdj2RfSjLxBAspz7" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Subject: Fix nvidia-like ports, help needed X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2012 22:26:00 -0000 --fdj2RfSjLxBAspz7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi all, this mail is also sent to ports@ has the problem we have with nvidia-driver might also occur elsewhere and we need a general fix for that. First what is the failure: nvidia driver overwrite libGL.so provided by another package which is broken by design because the package database isn't consistent anymore. however this nvidia-driver needs to replace libGL.so. In that case we definitely need to have a tool allowing us to safely provide libGL.so and switch between the mesa one and the nvidia one. currently this kind of bugs silently occurs with pkg_install, but pkgng is more strict about that and refuses it. We then need a tool like gentoo's eselect, redhat alternative and I don't remember the name for debian. We need it the FreeBSD way, not sure we need something as complex as what the linux distribution does, maybe yes. I wrote a quick and dirty script named alternative: http://people.freebsd.org/~bapt/alternative.txt That get informations about the alternatives in ${LOCALBASE}/etc/alternative.d ${LOCALBASE}/etc/alternative.d/libgl ${LOCALBASE}/etc/alternative.d/libgl/nvidia ${LOCALBASE}/etc/alternative.d/libgl/nvidia/nvidia.cf ${LOCALBASE}/etc/alternative.d/libgl/libgl.cf ${LOCALBASE}/etc/alternative.d/libgl/current ${LOCALBASE}/etc/alternative.d/libgl/mesa ${LOCALBASE}/etc/alternative.d/libgl/mesa/mesa.cf current behing a symlink to either nvidia or mesa cat libgl.cf: NAME="libgl" DESCRIPTION="Default OpenGL library" cat mesa/mesa.cf NAME=mesa DESCRIPTION="libGL provided by the mesa project" cat nvidia/nvidia.cf NAME=nvidia DESCRIPTION="libGL provided by the nvidia driver" with that nvidia could have libgl-nvidia.so and mesa libgl-mesa.so the script alternative might change the libgl.so symlink to point on nvidia or mesa depending on the user choices. this script is just an idea definitly not an implementation. nvidia case is just an example but the script should try to be more general. (handle binaries scripts etc.) I don't have time to work on this currently hope someone will takle this task. regards, Bapt --fdj2RfSjLxBAspz7 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk9Fa2gACgkQ8kTtMUmk6ExHvQCfc/GTRtUifFYGdNIhEkC/uo/v ynoAn2rHUaiKFw0mFj1GlQAEmgmsxmZo =DvoU -----END PGP SIGNATURE----- --fdj2RfSjLxBAspz7--