From owner-freebsd-ports@FreeBSD.ORG Tue Feb 28 21:36:29 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12930106566B for ; Tue, 28 Feb 2012 21:36:29 +0000 (UTC) (envelope-from fjwcash@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id B641F8FC12 for ; Tue, 28 Feb 2012 21:36:28 +0000 (UTC) Received: by vcge1 with SMTP id e1so3773689vcg.13 for ; Tue, 28 Feb 2012 13:36:28 -0800 (PST) Received-SPF: pass (google.com: domain of fjwcash@gmail.com designates 10.52.91.18 as permitted sender) client-ip=10.52.91.18; Authentication-Results: mr.google.com; spf=pass (google.com: domain of fjwcash@gmail.com designates 10.52.91.18 as permitted sender) smtp.mail=fjwcash@gmail.com; dkim=pass header.i=fjwcash@gmail.com Received: from mr.google.com ([10.52.91.18]) by 10.52.91.18 with SMTP id ca18mr15109174vdb.101.1330464988020 (num_hops = 1); Tue, 28 Feb 2012 13:36:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ydu+bKNTr+63kV8+dKbh/PmyACPTM8SqHTOy3pDhmQI=; b=Mf2tb8q4zhHuMKTO14/v/LvvWWYaBYuedxRCu3rIPuROjlBJGdRx38W/KtaKEkMtCt T+PapA4RcLREbDjzL2Y7P/cnT326bJhrLf7AI1ivzltymkf1ei5ffCKv60j9YJ5JkO33 NBaD5mMXl9srlX4ePxd/Sa+gyNg+rSrYOTIlY= MIME-Version: 1.0 Received: by 10.52.91.18 with SMTP id ca18mr12479804vdb.101.1330464986460; Tue, 28 Feb 2012 13:36:26 -0800 (PST) Received: by 10.220.178.74 with HTTP; Tue, 28 Feb 2012 13:36:26 -0800 (PST) In-Reply-To: <4F4D44F0.9060901@FreeBSD.org> References: <20120222222544.GA88092@azathoth.lan> <20293.31720.350021.74506@gromit.timing.com> <20120223013502.GA78308@FreeBSD.org> <20120223072132.GB88092@azathoth.lan> <20120223093421.Horde.oN2FMZjmRSRPRfoNKQ4BA-g@webmail.leidinger.net> <20294.39398.620930.217619@gromit.timing.com> <20120223211406.GA14803@azathoth.lan> <4F46D751.2090100@FreeBSD.org> <20120228211513.GD99283@azathoth.lan> <4F4D44F0.9060901@FreeBSD.org> Date: Tue, 28 Feb 2012 13:36:26 -0800 Message-ID: From: Freddie Cash To: freebsd-ports Content-Type: text/plain; charset=UTF-8 Subject: Re: 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: Tue, 28 Feb 2012 21:36:29 -0000 The problem is when tools like portmaster notice x11/nvidia-driver (not installed) has a newer version number than x11/nvidia-driver-173 (installed), and the mesa/dri/drm ports have updates available, and then builds/installs them in the wrong order such that the x11/nvidia-driver port is installed first, the x11/nvidia-driver-173 port is removed, and then the x11/meda/dri/drm ports are installed, leaving you with a broken mess. You get an nvidia.ko that doesn't support the video card installed in the machine, an nvidia X11 driver that links against the wrong libGL.so, and thus a broken X11 setup that can lead to a lot of frustration, gnashing of teeth, and tearing of sackcloth to get sorted out. :( There are three issues here (at least for me, although it's really only the last one that's the topic of this thread): - the fact that portmaster sees "nvidia-driver" instead of "nvidia-driver-173" as the port name and installs the wrong port - the fact that portmaster installs "nvidia-driver" before the x11/mesa/dri/drm ports - the fact that both the nvidia-driver* and x11/mesa/dri/drm ports install libGL.so, and the wrong one is installed "last" The combination of those three means that any upgrade of nvidia/x11 ports requires a lot of manual hand-holding to make sure things are installed in the right order, and that the correct ports are installed (thank god of -i). That last option is the one that causes all the issues. Two ports install the same file, but they aren't listed as CONFLICTS of each other, so it's up to the end-user to "make it work". Ideally, the best solution would be to fix those ports such that they don't install the same file, and that they are listed as CONFLICTS of each other. A nice solution would be, as you suggested, separating out the libGL bits into slave ports and only installing one of them (and getting the versioning right so that updates only occur in the right port). The other issues are slightly annoying, although not really sure how to fix them permanently, and they're outside the scope of this thread. (This issue is making me regret installing an nVidia video card into my home desktop. Life was so much simpler with Ati and Intel.)