From owner-svn-src-user@FreeBSD.ORG Wed Jun 13 08:11:42 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 14CEB1065672; Wed, 13 Jun 2012 08:11:42 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [69.147.83.44]) by mx1.freebsd.org (Postfix) with ESMTP id 00A628FC08; Wed, 13 Jun 2012 08:11:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q5D8Bfpg005922; Wed, 13 Jun 2012 08:11:41 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q5D8BfYY005920; Wed, 13 Jun 2012 08:11:41 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201206130811.q5D8BfYY005920@svn.freebsd.org> From: Doug Barton Date: Wed, 13 Jun 2012 08:11:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r237002 - user/dougb/portmaster X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2012 08:11:42 -0000 Author: dougb Date: Wed Jun 13 08:11:41 2012 New Revision: 237002 URL: http://svn.freebsd.org/changeset/base/237002 Log: Add code to detect dependency loops created by moving part of a port into another port, and CONFLICT'ing on previous versions of that port (ala textproc/p5-XML-SAX -> p5-XML-SAX-Base). When a loop is detected suggest that the user try pkg_updating. Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Wed Jun 13 08:00:32 2012 (r237001) +++ user/dougb/portmaster/portmaster Wed Jun 13 08:11:41 2012 (r237002) @@ -2495,11 +2495,18 @@ dependency_check () { confl_p=`pkg_info -I $glob 2>/dev/null` if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} + d_port="$pd/`origin_from_pdb $confl_p`" + + if [ "${d_port#$pd/}" = "$portdir" ]; then + echo -e "\n===>>> $origin seems to depend on $portdir" + echo ' which looks like a dependency loop' + fail "Try pkg_updating $portdir" + fi + echo '' echo "===>>> The dependency for ${origin}" echo " seems to be handled by $confl_p" echo '' - d_port="$pd/`origin_from_pdb $confl_p`" fi done fi