From owner-freebsd-ports@FreeBSD.ORG Sun Jun 13 02:19:14 2010 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 2B45B1065677 for ; Sun, 13 Jun 2010 02:19:14 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx21.fluidhosting.com [204.14.89.4]) by mx1.freebsd.org (Postfix) with ESMTP id BEC0F8FC1A for ; Sun, 13 Jun 2010 02:19:13 +0000 (UTC) Received: (qmail 8222 invoked by uid 399); 13 Jun 2010 02:19:12 -0000 Received: from localhost (HELO foreign.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with ESMTPAM; 13 Jun 2010 02:19:12 -0000 X-Originating-IP: 127.0.0.1 X-Sender: dougb@dougbarton.us Message-ID: <4C14401F.6080704@FreeBSD.org> Date: Sat, 12 Jun 2010 19:19:11 -0700 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.1.9) Gecko/20100330 Thunderbird/3.0.4 MIME-Version: 1.0 To: Alberto Villa References: <201006120057.13163.avilla@freebsd.org> <4C141AE3.2000409@FreeBSD.org> <201006130210.11565.avilla@freebsd.org> In-Reply-To: <201006130210.11565.avilla@freebsd.org> X-Enigmail-Version: 1.0.1 OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-ports@freebsd.org Subject: Re: portmaster: problem with --packages-build? 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: Sun, 13 Jun 2010 02:19:14 -0000 On 06/12/10 17:10, Alberto Villa wrote: > On Sunday 13 June 2010 01:40:19 Doug Barton wrote: >> No hurry for testing, I found some good test cases locally and was > able >> to confirm that the new code works to detect this problem so I > committed >> it to the ports version (2.29). > > i just saw the e-mail, so i wasn't able to test it before :) No problem. I initially thought it would be more difficult to fix than it actually turned out to be, so I was able to devote some time to writing the fix and then regression testing it (the latter part is usually the complicated bit). > i have only one question: what if the port is listed only in build > dependencies but is installed because i want it installed (of course, > portmaster cannot know why a port was installed)? will it get > removed? The list of ports for --delete-build-only and/or --packages-build (which use the same code to build the list, FWIW) is still calculated on each portmaster run. So let's say you have gmake installed already, and it is a build-only dependency on the current portmaster run. If gmake is up to date (i.e., portmaster doesn't need to do anything to it) then it will simply be used, and not deleted when you're done. The way the code stands now, if you already had it installed (or for that matter, if you did not have it installed, but it was a build-only dep for something else in the current run) then it would be installed/updated, then with --delete-build-only it would be deleted at the end of that portmaster run.[1] To answer your question more directly, there is currently no provision for the idea of "this port is a build-only dependency but I do not want --delete-build-only to mess with it." The update today doesn't change this, it only addresses the issue of not treating something as a build-only dep on _this_ run if it is listed as a run dependency for something else that is already installed. I'm not sure that the complexity of the extra code required to exempt ports from --delete-build-only is justified. If I were a typical FreeBSD user I would probably use the combination of --packages-build and --delete-build-only, perhaps along with a local package repo so that I could build my own custom versions of those tools that I cared about. As long as the packages are up to date, they don't have have to be refetched each time you build a port so there is only a small delay when the build dep is installed. The reason I don't do this personally is that when I'm working on updating the ports that I maintain it's more convenient for me to already have the typical tools installed. hth Doug [1] There is another case of multiple ports on the command line, such as 'portmaster thing-that-has-gmake-as-a-build-dep gmake'. In that case, portmaster already has code to prevent gmake from being treated as a build dep. -- ... and that's just a little bit of history repeating. -- Propellerheads Improve the effectiveness of your Internet presence with a domain name makeover! http://SupersetSolutions.com/