Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Dec 2020 20:47:07 +0000 (UTC)
From:      =?UTF-8?Q?Stefan_E=c3=9fer?= <se@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r559311 - in head/ports-mgmt/portmaster: . files
Message-ID:  <202012262047.0BQKl7eO031153@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: se
Date: Sat Dec 26 20:47:07 2020
New Revision: 559311
URL: https://svnweb.freebsd.org/changeset/ports/559311

Log:
  Enable updating of locked ports
  
  It was already possible to override the locked status of a package, but
  the deinstallation of the old version failed and made the update fail.
  
  After this change the package is temporarily unlocked during the upgrade.
  
  Reported by:	rkoberman@gmail.com (Kevin Oberman)

Modified:
  head/ports-mgmt/portmaster/Makefile
  head/ports-mgmt/portmaster/files/patch-portmaster

Modified: head/ports-mgmt/portmaster/Makefile
==============================================================================
--- head/ports-mgmt/portmaster/Makefile	Sat Dec 26 20:44:27 2020	(r559310)
+++ head/ports-mgmt/portmaster/Makefile	Sat Dec 26 20:47:07 2020	(r559311)
@@ -2,7 +2,7 @@
 
 PORTNAME=	portmaster
 PORTVERSION=	3.19
-PORTREVISION=	26
+PORTREVISION=	27
 CATEGORIES=	ports-mgmt
 
 MAINTAINER=	se@FreeBSD.org

Modified: head/ports-mgmt/portmaster/files/patch-portmaster
==============================================================================
--- head/ports-mgmt/portmaster/files/patch-portmaster	Sat Dec 26 20:44:27 2020	(r559310)
+++ head/ports-mgmt/portmaster/files/patch-portmaster	Sat Dec 26 20:47:07 2020	(r559311)
@@ -67,7 +67,7 @@
  		if [ -z "$PM_FIRST_PASS" ]; then
  			echo "DISPLAY_LIST='$DISPLAY_LIST'" >> $IPC_SAVE
  			echo "INSTALLED_LIST='$INSTALLED_LIST'" >> $IPC_SAVE
-@@ -308,50 +310,49 @@ safe_exit () {
+@@ -308,50 +310,55 @@ safe_exit () {
  	exit ${1:-0}
  } # safe_exit()
  
@@ -120,6 +120,12 @@
  pm_mkdir_s        () { $PM_SU_CMD /bin/mkdir -p $1; }
  pm_pkg_delete_s   () {
 -	$PM_SU_CMD /usr/local/sbin/pkg delete -yf $*;
++	for f in "$@"; do
++		if [ "$($PKG_CMD query %k $f)" = 1 ]; then
++			was_locked=1
++			$PKG_CMD unlock -qy $f
++		fi
++	done
 +	$PM_SU_CMD /usr/local/sbin/pkg-static delete -yf "$@";
  	for d in $* ; do
  	    pm_rm_s -rf $pdb/$d
@@ -136,7 +142,7 @@
  pm_sv             () { [ -n "$PM_SU_VERBOSE" ] && echo -e "===>>> SU $*"; }
  
  # Do this here so we can have a reasonably good guess.
-@@ -359,7 +360,7 @@ pm_sv             () { [ -n "$PM_SU_VERBOSE" ] && echo
+@@ -359,7 +366,7 @@ pm_sv             () { [ -n "$PM_SU_VERBOSE" ] && echo
  if [ "$$" -eq "$PM_PARENT_PID" ]; then
  	if [ -z "$pd" ]; then
  		if [ -z "$PORTSDIR" ]; then
@@ -145,7 +151,7 @@
  			[ -z "$pd" ] && pm_isdir /usr/ports && pd=/usr/ports
  		else
  			pd=$PORTSDIR
-@@ -433,6 +434,8 @@ usage () {
+@@ -433,6 +440,8 @@ usage () {
  	echo ''
  	echo "$progname --list-origins"
  	echo ''
@@ -154,7 +160,7 @@
  	echo "$progname [--force-config|-G] [-P|-PP] [-aftv] -F"
  	echo ''
  	echo "$progname [-n|y] [-b] [-D|d] -e <name/glob of a single port in $pdb>"
-@@ -513,6 +516,8 @@ usage () {
+@@ -513,6 +522,8 @@ usage () {
  	echo '-n answer no to all user prompts for the features below'
  	echo '-y answer yes to all user prompts for the features below'
  	echo ''
@@ -163,7 +169,7 @@
  	echo '[-n|y] [-b] [-D|d] -e expunge one port via pkg delete, and remove its distfiles'
  	echo '[-n|y] [-b] [-D|d] -s clean out stale ports that used to be depended on'
  	echo ''
-@@ -549,7 +554,7 @@ find_glob_dirs () {
+@@ -549,7 +560,7 @@ find_glob_dirs () {
  
  	pattern=`globstrip $1`
  
@@ -172,7 +178,7 @@
  	case "$glob_dirs" in
  	# Match a newline in multiple responses from find
  	*'
-@@ -562,12 +567,37 @@ find_glob_dirs () {
+@@ -562,12 +573,37 @@ find_glob_dirs () {
  	return 1
  }
  
@@ -213,7 +219,7 @@
  
  	case "$pkgname" in bsdpan-*) return 3 ;; esac
  
-@@ -576,7 +606,7 @@ origin_from_pdb () {
+@@ -576,7 +612,7 @@ origin_from_pdb () {
  			# An error above doesn't necessarily mean there's
  			# a problem in +MANIFEST, so don't mention it
  			echo "	===>>> No origin available for $pkgname" >&2
@@ -222,7 +228,7 @@
  			echo '' >&2
  		fi
  		return 2
-@@ -684,6 +714,7 @@ for var in "$@" ; do
+@@ -684,6 +720,7 @@ for var in "$@" ; do
  	--list-origins)		LIST_ORIGINS=list_origins ;;
  	--show-work)		SHOW_WORK=show ; PM_THOROUGH=thorough ;;
  	--force-config)		export PM_FORCE_CONFIG=pm_force_config ;;
@@ -230,7 +236,7 @@
  	--*)			echo "Illegal option $var" ; echo ''
  				echo "===>>> Try $progname --help"; exit 1 ;;
  	*)			newopts="$newopts $var" ;;
-@@ -728,7 +759,7 @@ while getopts 'BCDFGHKLPRabde:fghilm:nop:r:stvwx:y' CO
+@@ -728,7 +765,7 @@ while getopts 'BCDFGHKLPRabde:fghilm:nop:r:stvwx:y' CO
  	o)	REPLACE_ORIGIN=oopt ;; # -o should take a parameter and $OPTARG should be assigned here
  	p)	fail 'The -p option has been deprecated' ;;
  	r)	PM_URB=ropt
@@ -239,7 +245,7 @@
  			glob_dirs=$OPTARG
  		else
  			case "$OPTARG" in */*) fail 'The argument to -r must be a package name, or a glob pattern' ;; esac
-@@ -789,6 +820,7 @@ if [ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_D
+@@ -789,6 +826,7 @@ if [ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_D
  		fail "The -d and -D options are mutually exclusive"
  fi
  
@@ -247,7 +253,7 @@
  [ -n "$PM_NO_MAKE_CONFIG" -a -n "$PM_FORCE_CONFIG" ] && unset PM_NO_MAKE_CONFIG
  
  if [ -n "$LIST" -o -n "$LIST_PLUS" ]; then
-@@ -875,7 +907,7 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
+@@ -875,7 +913,7 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
  		fi
  		unset INDEXFILE INDEXDIR
  
@@ -256,7 +262,7 @@
  		export PM_INDEX_PORTS
  
  		if [ -z "$pd" -o "$pd" != /usr/ports ]; then
-@@ -927,6 +959,9 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
+@@ -927,6 +965,9 @@ if [ "$$" -eq "$PM_PARENT_PID" ]; then
  	fi
  fi	# [ "$$" -eq "$PM_PARENT_PID" ]
  
@@ -266,7 +272,7 @@
  #=============== Begin functions relevant to --features and main ===============
  
  # find installed port for given origin (with optional @flavor) in the pkg DB
-@@ -938,11 +973,15 @@ iport_from_origin () {
+@@ -938,11 +979,15 @@ iport_from_origin () {
  
  	origin=$(dir_part "$1")
  	flavor=$(flavor_part "$1")
@@ -284,7 +290,7 @@
  		if [ "$pkgflavor" = "$flavor" ]; then
  			echo $pkgname
  			return 0
-@@ -1002,25 +1041,6 @@ get_answer_yn () {
+@@ -1002,25 +1047,6 @@ get_answer_yn () {
  	fi
  }
  
@@ -310,7 +316,7 @@
  # Find the new origin for moved ports
  # Set global variable moved_npd on success
  # Return values:
-@@ -1045,7 +1065,7 @@ find_moved_port () {
+@@ -1045,7 +1071,7 @@ find_moved_port () {
  					echo ''
  					echo "	===>>> The $sf port has been deleted"
  					echo "	===>>> Reason: ${moved##*|}"
@@ -319,7 +325,7 @@
  					echo ''
  				fi
  				return 0
-@@ -1056,7 +1076,8 @@ find_moved_port () {
+@@ -1056,7 +1082,8 @@ find_moved_port () {
  			fi ;;
  		${sf}\|*) moved_npd=${moved#*\|}	# New port directory
  			moved_npd=${moved_npd%%\|*}
@@ -329,7 +335,7 @@
  			echo ''
  			echo "	===>>> The $sf port moved to $moved_npd"
  			echo "	===>>> Reason: ${moved##*|}"
-@@ -1082,7 +1103,7 @@ find_moved_port () {
+@@ -1082,7 +1109,7 @@ find_moved_port () {
  }
  
  all_pkgs_by_origin () {
@@ -338,7 +344,7 @@
  	echo "$namesorigins"
  	return
  }
-@@ -1146,11 +1167,10 @@ read_distinfos_all () {
+@@ -1146,11 +1173,10 @@ read_distinfos_all () {
  	echo ''
  
  	for origin in ${pd}/*/*; do
@@ -351,7 +357,7 @@
  
  		if [ -s "${origin}/distinfo" ]; then
  			distinfo="${origin}/distinfo"
-@@ -1181,17 +1201,17 @@ ports_by_category () {
+@@ -1181,17 +1207,17 @@ ports_by_category () {
  	local pkg
  
  	pm_v "===>>> Sorting ports by category"
@@ -374,7 +380,7 @@
  }
  
  delete_empty_dist_subdirs () {
-@@ -1279,7 +1299,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
+@@ -1279,7 +1305,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
  	for package in `find $PACKAGES -type f | sort`; do
  		pkg_dir=${package##*/} ; pkg_dir=${pkg_dir%\.*} ; echo ''
  
@@ -383,7 +389,7 @@
  			origin=`tar -O -zxvf $package '+CONTENTS' 2>/dev/null | grep '@comment ORIGIN:'` ||
  			origin=`tar -O -zxvf $package '+MANIFEST' 2>/dev/null | grep '^origin:'` ||
  			fail "Empty origin in $package"
-@@ -1302,7 +1322,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
+@@ -1302,7 +1328,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
  		if [ -n "$port_ver" ]; then
  			if [ "$port_ver" = "$pkg_dir" ]; then
  				echo "===>>> ${package##*/} is up to date"
@@ -392,7 +398,7 @@
  					echo "	===>>> $pkg_dir is not installed"
  					echo "	===>>> Path: ${package}"
  					get_answer_yn y "\n\t===>>> Delete stale package: ${package##*/}"
-@@ -1320,7 +1340,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
+@@ -1320,7 +1346,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
  
  			unset port_ver
  
@@ -401,7 +407,7 @@
  				echo "	===>>> ${package##*/} matches the installed version"
  			else
  				echo "	===>>> ${package##*/} is not installed"
-@@ -1362,7 +1382,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
+@@ -1362,7 +1388,7 @@ if [ -n "$CLEAN_PACKAGES" ]; then
  fi	# [ -n "$CLEAN_PACKAGES" ]
  
  if [ -n "$CHECK_DEPENDS" ]; then
@@ -410,7 +416,7 @@
  	exit 0
  fi
  
-@@ -1377,14 +1397,14 @@ if [ -n "$CHECK_PORT_DBDIR" ]; then
+@@ -1377,14 +1403,14 @@ if [ -n "$CHECK_PORT_DBDIR" ]; then
  		if ! pm_isdir_pd "$origin"; then
  			find_moved_port $origin $pkg nonfatal >/dev/null
  			[ -n "$moved_npd" ] || continue
@@ -427,7 +433,7 @@
  	done <<-EOF
  	$(all_pkgs_by_origin)
  	EOF
-@@ -1413,7 +1433,7 @@ if [ -n "$CHECK_PORT_DBDIR" ]; then
+@@ -1413,7 +1439,7 @@ if [ -n "$CHECK_PORT_DBDIR" ]; then
  fi
  
  if [ -n "$LIST_ORIGINS" ]; then
@@ -436,7 +442,7 @@
  
  	exit 0
  fi
-@@ -1423,10 +1443,11 @@ fi
+@@ -1423,10 +1449,11 @@ fi
  
  check_state () {
  	# Global: state
@@ -450,7 +456,7 @@
  			state_set=`pm_make -V $state`
  			if [ -n "$state_set" ]; then
  				echo "	===>>> This port is marked $state"
-@@ -1502,10 +1523,10 @@ check_for_updates () {
+@@ -1502,10 +1529,10 @@ check_for_updates () {
  	fi
  
  	if [ -z "$do_update" -a -z "$skip" -a -z "$PM_INDEX_ONLY" ] && pm_isdir "$pd/$origin"; then
@@ -463,7 +469,7 @@
  				echo ''
  				CUR_DEPS="${CUR_DEPS}${iport}:${originflavor}:"
  				return 0
-@@ -1521,7 +1542,7 @@ check_for_updates () {
+@@ -1521,7 +1548,7 @@ check_for_updates () {
  		# If the port has moved and no +IGNOREME, we have to update it
  		if [ -n "$moved_npd" ]; then
  			if pm_islocked "$iport"; then
@@ -472,7 +478,7 @@
  				echo ''
  				CUR_DEPS="${CUR_DEPS}${iport}:${originflavor}:"
  				return 0
-@@ -1545,7 +1566,7 @@ check_for_updates () {
+@@ -1545,7 +1572,7 @@ check_for_updates () {
  				unset port_ver
  			fi
  		else
@@ -481,7 +487,7 @@
  			\<)	do_update=upd_lt ;;
  			=)	;;	# Can be reached if same version with different options
  			\>)	if [ -n "$PM_VERBOSE" ]; then
-@@ -1569,7 +1590,7 @@ check_for_updates () {
+@@ -1569,7 +1596,7 @@ check_for_updates () {
  		if [ -z "$moved_npd" ]; then
  			echo "	===>>> New version available: $port_ver"
  			if pm_islocked "$iport"; then
@@ -490,7 +496,7 @@
  			fi
  			pm_cd_pd $origin && check_state
  			num_updates=$(( $num_updates + 1 ))
-@@ -1628,7 +1649,7 @@ pm_pkg_create () {
+@@ -1628,7 +1655,7 @@ pm_pkg_create () {
  	fi
  
  	pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package"
@@ -499,7 +505,7 @@
  		if [ "$1" = "$pbu" ]; then
  			if [ -n "$BACKUP" ]; then
  				echo "	===>>> Package saved to $1" ; echo ''
-@@ -1980,7 +2001,7 @@ if [ -n "$LIST" -o -n "$LIST_PLUS" ]; then
+@@ -1980,7 +2007,7 @@ if [ -n "$LIST" -o -n "$LIST_PLUS" ]; then
  fi
  
  if [ -n "$EXPUNGE" ]; then
@@ -508,7 +514,7 @@
  		find_glob_dirs $EXPUNGE
  		case $? in
  		1)	fail "No such port: $EXPUNGE" ;;
-@@ -1992,7 +2013,7 @@ if [ -n "$EXPUNGE" ]; then
+@@ -1992,7 +2019,7 @@ if [ -n "$EXPUNGE" ]; then
  	fi
  
  	origin=`origin_from_pdb $EXPUNGE`
@@ -517,7 +523,7 @@
  	if [ -n "$deplist" ]; then
  		echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:"
  		echo "$deplist" | sed 's/^/	/'
-@@ -2020,7 +2041,7 @@ fi
+@@ -2020,7 +2047,7 @@ fi
  if [ -n "$CLEAN_STALE" ]; then
  	[ -z "$no_del_list" ] && export no_del_list=':'
  
@@ -526,7 +532,7 @@
  	for file in $stale_ports; do
  		iport="${file%/+REQUIRED_BY}" ; iport=${iport#$pdb/}
  
-@@ -2040,7 +2061,7 @@ if [ -n "$CLEAN_STALE" ]; then
+@@ -2040,7 +2067,7 @@ if [ -n "$CLEAN_STALE" ]; then
  			continue
  		fi
  
@@ -535,7 +541,7 @@
  
  		get_answer_yn n "\t===>>> ${iport} is no longer depended on, delete"
  		case "$?" in
-@@ -2073,7 +2094,7 @@ check_restart_and_udf () {
+@@ -2073,7 +2100,7 @@ check_restart_and_udf () {
  	# to go out to the disk if we don't have to.
  	[ -z "$RESTART" ] && return 1
  
@@ -544,7 +550,7 @@
  		return 1
  	else
  		already_done $1
-@@ -2175,26 +2196,32 @@ update_pm_nu () {
+@@ -2175,26 +2202,32 @@ update_pm_nu () {
  }
  
  update_build_l () {
@@ -582,7 +588,7 @@
  	\<)	build_l="${build_l}\tUpgrade $iport to $new_port\n" ;;
  	=)	build_l="${build_l}\tRe-install $iport\n" ;;
  	\>)	build_l="${build_l}\tDowngrade $iport to $new_port\n" ;;
-@@ -2203,8 +2230,9 @@ update_build_l () {
+@@ -2203,8 +2236,9 @@ update_build_l () {
  }
  
  update_port () {
@@ -593,7 +599,7 @@
  	if [ -n "$2" ]; then
  		echo "===>>> Launching child to update $1 to $2"
  	else
-@@ -2300,7 +2328,7 @@ make_dep_list () {
+@@ -2300,7 +2334,7 @@ make_dep_list () {
  			fail "make_dep_list: Unsupported option '$dep_type'"
  		esac
  	done
@@ -602,7 +608,7 @@
  }
  
  gen_dep_list () {
-@@ -2368,15 +2396,17 @@ dependency_check () {
+@@ -2368,15 +2402,17 @@ dependency_check () {
  		rundeps=`gen_dep_list run-depends-list`
  
  		for dep in $d_port_list; do
@@ -623,7 +629,7 @@
  				rundep_list="$rundep_list $varname"
  				eval $varname=\"$portdir \$$varname\"
  				eval ${varname}_p=$dep
-@@ -2409,7 +2439,10 @@ dependency_check () {
+@@ -2409,7 +2445,10 @@ dependency_check () {
  
  	# Do not export, for THIS parent process only
  	[ -n "$PM_FIRST_PASS" ] && doing_dep_check=doing_dep_check
@@ -635,7 +641,7 @@
  		origin="${d_port#$pd/}"
  		if [ -n "$SHOW_WORK" ]; then
  			iport=`iport_from_origin $origin`
-@@ -2429,23 +2462,17 @@ dependency_check () {
+@@ -2429,23 +2468,17 @@ dependency_check () {
  		[ -z "$PM_URB_UP" ] &&
  			case "$CUR_DEPS" in *:${origin}:*) continue ;; esac
  
@@ -664,7 +670,7 @@
  				if [ -n "$confl_p" ]; then
  					confl_p=${confl_p%% *}
  					d_port="$pd/`origin_from_pdb $confl_p`"
-@@ -2498,7 +2525,11 @@ dependency_check () {
+@@ -2498,7 +2531,11 @@ dependency_check () {
  			check_for_updates $iport $origin || fail 'Update failed'
  		else
  			check_interactive $origin || continue
@@ -677,7 +683,7 @@
  		fi
  	done
  	[ -n "$PM_FIRST_PASS" ] && unset doing_dep_check
-@@ -2587,7 +2618,7 @@ post_first_pass () {
+@@ -2587,7 +2624,7 @@ post_first_pass () {
  		done
  
  		for dep in $build_only_dl_g; do
@@ -686,7 +692,7 @@
  			[ -n "$PM_DEL_BUILD_ONLY" ] &&
  				iport_from_origin ${dep#$pd/} >/dev/null && continue
  			temp_bodlg="$temp_bodlg $dep"
-@@ -2629,7 +2660,7 @@ urb_update () {
+@@ -2629,7 +2666,7 @@ urb_update () {
  			case " $PM_URB_ORIGINS" in *" $req_by_o "*) continue ;; esac
  			PM_URB_LIST="${PM_URB_LIST} ${req_by}"
  		done <<-EOF
@@ -695,7 +701,7 @@
  		EOF
  	done
  
-@@ -2642,7 +2673,7 @@ urb_update () {
+@@ -2642,7 +2679,7 @@ urb_update () {
  
  	for req_by in $PM_URB_LIST; do
  		# Probably not needed, but JIC
@@ -704,7 +710,7 @@
  
  		pm_v "===>>> $req_by depends on $PM_URB_IPORTS"
  
-@@ -2683,7 +2714,7 @@ multiport () {
+@@ -2683,7 +2720,7 @@ multiport () {
  			else
  				fail "$pd/${port} does not exist"
  			fi ;;
@@ -713,7 +719,7 @@
  				worklist_temp="$worklist_temp $port"
  			else
  				find_glob_dirs $port
-@@ -2773,8 +2804,8 @@ multiport () {
+@@ -2773,8 +2810,8 @@ multiport () {
  
  		num=$(( $num + 1 ))
  		init_term_printf "$port ${num}/${numports}"
@@ -724,7 +730,7 @@
  		[ -n "$update_failed" ] && fail "Update for $port failed"
  
  		case "$PM_NEEDS_UPDATE" in
-@@ -2803,7 +2834,7 @@ multiport () {
+@@ -2803,7 +2840,7 @@ multiport () {
  		*/*)	origin=$port ;;
  		*)	# If an installed version does not exist at this
  			# point it probably got updated as a dependency
@@ -733,7 +739,7 @@
  				numports=$(( $numports - 1 ))
  				continue
  			fi
-@@ -2823,7 +2854,7 @@ multiport () {
+@@ -2823,7 +2860,7 @@ multiport () {
  		num=$(( $num + 1 ))
  		init_term_printf "$port ${num}/${numports}"
  		("$program" $ARGS $port) || update_failed=update_failed
@@ -742,7 +748,7 @@
  		[ -n "$update_failed" ] && fail "Update for $port failed"
  	done
  
-@@ -2951,7 +2982,7 @@ all_first_pass () {
+@@ -2951,7 +2988,7 @@ all_first_pass () {
  		origin=`origin_from_pdb $iport` || {
  			case "$?" in
  			3) ;;
@@ -751,7 +757,7 @@
  				echo "	===>>> Skipping"
  				echo '' ;;
  			*)	fail 'Cannot continue' ;;
-@@ -3029,8 +3060,12 @@ no_valid_port () {
+@@ -3029,8 +3066,12 @@ no_valid_port () {
  	echo "===>>> Try $progname --help" ; echo '' ; safe_exit 1
  }
  
@@ -764,7 +770,7 @@
  	export_flavor $(flavor_part $portdir)
  	[ -n "$portdir" ] && { argv=$portdir ; unset portdir; }
  	argv=${argv:-$1} ; argv=${argv%/} ; argv=`globstrip $argv`
-@@ -3048,7 +3083,7 @@ if [ -z "$REPLACE_ORIGIN" ]; then
+@@ -3048,7 +3089,7 @@ if [ -z "$REPLACE_ORIGIN" ]; then
  			*)	echo '' ; no_valid_port ;;
  			esac
  		done ;;
@@ -773,7 +779,7 @@
  	esac
  
  	if [ -z "$portdir" -a -z "$upg_port" ]; then
-@@ -3061,9 +3096,11 @@ if [ -z "$REPLACE_ORIGIN" ]; then
+@@ -3061,9 +3102,11 @@ if [ -z "$REPLACE_ORIGIN" ]; then
  		unset glob_dirs
  	fi
  	unset argv
@@ -786,7 +792,7 @@
  	if [ -z "$PM_INDEX_ONLY" ]; then
  		pm_isdir_pd "$portdir" ] || missing=missing
  	else
-@@ -3076,12 +3113,12 @@ else
+@@ -3076,12 +3119,12 @@ else
  		echo '' ; no_valid_port
  	fi
  
@@ -801,7 +807,7 @@
  			ro_upg_port=$arg2
  		else
  			find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/}
-@@ -3097,7 +3134,7 @@ else
+@@ -3097,7 +3140,7 @@ else
  	unset arg2
  
  	if [ -z "$ro_upg_port" ]; then
@@ -810,7 +816,7 @@
  		if [ "$?" -eq 1 ]; then
  			echo ''
  			echo "===>>> The second argument to -o can be a package name,"
-@@ -3133,6 +3170,7 @@ if [ -z "$PM_INDEX_ONLY" ] && ! pm_isdir_pd "$portdir"
+@@ -3133,6 +3176,7 @@ if [ -z "$PM_INDEX_ONLY" ] && ! pm_isdir_pd "$portdir"
  	pm_isdir_pd "$moved_npd" || no_valid_port
  
  	[ "$$" -eq "$PM_PARENT_PID" ] && parent_exit
@@ -818,7 +824,7 @@
  	exec "$program" $ARGS -o $moved_npd $upg_port
  	# NOT REACHED
  fi
-@@ -3142,8 +3180,8 @@ iport_from_pkgname () {
+@@ -3142,8 +3186,8 @@ iport_from_pkgname () {
  
  	dir=$(dir_part $1)
  	flavor=$(flavor_part $1)
@@ -829,7 +835,7 @@
  }
  
  if [ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ]; then
-@@ -3161,7 +3199,7 @@ if pm_islocked "$upg_port"; then
+@@ -3161,7 +3205,7 @@ if pm_islocked "$upg_port"; then
  		*:${upg_port}:*) ;;	# Let it build
  		*)	if [ -z "$FETCH_ONLY" ]; then
  				echo ''
@@ -838,7 +844,7 @@
  				get_answer_g n y "\t===>>> Update anyway? y/n"
  				case "$?" in
  				1)	;;	# Let it build
-@@ -3175,7 +3213,7 @@ if pm_islocked "$upg_port"; then
+@@ -3175,7 +3219,7 @@ if pm_islocked "$upg_port"; then
  				esac
  			else
  				echo ''
@@ -847,7 +853,7 @@
  				echo ''
  				CUR_DEPS="${CUR_DEPS}${upg_port}:${portdir}:"
  				safe_exit
-@@ -3183,7 +3221,7 @@ if pm_islocked "$upg_port"; then
+@@ -3183,7 +3227,7 @@ if pm_islocked "$upg_port"; then
  		esac
  	elif [ -n "$PM_URB_UP" ]; then
  		echo ''
@@ -856,7 +862,7 @@
  		echo ''
  		safe_exit
  	fi
-@@ -3229,11 +3267,14 @@ if [ -n "$PM_FIRST_PASS" -a -z "$FETCH_ONLY" ]; then
+@@ -3229,11 +3273,14 @@ if [ -n "$PM_FIRST_PASS" -a -z "$FETCH_ONLY" ]; then
  		fi
  	fi
  
@@ -872,7 +878,7 @@
  # Do these things first time through
  if [ -z "$PM_INDEX_ONLY" -a -z "$PM_BUILDING" -a -z "$SHOW_WORK" -a -z "$NO_ACTION" ]; then
  	# Do not start this in the background until we are sure we are going to proceed
-@@ -3389,7 +3430,7 @@ fetch_package () {
+@@ -3389,7 +3436,7 @@ fetch_package () {
  		export ppd
  	fi
  
@@ -881,7 +887,7 @@
  
  	if [ -z "$FETCH_ARGS" ]; then
  		FETCH_ARGS=`pm_make -f/usr/share/mk/bsd.port.mk -V FETCH_ARGS 2>/dev/null`
-@@ -3533,7 +3574,7 @@ notnewer () {
+@@ -3533,7 +3580,7 @@ notnewer () {
  		pm_v "===>>> Available package ($latest_pv) matches the current version"
  	elif [ -n "$latest_pv" -a -n "$PM_PACKAGES_NEWER" ]; then
  		if [ -n "$upg_port" ]; then
@@ -890,7 +896,7 @@
  			\<)	use_package=up_newer
  				pm_v "===>>> Available package ($latest_pv)"
  				pm_v "       is newer than installed ($upg_port)" ;;
-@@ -3549,7 +3590,7 @@ notnewer () {
+@@ -3549,7 +3596,7 @@ notnewer () {
  			pm_v "===>>> There is a package available ($latest_pv)"
  		fi
  	elif [ -n "$latest_pv" ]; then
@@ -899,7 +905,7 @@
  		\<)	# Could happen if ports tree is out of date
  			use_package=up_old_tree
  			pm_v "===>>> Available package ($latest_pv)"
-@@ -3603,7 +3644,7 @@ if [ -z "$use_package" ]; then
+@@ -3603,7 +3650,7 @@ if [ -z "$use_package" ]; then
  
  	pm_cd_pd $portdir
  	export_flavor $(flavor_part $portdir)
@@ -908,7 +914,7 @@
  		fail 'make clean failed'; }
  
  	fl_read=`echo ${TMPDIR}/f-${PM_PARENT_PID}-fetchlog-${portdir#*/}.*`
-@@ -3632,19 +3673,27 @@ if [ -z "$use_package" ]; then
+@@ -3632,19 +3679,27 @@ if [ -z "$use_package" ]; then
  
  # Return flavor for named pkg (must be executed in port directory!)
  pkg_flavor () {
@@ -938,7 +944,7 @@
  else
  	[ -z "$local_package" ] && {
  		fetch_package $latest_pv || fail "Fetch for ${latest_pv}.txz failed"; }
-@@ -3665,7 +3714,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
+@@ -3665,7 +3720,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
  		    grep -v ^$LOCALBASE_COMPAT > $pm_mktemp_file
  
  		unset temp
@@ -947,7 +953,7 @@
  		    sort - $pm_mktemp_file | uniq -d`; do
  			temp="${temp}$file "
  		done
-@@ -3688,7 +3737,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
+@@ -3688,7 +3743,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
  
  	if [ -n "$REPLACE_ORIGIN" -a -n "$ro_upg_port" ]; then # <se> not always true for port moved to flavored version with no version update???
  		# Delete any existing versions of the old port
@@ -956,7 +962,7 @@
  		pm_sv "Running pkg delete for $ro_upg_port"
  		pm_pkg_delete_s $ro_upg_port
  	fi
-@@ -3710,7 +3759,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
+@@ -3710,7 +3765,7 @@ if [ -n "$upg_port" -o -n "$ro_upg_port" ] && [ -z "$F
  
  		# If $ro_upg_port was non-automatic, keep its state
  		if [ "${np_orphan:-1}" -eq 1 ]; then
@@ -965,7 +971,7 @@
  		fi
  		pm_sv "Running pkg delete for $upg_port"
  		pm_pkg_delete_s $upg_port
-@@ -3776,7 +3825,7 @@ else
+@@ -3776,7 +3831,7 @@ else
  	[ -n "$local_package" ] && ppd=${LOCAL_PACKAGEDIR}/All
  
  	echo "===>>> Installing package from: ${ppd}/${latest_pv}.txz"
@@ -974,7 +980,18 @@
  		if [ -n "$PM_DELETE_PACKAGES" ]; then
  			pm_v "===>>> Deleting ${latest_pv}.txz"
  			pm_unlink_s ${ppd}/${latest_pv}.txz
-@@ -3801,14 +3850,14 @@ echo ''
+@@ -3786,6 +3841,10 @@ else
+ 	fi
+ fi
+ 
++if [ "$was_locked" = 1 ]; then
++	$PKG_CMD lock -qy "$new_port"
++fi
++
+ if [ -n "$preserve_dir" ]; then
+ 	rmdir $preserve_dir 2>/dev/null
+ 	unset preserve_dir preserve_port_files
+@@ -3801,14 +3860,14 @@ echo ''
  temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null`
  if [ -z "$temp" ] && pm_isdir "$LOCALBASE_COMPAT"; then
  	unset files
@@ -991,7 +1008,7 @@
  		$PM_SU_CMD /etc/rc.d/ldconfig start > /dev/null
  	fi
  	unset temp file files
-@@ -3876,14 +3925,18 @@ if [ -n "$MAKE_PACKAGE" ]; then
+@@ -3876,14 +3935,18 @@ if [ -n "$MAKE_PACKAGE" ]; then
  fi
  
  if [ -z "$use_package" -a -z "$DONT_POST_CLEAN" ]; then
@@ -1013,7 +1030,7 @@
  fi
  
  
-@@ -3903,7 +3956,7 @@ if [ "$$" -ne "$PM_PARENT_PID" -o -n "$PM_URB" ]; then
+@@ -3903,7 +3966,7 @@ if [ "$$" -ne "$PM_PARENT_PID" -o -n "$PM_URB" ]; then
  fi
  
  INSTALLED_LIST="${INSTALLED_LIST}\t${ilist}\n"



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