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