svn commit: r200244 - user/dougb/portmaster
Doug Barton
dougb at FreeBSD.org
Tue Dec 8 01:29:53 UTC 2009
Author: dougb
Date: Tue Dec 8 01:29:52 2009
New Revision: 200244
URL: http://svn.freebsd.org/changeset/base/200244
Log:
1. Make the output of --version more clear to everyone who isn't me :)
2. If DISTDIR is its own zfs filesystem them the code to delete empty
DIST_SUBDIRs can cause problems, so special case it in its own function.
3. Don't unset the packages_init function till we're actually done using it
4. If you are using -g plus one of the --packages* options then creation
of the new package will fail since there is nothing for 'make package'
to work with. So update backup_package() to a more generic form called
pm_pkg_create and use that for both making backup packages and making
a new local package from an installed package.
5. In order to facilitate 4, update the dependency information in an
installed package's +CONTENTS file before creating the new package.
6. Remove some (spurious?) white space
Modified:
user/dougb/portmaster/portmaster
Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster Tue Dec 8 01:07:44 2009 (r200243)
+++ user/dougb/portmaster/portmaster Tue Dec 8 01:29:52 2009 (r200244)
@@ -50,7 +50,7 @@ version () {
echo ''
[ "${cvs#$}" != 'FreeBSD$' ] &&
- { echo "===>>> FreeBSD version $cvs" ; return 0; }
+ { echo "===>>> Version $cvs" ; return 0; }
echo "===>>> Development version $rcs"
}
@@ -453,7 +453,6 @@ done
set -- $newopts
unset var newopts
-unset -f packages_init
#=============== Begin functions relevant to --features and main ===============
@@ -745,6 +744,13 @@ ports_by_category () {
done
}
+delete_empty_dist_subdirs () {
+ # Get back to somewhere safe so we do not
+ # delete our CWD out from under ourselves
+ pm_cd $distdir || fail "Cannot cd into $distdir"
+ find -d $distdir -type d \( -empty -and ! -path \*\.zfs/\* \) -delete
+}
+
#=============== End functions relevant to --features and main ===============
#=============== Begin code relevant only to --features ===============
@@ -771,7 +777,7 @@ if [ -n "$CLEAN_DISTFILES" ]; then
fi
done
- find -d $distdir -type d -empty -delete
+ delete_empty_dist_subdirs
safe_exit
fi
@@ -936,6 +942,7 @@ while getopts 'BCDFGHKLPRabde:fghilm:nop
esac
done
shift $(( $OPTIND - 1 ))
+unset -f packages_init
[ -n "$PM_EXCL" ] && export PM_EXCL
@@ -1112,20 +1119,42 @@ init_packages () {
export packages pbu
}
-backup_package () {
- echo "===>>> Creating a backup package for old version $1"
- pm_cd $pbu || fail "Cannot cd into $pbu to create a package"
- if $PM_SU_CMD pkg_create -b $1; then
- if [ -n "$BACKUP" ]; then
- echo " ===>>> Package saved to $pbu"
- echo ''
- else
- local pkg ; pkg=`echo $1.*`
- NB_DELETE="${NB_DELETE}${pkg} "
+pm_pkg_create () {
+ local pkgdir
+
+ if [ "$1" = "${packages}" ]; then
+ pm_mkdir_s ${1}/All ${1}/Latest ${1}/${portdir%/*}
+ pkgdir=${packages}/All
+ echo "===>>> Creating a package for new version $2"
+ else
+ pkgdir=$1
+ echo "===>>> Creating a backup package for old version $2"
+ fi
+
+ pm_cd $pkgdir || fail "Cannot cd into $pkgdir to create a package"
+ if $PM_SU_CMD pkg_create -b $2; then
+ if [ "$1" = "$pbu" ]; then
+ if [ -n "$BACKUP" ]; then
+ echo " ===>>> Package saved to $1" ; echo ''
+ else
+ local pkg ; pkg=`echo $2.*`
+ NB_DELETE="${NB_DELETE}${pkg} "
+ fi
+ elif [ "$1" = "${packages}" ]; then
+ local pkg latest_link
+
+ pkg=`echo $2.*`
+ pm_cd $pd/$portdir
+ latest_link=`pm_make -V LATEST_LINK`
+ pm_cd ${1}/Latest
+ ln -sf ../All/$pkg ${latest_link}.tbz
+ cd ${1}/${portdir%/*}
+ ln -sf ../All/$pkg $pkg
+ echo " ===>>> Package saved to ${1}/All" ; echo ''
fi
else
echo ''
- echo "===>>> Backup package creation failed for ${1}!"
+ echo "===>>> Package creation failed for ${2}!"
echo ''
echo "===>>> Ignore this error [i]"
echo "===>>> Abort [a]"
@@ -1133,7 +1162,7 @@ backup_package () {
echo -n "===>>> How would you like to proceed? [i] "
local answer ; read answer
case "$answer" in
- a) fail "Backup package creation failed for $1" ;;
+ a) fail "Package creation failed for $2" ;;
esac
fi
}
@@ -1378,12 +1407,7 @@ delete_all_distfiles () {
[ -n "$distfiles" ] && eval rm -f $distfiles
fi
delete_stale_distfiles $origin
-
- # Get back to somewhere safe so we do not
- # delete our CWD out from under ourselves
- pm_cd $distdir || fail "Cannot cd into $distdir"
-
- find -d $distdir -type d -empty -delete
+ delete_empty_dist_subdirs
}
#=============== End functions for getopts features and main ===============
@@ -1461,7 +1485,7 @@ if [ -n "$EXPUNGE" ]; then
esac
fi
- [ -n "$BACKUP" ] && { init_packages ; backup_package $EXPUNGE; }
+ [ -n "$BACKUP" ] && { init_packages ; pm_pkg_create $pbu $EXPUNGE; }
[ -z "$DONT_SCRUB_DISTFILES" ] && delete_all_distfiles $origin
delete_dist_list
@@ -1502,7 +1526,7 @@ if [ -n "$CLEAN_STALE" ]; then
case "$answer" in
[yY]) if [ -n "$BACKUP" ]; then
[ -z "$packages" ] && init_packages
- backup_package $iport
+ pm_pkg_create $pbu $iport
fi
[ -z "$DONT_SCRUB_DISTFILES" ] &&
@@ -2657,7 +2681,7 @@ if [ -n "$upg_port" ]; then
UPGRADE_PORT_VER=`echo $UPGRADE_PORT | sed 's#.*-\(.*\)#\1#'`
export UPGRADE_PORT UPGRADE_PORT_VER
- [ -z "$NO_BACKUP" ] && backup_package $upg_port
+ [ -z "$NO_BACKUP" ] && pm_pkg_create $pbu $upg_port
if [ -n "$SAVE_SHARED" ]; then
ldconfig_out=`pm_mktemp ldconfig`
@@ -2718,7 +2742,6 @@ install_failed () {
fail "Installation of $1 ($portdir) failed"
}
-echo ''
if [ -z "$use_package" ]; then
[ -n "$PM_SU_VERBOSE" ] && echo "===>>> Running make install"
@@ -2816,20 +2839,28 @@ if [ -n "$distfiles" ]; then
pm_unlink $dist_list_temp ; unset ds dist_list_temp
fi
+if [ -n "$use_package" ]; then
+ 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
+ echo ''
+ fi
+fi
+
if [ -n "$MAKE_PACKAGE" ]; then
- echo "===>>> Creating a package for new version $new_port"
- pm_make_s package >/dev/null ||
- fail "Package creation of $new_port failed"
- echo " ===>>> Package saved to $packages/All" ; echo ''
+ 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"
+ echo " ===>>> Package saved to $packages/All" ; echo ''
+ else
+ pm_pkg_create $packages $new_port
+ fi
fi
if [ -z "$use_package" ]; then
[ -z "$DONT_POST_CLEAN" ] && {
pm_make clean NOCLEANDEPENDS=ncd2 ; echo ''; }
-elif grep -q DEPORIGIN $pdb/$new_port/+CONTENTS; then
-echo "===>>> Updating dependencies for $new_port to match installed versions"
- update_contents $pdb/$new_port/+CONTENTS
- echo ''
fi
check_dependency_files $portdir $new_port
More information about the svn-src-user
mailing list