svn commit: r200192 - user/dougb/portmaster

Doug Barton dougb at FreeBSD.org
Sun Dec 6 23:28:49 UTC 2009


Author: dougb
Date: Sun Dec  6 23:28:49 2009
New Revision: 200192
URL: http://svn.freebsd.org/changeset/base/200192

Log:
  Don't say that we're buildin a port when we're using packages
  
  Don't rely on -v to print the message about checking the package repo
  since that can take a long time

Modified:
  user/dougb/portmaster/portmaster
  user/dougb/portmaster/portmaster.8

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Sun Dec  6 23:27:24 2009	(r200191)
+++ user/dougb/portmaster/portmaster	Sun Dec  6 23:28:49 2009	(r200192)
@@ -1829,6 +1829,16 @@ create_master_rb_list () {
 	[ -n "$MASTER_RB_LIST" ] && export MASTER_RB_LIST=" $MASTER_RB_LIST"
 }
 
+pca () {
+	if [ "$PM_PACKAGES" = only ]; then
+		echo install
+	elif [ -n "$PM_PACKAGES" ]; then
+		echo 'build and/or install'
+	else
+		echo build
+	fi
+}
+
 multiport () {
 	# Global
 	PM_MULTI_PORTS=':' ; PM_MULTI_BUILT=':'
@@ -1893,7 +1903,7 @@ multiport () {
 		check_fetch_only
 		unset CONFIG_SEEN_LIST CONFIG_ONLY
 		echo ''
-		echo "===>>> Starting build for multiple ports <<<==="
+		echo "===>>> Starting `pca` for multiple ports <<<==="
 		echo ''
 
 		if [ -n "$PM_BUILD_ONLY_LIST" ]; then
@@ -2050,7 +2060,7 @@ all_config () {
 
 		unset CONFIG_SEEN_LIST CONFIG_ONLY
 		echo ''
-		echo "===>>> Starting build for ports that need updating <<<==="
+		echo "===>>> Starting `pca` for ports that need updating <<<==="
 		echo ''
 	fi
 
@@ -2366,7 +2376,7 @@ if [ -n "$CONFIG_ONLY" ]; then
 
 	check_fetch_only
 	unset CONFIG_SEEN_LIST CONFIG_ONLY
-	echo "===>>> Starting build for $portdir <<<==="
+	echo "===>>> Starting `pca` for $portdir <<<==="
 	echo ''
 fi
 
@@ -2481,7 +2491,6 @@ fetch_package () {
 
 	sitepath="${sitepath%/}/${portdir%/*}/"
 
-	[ -n "$PM_VERBOSE" ] &&
 	echo "===>>> Checking package repository for latest available version"
 
 	if [ -n "$LOCAL_PACKAGEDIR" ]; then

Modified: user/dougb/portmaster/portmaster.8
==============================================================================
--- user/dougb/portmaster/portmaster.8	Sun Dec  6 23:27:24 2009	(r200191)
+++ user/dougb/portmaster/portmaster.8	Sun Dec  6 23:28:49 2009	(r200192)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 15, 2009
+.Dd December 1, 2009
 .Dt PORTMASTER 8
 .Os
 .Sh NAME
@@ -33,6 +33,11 @@
 .Sh SYNOPSIS
 Common Flags:
 .Op Fl -force-config CGHgntvw [B|b] [f|i] [D|d]
+.Op Fl [--packages|--packages-only] [-P|-PP] | [--packages-build]
+.Op Fl -packages-if-newer
+.Op Fl -delete-build-only
+.Op Fl -always-fetch
+.Op Fl -local-packagedir=<path>
 .Op Fl m Ar arguments for make
 .Op Fl x Ar glob pattern to exclude from building
 .Nm
@@ -70,6 +75,23 @@ and/or multiple globs from /var/db/pkg
 .Op Common Flags
 .Fl a
 .Nm
+.Fl -delete-build-only
+.Nm
+.Op Fl -packages-if-newer
+.Op Fl -always-fetch
+.Op Fl -local-packagedir=<path>
+.Fl P|--packages
+.Nm
+.Op Fl -packages-if-newer
+.Op Fl -always-fetch
+.Op Fl -local-packagedir=<path>
+.Fl PP|--packages-only
+.Nm
+.Op Fl -packages-if-newer
+.Op Fl -always-fetch
+.Op Fl -local-packagedir=<path>
+.Fl -packages-build
+.Nm
 .Fl [l|L]
 .Nm
 .Op Fl b [D|d]
@@ -109,8 +131,8 @@ Rather it uses the existing ports infras
 including what is located in
 .Pa /var/db/pkg .
 The focus of this tool is to keep the dependency
-tracking information for your ports up to date,
-which allows you to update a specific port without
+tracking information for your ports up to date.
+This allows you to update a specific port without
 having to update all of the ports
 .Qq above
 it.
@@ -136,6 +158,9 @@ option.
 It will then start building all ports that need
 updating.
 While recursing through dependencies,
+if you are not using any of the
+.Fl -packages*
+options,
 a 'make checksum' process will be launched
 in the background to either verify that the
 correct distfiles are available,
@@ -146,7 +171,7 @@ with ^C, an attempt will be made to kill
 the child processes started for this purpose.
 .Pp
 If the recursion through the ports for 'make
-config' does not find a port that needs updating,
+config' does not find a port that needs updating
 the dependency check step will be skipped prior
 to building the port specified on the command line.
 In addition to this optimization,
@@ -176,6 +201,17 @@ and if you have installed an alternate v
 that is required by the port you are building,
 it will be used in place of the default dependency.
 .Pp
+There are a number of
+.Fl -packages*
+options available to save the time that would normally
+be spent building the port(s).
+Users interested in a reasonable balance between speed of
+installation and maximum performance should consider the 
+.Fl -packages-build
+option, perhaps combined with the
+.Fl -delete-build-only
+option.
+.Pp
 If there is no
 .Fl B
 option specified when updating an existing port,
@@ -234,17 +270,25 @@ any
 .Pa pkg-message
 files that were installed,
 and a summary of the work performed will be displayed.
+If the
+.Fl -delete-build-only
+option is in use, those packages that were installed during
+the current run of
+.Nm
+AND were only ever listed as build dependencies during this
+run will be deleted.
 .Pp
 If something goes wrong during the process
 (e.g., a port build fails, a port is marked BROKEN)
 .Nm
 will report any work done successfully as described above,
 then exit.
+.Pp
 The question is often asked,
 .Dq Why is it not possible to proceed with the ports that do not have errors?
 The answer is that (unfortunately)
 .Nm
-is not omniscient, and therefore cannot guess what resolution the
+is not omniscient, and cannot guess what resolution the
 user would like to have for this problem.
 Manual intervention is therefore required.
 Assuming that the failure occurred after the config phase has ended
@@ -256,7 +300,7 @@ option to the command line to skip the c
 The options are as follows:
 .Bl -tag -width F1
 .It Fl -force-config
-run 'make config' for all ports (must be the first option)
+run 'make config' for all ports
 .It Fl B
 prevents creation of the backup package for the installed port
 .It Fl C
@@ -307,13 +351,10 @@ If a port is not already installed the e
 be run against the directory name from
 .Pa /usr/ports .
 .It Fl p Ar port directory in /usr/ports
-specify the full path to a port directory.
-This option is generally not necessary and may be
-removed in future versions.
+This option has been deprecated.
 .It Fl -show-work
 show what dependent ports are, and are not installed (implies
 .Fl t ) .
-This flag must come first on the command line.
 .It Fl o Ar <new port dir in /usr/ports> <installed port>
 replace the installed port with a port from a different origin
 .It [-R] Fl r Ar name/glob of port in /var/db/pkg
@@ -326,6 +367,23 @@ or
 options to skip ports updated on a previous run.
 .It Fl a
 check all ports, update as necessary
+.It Fl -delete-build-only
+delete ports that are build-only dependencies after a successful run,
+only if installed this run
+.It Fl P|--packages
+use packages, but build port if not available
+.It Fl PP|--packages-only
+fail if no package is available
+.It Fl -packages-build
+use packages for all build dependencies
+.It Fl -packages-if-newer
+use package if newer than installed even if the package is not
+the latest according to the ports tree
+.It Fl -always-fetch
+fetch package even if it already exists locally
+.It Fl -local-packagedir=<path>
+where local packages can be found,
+will fall back to fetching if no local version exists
 .It Fl l
 list all installed ports by category
 .It Fl L


More information about the svn-src-user mailing list