From owner-svn-ports-head@freebsd.org Sat Dec 26 20:47:07 2020 Return-Path: Delivered-To: svn-ports-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEE2F4C27FA; Sat, 26 Dec 2020 20:47:07 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D3G8C5wKpz4h9G; Sat, 26 Dec 2020 20:47:07 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BDF8C1ACDA; Sat, 26 Dec 2020 20:47:07 +0000 (UTC) (envelope-from se@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0BQKl78l031154; Sat, 26 Dec 2020 20:47:07 GMT (envelope-from se@FreeBSD.org) Received: (from se@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0BQKl7eO031153; Sat, 26 Dec 2020 20:47:07 GMT (envelope-from se@FreeBSD.org) Message-Id: <202012262047.0BQKl7eO031153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: se set sender to se@FreeBSD.org using -f From: =?UTF-8?Q?Stefan_E=c3=9fer?= Date: Sat, 26 Dec 2020 20:47:07 +0000 (UTC) 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 X-SVN-Group: ports-head X-SVN-Commit-Author: se X-SVN-Commit-Paths: in head/ports-mgmt/portmaster: . files X-SVN-Commit-Revision: 559311 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Dec 2020 20:47:07 -0000 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 " -@@ -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 # 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"