From 6ac727a8da8489e1c80e9672f1283573f96cc7a1 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 11:59:58 +0100 Subject: [PATCH 01/16] Exit immediately from update_required_by() The function is not going to be called anyway, but this change ensures it cannot do any damage. --- ports/portmaster.patch | 60 ++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 1ada9a37e6..392a57d0de 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 04:36:56.231159190 +0100 ++++ portmaster 2012-01-31 11:59:26.671251874 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -244,15 +244,19 @@ } delete_empty_dist_subdirs () { -@@ -1272,6 +1345,7 @@ +@@ -1269,9 +1342,11 @@ + esac + } + ++# useless with pkgng update_required_by () { # Global: grep_deps local do_update -+ [ -n "$use_pkgng" ] && /bin/unlink $grep_deps && unset grep_deps ++ [ -n "$use_pkgng" ] && /bin/unlink $grep_deps && unset grep_deps && return if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1323,12 +1397,19 @@ +@@ -1323,12 +1398,19 @@ init_packages_var echo "===>>> Checking for stale packages" @@ -276,7 +280,7 @@ if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,8 +1425,21 @@ +@@ -1344,8 +1426,21 @@ fi if [ -n "$port_ver" ]; then @@ -299,7 +303,7 @@ if [ ! -d "${pdb}/${pkg_dir}" ]; then echo " ===>>> $pkg_dir is not installed" echo " ===>>> Path: ${package}" -@@ -1406,6 +1500,7 @@ +@@ -1406,6 +1501,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -307,7 +311,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1446,6 +1541,7 @@ +@@ -1446,6 +1542,7 @@ fi if [ -n "$CHECK_PORT_DBDIR" ]; then @@ -315,7 +319,7 @@ [ -d "$port_dbdir" ] || fail 'PORT_DBIR is empty, or the directory $port_dbdir does not exist' -@@ -1610,14 +1706,19 @@ +@@ -1610,14 +1707,19 @@ unset port_ver fi else @@ -337,7 +341,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1790,13 @@ +@@ -1689,7 +1791,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -352,7 +356,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2135,28 @@ +@@ -2028,19 +2136,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -391,7 +395,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2164,8 @@ +@@ -2048,7 +2165,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -401,7 +405,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2175,13 @@ +@@ -2058,8 +2176,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -417,7 +421,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2191,22 @@ +@@ -2069,13 +2192,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -442,7 +446,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2219,32 @@ +@@ -2088,22 +2220,32 @@ continue fi @@ -483,7 +487,7 @@ esac done exit 0 -@@ -2243,7 +2384,12 @@ +@@ -2243,7 +2385,12 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -497,7 +501,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" ;; -@@ -2466,7 +2612,11 @@ +@@ -2466,7 +2613,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -510,7 +514,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,6 +2751,10 @@ +@@ -2601,6 +2752,10 @@ done for dep in $build_only_dl_g; do @@ -521,7 +525,7 @@ grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || temp_bodlg="$temp_bodlg $dep" done -@@ -2635,7 +2789,14 @@ +@@ -2635,7 +2790,14 @@ echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" echo '' @@ -536,7 +540,7 @@ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do req_by="${req_by%/+CONTENTS}" req_by="${req_by##*/}" -@@ -2806,9 +2967,16 @@ +@@ -2806,9 +2968,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -556,7 +560,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3204,12 @@ +@@ -3036,7 +3205,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -570,7 +574,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3242,20 @@ +@@ -3069,11 +3243,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -595,7 +599,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3707,12 @@ +@@ -3525,7 +3708,12 @@ 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 @@ -609,7 +613,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3728,12 @@ +@@ -3541,7 +3729,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -623,7 +627,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3832,12 @@ +@@ -3640,7 +3833,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -637,7 +641,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3940,32 @@ +@@ -3743,29 +3941,32 @@ fi fi @@ -693,7 +697,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +3981,12 @@ +@@ -3781,7 +3982,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -707,7 +711,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4049,8 @@ +@@ -3844,7 +4050,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -717,7 +721,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4085,29 @@ +@@ -3879,27 +4086,29 @@ echo '' fi From 2a87cb2e394fdf4e195eb9a557719b03b477ab8c Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 12:02:05 +0100 Subject: [PATCH 02/16] Fix typo --- ports/portmaster.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 392a57d0de..b844640cb4 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -307,7 +307,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then -+ [ -n "$use_pkgng" ] && exit 0 # this is useless with pkgng" ++ [ -n "$use_pkgng" ] && exit 0 # this is useless with pkgng PM_VERBOSE=pmv_check_depends IFS=' ' From 4dcc8d20cf45f6be073de57938f4741e94c52e64 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 13:21:52 +0100 Subject: [PATCH 03/16] Make --clean-packages work with any package format portmaster will just try extracting origin information from the package, be it old, new, .txz, .tbz, .tgz or .tar. --- ports/portmaster.patch | 129 +++++++++++++++++++++++++---------------- 1 file changed, 79 insertions(+), 50 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index b844640cb4..cef911048a 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 11:59:26.671251874 +0100 ++++ portmaster 2012-01-31 13:19:16.751259311 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -256,54 +256,83 @@ if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1323,12 +1398,19 @@ - init_packages_var +@@ -1324,11 +1399,13 @@ echo "===>>> Checking for stale packages" -+ local ext -+ ext=tbz -+ [ -n "$use_pkgng" ] && ext=txz for package in `find $PACKAGES -type f | sort`; do - pkg_dir=${package##*/} ; pkg_dir=${pkg_dir%\.tbz} ; echo '' -+ pkg_dir=${package##*/} ; pkg_dir=${pkg_dir%\.${ext}} ; echo '' ++ pkg_dir=${package##*/} ; pkg_dir=${pkg_dir%\.*} ; echo '' -- origin=`tar -O -zxvf $package '+CONTENTS' 2>/dev/null | grep '@comment ORIGIN:'` || + origin=`tar -O -zxvf $package '+CONTENTS' 2>/dev/null | grep '@comment ORIGIN:'` || - fail Empty origin in $package -- origin=${origin#@comment ORIGIN:} -+ if [ -z "$use_pkgng" ]; then -+ origin=`tar -O -zxvf $package '+CONTENTS' 2>/dev/null | grep '@comment ORIGIN:'` || -+ fail Empty origin in $package -+ origin=${origin#@comment ORIGIN:} -+ else -+ origin=`pkg query "%o" $package` || fail Empty origin in $package -+ fi ++ origin=`tar -O -zxvf $package '+MANIFEST' 2>/dev/null | grep '^origin:'` || ++ fail "Empty origin in $package" + origin=${origin#@comment ORIGIN:} ++ origin=${origin#origin: } if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,8 +1426,21 @@ +@@ -1344,16 +1421,28 @@ fi if [ -n "$port_ver" ]; then - if [ "${port_ver}.tbz" = "${package##*/}" ]; then -+ if [ "${port_ver}.${ext}" = "${package##*/}" ]; then ++ if [ "$port_ver" = "$pkg_dir" ]; then echo "===>>> ${package##*/} is up to date" -+ if [ -n "$use_pkgng" ]; then -+ if pkg info -e ${pkg_dir}; then +- if [ ! -d "${pdb}/${pkg_dir}" ]; then +- echo " ===>>> $pkg_dir is not installed" +- echo " ===>>> Path: ${package}" +- get_answer_yn y "\n\t===>>> Delete stale package: ${package##*/}" +- case "$?" in +- 0) echo " ===>>> Deleting $package" +- pm_unlink_s $package ;; +- esac ++ if [ -z "$use_pkgng" ]; then ++ if [ ! -d "${pdb}/${pkg_dir}" ]; then + echo " ===>>> $pkg_dir is not installed" + echo " ===>>> Path: ${package}" + get_answer_yn y "\n\t===>>> Delete stale package: ${package##*/}" + case "$?" in -+ 0) echo " ===>>> Deleting $package" -+ pm_unlink_s $package ;; ++ 0) echo " ===>>> Deleting $package" ++ pm_unlink_s $package ;; + esac + fi -+ unset port_ver -+ continue ++ else ++ if ! pkg info -e $pkg_dir; then ++ echo " ===>>> $pkg_dir is not installed" ++ echo " ===>>> Path: ${package}" ++ get_answer_yn y "\n\t===>>> Delete stale package: ${package##*/}" ++ case "$?" in ++ 0) echo " ===>>> Deleting $package" ++ pm_unlink_s $package ;; ++ esac ++ fi + fi + unset port_ver + continue +@@ -1364,10 +1453,18 @@ + + unset port_ver + +- if [ -d "${pdb}/${pkg_dir}" ]; then +- echo " ===>>> ${package##*/} matches the installed version" ++ if [ -z "$use_pkgng" ]; then ++ if [ -d "${pdb}/${pkg_dir}" ]; then ++ echo " ===>>> ${package##*/} matches the installed version" ++ else ++ echo " ===>>> ${package##*/} is not installed" + fi - if [ ! -d "${pdb}/${pkg_dir}" ]; then - echo " ===>>> $pkg_dir is not installed" - echo " ===>>> Path: ${package}" -@@ -1406,6 +1501,7 @@ + else +- echo " ===>>> ${package##*/} is not installed" ++ if pkg info -e $pkg_dir; then ++ echo " ===>>> ${package##*/} matches the installed version" ++ else ++ echo " ===>>> ${package##*/} is not installed" ++ fi + fi + fi + +@@ -1406,6 +1503,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -311,7 +340,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1446,6 +1542,7 @@ +@@ -1446,6 +1544,7 @@ fi if [ -n "$CHECK_PORT_DBDIR" ]; then @@ -319,7 +348,7 @@ [ -d "$port_dbdir" ] || fail 'PORT_DBIR is empty, or the directory $port_dbdir does not exist' -@@ -1610,14 +1707,19 @@ +@@ -1610,14 +1709,19 @@ unset port_ver fi else @@ -341,7 +370,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1791,13 @@ +@@ -1689,7 +1793,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -356,7 +385,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2136,28 @@ +@@ -2028,19 +2138,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -395,7 +424,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2165,8 @@ +@@ -2048,7 +2167,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -405,7 +434,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2176,13 @@ +@@ -2058,8 +2178,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -421,7 +450,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2192,22 @@ +@@ -2069,13 +2194,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -446,7 +475,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2220,32 @@ +@@ -2088,22 +2222,32 @@ continue fi @@ -487,7 +516,7 @@ esac done exit 0 -@@ -2243,7 +2385,12 @@ +@@ -2243,7 +2387,12 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -501,7 +530,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" ;; -@@ -2466,7 +2613,11 @@ +@@ -2466,7 +2615,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -514,7 +543,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,6 +2752,10 @@ +@@ -2601,6 +2754,10 @@ done for dep in $build_only_dl_g; do @@ -525,7 +554,7 @@ grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || temp_bodlg="$temp_bodlg $dep" done -@@ -2635,7 +2790,14 @@ +@@ -2635,7 +2792,14 @@ echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" echo '' @@ -540,7 +569,7 @@ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do req_by="${req_by%/+CONTENTS}" req_by="${req_by##*/}" -@@ -2806,9 +2968,16 @@ +@@ -2806,9 +2970,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -560,7 +589,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3205,12 @@ +@@ -3036,7 +3207,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -574,7 +603,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3243,20 @@ +@@ -3069,11 +3245,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -599,7 +628,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3708,12 @@ +@@ -3525,7 +3710,12 @@ 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 @@ -613,7 +642,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3729,12 @@ +@@ -3541,7 +3731,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -627,7 +656,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3833,12 @@ +@@ -3640,7 +3835,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -641,7 +670,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3941,32 @@ +@@ -3743,29 +3943,32 @@ fi fi @@ -697,7 +726,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +3982,12 @@ +@@ -3781,7 +3984,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -711,7 +740,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4050,8 @@ +@@ -3844,7 +4052,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -721,7 +750,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4086,29 @@ +@@ -3879,27 +4088,29 @@ echo '' fi From 16b04e596415a3c9940c6dad09f4a46fd33a269f Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 13:50:03 +0100 Subject: [PATCH 04/16] Enable --check-port-dbdir This option is actually useful even with pkgng. --- ports/portmaster.patch | 106 ++++++++++++++++++++++++++++++----------- 1 file changed, 78 insertions(+), 28 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index cef911048a..4400cf2ad1 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 13:19:16.751259311 +0100 ++++ portmaster 2012-01-31 13:42:03.841298704 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -340,15 +340,65 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1446,6 +1544,7 @@ - fi +@@ -1452,24 +1550,42 @@ + unique_list=':' + + echo "===>>> Building list of installed port names"; echo '' +- for pkg in $pdb/*; do +- [ -d $pkg ] || continue ++ if [ -z "$use_pkgng" ]; then ++ for pkg in $pdb/*; do ++ [ -d $pkg ] || continue + +- iport=${pkg#$pdb/} +- origin=`origin_from_pdb $iport` || continue ++ iport=${pkg#$pdb/} ++ origin=`origin_from_pdb $iport` || continue + +- if [ ! -d "$pd/$origin" ]; then +- find_moved_port $origin $iport nonfatal >/dev/null +- [ -n "$moved_npd" ] || continue +- origin=$moved_npd +- fi ++ if [ ! -d "$pd/$origin" ]; then ++ find_moved_port $origin $iport nonfatal >/dev/null ++ [ -n "$moved_npd" ] || continue ++ origin=$moved_npd ++ fi + +- if ! pm_cd $pd/$origin; then +- echo " ===>>> $pd/$origin does not exist for $pkg" +- continue +- fi +- unique_list="${unique_list}`make -V UNIQUENAME`:" +- done ++ if ! pm_cd $pd/$origin; then ++ echo " ===>>> $pd/$origin does not exist for $pkg" ++ continue ++ fi ++ unique_list="${unique_list}`make -V UNIQUENAME`:" ++ done ++ else ++ while read pkg origin; do ++ if [ ! -d "$pd/$origin" ]; then ++ find_moved_port $origin $pkg nonfatal >/dev/null ++ [ -n "$moved_npd" ] || continue ++ origin=$moved_npd ++ fi ++ ++ if ! pm_cd $pd/$origin; then ++ echo " ===>>> $pd/$origin does not exist for $pkg" ++ continue ++ fi ++ unique_list="${unique_list}`make -V UNIQUENAME`:" ++ done << EOF ++`pkg query -a "%n-%v %o"` ++EOF ++ fi - if [ -n "$CHECK_PORT_DBDIR" ]; then -+ [ -n "$use_pkgng" ] && exit 0 # useless with pkgng - [ -d "$port_dbdir" ] || - fail 'PORT_DBIR is empty, or the directory $port_dbdir does not exist' + echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1709,19 @@ +@@ -1610,14 +1726,19 @@ unset port_ver fi else @@ -370,7 +420,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1793,13 @@ +@@ -1689,7 +1810,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -385,7 +435,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2138,28 @@ +@@ -2028,19 +2155,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -424,7 +474,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2167,8 @@ +@@ -2048,7 +2184,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -434,7 +484,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2178,13 @@ +@@ -2058,8 +2195,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -450,7 +500,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2194,22 @@ +@@ -2069,13 +2211,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -475,7 +525,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2222,32 @@ +@@ -2088,22 +2239,32 @@ continue fi @@ -516,7 +566,7 @@ esac done exit 0 -@@ -2243,7 +2387,12 @@ +@@ -2243,7 +2404,12 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -530,7 +580,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" ;; -@@ -2466,7 +2615,11 @@ +@@ -2466,7 +2632,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -543,7 +593,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,6 +2754,10 @@ +@@ -2601,6 +2771,10 @@ done for dep in $build_only_dl_g; do @@ -554,7 +604,7 @@ grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || temp_bodlg="$temp_bodlg $dep" done -@@ -2635,7 +2792,14 @@ +@@ -2635,7 +2809,14 @@ echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" echo '' @@ -569,7 +619,7 @@ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do req_by="${req_by%/+CONTENTS}" req_by="${req_by##*/}" -@@ -2806,9 +2970,16 @@ +@@ -2806,9 +2987,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -589,7 +639,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3207,12 @@ +@@ -3036,7 +3224,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -603,7 +653,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3245,20 @@ +@@ -3069,11 +3262,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -628,7 +678,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3710,12 @@ +@@ -3525,7 +3727,12 @@ 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 @@ -642,7 +692,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3731,12 @@ +@@ -3541,7 +3748,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -656,7 +706,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3835,12 @@ +@@ -3640,7 +3852,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -670,7 +720,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3943,32 @@ +@@ -3743,29 +3960,32 @@ fi fi @@ -726,7 +776,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +3984,12 @@ +@@ -3781,7 +4001,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -740,7 +790,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4052,8 @@ +@@ -3844,7 +4069,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -750,7 +800,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4088,29 @@ +@@ -3879,27 +4105,29 @@ echo '' fi From eb0253e178acab93b693cf32482c556b9870c5e8 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 16:10:42 +0100 Subject: [PATCH 05/16] Cleanup a bit --- ports/portmaster.patch | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 4400cf2ad1..02a6804601 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 13:42:03.841298704 +0100 ++++ portmaster 2012-01-31 16:08:39.524095995 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -398,11 +398,12 @@ echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1726,19 @@ +@@ -1610,14 +1726,20 @@ unset port_ver fi else - case `pkg_version -t $iport $port_ver` in ++ local pkg_version + if [ -z "$use_pkgng" ]; then + pkg_version="pkg_version" + else @@ -420,7 +421,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1810,13 @@ +@@ -1689,7 +1811,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -435,7 +436,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2155,28 @@ +@@ -2028,19 +2156,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -474,17 +475,17 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2184,8 @@ +@@ -2048,7 +2185,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in - 0) for f in $deplist; do -+ 0) [ -n "$use_pkgng" ] && exit 0 ++ 0) [ -n "$use_pkgng" ] && exit 0 #TODO + for f in $deplist; do update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2195,13 @@ +@@ -2058,8 +2196,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -500,7 +501,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2211,22 @@ +@@ -2069,13 +2212,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -525,7 +526,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2239,32 @@ +@@ -2088,22 +2240,32 @@ continue fi @@ -566,11 +567,12 @@ esac done exit 0 -@@ -2243,7 +2404,12 @@ +@@ -2243,7 +2405,13 @@ fail "No entry for $origin in $PM_INDEX" fi - case `pkg_version -t $iport $new_port 2>/dev/null` in ++ local pkg_version + if [ -z "$use_pkgng" ]; then + pkg_version="pkg_version" + else @@ -580,7 +582,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" ;; -@@ -2466,7 +2632,11 @@ +@@ -2466,7 +2634,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do From 092906b314582f5aecbc72858456345290e11b0e Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 16:10:49 +0100 Subject: [PATCH 06/16] Fix logic and a reference to port origin --- ports/portmaster.patch | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 02a6804601..ac27846850 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -595,18 +595,23 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,6 +2771,10 @@ +@@ -2601,8 +2773,13 @@ done for dep in $build_only_dl_g; do -+ if [ -n "$use_pkgng" ]; then -+ [ "`pkg query "%?r" $dep`" = "0" ] || temp_bodlg="$temp_bodlg $dep" -+ continue +- grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || +- temp_bodlg="$temp_bodlg $dep" ++ if [ -z "$use_pkgng" ]; then ++ grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || ++ temp_bodlg="$temp_bodlg $dep" ++ else ++ [ "`pkg query "%?r" ${dep#$pd/}`" = "1" ] || ++ temp_bodlg="$temp_bodlg $dep" + fi - grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS || - temp_bodlg="$temp_bodlg $dep" done -@@ -2635,7 +2809,14 @@ + + build_only_dl_g=" `uniquify_list $temp_bodlg` " +@@ -2635,7 +2812,14 @@ echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" echo '' @@ -621,7 +626,7 @@ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do req_by="${req_by%/+CONTENTS}" req_by="${req_by##*/}" -@@ -2806,9 +2987,16 @@ +@@ -2806,9 +2990,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -641,7 +646,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3224,12 @@ +@@ -3036,7 +3227,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -655,7 +660,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3262,20 @@ +@@ -3069,11 +3265,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -680,7 +685,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3727,12 @@ +@@ -3525,7 +3730,12 @@ 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 @@ -694,7 +699,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3748,12 @@ +@@ -3541,7 +3751,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -708,7 +713,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3852,12 @@ +@@ -3640,7 +3855,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -722,7 +727,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3960,32 @@ +@@ -3743,29 +3963,32 @@ fi fi @@ -778,7 +783,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4001,12 @@ +@@ -3781,7 +4004,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -792,7 +797,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4069,8 @@ +@@ -3844,7 +4072,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -802,7 +807,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4105,29 @@ +@@ -3879,27 +4108,29 @@ echo '' fi From 1ebc6960f02eef25ee9e99454d32c9e855fe02ba Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 16:41:39 +0100 Subject: [PATCH 07/16] Add bits to support passing port names to -r Since this would change current portmaster behaviour, leave them commented out for now. --- ports/portmaster.patch | 79 ++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index ac27846850..16a02d24d2 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 16:08:39.524095995 +0100 ++++ portmaster 2012-01-31 16:40:34.671178105 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -49,15 +49,20 @@ case "$1" in bsdpan-*) return 3 ;; esac -@@ -666,6 +680,7 @@ +@@ -666,8 +680,11 @@ o) REPLACE_ORIGIN=oopt ;; p) fail 'The -p option has been deprecated' ;; r) PM_URB=ropt -+ #TODO - if [ -d "$pdb/$OPTARG" ]; then +- if [ -d "$pdb/$OPTARG" ]; then ++ if [ -z "$use_pkgng" -a -d "$pdb/$OPTARG" ]; then glob_dirs=$OPTARG ++ #TODO: uncomment when ready (changes portmaster behaviour) ++ #elif [ -n "$use_pkgng" ] && pkg info -e $OPTARG; then ++ # glob_dirs=`pkg query "%n-%v" $OPTARG` else -@@ -818,7 +833,12 @@ + find_glob_dirs $OPTARG + case $? in +@@ -818,7 +835,12 @@ fi unset INDEXFILE INDEXDIR @@ -71,7 +76,7 @@ export PM_INDEX_PORTS if [ -z "$pd" -o "$pd" != /usr/ports ]; then -@@ -875,6 +895,10 @@ +@@ -875,6 +897,10 @@ iport_from_origin () { local sn dir @@ -82,7 +87,7 @@ sn=${1#*/} ; sn=${sn%-*} ; sn=${sn%%[0-9]*} if ! dir=`grep -l "@comment ORIGIN:${1}$" $pdb/${sn}*/+CONTENTS 2>/dev/null`; then -@@ -903,6 +927,7 @@ +@@ -903,6 +929,7 @@ done } @@ -90,7 +95,7 @@ check_dependency_files () { # Global: grep_deps local origin iport ro_opd -@@ -985,6 +1010,7 @@ +@@ -985,6 +1012,7 @@ fi } @@ -98,7 +103,7 @@ update_contents () { local IFS delete contents origin n_port old_origin iport new_cont local o_seen line d_missing d_origin d_iport prev_line answer -@@ -1129,35 +1155,62 @@ +@@ -1129,35 +1157,62 @@ echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for installed ports" echo '' @@ -185,7 +190,7 @@ # Tell safe_exit that we are done pm_unlink ${DI_FILES}-e -@@ -1203,25 +1256,45 @@ +@@ -1203,25 +1258,45 @@ } ports_by_category () { @@ -244,7 +249,7 @@ } delete_empty_dist_subdirs () { -@@ -1269,9 +1342,11 @@ +@@ -1269,9 +1344,11 @@ esac } @@ -256,7 +261,7 @@ if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1324,11 +1399,13 @@ +@@ -1324,11 +1401,13 @@ echo "===>>> Checking for stale packages" for package in `find $PACKAGES -type f | sort`; do @@ -272,7 +277,7 @@ if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,16 +1421,28 @@ +@@ -1344,16 +1423,28 @@ fi if [ -n "$port_ver" ]; then @@ -310,7 +315,7 @@ fi unset port_ver continue -@@ -1364,10 +1453,18 @@ +@@ -1364,10 +1455,18 @@ unset port_ver @@ -332,7 +337,7 @@ fi fi -@@ -1406,6 +1503,7 @@ +@@ -1406,6 +1505,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -340,7 +345,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1452,24 +1550,42 @@ +@@ -1452,24 +1552,42 @@ unique_list=':' echo "===>>> Building list of installed port names"; echo '' @@ -398,7 +403,7 @@ echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1726,20 @@ +@@ -1610,14 +1728,20 @@ unset port_ver fi else @@ -421,7 +426,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1811,13 @@ +@@ -1689,7 +1813,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -436,7 +441,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2156,28 @@ +@@ -2028,19 +2158,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -475,7 +480,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2185,8 @@ +@@ -2048,7 +2187,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -485,7 +490,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2196,13 @@ +@@ -2058,8 +2198,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -501,7 +506,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2212,22 @@ +@@ -2069,13 +2214,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -526,7 +531,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2240,32 @@ +@@ -2088,22 +2242,32 @@ continue fi @@ -567,7 +572,7 @@ esac done exit 0 -@@ -2243,7 +2405,13 @@ +@@ -2243,7 +2407,13 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -582,7 +587,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" ;; -@@ -2466,7 +2634,11 @@ +@@ -2466,7 +2636,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -595,7 +600,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,8 +2773,13 @@ +@@ -2601,8 +2775,13 @@ done for dep in $build_only_dl_g; do @@ -611,7 +616,7 @@ done build_only_dl_g=" `uniquify_list $temp_bodlg` " -@@ -2635,7 +2812,14 @@ +@@ -2635,7 +2814,14 @@ echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" echo '' @@ -626,7 +631,7 @@ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do req_by="${req_by%/+CONTENTS}" req_by="${req_by##*/}" -@@ -2806,9 +2990,16 @@ +@@ -2806,9 +2992,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -646,7 +651,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3227,12 @@ +@@ -3036,7 +3229,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -660,7 +665,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3265,20 @@ +@@ -3069,11 +3267,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -685,7 +690,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3730,12 @@ +@@ -3525,7 +3732,12 @@ 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 @@ -699,7 +704,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3751,12 @@ +@@ -3541,7 +3753,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -713,7 +718,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3855,12 @@ +@@ -3640,7 +3857,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -727,7 +732,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3963,32 @@ +@@ -3743,29 +3965,32 @@ fi fi @@ -783,7 +788,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4004,12 @@ +@@ -3781,7 +4006,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -797,7 +802,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4072,8 @@ +@@ -3844,7 +4074,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -807,7 +812,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4108,29 @@ +@@ -3879,27 +4110,29 @@ echo '' fi From 97ea345d0307d98e746338f17c417f75c68c672e Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 17:09:51 +0100 Subject: [PATCH 08/16] Enhance -r option support --- ports/portmaster.patch | 67 ++++++++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 19 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 16a02d24d2..02d219f040 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 16:40:34.671178105 +0100 ++++ portmaster 2012-01-31 17:07:36.371180145 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -616,22 +616,51 @@ done build_only_dl_g=" `uniquify_list $temp_bodlg` " -@@ -2635,7 +2814,14 @@ - echo "===>>> Begin $verb ports that depend on $PM_URB_IPORTS" +@@ -2636,15 +2815,23 @@ echo '' -+ #TODO for origin in $PM_URB_ORIGINS; do -+ if [ -n "$use_pkgng" ]; then +- for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do +- req_by="${req_by%/+CONTENTS}" +- req_by="${req_by##*/}" ++ if [ -z "$use_pkgng" ]; then ++ for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do ++ req_by="${req_by%/+CONTENTS}" ++ req_by="${req_by##*/}" + +- case " $PM_URB_IPORTS" in *" $req_by "*) continue ;; esac +- case " $PM_URB_ORIGINS" in *" `origin_from_pdb $req_by` "*) continue ;; esac ++ case " $PM_URB_IPORTS" in *" $req_by "*) continue ;; esac ++ case " $PM_URB_ORIGINS" in *" `origin_from_pdb $req_by` "*) continue ;; esac + +- PM_URB_LIST="${PM_URB_LIST} ${req_by}" +- done ++ PM_URB_LIST="${PM_URB_LIST} ${req_by}" ++ done ++ else + for req_by in `pkg query "%rn-%rv" ${origin}`; do ++ case " $PM_URB_IPORTS" in *" $req_by "*) continue ;; esac ++ case " $PM_URB_ORIGINS" in *" `origin_from_pdb $req_by` "*) continue ;; esac + PM_URB_LIST="${PM_URB_LIST} ${req_by}" + done -+ continue + fi - for req_by in `grep -l DEPORIGIN:${origin}$ $pdb/*/+CONTENTS`; do - req_by="${req_by%/+CONTENTS}" - req_by="${req_by##*/}" -@@ -2806,9 +2992,16 @@ + done + + if [ -n "$PM_URB_LIST" ]; then +@@ -2656,7 +2843,11 @@ + + for req_by in $PM_URB_LIST; do + # Probably not needed, but JIC +- [ -d "$pdb/$req_by" ] || continue ++ if [ -z "$use_pkgng" ]; then ++ [ -d "$pdb/$req_by" ] || continue ++ else ++ pkg info -e $req_by || continue ++ fi + + pm_v "===>>> $req_by depends on $PM_URB_IPORTS" + +@@ -2806,9 +2997,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -651,7 +680,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3229,12 @@ +@@ -3036,7 +3234,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -665,7 +694,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3267,20 @@ +@@ -3069,11 +3272,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -690,7 +719,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3732,12 @@ +@@ -3525,7 +3737,12 @@ 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 @@ -704,7 +733,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3753,12 @@ +@@ -3541,7 +3758,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -718,7 +747,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3857,12 @@ +@@ -3640,7 +3862,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -732,7 +761,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3965,32 @@ +@@ -3743,29 +3970,32 @@ fi fi @@ -788,7 +817,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4006,12 @@ +@@ -3781,7 +4011,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -802,7 +831,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4074,8 @@ +@@ -3844,7 +4079,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -812,7 +841,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4110,29 @@ +@@ -3879,27 +4115,29 @@ echo '' fi From f9450f0ac17e4c6b584e7c1fd94c749719cdd923 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 17:22:13 +0100 Subject: [PATCH 09/16] Correctly detect wrong patterns --- ports/portmaster.patch | 77 +++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 02d219f040..957e365628 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 17:07:36.371180145 +0100 ++++ portmaster 2012-01-31 17:20:59.131313028 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -15,7 +15,7 @@ pm_rm_s () { $PM_SU_CMD /bin/rm $*; } pm_rmdir_s () { $PM_SU_CMD /bin/rmdir $*; } pm_unlink_s () { [ -e "$1" ] && $PM_SU_CMD /bin/unlink $1; } -@@ -496,12 +502,16 @@ +@@ -496,12 +502,17 @@ pattern=`globstrip $1` @@ -30,11 +30,12 @@ *' '*) return 2 ;; - $pdb/*) return ;; ++ '') ;; + *) return ;; esac unset glob_dirs -@@ -511,8 +521,12 @@ +@@ -511,8 +522,12 @@ origin_from_pdb () { local o @@ -49,7 +50,7 @@ case "$1" in bsdpan-*) return 3 ;; esac -@@ -666,8 +680,11 @@ +@@ -666,8 +681,11 @@ o) REPLACE_ORIGIN=oopt ;; p) fail 'The -p option has been deprecated' ;; r) PM_URB=ropt @@ -62,7 +63,7 @@ else find_glob_dirs $OPTARG case $? in -@@ -818,7 +835,12 @@ +@@ -818,7 +836,12 @@ fi unset INDEXFILE INDEXDIR @@ -76,7 +77,7 @@ export PM_INDEX_PORTS if [ -z "$pd" -o "$pd" != /usr/ports ]; then -@@ -875,6 +897,10 @@ +@@ -875,6 +898,10 @@ iport_from_origin () { local sn dir @@ -87,7 +88,7 @@ sn=${1#*/} ; sn=${sn%-*} ; sn=${sn%%[0-9]*} if ! dir=`grep -l "@comment ORIGIN:${1}$" $pdb/${sn}*/+CONTENTS 2>/dev/null`; then -@@ -903,6 +929,7 @@ +@@ -903,6 +930,7 @@ done } @@ -95,7 +96,7 @@ check_dependency_files () { # Global: grep_deps local origin iport ro_opd -@@ -985,6 +1012,7 @@ +@@ -985,6 +1013,7 @@ fi } @@ -103,7 +104,7 @@ update_contents () { local IFS delete contents origin n_port old_origin iport new_cont local o_seen line d_missing d_origin d_iport prev_line answer -@@ -1129,35 +1157,62 @@ +@@ -1129,35 +1158,62 @@ echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for installed ports" echo '' @@ -190,7 +191,7 @@ # Tell safe_exit that we are done pm_unlink ${DI_FILES}-e -@@ -1203,25 +1258,45 @@ +@@ -1203,25 +1259,45 @@ } ports_by_category () { @@ -249,7 +250,7 @@ } delete_empty_dist_subdirs () { -@@ -1269,9 +1344,11 @@ +@@ -1269,9 +1345,11 @@ esac } @@ -261,7 +262,7 @@ if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1324,11 +1401,13 @@ +@@ -1324,11 +1402,13 @@ echo "===>>> Checking for stale packages" for package in `find $PACKAGES -type f | sort`; do @@ -277,7 +278,7 @@ if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,16 +1423,28 @@ +@@ -1344,16 +1424,28 @@ fi if [ -n "$port_ver" ]; then @@ -315,7 +316,7 @@ fi unset port_ver continue -@@ -1364,10 +1455,18 @@ +@@ -1364,10 +1456,18 @@ unset port_ver @@ -337,7 +338,7 @@ fi fi -@@ -1406,6 +1505,7 @@ +@@ -1406,6 +1506,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -345,7 +346,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1452,24 +1552,42 @@ +@@ -1452,24 +1553,42 @@ unique_list=':' echo "===>>> Building list of installed port names"; echo '' @@ -403,7 +404,7 @@ echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1728,20 @@ +@@ -1610,14 +1729,20 @@ unset port_ver fi else @@ -426,7 +427,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1813,13 @@ +@@ -1689,7 +1814,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -441,7 +442,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2158,28 @@ +@@ -2028,19 +2159,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -480,7 +481,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2187,8 @@ +@@ -2048,7 +2188,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -490,7 +491,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2198,13 @@ +@@ -2058,8 +2199,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -506,7 +507,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2214,22 @@ +@@ -2069,13 +2215,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -531,7 +532,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2242,32 @@ +@@ -2088,22 +2243,32 @@ continue fi @@ -572,7 +573,7 @@ esac done exit 0 -@@ -2243,7 +2407,13 @@ +@@ -2243,7 +2408,13 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -587,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" ;; -@@ -2466,7 +2636,11 @@ +@@ -2466,7 +2637,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -600,7 +601,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,8 +2775,13 @@ +@@ -2601,8 +2776,13 @@ done for dep in $build_only_dl_g; do @@ -616,7 +617,7 @@ done build_only_dl_g=" `uniquify_list $temp_bodlg` " -@@ -2636,15 +2815,23 @@ +@@ -2636,15 +2816,23 @@ echo '' for origin in $PM_URB_ORIGINS; do @@ -647,7 +648,7 @@ done if [ -n "$PM_URB_LIST" ]; then -@@ -2656,7 +2843,11 @@ +@@ -2656,7 +2844,11 @@ for req_by in $PM_URB_LIST; do # Probably not needed, but JIC @@ -660,7 +661,7 @@ pm_v "===>>> $req_by depends on $PM_URB_IPORTS" -@@ -2806,9 +2997,16 @@ +@@ -2806,9 +2998,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -680,7 +681,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3234,12 @@ +@@ -3036,7 +3235,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -694,7 +695,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3272,20 @@ +@@ -3069,11 +3273,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -719,7 +720,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3737,12 @@ +@@ -3525,7 +3738,12 @@ 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 @@ -733,7 +734,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3758,12 @@ +@@ -3541,7 +3759,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -747,7 +748,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3862,12 @@ +@@ -3640,7 +3863,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -761,7 +762,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3970,32 @@ +@@ -3743,29 +3971,32 @@ fi fi @@ -817,7 +818,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4011,12 @@ +@@ -3781,7 +4012,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -831,7 +832,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4079,8 @@ +@@ -3844,7 +4080,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -841,7 +842,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4115,29 @@ +@@ -3879,27 +4116,29 @@ echo '' fi From 67a4709b4cc6bff9534fb039247125c9bb4fd592 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 17:51:41 +0100 Subject: [PATCH 10/16] Cleanup work on multiple ports --- ports/portmaster.patch | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 957e365628..27a1df094e 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 17:20:59.131313028 +0100 ++++ portmaster 2012-01-31 17:36:35.101180808 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -661,7 +661,26 @@ pm_v "===>>> $req_by depends on $PM_URB_IPORTS" -@@ -2806,9 +2998,16 @@ +@@ -2697,12 +2889,16 @@ + else + fail "$pd/${port} does not exist" + fi ;; +- *) if [ -d "$pdb/$port" ]; then ++ *) if [ -z "$use_pkgng" -a -d "$pdb/$port" ]; then + worklist_temp="$worklist_temp $port" + else + find_glob_dirs $port + case $? in +- 1) fail "$pdb/$port does not exist" ;; ++ 1) if [ -z "$use_pkgng" ]; then ++ fail "$pdb/$port does not exist" ++ else ++ fail "$port is not installed" ;; ++ fi + *) local dir + for dir in $glob_dirs; do + worklist_temp="$worklist_temp ${dir#$pdb/}" +@@ -2806,9 +3002,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -681,7 +700,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3235,12 @@ +@@ -3036,7 +3239,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -695,7 +714,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3273,20 @@ +@@ -3069,11 +3277,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -720,7 +739,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3738,12 @@ +@@ -3525,7 +3742,12 @@ 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 @@ -734,7 +753,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3759,12 @@ +@@ -3541,7 +3763,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -748,7 +767,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3863,12 @@ +@@ -3640,7 +3867,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -762,7 +781,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3971,32 @@ +@@ -3743,29 +3975,32 @@ fi fi @@ -818,7 +837,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4012,12 @@ +@@ -3781,7 +4016,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -832,7 +851,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4080,8 @@ +@@ -3844,7 +4084,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -842,7 +861,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4116,29 @@ +@@ -3879,27 +4120,29 @@ echo '' fi From eda9356c90ff7b2c15f6895fb17e1cfdd56ff0fa Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 17:59:22 +0100 Subject: [PATCH 11/16] Remove previously added code portmaster is supposed to work with globals, then avoid checking if a port name (without version) matches a single package (using pkg info -e) and just check for global matches. E.g., if I run... ...I don't want it to accidentally match a package named p5-$version, I want it to match all p5* packages. Shell completions are there right to do more capillary selections. While here, make the error message change conditionally. --- ports/portmaster.patch | 86 ++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 27a1df094e..e1bfe6ad4c 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 17:36:35.101180808 +0100 ++++ portmaster 2012-01-31 17:55:18.251309595 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -50,20 +50,26 @@ case "$1" in bsdpan-*) return 3 ;; esac -@@ -666,8 +681,11 @@ +@@ -666,12 +681,16 @@ o) REPLACE_ORIGIN=oopt ;; p) fail 'The -p option has been deprecated' ;; r) PM_URB=ropt - if [ -d "$pdb/$OPTARG" ]; then + if [ -z "$use_pkgng" -a -d "$pdb/$OPTARG" ]; then glob_dirs=$OPTARG -+ #TODO: uncomment when ready (changes portmaster behaviour) -+ #elif [ -n "$use_pkgng" ] && pkg info -e $OPTARG; then -+ # glob_dirs=`pkg query "%n-%v" $OPTARG` else find_glob_dirs $OPTARG case $? in -@@ -818,7 +836,12 @@ +- 1) fail "$pdb/$OPTARG does not exist" ;; ++ 1) if [ -z "$use_pkgng" ]; then ++ fail "$pdb/$OPTARG does not exist" ++ else ++ fail "$OPTARG is not installed" ++ fi ;; + 2) fail 'The argument to -r must match only one port' ;; + esac + fi +@@ -818,7 +837,12 @@ fi unset INDEXFILE INDEXDIR @@ -77,7 +83,7 @@ export PM_INDEX_PORTS if [ -z "$pd" -o "$pd" != /usr/ports ]; then -@@ -875,6 +898,10 @@ +@@ -875,6 +899,10 @@ iport_from_origin () { local sn dir @@ -88,7 +94,7 @@ sn=${1#*/} ; sn=${sn%-*} ; sn=${sn%%[0-9]*} if ! dir=`grep -l "@comment ORIGIN:${1}$" $pdb/${sn}*/+CONTENTS 2>/dev/null`; then -@@ -903,6 +930,7 @@ +@@ -903,6 +931,7 @@ done } @@ -96,7 +102,7 @@ check_dependency_files () { # Global: grep_deps local origin iport ro_opd -@@ -985,6 +1013,7 @@ +@@ -985,6 +1014,7 @@ fi } @@ -104,7 +110,7 @@ update_contents () { local IFS delete contents origin n_port old_origin iport new_cont local o_seen line d_missing d_origin d_iport prev_line answer -@@ -1129,35 +1158,62 @@ +@@ -1129,35 +1159,62 @@ echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for installed ports" echo '' @@ -191,7 +197,7 @@ # Tell safe_exit that we are done pm_unlink ${DI_FILES}-e -@@ -1203,25 +1259,45 @@ +@@ -1203,25 +1260,45 @@ } ports_by_category () { @@ -250,7 +256,7 @@ } delete_empty_dist_subdirs () { -@@ -1269,9 +1345,11 @@ +@@ -1269,9 +1346,11 @@ esac } @@ -262,7 +268,7 @@ if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1324,11 +1402,13 @@ +@@ -1324,11 +1403,13 @@ echo "===>>> Checking for stale packages" for package in `find $PACKAGES -type f | sort`; do @@ -278,7 +284,7 @@ if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,16 +1424,28 @@ +@@ -1344,16 +1425,28 @@ fi if [ -n "$port_ver" ]; then @@ -316,7 +322,7 @@ fi unset port_ver continue -@@ -1364,10 +1456,18 @@ +@@ -1364,10 +1457,18 @@ unset port_ver @@ -338,7 +344,7 @@ fi fi -@@ -1406,6 +1506,7 @@ +@@ -1406,6 +1507,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -346,7 +352,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1452,24 +1553,42 @@ +@@ -1452,24 +1554,42 @@ unique_list=':' echo "===>>> Building list of installed port names"; echo '' @@ -404,7 +410,7 @@ echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1729,20 @@ +@@ -1610,14 +1730,20 @@ unset port_ver fi else @@ -427,7 +433,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1814,13 @@ +@@ -1689,7 +1815,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -442,7 +448,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2159,28 @@ +@@ -2028,19 +2160,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -481,7 +487,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2188,8 @@ +@@ -2048,7 +2189,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -491,7 +497,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2199,13 @@ +@@ -2058,8 +2200,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -507,7 +513,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2215,22 @@ +@@ -2069,13 +2216,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -532,7 +538,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2243,32 @@ +@@ -2088,22 +2244,32 @@ continue fi @@ -573,7 +579,7 @@ esac done exit 0 -@@ -2243,7 +2408,13 @@ +@@ -2243,7 +2409,13 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -588,7 +594,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" ;; -@@ -2466,7 +2637,11 @@ +@@ -2466,7 +2638,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -601,7 +607,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,8 +2776,13 @@ +@@ -2601,8 +2777,13 @@ done for dep in $build_only_dl_g; do @@ -617,7 +623,7 @@ done build_only_dl_g=" `uniquify_list $temp_bodlg` " -@@ -2636,15 +2816,23 @@ +@@ -2636,15 +2817,23 @@ echo '' for origin in $PM_URB_ORIGINS; do @@ -648,7 +654,7 @@ done if [ -n "$PM_URB_LIST" ]; then -@@ -2656,7 +2844,11 @@ +@@ -2656,7 +2845,11 @@ for req_by in $PM_URB_LIST; do # Probably not needed, but JIC @@ -661,7 +667,7 @@ pm_v "===>>> $req_by depends on $PM_URB_IPORTS" -@@ -2697,12 +2889,16 @@ +@@ -2697,12 +2890,16 @@ else fail "$pd/${port} does not exist" fi ;; @@ -680,7 +686,7 @@ *) local dir for dir in $glob_dirs; do worklist_temp="$worklist_temp ${dir#$pdb/}" -@@ -2806,9 +3002,16 @@ +@@ -2806,9 +3003,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -700,7 +706,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3239,12 @@ +@@ -3036,7 +3240,12 @@ /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink @@ -714,7 +720,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3277,20 @@ +@@ -3069,11 +3278,20 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -739,7 +745,7 @@ fi [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` esac -@@ -3525,7 +3742,12 @@ +@@ -3525,7 +3743,12 @@ 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 @@ -753,7 +759,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3763,12 @@ +@@ -3541,7 +3764,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -767,7 +773,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3867,12 @@ +@@ -3640,7 +3868,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -781,7 +787,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3975,32 @@ +@@ -3743,29 +3976,32 @@ fi fi @@ -837,7 +843,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4016,12 @@ +@@ -3781,7 +4017,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -851,7 +857,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4084,8 @@ +@@ -3844,7 +4085,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -861,7 +867,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4120,29 @@ +@@ -3879,27 +4121,29 @@ echo '' fi From ac4d4b04576a3fd4fdffff92d3ffb86fb4529417 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 19:27:36 +0100 Subject: [PATCH 12/16] Fix stupid bug --- ports/portmaster.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index e1bfe6ad4c..8aac7c01e4 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 17:55:18.251309595 +0100 ++++ portmaster 2012-01-31 19:24:34.071175659 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -681,8 +681,8 @@ + 1) if [ -z "$use_pkgng" ]; then + fail "$pdb/$port does not exist" + else -+ fail "$port is not installed" ;; -+ fi ++ fail "$port is not installed" ++ fi ;; *) local dir for dir in $glob_dirs; do worklist_temp="$worklist_temp ${dir#$pdb/}" From c1db292def4d199dd28e461e5aeca0d733e0525d Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 19:29:52 +0100 Subject: [PATCH 13/16] Add support for -o and fix arguments convention Port names passed via command line will be treated only as shell glob patterns (with `pkg query -g "%n-%v" $port\*`). Complete package names (i.e., with version, like "gmake-3.82") will automatically match single packages, while port names (like "gmake") will be able to match many more. This is nothing but default portmaster behaviour. --- ports/portmaster.patch | 73 ++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 8aac7c01e4..b1eb76e936 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -706,46 +706,55 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3036,7 +3240,12 @@ +@@ -3032,11 +3236,15 @@ + case "$argv" in + '') echo '' ; no_valid_port ;; + $pd/*) portdir=${argv#$pd/} ;; +- $pdb/*) upg_port=${argv#$pdb/} ;; ++ $pdb/*) if [ -z "$use_pkgng" ]; then ++ upg_port=${argv#$pdb/} ++ else ++ echo '' ; no_valid_port ++ fi ;; /*) echo '' ; no_valid_port ;; */*) portdir=$argv ;; \.) portdir=${PWD##*/ports/} ;; # Not always $pd, could be symlink - *) [ -d "$pdb/$argv" ] && upg_port=$argv ;; -+ *) if [ -z "$use_pkgng" ]; then -+ [ -d "$pdb/$argv" ] && upg_port=$argv -+ else -+ pkg info -e $argv && upg_port=`pkg query "%n-%v" $argv` -+ fi -+ ;; ++ *) [ -z "$use_pkgng" -a -d "$pdb/$argv" ] && upg_port=$argv ;; esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,11 +3278,20 @@ +@@ -3069,7 +3277,7 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; - *) if [ -d "$pdb/$arg2" ]; then -- ro_upg_port=$arg2 -+ *) if [ -z "$use_pkgng" ]; then -+ if [ -d "$pdb/$arg2" ]; then -+ ro_upg_port=$arg2 -+ else -+ find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/} -+ unset glob_dirs -+ fi ++ *) if [ -z "$use_pkgng" -a -d "$pdb/$arg2" ]; then + ro_upg_port=$arg2 else -- find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/} -- unset glob_dirs -+ if pkg info -e $arg2; then -+ ro_upg_port=$arg2 + find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/} +@@ -3080,9 +3288,18 @@ + unset arg2 + + if [ -z "$ro_upg_port" ]; then +- if ! grep -ql "DEPORIGIN:$ro_opd$" $pdb/*/+CONTENTS; then ++ if [ -z "$use_pkgng" ]; then ++ grep -ql "DEPORIGIN:$ro_opd$" $pdb/*/+CONTENTS ++ else ++ pkg query -a "%do" | grep -q "^$ro_opd$" ++ fi ++ if [ "$?" -eq 1 ]; then + echo '' +- echo "===>>> The second argument to -o can be a port in $pdb," ++ if [ -z "$use_pkgng" ]; then ++ echo "===>>> The second argument to -o can be a port in $pdb," + else -+ find_glob_dirs $arg2 && ro_upg_port=${glob_dirs} -+ unset glob_dirs ++ echo "===>>> The second argument to -o can be a package name," + fi - fi - [ -n "$ro_upg_port" ] && ro_opd=`origin_from_pdb $ro_upg_port` - esac -@@ -3525,7 +3743,12 @@ + echo " or a port directory from $pd" + echo '' + echo " $ro_opd does not seem to be installed," +@@ -3525,7 +3742,12 @@ 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 @@ -759,7 +768,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3764,12 @@ +@@ -3541,7 +3763,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -773,7 +782,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3868,12 @@ +@@ -3640,7 +3867,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -787,7 +796,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3976,32 @@ +@@ -3743,29 +3975,32 @@ fi fi @@ -843,7 +852,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4017,12 @@ +@@ -3781,7 +4016,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -857,7 +866,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4085,8 @@ +@@ -3844,7 +4084,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -867,7 +876,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4121,29 @@ +@@ -3879,27 +4120,29 @@ echo '' fi From fa64abe6795516dc2ef4fe293425aad5634fcc9e Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 19:39:05 +0100 Subject: [PATCH 14/16] Disable support for +IGNOREME --- ports/portmaster.patch | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index b1eb76e936..287003d394 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 19:24:34.071175659 +0100 ++++ portmaster 2012-01-31 19:38:17.011178257 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -754,7 +754,17 @@ echo " or a port directory from $pd" echo '' echo " $ro_opd does not seem to be installed," -@@ -3525,7 +3742,12 @@ +@@ -3117,7 +3334,8 @@ + fi + [ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ] && upg_port=`iport_from_origin ${portdir}` + +-if [ -e "$pdb/$upg_port/+IGNOREME" ]; then ++#TODO? ++if [ -z "$use_pkgng" -a -e "$pdb/$upg_port/+IGNOREME" ]; then + # Adding to CUR_DEPS means we will not get here in the build unless -G + if [ -z "$PM_BUILDING" ]; then + # Only need to prompt for this once if -ai +@@ -3525,7 +3743,12 @@ 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 @@ -768,7 +778,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3763,12 @@ +@@ -3541,7 +3764,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -782,7 +792,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3867,12 @@ +@@ -3640,7 +3868,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -796,7 +806,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3975,32 @@ +@@ -3743,29 +3976,32 @@ fi fi @@ -852,7 +862,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4016,12 @@ +@@ -3781,7 +4017,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -866,7 +876,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4084,8 @@ +@@ -3844,7 +4085,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -876,7 +886,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4120,29 @@ +@@ -3879,27 +4121,29 @@ echo '' fi From cea200ed153631f4a5ab0630506a5970d46ace6e Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 20:16:40 +0100 Subject: [PATCH 15/16] Disable package support for now --- ports/portmaster.patch | 89 ++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 38 deletions(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index 287003d394..bb99a69313 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 19:38:17.011178257 +0100 ++++ portmaster 2012-01-31 20:15:02.891236908 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -69,7 +69,20 @@ 2) fail 'The argument to -r must match only one port' ;; esac fi -@@ -818,7 +837,12 @@ +@@ -753,6 +772,12 @@ + fail 'The -[ar] options are not compatible with other updates' + + if [ -n "$PM_PACKAGES" -o -n "$PM_PACKAGES_BUILD" ]; then ++ if [ -n "$use_pkgng" ]; then ++ unset PM_PACKAGES ; unset PM_PACKAGES_BUILD ; unset PM_PACKAGES_LOCAL ; unset PM_PACKAGES_NEWER ; unset PM_ALWAYS_FETCH ; unset PM_DELETE_PACKAGES ++ echo "===>>> Package installation support cannot be used with pkgng yet," ++ echo " it will be disabled" ++ echo '' ++ fi + [ `/sbin/sysctl -n kern.osreldate 2>/dev/null` -lt 600400 ] && + fail Package installation support requires FreeBSD 6.4 or newer + fi +@@ -818,7 +843,12 @@ fi unset INDEXFILE INDEXDIR @@ -83,7 +96,7 @@ export PM_INDEX_PORTS if [ -z "$pd" -o "$pd" != /usr/ports ]; then -@@ -875,6 +899,10 @@ +@@ -875,6 +905,10 @@ iport_from_origin () { local sn dir @@ -94,7 +107,7 @@ sn=${1#*/} ; sn=${sn%-*} ; sn=${sn%%[0-9]*} if ! dir=`grep -l "@comment ORIGIN:${1}$" $pdb/${sn}*/+CONTENTS 2>/dev/null`; then -@@ -903,6 +931,7 @@ +@@ -903,6 +937,7 @@ done } @@ -102,7 +115,7 @@ check_dependency_files () { # Global: grep_deps local origin iport ro_opd -@@ -985,6 +1014,7 @@ +@@ -985,6 +1020,7 @@ fi } @@ -110,7 +123,7 @@ update_contents () { local IFS delete contents origin n_port old_origin iport new_cont local o_seen line d_missing d_origin d_iport prev_line answer -@@ -1129,35 +1159,62 @@ +@@ -1129,35 +1165,62 @@ echo '############' > $DI_FILES # Make the file > 0 bytes echo "===>>> Gathering distinfo list for installed ports" echo '' @@ -197,7 +210,7 @@ # Tell safe_exit that we are done pm_unlink ${DI_FILES}-e -@@ -1203,25 +1260,45 @@ +@@ -1203,25 +1266,45 @@ } ports_by_category () { @@ -256,7 +269,7 @@ } delete_empty_dist_subdirs () { -@@ -1269,9 +1346,11 @@ +@@ -1269,9 +1352,11 @@ esac } @@ -268,7 +281,7 @@ if [ -e "$pdb/$1/+REQUIRED_BY" ]; then sort $pdb/$1/+REQUIRED_BY | cmp -s $grep_deps - || do_update=do_update -@@ -1324,11 +1403,13 @@ +@@ -1324,11 +1409,13 @@ echo "===>>> Checking for stale packages" for package in `find $PACKAGES -type f | sort`; do @@ -284,7 +297,7 @@ if [ -z "$PM_INDEX" ]; then if [ -d "$pd/$origin" ]; then -@@ -1344,16 +1425,28 @@ +@@ -1344,16 +1431,28 @@ fi if [ -n "$port_ver" ]; then @@ -322,7 +335,7 @@ fi unset port_ver continue -@@ -1364,10 +1457,18 @@ +@@ -1364,10 +1463,18 @@ unset port_ver @@ -344,7 +357,7 @@ fi fi -@@ -1406,6 +1507,7 @@ +@@ -1406,6 +1513,7 @@ fi # [ -n "$CLEAN_PACKAGES" ] if [ -n "$CHECK_DEPENDS" ]; then @@ -352,7 +365,7 @@ PM_VERBOSE=pmv_check_depends IFS=' ' -@@ -1452,24 +1554,42 @@ +@@ -1452,24 +1560,42 @@ unique_list=':' echo "===>>> Building list of installed port names"; echo '' @@ -410,7 +423,7 @@ echo "===>>> Checking $port_dbdir" -@@ -1610,14 +1730,20 @@ +@@ -1610,14 +1736,20 @@ unset port_ver fi else @@ -433,7 +446,7 @@ esac [ -z "$do_update" ] && { -@@ -1689,7 +1815,13 @@ +@@ -1689,7 +1821,13 @@ fi pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package" @@ -448,7 +461,7 @@ if [ "$1" = "$pbu" ]; then if [ -n "$BACKUP" ]; then echo " ===>>> Package saved to $1" ; echo '' -@@ -2028,19 +2160,28 @@ +@@ -2028,19 +2166,28 @@ fi if [ -n "$EXPUNGE" ]; then @@ -487,7 +500,7 @@ if [ -n "$deplist" ]; then echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:" for dep in $deplist; do -@@ -2048,7 +2189,8 @@ +@@ -2048,7 +2195,8 @@ done get_answer_yn n "\n\t===>>> Delete this dependency data" case "$?" in @@ -497,7 +510,7 @@ update_contents delete $f $origin done ;; *) exit 1 ;; -@@ -2058,8 +2200,13 @@ +@@ -2058,8 +2206,13 @@ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; } [ -z "$DONT_SCRUB_DISTFILES" ] && { delete_all_distfiles $origin; delete_dist_list; } @@ -513,7 +526,7 @@ echo '' ; echo "===>>> Running ${0##*/} -s $ARGS" exec $0 -s $ARGS -@@ -2069,13 +2216,22 @@ +@@ -2069,13 +2222,22 @@ if [ -n "$CLEAN_STALE" ]; then [ -z "$no_del_list" ] && export no_del_list=':' @@ -538,7 +551,7 @@ if [ -n "$deplist" ]; then echo '' echo "===>>> Warning: Unrecorded dependencies on ${iport}:" -@@ -2088,22 +2244,32 @@ +@@ -2088,22 +2250,32 @@ continue fi @@ -579,7 +592,7 @@ esac done exit 0 -@@ -2243,7 +2409,13 @@ +@@ -2243,7 +2415,13 @@ fail "No entry for $origin in $PM_INDEX" fi @@ -594,7 +607,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" ;; -@@ -2466,7 +2638,11 @@ +@@ -2466,7 +2644,11 @@ fail "Cannot cd to $d_port" fi for glob in $conflicts; do @@ -607,7 +620,7 @@ if [ -n "$confl_p" ]; then confl_p=${confl_p%% *} echo '' -@@ -2601,8 +2777,13 @@ +@@ -2601,8 +2783,13 @@ done for dep in $build_only_dl_g; do @@ -623,7 +636,7 @@ done build_only_dl_g=" `uniquify_list $temp_bodlg` " -@@ -2636,15 +2817,23 @@ +@@ -2636,15 +2823,23 @@ echo '' for origin in $PM_URB_ORIGINS; do @@ -654,7 +667,7 @@ done if [ -n "$PM_URB_LIST" ]; then -@@ -2656,7 +2845,11 @@ +@@ -2656,7 +2851,11 @@ for req_by in $PM_URB_LIST; do # Probably not needed, but JIC @@ -667,7 +680,7 @@ pm_v "===>>> $req_by depends on $PM_URB_IPORTS" -@@ -2697,12 +2890,16 @@ +@@ -2697,12 +2896,16 @@ else fail "$pd/${port} does not exist" fi ;; @@ -686,7 +699,7 @@ *) local dir for dir in $glob_dirs; do worklist_temp="$worklist_temp ${dir#$pdb/}" -@@ -2806,9 +3003,16 @@ +@@ -2806,9 +3009,16 @@ */*) origin=$port ;; *) # If an installed version does not exist at this # point it probably got updated as a dependency @@ -706,7 +719,7 @@ fi origin=`origin_from_pdb $port` ;; esac -@@ -3032,11 +3236,15 @@ +@@ -3032,11 +3242,15 @@ case "$argv" in '') echo '' ; no_valid_port ;; $pd/*) portdir=${argv#$pd/} ;; @@ -724,7 +737,7 @@ esac if [ -z "$portdir" -a -z "$upg_port" ]; then -@@ -3069,7 +3277,7 @@ +@@ -3069,7 +3283,7 @@ case "$arg2" in */*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;; @@ -733,7 +746,7 @@ ro_upg_port=$arg2 else find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/} -@@ -3080,9 +3288,18 @@ +@@ -3080,9 +3294,18 @@ unset arg2 if [ -z "$ro_upg_port" ]; then @@ -754,7 +767,7 @@ echo " or a port directory from $pd" echo '' echo " $ro_opd does not seem to be installed," -@@ -3117,7 +3334,8 @@ +@@ -3117,7 +3340,8 @@ fi [ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ] && upg_port=`iport_from_origin ${portdir}` @@ -764,7 +777,7 @@ # Adding to CUR_DEPS means we will not get here in the build unless -G if [ -z "$PM_BUILDING" ]; then # Only need to prompt for this once if -ai -@@ -3525,7 +3743,12 @@ +@@ -3525,7 +3749,12 @@ 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 @@ -778,7 +791,7 @@ \<) use_package=up_newer pm_v "===>>> Available package ($latest_pv)" pm_v " is newer than installed ($upg_port)" ;; -@@ -3541,7 +3764,12 @@ +@@ -3541,7 +3770,12 @@ pm_v "===>>> There is a package available ($latest_pv)" fi elif [ -n "$latest_pv" ]; then @@ -792,7 +805,7 @@ \<) # Could happen if ports tree is out of date use_package=up_old_tree pm_v "===>>> Available package ($latest_pv)" -@@ -3640,7 +3868,12 @@ +@@ -3640,7 +3874,12 @@ grep -v ^$LOCALBASE_COMPAT > $ldconfig_out unset temp @@ -806,7 +819,7 @@ sort - $ldconfig_out | uniq -d`; do temp="${temp}$file " done -@@ -3743,29 +3976,32 @@ +@@ -3743,29 +3982,32 @@ fi fi @@ -862,7 +875,7 @@ if [ -n "$preserve_dir" ]; then rmdir $preserve_dir 2>/dev/null unset preserve_dir preserve_port_files -@@ -3781,7 +4017,12 @@ +@@ -3781,7 +4023,12 @@ temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null` if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then unset files @@ -876,7 +889,7 @@ [ -f "${LOCALBASE_COMPAT}/${file##*/}" ] && files="${files}${LOCALBASE_COMPAT}/${file##*/} " done -@@ -3844,7 +4085,8 @@ +@@ -3844,7 +4091,8 @@ /bin/unlink $dist_list_temp ; unset ds dist_list_temp fi @@ -886,7 +899,7 @@ if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then echo "===>>> Updating dependencies for $new_port to match installed versions" update_contents $pdb/$new_port/+CONTENTS -@@ -3879,27 +4121,29 @@ +@@ -3879,27 +4127,29 @@ echo '' fi From f532eabd540079c6eb21473c4125b1dfbe043762 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Tue, 31 Jan 2012 20:51:08 +0100 Subject: [PATCH 16/16] Hide some +IGNOREME management lines --- ports/portmaster.patch | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/ports/portmaster.patch b/ports/portmaster.patch index bb99a69313..1e076b4bc4 100644 --- a/ports/portmaster.patch +++ b/ports/portmaster.patch @@ -1,5 +1,5 @@ --- portmaster.orig 2012-01-31 03:17:17.681285114 +0100 -+++ portmaster 2012-01-31 20:15:02.891236908 +0100 ++++ portmaster 2012-01-31 20:50:47.941362077 +0100 @@ -292,7 +292,13 @@ unset -v PM_URB_LIST; $PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); } @@ -423,6 +423,24 @@ echo "===>>> Checking $port_dbdir" +@@ -1570,7 +1696,7 @@ + + 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 ++ if [ -z "$use_pkgng" -a -e "$pdb/$iport/+IGNOREME" ]; then + echo " ===>>> Warning: Unable to cd to $pd/$origin" + echo " ===>>> Continuing due to $pdb/$iport/+IGNOREME" + echo '' +@@ -1587,7 +1713,7 @@ + + # If the port has moved and no +IGNOREME, we have to update it + if [ -n "$moved_npd" ]; then +- if [ ! -e "$pdb/$iport/+IGNOREME" ]; then ++ if [ -n "$use_pkgng" -o ! -e "$pdb/$iport/+IGNOREME" ]; then + do_update=do_update_moved + else + echo " ===>>> Continuing due to $pdb/$iport/+IGNOREME" @@ -1610,14 +1736,20 @@ unset port_ver fi @@ -446,6 +464,15 @@ esac [ -z "$do_update" ] && { +@@ -1633,7 +1765,7 @@ + if [ -n "$LIST_PLUS" ]; then + if [ -z "$moved_npd" ]; then + echo " ===>>> New version available: $port_ver" +- [ -e "$pdb/$iport/+IGNOREME" ] && ++ [ -z "$use_pkgng" -a -e "$pdb/$iport/+IGNOREME" ] && + echo " ===>>> +IGNOREME file is present for $1" + pm_cd_pd $origin && check_state + num_updates=$(( $num_updates + 1 )) @@ -1689,7 +1821,13 @@ fi