From owner-freebsd-ports@FreeBSD.ORG Fri Jul 20 18:27:08 2007 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 4481816A417 for ; Fri, 20 Jul 2007 18:27:08 +0000 (UTC) (envelope-from thomas@bledge.tmseck.homedns.org) Received: from smtp2.netcologne.de (smtp2.netcologne.de [194.8.194.112]) by mx1.freebsd.org (Postfix) with ESMTP id 0435913C46E for ; Fri, 20 Jul 2007 18:27:07 +0000 (UTC) (envelope-from thomas@bledge.tmseck.homedns.org) Received: from laurel.tmseck.homedns.org (xdsl-87-78-53-62.netcologne.de [87.78.53.62]) by smtp2.netcologne.de (Postfix) with SMTP id 3228C4DF5 for ; Fri, 20 Jul 2007 19:54:09 +0200 (MEST) Received: (qmail 842 invoked from network); 20 Jul 2007 17:54:10 -0000 Received: from unknown (HELO bledge.tmseck.homedns.org) (192.168.1.4) by 0 with SMTP; 20 Jul 2007 17:54:10 -0000 Received: from bledge.tmseck.homedns.org (localhost [127.0.0.1]) by bledge.tmseck.homedns.org (8.14.1/8.14.1) with ESMTP id l6KHs7VK010279; Fri, 20 Jul 2007 19:54:07 +0200 (CEST) (envelope-from thomas@bledge.tmseck.homedns.org) Received: (from thomas@localhost) by bledge.tmseck.homedns.org (8.14.1/8.14.1/Submit) id l6KHs6Xg010278; Fri, 20 Jul 2007 19:54:06 +0200 (CEST) (envelope-from thomas) Date: Fri, 20 Jul 2007 19:54:06 +0200 (CEST) Message-Id: <200707201754.l6KHs6Xg010278@bledge.tmseck.homedns.org> From: tmseck-lists@netcologne.de (Thomas-Martin Seck) To: freebsd-ports@freebsd.org In-Reply-To: <20070720133842.385b7bc4@deskjail> X-Newsgroups: gmane.os.freebsd.devel.ports X-Attribution: tms Subject: Re: Problems with +CONTENTS being messed up by pkg_delete -f 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, 20 Jul 2007 18:27:08 -0000 * Alexander Leidinger [gmane.os.freebsd.devel.ports]: > Quoting Robert Noland (Thu, 19 Jul 2007 13:31:42 -0400): > >> Ok, so the issue that I hope to address is not really a "portmanager" >> issue. The original version of package-depends always listed the >> current version (from ports) in the +CONTENTS file. When that list was >> passed to sort -u, you ended up with a single dependency for each >> origin. >> >> The new way it takes each direct dependency and adds those, then >> recursively parses the +CONTENTS file of each of those and adds those >> entries and finally passes the whole thing to sort -u. This allows for >> multiple dependencies with the same origin to be listed in the +CONTENTS >> file. >> >> As an example... port a depends on b and c. Port c has a version bump >> and is updated but technically b doesn't require an update. Now if port >> a is updated it will get the current version of c and also the old >> version of c from b. > > Ok, I see the problem (in case b depends on c too). This is only an > issue if you do this by hand instead of using portupgrade (or something > else), as those tools should correct the dependency in port b to the > new version of c. If they don't do it, it's a bug in those tools. Oh not at all. This will also happen if you install dependencies via packages when these packages' dependencies do not exactly match what you have presently installed. Example: package a-1.0 has a recorded dependency on b-1.0. Meanwhile, b got upgraded to 1.0_1. You have b-1.0_1 installed locally and then install port c which depends on a and use a's package in order to save build time (imagine a being something in the firefox/xorg-libs range with USE_PACKAGE_DEPENDS set in your make environment). Hilarity ensues. The old algorithm could recover from this I guess. It looks like one is forced to repair the package db with external tools everytime one does not install from source and from scratch.