| - |
--- portmaster.orig 2012-10-10 13:46:28.000000000 +0100
|
| - |
+++ portmaster 2012-10-11 07:16:21.061874740 +0100
|
| - |
@@ -47,7 +47,7 @@
|
| - |
#=============== Begin functions we always want to have ===============
|
| - |
|
| - |
version () {
|
| - |
- echo '' ; echo "===>>> Version 3.14"
|
| - |
+ echo '' ; echo "===>>> Version 3.14 (pkgng patch 1.6)"
|
| - |
#svn='$FreeBSD: user/dougb/portmaster/portmaster 241090 2012-10-01 08:32:05Z dougb $'
|
| - |
}
|
| - |
|
| - |
@@ -134,6 +134,8 @@
|
| - |
if [ -n "$files" ]; then
|
| - |
pm_sv Deleting \'install complete\' flags
|
| - |
pm_find_s $pdb -type f -name PM_UPGRADE_DONE_FLAG -delete
|
| - |
+ [ -n "$use_pkgng" ] &&
|
| - |
+ pm_find_s $pdb -type d -depth 1 -empty ! -path \*\.zfs/\* -delete 2>/dev/null
|
| - |
fi
|
| - |
fi
|
| - |
if [ -z "$BACKUP" -a -z "$NO_BACKUP" -a -n "$NB_DELETE" ]; then
|
| - |
@@ -187,9 +189,14 @@
|
| - |
fi
|
| - |
|
| - |
: ${PAGER:='less -e'}
|
| - |
- ( for f in $DISPLAY_LIST; do
|
| - |
- echo "===>>> pkg-message for $f" ; cat $pdb/$f/+DISPLAY ; echo ''
|
| - |
- done
|
| - |
+ ( if [ -z "$use_pkgng" ]; then
|
| - |
+ for f in $DISPLAY_LIST; do
|
| - |
+ echo "===>>> pkg-message for $f"
|
| - |
+ cat $pdb/$f/+DISPLAY ; echo ''
|
| - |
+ done
|
| - |
+ else
|
| - |
+ pkg query "===>>> pkg-message for %n-%v\n%M" $DISPLAY_LIST
|
| - |
+ fi
|
| - |
echo "===>>> Done displaying pkg-message files" ; echo '' ) | $PAGER ;;
|
| - |
esac
|
| - |
|
| - |
@@ -232,10 +239,14 @@
|
| - |
if [ -n "$build_deps_il" ]; then
|
| - |
echo "===>>> Deleting installed build-only dependencies"
|
| - |
cd
|
| - |
- for f in $build_deps_il; do
|
| - |
- pm_v " $f"
|
| - |
- pm_pkg_delete_s -f $f
|
| - |
- done
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ for f in $build_deps_il; do
|
| - |
+ pm_v " $f"
|
| - |
+ pm_pkg_delete_s $f
|
| - |
+ done
|
| - |
+ else
|
| - |
+ pm_pkg_delete_s $build_deps_il
|
| - |
+ fi
|
| - |
echo ''
|
| - |
fi
|
| - |
|
| - |
@@ -323,7 +334,16 @@
|
| - |
pm_make_s () { ( unset -v CUR_DEPS INSTALLED_LIST PM_DEPTH build_l PM_URB_LIST;
|
| - |
$PM_SU_CMD /usr/bin/nice /usr/bin/make $PM_MAKE_ARGS $*; ); }
|
| - |
pm_mkdir_s () { $PM_SU_CMD /bin/mkdir -p $1; }
|
| - |
-pm_pkg_delete_s () { $PM_SU_CMD /usr/sbin/pkg_delete $*; }
|
| - |
+pm_pkg_delete_s () {
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ $PM_SU_CMD /usr/sbin/pkg_delete -f $*;
|
| - |
+ else
|
| - |
+ $PM_SU_CMD /usr/local/sbin/pkg delete -yf $*;
|
| - |
+ for d in $* ; do
|
| - |
+ pm_rm_s -rf $pdb/$d
|
| - |
+ done
|
| - |
+ fi
|
| - |
+}
|
| - |
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; }
|
| - |
@@ -371,6 +391,10 @@
|
| - |
[ -z "$port_dbdir" ] &&
|
| - |
port_dbdir=`pm_make_b -f/usr/share/mk/bsd.port.mk -V PORT_DBDIR 2>/dev/null`
|
| - |
[ -n "$port_dbdir" ] && export port_dbdir
|
| - |
+
|
| - |
+ # Detect if pkgng is being used
|
| - |
+ use_pkgng="`pm_make_b -V WITH_PKGNG`"
|
| - |
+ [ -n "$use_pkgng" ] && export use_pkgng
|
| - |
fi
|
| - |
|
| - |
usage () {
|
| - |
@@ -527,12 +551,17 @@
|
| - |
|
| - |
pattern=`globstrip $1`
|
| - |
|
| - |
- glob_dirs=`find $pdb -maxdepth 1 -type d -name ${pattern}\*`
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ glob_dirs=`find $pdb -depth 1 -type d -name ${pattern}\*`
|
| - |
+ else
|
| - |
+ glob_dirs=`pkg query -g "%n-%v" ${pattern}\*`
|
| - |
+ fi
|
| - |
case "$glob_dirs" in
|
| - |
# Match a newline in multiple responses from find
|
| - |
*'
|
| - |
'*) return 2 ;;
|
| - |
- $pdb/*) return ;;
|
| - |
+ '') ;;
|
| - |
+ *) return ;;
|
| - |
esac
|
| - |
|
| - |
unset glob_dirs
|
| - |
@@ -542,20 +571,35 @@
|
| - |
origin_from_pdb () {
|
| - |
local o
|
| - |
|
| - |
- o=`grep -m1 '@comment ORIGIN:' $pdb/$1/+CONTENTS 2>/dev/null` && {
|
| - |
- echo ${o#@comment ORIGIN:}; return 0; }
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ o=`grep -m1 '@comment ORIGIN:' $pdb/$1/+CONTENTS 2>/dev/null` && {
|
| - |
+ echo ${o#@comment ORIGIN:}; return 0; }
|
| - |
+ else
|
| - |
+ pkg info -qo $1 2>/dev/null && return 0
|
| - |
+ fi
|
| - |
|
| - |
case "$1" in bsdpan-*) return 3 ;; esac
|
| - |
|
| - |
- if [ -e "$pdb/$1/+IGNOREME" ]; then
|
| - |
+ if [ -e "$pdb/$1/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $1 ); then
|
| - |
if [ -n "$PM_VERBOSE" -o -n "$LIST_ORIGINS" ]; then
|
| - |
- echo " ===>>> No ORIGIN in $pdb/$1/+CONTENTS" >&2
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ echo " ===>>> No ORIGIN in $pdb/$1/+CONTENTS" >&2
|
| - |
+ else
|
| - |
+ # An error above doesn't necessarily mean there's
|
| - |
+ # a problem in +MANIFEST, so don't mention it
|
| - |
+ echo " ===>>> No origin available for $1" >&2
|
| - |
+ fi
|
| - |
echo " ===>>> $pdb/$1/+IGNOREME exists" >&2
|
| - |
echo '' >&2
|
| - |
fi
|
| - |
return 2
|
| - |
else
|
| - |
- echo " ===>>> No ORIGIN in $pdb/$1/+CONTENTS" >&2
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ echo " ===>>> No ORIGIN in $pdb/$1/+CONTENTS" >&2
|
| - |
+ else
|
| - |
+ # Same as above
|
| - |
+ echo " ===>>> No origin available for $1" >&2
|
| - |
+ fi
|
| - |
echo '' >&2
|
| - |
fi
|
| - |
return 1
|
| - |
@@ -697,12 +741,17 @@
|
| - |
o) REPLACE_ORIGIN=oopt ;;
|
| - |
p) fail 'The -p option has been deprecated' ;;
|
| - |
r) PM_URB=ropt
|
| - |
- if [ -d "$pdb/$OPTARG" ]; then
|
| - |
+ if [ -d "$pdb/$OPTARG" ] && ( [ -z "$use_pkgng" ] || pkg info -e $OPTARG ); then
|
| - |
glob_dirs=$OPTARG
|
| - |
else
|
| - |
+ case "$OPTARG" in */*) fail 'The argument to -r must be a package name, or a glob pattern' ;; esac
|
| - |
find_glob_dirs $OPTARG
|
| - |
case $? in
|
| - |
- 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
|
| - |
@@ -784,6 +833,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 PM_PACKAGES_BUILD PM_PACKAGES_LOCAL PM_PACKAGES_NEWER PM_ALWAYS_FETCH 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
|
| - |
@@ -850,7 +905,12 @@
|
| - |
fi
|
| - |
unset INDEXFILE INDEXDIR
|
| - |
|
| - |
- PM_INDEX_PORTS=`pkg_version -Ivl\< $PM_INDEX | cut -f1 -d\<`
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_version="pkg_version"
|
| - |
+ else
|
| - |
+ pkg_version="pkg version"
|
| - |
+ fi
|
| - |
+ PM_INDEX_PORTS=`$pkg_version -Ivl\< $PM_INDEX | cut -f1 -d\<`
|
| - |
export PM_INDEX_PORTS
|
| - |
|
| - |
if [ -z "$pd" -o "$pd" != /usr/ports ]; then
|
| - |
@@ -907,6 +967,10 @@
|
| - |
iport_from_origin () {
|
| - |
local sn dir
|
| - |
|
| - |
+ if [ -n "$use_pkgng" ]; then
|
| - |
+ pkg info -qO ${1} || return 1
|
| - |
+ return
|
| - |
+ fi
|
| - |
sn=${1#*/} ; sn=${sn%-*} ; sn=${sn%%[0-9]*}
|
| - |
|
| - |
if ! dir=`grep -l "@comment ORIGIN:${1}$" $pdb/${sn}*/+CONTENTS 2>/dev/null`; then
|
| - |
@@ -935,7 +999,9 @@
|
| - |
done
|
| - |
}
|
| - |
|
| - |
+# Redundant with pkgng
|
| - |
check_dependency_files () {
|
| - |
+ [ -n "$use_pkgng" ] && return
|
| - |
# Global: grep_deps
|
| - |
local origin iport ro_opd
|
| - |
|
| - |
@@ -1017,7 +1083,9 @@
|
| - |
fi
|
| - |
}
|
| - |
|
| - |
+# redundant with pkgng
|
| - |
update_contents () {
|
| - |
+ [ -n "$use_pkgng" ] && return
|
| - |
local IFS delete contents origin n_port old_origin iport
|
| - |
local o_seen line d_missing d_origin d_iport prev_line answer
|
| - |
|
| - |
@@ -1117,7 +1185,7 @@
|
| - |
for l in `grep "^$sf|" $pd/MOVED`; do
|
| - |
case "$l" in
|
| - |
${sf}\|\|*) [ -n "$iport" ] || iport=`iport_from_origin $sf`
|
| - |
- if [ -e "$pdb/$iport/+IGNOREME" ]; then
|
| - |
+ if [ -e "$pdb/$iport/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $iport ); then
|
| - |
if [ -n "$PM_VERBOSE" ]; then
|
| - |
echo ''
|
| - |
echo " ===>>> The $sf port has been deleted"
|
| - |
@@ -1152,24 +1220,36 @@
|
| - |
echo ''
|
| - |
|
| - |
[ -n "$iport" ] || iport=`iport_from_origin $sf`
|
| - |
- [ -e "$pdb/$iport/+IGNOREME" ] || return 1
|
| - |
+ [ -e "$pdb/$iport/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $iport ) || return 1
|
| - |
fi
|
| - |
return 0
|
| - |
}
|
| - |
|
| - |
+all_pkgs_by_origin () {
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ local pkg iport origin
|
| - |
+
|
| - |
+ for pkg in ${pdb}/* ; do
|
| - |
+ [ -d $pkg ] || continue
|
| - |
+ iport=${pkg#$pdb/}
|
| - |
+
|
| - |
+ origin=`origin_from_pdb $iport` || continue
|
| - |
+ echo $iport $origin
|
| - |
+ done
|
| - |
+ else
|
| - |
+ pkg query -a "%n-%v %o"
|
| - |
+ fi
|
| - |
+ return
|
| - |
+}
|
| - |
+
|
| - |
read_distinfos () {
|
| - |
- local pkg iport origin distinfo s f discard
|
| - |
+ local iport origin distinfo s f discard
|
| - |
|
| - |
echo '############' > $DI_FILES # Make the file > 0 bytes
|
| - |
echo "===>>> Gathering distinfo list for installed ports"
|
| - |
echo ''
|
| - |
|
| - |
- for pkg in ${pdb}/*; do
|
| - |
- [ -d $pkg ] || continue
|
| - |
- iport=${pkg#$pdb/}
|
| - |
-
|
| - |
- origin=`origin_from_pdb $iport` || continue
|
| - |
-
|
| - |
+ all_pkgs_by_origin | while read iport origin; do
|
| - |
if [ ! -d "$pd/$origin" ]; then
|
| - |
find_moved_port $origin $iport nonfatal >/dev/null
|
| - |
[ -n "$moved_npd" ] || continue
|
| - |
@@ -1256,29 +1336,43 @@
|
| - |
|
| - |
pm_v "===>>> Sorting ports by category"
|
| - |
|
| - |
- num_roots=0; num_trunks=0; num_branches=0; num_leaves=0
|
| - |
- for pkg in $pdb/*; do
|
| - |
- if [ -s "$pkg/+REQUIRED_BY" ]; then
|
| - |
- if grep -ql '^@pkgdep ' $pkg/+CONTENTS 2>/dev/null; then
|
| - |
- branches="$branches ${pkg#$pdb/}"
|
| - |
- num_branches=$(( $num_branches + 1 ))
|
| - |
- else
|
| - |
- trunks="$trunks ${pkg#$pdb/}"
|
| - |
- num_trunks=$(( $num_trunks + 1 ))
|
| - |
- fi
|
| - |
- else
|
| - |
- if grep -ql '^@pkgdep ' $pkg/+CONTENTS 2>/dev/null; then
|
| - |
- leaves="$leaves ${pkg#$pdb/}"
|
| - |
- num_leaves=$(( $num_leaves + 1 ))
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ num_roots=0; num_trunks=0; num_branches=0; num_leaves=0
|
| - |
+ for pkg in $pdb/*; do
|
| - |
+ if [ -s "$pkg/+REQUIRED_BY" ]; then
|
| - |
+ if grep -ql '^@pkgdep ' $pkg/+CONTENTS 2>/dev/null; then
|
| - |
+ branches="$branches ${pkg#$pdb/}"
|
| - |
+ num_branches=$(( $num_branches + 1 ))
|
| - |
+ else
|
| - |
+ trunks="$trunks ${pkg#$pdb/}"
|
| - |
+ num_trunks=$(( $num_trunks + 1 ))
|
| - |
+ fi
|
| - |
else
|
| - |
- [ -d "$pkg" ] || continue
|
| - |
- roots="$roots ${pkg#$pdb/}"
|
| - |
- num_roots=$(( $num_roots + 1 ))
|
| - |
+ if grep -ql '^@pkgdep ' $pkg/+CONTENTS 2>/dev/null; then
|
| - |
+ leaves="$leaves ${pkg#$pdb/}"
|
| - |
+ num_leaves=$(( $num_leaves + 1 ))
|
| - |
+ else
|
| - |
+ [ -d "$pkg" ] || continue
|
| - |
+ roots="$roots ${pkg#$pdb/}"
|
| - |
+ num_roots=$(( $num_roots + 1 ))
|
| - |
+ fi
|
| - |
fi
|
| - |
- fi
|
| - |
- done
|
| - |
+ done
|
| - |
|
| - |
- num_ports=$(( $num_roots + $num_trunks + $num_branches + $num_leaves ))
|
| - |
+ num_ports=$(( $num_roots + $num_trunks + $num_branches + $num_leaves ))
|
| - |
+ else
|
| - |
+ roots=` pkg query -e "%#d = 0 && %#r = 0" "%n-%v"`
|
| - |
+ trunks=` pkg query -e "%#d = 0 && %#r > 0" "%n-%v"`
|
| - |
+ branches=`pkg query -e "%#d > 0 && %#r > 0" "%n-%v"`
|
| - |
+ leaves=` pkg query -e "%#d > 0 && %#r = 0" "%n-%v"`
|
| - |
+
|
| - |
+ num_roots=$(echo $(echo $roots | wc -w))
|
| - |
+ num_trunks=$(echo $(echo $trunks | wc -w))
|
| - |
+ num_branches=$(echo $(echo $branches | wc -w))
|
| - |
+ num_leaves=$(echo $(echo $leaves | wc -w))
|
| - |
+
|
| - |
+ num_ports=$(echo $(pkg query -a "%n-%v" | wc -w))
|
| - |
+ fi
|
| - |
}
|
| - |
|
| - |
delete_empty_dist_subdirs () {
|
| - |
@@ -1326,7 +1420,9 @@
|
| - |
esac
|
| - |
}
|
| - |
|
| - |
+# Redundant with pkgng
|
| - |
update_required_by () {
|
| - |
+ [ -n "$use_pkgng" ] && /bin/unlink $grep_deps && unset grep_deps && return
|
| - |
# Global: needws
|
| - |
local do_update
|
| - |
|
| - |
@@ -1336,7 +1432,7 @@
|
| - |
else
|
| - |
do_update=do_update2
|
| - |
fi
|
| - |
- if [ -n "$do_update" ]; then
|
| - |
+ if [ -n "$do_update" ]; then
|
| - |
pm_v " ===>>> Updating $1/+REQUIRED_BY"
|
| - |
needws=needws_urb
|
| - |
pm_install_s $grep_deps $pdb/$1/+REQUIRED_BY
|
| - |
@@ -1382,11 +1478,15 @@
|
| - |
|
| - |
echo "===>>> Checking for stale packages"
|
| - |
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%\.*} ; echo ''
|
| - |
|
| - |
- origin=`tar -O -zxvf $package '+CONTENTS' 2>/dev/null | grep '@comment ORIGIN:'` ||
|
| - |
- fail Empty origin in $package
|
| - |
+ [ -n "$use_pkgng" ] &&
|
| - |
+ origin=`pkg query -F $package "%o" 2>/dev/null` ||
|
| - |
+ 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"
|
| - |
origin=${origin#@comment ORIGIN:}
|
| - |
+ origin=${origin#origin: }
|
| - |
|
| - |
if [ -z "$PM_INDEX" ]; then
|
| - |
if [ -d "$pd/$origin" ]; then
|
| - |
@@ -1402,16 +1502,28 @@
|
| - |
fi
|
| - |
|
| - |
if [ -n "$port_ver" ]; then
|
| - |
- if [ "${port_ver}.tbz" = "${package##*/}" ]; then
|
| - |
+ if [ "$port_ver" = "$pkg_dir" ]; then
|
| - |
echo "===>>> ${package##*/} is up to date"
|
| - |
- 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 ;;
|
| - |
+ esac
|
| - |
+ fi
|
| - |
+ 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
|
| - |
@@ -1422,10 +1534,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
|
| - |
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
|
| - |
|
| - |
@@ -1464,6 +1584,10 @@
|
| - |
fi # [ -n "$CLEAN_PACKAGES" ]
|
| - |
|
| - |
if [ -n "$CHECK_DEPENDS" ]; then
|
| - |
+ if [ -n "$use_pkgng" ]; then
|
| - |
+ pkg check -adv
|
| - |
+ exit
|
| - |
+ fi
|
| - |
PM_VERBOSE=pmv_check_depends
|
| - |
IFS='
|
| - |
'
|
| - |
@@ -1510,24 +1634,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
|
| - |
|
| - |
echo "===>>> Checking $port_dbdir"
|
| - |
|
| - |
@@ -1628,7 +1770,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 [ -e "$pdb/$iport/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $iport ); then
|
| - |
echo " ===>>> Warning: Unable to cd to $pd/$origin"
|
| - |
echo " ===>>> Continuing due to $pdb/$iport/+IGNOREME"
|
| - |
echo ''
|
| - |
@@ -1645,13 +1787,13 @@
|
| - |
|
| - |
# If the port has moved and no +IGNOREME, we have to update it
|
| - |
if [ -n "$moved_npd" ]; then
|
| - |
- if [ ! -e "$pdb/$iport/+IGNOREME" ]; then
|
| - |
- do_update=do_update_moved
|
| - |
- else
|
| - |
+ if [ -e "$pdb/$iport/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $iport ); then
|
| - |
echo " ===>>> Continuing due to $pdb/$iport/+IGNOREME"
|
| - |
echo ''
|
| - |
CUR_DEPS="${CUR_DEPS}${iport}:${origin}:"
|
| - |
return 0
|
| - |
+ else
|
| - |
+ do_update=do_update_moved
|
| - |
fi
|
| - |
fi
|
| - |
fi
|
| - |
@@ -1668,14 +1810,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
|
| - |
+ pkg_version="pkg version"
|
| - |
+ fi
|
| - |
+ case `$pkg_version -t $iport $port_ver` in
|
| - |
\<) do_update=upd_lt ;;
|
| - |
=) ;; # Can be reached if same version with different options
|
| - |
\>) if [ -n "$PM_VERBOSE" ]; then
|
| - |
echo " ===>>> Port version $port_ver does not"
|
| - |
echo " ===>>> seem newer than installed $iport"
|
| - |
fi ;;
|
| - |
- *) fail "pkg_version -t $iport $port_ver gave an unexpected result"
|
| - |
+ *) fail "$pkg_version -t $iport $port_ver gave an unexpected result"
|
| - |
esac
|
| - |
|
| - |
[ -z "$do_update" ] && {
|
| - |
@@ -1691,8 +1839,9 @@
|
| - |
if [ -n "$LIST_PLUS" ]; then
|
| - |
if [ -z "$moved_npd" ]; then
|
| - |
echo " ===>>> New version available: $port_ver"
|
| - |
- [ -e "$pdb/$iport/+IGNOREME" ] &&
|
| - |
+ if [ -e "$pdb/$iport/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $iport ); then
|
| - |
echo " ===>>> +IGNOREME file is present for $1"
|
| - |
+ fi
|
| - |
pm_cd_pd $origin && check_state
|
| - |
num_updates=$(( $num_updates + 1 ))
|
| - |
else
|
| - |
@@ -1747,7 +1896,13 @@
|
| - |
fi
|
| - |
|
| - |
pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package"
|
| - |
- if $PM_SU_CMD pkg_create -b $2; then
|
| - |
+ local pkg_create
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_create="pkg_create -b"
|
| - |
+ else
|
| - |
+ pkg_create="pkg create "
|
| - |
+ fi
|
| - |
+ if $PM_SU_CMD $pkg_create $2; then
|
| - |
if [ "$1" = "$pbu" ]; then
|
| - |
if [ -n "$BACKUP" ]; then
|
| - |
echo " ===>>> Package saved to $1" ; echo ''
|
| - |
@@ -2096,10 +2251,14 @@
|
| - |
fi
|
| - |
|
| - |
if [ -n "$EXPUNGE" ]; then
|
| - |
- if [ ! -d "$pdb/$EXPUNGE" ]; then
|
| - |
+ if [ ! -d "$pdb/$EXPUNGE" ] || ( [ -n "$use_pkgng" ] && ! pkg info -e $EXPUNGE ); then
|
| - |
find_glob_dirs $EXPUNGE
|
| - |
case $? in
|
| - |
- 1) fail "No such directory/port: $pdb/$EXPUNGE" ;;
|
| - |
+ 1) if [ -z "$use_pkgng" ]; then
|
| - |
+ fail "No such directory/port: $pdb/$EXPUNGE"
|
| - |
+ else
|
| - |
+ fail "No such port: $EXPUNGE"
|
| - |
+ fi ;;
|
| - |
2) echo "===>>> $EXPUNGE matched multiple ports"
|
| - |
fail "The -e option works with only one port at a time" ;;
|
| - |
0) EXPUNGE=${glob_dirs#$pdb/}
|
| - |
@@ -2108,15 +2267,24 @@
|
| - |
fi
|
| - |
|
| - |
origin=`origin_from_pdb $EXPUNGE`
|
| - |
- deplist=`grep -l DEPORIGIN:$origin$ $pdb/*/+CONTENTS`
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ deplist=`grep -l DEPORIGIN:$origin$ $pdb/*/+CONTENTS`
|
| - |
+ else
|
| - |
+ deplist=`pkg query "%rn-%rv" $origin`
|
| - |
+ fi
|
| - |
if [ -n "$deplist" ]; then
|
| - |
echo "===>>> Warning: Ports with dependencies on ${EXPUNGE}:"
|
| - |
- for dep in $deplist; do
|
| - |
- dep=${dep%/+CON*} ; echo " ${dep##*/}"
|
| - |
- done
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ for dep in $deplist; do
|
| - |
+ dep=${dep%/+CON*} ; echo " ${dep##*/}"
|
| - |
+ done
|
| - |
+ else
|
| - |
+ echo "$deplist" | sed 's/^/ /'
|
| - |
+ fi
|
| - |
get_answer_yn n "\n\t===>>> Delete this dependency data"
|
| - |
case "$?" in
|
| - |
- 0) for f in $deplist; do
|
| - |
+ 0) [ -n "$use_pkgng" ] && exit 1 #TODO
|
| - |
+ for f in $deplist; do
|
| - |
update_contents delete $f $origin
|
| - |
done ;;
|
| - |
*) exit 1 ;;
|
| - |
@@ -2126,8 +2294,13 @@
|
| - |
[ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; }
|
| - |
[ -z "$DONT_SCRUB_DISTFILES" ] && delete_all_distfiles $origin
|
| - |
|
| - |
- echo "===>>> Running pkg_delete -f $EXPUNGE"
|
| - |
- pm_pkg_delete_s -f $EXPUNGE || fail 'pkg_delete failed'
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_delete="pkg_delete"
|
| - |
+ else
|
| - |
+ pkg_delete="pkg delete"
|
| - |
+ fi
|
| - |
+ echo "===>>> Running $pkg_delete -f $EXPUNGE"
|
| - |
+ pm_pkg_delete_s $EXPUNGE || fail "$pkg_delete failed"
|
| - |
|
| - |
echo '' ; echo "===>>> Running ${0##*/} -s $ARGS"
|
| - |
exec $0 -s $ARGS
|
| - |
@@ -2137,13 +2310,21 @@
|
| - |
if [ -n "$CLEAN_STALE" ]; then
|
| - |
[ -z "$no_del_list" ] && export no_del_list=':'
|
| - |
|
| - |
- for file in `find $pdb -type f -name \+REQUIRED_BY -empty` ; do
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ find_stale_ports="find $pdb -type f -name \+REQUIRED_BY -empty"
|
| - |
+ else
|
| - |
+ find_stale_ports="pkg query -a \"%?r %n-%v\" | awk '/^0/ { print \$2 }'"
|
| - |
+ fi
|
| - |
+ for file in `eval $find_stale_ports` ; do
|
| - |
iport="${file%/+REQUIRED_BY}" ; iport=${iport#$pdb/}
|
| - |
|
| - |
case "$no_del_list" in *:${iport}:*) continue ;; esac
|
| - |
|
| - |
origin=`origin_from_pdb $iport`
|
| - |
- deplist=`grep -l DEPORIGIN:$origin$ $pdb/*/+CONTENTS`
|
| - |
+ deplist=""
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ deplist=`grep -l DEPORIGIN:$origin$ $pdb/*/+CONTENTS`
|
| - |
+ fi
|
| - |
if [ -n "$deplist" ]; then
|
| - |
echo ''
|
| - |
echo "===>>> Warning: Unrecorded dependencies on ${iport}:"
|
| - |
@@ -2156,22 +2337,32 @@
|
| - |
continue
|
| - |
fi
|
| - |
|
| - |
- echo '' ; pkg_info $iport
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ echo '' ; pkg_info $iport
|
| - |
+ pkg_delete="pkg_delete"
|
| - |
+ else
|
| - |
+ echo '' ; pkg info -f $iport
|
| - |
+ pkg_delete="pkg delete"
|
| - |
+ fi
|
| - |
|
| - |
get_answer_yn n "\t===>>> ${iport} is no longer depended on, delete"
|
| - |
case "$?" in
|
| - |
0) [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $iport; }
|
| - |
[ -z "$DONT_SCRUB_DISTFILES" ] && delete_all_distfiles $origin
|
| - |
|
| - |
- echo "===>>> Running pkg_delete -f $iport"
|
| - |
- pm_pkg_delete_s -f $iport || fail 'pkg_delete failed'
|
| - |
+ echo "===>>> Running $pkg_delete -f $iport"
|
| - |
+ pm_pkg_delete_s $iport || fail "$pkg_delete failed"
|
| - |
|
| - |
exec $0 -s $ARGS ;;
|
| - |
- *) get_answer_yn n "\t===>>> Delete this dependency data"
|
| - |
- case "$?" in
|
| - |
- 0) pm_unlink_s $file ;;
|
| - |
- *) no_del_list="${no_del_list}${iport}:" ;;
|
| - |
- esac ;;
|
| - |
+ *) if [ -z "$use_pkgng" ]; then
|
| - |
+ get_answer_yn n "\t===>>> Delete this dependency data"
|
| - |
+ case "$?" in
|
| - |
+ 0) pm_unlink_s $file ;;
|
| - |
+ *) no_del_list="${no_del_list}${iport}:" ;;
|
| - |
+ esac
|
| - |
+ else
|
| - |
+ no_del_list="${no_del_list}${iport}:"
|
| - |
+ fi ;;
|
| - |
esac
|
| - |
done
|
| - |
exit 0
|
| - |
@@ -2193,7 +2384,7 @@
|
| - |
# to go out to the disk if we don't have to.
|
| - |
[ -z "$RESTART" ] && return 1
|
| - |
|
| - |
- if [ ! -e "$pdb/${1}/PM_UPGRADE_DONE_FLAG" ]; then
|
| - |
+ if [ ! -e "$pdb/${1}/PM_UPGRADE_DONE_FLAG" ] || ( [ -n "$use_pkgng" ] && ! pkg info -e $1 ); then
|
| - |
return 1
|
| - |
else
|
| - |
already_done $1
|
| - |
@@ -2210,7 +2401,7 @@
|
| - |
case "$INTERACTIVE_YES" in *:${1}:*) return 0 ;; esac
|
| - |
case "$INTERACTIVE_NO" in *:${1}:*) return 1 ;; esac
|
| - |
|
| - |
- if [ -e "$pdb/$1/+IGNOREME" ]; then
|
| - |
+ if [ -e "$pdb/$1/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $1 ); then
|
| - |
echo ''
|
| - |
echo "===>>> +IGNOREME file is present for $1"
|
| - |
echo ''
|
| - |
@@ -2325,7 +2516,13 @@
|
| - |
|
| - |
find_new_port $origin
|
| - |
|
| - |
- case `pkg_version -t $iport $new_port 2>/dev/null` in
|
| - |
+ local pkg_version
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_version="pkg_version"
|
| - |
+ else
|
| - |
+ pkg_version="pkg version"
|
| - |
+ fi
|
| - |
+ case `$pkg_version -t $iport $new_port 2>/dev/null` in
|
| - |
\<) 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" ;;
|
| - |
@@ -2475,6 +2672,18 @@
|
| - |
rundeps=`gen_dep_list run-depends-list`
|
| - |
|
| - |
for dep in $d_port_list; do
|
| - |
+ # If the port is already installed, do not mark
|
| - |
+ # it as a build-only dependency, or it will be
|
| - |
+ # installed by package and/or removed
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ iport_from_origin ${dep#$pd/} >/dev/null &&
|
| - |
+ run_dl="$run_dl $dep" &&
|
| - |
+ continue
|
| - |
+ else
|
| - |
+ pkg info -e ${dep#$pd/} &&
|
| - |
+ run_dl="$run_dl $dep" &&
|
| - |
+ continue
|
| - |
+ fi
|
| - |
case "$rundeps" in
|
| - |
*" ${dep} "*|*${dep}*)
|
| - |
varname=`echo ${dep#$pd/} | sed 's#[-+/\.]#_#g'`
|
| - |
@@ -2544,7 +2753,11 @@
|
| - |
fail "Cannot cd to $d_port"
|
| - |
fi
|
| - |
for glob in $conflicts; do
|
| - |
- confl_p=`pkg_info -I $glob 2>/dev/null`
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ confl_p=`pkg_info -I $glob 2>/dev/null`
|
| - |
+ else
|
| - |
+ confl_p=`pkg query -g "%n-%v" $glob 2>/dev/null`
|
| - |
+ fi
|
| - |
if [ -n "$confl_p" ]; then
|
| - |
confl_p=${confl_p%% *}
|
| - |
d_port="$pd/`origin_from_pdb $confl_p`"
|
| - |
@@ -2687,7 +2900,11 @@
|
| - |
done
|
| - |
|
| - |
for dep in $build_only_dl_g; do
|
| - |
- grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS && continue
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ grep -q "@comment DEPORIGIN:${dep#$pd/}$" $pdb/*/+CONTENTS && continue
|
| - |
+ else
|
| - |
+ [ "`pkg query "%?r" ${dep#$pd/}`" = "1" ] && continue
|
| - |
+ fi
|
| - |
[ -n "$PM_DEL_BUILD_ONLY" ] &&
|
| - |
iport_from_origin ${dep#$pd/} >/dev/null && continue
|
| - |
temp_bodlg="$temp_bodlg $dep"
|
| - |
@@ -2714,7 +2931,7 @@
|
| - |
|
| - |
urb_update () {
|
| - |
# Global: PM_URB_UP
|
| - |
- local verb origin req_by
|
| - |
+ local verb origin req_by req_by_o
|
| - |
|
| - |
verb=Checking ; [ -n "$1" ] && verb=Updating
|
| - |
|
| - |
@@ -2724,15 +2941,25 @@
|
| - |
PM_PARENT_PORT="$verb dependent ports"
|
| - |
|
| - |
for origin in $PM_URB_ORIGINS; do
|
| - |
- 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
|
| - |
+ while read req_by req_by_o; do
|
| - |
+ case " $PM_URB_IPORTS" in *" $req_by "*) continue ;; esac
|
| - |
+ case " $PM_URB_ORIGINS" in *" $req_by_o "*) continue ;; esac
|
| - |
+ PM_URB_LIST="${PM_URB_LIST} ${req_by}"
|
| - |
+ done << EOF
|
| - |
+`pkg query "%rn-%rv %ro" ${origin}`
|
| - |
+EOF
|
| - |
+ fi
|
| - |
done
|
| - |
|
| - |
if [ -n "$PM_URB_LIST" ]; then
|
| - |
@@ -2744,7 +2971,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"
|
| - |
|
| - |
@@ -2785,12 +3016,16 @@
|
| - |
else
|
| - |
fail "$pd/${port} does not exist"
|
| - |
fi ;;
|
| - |
- *) if [ -d "$pdb/$port" ]; then
|
| - |
+ *) if [ -d "$pdb/$port" ] && ( [ -z "$use_pkgng" ] || pkg info -e $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/}"
|
| - |
@@ -2905,9 +3140,16 @@
|
| - |
*/*) origin=$port ;;
|
| - |
*) # If an installed version does not exist at this
|
| - |
# point it probably got updated as a dependency
|
| - |
- if [ ! -d "$pdb/$port" ]; then
|
| - |
- numports=$(( $numports - 1 ))
|
| - |
- continue
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ if [ ! -d "$pdb/$port" ]; then
|
| - |
+ numports=$(( $numports - 1 ))
|
| - |
+ continue
|
| - |
+ fi
|
| - |
+ else
|
| - |
+ if ! pkg info -e $port; then
|
| - |
+ numports=$(( $numports - 1 ))
|
| - |
+ continue
|
| - |
+ fi
|
| - |
fi
|
| - |
origin=`origin_from_pdb $port` ;;
|
| - |
esac
|
| - |
@@ -3131,7 +3373,11 @@
|
| - |
argv=${argv:-$1} ; argv=${argv%/} ; argv=`globstrip $argv`
|
| - |
case "$argv" in
|
| - |
$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"
|
| - |
@@ -3142,7 +3388,9 @@
|
| - |
*) echo '' ; no_valid_port ;;
|
| - |
esac
|
| - |
done ;;
|
| - |
- *) [ -d "$pdb/$argv" ] && upg_port=$argv ;;
|
| - |
+ *) [ -d "$pdb/$argv" ] && \
|
| - |
+ ( [ -z "$use_pkgng" ] || pkg info -e $argv ) && \
|
| - |
+ upg_port=$argv ;;
|
| - |
esac
|
| - |
|
| - |
if [ -z "$portdir" -a -z "$upg_port" ]; then
|
| - |
@@ -3175,7 +3423,7 @@
|
| - |
|
| - |
case "$arg2" in
|
| - |
*/*) ro_opd=$arg2 ; ro_upg_port=`iport_from_origin $ro_opd` ;;
|
| - |
- *) if [ -d "$pdb/$arg2" ]; then
|
| - |
+ *) if [ -d "$pdb/$arg2" ] && ( [ -z "$use_pkgng" ] || pkg info -e $arg2 ); then
|
| - |
ro_upg_port=$arg2
|
| - |
else
|
| - |
find_glob_dirs $arg2 && ro_upg_port=${glob_dirs#$pdb/}
|
| - |
@@ -3190,12 +3438,21 @@
|
| - |
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
|
| - |
+ echo "===>>> The second argument to -o can be a package name,"
|
| - |
+ fi
|
| - |
echo " or a port directory from $pd"
|
| - |
echo ''
|
| - |
- echo " $ro_opd does not seem to be installed,"
|
| - |
+ echo " $arg2 does not seem to be installed,"
|
| - |
echo ' or listed as a dependency'
|
| - |
echo '' ; no_valid_port
|
| - |
fi
|
| - |
@@ -3227,7 +3484,7 @@
|
| - |
fi
|
| - |
[ -z "$upg_port" -a -z "$REPLACE_ORIGIN" ] && upg_port=`iport_from_origin ${portdir}`
|
| - |
|
| - |
-if [ -e "$pdb/$upg_port/+IGNOREME" ]; then
|
| - |
+if [ -e "$pdb/$upg_port/+IGNOREME" ] && ( [ -z "$use_pkgng" ] || pkg info -e $upg_port ); then
|
| - |
# Adding to CUR_DEPS means we will not get here in the build
|
| - |
if [ -z "$PM_BUILDING" ]; then
|
| - |
# Only need to prompt for this once if -ai
|
| - |
@@ -3613,7 +3870,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
|
| - |
- case `pkg_version -t $upg_port $latest_pv` in
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_version="pkg_version"
|
| - |
+ else
|
| - |
+ pkg_version="pkg version"
|
| - |
+ fi
|
| - |
+ case `$pkg_version -t $upg_port $latest_pv` in
|
| - |
\<) use_package=up_newer
|
| - |
pm_v "===>>> Available package ($latest_pv)"
|
| - |
pm_v " is newer than installed ($upg_port)" ;;
|
| - |
@@ -3629,7 +3891,12 @@
|
| - |
pm_v "===>>> There is a package available ($latest_pv)"
|
| - |
fi
|
| - |
elif [ -n "$latest_pv" ]; then
|
| - |
- case `pkg_version -t $new_port $latest_pv` in
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkg_version="pkg_version"
|
| - |
+ else
|
| - |
+ pkg_version="pkg version"
|
| - |
+ fi
|
| - |
+ case `$pkg_version -t $new_port $latest_pv` in
|
| - |
\<) # Could happen if ports tree is out of date
|
| - |
use_package=up_old_tree
|
| - |
pm_v "===>>> Available package ($latest_pv)"
|
| - |
@@ -3729,7 +3996,12 @@
|
| - |
grep -v ^$LOCALBASE_COMPAT > $pm_mktemp_file
|
| - |
|
| - |
unset temp
|
| - |
- for file in `pkg_info -q -L $UPGRADE_PORT |
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkglist="pkg_info -q -L"
|
| - |
+ else
|
| - |
+ pkglist="pkg query %Fp"
|
| - |
+ fi
|
| - |
+ for file in `$pkglist $UPGRADE_PORT |
|
| - |
sort - $pm_mktemp_file | uniq -d`; do
|
| - |
temp="${temp}$file "
|
| - |
done
|
| - |
@@ -3752,8 +4024,9 @@
|
| - |
|
| - |
if [ -n "$REPLACE_ORIGIN" -a -n "$ro_upg_port" ]; then
|
| - |
# Delete any existing versions of the old port
|
| - |
+ np_orphan=`pkg query "%a" $ro_upg_port`
|
| - |
pm_sv "Running pkg_delete for $ro_upg_port"
|
| - |
- pm_pkg_delete_s -f $ro_upg_port
|
| - |
+ pm_pkg_delete_s $ro_upg_port
|
| - |
fi
|
| - |
|
| - |
# Could be empty if -o
|
| - |
@@ -3771,8 +4044,12 @@
|
| - |
unset preserve_port files
|
| - |
esac
|
| - |
|
| - |
+ # If $ro_upg_port was non-automatic, keep its state
|
| - |
+ if [ "${np_orphan:-1}" -eq 1 ]; then
|
| - |
+ np_orphan=`pkg query "%a" $upg_port`
|
| - |
+ fi
|
| - |
pm_sv "Running pkg_delete for $upg_port"
|
| - |
- pm_pkg_delete_s -f $upg_port
|
| - |
+ pm_pkg_delete_s $upg_port
|
| - |
fi
|
| - |
|
| - |
echo ''
|
| - |
@@ -3817,6 +4094,18 @@
|
| - |
unset port_log_args
|
| - |
fi
|
| - |
|
| - |
+ if [ -z "$np_orphan" -a -z "$UPDATE_ALL" -a -z "$REPLACE_ORIGIN" -a -z "$PM_URB" ]; then
|
| - |
+ if [ -n "$PM_MULTI_PORTS" ]; then
|
| - |
+ case "$PM_MULTI_PORTS" in
|
| - |
+ *:${upg_port:-NONE}:*) np_orphan=0 ;;
|
| - |
+ *:${portdir}:*) np_orphan=0 ;;
|
| - |
+ esac
|
| - |
+ else
|
| - |
+ [ "$$" -eq "$PM_PARENT_PID" ] && np_orphan=0
|
| - |
+ fi
|
| - |
+ fi
|
| - |
+ [ "${np_orphan:-1}" -eq 1 ] && PM_MAKE_ARGS="${PM_MAKE_ARGS} -DINSTALLS_DEPENDS"
|
| - |
+ unset np_orphan
|
| - |
# Defining NO_DEPENDS ensures that we will control the installation
|
| - |
# of the depends, not bsd.port.mk.
|
| - |
eval pm_make_s -DNO_DEPENDS install $port_log_args || install_failed $new_port
|
| - |
@@ -3834,29 +4123,31 @@
|
| - |
fi
|
| - |
fi
|
| - |
|
| - |
-for file in $preserve_port_files; do
|
| - |
- mv $file ${file}-new
|
| - |
- mv ${preserve_dir}/${file##*/} $file
|
| - |
- oldmd5="MD5:`md5 -q $file`"
|
| - |
-
|
| - |
- pm_mktemp contents
|
| - |
- while read left right; do
|
| - |
- case "$left" in
|
| - |
- @cwd) short_file="${file#${right}/}" ;;
|
| - |
- $short_file) found_it=found_it ; continue;;
|
| - |
- @comment) if [ -n "$found_it" ]; then
|
| - |
- echo -e "${short_file}-new\n$left $right"
|
| - |
- echo -e "$short_file\n@comment $oldmd5"
|
| - |
- unset found_it
|
| - |
- continue
|
| - |
- fi ;;
|
| - |
- esac
|
| - |
- echo "$left $right"
|
| - |
- done < $pdb/$new_port/+CONTENTS > $pm_mktemp_file
|
| - |
- pm_install_s $pm_mktemp_file $contents
|
| - |
- pm_unlink $pm_mktemp_file
|
| - |
- unset file oldmd5 pm_mktemp_file left right short_file
|
| - |
-done
|
| - |
+if [ -z "$use_pkgng" ]; then
|
| - |
+ for file in $preserve_port_files; do
|
| - |
+ mv $file ${file}-new
|
| - |
+ mv ${preserve_dir}/${file##*/} $file
|
| - |
+ oldmd5="MD5:`md5 -q $file`"
|
| - |
+
|
| - |
+ pm_mktemp contents
|
| - |
+ while read left right; do
|
| - |
+ case "$left" in
|
| - |
+ @cwd) short_file="${file#${right}/}" ;;
|
| - |
+ $short_file) found_it=found_it ; continue;;
|
| - |
+ @comment) if [ -n "$found_it" ]; then
|
| - |
+ echo -e "${short_file}-new\n$left $right"
|
| - |
+ echo -e "$short_file\n@comment $oldmd5"
|
| - |
+ unset found_it
|
| - |
+ continue
|
| - |
+ fi ;;
|
| - |
+ esac
|
| - |
+ echo "$left $right"
|
| - |
+ done < $pdb/$new_port/+CONTENTS > $pm_mktemp_file
|
| - |
+ pm_install_s $pm_mktemp_file $contents
|
| - |
+ pm_unlink $pm_mktemp_file
|
| - |
+ unset file oldmd5 pm_mktemp_file left right short_file
|
| - |
+ done
|
| - |
+fi
|
| - |
if [ -n "$preserve_dir" ]; then
|
| - |
rmdir $preserve_dir 2>/dev/null
|
| - |
unset preserve_dir preserve_port_files
|
| - |
@@ -3872,14 +4163,19 @@
|
| - |
temp=`find $LOCALBASE_COMPAT -type d -empty 2>/dev/null`
|
| - |
if [ -z "$temp" ] && [ -d "$LOCALBASE_COMPAT" ]; then
|
| - |
unset files
|
| - |
- for file in `pkg_info -q -L $new_port`; do
|
| - |
+ if [ -z "$use_pkgng" ]; then
|
| - |
+ pkglist="pkg_info -q -L"
|
| - |
+ else
|
| - |
+ pkglist="pkg query %Fp"
|
| - |
+ fi
|
| - |
+ for file in `$pkglist $new_port`; do
|
| - |
[ -f "${LOCALBASE_COMPAT}/${file##*/}" ] &&
|
| - |
files="${files}${LOCALBASE_COMPAT}/${file##*/} "
|
| - |
done
|
| - |
|
| - |
if [ -n "$files" ]; then
|
| - |
pm_sv Removing old shared libraries, and running ldconfig
|
| - |
- pm_rm_s $files
|
| - |
+ pm_rm_s `make -V FILES:O:u FILES="$files"`
|
| - |
$PM_SU_CMD /etc/rc.d/ldconfig start > /dev/null
|
| - |
fi
|
| - |
unset temp file files
|
| - |
@@ -3931,11 +4227,13 @@
|
| - |
done
|
| - |
|
| - |
pm_sv "Installing $dist_list\n"
|
| - |
+ pm_mkdir_s ${dist_list%/*}
|
| - |
pm_install_s $pm_mktemp_file $dist_list
|
| - |
/bin/unlink $pm_mktemp_file ; unset distinfo pm_mktemp_file file line
|
| - |
fi
|
| - |
|
| - |
-if [ -n "$use_package" ]; then
|
| - |
+# pkgng does not need this
|
| - |
+if [ -z "$use_pkgng" -a -n "$use_package" ]; then
|
| - |
if grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then
|
| - |
echo -e "===>>> Updating dependencies for $new_port to match installed versions\n"
|
| - |
update_contents $pdb/$new_port/+CONTENTS ; pm_v
|
| - |
@@ -3957,7 +4255,7 @@
|
| - |
if [ -n "$MAKE_PACKAGE" ]; then
|
| - |
if [ -z "$use_package" ]; then
|
| - |
echo "===>>> Creating a package for new version $new_port"
|
| - |
- pm_make_s package >/dev/null || fail "Package creation of $new_port failed"
|
| - |
+ pm_make_s -D_OPTIONS_OK package >/dev/null || fail "Package creation of $new_port failed"
|
| - |
echo " ===>>> Package saved to $PACKAGES/All" ; echo ''
|
| - |
else
|
| - |
pm_pkg_create $PACKAGES $new_port
|
| - |
@@ -3970,29 +4268,37 @@
|
| - |
pm_v
|
| - |
fi
|
| - |
|
| - |
-check_dependency_files $portdir $new_port
|
| - |
-if [ -s "$grep_deps" ]; then
|
| - |
- echo -e "===>>> Updating dependency entry for $new_port in each dependent port\n"
|
| - |
- while read d_port; do
|
| - |
- pm_v "===>>> $d_port"
|
| - |
- dp_cont=$pdb/$d_port/+CONTENTS
|
| - |
- [ -e "$dp_cont" ] || continue
|
| - |
-
|
| - |
- if [ -n "$ro_opd" ] && grep -ql "DEPORIGIN:$ro_opd$" $dp_cont; then
|
| - |
- update_contents $dp_cont $portdir $new_port $ro_opd
|
| - |
- fi
|
| - |
- # Do this one last so it can get deleted as a duplicate
|
| - |
- # if ro_opd is present.
|
| - |
- if grep -ql "DEPORIGIN:$portdir$" $dp_cont; then
|
| - |
- update_contents $dp_cont $portdir $new_port
|
| - |
- fi
|
| - |
- done < $grep_deps
|
| - |
- unset d_port dp_cont ; pm_v
|
| - |
-
|
| - |
- update_required_by $new_port
|
| - |
- [ -n "$needws" ] && { pm_v; unset needws; }
|
| - |
+if [ -z "$use_pkgng" ]; then
|
| - |
+ check_dependency_files $portdir $new_port
|
| - |
+ if [ -s "$grep_deps" ]; then
|
| - |
+ echo -e "===>>> Updating dependency entry for $new_port in each dependent port\n"
|
| - |
+ while read d_port; do
|
| - |
+ pm_v "===>>> $d_port"
|
| - |
+ dp_cont=$pdb/$d_port/+CONTENTS
|
| - |
+ [ -e "$dp_cont" ] || continue
|
| - |
+
|
| - |
+ if [ -n "$ro_opd" ] && grep -ql "DEPORIGIN:$ro_opd$" $dp_cont; then
|
| - |
+ update_contents $dp_cont $portdir $new_port $ro_opd
|
| - |
+ fi
|
| - |
+ # Do this one last so it can get deleted as a duplicate
|
| - |
+ # if ro_opd is present.
|
| - |
+ if grep -ql "DEPORIGIN:$portdir$" $dp_cont; then
|
| - |
+ update_contents $dp_cont $portdir $new_port
|
| - |
+ fi
|
| - |
+ done < $grep_deps
|
| - |
+ unset d_port dp_cont ; pm_v
|
| - |
+
|
| - |
+ update_required_by $new_port
|
| - |
+ [ -n "$needws" ] && { pm_v; unset needws; }
|
| - |
+ fi
|
| - |
+else
|
| - |
+ if [ -n "$ro_opd" ]; then
|
| - |
+ echo "===>>> Updating dependency entry for $new_port in each dependent port"
|
| - |
+ pkg set -yo $ro_opd:$portdir
|
| - |
+ fi
|
| - |
fi
|
| - |
|
| - |
+
|
| - |
if [ -n "$upg_port" ]; then
|
| - |
if [ ! "$upg_port" = "$new_port" ]; then
|
| - |
ilist="Upgrade of $upg_port to $new_port"
|
| - |
@@ -4008,13 +4314,15 @@
|
| - |
fi
|
| - |
|
| - |
INSTALLED_LIST="${INSTALLED_LIST}\t${ilist}\n"
|
| - |
-[ -e "$pdb/$new_port/+DISPLAY" ] && DISPLAY_LIST="${DISPLAY_LIST}$new_port "
|
| - |
+[ -z "$use_pkgng" -a -e "$pdb/$new_port/+DISPLAY" -o -n "$use_pkgng" -a -n "`pkg query "%M" $new_port`" ] &&
|
| - |
+ DISPLAY_LIST="${DISPLAY_LIST}$new_port "
|
| - |
CUR_DEPS="${CUR_DEPS}${new_port}:${portdir}:"
|
| - |
|
| - |
[ -n "$HIDE_BUILD" -a -n "$port_log" ] && pm_unlink $port_log
|
| - |
|
| - |
[ -n "$PM_URB" -o -n "$PM_URB_UP" ] && PM_URB_DONE="${PM_URB_DONE}${new_port}:"
|
| - |
[ -n "$PM_URB" -o -n "$PM_URB_UP" -o -n "$PM_FORCE" ] &&
|
| - |
+ pm_mkdir_s $pdb/$new_port &&
|
| - |
$PM_SU_CMD touch $pdb/$new_port/PM_UPGRADE_DONE_FLAG
|
| - |
|
| - |
if [ -z "$DONT_SCRUB_DISTFILES" ]; then
|