From owner-freebsd-ports@FreeBSD.ORG Fri Aug 21 11:53:52 2009 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 60367106568D; Fri, 21 Aug 2009 11:53:52 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) by mx1.freebsd.org (Postfix) with ESMTP id 216C68FC3F; Fri, 21 Aug 2009 11:53:51 +0000 (UTC) Received: from localhost (localhost.codelab.cz [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 3A17A19E046; Fri, 21 Aug 2009 13:53:48 +0200 (CEST) Received: from [192.168.1.2] (r5bb235.net.upc.cz [86.49.61.235]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 0652F19E043; Fri, 21 Aug 2009 13:53:46 +0200 (CEST) Message-ID: <4A8E8ACA.3060705@quip.cz> Date: Fri, 21 Aug 2009 13:53:46 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 X-Accept-Language: cz, cs, en, en-us MIME-Version: 1.0 To: Doug Barton References: <4A89CB20.3000408@quip.cz> <4A8E2121.6040507@FreeBSD.org> In-Reply-To: <4A8E2121.6040507@FreeBSD.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-ports@freebsd.org Subject: Re: portmaster is not always recursive 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: Fri, 21 Aug 2009 11:53:52 -0000 Doug Barton wrote: > Woo hoo! I found the bug, and fixed it in the just-committed version > 2.10. The bug was in the NO_DEP_UPDATES flag which is one of the > oldest features of portmaster. It operates in the first pass through > the dependencies (aka config mode) and if all of the dependent ports > are up to date it allows the second pass (build mode) to skip the > dependency check(s) altogether. When I first added this feature (prior > to the use of variables to store information on up to date > ports/dependencies) this was a great time saver. It's not that > important anymore given that dependency checks are so much faster, but > it still helps some (especially if you are building/installing a lot > of ports) and it has been overloaded a bit for other purposes. > > Unfortunately it didn't quite keep up with the times when some code > paths were added (such as -r and the new code to do multiple ports on > the same command line) and it was not always being unset when it > should have been. The more common code paths (one port on the command > line, or -a) didn't have this problem, which along with the fact that > it only happened with certain combinations of out of date dependencies > is why the bug went undiagnosed for so long. Code for multiple ports can explain my problems discribed with amavisd-new and spamassassin, as I use upgrade of more ports in one command very often. > Ironically the flag was also being UNset at times when it should not > have been (for similar, although somewhat different reasons) so in > cases where you are building a list of ports (like multiple ports on > the command line or -r) and all of the dependencies are up to date > there will be a slight performance improvement. This side of the bug > would never have been noticed by users since it only resulted in some > unnecessary dependency checking. > > FWIW there is one more small performance improvement in 2.10 for > building multiple ports on the command line, although the percentage > of performance increase is probably quite small. > > Thanks Miroslav for providing all of the information you did which was > a big help in allowing me to narrow down where the bug was _not_ which > ultimately allowed me to find out where it was. :) Thank you for your hard work! I can confirm that bug was fixed in 2.10, it passed my test with -r jpeg-7 ;) root@lite ~/# portmaster portmaster-2.9 ===>>> Upgrade of portmaster-2.9 to portmaster-2.10 complete root@lite ~/# portmaster -r jpeg-7 ===>>> The following actions were performed: Re-installation of jpeg-7 Upgrade of png-1.2.35 to png-1.2.38 Re-installation of gd-2.0.35_1,1 Re-installation of mrtg-2.16.2_1,1 Re-installation of php5-gd-5.2.10 Re-installation of php5-extensions-1.3 Miroslav Lachman