From owner-svn-ports-head@freebsd.org Sun Dec 17 13:01:29 2017 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CE73E89231; Sun, 17 Dec 2017 13:01:29 +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 mx1.freebsd.org (Postfix) with ESMTPS id 477D56F819; Sun, 17 Dec 2017 13:01:29 +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 vBHD1SMY091676; Sun, 17 Dec 2017 13:01:28 GMT (envelope-from se@FreeBSD.org) Received: (from se@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBHD1S5j091675; Sun, 17 Dec 2017 13:01:28 GMT (envelope-from se@FreeBSD.org) Message-Id: <201712171301.vBHD1S5j091675@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: se set sender to se@FreeBSD.org using -f From: Stefan Esser Date: Sun, 17 Dec 2017 13:01:28 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r456528 - head/ports-mgmt/portmaster/files X-SVN-Group: ports-head X-SVN-Commit-Author: se X-SVN-Commit-Paths: head/ports-mgmt/portmaster/files X-SVN-Commit-Revision: 456528 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.25 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: Sun, 17 Dec 2017 13:01:29 -0000 Author: se Date: Sun Dec 17 13:01:28 2017 New Revision: 456528 URL: https://svnweb.freebsd.org/changeset/ports/456528 Log: Add support for ports that have been upgraded with a change of both origin and package name (sans version), as was the case for e.g. the lang/cython3 port, which was moved to lang/cython@py36 with a package name change from cython3-$version to py36-cython-$version. Approved by: antoine (implicit) Modified: head/ports-mgmt/portmaster/files/patch-portmaster Modified: head/ports-mgmt/portmaster/files/patch-portmaster ============================================================================== --- head/ports-mgmt/portmaster/files/patch-portmaster Sun Dec 17 11:25:13 2017 (r456527) +++ head/ports-mgmt/portmaster/files/patch-portmaster Sun Dec 17 13:01:28 2017 (r456528) @@ -1,6 +1,15 @@ ---- portmaster.orig 2017-12-14 17:26:55.000000000 +0100 -+++ portmaster 2017-12-16 15:01:06.221836000 +0100 -@@ -1039,7 +1039,7 @@ +--- portmaster.orig 2017-12-14 16:26:55 UTC ++++ portmaster +@@ -310,7 +310,7 @@ safe_exit () { + } # safe_exit() + + flavor_part () { expr "$1" : ".*@" >/dev/null && echo "${1#*@}"; } +-dir_part () { echo "${1%@*}"; } ++dir_part () { echo "${1%%@*}"; } + export_flavor () { local flavor="$1"; if [ "$FLAVOR" != "$flavor" ]; then + pm_v "===>>> Setting FLAVOR to '$flavor' (was '$FLAVOR')"; + export FLAVOR="$flavor"; fi; } +@@ -1039,7 +1039,7 @@ find_moved_port () { return 0 else reason=${moved##*|} @@ -9,7 +18,7 @@ fail "The $sf port has been deleted: $reason" fi ;; ${sf}\|*) moved_npd=${moved#*\|} # New port directory -@@ -1449,6 +1449,24 @@ +@@ -1449,6 +1449,24 @@ check_force_multi () { fi } @@ -34,7 +43,7 @@ check_for_updates () { # Global: num_updates local nf iport originflavor flavor origin port_ver do_update skip -@@ -2148,24 +2166,6 @@ +@@ -2148,24 +2166,6 @@ update_pm_nu () { PM_NEEDS_UPDATE="${PM_NEEDS_UPDATE}${1} " } @@ -59,7 +68,7 @@ update_build_l () { local originflavor origin flavor iport -@@ -2281,7 +2281,7 @@ +@@ -2281,7 +2281,7 @@ make_dep_list () { for dep_type in $*; do case $dep_type in build-depends-list) @@ -68,17 +77,31 @@ run-depends-list) var_opt="$var_opt -V RUN_DEPENDS" ;; *) -@@ -2797,7 +2797,8 @@ +@@ -2436,9 +2436,7 @@ dependency_check () { + confl_p=`pkg query -g "%n-%v" $glob 2>/dev/null` + if [ -n "$confl_p" ]; then + confl_p=${confl_p%% *} +-echo -e "<><><> Changing d_port from $d_port " + d_port="$pd/`origin_from_pdb $confl_p`" +-echo "to $d_port" + if [ "${d_port#$pd/}" = "$portdir" ]; then + echo -e "\n===>>> $origin seems to depend on $portdir" + echo ' which looks like a dependency loop' +@@ -2797,7 +2795,12 @@ multiport () { numports=$(( $numports - 1 )) continue fi - origin=`origin_from_pdb $port` ;; + origin=$(origin_from_pdb $port) -+ find_moved_port $origin $port nonfatal && origin=${moved_npd:-$origin} ;; ++ unset PM_OLD_ORIGIN ++ if [ -n "$origin" ] && ! pm_isdir_pd "$origin"; then ++ export PM_OLD_ORIGIN=$origin ++ find_moved_port $origin $port nonfatal && origin=$moved_npd ++ fi ;; esac case "$PM_NEEDS_UPDATE" in -@@ -3033,7 +3034,7 @@ +@@ -3033,7 +3036,7 @@ if [ -z "$REPLACE_ORIGIN" ]; then *) echo '' ; no_valid_port ;; esac done ;; @@ -87,7 +110,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3129,7 +3130,7 @@ +@@ -3129,12 +3132,13 @@ iport_from_pkgname () { dir=$(dir_part $1) flavor=$(flavor_part $1) pkgname=$(make -C "$pd/$dir" -V PKGNAME FLAVOR=$flavor) || return 1 @@ -96,7 +119,14 @@ } if [ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ]; then -@@ -3594,6 +3595,7 @@ + upg_port=`iport_from_origin ${portdir}` || +- upg_port=`iport_from_pkgname $portdir` ++ upg_port=`iport_from_pkgname $portdir` || ++ upg_port="$PM_OLD_ORIGIN" + # || fail "XXX Cannot find installed port '$portdir'" + fi + +@@ -3594,6 +3598,7 @@ if [ -z "$use_package" ]; then fi pm_cd_pd $portdir