From owner-svn-src-user@FreeBSD.ORG  Tue Apr 26 01:21:17 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9389A106566C;
	Tue, 26 Apr 2011 01:21:17 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8376E8FC19;
	Tue, 26 Apr 2011 01:21:17 +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 p3Q1LHcj000810;
	Tue, 26 Apr 2011 01:21:17 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q1LHYq000808;
	Tue, 26 Apr 2011 01:21:17 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104260121.p3Q1LHYq000808@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Tue, 26 Apr 2011 01:21:17 +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: r221047 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Apr 2011 01:21:17 -0000

Author: dougb
Date: Tue Apr 26 01:21:17 2011
New Revision: 221047
URL: http://svn.freebsd.org/changeset/base/221047

Log:
  * Simplify the derivation of the svn version string
  * Simplify the code in check_for_updates() to detect if we are doing
    --update-if-newer
  * Add the ability to specify the -t option to -L and --index-only to
    check every installed port instead of using the shortcut. This is
    slow, but useful on an old system where there is no ports tree and
    one or more of the ports is so old that it no longer exists in INDEX.
  * Rename the increasingly inaccurate internal variable name for -t
    from RECURSE_THOROUGH to PM_THOROUGH

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Tue Apr 26 00:22:17 2011	(r221046)
+++ user/dougb/portmaster/portmaster	Tue Apr 26 01:21:17 2011	(r221047)
@@ -53,11 +53,9 @@ version () {
 
 	svn='$FreeBSD$'
 
-	svn="${svn#*,v }" ; svn="${svn#*/portmaster }" ; svn="${svn%% *}"
+	svn="${svn#*/portmaster }" ; svn="${svn%% *}"
 
-	echo ''
-	[ "${svn#$}" != 'FreeBSD$' ] && { echo "===>>> Version $svn" ; return 0; }
-	echo "===>>> Version unknown!"
+	echo '' ; echo "===>>> Version $svn" ; return 0
 }
 
 fail () {
@@ -372,7 +370,8 @@ usage () {
 	echo "${0##*/} [Common flags] -o <new port dir in $pd> <installed port>"
 	echo "${0##*/} [Common flags] [-R] -r <name/glob of port directory in $pdb>"
 	echo ''
-	echo "${0##*/} -[l|L]"
+	echo "${0##*/} -l"
+	echo "${0##*/} [--index-only [-t]] -L"
 	echo ''
 	echo "${0##*/} --list-origins"
 	echo ''
@@ -616,7 +615,7 @@ for var in "$@" ; do
 	--check-depends)	CHECK_DEPENDS=check_depends ;;
 	--check-port-dbdir)	CHECK_PORT_DBDIR=check_port_dbdir ;;
 	--list-origins)		LIST_ORIGINS=list_origins ;;
-	--show-work)		SHOW_WORK=show ; RECURSE_THOROUGH=thorough ;;
+	--show-work)		SHOW_WORK=show ; PM_THOROUGH=thorough ;;
 	--force-config)		export PM_FORCE_CONFIG=pm_force_config ;;
 	--*)			echo "Illegal option $var" ; echo ''
 				echo "===>>> Try ${0##*/} --help"; exit 1 ;;
@@ -674,7 +673,7 @@ while getopts 'BCDFGHKLPRabde:fghilm:nop
 		PM_RBP=${glob_dirs##*/} ; unset glob_dirs
 		portdir=`origin_from_pdb $PM_RBP` ;;
 	s)	CLEAN_STALE=sopt ;;
-	t)	RECURSE_THOROUGH=topt; ARGS="-t $ARGS" ;;
+	t)	PM_THOROUGH=topt; ARGS="-t $ARGS" ;;
 	u)	fail 'The -u option has been deprecated' ;;
 	v)	PM_VERBOSE=vopt; ARGS="-v $ARGS" ;;
 	w)	SAVE_SHARED=wopt; ARGS="-w $ARGS" ;;
@@ -1264,7 +1263,7 @@ if [ -n "$CLEAN_DISTFILES" ]; then
 	# Set the file name here since we are usually called in a subshell
 	DI_FILES=`pm_mktemp DI-FILES`
 
-	if [ -z "$RECURSE_THOROUGH" ]; then
+	if [ -z "$PM_THOROUGH" ]; then
 		read_distinfos
 	else
 		read_distinfos_all
@@ -1529,10 +1528,9 @@ check_force_multi () {
 
 check_for_updates () {
 	# Global: num_updates
-	local multi nf iport origin port_ver do_update skip
+	local nf iport origin port_ver do_update skip
 
-	[ "$1" = 'list' ] && { nf=nonfatal; shift; }
-	[ "$1" = 'multi' ] && { multi=multi; nf=nonfatal; shift; }
+	[ "$1" = 'list' -o "$1" = 'multi' ] && { nf=nonfatal; shift; }
 
 	iport=$1 ; origin=${2:-`origin_from_pdb $iport`} || return 0
 
@@ -1546,10 +1544,16 @@ check_for_updates () {
 		[ -z "$do_update" -a -z "$LIST_PLUS" ] && {
 			check_force_multi $iport $origin || do_update=upd_fm_idx; }
 
-		[ -n "$PM_INDEX_FIRST" ] || skip=index_skip
+		if [ -z "$do_update" -a -n "$PM_INDEX_ONLY" -a -n "$PM_THOROUGH" ]; then
+			port_ver=`parse_index $origin name` || {
+				echo "	===>>> $pd/$origin does not exist in $PM_INDEX";
+				echo "	===>>> This port should probably be updated"; }
+		else
+			[ -n "$PM_INDEX_FIRST" ] || skip=index_skip
+		fi
 	fi
 
-	if [ -z "$do_update" -a -z "$skip" ] && [ -d "$pd/$origin" ]; then
+	if [ -z "$do_update" -a -z "$skip" -a -z "$PM_INDEX_ONLY" ] && [ -d "$pd/$origin" ]; then
 		if ! pm_cd $pd/$origin; then
 			if [ -e "$pdb/$iport/+IGNOREME" ]; then
 				echo "	===>>> Warning: Unable to cd to $pd/$origin"
@@ -1563,7 +1567,7 @@ check_for_updates () {
 		fi
 		port_ver=`pm_make -V PKGNAME`
 		[ -z "$port_ver" ] && fail "Is $pd/$origin/Makefile missing?"
-	elif [ -z "$do_update" -a -z "$skip" ]; then
+	elif [ -z "$do_update" -a -z "$skip" -a -z "$PM_INDEX_ONLY" ]; then
 		find_moved_port $origin $iport $nf
 
 		# If the port has moved and no +IGNOREME, we have to update it
@@ -1622,7 +1626,7 @@ check_for_updates () {
 			unset moved_npd
 		fi
 		return 0
-	elif [ -n "$multi" ]; then
+	elif [ -n "$PM_UPDATE_IF_NEWER" ]; then
 		return 1
 	elif [ "$PM_RBP" = "$iport" ]; then
 		PM_RBP_NEEDS_UPGRADE=pm_rbp_needs_upgrade
@@ -2377,7 +2381,7 @@ dependency_check () {
 			esac
 		done
 
-		if [ -z "$RECURSE_THOROUGH" ]; then
+		if [ -z "$PM_THOROUGH" ]; then
 			d_port_list="$build_only_dl $run_dl"
 		else
 			build_only_dl=`gen_dep_list build-depends-list`
@@ -2658,6 +2662,7 @@ multiport () {
 					continue
 				fi
 			fi
+			unset PM_UPDATE_IF_NEWER
 		fi
 
 		worklist="$worklist $port"
@@ -3193,7 +3198,7 @@ if [ -n "$PM_FIRST_PASS" ]; then
 		[ -z "$PM_NO_MAKE_CONFIG" ] && make_config
 
 		dep_check_type='build-depends-list run-depends-list'
-		[ -n "$RECURSE_THOROUGH" ] && dep_check_type=all-depends-list
+		[ -n "$PM_THOROUGH" ] && dep_check_type=all-depends-list
 	else
 		dep_check_type=run-depends-list
 	fi
@@ -3273,7 +3278,7 @@ if [ -n "$PM_BUILD_ONLY_LIST" ]; then
 fi
 
 if [ -z "$NO_DEP_UPDATES" ]; then
-	if [ -z "$RECURSE_THOROUGH" ]; then
+	if [ -z "$PM_THOROUGH" ]; then
 		if [ -z "$PM_PACKAGES" ]; then
 			echo "===>>> Starting check for build dependencies"
 			dependency_check build-depends-list
@@ -3522,7 +3527,7 @@ if [ -z "$use_package" ]; then
 	if [ -n "$PM_PACKAGES" ]; then
 		[ -z "$PM_NO_MAKE_CONFIG" ] && make_config
 
-		if [ -z "$RECURSE_THOROUGH" ]; then
+		if [ -z "$PM_THOROUGH" ]; then
 			echo "===>>> Starting check for build dependencies"
 			dependency_check build-depends-list
 		fi
@@ -3613,7 +3618,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port"
 	pm_cd_pd $portdir
 fi
 
-if [ -z "$RECURSE_THOROUGH" -a -z "$NO_DEP_UPDATES" ]; then
+if [ -z "$PM_THOROUGH" -a -z "$NO_DEP_UPDATES" ]; then
 	echo '' ; echo "===>>> Starting check for runtime dependencies"
 	dependency_check run-depends-list
 	pm_cd_pd $portdir

From owner-svn-src-user@FreeBSD.ORG  Tue Apr 26 01:56:19 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 078F7106566B;
	Tue, 26 Apr 2011 01:56:19 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EBA238FC17;
	Tue, 26 Apr 2011 01:56:18 +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 p3Q1uImu001895;
	Tue, 26 Apr 2011 01:56:18 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q1uIXf001893;
	Tue, 26 Apr 2011 01:56:18 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104260156.p3Q1uIXf001893@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Tue, 26 Apr 2011 01:56:18 +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: r221048 - user/dougb/portmaster/files
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Apr 2011 01:56:19 -0000

Author: dougb
Date: Tue Apr 26 01:56:18 2011
New Revision: 221048
URL: http://svn.freebsd.org/changeset/base/221048

Log:
  Update the suggested alias for -L to include the terms in r221047

Modified:
  user/dougb/portmaster/files/portmaster.8

Modified: user/dougb/portmaster/files/portmaster.8
==============================================================================
--- user/dougb/portmaster/files/portmaster.8	Tue Apr 26 01:21:17 2011	(r221047)
+++ user/dougb/portmaster/files/portmaster.8	Tue Apr 26 01:56:18 2011	(r221048)
@@ -825,7 +825,7 @@ This can be used as an alias in your she
 Be sure to fix the line wrapping appropriately.
 .Dl "portmaster -L |"
 .Dl "egrep -B1 '(ew|ort) version|Aborting|installed|dependencies|"
-.Dl "IGNORE|marked|Reason:|MOVED|deleted' | grep -v '^--'"
+.Dl "IGNORE|marked|Reason:|MOVED|deleted|exist|update' | grep -v '^--'"
 .Pp
 Using
 .Nm

From owner-svn-src-user@FreeBSD.ORG  Tue Apr 26 03:27:21 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D70B41065670;
	Tue, 26 Apr 2011 03:27:21 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C67508FC1A;
	Tue, 26 Apr 2011 03:27:21 +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 p3Q3RLNw004916;
	Tue, 26 Apr 2011 03:27:21 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3Q3RLFY004914;
	Tue, 26 Apr 2011 03:27:21 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104260327.p3Q3RLFY004914@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Tue, 26 Apr 2011 03:27:21 +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: r221051 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Apr 2011 03:27:21 -0000

Author: dougb
Date: Tue Apr 26 03:27:21 2011
New Revision: 221051
URL: http://svn.freebsd.org/changeset/base/221051

Log:
  Don't do check_state if --index-only

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Tue Apr 26 02:58:39 2011	(r221050)
+++ user/dougb/portmaster/portmaster	Tue Apr 26 03:27:21 2011	(r221051)
@@ -1585,7 +1585,7 @@ check_for_updates () {
 
 	if [ -z "$do_update" -a -n "$port_ver" ]; then
 		if [ "$iport" = "$port_ver" ]; then
-			if [ -n "$LIST_PLUS" ]; then
+			if [ -n "$LIST_PLUS" -a -z "$PM_INDEX_ONLY" ]; then
 				check_state
 				return 0
 			elif [ -n "$LIST" ]; then

From owner-svn-src-user@FreeBSD.ORG  Thu Apr 28 05:48:33 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 58580106564A;
	Thu, 28 Apr 2011 05:48:33 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 490518FC0A;
	Thu, 28 Apr 2011 05:48:33 +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 p3S5mXxh007575;
	Thu, 28 Apr 2011 05:48:33 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3S5mXkT007573;
	Thu, 28 Apr 2011 05:48:33 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104280548.p3S5mXkT007573@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Thu, 28 Apr 2011 05:48:33 +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: r221148 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Apr 2011 05:48:33 -0000

Author: dougb
Date: Thu Apr 28 05:48:32 2011
New Revision: 221148
URL: http://svn.freebsd.org/changeset/base/221148

Log:
  In the event that an invalid combination of configuration options causes
  a port to be BROKEN, etc. it is useful to run --force-config and try again

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Thu Apr 28 03:33:12 2011	(r221147)
+++ user/dougb/portmaster/portmaster	Thu Apr 28 05:48:32 2011	(r221148)
@@ -3116,9 +3116,17 @@ echo "===>>> Port directory: $pd/$portdi
 if [ -n "$PM_FIRST_PASS" -a -z "$FETCH_ONLY" ]; then
 	if [ -z "$PM_INDEX_ONLY" ]; then
 		if ! check_state; then
-			echo "	===>>> If you are sure you can build it, remove the"
-			echo "	       $state line in the Makefile and try again."
-			safe_exit 1
+			check_state_fail=check_state_fail
+			if [ -n "$PM_FORCE_CONFIG" ]; then
+				sleep 4
+				make_config
+				check_state && unset check_state_fail
+			fi
+			if [ -n "$check_state_fail" ]; then
+				echo "	===>>> If you are sure you can build it, remove the"
+				echo "	       $state line in the Makefile and try again."
+				safe_exit 1
+			fi
 		fi
 	fi
 

From owner-svn-src-user@FreeBSD.ORG  Thu Apr 28 09:09:35 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 246A51065670;
	Thu, 28 Apr 2011 09:09:35 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1294F8FC15;
	Thu, 28 Apr 2011 09:09:35 +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 p3S99YC6014874;
	Thu, 28 Apr 2011 09:09:34 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3S99Ycs014872;
	Thu, 28 Apr 2011 09:09:34 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104280909.p3S99Ycs014872@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Thu, 28 Apr 2011 09:09:34 +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: r221158 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Apr 2011 09:09:35 -0000

Author: dougb
Date: Thu Apr 28 09:09:34 2011
New Revision: 221158
URL: http://svn.freebsd.org/changeset/base/221158

Log:
  First pass at making -F work with --packages*:
  * If -F and --packages*
    o We don't need the full build_l, but we do need to call update_pm_nu
      for -a and multiport
    o ... which means we need to export PM_NEEDS_UPDATE unconditionally
    o We want to imply --no-confirm since we're not using the list anyway
    o If not --packages-only lack of a package is a soft fail
  
  While I'm at it, begin making check_fetch_only() useful for --packages*
  although we can't do full background fetching for multiple packages yet
  
  Also, revamp the code in check_fetch_only() and where we wait for b/g
  distfile fetching to complete to be a lot smarter:
  * In check_fetch_only() simplify the code to count fetch processes which
    both makes it faster by avoiding ps, and also makes it smarter because
    it will find fewer false positives.
  * In both, poll every 2 seconds, but only output to the console every 6.
    This way we'll be able to exit a lot sooner, but still avoid spamming
    the user with lots of messages.

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Thu Apr 28 08:49:43 2011	(r221157)
+++ user/dougb/portmaster/portmaster	Thu Apr 28 09:09:34 2011	(r221158)
@@ -733,6 +733,8 @@ if [ -n "$LIST" -o -n "$LIST_PLUS" ]; th
 	[ $# -gt 0 ] && fail 'The -[lL] options are not compatible with updates or installs'
 fi
 
+[ -n "$PM_PACKAGES" -a -n "$FETCH_ONLY" ] && export PM_NO_CONFIRM=pm_no_confirm
+
 unset my_environment COMMAND_LINE_ARGUMENT
 unset -f packages_init cross_idx test_command_line
 
@@ -2154,26 +2156,26 @@ check_exclude () {
 
 check_fetch_only () {
 	[ -n "$FETCH_ONLY" ] || return 0
+	[ -z "$1" -a -n "$PM_PACKAGES" ] && return 0
 
-	local sleep nf fetches
+	local count nf fetches
 
 	echo ''
-	sleep=5
-	while `ls ${TMPDIR}/f-${PM_PARENT_PID}-fetchlog-* >/dev/null 2>&1`; do
-		nf=`ps -ax | grep [f]etch | wc -l`
+	count=0
+	while nf=`ls ${TMPDIR}/f-${PM_PARENT_PID}-fetchlog-* 2>/dev/null | wc -l`; do
 		nf=${nf##* }
-		[ "$nf" -eq 0 ] && break	# Not often, but it happens
-		fetches=fetches ; [ "$nf" -eq 1 ] && fetches=fetch
-		echo "===>>> Waiting for ${nf##* } distfile $fetches to finish"
-		sleep $sleep
+		[ $nf -eq 0 ] && break
+		fetches=fetches ; [ $nf -eq 1 ] && fetches=fetch
 
-		if [ $sleep -eq 10 ]; then
-			sleep=5
-		else
-			sleep=$(( $sleep + 1 ))
+		count=$(( $count + 1 ))
+		if [ $count -eq 1 ]; then
+			echo "===>>> Waiting for $nf distfile $fetches to finish"
+		elif [ $count -eq 3 ]; then
+			count=0
 		fi
+		sleep 2
 	done
-	echo "===>>> Distfile fetching is complete"
+	echo "===>>> ${1:-Distfile} fetching is complete"
 	FETCH_ONLY_DONE=fetch_only_done
 	safe_exit
 }
@@ -2840,10 +2842,11 @@ if [ "$$" -eq "$PM_PARENT_PID" -a -z "$S
 	fi
 
 	PM_FIRST_PASS=pm_first_pass ; export PM_FIRST_PASS
+	PM_NEEDS_UPDATE=' ' ; export PM_NEEDS_UPDATE	# Used with -F for multiport and -a
 
 	if [ -z "$FETCH_ONLY" ]; then
-		PM_NEEDS_UPDATE=' ' ; NO_DEP_UPDATES=no_dep_updates ; build_l=''
-		export PM_NEEDS_UPDATE NO_DEP_UPDATES build_l
+		NO_DEP_UPDATES=no_dep_updates ; build_l=''
+		export NO_DEP_UPDATES build_l
 
 		[ -z "$PM_INDEX_ONLY" ] &&
 			pm_cd_pd && PM_WRKDIRPREFIX=`pm_make_b -V WRKDIRPREFIX` && pm_cd -
@@ -3137,6 +3140,8 @@ if [ -n "$PM_FIRST_PASS" -a -z "$FETCH_O
 	else
 		update_build_l $portdir
 	fi
+elif [ -n "$FETCH_ONLY" -a -n "$PM_PACKAGES" ]; then
+	update_pm_nu $portdir
 fi
 
 # Do these things first time through
@@ -3525,13 +3530,14 @@ notnewer () {
 			fail "There is no valid package to install"
 		else
 			echo ''
+			[ -n "$FETCH_ONLY" ] && safe_exit
 			echo "===>>> There is no valid package to install, building port instead"
 			echo ''
 		fi
 	fi
 fi	# [ -n "$pm_package_time" ]
 
-if [ -z "$use_package" ]; then
+if [ -z "$use_package" -a -z "$FETCH_ONLY" ]; then
 	if [ -n "$PM_PACKAGES" ]; then
 		[ -z "$PM_NO_MAKE_CONFIG" ] && make_config
 
@@ -3545,21 +3551,20 @@ if [ -z "$use_package" ]; then
 	[ -z "$DONT_PRE_CLEAN" ] && { pm_make clean NOCLEANDEPENDS=ncd ||
 		fail 'make clean failed'; echo ''; }
 
-	sleep=3
 	fl_read=`echo ${TMPDIR}/f-${PM_PARENT_PID}-fetchlog-${portdir#*/}.*`
+	count=0
 	while [ -f "$fl_read" ]; do
-		echo "===>>> Waiting on fetch & checksum for $portdir <<<==="
-		tail -10 $fl_read 2>/dev/null
-		echo '' ; echo ''
-		sleep $sleep
-
-		if [ $sleep -eq 10 ]; then
-			sleep=3
-		else
-			sleep=$(( $sleep + 1 ))
+		count=$(( $count + 1 ))
+		if [ $count -eq 1 ]; then
+			echo "===>>> Waiting on fetch & checksum for $portdir <<<==="
+			tail -10 $fl_read 2>/dev/null
+			echo '' ; echo ''
+		elif [ $count -eq 3 ]; then
+			count=0
 		fi
+		sleep 2
 	done
-	unset sleep fl_read
+	unset count fl_read
 
 	if [ -n "$HIDE_BUILD" ]; then
 		port_log=`mktemp -t port_log-${PM_PARENT_PID}-${portdir#*/}` ||
@@ -3574,6 +3579,7 @@ if [ -z "$use_package" ]; then
 else
 	[ -z "$local_package" ] && {
 		fetch_package $latest_pv || fail "Fetch for ${latest_pv}.tbz failed"; }
+	check_fetch_only Package
 fi
 
 # Ignore if no old port exists

From owner-svn-src-user@FreeBSD.ORG  Thu Apr 28 21:41:00 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CF80B106566C;
	Thu, 28 Apr 2011 21:41:00 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C01F08FC14;
	Thu, 28 Apr 2011 21:41:00 +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 p3SLf00d064848;
	Thu, 28 Apr 2011 21:41:00 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3SLf01q064846;
	Thu, 28 Apr 2011 21:41:00 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104282141.p3SLf01q064846@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Thu, 28 Apr 2011 21:41:00 +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: r221186 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Apr 2011 21:41:00 -0000

Author: dougb
Date: Thu Apr 28 21:41:00 2011
New Revision: 221186
URL: http://svn.freebsd.org/changeset/base/221186

Log:
  When doing -F + --packages* for an individual port, don't bail out before
  we have checked the run dependencies

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Thu Apr 28 21:27:34 2011	(r221185)
+++ user/dougb/portmaster/portmaster	Thu Apr 28 21:41:00 2011	(r221186)
@@ -3537,7 +3537,7 @@ notnewer () {
 	fi
 fi	# [ -n "$pm_package_time" ]
 
-if [ -z "$use_package" -a -z "$FETCH_ONLY" ]; then
+if [ -z "$use_package" ]; then
 	if [ -n "$PM_PACKAGES" ]; then
 		[ -z "$PM_NO_MAKE_CONFIG" ] && make_config
 
@@ -3579,11 +3579,10 @@ if [ -z "$use_package" -a -z "$FETCH_ONL
 else
 	[ -z "$local_package" ] && {
 		fetch_package $latest_pv || fail "Fetch for ${latest_pv}.tbz failed"; }
-	check_fetch_only Package
 fi
 
-# Ignore if no old port exists
-if [ -n "$upg_port" -o -n "$ro_upg_port" ]; then
+# Ignore if no old port exists, or -F
+if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$FETCH_ONLY" ]; then
 	UPGRADE_PORT="${ro_upg_port:-$upg_port}"
 	UPGRADE_PORT_VER=`echo $UPGRADE_PORT | sed 's#.*-\(.*\)#\1#'`
 	export UPGRADE_PORT UPGRADE_PORT_VER
@@ -3635,6 +3634,7 @@ fi
 if [ -z "$PM_THOROUGH" -a -z "$NO_DEP_UPDATES" ]; then
 	echo '' ; echo "===>>> Starting check for runtime dependencies"
 	dependency_check run-depends-list
+	[ -n "$use_package" ] && check_fetch_only Package
 	pm_cd_pd $portdir
 fi
 

From owner-svn-src-user@FreeBSD.ORG  Fri Apr 29 03:16:15 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 85251106564A;
	Fri, 29 Apr 2011 03:16:15 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 748408FC19;
	Fri, 29 Apr 2011 03:16:15 +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 p3T3GFl0080711;
	Fri, 29 Apr 2011 03:16:15 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3T3GF3Y080709;
	Fri, 29 Apr 2011 03:16:15 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104290316.p3T3GF3Y080709@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Fri, 29 Apr 2011 03:16:15 +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: r221195 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Apr 2011 03:16:15 -0000

Author: dougb
Date: Fri Apr 29 03:16:15 2011
New Revision: 221195
URL: http://svn.freebsd.org/changeset/base/221195

Log:
  Recursive irony alert:
  When called from gen_dep_list, which also uses temp_list as a local
  variable, uniquify_list needs its own set of local variables otherwise
  temp_list ends up being duplicated by uniquify_list
  
  Continue the campaign to unset things to keep the environment small

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Fri Apr 29 01:14:12 2011	(r221194)
+++ user/dougb/portmaster/portmaster	Fri Apr 29 03:16:15 2011	(r221195)
@@ -2284,16 +2284,16 @@ update_port () {
 }
 
 uniquify_list () {
-	local item temp_list
+	local ul_item ul_temp_list
 
-	for item in "$@"; do
-		case "$temp_list" in
-		*" $item "*) ;;
-		*)	temp_list=" $temp_list $item " ;;
+	for ul_item in "$@"; do
+		case "$ul_temp_list" in
+		*" $ul_item "*) ;;
+		*)	ul_temp_list=" $ul_temp_list $ul_item " ;;
 		esac
 	done
 
-	echo $temp_list
+	echo $ul_temp_list
 }
 
 clean_build_only_list () {
@@ -2989,6 +2989,7 @@ if [ -z "$REPLACE_ORIGIN" ]; then
 		esac
 		unset glob_dirs
 	fi
+	unset argv
 else
 	portdir="${1#$pd/}" ; portdir="${portdir%/}"
 	if [ -z "$PM_INDEX_ONLY" ]; then
@@ -3217,6 +3218,7 @@ if [ -n "$PM_FIRST_PASS" ]; then
 	fi
 
 	dependency_check "$dep_check_type"
+# XXX
 
 	[ -n "$UPDATE_REQ_BYS" -o -n "$URB_YES" ] &&
 		URB_DONE_LIST="${URB_DONE_LIST}${upg_port}:"
@@ -3814,6 +3816,7 @@ if [ -n "$upg_port" ]; then
 	else
 		ilist="Re-installation of $upg_port"
 	fi
+	unset argv
 else
 	ilist="Installation of $portdir ($new_port)"
 fi

From owner-svn-src-user@FreeBSD.ORG  Fri Apr 29 07:26:22 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C36CD106566B;
	Fri, 29 Apr 2011 07:26:22 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B29588FC19;
	Fri, 29 Apr 2011 07:26:22 +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 p3T7QMAX088384;
	Fri, 29 Apr 2011 07:26:22 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3T7QM1G088382;
	Fri, 29 Apr 2011 07:26:22 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104290726.p3T7QM1G088382@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Fri, 29 Apr 2011 07:26:22 +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: r221202 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Apr 2011 07:26:22 -0000

Author: dougb
Date: Fri Apr 29 07:26:22 2011
New Revision: 221202
URL: http://svn.freebsd.org/changeset/base/221202

Log:
  Fix an unfortunately long-standing bug in the --package code, we need to
  update the +REQUIRED_BY files for ports that the installed port depends on.
  When I tested pkg_add originally I confirmed that it did this, but I
  neglected to re-test when adding the --no-deps option, which suppresses
  this behavior. Mea culpa.
  
  So take this opportunity to fix the bug, and improve some other things in
  the process:
  * Add code to the section that updates dependencies for the newly installed
    package which walks the +CONTENTS file and runs the +REQUIRED_BY update
    for every port that the newly installed depends on. I may revisit this
    later with a more tightly focused solution, but this code is pretty fast,
    and at this point I'd rather be thorough.
  * Create update_required_by() to consolidate the 2 places that were doing
    this already, and avoid adding a 3rd above
  * Set PM_VERBOSE unconditionally for --check-depends. The functions that it
    uses all had code of the form [ -n "$PM_VERBOSE" -o -n "$CHECK_DEPENDS" ]
    which was growing increasingly pointless, and I didn't want to duplicate
    this in the new function. Doing it this way allows me to simplify some
    code quite a bit.
  * Remove a no-longer-used variable from --check-depends
  * Remove a spurious 'return 0' at the end of check_dependency_files

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Fri Apr 29 07:14:37 2011	(r221201)
+++ user/dougb/portmaster/portmaster	Fri Apr 29 07:26:22 2011	(r221202)
@@ -907,16 +907,13 @@ check_dependency_files () {
 		if [ -s "$pdb/$iport/+REQUIRED_BY" ]; then
 			# No actual dependencies exist, so this file is stale
 			# Zero it out so that -s mode can find it
-			if [ -n "$PM_VERBOSE" -o -n "$CHECK_DEPENDS" ]; then
-				echo "	===>>> No installed ports depend on $iport"
-				echo "	===>>> Emptying +REQUIRED_BY file.  Try ${0##*/} -s"
-			fi
+			pm_v "	===>>> No installed ports depend on $iport"
+			pm_v "	===>>> Emptying +REQUIRED_BY file.  Try ${0##*/} -s"
 
 			check_regular_file $pdb/$iport/+REQUIRED_BY
 			$PM_SU_CMD truncate -s0 $pdb/$iport/+REQUIRED_BY
 		fi
 	fi
-	return 0
 }
 
 # Takes default value, optional value, and message as input
@@ -1002,8 +999,7 @@ IFS='
 			fi
 
 			if [ -n "$d_iport" ]; then
-				[ -n "$PM_VERBOSE" -o -n "$CHECK_DEPENDS" ] &&
-					echo "	===>>> Updating @pkgdep for $d_origin"
+				pm_v "	===>>> Updating @pkgdep for $d_origin"
 			else
 				echo "	===>>> $d_origin is listed as a dependency"
 				echo "	===>>> but there is no installed version"
@@ -1051,8 +1047,7 @@ IFS='
 	cmp -s $contents $new_cont && { pm_unlink $new_cont ; return; }
 
 	check_regular_file $contents
-	[ -n "$PM_VERBOSE" -o -n "$CHECK_DEPENDS" ] &&
-		{ echo "	===>>> Installing the new +CONTENTS file" ; echo ''; }
+	pm_v "	===>>> Installing the new +CONTENTS file"
 	pm_install_s $new_cont $contents
 	pm_unlink $new_cont
 }
@@ -1256,6 +1251,24 @@ parse_index () {
 	esac
 }
 
+update_required_by () {
+	# Global: grep_deps
+	local do_update
+
+	if [ -e "$pdb/$1/+REQUIRED_BY" ]; then
+		sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update
+		check_regular_file $pdb/$1/+REQUIRED_BY
+	else
+		do_update=do_update2
+	fi
+	if [ -n "$do_update" ]; then
+		pm_v "	===>>> Updating $1/+REQUIRED_BY"
+		pm_install_s $grep_deps $pdb/$1/+REQUIRED_BY
+	fi
+
+	pm_unlink $grep_deps && unset grep_deps
+}
+
 #=============== End functions relevant to --features and main ===============
 #=============== Begin code relevant only to --features ===============
 
@@ -1377,7 +1390,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
 fi	# [ -n "$CLEAN_PACKAGES" ]
 
 if [ -n "$CHECK_DEPENDS" ]; then
-	d_orig_ok=':'
+	PM_VERBOSE=pmv_check_depends
 IFS='
 '
 	for pkg in $pdb/*; do
@@ -1409,21 +1422,7 @@ IFS='
 		fi
 
 		check_dependency_files $origin $iport
-		if [ -s "$grep_deps" ]; then
-			if [ -e "$pkg/+REQUIRED_BY" ]; then
-				sort $pkg/+REQUIRED_BY | cmp -s $grep_deps - ||
-					do_update=do_update
-				check_regular_file $pkg/+REQUIRED_BY
-			else
-				do_update=do_update2
-			fi
-			if [ -n "$do_update" ]; then
-				unset do_update
-				echo "	===>>> Updating +REQUIRED_BY"
-				pm_install_s $grep_deps $pkg/+REQUIRED_BY
-			fi
-		fi
-		[ -n "$grep_deps" ] && { pm_unlink $grep_deps && unset grep_deps; }
+		[ -s "$grep_deps" ] && update_required_by $iport
 
 		update_contents $pkg/+CONTENTS
 	done
@@ -3218,7 +3217,6 @@ if [ -n "$PM_FIRST_PASS" ]; then
 	fi
 
 	dependency_check "$dep_check_type"
-# XXX
 
 	[ -n "$UPDATE_REQ_BYS" -o -n "$URB_YES" ] &&
 		URB_DONE_LIST="${URB_DONE_LIST}${upg_port}:"
@@ -3756,6 +3754,17 @@ if [ -n "$use_package" ]; then
 		echo "===>>> Updating dependencies for $new_port to match installed versions"
 		update_contents $pdb/$new_port/+CONTENTS
 		echo ''
+
+		while read atc s; do
+			case "$atc" in
+			@pkgdep)	[ -n "$s" ] && pkgdep=$s ;;
+			@comment)	[ -n "$pkgdep" ] || continue
+					check_dependency_files ${s#DEPORIGIN:} $pkgdep
+					[ -s "$grep_deps" ] && update_required_by $pkgdep
+					unset pkgdep ;;
+			esac
+		done < $pdb/$new_port/+CONTENTS
+		unset atc s ; pm_v
 	fi
 fi
 
@@ -3795,19 +3804,7 @@ if [ -s "$grep_deps" ]; then
 	done < $grep_deps
 	unset d_port dp_cont do_update
 
-	if [ -e "$pdb/$new_port/+REQUIRED_BY" ]; then
-		sort $pdb/$new_port/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update
-		check_regular_file $pdb/$new_port/+REQUIRED_BY
-	else
-		do_update=do_update2
-	fi
-	if [ -n "$do_update" ]; then
-		pm_v ; pm_v "	===>>> Updating $new_port/+REQUIRED_BY"
-		pm_install_s $grep_deps $pdb/$new_port/+REQUIRED_BY
-	fi
-
-	pm_unlink $grep_deps && unset grep_deps do_update
-	echo ''
+	update_required_by $new_port
 fi
 
 if [ -n "$upg_port" ]; then

From owner-svn-src-user@FreeBSD.ORG  Sat Apr 30 00:17:45 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 71305106579E;
	Sat, 30 Apr 2011 00:17:45 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5ED748FC16;
	Sat, 30 Apr 2011 00:17:45 +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 p3U0HjWn021597;
	Sat, 30 Apr 2011 00:17:45 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3U0HjBh021595;
	Sat, 30 Apr 2011 00:17:45 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104300017.p3U0HjBh021595@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Sat, 30 Apr 2011 00:17:45 +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: r221235 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Apr 2011 00:17:45 -0000

Author: dougb
Date: Sat Apr 30 00:17:45 2011
New Revision: 221235
URL: http://svn.freebsd.org/changeset/base/221235

Log:
  Make -F --packages work with -r

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Fri Apr 29 23:13:43 2011	(r221234)
+++ user/dougb/portmaster/portmaster	Sat Apr 30 00:17:45 2011	(r221235)
@@ -2786,6 +2786,8 @@ urb_final () {
 	echo "===>>> Done updating ports that depend on $new_port"
 	echo ''
 
+	check_fetch_only Package
+
 	safe_exit
 }
 
@@ -3634,10 +3636,19 @@ fi
 if [ -z "$PM_THOROUGH" -a -z "$NO_DEP_UPDATES" ]; then
 	echo '' ; echo "===>>> Starting check for runtime dependencies"
 	dependency_check run-depends-list
-	[ -n "$use_package" ] && check_fetch_only Package
 	pm_cd_pd $portdir
 fi
 
+if [ -n "$FETCH_ONLY" ]; then		# Only reached here if using packages
+	if [ -n "$UPDATE_REQ_BYS" ] && [ -s "$pdb/$new_port/+REQUIRED_BY" ]; then
+		urb_final
+	elif [ "$$" -eq "$PM_PARENT_PID" ]; then
+		check_fetch_only Package
+	else
+		safe_exit
+	fi
+fi
+
 install_failed () {
 	local upg_port
 
@@ -3840,7 +3851,7 @@ if [ -z "$DONT_SCRUB_DISTFILES" ]; then
 	fi
 fi
 
-[ -n "$UPDATE_REQ_BYS" -a -s "$pdb/$new_port/+REQUIRED_BY" ] && urb_final
+[ -n "$UPDATE_REQ_BYS" ] && [ -s "$pdb/$new_port/+REQUIRED_BY" ] && urb_final
 
 safe_exit
 

From owner-svn-src-user@FreeBSD.ORG  Sat Apr 30 00:44:17 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74AC2106566B;
	Sat, 30 Apr 2011 00:44:17 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 631E28FC13;
	Sat, 30 Apr 2011 00:44:17 +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 p3U0iHNq022373;
	Sat, 30 Apr 2011 00:44:17 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id p3U0iHM0022371;
	Sat, 30 Apr 2011 00:44:17 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <201104300044.p3U0iHM0022371@svn.freebsd.org>
From: Doug Barton <dougb@FreeBSD.org>
Date: Sat, 30 Apr 2011 00:44:17 +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: r221236 - 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 &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Apr 2011 00:44:17 -0000

Author: dougb
Date: Sat Apr 30 00:44:17 2011
New Revision: 221236
URL: http://svn.freebsd.org/changeset/base/221236

Log:
  In multiport(), don't unset PM_UPDATE_IF_NEWER until we're done testing
  all the ports in the loop.

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Sat Apr 30 00:17:45 2011	(r221235)
+++ user/dougb/portmaster/portmaster	Sat Apr 30 00:44:17 2011	(r221236)
@@ -2663,13 +2663,13 @@ multiport () {
 					continue
 				fi
 			fi
-			unset PM_UPDATE_IF_NEWER
 		fi
 
 		worklist="$worklist $port"
 		portlist="${portlist}\t${port}\n"
 		PM_MULTI_PORTS="${PM_MULTI_PORTS}${port}:"
 	done
+	unset PM_UPDATE_IF_NEWER
 
 	echo ''
 	if [ -z "$worklist" ]; then