From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Aug 19 09:40:04 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EA2B1065691 for ; Wed, 19 Aug 2009 09:40:04 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 187EA8FC57 for ; Wed, 19 Aug 2009 09:40:04 +0000 (UTC) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n7J9e36S023907 for ; Wed, 19 Aug 2009 09:40:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n7J9e3rV023906; Wed, 19 Aug 2009 09:40:03 GMT (envelope-from gnats) Resent-Date: Wed, 19 Aug 2009 09:40:03 GMT Resent-Message-Id: <200908190940.n7J9e3rV023906@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Nick Hibma Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C96B9106568F for ; Wed, 19 Aug 2009 09:38:51 +0000 (UTC) (envelope-from nick@van-laarhoven.org) Received: from CPSMTPM-EML102.kpnxchange.com (cpsmtpm-eml102.kpnxchange.com [195.121.3.6]) by mx1.freebsd.org (Postfix) with ESMTP id EA2BD8FC64 for ; Wed, 19 Aug 2009 09:38:49 +0000 (UTC) Received: from uitsmijter.van-laarhoven.org ([81.207.207.222]) by CPSMTPM-EML102.kpnxchange.com with Microsoft SMTPSVC(7.0.6001.18000); Wed, 19 Aug 2009 11:38:43 +0200 Received: from hind.van-laarhoven.org ([10.66.0.150]) by uitsmijter.van-laarhoven.org (8.14.3/8.14.3) with ESMTP id n7J9cgDX030663 for ; Wed, 19 Aug 2009 11:38:42 +0200 (CEST) (envelope-from nick@van-laarhoven.org) Received: from nick by hind.van-laarhoven.org with local (masqmail 0.2.21) id 1Mdhcv-ITY-00 for ; Wed, 19 Aug 2009 11:38:41 +0200 Message-Id: <1Mdhcv-ITY-00@hind.van-laarhoven.org> Date: Wed, 19 Aug 2009 11:38:41 +0200 From: Nick Hibma To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/137958: portupgrade fails with recursive dependency error X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Aug 2009 09:40:04 -0000 >Number: 137958 >Category: ports >Synopsis: portupgrade fails with recursive dependency error >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Aug 19 09:40:03 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Nick Hibma >Release: FreeBSD 7.2-STABLE i386 >Organization: AnyWi Technologies >Environment: System: FreeBSD hind.van-laarhoven.org 7.2-STABLE FreeBSD 7.2-STABLE #6 r196180:196225M: Mon Aug 17 14:28:06 CEST 2009 root@hind.van-laarhoven.org:/usr/obj/usr/src/sys/HIND i386 >Description: On building many ports portinstall fails with a recursive dependency error. Knowing my habit of fiddling with everything, the recursiveness is probably my fault. But I can't find it and that prevents me from using portupgrade to upgrade my ports because portinstall raises an exception on finding it. I've changed two things: - Added printing of the parent we are researching for its dependencies. The dot sometimes is confusing as some 'simple' ports still depend on lots of stuff, because of depending on a port that has lots of children. - On finding a an origin that is already on the list, skip adding its children to the list. This is done in a hackish way but works here. >How-To-Repeat: Well, that I don't know! >Fix: --- work/pkgtools-2.4.6/bin/portupgrade 2009-08-19 11:23:58.000000000 +0200 +++ /usr/local/sbin/portupgrade 2009-08-19 11:21:40.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby +#!/usr/local/bin/ruby18 # -*- ruby -*- # # Copyright (c) 2000-2004 Akinori MUSHA @@ -848,8 +848,10 @@ parents_list = Set.new STDERR.print "[Gathering depends for #{origin} " first = true + else + STDERR.print "(#{origin})" end - raise RecursiveDependencyError if parents_list.include?(origin) + unless parents_list.include?(origin) parents_list.add(origin) make_env = get_make_env(origin) @@ -867,6 +870,7 @@ depends.add($portsdb.strip(dep)) if !dep.empty? end end + end STDERR.print '.'*depends.length if depends.length > 0 >Release-Note: >Audit-Trail: >Unformatted: