From owner-freebsd-ports@FreeBSD.ORG Tue Nov 28 18:20:55 2006 Return-Path: X-Original-To: ports@freebsd.org Delivered-To: freebsd-ports@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6A99B16A494 for ; Tue, 28 Nov 2006 18:20:55 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx22.fluidhosting.com [204.14.89.5]) by mx1.FreeBSD.org (Postfix) with SMTP id 0B0B743D66 for ; Tue, 28 Nov 2006 18:20:23 +0000 (GMT) (envelope-from dougb@FreeBSD.org) Received: (qmail 16648 invoked by uid 399); 28 Nov 2006 18:20:19 -0000 Received: from localhost (HELO ?156.154.5.122?) (dougb@dougbarton.us@127.0.0.1) by localhost with SMTP; 28 Nov 2006 18:20:19 -0000 Message-ID: <456C7DE1.5060204@FreeBSD.org> Date: Tue, 28 Nov 2006 10:20:17 -0800 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 1.5.0.8 (Windows/20061025) MIME-Version: 1.0 To: Vivek Khera References: <5D017181-7215-4CB6-A459-4A40751AB39A@khera.org> In-Reply-To: <5D017181-7215-4CB6-A459-4A40751AB39A@khera.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ports@freebsd.org Subject: Re: stale dependencies and portupgrade 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 Nov 2006 18:20:55 -0000 Vivek Khera wrote: > I've been using portupgrade for a long time now. Recently I've been > noticing (though I'm sure it has been happening all along) that > dependencies are not cleanly propagated to other ports. > > Example: p5-Expect used to depend on p5-IO-Stty which was removed from > ports recently. rt36 depends on p5-Expect, so got a transitive > dependency to this dead port. Upgrading p5-Expect using "portupgrade > -Rr" took care of the direct dependency, but the upstream ports still > had the registered dependency to p5-IO-Stty. I had to force-uninstall > that port then run "pkgdb -F" to remove that dependency. > > Similarly, with a portupgrade of portupgrade itself, most of my machines > lost the dependency to ruby18-bdb1 package. The only way out of that > was to do a delete of portupgrade and run a fresh make install in the > port directory. > > I suppose the bug is that I expected portupgrade -Rr to recompute the > dependency lists of the upstream ports to take into account any changing > dependencies of the updated port. > > Do other port manager utilities take this type of change into account? > At this point, I'm not sure any of my dependencies are accurate on the > complex ports like RT. This type of complexity is one of the reasons why portmaster does not use an "extra" database to track dependencies. It instead relies on /var/db/pkg and the ports framework to do that, and updates the +CONTENTS files themselves when needed. To more precisely answer your question, in /var/db/pkg the derived dependency on p5-IO-Stty wouldn't exist, so you wouldn't have the problem you described. You can get a quick and dirty look at whether or not the ports you have installed are up to date by doing 'pkg_version -v'. If you'd like to recurse through all your dependencies for RT you could try installing sysutils/portmaster and do one of the following: portmaster rt36 which will first recurse through all of RT's direct dependencies, make sure they are up to date, then rebuild RT itself; or portmaster -f rt36 which will rebuild all of RT's dependencies first (and therefore recurse through each dependent port's dependencies), then rebuilt RT. You might also want to give the man page a look before you do that, and you'll probably want to at least add the -v flag your first few times using it. hth, Doug -- This .signature sanitized for your protection