mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-25 09:34:11 +00:00
New Features
============ 1. Introducing the new options --index and --index-only. The first will use the INDEX file to check if a port is up to date. The second allows the use of portmaster with no /usr/ports directory. 2. The second argument to -o and the port name for -e can now be globs 3. For the -d|-D and -b|-B options allow the command line to override any values that might be set in .portmasterrc Internals ========= 1. Add a pm_sv() function to handle verbose messages for PM_SU_CMD 2. Add a find_glob_dirs() function, and use it instead of custom versions each place this is needed. 3. For -o, add -DDISABLE_CONFLICTS Bug Fixes ========= 1. If running as root, unset PM_SU_VERBOSE 2. Minor tweaks to improve usage()
This commit is contained in:
parent
3768cb33d8
commit
3e9a9e4fcb
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=252508
@ -36,9 +36,12 @@ if [ -z "$PM_PARENT_PID" ]; then
|
||||
[ -r "$HOME/.portmasterrc" ] && . $HOME/.portmasterrc
|
||||
set +o allexport
|
||||
|
||||
my_environment=`set`
|
||||
|
||||
# If we are already root, unset this to avoid potential conflict
|
||||
euid=`ps -o uid $$` ; euid=${euid##* }
|
||||
[ "$euid" -eq 0 ] && unset PM_SU_CMD
|
||||
[ "$euid" -eq 0 ] && unset PM_SU_CMD PM_SU_VERBOSE
|
||||
unset euid
|
||||
fi
|
||||
|
||||
umask 022
|
||||
@ -141,16 +144,14 @@ safe_exit () {
|
||||
[ -n "$UPDATE_REQ_BYS" -o -n "$PM_FORCE" ] &&
|
||||
files=`find $pdb -type f -name PM_UPGRADE_DONE_FLAG`
|
||||
if [ -n "$files" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Deleting 'install complete' flags"
|
||||
pm_sv Deleting \'install complete\' flags
|
||||
pm_find_s $pdb -type f -name PM_UPGRADE_DONE_FLAG -delete
|
||||
fi
|
||||
# Outdent
|
||||
fi
|
||||
if [ -z "$BACKUP" -a -z "$NO_BACKUP" -a \
|
||||
-n "$NB_DELETE" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Deleting safety packages for successful installs"
|
||||
pm_sv Deleting safety packages for successful installs
|
||||
pm_cd $pbu || fail "Cannot cd to $pbu"
|
||||
pm_rm_s $NB_DELETE
|
||||
fi
|
||||
@ -158,8 +159,7 @@ safe_exit () {
|
||||
|
||||
[ -n "$pbu" ] && pbu=`find $pbu -type d -empty 2>/dev/null`
|
||||
if [ -d "$pbu" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Removing empty backup package directory"
|
||||
pm_sv Removing empty backup package directory
|
||||
pm_rmdir_s $pbu
|
||||
fi
|
||||
|
||||
@ -249,10 +249,10 @@ usage () {
|
||||
echo ''
|
||||
echo 'Usage:'
|
||||
echo "Common flags: [--force-config] [-CGHKgntvw B|b f|i D|d]"
|
||||
echo " [[--packages|--packages-only] [-P|-PP] | [--packages-build]]"
|
||||
echo " [[[--packages|-P]|[--packages-only|-PP]] | [--packages-build]]"
|
||||
echo " [--packages-if-newer] [--delete-build-only] [--always-fetch]"
|
||||
echo " [--local-packagedir=<path>] [--delete-packages]"
|
||||
echo " [--no-confirm] [--no-term-title]"
|
||||
echo " [--no-confirm] [--no-term-title] [--index|--index-only]"
|
||||
echo " [-m <arguments for make>] [-x <glob pattern to exclude from building>]"
|
||||
echo "${0##*/} [Common flags] <full name of port directory in $pdb>"
|
||||
echo "${0##*/} [Common flags] <full path to $pd/foo/bar>"
|
||||
@ -271,7 +271,7 @@ usage () {
|
||||
echo ''
|
||||
echo "${0##*/} -[l|L]"
|
||||
echo ''
|
||||
echo "${0##*/} [-b D|d] -e <full name of port directory in $pdb>"
|
||||
echo "${0##*/} [-b D|d] -e <name/glob of port directory in $pdb>"
|
||||
echo "${0##*/} [-b D|d] -s"
|
||||
echo ''
|
||||
echo "${0##*/} [--force-config] [-aftv] -F"
|
||||
@ -308,15 +308,20 @@ usage () {
|
||||
echo "-m <arguments for the 'make' command line>"
|
||||
echo "-x <avoid building or updating ports that match this pattern>"
|
||||
echo ' Can be specified more than once'
|
||||
echo ''
|
||||
echo '--no-confirm do not ask user to confirm list of ports to be'
|
||||
echo ' installed and/or updated before proceeding'
|
||||
echo '--no-term-title do not update the xterm title bar'
|
||||
echo ''
|
||||
echo '--index use INDEX-[6-9] to check if a port is out of date'
|
||||
echo '--index-only do not try to use /usr/ports'
|
||||
echo ''
|
||||
echo '--show-work list what ports are and would be installed'
|
||||
echo ''
|
||||
echo '-o replace the installed port with a port from a different origin'
|
||||
echo '[-R] -r rebuild port, and all ports that depend on it'
|
||||
echo '-R used with -[rf] to skip ports updated on a previous run'
|
||||
echo ''
|
||||
echo '-a check all ports, update as necessary'
|
||||
echo ''
|
||||
echo '--delete-build-only delete ports that are build-only dependencies'
|
||||
@ -384,33 +389,10 @@ pm_rm_s () { $PM_SU_CMD /bin/rm $*; }
|
||||
pm_rmdir_s () { $PM_SU_CMD /bin/rmdir $*; }
|
||||
pm_unlink_s () { /bin/test -e $1 && $PM_SU_CMD /bin/unlink $1; }
|
||||
|
||||
pm_sv () { [ -n "$PM_SU_VERBOSE" ] && echo "===>>> SU $*"; }
|
||||
|
||||
#=============== End functions we always want to have ===============
|
||||
|
||||
# Do this here so it can use the fancy functions above, and default values
|
||||
# can be overridden in the rc files
|
||||
if [ "$$" -eq "$PM_PARENT_PID" ]; then
|
||||
if [ -z "$pd" ]; then
|
||||
pd=`pm_make_b -f/usr/share/mk/bsd.port.mk -V PORTSDIR`
|
||||
[ -n "$pd" ] || fail 'The value of PORTSDIR cannot be empty'
|
||||
fi
|
||||
if [ -z "$pdb" ]; then
|
||||
pdb=`pm_make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR`
|
||||
[ -n "$pdb" ] || fail 'The value of PKG_DBDIR cannot be empty'
|
||||
fi
|
||||
if [ -z "$distdir" ]; then
|
||||
distdir=`pm_make_b -f/usr/share/mk/bsd.port.mk -VDISTDIR`
|
||||
[ -n "$distdir" ] || fail 'The value of DISTDIR cannot be empty'
|
||||
# In case it is a symlink
|
||||
distdir="${distdir}/"
|
||||
fi
|
||||
if [ -z "$port_dbdir" ]; then
|
||||
port_dbdir=`pm_make_b -f/usr/share/mk/bsd.port.mk -V PORT_DBDIR`
|
||||
[ -n "$port_dbdir" ] && export port_dbdir
|
||||
fi
|
||||
|
||||
export pd pdb distdir
|
||||
fi
|
||||
|
||||
packages_init () {
|
||||
local e1 e2
|
||||
|
||||
@ -456,6 +438,9 @@ for var in "$@" ; do
|
||||
export PM_NO_CONFIRM ;;
|
||||
--no-term-title) PM_NO_TERM_TITLE=pm_no_term_title
|
||||
export PM_NO_TERM_TITLE ;;
|
||||
--index) PM_INDEX=pm_index ; export PM_INDEX ;;
|
||||
--index-only) PM_INDEX=pm_index ; PM_INDEX_ONLY=pm_index_only
|
||||
export PM_INDEX PM_INDEX_ONLY ;;
|
||||
--help) usage 0 ;;
|
||||
--version) version ; exit 0 ;;
|
||||
--clean-distfiles) CLEAN_DISTFILES=clean_distfiles ;;
|
||||
@ -471,7 +456,90 @@ for var in "$@" ; do
|
||||
esac
|
||||
done
|
||||
|
||||
# Do this here so it can use the fancy functions above, and default values
|
||||
# can be overridden in the rc files
|
||||
if [ "$$" -eq "$PM_PARENT_PID" ]; then
|
||||
if [ -n "$PM_INDEX" ]; then
|
||||
[ -d "$pd" ] && pm_cd_pd
|
||||
if [ -z "$FETCHINDEX" ]; then
|
||||
[ -d "$pd" ] && FETCHINDEX=`pm_make_b -V FETCHINDEX`
|
||||
[ -n "$FETCHINDEX" ] || FETCHINDEX='fetch -am -o'
|
||||
fi
|
||||
if [ -z "$MASTER_SITE_INDEX" ]; then
|
||||
[ -d "$pd" ] &&
|
||||
MASTER_SITE_INDEX=`pm_make_b -V MASTER_SITE_INDEX`
|
||||
[ -n "$MASTER_SITE_INDEX" ] ||
|
||||
MASTER_SITE_INDEX='http://www.FreeBSD.org/ports/'
|
||||
fi
|
||||
if [ -z "$INDEXDIR" ]; then
|
||||
[ -d "$pd" ] && INDEXDIR=`pm_make_b -V INDEXDIR`
|
||||
[ -n "$INDEXDIR" ] || INDEXDIR="$TMPDIR"
|
||||
fi
|
||||
if [ -z "$INDEXFILE" ]; then
|
||||
[ -d "$pd" ] && INDEXFILE=`pm_make_b -V INDEXFILE`
|
||||
if [ -z "$INDEXFILE" ]; then
|
||||
ver=`uname -r`
|
||||
INDEXFILE=INDEX-${ver%%\.*}
|
||||
unset ver
|
||||
fi
|
||||
fi
|
||||
|
||||
PM_INDEX="${INDEXDIR}/${INDEXFILE}"
|
||||
index_time=`stat -f '%Ua' $PM_INDEX 2>/dev/null`
|
||||
pm_sv Updating INDEX file
|
||||
$PM_SU_CMD $FETCHINDEX ${PM_INDEX}.bz2 ${MASTER_SITE_INDEX}${INDEXFILE}.bz2
|
||||
if [ $index_time -ne `stat -f '%Ua' $PM_INDEX 2>/dev/null` ]; then
|
||||
temp_index=`pm_mktemp index`
|
||||
bunzip2 < ${PM_INDEX}.bz2 > $temp_index
|
||||
pm_install_s $temp_index $PM_INDEX
|
||||
unlink $temp_index
|
||||
unset temp_index
|
||||
fi
|
||||
unset index_time
|
||||
fi
|
||||
|
||||
if [ -z "$pd" ]; then
|
||||
if [ -z "$PORTSDIR" ]; then
|
||||
pd=`pm_make_b -f/usr/share/mk/bsd.port.mk -V PORTSDIR 2>/dev/null`
|
||||
else
|
||||
pd=$PORTSDIR
|
||||
fi
|
||||
if [ -z "$pd" ]; then
|
||||
if [ -n "$PM_INDEX_ONLY" ]; then
|
||||
pd=`head -1 $PM_INDEX | cut -f 2 -d\|`
|
||||
pd=${pd%/*}
|
||||
pd=${pd%/*}
|
||||
fi
|
||||
fi
|
||||
[ -z "$pd" ] && fail 'The value of PORTSDIR cannot be empty'
|
||||
fi
|
||||
if [ -z "$pdb" ]; then
|
||||
if [ -z "$PKG_DBDIR" ]; then
|
||||
pdb=`pm_make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null`
|
||||
else
|
||||
pdb=$PKG_DBDIR
|
||||
fi
|
||||
if [ -z "$pdb" ]; then
|
||||
if [ -d /var/db/pkg ]; then
|
||||
pdb='/var/db/pkg'
|
||||
else
|
||||
fail 'The value of PKG_DBDIR cannot be empty'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ -z "$distdir" -a "$PM_PACKAGES" != only ]; then
|
||||
distdir=`pm_make_b -f/usr/share/mk/bsd.port.mk -V DISTDIR 2>/dev/null`
|
||||
# In case it is a symlink
|
||||
distdir="${distdir%/}/"
|
||||
fi
|
||||
if [ -z "$port_dbdir" ]; then
|
||||
port_dbdir=`pm_make_b -f/usr/share/mk/bsd.port.mk -V PORT_DBDIR 2>/dev/null`
|
||||
[ -z "$port_dbdir" -a -d /var/db/ports ] && port_dbdir='/var/db/ports'
|
||||
[ -n "$port_dbdir" ] && export port_dbdir
|
||||
fi
|
||||
|
||||
export pd pdb distdir
|
||||
|
||||
if [ -n "$PM_PACKAGES_BUILD" -o -n "$PM_DEL_BUILD_ONLY" ]; then
|
||||
PM_BUILD_ONLY_LIST=pm_bol
|
||||
export PM_BUILD_ONLY_LIST
|
||||
@ -782,6 +850,30 @@ delete_empty_dist_subdirs () {
|
||||
find -d $distdir -type d \( -empty -and ! -path \*\.zfs/\* \) -delete
|
||||
}
|
||||
|
||||
# Takes a pattern as input
|
||||
# Return values:
|
||||
# 0 - Matched one and only one directory in $pdb
|
||||
# 1 - No match
|
||||
# 2 - Matched multiple directories
|
||||
#
|
||||
find_glob_dirs () {
|
||||
# Global: glob_dirs
|
||||
local pattern
|
||||
|
||||
pattern=`globstrip $1`
|
||||
|
||||
glob_dirs=`find $pdb -maxdepth 1 -type d -name ${pattern}\*`
|
||||
case "$glob_dirs" in
|
||||
# Match a newline in multiple responses from find
|
||||
*'
|
||||
'*) return 2 ;;
|
||||
$pdb/*) return ;;
|
||||
esac
|
||||
|
||||
unset glob_dirs
|
||||
return 1
|
||||
}
|
||||
|
||||
#=============== End functions relevant to --features and main ===============
|
||||
#=============== Begin code relevant only to --features ===============
|
||||
|
||||
@ -968,15 +1060,11 @@ while getopts 'BCDFGHKLPRabde:fghilm:nop:r:stuvwx:' COMMAND_LINE_ARGUMENT ; do
|
||||
if [ -d "$pdb/$OPTARG" ]; then
|
||||
glob_dirs=$OPTARG
|
||||
else
|
||||
port=`globstrip $OPTARG`
|
||||
glob_dirs=`find $pdb -maxdepth 1 -type d -name ${port}\*`
|
||||
case "$glob_dirs" in
|
||||
*\*|'') fail "$pdb/$port does not exist" ;;
|
||||
# Match a newline in multiple responses from find
|
||||
*'
|
||||
'*) fail 'The argument to -r must match only one port' ;;
|
||||
find_glob_dirs $OPTARG
|
||||
case $? in
|
||||
1) fail "$pdb/$OPTARG does not exist" ;;
|
||||
2) fail 'The argument to -r must match only one port' ;;
|
||||
esac
|
||||
unset port
|
||||
fi
|
||||
portdir=`origin_from_pdb ${glob_dirs##*/}` ; unset glob_dirs ;;
|
||||
s) CLEAN_STALE=sopt ;;
|
||||
@ -996,20 +1084,44 @@ unset -f packages_init
|
||||
|
||||
[ -n "$PM_EXCL" ] && export PM_EXCL
|
||||
|
||||
test_command_line () {
|
||||
local var envar
|
||||
|
||||
for var in $my_environment; do
|
||||
case "$var" in
|
||||
${1}=*) envar=$1 ;;
|
||||
${2}=*) envar=$2 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -n "$envar" ]; then
|
||||
unset $envar
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# Error checking for getopts
|
||||
[ -n "$PM_FORCE" -a "$INTERACTIVE_UPDATE" ] &&
|
||||
fail "The -f and -i options are mutually exclusive"
|
||||
[ -n "$BACKUP" -a -n "$NO_BACKUP" ] &&
|
||||
fail "The -b and -B options are mutually exclusive"
|
||||
[ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_DISTFILES" ] &&
|
||||
fail "The -d and -D options are mutually exclusive"
|
||||
if [ -n "$BACKUP" -a -n "$NO_BACKUP" ]; then
|
||||
test_command_line NO_BACKUP BACKUP ||
|
||||
fail "The -b and -B options are mutually exclusive"
|
||||
fi
|
||||
if [ -n "$ALWAYS_SCRUB_DISTFILES" -a -n "$DONT_SCRUB_DISTFILES" ]; then
|
||||
test_command_line ALWAYS_SCRUB_DISTFILES DONT_SCRUB_DISTFILES ||
|
||||
fail "The -d and -D options are mutually exclusive"
|
||||
fi
|
||||
[ -n "$FETCH_ONLY" -a -n "$NO_RECURSIVE_CONFIG" ] &&
|
||||
fail "The -F and -G options are mutually exclusive"
|
||||
unset NO_RECURSIVE_CONFIG
|
||||
[ -n "$NO_RECURSIVE_CONFIG" -a -n "$PM_PACKAGES_BUILD" ] &&
|
||||
fail 'The --packages-build and -G options are mutually exclusive'
|
||||
[ -n "$NO_RECURSIVE_CONFIG" -a -n "$PM_DEL_BUILD_ONLY" ] &&
|
||||
fail 'The --delete-build-only and -G options are mutually exclusive'
|
||||
|
||||
unset my_environment
|
||||
|
||||
#=============== Begin functions for getopts features and main ===============
|
||||
|
||||
check_state () {
|
||||
@ -1030,6 +1142,52 @@ check_state () {
|
||||
return 0
|
||||
}
|
||||
|
||||
parse_index () {
|
||||
local pd line
|
||||
|
||||
[ -z "$pd" -a -n "$PM_INDEX_ONLY" ] && pd=/usr/ports
|
||||
|
||||
line=`grep -m1 .*\|${pd}/${1}\|.* $PM_INDEX`
|
||||
|
||||
case "$2" in
|
||||
name) echo ${line%%|*} ;;
|
||||
localbase) echo $line | cut -f 3 -d\| ;;
|
||||
comment) echo $line | cut -f 4 -d\| ;;
|
||||
descr) echo $line | cut -f 5 -d\| ;;
|
||||
maintainer) echo $line | cut -f 6 -d\| ;;
|
||||
category) echo $line | cut -f 7 -d\| ;;
|
||||
b-deps) echo $line | cut -f 8 -d\| ;;
|
||||
r-deps) echo $line | cut -f 9 -d\| ;;
|
||||
www) echo $line | cut -f 10 -d\| ;;
|
||||
esac
|
||||
}
|
||||
|
||||
check_pkg_version () {
|
||||
local iport port_ver udf
|
||||
|
||||
iport=$1 ; port_ver=$2 ; udf=$3
|
||||
|
||||
case `pkg_version -t $iport $port_ver` in
|
||||
\<) return 1 ;;
|
||||
=) return ;;
|
||||
\>) if [ -n "$PM_VERBOSE" ]; then
|
||||
echo " ===>>> Port version $port_ver does not"
|
||||
echo " ===>>> seem newer than installed $iport"
|
||||
fi
|
||||
if [ -n "$PM_FORCE" ]; then
|
||||
check_restart_and_udf $udf $iport || return 1
|
||||
elif [ -n "$URB_YES" ]; then
|
||||
case "$MASTER_RB_LIST" in *" $iport "*)
|
||||
if ! check_restart_and_udf $udf $iport; then
|
||||
return 1
|
||||
else
|
||||
URB_DONE_LIST="${URB_DONE_LIST}${upg_port}:"
|
||||
fi ;;
|
||||
esac
|
||||
fi ;;
|
||||
esac
|
||||
}
|
||||
|
||||
check_for_updates () {
|
||||
# Global: num_updates
|
||||
local list_only nf iport origin port_ver udf do_update
|
||||
@ -1051,7 +1209,12 @@ check_for_updates () {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -d "$pd/$origin" ]; then
|
||||
if [ -n "$PM_INDEX" ]; then
|
||||
port_ver=`parse_index $origin name`
|
||||
check_pkg_version $iport $port_ver || { do_update=update_index ; }
|
||||
fi
|
||||
|
||||
if [ -d "$pd/$origin" -a -z "$do_update" -a -z "$PM_INDEX_ONLY" ]; then
|
||||
if ! pm_cd $pd/$origin; then
|
||||
if [ -e "$pdb/$iport/+IGNOREME" ]; then
|
||||
echo " ===>>> Warning: Unable to cd to $pd/$origin"
|
||||
@ -1085,36 +1248,15 @@ check_for_updates () {
|
||||
*:${origin}:*) do_update=do_update_mo ;;
|
||||
esac
|
||||
elif [ -n "$LIST_PLUS" ]; then
|
||||
check_state
|
||||
[ -z "$PM_INDEX_ONLY" ] && check_state
|
||||
return 0
|
||||
elif [ -n "$LIST" ]; then
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
case `pkg_version -t $iport $port_ver` in
|
||||
\<) do_update=do_update3 ;;
|
||||
=) ;; # Should not be reached
|
||||
\>) if [ -n "$PM_VERBOSE" ]; then
|
||||
echo " ===>>> Port version $port_ver does not"
|
||||
echo " ===>>> seem newer than installed $iport"
|
||||
fi
|
||||
if [ -n "$PM_FORCE" ]; then
|
||||
check_restart_and_udf $udf $iport ||
|
||||
do_update=do_update4
|
||||
elif [ -n "$URB_YES" ]; then
|
||||
# Outdent
|
||||
case "$MASTER_RB_LIST" in *" $iport "*)
|
||||
if ! check_restart_and_udf $udf $iport; then
|
||||
do_update=do_update5
|
||||
else
|
||||
URB_DONE_LIST="${URB_DONE_LIST}${upg_port}:"
|
||||
fi ;;
|
||||
esac
|
||||
# Outdent
|
||||
fi ;;
|
||||
esac
|
||||
check_pkg_version $iport $port_ver $udf || do_update=do_update_check
|
||||
fi
|
||||
else
|
||||
elif [ -z "$do_update" -a -z "$PM_INDEX_ONLY" ]; then
|
||||
find_moved_port $origin $iport $nf
|
||||
|
||||
# If the port has moved, we have to update it, otherwise ignore
|
||||
@ -1129,7 +1271,7 @@ check_for_updates () {
|
||||
echo " ===>>> New version available: $port_ver"
|
||||
[ -e "$pdb/$iport/+IGNOREME" ] &&
|
||||
echo " ===>>> +IGNOREME file is present for $1"
|
||||
check_state
|
||||
[ -z "$PM_INDEX_ONLY" ] && check_state
|
||||
num_updates=$(( $num_updates + 1 ))
|
||||
else
|
||||
unset moved_npd
|
||||
@ -1176,8 +1318,7 @@ init_packages () {
|
||||
pbu=$PACKAGES/portmaster-backup
|
||||
|
||||
if [ ! -d "$pbu" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Creating $pbu"
|
||||
pm_sv Creating $pbu
|
||||
pm_mkdir_s $pbu
|
||||
fi
|
||||
export pbu
|
||||
@ -1186,6 +1327,8 @@ init_packages () {
|
||||
pm_pkg_create () {
|
||||
local pkgdir
|
||||
|
||||
init_packages
|
||||
|
||||
if [ "$1" = "$PACKAGES" ]; then
|
||||
for pkgdir in All Latest ${portdir%/*}; do
|
||||
pm_mkdir_s ${PACKAGES}/${pkgdir} ||
|
||||
@ -1208,13 +1351,17 @@ pm_pkg_create () {
|
||||
NB_DELETE="${NB_DELETE}${pkg} "
|
||||
fi
|
||||
elif [ "$1" = "$PACKAGES" ]; then
|
||||
local pkg latest_link
|
||||
local pkg ; pkg=`echo $2.*`
|
||||
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
local latest_link
|
||||
|
||||
pm_cd_pd $portdir
|
||||
latest_link=`pm_make -V LATEST_LINK`
|
||||
cd ${1}/Latest
|
||||
$PM_SU_CMD ln -sf ../All/$pkg ${latest_link}.tbz
|
||||
fi
|
||||
|
||||
pkg=`echo $2.*`
|
||||
pm_cd_pd $portdir
|
||||
latest_link=`pm_make -V LATEST_LINK`
|
||||
cd ${1}/Latest
|
||||
$PM_SU_CMD ln -sf ../All/$pkg ${latest_link}.tbz
|
||||
cd ${1}/${portdir%/*}
|
||||
$PM_SU_CMD ln -sf ../All/$pkg $pkg
|
||||
echo " ===>>> Package saved to ${1}/All" ; echo ''
|
||||
@ -1272,13 +1419,12 @@ delete_dist_list () {
|
||||
|
||||
local dir
|
||||
|
||||
[ -n "$PM_SU_VERBOSE" ] && echo "===>>> Deleting $dist_list"
|
||||
pm_sv Deleting $dist_list
|
||||
pm_unlink_s $dist_list
|
||||
|
||||
dir=`find ${dist_list%/distfiles} -type d -empty 2>/dev/null`
|
||||
if [ -d "$dir" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Deleting the $dir directory"
|
||||
pm_sv Deleting the $dir directory
|
||||
pm_rmdir_s $dir
|
||||
fi
|
||||
}
|
||||
@ -1532,7 +1678,14 @@ if [ -n "$LIST" -o -n "$LIST_PLUS" ]; then
|
||||
fi
|
||||
|
||||
if [ -n "$EXPUNGE" ]; then
|
||||
[ -d "$pdb/$EXPUNGE" ] || fail "No such directory/port: $pdb/$EXPUNGE"
|
||||
if [ ! -d "$pdb/$EXPUNGE" ]; then
|
||||
if find_glob_dirs $EXPUNGE; then
|
||||
EXPUNGE=${glob_dirs#$pdb/}
|
||||
unset glob_dirs
|
||||
else
|
||||
fail "No such directory/port: $pdb/$EXPUNGE"
|
||||
fi
|
||||
fi
|
||||
|
||||
origin=`origin_from_pdb $EXPUNGE`
|
||||
deplist=`grep -l DEPORIGIN:$origin$ $pdb/*/+CONTENTS`
|
||||
@ -1591,11 +1744,7 @@ if [ -n "$CLEAN_STALE" ]; then
|
||||
echo -n "===>>> ${iport} is no longer depended on, delete? y/n [n] "
|
||||
read answer
|
||||
case "$answer" in
|
||||
[yY]) if [ -n "$BACKUP" ]; then
|
||||
[ -z "$PACKAGES" ] && init_packages
|
||||
pm_pkg_create $pbu $iport
|
||||
fi
|
||||
|
||||
[yY]) [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $iport; }
|
||||
[ -z "$DONT_SCRUB_DISTFILES" ] &&
|
||||
delete_all_distfiles $origin
|
||||
|
||||
@ -1733,7 +1882,11 @@ update_build_l () {
|
||||
origin=`origin_from_pdb $1` ;;
|
||||
esac
|
||||
|
||||
pm_cd $pd/$origin && new_port=`pm_make -V PKGNAME`
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
pm_cd $pd/$origin && new_port=`pm_make -V PKGNAME`
|
||||
else
|
||||
new_port=`parse_index $origin name`
|
||||
fi
|
||||
|
||||
case `pkg_version -t $iport $new_port 2>/dev/null` in
|
||||
\<) build_l="${build_l}\tUpgrade $iport to $new_port\n" ;;
|
||||
@ -1824,6 +1977,32 @@ clean_build_only_list () {
|
||||
build_only_dl_g=" `uniquify_list $temp_bodlg` "
|
||||
}
|
||||
|
||||
gen_dep_list () {
|
||||
local list
|
||||
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
pm_cd_pd $portdir
|
||||
list=`pm_make $* | sort -u`
|
||||
else
|
||||
local temp_list l
|
||||
|
||||
case "$*" in
|
||||
'build-depends-list run-depends-list'|all-depends-list)
|
||||
temp_list="`parse_index $portdir b-deps` `parse_index $portdir r-deps`" ;;
|
||||
build-depends-list) temp_list=`parse_index $portdir b-deps` ;;
|
||||
run-depends-list) temp_list=`parse_index $portdir r-deps` ;;
|
||||
esac
|
||||
|
||||
temp_list=`uniquify_list $temp_list`
|
||||
|
||||
for l in $temp_list ; do
|
||||
list="$list `grep -m1 ^${l}\| $PM_INDEX | cut -f 2 -d \|`"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "$list"
|
||||
}
|
||||
|
||||
dependency_check () {
|
||||
# Global: doing_dep_check
|
||||
# Global: run_dl_g build_only_dl_g
|
||||
@ -1833,8 +2012,7 @@ dependency_check () {
|
||||
# Print a message here because sometimes list generation takes
|
||||
# a long time to return.
|
||||
echo "===>>> Gathering dependency list for $portdir from ports"
|
||||
pm_cd_pd $portdir
|
||||
d_port_list=`pm_make $1 | sort -u`
|
||||
d_port_list=`gen_dep_list $1`
|
||||
|
||||
if [ -z "$d_port_list" ]; then
|
||||
echo "===>>> No dependencies for $portdir"
|
||||
@ -1853,11 +2031,11 @@ dependency_check () {
|
||||
if [ "$PM_BUILD_ONLY_LIST" = pmp_doing_build_deps ]; then
|
||||
local rundeps dep varname run_dl build_only_dl
|
||||
|
||||
rundeps=`pm_make run-depends-list | sort -u`
|
||||
rundeps=" `gen_dep_list run-depends-list` "
|
||||
|
||||
for dep in $d_port_list; do
|
||||
case "$rundeps" in
|
||||
*${dep}*)
|
||||
*" ${dep} "*)
|
||||
varname=`echo ${dep#$pd/} | sed 's#[-+/\.]#_#g'`
|
||||
rundep_list="$rundep_list $varname"
|
||||
eval $varname=\"$portdir \$$varname\"
|
||||
@ -1872,7 +2050,7 @@ dependency_check () {
|
||||
if [ -z "$RECURSE_THOROUGH" ]; then
|
||||
d_port_list="$build_only_dl $run_dl"
|
||||
else
|
||||
build_only_dl=`pm_make build-depends-list | sort -u`
|
||||
build_only_dl=`gen_dep_list build-depends-list`
|
||||
fi
|
||||
|
||||
run_dl_g="$run_dl_g $run_dl "
|
||||
@ -1913,24 +2091,26 @@ dependency_check () {
|
||||
[ -z "$URB_YES" ] &&
|
||||
case "$CUR_DEPS" in *:${origin}:*) continue ;; esac
|
||||
|
||||
conflicts=''
|
||||
if pm_cd $d_port; then
|
||||
grep -ql ^CONFLICTS Makefile &&
|
||||
conflicts=`pm_make_b -V CONFLICTS`
|
||||
else
|
||||
fail "Cannot cd to $d_port"
|
||||
fi
|
||||
for glob in $conflicts; do
|
||||
confl_p=`pkg_info -I $glob 2>/dev/null`
|
||||
if [ -n "$confl_p" ]; then
|
||||
confl_p=${confl_p%% *}
|
||||
echo ''
|
||||
echo "===>>> The dependency for ${origin}"
|
||||
echo " seems to be handled by $confl_p"
|
||||
echo ''
|
||||
d_port="$pd/`origin_from_pdb $confl_p`"
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
conflicts=''
|
||||
if pm_cd $d_port; then
|
||||
grep -ql ^CONFLICTS Makefile &&
|
||||
conflicts=`pm_make_b -V CONFLICTS`
|
||||
else
|
||||
fail "Cannot cd to $d_port"
|
||||
fi
|
||||
done
|
||||
for glob in $conflicts; do
|
||||
confl_p=`pkg_info -I $glob 2>/dev/null`
|
||||
if [ -n "$confl_p" ]; then
|
||||
confl_p=${confl_p%% *}
|
||||
echo ''
|
||||
echo "===>>> The dependency for ${origin}"
|
||||
echo " seems to be handled by $confl_p"
|
||||
echo ''
|
||||
d_port="$pd/`origin_from_pdb $confl_p`"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# In case d_port changed above
|
||||
origin="${d_port#$pd/}" ; iport=`iport_from_origin ${origin}`
|
||||
@ -2106,16 +2286,15 @@ multiport () {
|
||||
*) if [ -d "$pdb/$port" ]; then
|
||||
worklist_temp="$worklist_temp $port"
|
||||
else
|
||||
# Keep synched with code in MAIN
|
||||
local glob_dirs dir
|
||||
port=`globstrip $port`
|
||||
glob_dirs=`find $pdb -maxdepth 1 -type d -name ${port}\*`
|
||||
case "$glob_dirs" in
|
||||
*\*|'') fail "$pdb/$port does not exist" ;;
|
||||
*) for dir in $glob_dirs; do
|
||||
worklist_temp="$worklist_temp ${dir#$pdb/}"
|
||||
find_glob_dirs $port
|
||||
case $? in
|
||||
1) fail "$pdb/$port does not exist" ;;
|
||||
*) local dir
|
||||
for dir in $glob_dirs; do
|
||||
worklist_temp="$worklist_temp ${dir#$pdb/}"
|
||||
done ;;
|
||||
esac
|
||||
unset glob_dirs
|
||||
fi ;;
|
||||
esac
|
||||
done
|
||||
@ -2184,8 +2363,7 @@ multiport () {
|
||||
make_config () {
|
||||
config_type=config-conditional
|
||||
[ -n "$FORCE_CONFIG" ] && config_type=config
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Running 'make $config_type'"
|
||||
pm_sv Running \'make $config_type\'
|
||||
pm_cd_pd $portdir
|
||||
pm_make_s $config_type
|
||||
}
|
||||
@ -2199,10 +2377,22 @@ if [ "$$" -eq "$PM_PARENT_PID" -a -z "$SHOW_WORK" ]; then
|
||||
PM_DEPTH='' ; IPC_SAVE=`pm_mktemp IPC_SAVE`
|
||||
export CUR_DEPS DISPLAY_LIST INSTALLED_LIST PM_DEPTH IPC_SAVE
|
||||
|
||||
PORTS_LOCALBASE=`pm_make_b -f/usr/share/mk/bsd.port.mk -V LOCALBASE`
|
||||
[ -n "$PORTS_LOCALBASE" ] ||
|
||||
fail 'The value of LOCALBASE cannot be empty'
|
||||
LOCALBASE_COMPAT="$PORTS_LOCALBASE/lib/compat"
|
||||
if [ -n "$LOCALBASE" ]; then
|
||||
LOCALBASE_COMPAT="$LOCALBASE/lib/compat"
|
||||
else
|
||||
PLB=`pm_make_b -f/usr/share/mk/bsd.port.mk -V LOCALBASE 2>/dev/null`
|
||||
if [ -n "$PLB" ]; then
|
||||
LOCALBASE_COMPAT="$PLB/lib/compat"
|
||||
else
|
||||
PLB=`head -1 $PM_INDEX | cut -f 3 -d\|`
|
||||
if [ -d "$PLB" ]; then
|
||||
LOCALBASE_COMPAT="${PLB}/lib/compat"
|
||||
else
|
||||
fail 'The value of LOCALBASE cannot be empty'
|
||||
fi
|
||||
fi
|
||||
unset PLB
|
||||
fi
|
||||
export LOCALBASE_COMPAT
|
||||
|
||||
if [ -n "$INTERACTIVE_UPDATE" ]; then
|
||||
@ -2220,10 +2410,9 @@ if [ "$$" -eq "$PM_PARENT_PID" -a -z "$SHOW_WORK" ]; then
|
||||
echo -n " -[rf] run of ${0##*/}, delete them? y/n [n] "
|
||||
read answer
|
||||
case "$answer" in
|
||||
[yY]) [ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Deleting 'install complete' flags"
|
||||
pm_find_s $pdb -type f -name PM_UPGRADE_DONE_FLAG -delete ;;
|
||||
*) echo -n "===>>> Enable the -R option? y/n [n] "
|
||||
[yY]) pm_sv Deleting \'install complete\' flags
|
||||
pm_find_s $pdb -type f -name PM_UPGRADE_DONE_FLAG -delete ;;
|
||||
*) echo -n "===>>> Enable the -R option? y/n [n] "
|
||||
read answer
|
||||
case "$answer" in
|
||||
[yY]) RESTART=Ropt ; ARGS="-R $ARGS" ;;
|
||||
@ -2248,8 +2437,16 @@ if [ "$$" -eq "$PM_PARENT_PID" -a -z "$SHOW_WORK" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$NO_BACKUP" -a -z "$MAKE_PACKAGE" ] || init_packages
|
||||
[ -z "$NO_BACKUP" ] && init_packages
|
||||
[ -z "$NO_BACKUP" -a -z "$BACKUP" ] && export NB_DELETE
|
||||
if [ -n "$MAKE_PACKAGE" ]; then
|
||||
init_packages_var
|
||||
|
||||
if [ ! -d "$PACKAGES" ]; then
|
||||
pm_sv Creating $PACKAGES
|
||||
pm_mkdir_s $PACKAGES
|
||||
fi
|
||||
fi
|
||||
|
||||
# Set the file name here so it's visible to the children
|
||||
if [ -z "$DONT_SCRUB_DISTFILES" -a -z "$FETCH_ONLY" \
|
||||
@ -2389,40 +2586,47 @@ if [ -z "$REPLACE_ORIGIN" ]; then
|
||||
esac
|
||||
|
||||
if [ -z "$portdir" -a -z "$upg_port" ]; then
|
||||
# Keep synched with code in multiport()
|
||||
glob_dirs=`find $pdb -maxdepth 1 -type d -name ${argv}\*`
|
||||
case "$glob_dirs" in
|
||||
*\*|'') echo '' ; no_valid_port ;;
|
||||
# Match a newline in multiple responses from find
|
||||
*'
|
||||
'*) multiport $glob_dirs ;;
|
||||
$pdb/*) upg_port=${glob_dirs#$pdb/} ;;
|
||||
*) echo '' ; no_valid_port ;;
|
||||
find_glob_dirs $argv
|
||||
case $? in
|
||||
1) echo '' ; no_valid_port ;;
|
||||
2) multiport $glob_dirs ;;
|
||||
0) upg_port=${glob_dirs#$pdb/} ;;
|
||||
esac
|
||||
unset glob_dirs
|
||||
fi
|
||||
else
|
||||
portdir="${1#$pd/}" ; portdir="${portdir%/}"
|
||||
[ -d "$pd/$portdir" ] || { echo ''
|
||||
echo "===>>> The first argument must be a directory in $pd"
|
||||
echo "===>>> The first argument to -o must be a directory in $pd"
|
||||
echo '' ; no_valid_port; }
|
||||
upg_port=${2#$pdb/} ; upg_port="${upg_port%/}"
|
||||
if [ -d "$pdb/$upg_port" ]; then
|
||||
ro_opd=`origin_from_pdb $upg_port` # Old port directory
|
||||
else
|
||||
ro_opd=${upg_port#$pd/} # Portupgrade syntax
|
||||
upg_port=`iport_from_origin $ro_opd`
|
||||
if [ -z "$upg_port" -o ! -d "$pdb/$upg_port" ]; then
|
||||
if grep -ql "DEPORIGIN:$ro_opd$" $pdb/*/+CONTENTS; then
|
||||
unset upg_port
|
||||
|
||||
arg2=${2#$pd/} ; arg2=${arg2#$pdb/} ; arg2=${arg2%/}
|
||||
|
||||
case "$arg2" in
|
||||
*/*) ro_opd=$arg2 ; upg_port=`iport_from_origin $ro_opd` ;;
|
||||
*) if [ -d "$pdb/$arg2" ]; then
|
||||
upg_port=$arg2
|
||||
else
|
||||
find_glob_dirs $arg2 && upg_port=${glob_dirs#$pdb/}
|
||||
unset glob_dirs
|
||||
fi
|
||||
[ -n "$upg_port" ] && ro_opd=`origin_from_pdb $upg_port`
|
||||
esac
|
||||
unset arg2
|
||||
|
||||
if [ -z "$upg_port" ]; then
|
||||
if grep -ql "DEPORIGIN:$ro_opd$" $pdb/*/+CONTENTS; then
|
||||
unset upg_port
|
||||
PM_MAKE_ARGS="-DFORCE_PKG_REGISTER $PM_MAKE_ARGS"
|
||||
else
|
||||
echo ''
|
||||
echo "===>>> The second argument can be a port in $pdb,"
|
||||
echo " or a port directory from $pd"
|
||||
echo '' ; no_valid_port
|
||||
fi
|
||||
else
|
||||
echo ''
|
||||
echo "===>>> The second argument to -o can be a port in $pdb,"
|
||||
echo " or a port directory from $pd"
|
||||
echo '' ; no_valid_port
|
||||
fi
|
||||
fi
|
||||
|
||||
PM_MAKE_ARGS="-DDISABLE_CONFLICTS $PM_MAKE_ARGS"
|
||||
fi
|
||||
|
||||
if [ -n "$upg_port" -a -z "$REPLACE_ORIGIN" ]; then
|
||||
@ -2439,7 +2643,7 @@ elif [ -z "$portdir" ]; then
|
||||
no_valid_port
|
||||
fi
|
||||
|
||||
if [ ! -d "$pd/$portdir" ]; then
|
||||
if [ ! -d "$pd/$portdir" -a -z "$PM_INDEX_ONLY" ]; then
|
||||
find_moved_port $portdir $upg_port || no_valid_port
|
||||
[ -n "$moved_npd" ] || no_valid_port
|
||||
[ -d "$pd/$moved_npd" ] || no_valid_port
|
||||
@ -2502,7 +2706,7 @@ fi
|
||||
# Should only be reached for multiport already built as a dependency
|
||||
case "$CONFIG_SEEN_LIST" in *:${portdir}:*) safe_exit ;; esac
|
||||
|
||||
pm_cd $pd/$portdir || no_valid_port
|
||||
[ -z "$PM_INDEX_ONLY" ] && { pm_cd $pd/$portdir || no_valid_port; }
|
||||
|
||||
if [ -z "$PM_DEPTH" ]; then
|
||||
PM_DEPTH="${upg_port:-$portdir} "
|
||||
@ -2522,6 +2726,8 @@ fi
|
||||
echo ''
|
||||
[ "$$" -eq "$PM_PARENT_PID" -a -n "$upg_port" ] &&
|
||||
echo "===>>> Currently installed version: $upg_port"
|
||||
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
echo "===>>> Port directory: $pd/$portdir"
|
||||
|
||||
check_state || {
|
||||
@ -2589,6 +2795,7 @@ dofetch () {
|
||||
echo ''
|
||||
fi
|
||||
fi
|
||||
fi # [ -z "$PM_INDEX_ONLY" ]
|
||||
|
||||
if [ -n "$CONFIG_ONLY" ]; then
|
||||
[ "$$" -eq "$PM_PARENT_PID" -a -n "$PM_BUILD_ONLY_LIST" ] &&
|
||||
@ -2663,7 +2870,7 @@ fi
|
||||
|
||||
[ -z "$PM_BUILDING" ] && export PM_BUILDING=pmbuildingmain
|
||||
|
||||
pm_cd_pd $portdir
|
||||
[ -z "$PM_INDEX_ONLY" ] && pm_cd_pd $portdir
|
||||
|
||||
if [ -n "$PM_BUILD_ONLY_LIST" ]; then
|
||||
case "$build_only_dl_g" in
|
||||
@ -2685,7 +2892,7 @@ if [ -z "$NO_DEP_UPDATES" ]; then
|
||||
echo "===>>> Starting check for all dependencies"
|
||||
dependency_check all-depends-list
|
||||
fi
|
||||
cd $pd/$portdir
|
||||
[ -z "$PM_INDEX_ONLY" ] && pm_cd_pd $portdir
|
||||
elif [ -z "$NO_RECURSIVE_CONFIG" -a "$$" -eq "$PM_PARENT_PID" ]; then
|
||||
echo "===>>> All dependencies are up to date"
|
||||
echo ''
|
||||
@ -2696,7 +2903,13 @@ if [ -n "$NO_ACTION" -a -z "$CONFIG_ONLY" ]; then
|
||||
safe_exit
|
||||
fi
|
||||
|
||||
[ -z "$new_port" ] && new_port=`pm_make -V PKGNAME`
|
||||
if [ -z "$new_port" ]; then
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
new_port=`pm_make -V PKGNAME`
|
||||
else
|
||||
new_port=`parse_index $portdir name`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$PM_PACKAGES" -o "$PM_PACKAGES_BUILD" = doing_build_only_dep ]; then
|
||||
fetch_package () {
|
||||
@ -2709,7 +2922,7 @@ fetch_package () {
|
||||
fi
|
||||
|
||||
if [ ! -d "$ppd" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] && echo "===>>> Creating $ppd"
|
||||
pm_sv Creating $ppd
|
||||
pm_mkdir_s $ppd
|
||||
fi
|
||||
|
||||
@ -2740,7 +2953,7 @@ fetch_package () {
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$PM_SU_VERBOSE" ] && echo "===>>> Fetching ${1}.tbz"
|
||||
pm_sv Fetching ${1}.tbz
|
||||
$PM_SU_CMD fetch $FETCH_ARGS -o $ppd ${sitepath}${1}.tbz 2>/dev/null || {
|
||||
pm_unlink_s ${ppd}/${1}.tbz;
|
||||
$PM_SU_CMD fetch $FETCH_ARGS -o $ppd ${sitepath}${1}.tbz 2>/dev/null; }
|
||||
@ -2774,14 +2987,21 @@ fetch_package () {
|
||||
echo "===>>> Checking package repository for latest available version"
|
||||
|
||||
if [ -n "$LOCAL_PACKAGEDIR" ]; then
|
||||
s=`pm_make -V LATEST_LINK`
|
||||
if [ -r "${LOCAL_PACKAGEDIR}/Latest/${s}.tbz" ]; then
|
||||
local_package=${LOCAL_PACKAGEDIR}/Latest/${s}.tbz
|
||||
latest_pv=`readlink ${LOCAL_PACKAGEDIR}/Latest/${s}.tbz`
|
||||
latest_pv=${latest_pv##*/}
|
||||
if [ -z "$PM_INDEX_ONLY" ]; then
|
||||
s=`pm_make -V LATEST_LINK`
|
||||
if [ -r "${LOCAL_PACKAGEDIR}/Latest/${s}.tbz" ]; then
|
||||
local_package=${LOCAL_PACKAGEDIR}/Latest/${s}.tbz
|
||||
latest_pv=`readlink ${LOCAL_PACKAGEDIR}/Latest/${s}.tbz`
|
||||
latest_pv=${latest_pv##*/}
|
||||
else
|
||||
[ -n "$PM_VERBOSE" ] &&
|
||||
echo "===>>> No local package for $new_port exists, attempting fetch"
|
||||
fi
|
||||
else
|
||||
[ -n "$PM_VERBOSE" ] &&
|
||||
echo "===>>> No local package for $new_port exists, attempting fetch"
|
||||
if [ -r "${LOCAL_PACKAGEDIR}/All/${new_port}.tbz" ]; then
|
||||
local_package=${LOCAL_PACKAGEDIR}/All/${new_port}.tbz
|
||||
latest_pv=${local_package##*/}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -2958,13 +3178,11 @@ if [ -n "$upg_port" ]; then
|
||||
done
|
||||
if [ -n "$temp" ]; then
|
||||
if [ ! -d "$LOCALBASE_COMPAT/pkg" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Creating $LOCALBASE_COMPAT/pkg for -w"
|
||||
pm_sv Creating $LOCALBASE_COMPAT/pkg for -w
|
||||
pm_mkdir_s $LOCALBASE_COMPAT/pkg
|
||||
fi
|
||||
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Copying old shared libraries for -w"
|
||||
pm_sv Copying old shared libraries for -w
|
||||
$PM_SU_CMD cp -p $temp $LOCALBASE_COMPAT/pkg/
|
||||
fi
|
||||
|
||||
@ -2978,22 +3196,20 @@ if [ -n "$upg_port" ]; then
|
||||
# Delete any existing versions of the new port
|
||||
iport=`iport_from_origin $portdir`
|
||||
if [ -n "$iport" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Running pkg_delete for $iport"
|
||||
pm_sv Running pkg_delete for $iport
|
||||
pm_pkg_delete_s -f $iport
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Running pkg_delete for $upg_port"
|
||||
pm_sv Running pkg_delete for $upg_port
|
||||
pm_pkg_delete_s -f $upg_port
|
||||
cd $pd/$portdir
|
||||
[ -z "$PM_INDEX_ONLY" ] && pm_cd_pd $portdir
|
||||
fi
|
||||
|
||||
if [ -z "$RECURSE_THOROUGH" -a -z "$NO_DEP_UPDATES" ]; then
|
||||
echo '' ; echo "===>>> Starting check for runtime dependencies"
|
||||
dependency_check run-depends-list
|
||||
cd $pd/$portdir
|
||||
[ -z "$PM_INDEX_ONLY" ] && pm_cd_pd $portdir
|
||||
fi
|
||||
|
||||
install_failed () {
|
||||
@ -3006,7 +3222,7 @@ install_failed () {
|
||||
}
|
||||
|
||||
if [ -z "$use_package" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] && echo "===>>> Running make install"
|
||||
pm_sv Running make install
|
||||
|
||||
if [ -n "$PM_SU_UNSET_PORT_LOG_ARGS" ]; then
|
||||
unset port_log_args
|
||||
@ -3047,8 +3263,7 @@ if [ -z "$temp" -a -d "$LOCALBASE_COMPAT/pkg" ]; then
|
||||
done
|
||||
|
||||
if [ -n "$files" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Removing old shared libraries, and running ldconfig"
|
||||
pm_sv Removing old shared libraries, and running ldconfig
|
||||
pm_rm_s $files
|
||||
$PM_SU_CMD /etc/rc.d/ldconfig start > /dev/null
|
||||
fi
|
||||
@ -3057,8 +3272,7 @@ fi
|
||||
|
||||
[ -z "$temp" ] && temp=`find $LOCALBASE_COMPAT/pkg -type d -empty 2>/dev/null`
|
||||
if [ -d "$temp" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Deleting the empty $LOCALBASE_COMPAT/pkg"
|
||||
pm_sv Deleting the empty $LOCALBASE_COMPAT/pkg
|
||||
pm_rmdir_s $temp
|
||||
fi
|
||||
unset temp
|
||||
@ -3074,8 +3288,7 @@ if [ -n "$distfiles" ]; then
|
||||
dist_list=`pm_make_b -V OPTIONSFILE`
|
||||
dist_list="${dist_list%options}distfiles"
|
||||
if [ ! -d "${dist_list%/distfiles}" ]; then
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Creating ${dist_list%/distfiles}"
|
||||
pm_sv Creating ${dist_list%/distfiles}
|
||||
pm_mkdir_s ${dist_list%/distfiles}
|
||||
fi
|
||||
|
||||
@ -3101,8 +3314,7 @@ if [ -n "$distfiles" ]; then
|
||||
echo "${ds}$file" >> $DI_FILES
|
||||
done
|
||||
|
||||
[ -n "$PM_SU_VERBOSE" ] &&
|
||||
echo "===>>> Installing $dist_list"
|
||||
pm_sv Installing $dist_list
|
||||
pm_install_s $dist_list_temp $dist_list
|
||||
pm_unlink $dist_list_temp ; unset ds dist_list_temp
|
||||
fi
|
||||
@ -3128,7 +3340,8 @@ fi
|
||||
|
||||
if [ -z "$use_package" ]; then
|
||||
[ -z "$DONT_POST_CLEAN" ] && {
|
||||
pm_make clean NOCLEANDEPENDS=ncd2 ; echo ''; }
|
||||
pm_sv Running \'make clean\'
|
||||
pm_make_s clean NOCLEANDEPENDS=ncd2 ; echo ''; }
|
||||
fi
|
||||
|
||||
check_dependency_files $portdir $new_port
|
||||
|
Loading…
Reference in New Issue
Block a user