From owner-freebsd-gnome@FreeBSD.ORG Wed Apr 9 17:37:56 2008 Return-Path: Delivered-To: gnome@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C4CF1065673 for ; Wed, 9 Apr 2008 17:37:56 +0000 (UTC) (envelope-from dokas@oitsec.umn.edu) Received: from mail.oitsec.umn.edu (mail.oitsec.umn.edu [128.101.238.120]) by mx1.freebsd.org (Postfix) with ESMTP id 0C38C8FC16 for ; Wed, 9 Apr 2008 17:37:56 +0000 (UTC) (envelope-from dokas@oitsec.umn.edu) Received: from localhost (localhost [127.0.0.1]) by mail.oitsec.umn.edu (Postfix) with ESMTP id 7A5766D46E for ; Wed, 9 Apr 2008 12:37:55 -0500 (CDT) X-Virus-Scanned: amavisd-new at oitsec.umn.edu Received: from mail.oitsec.umn.edu ([127.0.0.1]) by localhost (mail.oitsec.umn.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bsM-gbuBymXi for ; Wed, 9 Apr 2008 12:37:52 -0500 (CDT) Received: from shoggoth.oitsec.umn.edu (shoggoth.oitsec.umn.edu [160.94.247.195]) by mail.oitsec.umn.edu (Postfix) with ESMTP id 355F36D46D for ; Wed, 9 Apr 2008 12:37:52 -0500 (CDT) Message-ID: <47FCFEEF.7020208@oitsec.umn.edu> Date: Wed, 09 Apr 2008 12:37:51 -0500 From: Paul Dokas Organization: OIT Security & Assurance, University of Minnesota User-Agent: Thunderbird 2.0.0.12 (X11/20080310) MIME-Version: 1.0 To: gnome@FreeBSD.org X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Subject: cyclic dependency hell X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Paul Dokas List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Apr 2008 17:37:56 -0000 Does anyone know if there's a way to completely rebuild the ports dependency tree without having to do a `pkg_delete -a`? My ports have become seriously messed up after the last round of gnome updates. I'm pretty sure that this all stems from something that is clearly my fault (I didn't follow UPDATING wrt tracker) but this shouldn't be this difficult to fix. First a little background, I neglected to read UPDATING for tracker. As a result, I ended up with something like this: % pkg_info | fgrep tracker tracker-0.6.6_1 tracker-client-0.6.6_2 tracker-gnome-0.6.6_2 tracker-libtrackergtk-0.6.6_2 `pkg_info -L tracker-0.6.6_1` claimed to have no files. It took a `pkg_delete -f tracker-0.6.6_1` to remove it (this was probably my first mistake). From there portupgrade refused to run and said to do a `pkgdb -F`. When I did this I duplicated this lovely error condition: http://lists.freebsd.org/pipermail/freebsd-ports/2007-September/043617.html I let it run to completion (probably my second error). This is when the real fun started. portupgrade won't run (it said to run pkgdb -F). pkgdb -F started claiming that there were cyclic dependencies. So, a little googling later, I find that `make all-depends-list` in a port's directory will tell me which ports are dependencies and I start breaking loops. After a while I noticed that pkgdb -F claimed a loop for which the involved packages also claim to actually depend upon each other. Something is now seriously mangled. Here's my last attempt to fix this: # mv INDEX-7.db INDEX-7.db.old # portsdb -U Updating the ports index ... Generating INDEX.tmp - please wait..Warning: Duplicate INDEX entry: apr-gdbm-db42-1.2.8_3 Warning: Duplicate INDEX entry: mod_rpaf-ap2-0.6 Done. done # portsdb -u [Updating the portsdb in /usr/ports ... - 18300 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000.........8000.........9000.........10000.........11000.........12000.........13000.........14000.........15000.........16000.........17000.........18000... ..... done] # rm /var/db/pkg/pkgdb.db remove /var/db/pkg/pkgdb.db? y # pkgdb -F ---> Checking the package registry database [Rebuilding the pkgdb in /var/db/pkg ... - 1213 packages found (-0 +1213) ....................................................................................................100....................................................................................................200....................................................................................................300....................................................................................................400....................................................................................................500....................................................................................................600....................................................................................................700....................................................................................................800....................................................................................................900............................................................... .....................................1000....................................................................................................1100....................................................................................................1200............. done] Cyclic dependencies: nautilus-cd-burner-2.22.0_2 -> deskbar-applet-2.22.0.1 -> gnome-media-2.22.0 -> (nautilus-cd-burner-2.22.0_2) Unlink which dependency? (? to help): And according to `make all-depends-list` on each those, there really is a dependency loop. So, here I am pondering `pkg-delete -a`... Can anyone rescue me from leaping off of this building? I have a hard time imagining that there is no way to get the dependencies back into working order short of starting over. Paul -- Paul Dokas dokas at oitsec.umn.edu ====================================================================== Don Juan Matus: "an enigma wrapped in mystery wrapped in a tortilla."