Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jun 2012 08:11:41 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r237002 - user/dougb/portmaster
Message-ID:  <201206130811.q5D8BfYY005920@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206130811.q5D8BfYY005920>