aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt
diff options
context:
space:
mode:
authorStefan Eßer <se@FreeBSD.org>2020-12-26 20:47:07 +0000
committerStefan Eßer <se@FreeBSD.org>2020-12-26 20:47:07 +0000
commitd262ce88bc592ec1aefff8f8aa66616f1b2b424f (patch)
tree1e239d76b8d578e8d3414f9d638e58e94628eaef /ports-mgmt
parent7c23394b88bf2b1154047a8d8d12157eed6a6b16 (diff)
downloadports-d262ce88bc592ec1aefff8f8aa66616f1b2b424f.tar.gz
ports-d262ce88bc592ec1aefff8f8aa66616f1b2b424f.zip
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)
Notes
Notes: svn path=/head/; revision=559311
Diffstat (limited to 'ports-mgmt')
-rw-r--r--ports-mgmt/portmaster/Makefile2
-rw-r--r--ports-mgmt/portmaster/files/patch-portmaster165
2 files changed, 92 insertions, 75 deletions
diff --git a/ports-mgmt/portmaster/Makefile b/ports-mgmt/portmaster/Makefile
index 9dbf9723ad5e..a7e6dadc0324 100644
--- a/ports-mgmt/portmaster/Makefile
+++ b/ports-mgmt/portmaster/Makefile
@@ -2,7 +2,7 @@
PORTNAME= portmaster
PORTVERSION= 3.19
-PORTREVISION= 26
+PORTREVISION= 27
CATEGORIES= ports-mgmt
MAINTAINER= se@FreeBSD.org
diff --git a/ports-mgmt/portmaster/files/patch-portmaster b/ports-mgmt/portmaster/files/patch-portmaster
index ba0af09146dc..55de668d1cbc 100644
--- a/ports-mgmt/portmaster/files/patch-portmaster
+++ b/ports-mgmt/portmaster/files/patch-portmaster
@@ -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"