[27616] branches/release_1_5/base

source_changes at macosforge.org source_changes at macosforge.org
Fri Aug 10 13:49:59 PDT 2007


Revision: 27616
          http://trac.macosforge.org/projects/macports/changeset/27616
Author:   jmpp at macports.org
Date:     2007-08-10 13:49:57 -0700 (Fri, 10 Aug 2007)

Log Message:
-----------
Merged revisions 26610-26638,26640-26642,26644-26681,26683-26708,26712-26718,26720,26724-26729,26732-26736,26738-26752,26754-26764,26766-26803,26805,26807-26808,26810,26815-26828,26830-26841,26843-26849,26852-26862,26867-26869,26871-27510 via svnmerge from 
http://svn.macports.org/repository/macports/trunk/base

........
  r26610 | landonf at macports.org | 2007-06-30 02:42:13 -0400 (Sat, 30 Jun 2007) | 2 lines
  
  The portfile subinterpreter should not have access to exit
........
  r26655 | afb at macports.org | 2007-07-01 16:39:18 -0400 (Sun, 01 Jul 2007) | 1 line
  
  placeholder for noarch
........
  r26693 | eridius at macports.org | 2007-07-04 02:16:19 -0400 (Wed, 04 Jul 2007) | 1 line
  
  Commit patch for #12224 - provide ${os.major} variable
........
  r26694 | eridius at macports.org | 2007-07-04 02:17:53 -0400 (Wed, 04 Jul 2007) | 1 line
  
  Add ChangeLog entry for r26693
........
  r26744 | ryandesign at macports.org | 2007-07-05 17:11:52 -0400 (Thu, 05 Jul 2007) | 1 line
  
  Fix typo from r26694
........
  r26903 | jmpp at macports.org | 2007-07-11 02:43:22 -0400 (Wed, 11 Jul 2007) | 6 lines
  
  
  Removing long since dead OpenDarwin mirrors (do I need to also look somewhere else?)
  Please complain if we should keep these around for any reason I cannot think of at the moment,
  otherwise I'll merge this into the release branch up for the next release.
........
  r26921 | sfiera at macports.org | 2007-07-11 14:35:27 -0400 (Wed, 11 Jul 2007) | 4 lines
  
  Changes to upgrade; a port's version and revision need to be considered
  separately, for cases where the old and new versions consist of different
  numbers of segments, i.e. openssl 0.9.8_2 and 0.9.8e_0 (true story!)
........
  r26937 | sfiera at macports.org | 2007-07-12 10:47:31 -0400 (Thu, 12 Jul 2007) | 2 lines
  
  Missed an open-brace
........
  r26940 | boeyms at macports.org | 2007-07-12 13:37:04 -0400 (Thu, 12 Jul 2007) | 2 lines
  
  Correct examples and add description to info on svn.tag.
........
  r26942 | boeyms at macports.org | 2007-07-12 14:13:34 -0400 (Thu, 12 Jul 2007) | 2 lines
  
  Document filespath variable in portfile(7).
........
  r26976 | sfiera at macports.org | 2007-07-14 17:35:24 -0400 (Sat, 14 Jul 2007) | 2 lines
  
  Moved port.1 to base/doc, replaced some stray references to old ports.conf
........
  r27018 | mww at macports.org | 2007-07-15 18:06:34 -0400 (Sun, 15 Jul 2007) | 5 lines
  
  add new commands for selecting compilers:
      * configure.cc, configure.cxx, .. work just like configure.cflags (no default values)
      * configure.compiler lets you select a whole compiler collection; this will preset most compiler variables (configure.cc, ..) with their compiler frontend of that compiler version (currently can do gcc-3.3, gcc-4.0, macports-gcc-4.[0-3])
........
  r27021 | mww at macports.org | 2007-07-15 18:25:59 -0400 (Sun, 15 Jul 2007) | 2 lines
  
  document new configure options for selecting compilers (for configuration)
........
  r27022 | mww at macports.org | 2007-07-15 18:48:15 -0400 (Sun, 15 Jul 2007) | 2 lines
  
  add missing adding of the fortran compiler flags, correct typo
........
  r27024 | ryandesign at macports.org | 2007-07-15 19:07:05 -0400 (Sun, 15 Jul 2007) | 1 line
  
  fix typo in debug message
........
  r27025 | mww at macports.org | 2007-07-15 19:19:45 -0400 (Sun, 15 Jul 2007) | 2 lines
  
  add warning that configure.compiler wont add any dependencies
........
  r27026 | mww at macports.org | 2007-07-15 20:06:31 -0400 (Sun, 15 Jul 2007) | 2 lines
  
  update changelog: added configure options for compiler selection
........
  r27043 | jmpp at macports.org | 2007-07-16 13:59:44 -0400 (Mon, 16 Jul 2007) | 6 lines
  
  
  Clarify instructions to replicate MacPorts rsync repositories on 3rd party servers,
  emphasazing both base/portmgr/mprsyncup & base/portmgr/rsync.repos should be kept in
  close sync among themselves and with their "official" copies in our svn.
........
  r27044 | jmpp at macports.org | 2007-07-16 14:06:55 -0400 (Mon, 16 Jul 2007) | 1 line
  
  Typos-=2;
........
  r27053 | mww at macports.org | 2007-07-16 17:42:16 -0400 (Mon, 16 Jul 2007) | 2 lines
  
  add configure.FORTRAN variable to globals of configure_main (too)
........
  r27065 | jmpp at macports.org | 2007-07-17 02:54:08 -0400 (Tue, 17 Jul 2007) | 5 lines
  
  
  No matter how many times you look at it, you'll always miss something until someone else takes a look!
  Thanks to Mark Duling for pointing out ${REPOROOT}'s bogusness, it's ${RSYNCROOT}!
........
  r27079 | ryandesign at macports.org | 2007-07-17 21:15:16 -0400 (Tue, 17 Jul 2007) | 1 line
  
  Fix double de-escaping of livecheck.regex inadvertently introduced in r26041; fix provided by Kevin Ballard.
........
  r27080 | ryandesign at macports.org | 2007-07-17 21:16:35 -0400 (Tue, 17 Jul 2007) | 1 line
  
  Fix typo in comment
........
  r27110 | dluke at macports.org | 2007-07-19 16:00:23 -0400 (Thu, 19 Jul 2007) | 2 lines
  
  Make the 'new' target as well, so we generate the new guide.
........
  r27122 | jmpp at macports.org | 2007-07-19 22:21:20 -0400 (Thu, 19 Jul 2007) | 4 lines
  
  
  Add Mark to the list of recipients in case of guide regen failure, he should naturally be here.
........
  r27127 | eridius at macports.org | 2007-07-20 09:10:23 -0400 (Fri, 20 Jul 2007) | 2 lines
  
  Fix version comparison to properly detect 8.4.7 and later
  Patch submitted by sfiera at macports.org, fixes ticket #12311
........
  r27140 | jmpp at macports.org | 2007-07-21 01:38:51 -0400 (Sat, 21 Jul 2007) | 1 line
  
  There's no 'depends' action.
........
  r27199 | mww at macports.org | 2007-07-24 05:09:43 -0400 (Tue, 24 Jul 2007) | 4 lines
  
  add experimental code for testing for mtree violations (only some currently);
  the test can be overriden by "destroot.violate_mtree yes"
........
  r27201 | mww at macports.org | 2007-07-24 05:26:13 -0400 (Tue, 24 Jul 2007) | 2 lines
  
  add destroot.violate_mtree documentation
........
  r27202 | mww at macports.org | 2007-07-24 05:28:07 -0400 (Tue, 24 Jul 2007) | 2 lines
  
  add violation-tests
........
  r27295 | sfiera at macports.org | 2007-07-27 16:20:41 -0400 (Fri, 27 Jul 2007) | 4 lines
  
  Breaking out LIBS into separate variables
  
  In this way, we can avoid linking in unnecessary libraries to our shlibs.
........
  r27296 | sfiera at macports.org | 2007-07-27 16:20:48 -0400 (Fri, 27 Jul 2007) | 2 lines
  
  Fixed readline, added STLIB_LD
........
  r27297 | sfiera at macports.org | 2007-07-27 16:20:54 -0400 (Fri, 27 Jul 2007) | 5 lines
  
  Additionally allow CFLAGS to be set separately for packages
  
  This currently seems to be a no-op, as there are no special flags recorded for
  any lib but curl, and curl's CFLAGS are empty for me. But, it's good planning.
........
  r27313 | jmpp at macports.org | 2007-07-28 17:08:46 -0400 (Sat, 28 Jul 2007) | 12 lines
  
  
  Read the version number into the autoconf system through the esyscmd command,
  finally eliminating the need to define the same thing in two places (and the
  unavoidable discrepancy when one of them is forgotten).
  
  Now that this is in place I hope eridius will finally implement a new MacPorts
  versioning system for 'port version' and 'port selfupdate' using rpm-vercomp
  and standard x.y.z version numbers, since he said back in 'them days, iirc,
  that reading this number into autoconf was necessary (or was that just an
  added bonus? ;-).
........
  r27379 | ryandesign at macports.org | 2007-07-31 21:55:19 -0400 (Tue, 31 Jul 2007) | 1 line
  
  Always print the livecheck regex in debug mode, not only when it fails. Remove unnecessary duplicate printout of livecheck URL when it fails.
........
  r27405 | jmpp at macports.org | 2007-08-02 12:51:45 -0400 (Thu, 02 Aug 2007) | 1 line
  
  Mac OS X naming convention.
........
  r27415 | jmpp at macports.org | 2007-08-02 23:15:11 -0400 (Thu, 02 Aug 2007) | 28 lines
  
  
  Sizeable facelift to the PortIndex2MySQL.tcl script. Highlights:
  
   * Bring it up to date wrt the macports1.0 api and into the new namespace;
   * Make it self-contained, writing its sql output to a flat file directly
     and then piping its contents to a proper database command (like mysql5(1));
     this eliminates both the need to load the mysqltcl library or, the other
     case, wrap the tcl code with a shell script to do all the needed redirection
     to get the information into the db;
   * Get rid of a lot of now unnecessary code due to the rework above;
   * Provide abstraction variables to easily adapt the script to any scenario
     and a proc to read the db password from a file that must exist (this bit
     could definitely use some improvements, like for passwordless db's);
   * Add build and run dependencies for a given port as sql statements into
     the db (previously only lib deps were being recorded);
   * For fields with multiple and hierarchycal values, like categories,
     index them sequentially up from 1 (1 being topmost), rather than 1 for
     the first one (most important) and 0 for the rest (flat second place)
     as it was being done;
   * Use procs in the macports1.0 package, like ui_error;
   * Provide a Makefile (currently unhooked from MacPorts build system) to
     tie the script into an already configured MacPorts installation.
  
  So, in a nutshell, the script now works to generate valid SQL statements for our ports tree,
  we can extend it to do anything else we want and then find a client that will read such db
  and thus put it to good use ;-) (old ports.php page, here I come!)
........
  r27510 | jmpp at macports.org | 2007-08-06 03:19:46 -0400 (Mon, 06 Aug 2007) | 1 line
  
  Comments++ && Grammar++;
........

Modified Paths:
--------------
    branches/release_1_5/base/ChangeLog
    branches/release_1_5/base/Mk/macports.autoconf.mk.in
    branches/release_1_5/base/Mk/macports.tea.mk
    branches/release_1_5/base/config/dp_version
    branches/release_1_5/base/config/mp_version
    branches/release_1_5/base/configure
    branches/release_1_5/base/configure.ac
    branches/release_1_5/base/doc/Makefile
    branches/release_1_5/base/doc/portfile.7
    branches/release_1_5/base/doc/portgroup.7
    branches/release_1_5/base/portmgr/GuideRegen.sh
    branches/release_1_5/base/portmgr/mprsyncup
    branches/release_1_5/base/portmgr/packaging/PortIndex2MySQL.tcl
    branches/release_1_5/base/portmgr/rsync.repos
    branches/release_1_5/base/src/macports1.0/macports.tcl
    branches/release_1_5/base/src/macports1.0/macports_fastload.tcl.in
    branches/release_1_5/base/src/package1.0/portrpm.tcl
    branches/release_1_5/base/src/package1.0/portsrpm.tcl
    branches/release_1_5/base/src/pextlib1.0/Makefile
    branches/release_1_5/base/src/port/Makefile
    branches/release_1_5/base/src/port/port.tcl
    branches/release_1_5/base/src/port1.0/portconfigure.tcl
    branches/release_1_5/base/src/port1.0/portdestroot.tcl
    branches/release_1_5/base/src/port1.0/portlivecheck.tcl
    branches/release_1_5/base/src/port1.0/portmain.tcl
    branches/release_1_5/base/src/port1.0/portutil.tcl
    branches/release_1_5/base/src/port1.0/resources/fetch/mirror_sites.tcl

Added Paths:
-----------
    branches/release_1_5/base/doc/port.1
    branches/release_1_5/base/portmgr/packaging/Makefile

Removed Paths:
-------------
    branches/release_1_5/base/src/port/port.1

Property Changed:
----------------
    branches/release_1_5/base/


Property changes on: branches/release_1_5/base
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk/base:1-26609,26611-26654,26656-26681,26683-26692,26695-26743,26745-26803,26805,26807-26812,26814-26864,26867-26870
   + /trunk/base:1-26681,26683-26803,26805,26807-26812,26814-26864,26867-27510

Modified: branches/release_1_5/base/ChangeLog
===================================================================
--- branches/release_1_5/base/ChangeLog	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/ChangeLog	2007-08-10 20:49:57 UTC (rev 27616)
@@ -4,6 +4,15 @@
 ###
 
 
+Unreleased:
+
+    - New tests for violations of common directory structure (and option to override them for special cases)
+
+    - Added new options to configure for selecting compiler(s)
+
+    - Added new variable ${os.major} that contains the Darwin major version (eridius r26693, ticket #12224).
+
+
 Release 1.5.0 (09-July-2007 tagged at r26818 by jmpp):
 
     - Many documentation updates and improvements, mostly thanks to Maun Suang and Brian

Modified: branches/release_1_5/base/Mk/macports.autoconf.mk.in
===================================================================
--- branches/release_1_5/base/Mk/macports.autoconf.mk.in	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/Mk/macports.autoconf.mk.in	2007-08-10 20:49:57 UTC (rev 27616)
@@ -5,8 +5,8 @@
 VPATH			= @srcdir@
 
 CC			= @CC@
-CFLAGS			= @CFLAGS@ $(CFLAGS_QUICHEEATERS) $(CFLAGS_WERROR) $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE) $(CPPFLAGS) $(CFLAGS_LIBCURL)
-OBJCFLAGS		= @OBJCFLAGS@ $(CFLAGS_WERROR) ${CFLAGS_DEBUG}  $(CFLAGS_OPTIMIZE) $(CPPFLAGS) $(CFLAGS_LIBCURL)
+CFLAGS			= @CFLAGS@ $(CFLAGS_QUICHEEATERS) $(CFLAGS_WERROR) $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE) $(CPPFLAGS)
+OBJCFLAGS		= @OBJCFLAGS@ $(CFLAGS_WERROR) ${CFLAGS_DEBUG} $(CFLAGS_OPTIMIZE) $(CPPFLAGS)
 CPPFLAGS		= @CPPFLAGS@ @DEFS@ @INCLUDES@ @TCL_INCLUDES@
 TCL_DEFS		= @TCL_DEFS@
 SHLIB_CFLAGS		= @SHLIB_CFLAGS@
@@ -14,8 +14,12 @@
 CFLAGS_OPTIMIZE		= @CFLAGS_OPTIMIZE@
 CFLAGS_QUICHEEATERS	= @CFLAGS_QUICHEEATERS@
 CFLAGS_WERROR		= @CFLAGS_WERROR@
-CFLAGS_LIBCURL		= @CFLAGS_LIBCURL@
 
+READLINE_CFLAGS		=
+MD5_CFLAGS		=
+SQLITE3_CFLAGS		=
+CURL_CFLAGS		= @CFLAGS_LIBCURL@
+
 OBJC_RUNTIME		= @OBJC_RUNTIME@
 OBJC_RUNTIME_FLAGS	= @OBJC_RUNTIME_FLAGS@
 OBJC_LIBS		= @OBJC_LIBS@
@@ -27,15 +31,17 @@
 
 TCL_CC			= @TCL_CC@
 SHLIB_LD		= @SHLIB_LD@
-LDFLAGS_LIBCURL		= @LDFLAGS_LIBCURL@
-LDFLAGS			=  -L/usr/local/lib @LDFLAGS@ $(LDFLAGS_LIBCURL)
+STLIB_LD		= @STLIB_LD@
+LDFLAGS			= -L/usr/local/lib @LDFLAGS@
 SHLIB_LDFLAGS		= @SHLIB_LDFLAGS@ ${LDFLAGS}
 SHLIB_SUFFIX		= @SHLIB_SUFFIX@
 TCL_STUB_LIB_SPEC	= @TCL_STUB_LIB_SPEC@
 
 LIBS			= @LIBS@
+READLINE_LIBS		= @READLINE_LIBS@
 MD5_LIBS		= @MD5_LIBS@
 SQLITE3_LIBS		= @SQLITE3_LIBS@
+CURL_LIBS		= @LDFLAGS_LIBCURL@
 INSTALL			= @INSTALL@
 MTREE			= @MTREE@
 LN_S			= @LN_S@

Modified: branches/release_1_5/base/Mk/macports.tea.mk
===================================================================
--- branches/release_1_5/base/Mk/macports.tea.mk	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/Mk/macports.tea.mk	2007-08-10 20:49:57 UTC (rev 27616)
@@ -7,7 +7,7 @@
 	${CC} -c -DUSE_TCL_STUBS ${CFLAGS} ${TCL_DEFS} ${SHLIB_CFLAGS} $< -o $@
 
 $(SHLIB_NAME):: ${OBJS}
-	${SHLIB_LD} ${OBJS} -o ${SHLIB_NAME} ${TCL_STUB_LIB_SPEC} ${SHLIB_LDFLAGS} ${LIBS} ${MD5_LIBS} ${SQLITE3_LIBS}
+	${SHLIB_LD} ${OBJS} -o ${SHLIB_NAME} ${TCL_STUB_LIB_SPEC} ${SHLIB_LDFLAGS} ${LIBS}
 
 all:: ${SHLIB_NAME}
 

Modified: branches/release_1_5/base/config/dp_version
===================================================================
--- branches/release_1_5/base/config/dp_version	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/config/dp_version	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1 +1 @@
-1.5
+1.510

Modified: branches/release_1_5/base/config/mp_version
===================================================================
--- branches/release_1_5/base/config/mp_version	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/config/mp_version	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1 +1 @@
-1.5
+1.510

Modified: branches/release_1_5/base/configure
===================================================================
--- branches/release_1_5/base/configure	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/configure	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for MacPorts 1.5.
+# Generated by GNU Autoconf 2.61 for MacPorts 1.510.
 #
 # Report bugs to <macports-dev at lists.macosforge.org>.
 #
@@ -574,8 +574,8 @@
 # Identity of this package.
 PACKAGE_NAME='MacPorts'
 PACKAGE_TARNAME='macports'
-PACKAGE_VERSION='1.5'
-PACKAGE_STRING='MacPorts 1.5'
+PACKAGE_VERSION='1.510'
+PACKAGE_STRING='MacPorts 1.510'
 PACKAGE_BUGREPORT='macports-dev at lists.macosforge.org'
 
 ac_unique_file="src/pextlib1.0/Pextlib.c"
@@ -729,6 +729,7 @@
 X_PRE_LIBS
 X_LIBS
 X_EXTRA_LIBS
+READLINE_LIBS
 TCL_VERSION
 TCL_BIN_DIR
 TCL_SRC_DIR
@@ -1289,7 +1290,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures MacPorts 1.5 to adapt to many kinds of systems.
+\`configure' configures MacPorts 1.510 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1359,7 +1360,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of MacPorts 1.5:";;
+     short | recursive ) echo "Configuration of MacPorts 1.510:";;
    esac
   cat <<\_ACEOF
 
@@ -1478,7 +1479,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-MacPorts configure 1.5
+MacPorts configure 1.510
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1492,7 +1493,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by MacPorts $as_me 1.5, which was
+It was created by MacPorts $as_me 1.510, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -10326,7 +10327,6 @@
 
 
 # Check for readline
-
 { echo "$as_me:$LINENO: checking for readline in -lreadline" >&5
 echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6; }
 if test "${ac_cv_lib_readline_readline+set}" = set; then
@@ -10389,11 +10389,13 @@
 { echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5
 echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6; }
 if test $ac_cv_lib_readline_readline = yes; then
-  cat >>confdefs.h <<_ACEOF
+
+              READLINE_LIBS=-lreadline
+
+cat >>confdefs.h <<\_ACEOF
 #define HAVE_LIBREADLINE 1
 _ACEOF
 
-  LIBS="-lreadline $LIBS"
 
 fi
 
@@ -10832,6 +10834,7 @@
 
 
 
+
 # Lowest non-system-reserved uid and gid (Apple claims <500)
 
 cat >>confdefs.h <<\_ACEOF
@@ -12088,7 +12091,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by MacPorts $as_me 1.5, which was
+This file was extended by MacPorts $as_me 1.510, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12137,7 +12140,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-MacPorts config.status 1.5
+MacPorts config.status 1.510
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -12474,6 +12477,7 @@
 X_PRE_LIBS!$X_PRE_LIBS$ac_delim
 X_LIBS!$X_LIBS$ac_delim
 X_EXTRA_LIBS!$X_EXTRA_LIBS$ac_delim
+READLINE_LIBS!$READLINE_LIBS$ac_delim
 TCL_VERSION!$TCL_VERSION$ac_delim
 TCL_BIN_DIR!$TCL_BIN_DIR$ac_delim
 TCL_SRC_DIR!$TCL_SRC_DIR$ac_delim
@@ -12510,7 +12514,7 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 50; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 51; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

Modified: branches/release_1_5/base/configure.ac
===================================================================
--- branches/release_1_5/base/configure.ac	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/configure.ac	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.52)
-AC_INIT([MacPorts], [1.5], [macports-dev at lists.macosforge.org], [macports])
+AC_INIT([MacPorts], [esyscmd(cat config/mp_version | tr -d '\n')], [macports-dev at lists.macosforge.org], [macports])
 AC_CONFIG_SRCDIR([src/pextlib1.0/Pextlib.c])
 AC_CONFIG_HEADERS([src/config.h])
 AC_CANONICAL_SYSTEM
@@ -95,7 +95,10 @@
 MP_CHECK_X11
 
 # Check for readline
-AC_CHECK_LIB([readline], [readline])
+AC_CHECK_LIB([readline], [readline], [
+              READLINE_LIBS=-lreadline
+              AC_DEFINE([HAVE_LIBREADLINE], [1], [Define to 1 if you have the `readline' library (-lreadline).])
+              ])
 AC_CHECK_DECLS([rl_username_completion_function,rl_filename_completion_function,rl_completion_matches,username_completion_function,filename_completion_function,completion_matches], [], [],
 [
 #include <stdio.h>
@@ -103,6 +106,7 @@
 # include <readline/readline.h>
 #endif
 ])
+AC_SUBST(READLINE_LIBS)
 
 # Lowest non-system-reserved uid and gid (Apple claims <500)
 AC_DEFINE([MIN_USABLE_UID], [500], [Lowest non-system-reserved UID.])

Modified: branches/release_1_5/base/doc/Makefile
===================================================================
--- branches/release_1_5/base/doc/Makefile	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/doc/Makefile	2007-08-10 20:49:57 UTC (rev 27616)
@@ -46,6 +46,7 @@
 	$(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}/share/macports/resources/port1.0/install
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 644 prefix.mtree ${INSTALLDIR}/share/macports/resources/port1.0/install/
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 644 macosx.mtree ${INSTALLDIR}/share/macports/resources/port1.0/install/
+	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 port.1 ${INSTALLDIR}/share/man/man1
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 macports.conf.5 ${INSTALLDIR}/share/man/man5
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portfile.7 ${INSTALLDIR}/share/man/man7
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portstyle.7 ${INSTALLDIR}/share/man/man7

Copied: branches/release_1_5/base/doc/port.1 (from rev 27510, trunk/base/doc/port.1)
===================================================================
--- branches/release_1_5/base/doc/port.1	                        (rev 0)
+++ branches/release_1_5/base/doc/port.1	2007-08-10 20:49:57 UTC (rev 27616)
@@ -0,0 +1,548 @@
+.\" port.1
+.\"
+.\" Copyright (c) 2002 Apple Computer, Inc.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of Apple Computer, Inc. nor the names of its
+.\"    contributors may be used to endorse or promote products derived from
+.\"    this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd April 29, 2007
+.Dt PORT 1 "MacPorts"
+.Os
+.Sh NAME
+.Nm port
+.Nd operate on individual or multiple Mac
+.Ar ports
+.Sh SYNOPSIS
+.Nm
+.Op Fl vdqfonRusbckixpt
+.Op Fl D Ar portdir
+.Op Fl F Ar cmdfile
+.Op Ar action
+.Op Ar actionflags
+.Op Oo Ar portname | pseudo-portname | port-url Oc
+.Op Oo Ar @version Oc Oo +/-variant ... Oc ... Oo option=value ... Oc
+.Sh DESCRIPTION
+.Nm
+is designed to operate on individual or multiple Mac
+.Ar ports ,
+optionally within a single call, based on the requested
+.Ar action .
+If no
+.Ar portdir
+or
+.Ar portname
+is specified, the current working directory is assumed; if no
+.Ar action
+is specified the port command enters interactive mode, in which commands are read via stdin. Batch commands may be
+passed via a
+.Ar cmdfile .
+Port 
+.Ar options 
+are passed as key=value pairs and take precedence over individual
+.Ar portname
+options as specified in its Portfile and system-wide settings.
+.Pp
+Port
+.Ar variants
+can specified as
+.Ar +name ,
+which indicates the variant is desired, or
+.Ar -name ,
+indicating the contrary. In case of ambiguities, a port can be fully specified with the
+.Ar @version_revision+variants
+format.
+.Pp
+Installed ports can be activated or deactivated without being uninstalled. A port can be installed if all other
+version/variant(s) combinations installed at any given moment are deactivated.
+.Pp
+The
+.Nm
+command knows various
+.Ar pseudo-portnames
+that will expand to the specified set of ports from the available ports tree(s). These may be used in place of a
+.Ar portname .
+Common options are:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+.Ar all :
+all the ports in each ports tree listed in
+.Ar sources.conf
+.Pp
+.It
+.Ar current :
+the port in the current working directory.
+.Pp
+.It
+.Ar active :
+set of installed and active ports.
+.Pp
+.It
+.Ar inactive :
+set of installed but inactive ports.
+.Pp
+.It
+.Ar installed :
+set of all installed ports.
+.Pp
+.It
+.Ar uninstalled :
+ports in the ports tree(s) that aren't installed.
+.Pp
+.It
+.Ar outdated :
+installed ports that are out of date with respect to their current version/revision in the ports tree(s)
+.Pp
+.El
+Other options, also known as
+.Ar pseudo-portname selectors ,
+matching the most common keys used in a
+.Ar Portfile
+are also accepted, in both singular and plural form where applicable. These are:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+.Ar name
+.It
+.Ar version
+.It
+.Ar revision
+.It
+.Ar epoch
+.It
+.Ar variant
+.It
+.Ar variants
+.It
+.Ar category
+.It
+.Ar categories
+.It
+.Ar maintainer
+.It
+.Ar maintainers
+.It
+.Ar platform
+.It
+.Ar platforms
+.It
+.Ar description
+.It
+.Ar long_description
+.It
+.Ar homepage
+.It
+.Ar portdir
+.El
+.Pp
+Search strings that will expand to a set of matching ports can be constructed based on the 
+.Ar \(rqpseudo-portname selector\(lq:regex
+combination used.
+.Ar portnames
+containing valid UNIX glob patterns will also expand to the set of matching ports. Any
+.Ar action
+passed to
+.Nm
+will be invoked on each of them. For example:
+.Pp
+.Dl port list variant:no_ssl
+.Dl port uninstall name:sql
+.\" COMMENT: glob pattern expansion in portnames:
+.\" write an example here that illustrats better glob pattern expansion in portnames, but that does not employ
+.\" logical operators (and, or, not, !) because I still haven't gotten to them yet.
+.Dl port echo apache*
+.Pp
+Logical operators "and", "or", "not", "!", "(" and ")" may be used to combine individual
+.Ar portnames ,
+port glob patterns and/or
+.Ar pseudo-portnames
+to construct complex port expressions that expand to the set of matching ports. For example:
+.Pp
+.Dl port upgrade installed and "apache*"
+.Dl port echo maintainer:jberry and uninstalled and \e(\ category:java and not commons*\ \e)
+.\" COMMENT: more complex exmaples here would be useful.
+.\" PENDING: port-url explanation. Proposed text:
+.\".Pp
+.\"A
+.\".Ar portname
+.\"may also be specified as a URL pointing to the location of the
+.\".Ar portdir
+.\" ...
+.Pp
+The
+.Nm
+command also recognizes several command line flags and
+.Ar targets :
+.Sh OPTIONS
+.Bl -tag -width -indent
+.It Fl v
+verbose mode (generate verbose messages)
+.It Fl d
+debug mode (generate debugging messages, implies
+.Fl v )
+.It Fl q
+quiet mode (suppress messages)
+.It Fl n
+don't follow dependencies in upgrade (only for upgrading)
+.It Fl R
+also upgrade dependents (only for upgrading)
+.It Fl u
+uninstall non-active ports when upgrading and uninstalling
+.It Fl f
+force mode (ignore state file)
+.It Fl o
+honor state files older than Portfile
+.It Fl s
+source-only mode (build and install from source, ignore all binary archives, do not create/recreate binary archives) (only applies when archive mode is enabled)
+.It Fl b
+binary-only mode (build and install from binary archives, ignore source, abort if no archive present; do not create/recreate binary archives from source) (only applies when archive mode is enabled)
+.It Fl c
+autoclean mode (execute clean after install)
+.It Fl k
+keep mode (don't autoclean after install)
+.It Fl D
+specify
+.Ar portdir
+.It Fl F
+Read and process the
+.Ar file
+of commands specified by the argument. If the argument is '-', then read commands from stdin. If the option is given multiple times, then multiple files will be read.
+.It Fl i
+Read commands from stdin. Short for -F -
+.It Fl x
+In batch and interactive mode, exit on the first error encountered. Otherwise, errors during batch execution are simply reported.
+.It Fl p
+Despite any errors encountered, proceed to process multiple ports and commands.
+.It Fl t
+enable trace mode debug facilities on platforms that support it (Mac OS X). This feature is two-folded. It consists in automatically detecting and reporting undeclared dependencies based on what files the port reads or what programs the port executes. In verbose mode, it will also report unused dependencies for each stage of the port installation. It also consists in forbidding and reporting file creation and file writes outside allowed directories (temporary directories and ${workpath}).
+.El
+.Sh USER TARGETS
+Targets most commonly used by regular MacPorts users are:
+.Ss search
+Search for an available port whose name matches a regular expression. For example:
+.Pp
+.Dl "port search vim"
+.Pp
+.Ss info
+Displays all the meta-information available for
+.Ar portname .
+Specific meta-information may be requested through an option such as
+.Fl -maintainer
+or
+.Fl -category
+(recognized field names are those from the PortIndex). If the global option
+.Fl q
+is in effect, the meta-info fields will not be labeled.
+If the option
+.Fl -line
+is provided, all such data will be consolidated into a single line per port,
+suitable for processing in a pipe of commands.
+If the option
+.Fl -index
+is provided, the information will be pulled from the PortIndex rather than
+from the Portfile (in this case variant information, such as dependencies,
+will not affect the output).
+.Pp
+For example:
+.br
+.Dl "port info vim +ruby"
+.Dl "port info --category --name apache*"
+.Dl "port -q info --category --name --version category:java"
+.Dl "port info --line --category --name all"
+.Dl "port info --index python24"
+.Ss variants
+Lists the build variants available for
+.Ar portname .
+.Ss deps
+Lists the other ports that are required to build and run
+.Ar portname .
+.Ss dependents
+Lists the installed ports that depend on the port
+.Ar portname .
+.Ss install
+Install and activate
+.Ar portname .
+.Ss uninstall
+Deactivate and uninstall
+.Ar portname .
+To uninstall all installed but inactive ports, use
+.Fl u .
+For example:
+.Pp
+.Dl "port uninstall vim"
+.Dl "port -u uninstall"
+.Ss activate
+Activate the installed
+.Ar portname .
+.Ss deactivate
+Deactivate the installed
+.Ar portname .
+.Ss installed
+List all installed ports.
+.Ss location
+Print the install location of a given port.
+.Ss contents
+Lists the files installed by
+.Ar portname .
+.Ss provides
+Determines which port owns a given file and can take either a relative or absolute path. For example:
+.Pp
+.Dl "port provides /opt/local/etc/irssi.conf"
+.Dl "port provides include/tiff.h"
+.Ss sync
+Performs a sync operation only on the ports tree of a MacPorts installation, pulling in the latest
+revision available of the
+.Ar Portfiles
+from the MacPorts rsync server. To update you would normally do:
+.Pp
+.Dl "sudo port -d sync"
+.Pp
+If any of the ports tree(s) uses a file: URL that points to a local subversion working copy,
+.Ic sync
+will perform an
+.Ic "svn update"
+on the working copy with the user set to the owner of the working copy.
+.Ss outdated
+List the installed ports that need upgrading.
+.Ss upgrade
+The upgrade target works on a port and its dependencies. If you
+want to change this behaviour, look at the switches for n (no
+dependencies) and R (dependents) below.
+.Pp    
+Upgrade the installed
+.Ar portname .
+For example:
+.Pp
+.Dl "port upgrade vim"
+.Pp
+To upgrade all installed ports:
+.Pp
+.Dl "port upgrade installed"
+.Pp
+To upgrade
+.Ar portname
+and the ports that depend on it:
+.Pp
+.Dl "port -R upgrade libiconv"
+.Pp
+To force an upgrade (rebuild) use:
+.Pp
+.Dl "port -f upgrade vim"
+.Pp
+To upgrade
+.Ar portname
+without following its dependencies, use
+.Fl n .
+For example:
+.Pp
+.Dl "port -n upgrade ethereal"
+.Ss clean
+Clean the files used for building
+.Ar portname .
+To just remove the work files, use the
+.Fl -work
+.Ar actionflag .
+To remove the distribution files (tarballs, etc), specify
+.Fl -dist .
+To remove the archive(s) for the current version of a port, pass
+.Fl -archive .
+To remove the work files, distribution files and archives, pass
+.Fl -all .
+For example:
+.Pp
+.Dl "port clean --dist vim"
+.Dl "port clean --archive vim"
+.Pp
+To remove only certain version(s) of a port's archives (
+.Ar version
+is any valid UNIX glob pattern), you can use:
+.Pp
+.Dl "port clean --archive vim 6.2.114"
+.Pp
+or:
+.Pp
+.Dl "port clean --archive vim '6.*'"
+.Ss echo
+Writes to stdout the arguments passed to
+.Nm .
+This follows the expansion of
+.Ar pseudo-portnames ,
+portname glob patterns,
+.Ar pseudo-portname selectors
+and the evaluation of port expressions.
+.Nm echo 
+may be used to determine the exact set of ports to which a given string of arguments will expand, without performing any further operations on them. For example:
+.Pp
+.Dl port echo category:net
+.Dl port echo maintainer:jmpp and name:netw
+.Dl port echo maintainer:jmpp and \e(\ net* or category:text\ \e)
+.Pp
+.Ss list
+If no argument is given, display a list of the the latest version of all available ports.
+If portname(s) are given as arguments, display a list of the latest version of each port.
+.Ss version
+Display the release number of the installed MacPorts infrastructure.
+.Ss selfupdate
+Updates the MacPorts system, ports tree(s) and base tools if needed, from the MacPorts rsync server,
+installing the newest infrastructure available. To update you would typically do:
+.Pp
+.Dl "sudo port -d selfupdate"
+.Pp
+See
+.Ic sync
+for more information about updating ports tree(s).
+.Ss help
+Displays a summary of all available actions and port command syntax on stdout.
+.Sh DEVELOPER TARGETS
+The targets that are often used by Port developers are intended to provide access to the different phases of a Port's build process:
+.Ss dir
+Displays the path to the directory containing
+.Ar portname .
+.Ss file
+Displays the path to the Portfile for
+.Ar portname .
+.Ss cat
+Concatenates and prints the contents of
+.Ar Portfile
+on stdout.
+.Ss edit
+Opens
+.Ar Portfile 
+with your default editor specified in your shell's environment variable. Alias
+.Ar ed
+also invokes this command.
+.Ss unarchive
+Unpack the port from a pre-built binary archive. When archive mode is enabled, this command is called automatically, prior to
+.Ar fetch ,
+to check for an existing binary archive to unpack. If found, it is unpacked and all stages up to
+.Ar install
+are then skipped.
+.Ss fetch
+Fetches the distribution files required to build
+.Ar portname .
+.Ss checksum
+Compute the checksums of the distribution files for 
+.Ar portname ,
+and compare them to the checksums listed in 
+.Ar Portfile .
+.Ss extract
+Extracts the distribution files for
+.Ar portname .
+.Ss patch
+Applies any required patches to 
+.Ar portname's
+extracted distribution files.
+.Ss configure
+Runs any configure process for
+.Ar portname .
+.Ss build
+Build
+.Ar portname .
+.Ss destroot
+Installs
+.Ar portname
+to a temporary directory.
+.Ss test
+Tests
+.Ar portname .
+.Ss archive
+Archive the port for a later
+.Ar unarchive .
+When archive mode is enabled, binary archives will be created automatically whenever an
+.Ar install
+is performed, or when the
+.Ar archive
+target is called explicitly.
+.Ss distcheck
+Check if the distfiles haven't changed and can be fetched.
+.Ss livecheck
+Check if the software hasn't been updated since the Portfile was last modified.
+.Sh PACKAGING TARGETS
+There are also targets for producing installable packages of ports:
+.Pp
+.Ss pkg
+Creates an OS X installer package of
+.Ar portname.
+.Ss mpkg
+Creates an OS X installer metapackage of 
+.Ar portname
+and its dependencies.
+.Ss dmg
+Creates an internet-enabled disk image containing an OS X package of
+.Ar portname .
+.Ss rpm
+Creates an RPM binary package of
+.Ar portname ,
+similar to a tgz "archive".
+.Ss srpm
+Creates a SRPM source package of
+.Ar portname ,
+similar to a xar "portpkg".
+.Ss dpkg
+Creates a DEB binary package of
+.Ar portname .
+.Sh EXAMPLES
+The following demonstrates invoking
+.Nm
+with the
+.Ar extract
+target on
+.Ar portdir
+\&"textproc/figlet" and extract.suffix set to ".tgz":
+.Pp
+.Dl "port extract -D textproc/figlet extract.suffix=.tgz"
+.Pp
+.Sh FILES
+.Bl -tag -width
+.It Va ${prefix}/etc/macports/macports.conf
+Global configuration file for the MacPorts system.
+.It Va ${prefix}/etc/macports/sources.conf
+Global listing of the ports trees used by MacPorts. This file also enables rsync synchronization.
+.It Va ${prefix}/etc/macports/variants.conf
+Global variants used when a port is installed.
+.It Va ~/.macports/macports.conf
+User configuration file for the MacPorts system. It overrides the global
+.Ar macports.conf
+file.
+.El
+.Sh DIAGNOSTICS
+.Ex -std
+.Sh SEE ALSO
+.Xr macports.conf 5 ,
+.Xr portfile 7 ,
+.Xr portgroup 7 ,
+.Xr portstyle 7 ,
+.Xr porthier 7
+.Sh AUTHORS
+.An "Landon Fuller" Aq landonf at macports.org
+.An "James Berry" Aq jberry at macports.org
+.An "Jordan K. Hubbard" Aq jkh at macports.org
+.An "Juan Manuel Palacios" Aq jmpp at macports.org
+.An "Kevin Van Vechten" Aq kevin at opendarwin.org
+.An "Ole Guldberg Jensen" Aq olegb at opendarwin.org
+.An "Robert Shaw" Aq rshaw at opendarwin.org
+.An "Chris Ridd" Aq cjr at opendarwin.org
+.An "Matt Anton" Aq matt at opendarwin.org
+.An "Joe Auty" Aq joe at opendarwin.org

Modified: branches/release_1_5/base/doc/portfile.7
===================================================================
--- branches/release_1_5/base/doc/portfile.7	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/doc/portfile.7	2007-08-10 20:49:57 UTC (rev 27616)
@@ -394,6 +394,14 @@
 .br
 .Sy Default:
 .Em files
+.It Ic filespath
+Full path to the port files location.
+.br
+.Sy Type:
+.Em read-only
+.br
+.Sy Default:
+.Em ${portpath}/${filesdir}
 .It Ic distpath
 Location to store downloaded distfiles.
 .br
@@ -729,7 +737,10 @@
       svn.url svn://www.domain.com/svn-repo/mydirectory
 .It Ic svn.tag
 Specify the a tag from which svn should fetch files. This
-corresponds to the -r option to the svn cli.
+corresponds to the -r option to the svn cli.  Note that you
+will need to use backslashes to escape characters that have
+meaning to the Tcl interpreter, such as braces and double
+quotes.
 .br
 .Sy Type:
 .Em optional
@@ -738,8 +749,8 @@
 .Em none
 .br
 .Sy Example:
-.Dl svn.url http://www.domain.com/svn-repo/mydirectory
-      svn.url svn://www.domain.com/svn-repo/mydirectory
+.Dl svn.tag 37192
+      svn.tag \\{\\"2006-02-17 15:30 +0230\\"\\}
 .El
 .Sh EXTRACT OPTIONS
 Extract all compressed/archived files.
@@ -769,7 +780,7 @@
 .Dl extract.cmd bzip2
 .El
 .Sh CONFIGURE OPTIONS
-MacPorts provide special support for configure flags (CFLAGS, LDFLAGS, CPPFLAGS, CXXFLAGS). Please note that the previous way to alter these flags (using configure.env) may become deprecated at some point. The following options are defined:
+MacPorts provide special support for configure flags (CFLAGS, LDFLAGS, CPPFLAGS, CXXFLAGS, CC, CXX, CPP, FC, F77, F90). Please note that the previous way to alter these flags (using configure.env) may become deprecated at some point. The following options are defined:
 .Bl -tag -width lc
 .It Ic configure.cflags
 Flags to put in the CFLAGS environment variable when invoking the configure script.
@@ -806,6 +817,51 @@
 .br
 .Sy Default:
 .Em -L${prefix}/lib
+.It Ic configure.cc
+C-compiler to put in the CC environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.br
+.Sy Example:
+.Dl configure.cc /usr/bin/gcc
+.It Ic configure.cpp
+C-preprocessor to put in the CPP environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.It Ic configure.cxx
+C++-compiler to put in the CXX environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.It Ic configure.fc
+Fortran-compiler to put in the FC environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.It Ic configure.f77
+Fortran-77-compiler to put in the F77 environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.It Ic configure.f90
+Fortran-90-compiler to put in the F90 environment variable when invoking the configure script.
+.br
+.Sy Type:
+.Em optional
+.It Ic configure.compiler
+Selects a complete compiler suite to use. This option will override the compiler environment variable for all compilers the named suite features. Please note that this option will intentionally not set any dependencies on the selected compiler suite!
+.br
+.Sy Type:
+.Em optional
+.br
+.Sy Values:
+.Em gcc-3.3 gcc-4.0 macports-gcc-4.0 macports-gcc-4.1 macports-gcc-4.2
+.br
+.Sy Example:
+.Dl configure.compiler gcc-4.0
+.\" FOOBAR
 .El
 .Ss UNIVERSAL TARGET HOOKS
 For universal builds of configure-based ports, we also define specific target hooks. These can be overridden for specific ports. Please note that these hooks are used by the default universal variant and redefining the variant will make them useless.
@@ -975,6 +1031,17 @@
 .br
 .Sy Example:
 .Dl destroot.keepdirs ${destroot}${prefix}/var/log/mysql
+.It Ic destroot.violate_mtree
+Indicates if a port will violate the common directory structure. Enables or disables tests for violations of mtree (e. g. non-standard directories in ${prefix})
+.br
+.Sy Type:
+.Em optional
+.br
+.Sy Values:
+.Em yes no
+.br
+.Sy Default:
+.Em no
 .El
 .Sh TEST OPTIONS
 Execute commands to run test suites bundled with a port.
@@ -1849,3 +1916,4 @@
 .An "Jordan K. Hubbard" Aq jkh at macports.org
 .An "Chris Ridd" Aq cjr at opendarwin.org
 .An "Kevin Ballard" Aq eridius at macports.org
+.An "Markus W. Weissmann" Aq mww at macports.org

Modified: branches/release_1_5/base/doc/portgroup.7
===================================================================
--- branches/release_1_5/base/doc/portgroup.7	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/doc/portgroup.7	2007-08-10 20:49:57 UTC (rev 27616)
@@ -364,7 +364,7 @@
 .El
 .Sh SEE ALSO
 .Xr port 1 ,
-.Xr ports.conf 5 ,
+.Xr macports.conf 5 ,
 .Xr portfile 7 ,
 .Xr portstyle 7 ,
 .Xr porthier 7

Modified: branches/release_1_5/base/portmgr/GuideRegen.sh
===================================================================
--- branches/release_1_5/base/portmgr/GuideRegen.sh	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/portmgr/GuideRegen.sh	2007-08-10 20:49:57 UTC (rev 27616)
@@ -17,7 +17,7 @@
 # MP group.
 MP_GROUP=mp-user
 # e-mail address to spam in case of failure.
-SPAM_LOVERS=macports-mgr at lists.macosforge.org,dluke at geeklair.net
+SPAM_LOVERS=macports-mgr at lists.macosforge.org,dluke at geeklair.net,markd at macports.org
 
 # Other settings (probably don't need to be changed).
 SVN_CONFIG_DIR=${ROOT}/svnconfig
@@ -81,7 +81,7 @@
     || { echo "./configure script failed." >> $FAILURE_LOG ; bail ; }
 
 # (re)build
-{ cd ${SRCTREE}/doc/guide && make xhtml > $FAILURE_LOG 2>&1 ; } \
+{ cd ${SRCTREE}/doc/guide && make xhtml new > $FAILURE_LOG 2>&1 ; } \
     || { echo "make failed." >> $FAILURE_LOG ; bail ; }
 
 # At this point the guide was regen'd successfuly, so we cleanup before we exit.

Modified: branches/release_1_5/base/portmgr/mprsyncup
===================================================================
--- branches/release_1_5/base/portmgr/mprsyncup	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/portmgr/mprsyncup	2007-08-10 20:49:57 UTC (rev 27616)
@@ -4,12 +4,26 @@
 # Script to checkout/update base sources from both trunk (ToT) and the current
 # release tag (as determined by the base/config/RELEASE_URL file) and a ports
 # tree from trunk (ToT), and then export and sync all of them to the
-# ${REPOROOT} location, wherefrom the rsync modules are fed to the `sync'
-# and `selfupdate' routines in port(1).
-# Read the base/portmgr/rsync.repos file for more information on both the
-# necessary rsync modules and filesystem level paths, which this script
-# bootstraps.
+# ${RSYNCROOT} location, wherefrom the rsync modules are fed to the `sync'
+# and `selfupdate' routines in port(1). Read the base/portmgr/rsync.repos
+# file for more information on both the necessary rsync modules and filesystem
+# level paths, which this script bootstraps.
 #
+# Whatever server uses this script to mirror the MacPorts rsync repositories
+# should simply adapt the ${RSYNCROOT} path variable as necessary (keeping it
+# in sync with the equally named variable in base/portmgr/rsync.repos) and
+# install it on cron/launchd with a suitable periodicity, previously discussed
+# with the portmgr@ team (macports-mgr at lists.macosforge.org). Repositories
+# themselves are detailed & served by base/portmgr/rsync.repos, as stated above
+# (that is, no manual intervention what-so-ever is needed, other than installing
+# this script and adding the repositories detailed in base/portmgr/rsync.repos
+# to a local rsyncd.conf file).
+#
+# Lastly, it is required of every 3rd party mirrors to keep track of this script
+# and the base/portmgr/rsync.repos file and always maintain local copies in as
+# close sync as possible. 
+#
+#
 # Created by fkr at opendarwin.org, jberry at macports.org and yeled at macports.org,
 # Updated by jmpp at macports.org
 # $Id$
@@ -33,7 +47,7 @@
 RELEASE_URL_FILE=config/RELEASE_URL
 
 
-# Update/checkout trunk's base, export and rsync it to the rsync repos location (${REPOROOT}):
+# Update/checkout trunk's base, export and rsync it to the rsync repos location (${RSYNCROOT}):
 if [ -d ${TBASE}/.svn ]; then
     ${SVN} update ${TBASE}
 else
@@ -46,7 +60,7 @@
 ${RSYNC} -a -I --delete ${TBASE}-export/ ${RSYNCROOT}/trunk/base && rm -rf ${TBASE}-export
 
 
-# Read what tag we're releasing from, switch to/checkout a copy, export and rsync it to ${REPOROOT}/release/base:
+# Read what tag we're releasing from, switch to/checkout a copy, export and rsync it to ${RSYNCROOT}/release/base:
 read RELEASE_URL < ${TBASE}/${RELEASE_URL_FILE}
 if [ ! -n ${RELEASE_URL} ]; then
     echo "no RELEASE_URL specified in svn trunk, baling out"
@@ -64,7 +78,7 @@
 ${RSYNC} -a -I --delete ${RBASE}-export/ ${RSYNCROOT}/release/base && rm -rf ${RBASE}-export
 
 
-# Update/checkout the ports tree, export it and rsync it to ${REPOROOT}/release/ports:
+# Update/checkout the ports tree, export it and rsync it to ${RSYNCROOT}/release/ports:
 if [ -d ${PORTS}/.svn ]; then
   ${SVN} update ${PORTS}  
 else

Copied: branches/release_1_5/base/portmgr/packaging/Makefile (from rev 27510, trunk/base/portmgr/packaging/Makefile)
===================================================================
--- branches/release_1_5/base/portmgr/packaging/Makefile	                        (rev 0)
+++ branches/release_1_5/base/portmgr/packaging/Makefile	2007-08-10 20:49:57 UTC (rev 27616)
@@ -0,0 +1,20 @@
+# $Id$
+
+SCRIPTS=	PortIndex2MySQL
+
+edit = sed \
+	-e 's, at TCL_PACKAGE_DIR@,$(TCL_PACKAGE_DIR),g'
+
+
+include ../../Mk/macports.autoconf.mk
+
+
+all: ${SCRIPTS}
+
+PortIndex2MySQL: PortIndex2MySQL.tcl
+	${edit} $< > $@
+
+clean:
+	rm -f ${SCRIPTS}
+
+distclean: clean

Modified: branches/release_1_5/base/portmgr/packaging/PortIndex2MySQL.tcl
===================================================================
--- branches/release_1_5/base/portmgr/packaging/PortIndex2MySQL.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/portmgr/packaging/PortIndex2MySQL.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1,9 +1,13 @@
 #!/usr/bin/env tclsh
+#
 # PortIndex2MySQL.tcl
 # Kevin Van Vechten | kevin at opendarwin.org
 # 3-Oct-2002
+# Juan Manuel Palacios | jmpp at macports.org
+# 30-Jul-2007
 # $Id$
 #
+# Copyright (c) 2007 Juan Manuel Palacios, MacPorts Team.
 # Copyright (c) 2003 Apple Computer, Inc.
 # Copyright (c) 2002 Kevin Van Vechten. 
 # All rights reserved.
@@ -33,98 +37,93 @@
 # POSSIBILITY OF SUCH DAMAGE.
 
 
+# Load macports1.0 so that we can use some of its procs and the portinfo array.
 catch {source \
-	   [file join "@TCL_PACKAGE_DIR@" darwinports1.0 darwinports_fastload.tcl]}
-package require darwinports
+	   [file join "@TCL_PACKAGE_DIR@" macports1.0 macports_fastload.tcl]}
+package require macports
 
-proc ui_prefix {priority} {
-	return ""
-}
+# Initialize MacPorts to find the sources.conf file, wherefrom we'll
+# get the PortIndex that'll feed the database.
+mportinit
 
-proc ui_channels {priority} {
-	return {}
-}
 
-# This should be a command line argument.
-# if true, use_db insructs the script to insert directly into a database
-# otherwise, sql statements will be printed to stdout.
-set use_db ""
-
-array set ui_options {}
-array set global_options {}
-array set global_variations {}
-dportinit ui_options global_options global_variations
-
-if {$use_db != ""} {
-    load @PREFIX@/lib/libmysqltcl.dylib
-    set db [mysqlconnect -user darwinports -password woot -db darwinports]
-} else {
-    set db ""
-}
-
-proc sql_exec {db sql} {
-    if {$db != ""} {
-        mysqlexec $db $sql
-    } else {
-        puts "${sql};"
+# Procedure to catch the database password from a protected file.
+proc getpasswd {passwdfile} {
+    if {[catch {open $passwdfile r} passwdfile_fd]} {
+        ui_error "${::errorCode}: $passwdfile_fd"
+        exit 1
     }
+    if {[gets $passwdfile_fd passwd] <= 0} {
+        ui_error "No password found in $passwdfile!"
+        exit 1
+    }
+    close $passwdfile_fd
+    return $passwd
 }
 
+# Needed escaping for some strings output as sql statements.
 proc sql_escape {str} {
-    global use_db
-    if {$use_db != ""} {
-        return [msyqlescape $str]
-    } else {
         regsub -all -- {'} $str {\\'} str
         regsub -all -- {"} $str {\\"} str
         regsub -all -- {\n} $str {\\n} str
         return $str
-    }
 }
 
-# CREATE TABLE portfiles (name VARCHAR(255) PRIMARY KEY NOT NULL, 
-#  path VARCHAR(255),
-#  version VARCHAR(255),
-#  description TEXT);
 
-# CREATE TABLE categories (portfile VARCHAR(255), 
-#  category VARCHAR(255), 
-#  primary INTEGER);
+# Abstraction variables:
+set sqlfile [file join /tmp ports.sql]
+set dbcmd [macports::findBinary mysql5]
+set dbname macports
+set passwdfile [file join . password_file]
+set dbpasswd [getpasswd $passwdfile]
+set dbcmdargs "$dbname --password=$dbpasswd"
 
-# CREATE TABLE maintainers (portfile VARCHAR(255),
-#  maintainer VARCHAR(255),
-#  primary INTEGER);
 
-sql_exec $db "DROP TABLE log"
-sql_exec $db "CREATE TABLE IF NOT EXISTS log (activity VARCHAR(255), activity_time TIMESTAMP(14))"
-sql_exec $db "INSERT INTO log VALUES ('update', NOW())"
+# Flat text file to which sql statements are written.
+if {[catch {open $sqlfile w+} sqlfile_fd]} {
+    ui_error "${::errorCode}: $sqlfile_fd"
+    exit 1
+}
 
-sql_exec $db "DROP TABLE portfiles"
-sql_exec $db "CREATE TABLE portfiles (name VARCHAR(255) PRIMARY KEY NOT NULL, path VARCHAR(255), version VARCHAR(255),  description TEXT)"
 
-sql_exec $db "DROP TABLE IF EXISTS categories"
-sql_exec $db "CREATE TABLE categories (portfile VARCHAR(255), category VARCHAR(255), is_primary INTEGER)"
+# Initial creation of database tables: log, portfiles, categories, maintainers, dependencies, variants and platforms.
+# Do we need any other?
+puts $sqlfile_fd "DROP TABLE log"
+puts $sqlfile_fd "CREATE TABLE IF NOT EXISTS log (activity VARCHAR(255), activity_time TIMESTAMP(14))"
+puts $sqlfile_fd "INSERT INTO log VALUES ('update', NOW())"
 
-sql_exec $db "DROP TABLE IF EXISTS maintainers"
-sql_exec $db "CREATE TABLE maintainers (portfile VARCHAR(255), maintainer VARCHAR(255), is_primary INTEGER)"
+puts $sqlfile_fd "DROP TABLE portfiles"
+puts $sqlfile_fd "CREATE TABLE portfiles (name VARCHAR(255) PRIMARY KEY NOT NULL, path VARCHAR(255), version VARCHAR(255),  description TEXT)"
 
-sql_exec $db "DROP TABLE IF EXISTS dependencies"
-sql_exec $db "CREATE TABLE dependencies (portfile VARCHAR(255), library VARCHAR(255))"
+puts $sqlfile_fd "DROP TABLE IF EXISTS categories"
+puts $sqlfile_fd "CREATE TABLE categories (portfile VARCHAR(255), category VARCHAR(255), is_primary INTEGER)"
 
-sql_exec $db "DROP TABLE IF EXISTS variants"
-sql_exec $db "CREATE TABLE variants (portfile VARCHAR(255), variant VARCHAR(255))"
+puts $sqlfile_fd "DROP TABLE IF EXISTS maintainers"
+puts $sqlfile_fd "CREATE TABLE maintainers (portfile VARCHAR(255), maintainer VARCHAR(255), is_primary INTEGER)"
 
-sql_exec $db "DROP TABLE IF EXISTS platforms"
-sql_exec $db "CREATE TABLE platforms (portfile VARCHAR(255), platform VARCHAR(255))"
+puts $sqlfile_fd "DROP TABLE IF EXISTS dependencies"
+puts $sqlfile_fd "CREATE TABLE dependencies (portfile VARCHAR(255), library VARCHAR(255))"
 
-if {[catch {set ports [dportsearch ".+"]} errstr]} {
-	puts "port search failed: $errstr"
+puts $sqlfile_fd "DROP TABLE IF EXISTS variants"
+puts $sqlfile_fd "CREATE TABLE variants (portfile VARCHAR(255), variant VARCHAR(255))"
+
+puts $sqlfile_fd "DROP TABLE IF EXISTS platforms"
+puts $sqlfile_fd "CREATE TABLE platforms (portfile VARCHAR(255), platform VARCHAR(255))"
+
+
+# Load every port in the index through a search matching everything.
+if {[catch {set ports [mportsearch ".+"]} errstr]} {
+	ui_error "port search failed: $errstr"
 	exit 1
 }
 
+# Iterate over each matching port, extracting its information from the
+# portinfo array.
 foreach {name array} $ports {
+
 	array unset portinfo
 	array set portinfo $array
+
 	set portname [sql_escape $portinfo(name)]
 	if {[info exists portinfo(version)]} {
 		set portversion [sql_escape $portinfo(version)]
@@ -152,63 +151,83 @@
 	} else {
 		set variants ""
 	}
+        if {[info exists portinfo(depends_build)]} {
+                set depends_build $portinfo(depends_build)
+        } else {
+                set depends_build ""
+        }
 	if {[info exists portinfo(depends_lib)]} {
 		set depends_lib $portinfo(depends_lib)
 	} else {
 		set depends_lib ""
 	}
+        if {[info exists portinfo(depends_run)]} {
+                set depends_run $portinfo(depends_run)
+        } else {
+                set depends_run ""
+        }
 	if {[info exists portinfo(platforms)]} {
 		set platforms $portinfo(platforms)
 	} else {
 		set platforms ""
 	}
-		
-	set sql "INSERT INTO portfiles VALUES ('$portname', '$portdir', '$portversion', '$description')"
-	#puts "$sql"
-	sql_exec $db $sql
 
+	puts $sqlfile_fd "INSERT INTO portfiles VALUES ('$portname', '$portdir', '$portversion', '$description')"
+
 	set primary 1
 	foreach category $categories {
 		set category [sql_escape $category]
-		set sql "INSERT INTO categories VALUES ('$portname', '$category', $primary)"
-		#puts "$sql"
-		sql_exec $db $sql
-		set primary 0
+		puts $sqlfile_fd "INSERT INTO categories VALUES ('$portname', '$category', $primary)"
+		incr primary
 	}
 	
 	set primary 1
 	foreach maintainer $maintainers {
 		set maintainer [sql_escape $maintainer]
-		set sql "INSERT INTO maintainers VALUES ('$portname', '$maintainer', $primary)"
-		#puts "$sql"
-		sql_exec $db $sql
-		set primary 0
+		puts $sqlfile_fd "INSERT INTO maintainers VALUES ('$portname', '$maintainer', $primary)"
+		incr primary
 	}
 
+        foreach build_dep $depends_build {
+            set build_dep [sql_escape $build_dep]
+            puts $sqlfile_fd "INSERT INTO dependencies VALUES ('$portname', '$build_dep')"
+        }
+
 	foreach lib $depends_lib {
 		set lib [sql_escape $lib]
-		set sql "INSERT INTO dependencies VALUES ('$portname', '$lib')"
-		#puts "$sql"
-		sql_exec $db $sql
+		puts $sqlfile_fd "INSERT INTO dependencies VALUES ('$portname', '$lib')"
 	}
 
+        foreach run_dep $depends_run {
+            set run_dep [sql_escape $run_dep]
+            puts $sqlfile_fd "INSERT INTO dependencies VALUES ('$portname', '$run_dep')"
+        }
+
 	foreach variant $variants {
 		set variant [sql_escape $variant]
-		set sql "INSERT INTO variants VALUES ('$portname', '$variant')"
-		#puts "$sql"
-		sql_exec $db $sql
+		puts $sqlfile_fd "INSERT INTO variants VALUES ('$portname', '$variant')"
 	}
 
 	foreach platform $platforms {
 		set platform [sql_escape $platform]
-		set sql "INSERT INTO platforms VALUES ('$portname', '$platform')"
-		#puts "$sql"
-		sql_exec $db $sql
+		puts $sqlfile_fd "INSERT INTO platforms VALUES ('$portname', '$platform')"
 	}
 
 }
 
-if {$db != ""} {
-    mysqlclose $db
-    mysqlclose
+
+# Pipe the contents of the generated sql file to the database command,
+# reading from the file descriptor for the raw sql file to assure completeness.
+if {[catch {seek $sqlfile_fd 0 start} errstr]} {
+    ui_error "${::errorCode}: $errstr"
+    exit 1
 }
+if {[catch {exec $dbcmd $dbcmdargs <@ $sqlfile_fd} errstr]} {
+    ui_error "${::errorCode}: $errstr"
+    exit 1
+}
+
+
+# And we're done regen'ing the MacPorts dabase! (cleanup)
+close $sqlfile_fd
+file delete -force $sqlfile

Modified: branches/release_1_5/base/portmgr/rsync.repos
===================================================================
--- branches/release_1_5/base/portmgr/rsync.repos	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/portmgr/rsync.repos	2007-08-10 20:49:57 UTC (rev 27616)
@@ -2,35 +2,34 @@
 # MacPorts rsync repos feeding the sync & selfupdate procedures, created and
 # maintained by the base/portmgr/mprsyncup script.
 # 
-# Two main modules are supplied for current installations off trunk and
-# two for backwards compatibility (legacy DarwinPorts namespace). Assuming
-# a REPOROOT path of /Volumes/data/rsync/macports/, this file is organized
+# Two main modules are supplied for current installations off the release branch
+# and two for backwards compatibility (legacy DarwinPorts namespace). Assuming
+# an RSYNCROOT path of /Volumes/data/rsync/macports/, this file is organized
 # in the following four modules and filesystem level paths (server side):
 #
 #
 # PATHS:
 #
-# ${REPOROOT}/release: holding a ports tree, exported from a checkout of svn's
+# ${RSYNCROOT}/release: holding a ports tree, exported from a checkout of svn's
 # trunk/dports dir (ToT), and the current release base dir, as determined by
-# the base/config/RELEASE_URL file read by the base/portmgr/mprsyncup
-# script;
+# the base/config/RELEASE_URL file that's read by base/portmgr/mprsyncup;
 #
-# ${REPOROOT}/trunk: holding an export of a checkout from svn's trunk/base
+# ${RSYNCROOT}/trunk: holding an export of a checkout from svn's trunk/base
 # dir (ToT);
 #
-# ${REPOROOT}/dpupdate: backwards compatible path & module, a filesystem
+# ${RSYNCROOT}/dpupdate: backwards compatible path & module, a filesystem
 # level (relative) symlink to the trunk path above
-#    (relative to ${REPOROOT}: dpupdate --> trunk);
+#    (relative to ${RSYNCROOT}: dpupdate --> trunk);
 #
-# ${REPOROOT}/dpupdate1: backwards compatible path & module, a filesystem
+# ${RSYNCROOT}/dpupdate1: backwards compatible path & module, a filesystem
 # level (relative) symlink to the release path
-#    (relative to ${REPOROOT}: dpupdate1 --> release).
+#    (relative to ${RSYNCROOT}: dpupdate1 --> release).
 #
 # 
-# Futhermore the ${REPOROOT}/trunk path must also hold a (relative) `dports'
+# Futhermore the ${RSYNCROOT}/trunk path must also hold a (relative) `dports'
 # symlink to `../release/ports', so that a sync operation against
 # `dpupdate/ports' for the ports tree works on legacy MacPorts installations
-# (DarwinPorts namespace). Overall, the ${REPOROOT} skeleton should look like:
+# (DarwinPorts namespace). Overall, the ${RSYNCROOT} skeleton should look like:
 #
 # release/
 # release/base/
@@ -42,13 +41,21 @@
 # dpupdate1 --> release
 #
 #
-# Whatever server uses this file should simply add the modules listed here to
-# an already tailored rsyncd.conf file, as no other particular config options
-# are supplied. Repositories themselves are created and maintained by the
-# base/portmgr/mprsyncup script, as stated above (that is, no manual
-# intervention what-so-ever is needed, other than adding the repos to the local
-# rsyncd.conf file).
+# Whatever server uses this file to mirror MacPorts rsync repositories
+# should simply adapt the ${RSYNCROOT} path variable as necessary (keeping
+# it in sync with the equally named variable in base/portmgr/mprsyncup)
+# and add the listed modules to an already tailored rsyncd.conf file,
+# as no other particular configuration options are supplied. Repositories
+# themselves are created and maintained by base/portmgr/mprsyncup, as stated
+# above (that is, no manual intervention what-so-ever is needed, other than
+# adding the repositories to the local rsyncd.conf file and installing
+# base/portmgr/mprsyncup on cron/launchd).
 #
+# Lastly, it is required of every 3rd party mirrors to keep track of this script
+# and the base/portmgr/rsync.repos file and always maintain local copies in as
+# close sync as possible.
+#
+#
 # Created by Juan Manuel Palacios,
 # e-mail: jmpp at macports.org
 # $Id$

Modified: branches/release_1_5/base/src/macports1.0/macports.tcl
===================================================================
--- branches/release_1_5/base/src/macports1.0/macports.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/macports1.0/macports.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -621,6 +621,10 @@
 proc macports::worker_init {workername portpath portbuildpath options variations} {
     global macports::portinterp_options macports::portinterp_deferred_options registry.installtype
 
+    # Hide any Tcl commands that should be inaccessible to port1.0 and Portfiles
+    # exit: It should not be possible to exit the interpreter
+    interp hide $workername exit
+
 	# Tell the sub interpreter about all the Tcl packages we already
 	# know about so it won't glob for packages.
 	foreach pkgName [package names] {
@@ -1697,19 +1701,20 @@
 	# fill array with information
 	array set portinfo [lindex $result 1]
 
-	# set version_in_tree
+	# set version_in_tree and revision_in_tree
 	if {![info exists portinfo(version)]} {
 		ui_error "Invalid port entry for $portname, missing version"
 		return 1
 	}
-	set version_in_tree "$portinfo(version)_$portinfo(revision)"
+	set version_in_tree "$portinfo(version)"
+	set revision_in_tree "$portinfo(revision)"
 	set epoch_in_tree "$portinfo(epoch)"
 
 	# the depflag tells us if we should follow deps (this is for stuff installed outside MacPorts)
 	# if this is set (not 0) we dont follow the deps
 	set depflag 0
 
-	# set version_installed
+	# set version_installed and revision_installed
 	set ilist {}
 	if { [catch {set ilist [registry::installed $portname ""]} result] } {
 		if {$result == "Registry error: $portname not registered as installed." } {
@@ -1747,10 +1752,12 @@
 	}
 	set anyactive 0
 	set version_installed 0
+	set revision_installed 0
 	set epoch_installed 0
 	if {$ilist == ""} {
 		# XXX  this sets $version_installed to $version_in_tree even if not installed!!
 		set version_installed $version_in_tree
+		set revision_installed $revision_in_tree
 		# That was a very dirty hack showing how ugly our depencendy and upgrade code is.
 		# To get it working when user provides -f, we also need to set the variant to
 		# avoid a future failure.
@@ -1762,30 +1769,38 @@
 		set variant ""
 		foreach i $ilist {
 			set variant [lindex $i 3]
-			set version "[lindex $i 1]_[lindex $i 2]"
-			if { [rpm-vercomp $version $version_installed] > 0} {
+			set version [lindex $i 1]
+			set revision [lindex $i 2]
+			if { [rpm-vercomp $version $version_installed] > 0
+					|| ([rpm-vercomp $version $version_installed] == 0
+						&& [rpm-vercomp $revision $revision_installed] > 0)} {
 				set version_installed $version
+				set revision_installed $revision
 				set epoch_installed [registry::property_retrieve [registry::open_entry $portname [lindex $i 1] [lindex $i 2] $variant] epoch]
 				set num $i
 			}
 
 			set isactive [lindex $i 4]
-			if {$isactive == 1 && [rpm-vercomp $version_installed $version] < 0 } {
-				# deactivate version
-    			if {[catch {portimage::deactivate $portname $version $optionslist} result]} {
-					global errorInfo
-					ui_debug "$errorInfo"
-    	    		ui_error "Deactivating $portname $version_installed failed: $result"
-    	    		return 1
-    			}
+			if {$isactive == 1} {
+				if { [rpm-vercomp $version_installed $version] < 0
+						|| ([rpm-vercomp $version_installed $version] == 0
+							&& [rpm-vercomp $revision_installed $revision] < 0)} {
+					# deactivate version
+    				if {[catch {portimage::deactivate $portname $version $optionslist} result]} {
+						global errorInfo
+						ui_debug "$errorInfo"
+    	    			ui_error "Deactivating $portname $version_installed_$revision_installed failed: $result"
+    	    			return 1
+    				}
+				}
 			}
 		}
         if { [lindex $num 4] == 0 && 0 == [string compare "image" ${macports::registry.installtype}] } {
 			# activate the latest installed version
-			if {[catch {portimage::activate $portname $version_installed$variant $optionslist} result]} {
+			if {[catch {portimage::activate $portname ${version_installed}_$revision_installed$variant $optionslist} result]} {
 				global errorInfo
 				ui_debug "$errorInfo"
-    			ui_error "Activating $portname $version_installed failed: $result"
+    			ui_error "Activating $portname ${version_installed}_$revision_installed failed: $result"
 				return 1
 			}
 		}
@@ -1793,13 +1808,13 @@
 
 	# output version numbers
 	ui_debug "epoch: in tree: $epoch_in_tree installed: $epoch_installed"
-	ui_debug "$portname $version_in_tree exists in the ports tree"
-	ui_debug "$portname $version_installed is installed"
+	ui_debug "$portname ${version_in_tree}_$revision_in_tree exists in the ports tree"
+	ui_debug "$portname ${version_installed}_$revision_installed is installed"
 
 	# set the nodeps option  
 	if {![info exists options(ports_nodeps)]} {
 		set nodeps no
-	} else {	
+	} else {
 		set nodeps yes
 	}
 
@@ -1840,8 +1855,11 @@
 	}
 
 	# check installed version against version in ports
-	if { [rpm-vercomp $version_installed $version_in_tree] >= 0 && ![info exists options(ports_force)] } {
-		ui_debug "No need to upgrade! $portname $version_installed >= $portname $version_in_tree"
+	if { ( [rpm-vercomp $version_installed $version_in_tree] > 0
+			|| ([rpm-vercomp $version_installed $version_in_tree] == 0
+				&& [rpm-vercomp $revision_installed $revision_in_tree] >= 0 ))
+		&& ![info exists options(ports_force)] } {
+		ui_debug "No need to upgrade! $portname ${version_installed}_$revision_installed >= $portname ${version_in_tree}_$revision_in_tree"
 		if { $epoch_installed >= $epoch_in_tree } {
 			# Check if we have to do dependents
 			if {[info exists options(ports_do_dependents)]} {
@@ -1885,7 +1903,7 @@
 	foreach v $variant {
 		if {[lsearch $avariants $v] == -1} {
 		} else {
-			ui_debug "variant $v is present in $portname $version_in_tree"
+			ui_debug "variant $v is present in $portname ${version_in_tree}_$revision_in_tree"
 			set variations($v) "+"
 		}
 	}
@@ -1915,19 +1933,19 @@
 	# uninstall old ports
     if {[info exists options(port_uninstall_old)] || $epoch_override == 1 || [info exists options(ports_force)] || 0 != [string compare "image" ${macports::registry.installtype}] } {
 		# uninstall old
-		ui_debug "Uninstalling $portname $version_installed$oldvariant"
-		if {[catch {portuninstall::uninstall $portname $version_installed$oldvariant $optionslist} result]} {
+		ui_debug "Uninstalling $portname ${version_installed}_$revision_installed$oldvariant"
+		if {[catch {portuninstall::uninstall $portname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
 			global errorInfo
 			ui_debug "$errorInfo"
-     		ui_error "Uninstall $portname $version_installed$oldvariant failed: $result"
+     		ui_error "Uninstall $portname ${version_installed}_$revision_installed$oldvariant failed: $result"
        		return 1
     	}
 	} else {
 		# XXX deactivate version_installed
-		if {[catch {portimage::deactivate $portname $version_installed$oldvariant $optionslist} result]} {
+		if {[catch {portimage::deactivate $portname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
 			global errorInfo
 			ui_debug "$errorInfo"
-			ui_error "Deactivating $portname $version_installed failed: $result"
+			ui_error "Deactivating $portname ${version_installed}_$revision_installed failed: $result"
 			return 1
 		}
 	}
@@ -1935,7 +1953,7 @@
 	if {[catch {set result [mportexec $workername install]} result]} {
 		global errorInfo
 		ui_debug "$errorInfo"
-		ui_error "Couldn't activate $portname $version_in_tree$oldvariant: $result"
+		ui_error "Couldn't activate $portname ${version_in_tree}_$revision_in_tree$oldvariant: $result"
 		return 1
 	}
 

Modified: branches/release_1_5/base/src/macports1.0/macports_fastload.tcl.in
===================================================================
--- branches/release_1_5/base/src/macports1.0/macports_fastload.tcl.in	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/macports1.0/macports_fastload.tcl.in	2007-08-10 20:49:57 UTC (rev 27616)
@@ -43,8 +43,8 @@
 # installations) may experience problems due to different package loading
 # behavior.
 #
-if { ($tcl_version < 8.4) ||
-	(($tcl_version == 8.4) && ([lindex [split [info patchlevel] .] 3] < 7))} {
+if { [regexp {\d+\.\d+\.\d+} [info patchlevel]] &&
+        ([package vcompare [info patchlevel] 8.4.7] < 0) } {
 	global allpackages
 	if {![info exists allpackages]} {
 		# Only patch once.

Modified: branches/release_1_5/base/src/package1.0/portrpm.tcl
===================================================================
--- branches/release_1_5/base/src/package1.0/portrpm.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/package1.0/portrpm.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -52,7 +52,7 @@
 
 proc rpm_pkg {portname portversion portrevision} {
     global UI_PREFIX package.destpath portdbpath destpath workpath prefix portresourcepath categories maintainers description long_description homepage epoch portpath
-	global os.platform os.arch os.version
+	global os.platform os.arch os.version os.major
     
     set rpmdestpath ""
     if {![string equal ${package.destpath} ${workpath}] && ![string equal ${package.destpath} ""]} {
@@ -69,9 +69,12 @@
     if {[variant_isset "universal"]} {
         set rpmbuildarch "--target fat"
     }
+    if {false} {
+        set rpmbuildarch "--target noarch"
+    }
     
     foreach dir [list "${prefix}/src/macports/RPMS" "${prefix}/src/apple/RPMS" "/usr/src/apple/RPMS" "/macports/rpms/RPMS"] {
-        foreach arch {"ppc" "i386" "fat"} {
+        foreach arch {"ppc" "i386" "fat" "noarch"} {
             set rpmpath "$dir/${arch}/${portname}-${portversion}-${portrevision}.${arch}.rpm"
 	    if {[file readable $rpmpath] && ([file mtime ${rpmpath}] >= [file mtime ${portpath}/Portfile])} {
                 ui_debug "$rpmpath"
@@ -108,8 +111,7 @@
     }
 
 	# depend on system (virtual packages for apple stuff)
-	regexp {[0-9]+} ${os.version} major
-	lappend dependencies "org.macports.${os.platform}${major}"
+	lappend dependencies "org.macports.${os.platform}${os.major}"
     
     set listpath ${workpath}/${portname}.filelist
     system "rm -f '${workpath}/${portname}.filelist' && touch '${workpath}/${portname}.filelist'"

Modified: branches/release_1_5/base/src/package1.0/portsrpm.tcl
===================================================================
--- branches/release_1_5/base/src/package1.0/portsrpm.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/package1.0/portsrpm.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -53,7 +53,7 @@
 
 proc srpm_pkg {portname portversion portrevision} {
     global UI_PREFIX package.destpath portdbpath destpath workpath distpath prefix portresourcepath categories maintainers description long_description homepage epoch portpath distfiles fetch_urls
-	global os.platform os.arch os.version
+	global os.platform os.arch os.version os.major
     
     set rpmdestpath ""
     if {![string equal ${package.destpath} ${workpath}] && ![string equal ${package.destpath} ""]} {

Modified: branches/release_1_5/base/src/pextlib1.0/Makefile
===================================================================
--- branches/release_1_5/base/src/pextlib1.0/Makefile	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/pextlib1.0/Makefile	2007-08-10 20:49:57 UTC (rev 27616)
@@ -8,6 +8,9 @@
 include ../../Mk/macports.autoconf.mk
 include ../../Mk/macports.tea.mk
 
+CFLAGS+= ${CURL_CFLAGS} ${MD5_CFLAGS} ${READLINE_CFLAGS}
+LIBS+= ${CURL_LIBS} ${MD5_LIBS} ${READLINE_LIBS}
+
 .PHONY: test
 
 test:: ${SHLIB_NAME}

Modified: branches/release_1_5/base/src/port/Makefile
===================================================================
--- branches/release_1_5/base/src/port/Makefile	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port/Makefile	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1,4 +1,3 @@
-MAN1=		port.1
 INSTALLDIR=	${DESTDIR}${prefix}
 TOPSRCDIR=	../..
 SCRIPTS=	portmirror portindex port
@@ -31,7 +30,6 @@
 distclean: clean
 
 install: mkdirs
-	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 port.1 ${INSTALLDIR}/share/man/man1
 	$(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}/bin
 	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 555 port portindex portmirror ${INSTALLDIR}/bin/
 	cd ${INSTALLDIR}/bin && $(LN_S) -f port portf

Deleted: branches/release_1_5/base/src/port/port.1
===================================================================
--- branches/release_1_5/base/src/port/port.1	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port/port.1	2007-08-10 20:49:57 UTC (rev 27616)
@@ -1,548 +0,0 @@
-.\" port.1
-.\"
-.\" Copyright (c) 2002 Apple Computer, Inc.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of Apple Computer, Inc. nor the names of its
-.\"    contributors may be used to endorse or promote products derived from
-.\"    this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-.\" POSSIBILITY OF SUCH DAMAGE.
-.\"
-.Dd April 29, 2007
-.Dt PORT 1 "MacPorts"
-.Os
-.Sh NAME
-.Nm port
-.Nd operate on individual or multiple Mac
-.Ar ports
-.Sh SYNOPSIS
-.Nm
-.Op Fl vdqfonRusbckixpt
-.Op Fl D Ar portdir
-.Op Fl F Ar cmdfile
-.Op Ar action
-.Op Ar actionflags
-.Op Oo Ar portname | pseudo-portname | port-url Oc
-.Op Oo Ar @version Oc Oo +/-variant ... Oc ... Oo option=value ... Oc
-.Sh DESCRIPTION
-.Nm
-is designed to operate on individual or multiple Mac
-.Ar ports ,
-optionally within a single call, based on the requested
-.Ar action .
-If no
-.Ar portdir
-or
-.Ar portname
-is specified, the current working directory is assumed; if no
-.Ar action
-is specified the port command enters interactive mode, in which commands are read via stdin. Batch commands may be
-passed via a
-.Ar cmdfile .
-Port 
-.Ar options 
-are passed as key=value pairs and take precedence over individual
-.Ar portname
-options as specified in its Portfile and system-wide settings.
-.Pp
-Port
-.Ar variants
-can specified as
-.Ar +name ,
-which indicates the variant is desired, or
-.Ar -name ,
-indicating the contrary. In case of ambiguities, a port can be fully specified with the
-.Ar @version_revision+variants
-format.
-.Pp
-Installed ports can be activated or deactivated without being uninstalled. A port can be installed if all other
-version/variant(s) combinations installed at any given moment are deactivated.
-.Pp
-The
-.Nm
-command knows various
-.Ar pseudo-portnames
-that will expand to the specified set of ports from the available ports tree(s). These may be used in place of a
-.Ar portname .
-Common options are:
-.Pp
-.Bl -bullet -offset indent -compact
-.It
-.Ar all :
-all the ports in each ports tree listed in
-.Ar sources.conf
-.Pp
-.It
-.Ar current :
-the port in the current working directory.
-.Pp
-.It
-.Ar active :
-set of installed and active ports.
-.Pp
-.It
-.Ar inactive :
-set of installed but inactive ports.
-.Pp
-.It
-.Ar installed :
-set of all installed ports.
-.Pp
-.It
-.Ar uninstalled :
-ports in the ports tree(s) that aren't installed.
-.Pp
-.It
-.Ar outdated :
-installed ports that are out of date with respect to their current version/revision in the ports tree(s)
-.Pp
-.El
-Other options, also known as
-.Ar pseudo-portname selectors ,
-matching the most common keys used in a
-.Ar Portfile
-are also accepted, in both singular and plural form where applicable. These are:
-.Pp
-.Bl -bullet -offset indent -compact
-.It
-.Ar name
-.It
-.Ar version
-.It
-.Ar revision
-.It
-.Ar epoch
-.It
-.Ar variant
-.It
-.Ar variants
-.It
-.Ar category
-.It
-.Ar categories
-.It
-.Ar maintainer
-.It
-.Ar maintainers
-.It
-.Ar platform
-.It
-.Ar platforms
-.It
-.Ar description
-.It
-.Ar long_description
-.It
-.Ar homepage
-.It
-.Ar portdir
-.El
-.Pp
-Search strings that will expand to a set of matching ports can be constructed based on the 
-.Ar \(rqpseudo-portname selector\(lq:regex
-combination used.
-.Ar portnames
-containing valid UNIX glob patterns will also expand to the set of matching ports. Any
-.Ar action
-passed to
-.Nm
-will be invoked on each of them. For example:
-.Pp
-.Dl port list variant:no_ssl
-.Dl port uninstall name:sql
-.\" COMMENT: glob pattern expansion in portnames:
-.\" write an example here that illustrats better glob pattern expansion in portnames, but that does not employ
-.\" logical operators (and, or, not, !) because I still haven't gotten to them yet.
-.Dl port echo apache*
-.Pp
-Logical operators "and", "or", "not", "!", "(" and ")" may be used to combine individual
-.Ar portnames ,
-port glob patterns and/or
-.Ar pseudo-portnames
-to construct complex port expressions that expand to the set of matching ports. For example:
-.Pp
-.Dl port upgrade installed and "apache*"
-.Dl port echo maintainer:jberry and uninstalled and \e(\ category:java and not commons*\ \e)
-.\" COMMENT: more complex exmaples here would be useful.
-.\" PENDING: port-url explanation. Proposed text:
-.\".Pp
-.\"A
-.\".Ar portname
-.\"may also be specified as a URL pointing to the location of the
-.\".Ar portdir
-.\" ...
-.Pp
-The
-.Nm
-command also recognizes several command line flags and
-.Ar targets :
-.Sh OPTIONS
-.Bl -tag -width -indent
-.It Fl v
-verbose mode (generate verbose messages)
-.It Fl d
-debug mode (generate debugging messages, implies
-.Fl v )
-.It Fl q
-quiet mode (suppress messages)
-.It Fl n
-don't follow dependencies in upgrade (only for upgrading)
-.It Fl R
-also upgrade dependents (only for upgrading)
-.It Fl u
-uninstall non-active ports when upgrading and uninstalling
-.It Fl f
-force mode (ignore state file)
-.It Fl o
-honor state files older than Portfile
-.It Fl s
-source-only mode (build and install from source, ignore all binary archives, do not create/recreate binary archives) (only applies when archive mode is enabled)
-.It Fl b
-binary-only mode (build and install from binary archives, ignore source, abort if no archive present; do not create/recreate binary archives from source) (only applies when archive mode is enabled)
-.It Fl c
-autoclean mode (execute clean after install)
-.It Fl k
-keep mode (don't autoclean after install)
-.It Fl D
-specify
-.Ar portdir
-.It Fl F
-Read and process the
-.Ar file
-of commands specified by the argument. If the argument is '-', then read commands from stdin. If the option is given multiple times, then multiple files will be read.
-.It Fl i
-Read commands from stdin. Short for -F -
-.It Fl x
-In batch and interactive mode, exit on the first error encountered. Otherwise, errors during batch execution are simply reported.
-.It Fl p
-Despite any errors encountered, proceed to process multiple ports and commands.
-.It Fl t
-enable trace mode debug facilities on platforms that support it (MacOS X). This feature is two-folded. It consists in automatically detecting and reporting undeclared dependencies based on what files the port reads or what programs the port executes. In verbose mode, it will also report unused dependencies for each stage of the port installation. It also consists in forbidding and reporting file creation and file writes outside allowed directories (temporary directories and ${workpath}).
-.El
-.Sh USER TARGETS
-Targets most commonly used by regular MacPorts users are:
-.Ss search
-Search for an available port whose name matches a regular expression. For example:
-.Pp
-.Dl "port search vim"
-.Pp
-.Ss info
-Displays all the meta-information available for
-.Ar portname .
-Specific meta-information may be requested through an option such as
-.Fl -maintainer
-or
-.Fl -category
-(recognized field names are those from the PortIndex). If the global option
-.Fl q
-is in effect, the meta-info fields will not be labeled.
-If the option
-.Fl -line
-is provided, all such data will be consolidated into a single line per port,
-suitable for processing in a pipe of commands.
-If the option
-.Fl -index
-is provided, the information will be pulled from the PortIndex rather than
-from the Portfile (in this case variant information, such as dependencies,
-will not affect the output).
-.Pp
-For example:
-.br
-.Dl "port info vim +ruby"
-.Dl "port info --category --name apache*"
-.Dl "port -q info --category --name --version category:java"
-.Dl "port info --line --category --name all"
-.Dl "port info --index python24"
-.Ss variants
-Lists the build variants available for
-.Ar portname .
-.Ss deps
-Lists the other ports that are required to build and run
-.Ar portname .
-.Ss dependents
-Lists the installed ports that depend on the port
-.Ar portname .
-.Ss install
-Install and activate
-.Ar portname .
-.Ss uninstall
-Deactivate and uninstall
-.Ar portname .
-To uninstall all installed but inactive ports, use
-.Fl u .
-For example:
-.Pp
-.Dl "port uninstall vim"
-.Dl "port -u uninstall"
-.Ss activate
-Activate the installed
-.Ar portname .
-.Ss deactivate
-Deactivate the installed
-.Ar portname .
-.Ss installed
-List all installed ports.
-.Ss location
-Print the install location of a given port.
-.Ss contents
-Lists the files installed by
-.Ar portname .
-.Ss provides
-Determines which port owns a given file and can take either a relative or absolute path. For example:
-.Pp
-.Dl "port provides /opt/local/etc/irssi.conf"
-.Dl "port provides include/tiff.h"
-.Ss sync
-Performs a sync operation only on the ports tree of a MacPorts installation, pulling in the latest
-revision available of the
-.Ar Portfiles
-from the MacPorts rsync server. To update you would normally do:
-.Pp
-.Dl "sudo port -d sync"
-.Pp
-If any of the ports tree(s) uses a file: URL that points to a local subversion working copy,
-.Ic sync
-will perform an
-.Ic "svn update"
-on the working copy with the user set to the owner of the working copy.
-.Ss outdated
-List the installed ports that need upgrading.
-.Ss upgrade
-The upgrade target works on a port and its dependencies. If you
-want to change this behaviour, look at the switches for n (no
-dependencies) and R (dependents) below.
-.Pp    
-Upgrade the installed
-.Ar portname .
-For example:
-.Pp
-.Dl "port upgrade vim"
-.Pp
-To upgrade all installed ports:
-.Pp
-.Dl "port upgrade installed"
-.Pp
-To upgrade
-.Ar portname
-and the ports that depend on it:
-.Pp
-.Dl "port -R upgrade libiconv"
-.Pp
-To force an upgrade (rebuild) use:
-.Pp
-.Dl "port -f upgrade vim"
-.Pp
-To upgrade
-.Ar portname
-without following its dependencies, use
-.Fl n .
-For example:
-.Pp
-.Dl "port -n upgrade ethereal"
-.Ss clean
-Clean the files used for building
-.Ar portname .
-To just remove the work files, use the
-.Fl -work
-.Ar actionflag .
-To remove the distribution files (tarballs, etc), specify
-.Fl -dist .
-To remove the archive(s) for the current version of a port, pass
-.Fl -archive .
-To remove the work files, distribution files and archives, pass
-.Fl -all .
-For example:
-.Pp
-.Dl "port clean --dist vim"
-.Dl "port clean --archive vim"
-.Pp
-To remove only certain version(s) of a port's archives (
-.Ar version
-is any valid UNIX glob pattern), you can use:
-.Pp
-.Dl "port clean --archive vim 6.2.114"
-.Pp
-or:
-.Pp
-.Dl "port clean --archive vim '6.*'"
-.Ss echo
-Writes to stdout the arguments passed to
-.Nm .
-This follows the expansion of
-.Ar pseudo-portnames ,
-portname glob patterns,
-.Ar pseudo-portname selectors
-and the evaluation of port expressions.
-.Nm echo 
-may be used to determine the exact set of ports to which a given string of arguments will expand, without performing any further operations on them. For example:
-.Pp
-.Dl port echo category:net
-.Dl port echo maintainer:jmpp and name:netw
-.Dl port echo maintainer:jmpp and \e(\ net* or category:text\ \e)
-.Pp
-.Ss list
-If no argument is given, display a list of the the latest version of all available ports.
-If portname(s) are given as arguments, display a list of the latest version of each port.
-.Ss version
-Display the release number of the installed MacPorts infrastructure.
-.Ss selfupdate
-Updates the MacPorts system, ports tree(s) and base tools if needed, from the MacPorts rsync server,
-installing the newest infrastructure available. To update you would typically do:
-.Pp
-.Dl "sudo port -d selfupdate"
-.Pp
-See
-.Ic sync
-for more information about updating ports tree(s).
-.Ss help
-Displays a summary of all available actions and port command syntax on stdout.
-.Sh DEVELOPER TARGETS
-The targets that are often used by Port developers are intended to provide access to the different phases of a Port's build process:
-.Ss dir
-Displays the path to the directory containing
-.Ar portname .
-.Ss file
-Displays the path to the Portfile for
-.Ar portname .
-.Ss cat
-Concatenates and prints the contents of
-.Ar Portfile
-on stdout.
-.Ss edit
-Opens
-.Ar Portfile 
-with your default editor specified in your shell's environment variable. Alias
-.Ar ed
-also invokes this command.
-.Ss unarchive
-Unpack the port from a pre-built binary archive. When archive mode is enabled, this command is called automatically, prior to
-.Ar fetch ,
-to check for an existing binary archive to unpack. If found, it is unpacked and all stages up to
-.Ar install
-are then skipped.
-.Ss fetch
-Fetches the distribution files required to build
-.Ar portname .
-.Ss checksum
-Compute the checksums of the distribution files for 
-.Ar portname ,
-and compare them to the checksums listed in 
-.Ar Portfile .
-.Ss extract
-Extracts the distribution files for
-.Ar portname .
-.Ss patch
-Applies any required patches to 
-.Ar portname's
-extracted distribution files.
-.Ss configure
-Runs any configure process for
-.Ar portname .
-.Ss build
-Build
-.Ar portname .
-.Ss destroot
-Installs
-.Ar portname
-to a temporary directory.
-.Ss test
-Tests
-.Ar portname .
-.Ss archive
-Archive the port for a later
-.Ar unarchive .
-When archive mode is enabled, binary archives will be created automatically whenever an
-.Ar install
-is performed, or when the
-.Ar archive
-target is called explicitly.
-.Ss distcheck
-Check if the distfiles haven't changed and can be fetched.
-.Ss livecheck
-Check if the software hasn't been updated since the Portfile was last modified.
-.Sh PACKAGING TARGETS
-There are also targets for producing installable packages of ports:
-.Pp
-.Ss pkg
-Creates an OS X installer package of
-.Ar portname.
-.Ss mpkg
-Creates an OS X installer metapackage of 
-.Ar portname
-and its dependencies.
-.Ss dmg
-Creates an internet-enabled disk image containing an OS X package of
-.Ar portname .
-.Ss rpm
-Creates an RPM binary package of
-.Ar portname ,
-similar to a tgz "archive".
-.Ss srpm
-Creates a SRPM source package of
-.Ar portname ,
-similar to a xar "portpkg".
-.Ss dpkg
-Creates a DEB binary package of
-.Ar portname .
-.Sh EXAMPLES
-The following demonstrates invoking
-.Nm
-with the
-.Ar extract
-target on
-.Ar portdir
-\&"textproc/figlet" and extract.suffix set to ".tgz":
-.Pp
-.Dl "port extract -D textproc/figlet extract.suffix=.tgz"
-.Pp
-.Sh FILES
-.Bl -tag -width
-.It Va ${prefix}/etc/macports/macports.conf
-Global configuration file for the MacPorts system.
-.It Va ${prefix}/etc/macports/sources.conf
-Global listing of the ports trees used by MacPorts. This file also enables rsync synchronization.
-.It Va ${prefix}/etc/macports/variants.conf
-Global variants used when a port is installed.
-.It Va ~/.macports/macports.conf
-User configuration file for the MacPorts system. It overrides the global
-.Ar ports.conf
-file.
-.El
-.Sh DIAGNOSTICS
-.Ex -std
-.Sh SEE ALSO
-.Xr macports.conf 5 ,
-.Xr portfile 7 ,
-.Xr portgroup 7 ,
-.Xr portstyle 7 ,
-.Xr porthier 7
-.Sh AUTHORS
-.An "Landon Fuller" Aq landonf at macports.org
-.An "James Berry" Aq jberry at macports.org
-.An "Jordan K. Hubbard" Aq jkh at macports.org
-.An "Juan Manuel Palacios" Aq jmpp at macports.org
-.An "Kevin Van Vechten" Aq kevin at opendarwin.org
-.An "Ole Guldberg Jensen" Aq olegb at opendarwin.org
-.An "Robert Shaw" Aq rshaw at opendarwin.org
-.An "Chris Ridd" Aq cjr at opendarwin.org
-.An "Matt Anton" Aq matt at opendarwin.org
-.An "Joe Auty" Aq joe at opendarwin.org

Modified: branches/release_1_5/base/src/port/port.tcl
===================================================================
--- branches/release_1_5/base/src/port/port.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port/port.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -2195,7 +2195,6 @@
 	file		action_portcmds
 	gohome		action_portcmds
 	
-	depends		action_target
 	fetch		action_target
 	checksum	action_target
 	extract		action_target

Modified: branches/release_1_5/base/src/port1.0/portconfigure.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/portconfigure.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/portconfigure.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -3,6 +3,7 @@
 # $Id$
 #
 # Copyright (c) 2002 - 2003 Apple Computer, Inc.
+# Copyright (c) 2007 Markus W. Weissmann <mww at macports.org>
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -67,6 +68,16 @@
 default configure.universal_cxxflags	{"-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"}
 default configure.universal_ldflags		{"-arch i386 -arch ppc"}
 
+# Select a distinct compiler (C, C preprocessor, C++)
+options configure.cc configure.cxx configure.cpp configure.f77 configure.f90 configure.fc configure.compiler
+default configure.cc			{}
+default configure.cxx			{}
+default configure.cpp			{}
+default configure.f77			{}
+default configure.f90			{}
+default configure.fc			{}
+default configure.compiler		{}
+
 set_ui_prefix
 
 proc configure_start {args} {
@@ -79,6 +90,7 @@
     global [info globals]
     global worksrcpath use_configure use_autoconf use_automake use_xmkmf
     global configure.env configure.cflags configure.cppflags configure.cxxflags configure.ldflags
+    global configure.cc configure.cxx configure.cpp configure.f77 configure.f90 configure.fc configure.compiler prefix
     
     if {[tbool use_automake]} {
 	# XXX depend on automake
@@ -93,6 +105,54 @@
 	    return -code error "[format [msgcat::mc "%s failure: %s"] autoconf $result]"
 	}
     }
+
+    # select a compiler collection
+    switch -exact ${configure.compiler} {
+        gcc-3.3 {
+            ui_debug "Using Mac OS X gcc 3.3"
+            set configure.cc "/usr/bin/gcc-3.3"
+            set configure.cxx "/usr/bin/g++-3.3"
+            set configure.cpp "/usr/bin/cpp-3.3" }
+        gcc-4.0 {
+            ui_debug "Using Mac OS X gcc 4.0"
+            set configure.cc "/usr/bin/gcc-4.0"
+            set configure.cxx "/usr/bin/g++-4.0"
+            set configure.cpp "/usr/bin/cpp-4.0" }
+        macports-gcc-4.0 {
+            ui_debug "Using MacPorts gcc 4.0"
+            set configure.cc "${prefix}/bin/gcc-mp-4.0"
+            set configure.cxx "${prefix}/bin/g++-mp-4.0"
+            set configure.cpp "${prefix}/bin/cpp-mp-4.0"
+            set configure.fc "${prefix}/bin/gfortran-mp-4.0"
+            set configure.f77 "${prefix}/bin/gfortran-mp-4.0"
+            set configure.f90 "${prefix}/bin/gfortran-mp-4.0" }
+        macports-gcc-4.1 {
+            ui_debug "Using MacPorts gcc 4.1"
+            set configure.cc "${prefix}/bin/gcc-mp-4.1"
+            set configure.cxx "${prefix}/bin/g++-mp-4.1"
+            set configure.cpp "${prefix}/bin/cpp-mp-4.1"
+            set configure.fc "${prefix}/bin/gfortran-mp-4.1"
+            set configure.f77 "${prefix}/bin/gfortran-mp-4.1"
+            set configure.f90 "${prefix}/bin/gfortran-mp-4.1" }
+        macports-gcc-4.2 {
+            ui_debug "Using MacPorts gcc 4.2"
+            set configure.cc "${prefix}/bin/gcc-mp-4.2"
+            set configure.cxx "${prefix}/bin/g++-mp-4.2"
+            set configure.cpp "${prefix}/bin/cpp-mp-4.2"
+            set configure.fc "${prefix}/bin/gfortran-mp-4.2"
+            set configure.f77 "${prefix}/bin/gfortran-mp-4.2"
+            set configure.f90 "${prefix}/bin/gfortran-mp-4.2" }
+        macports-gcc-4.3 {
+            ui_debug "Using MacPorts gcc 4.3"
+            set configure.cc "${prefix}/bin/gcc-mp-4.3"
+            set configure.cxx "${prefix}/bin/g++-mp-4.3"
+            set configure.cpp "${prefix}/bin/cpp-mp-4.3"
+            set configure.fc "${prefix}/bin/gfortran-mp-4.3"
+            set configure.f77 "${prefix}/bin/gfortran-mp-4.3"
+            set configure.f90 "${prefix}/bin/gfortran-mp-4.3" }
+        default {
+            ui_debug "No compiler collection selected explicitly" }
+    }
     
     if {[tbool use_xmkmf]} {
 		# XXX depend on xmkmf
@@ -108,6 +168,12 @@
     	parse_environment configure
 
     	# Append configure flags.
+		append_list_to_environment_value configure "CC" ${configure.cc}
+		append_list_to_environment_value configure "CPP" ${configure.cpp}
+		append_list_to_environment_value configure "CXX" ${configure.cxx}
+		append_list_to_environment_value configure "FC" ${configure.fc}
+		append_list_to_environment_value configure "F77" ${configure.f77}
+		append_list_to_environment_value configure "F90" ${configure.f90}
 		append_list_to_environment_value configure "CFLAGS" ${configure.cflags}
 		append_list_to_environment_value configure "CPPFLAGS" ${configure.cppflags}
 		append_list_to_environment_value configure "CXXFLAGS" ${configure.cxxflags}

Modified: branches/release_1_5/base/src/port1.0/portdestroot.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/portdestroot.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/portdestroot.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -42,6 +42,7 @@
 
 # define options
 options destroot.target destroot.destdir destroot.clean destroot.keepdirs destroot.umask
+options destroot.violate_mtree
 options startupitem.create startupitem.requires startupitem.init
 options startupitem.name startupitem.start startupitem.stop startupitem.restart
 options startupitem.type startupitem.executable
@@ -58,6 +59,7 @@
 default destroot.umask {$system_options(destroot_umask)}
 default destroot.clean no
 default destroot.keepdirs ""
+default destroot.violate_mtree no
 
 default startupitem.name		{${portname}}
 default startupitem.init		""
@@ -105,7 +107,7 @@
 }
 
 proc destroot_finish {args} {
-    global UI_PREFIX destroot prefix portname startupitem.create destroot::oldmask
+    global UI_PREFIX destroot prefix portname startupitem.create destroot::oldmask destroot.violate_mtree
 	global os.platform os.version
 
     # Create startup-scripts/items
@@ -221,6 +223,39 @@
 		ui_debug "Deleting stray info/dir file."
 	    file delete "${destroot}${prefix}/share/info/dir"
 	}
+
+	# test for violations of mtree
+	if { ${destroot.violate_mtree} != "yes" } {
+		ui_debug "checking for mtree violations"
+		set mtree_violation "no"
+
+		# test files in ${prefix}
+		foreach f [glob -directory "${destroot}${prefix}" *] {
+			set c [file tail ${f}]
+			# ignore bin, sbin, ... and only fail on other names
+			switch ${c} {
+				bin { }
+				etc { }
+				include { }
+				lib { }
+				libexec { }
+				sbin { }
+				share { }
+				var { }
+				www { }
+				Applications { }
+				Library { }
+				default { ui_error "violation by ${prefix}/${c}"
+					set mtree_violation "yes" }
+			}
+		}
+
+		# abort here only so all violations can be observed
+		if { ${mtree_violation} != "no" } {
+			error "mtree violation!"
+		}
+	}
+
     # Restore umask
     umask $oldmask
 

Modified: branches/release_1_5/base/src/port1.0/portlivecheck.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/portlivecheck.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/portlivecheck.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -128,7 +128,7 @@
 		}
 	}
 	
-	# de-escape livehcheck.url
+	# de-escape livecheck.url
 	set livecheck.url [join ${livecheck.url}]
 	
 	switch ${livecheck.check} {
@@ -142,7 +142,8 @@
 				# let's extract the version from the file.
 				set chan [open $tempfile "r"]
 				set updated -1
-				set the_re [subst -nocommands [join ${livecheck.regex}]]
+				set the_re [subst -nocommands -nobackslashes [join ${livecheck.regex}]]
+				ui_debug "The regex is >$the_re<"
 				if {${livecheck.check} == "regexm"} {
 					set data [read $chan]
 					if {[regexp $the_re $data matched updated_version]} {
@@ -171,8 +172,6 @@
 				}
 				close $chan
 				if {$updated < 0} {
-					ui_debug "regex is >$the_re<"
-					ui_debug "url is >${livecheck.url}<"
 					ui_error "cannot check if $portname was updated (regex didn't match)"
 				}
 			}

Modified: branches/release_1_5/base/src/port1.0/portmain.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/portmain.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/portmain.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -42,7 +42,7 @@
 # define options
 options prefix name version revision epoch categories maintainers
 options long_description description homepage
-options worksrcdir filesdir distname portdbpath libpath distpath sources_conf os.platform os.version os.arch os.endian platforms default_variants install.user install.group
+options worksrcdir filesdir distname portdbpath libpath distpath sources_conf os.platform os.version os.major os.arch os.endian platforms default_variants install.user install.group
 
 # Export options via PortInfo
 options_export name version revision epoch categories maintainers platforms description long_description homepage
@@ -82,9 +82,11 @@
 # Platform Settings
 set os_arch $tcl_platform(machine)
 if {$os_arch == "Power Macintosh"} { set os_arch "powerpc" }
+set os_major [lindex [split $tcl_platform(osVersion) .] 0]
 
 default os.platform {[string tolower $tcl_platform(os)]}
 default os.version {$tcl_platform(osVersion)}
+default os.major {$os_major}
 default os.arch {$os_arch}
 # Remove trailing "Endian"
 default os.endian {[string range $tcl_platform(byteOrder) 0 end-6]}

Modified: branches/release_1_5/base/src/port1.0/portutil.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/portutil.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/portutil.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -485,7 +485,7 @@
 # Basically, just wrap 'variant', so that Portfiles' platform declarations can
 # be more readable, and support arch and version specifics
 proc platform {args} {
-    global all_variants PortInfo os.platform os.arch os.version
+    global all_variants PortInfo os.platform os.arch os.version os.major
     
     set len [llength $args]
     set code [lindex $args end]
@@ -522,9 +522,8 @@
     set matches 1
     if {[info exists os.platform] && ${os.platform} == $os} { 
 	set sel_platform $os
-	if {[info exists os.version] && [info exists release]} {
-	    regexp {([0-9]*)[0-9\.]?} ${os.version} match major
-	    if {$major == $release } { 
+	if {[info exists os.major] && [info exists release]} {
+	    if {${os.major} == $release } { 
 	    	set sel_platform ${sel_platform}_${release} 
 	    } else {
 		    set matches 0

Modified: branches/release_1_5/base/src/port1.0/resources/fetch/mirror_sites.tcl
===================================================================
--- branches/release_1_5/base/src/port1.0/resources/fetch/mirror_sites.tcl	2007-08-10 20:30:15 UTC (rev 27615)
+++ branches/release_1_5/base/src/port1.0/resources/fetch/mirror_sites.tcl	2007-08-10 20:49:57 UTC (rev 27616)
@@ -129,13 +129,6 @@
     http://svn.macports.org/repository/macports/downloads/
 }
 
-set portfetch::mirror_sites::sites(opendarwin) {
-    http://distfiles-od.opendarwin.org/:mirror
-    http://distfiles-msn.opendarwin.org/:mirror
-    http://distfiles-od.opendarwin.org/:nosubdir
-    http://distfiles-msn.opendarwin.org/:nosubdir
-}
-
 set portfetch::mirror_sites::sites(perl_cpan) {
     http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/
     ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070810/71784f31/attachment.html


More information about the macports-changes mailing list