[38641] branches/gsoc08-privileges/base

pmagrath at macports.org pmagrath at macports.org
Sat Jul 26 09:19:18 PDT 2008


Revision: 38641
          http://trac.macosforge.org/projects/macports/changeset/38641
Author:   pmagrath at macports.org
Date:     2008-07-26 09:19:18 -0700 (Sat, 26 Jul 2008)
Log Message:
-----------
Merged revisions 38304,38315-38317,38331-38332,38344,38495-38497,38506,38556-38557,38577 via svnmerge from 
https://svn.macosforge.org/repository/macports/trunk/base

........
  r38304 | raimue at macports.org | 2008-07-15 06:33:22 +0100 (Tue, 15 Jul 2008) | 6 lines
  
  port1.0/portconfigure.tcl:
  Add a new command 'use_autoreconf'
  This can replace instances of 'system' in our Portfiles, especially when a port
  runs any combination of aclocal/autoconf/automake/, as autoreconf automatically
  figures out what needs to be run.
........
  r38315 | ryandesign at macports.org | 2008-07-15 10:38:03 +0100 (Tue, 15 Jul 2008) | 2 lines
  
  portbuild.tcl: simplify port output by no longer showing the build target; closes #15881
........
  r38316 | ryandesign at macports.org | 2008-07-15 10:44:14 +0100 (Tue, 15 Jul 2008) | 2 lines
  
  ChangeLog: Note fix for #15881
........
  r38317 | jmr at macports.org | 2008-07-15 13:47:07 +0100 (Tue, 15 Jul 2008) | 2 lines
  
  Don't use quotes when setting MACOSX_DEPLOYMENT_TARGET in the env_array, for consistency
........
  r38331 | jmr at macports.org | 2008-07-16 06:35:46 +0100 (Wed, 16 Jul 2008) | 2 lines
  
  ChangeLog: distfiles mirror is added to patch_sites too
........
  r38332 | jmr at macports.org | 2008-07-16 06:47:24 +0100 (Wed, 16 Jul 2008) | 2 lines
  
  ChangeLog: note the fix for the case-sensitive deactivate bug (#11759)
........
  r38344 | raimue at macports.org | 2008-07-16 16:00:40 +0100 (Wed, 16 Jul 2008) | 4 lines
  
  Makefile.in:
  Added the install line for setupenv.bash at the wrong place which prevented
  install to complete due to a missing directory.
........
  r38495 | wsiegrist at apple.com | 2008-07-22 19:09:32 +0100 (Tue, 22 Jul 2008) | 2 lines
  
  Add checks to cleanup exports leftover from failed mprsyncup runs
........
  r38496 | wsiegrist at apple.com | 2008-07-22 19:36:55 +0100 (Tue, 22 Jul 2008) | 2 lines
  
  Updating jobs scripts from servers:  Use a more appropriate tmp dir
........
  r38497 | wsiegrist at apple.com | 2008-07-22 19:40:15 +0100 (Tue, 22 Jul 2008) | 2 lines
  
  Adding scripts used on the servers for mirroring during post-commit and daily
........
  r38506 | rhwood at macports.org | 2008-07-23 10:43:14 +0100 (Wed, 23 Jul 2008) | 7 lines
  
  Armahg's patch to macports::ui_init for the GSOC08 frameworks project.
  
  This patch allows users of the Tcl API for MacPorts to define custom ui_*
  procedures message handling mechanisms.
  
  Closes #15913, committing per email and IRC conversation.
........
  r38556 | ryandesign at macports.org | 2008-07-25 07:58:30 +0100 (Fri, 25 Jul 2008) | 2 lines
  
  portbuild.tcl: allow parallel builds for scons too, not just for make
........
  r38557 | ryandesign at macports.org | 2008-07-25 08:06:16 +0100 (Fri, 25 Jul 2008) | 2 lines
  
  ChangeLog: note parallel build support for scons-based ports in r38556
........
  r38577 | afb at macports.org | 2008-07-25 10:44:33 +0100 (Fri, 25 Jul 2008) | 2 lines
  
  don't use build.nice for creative build.cmd lines (#16091)
........

Modified Paths:
--------------
    branches/gsoc08-privileges/base/ChangeLog
    branches/gsoc08-privileges/base/Makefile.in
    branches/gsoc08-privileges/base/portmgr/jobs/GuideRegen.sh
    branches/gsoc08-privileges/base/portmgr/jobs/mprsyncup
    branches/gsoc08-privileges/base/src/macports1.0/macports.tcl
    branches/gsoc08-privileges/base/src/port1.0/portbuild.tcl
    branches/gsoc08-privileges/base/src/port1.0/portconfigure.tcl
    branches/gsoc08-privileges/base/src/port1.0/portutil.tcl

Added Paths:
-----------
    branches/gsoc08-privileges/base/portmgr/jobs/mirror_macports.sh
    branches/gsoc08-privileges/base/portmgr/jobs/portfile_mirror.pl

Property Changed:
----------------
    branches/gsoc08-privileges/base/


Property changes on: branches/gsoc08-privileges/base
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk/base:1-38276
   + /trunk/base:1-38640

Modified: branches/gsoc08-privileges/base/ChangeLog
===================================================================
--- branches/gsoc08-privileges/base/ChangeLog	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/ChangeLog	2008-07-26 16:19:18 UTC (rev 38641)
@@ -5,6 +5,20 @@
 
 
 Unreleased:
+    - The buildmakejobs setting now also affects ports using the scons build
+      system, so now scons-based ports can be built in parallel too. Previously
+      only automake-based ports were supported. (ryandesign in r38556)
+
+    - User-supplied port names are now treated in a fully case-insensitive
+      manner. This fixes a bug where giving the name with incorrect case when
+      deactivating/uninstalling would cause all the port's files to be left
+      behind. (#11759, jmr/raimue in r37349, 37621)
+    
+    - The non-verbose output for the build phase no longer shows what target
+      was used. This makes the build phase consistent with the other phases
+      which also do not show details. If details are desired, the debug or
+      verbose switches should be used. (#15881, raimue/ryandesign in r38315)
+
     - Make missing sed extended regexp (for reinplace -E) into a runtime error.
       (#15577, afb in r37501)
 
@@ -14,7 +28,8 @@
       running (raimue)
 
     - We now have a mirror of (almost) all distfiles at distfiles.macports.org,
-      and it is automatically appended to master_sites (#15456, jmr in r37217)
+      and it is automatically appended to master_sites and patch_sites (#15456,
+      jmr in r37217, 37255)
 
     - port search looks now in name, description and long_description for the
       search pattern and prints the list sorted (#15434, raimue in r37119,

Modified: branches/gsoc08-privileges/base/Makefile.in
===================================================================
--- branches/gsoc08-privileges/base/Makefile.in	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/Makefile.in	2008-07-26 16:19:18 UTC (rev 38641)
@@ -32,12 +32,12 @@
 include Mk/macports.upgrade.mk
 
 install:: upgrade
-	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 setupenv.bash  ${datadir}/macports/
 	[ ! -f ${sysconfdir}/macports/mp_version ] || rm -vf ${sysconfdir}/macports/mp_version
 
 include Mk/macports.subdir.mk
 
 install::	
+	$(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 setupenv.bash  ${datadir}/macports/
 	@echo ""; echo "Congratulations, you have successfully installed the MacPorts system. To get the Portfiles and update the system, run:"; echo ""
 	@echo "sudo port -v selfupdate"; echo ""
 	@echo "Please read \"man port\", the MacPorts guide at http://guide.macports.org/ and Wiki at http://trac.macports.org/ for full documentation."; echo ""

Modified: branches/gsoc08-privileges/base/portmgr/jobs/GuideRegen.sh
===================================================================
--- branches/gsoc08-privileges/base/portmgr/jobs/GuideRegen.sh	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/portmgr/jobs/GuideRegen.sh	2008-07-26 16:19:18 UTC (rev 38641)
@@ -11,7 +11,7 @@
 # Configuration
 LOCKFILE=/tmp/.mp_svn_guide_regen.lock
 # ROOT directory, where everything is. This needs to exist!
-ROOT=/opt/mp_guide_regen
+ROOT=/var/tmp/macports/
 # e-mail address to spam in case of failure.
 SPAM_LOVERS=macports-dev at lists.macosforge.org,markd at macports.org,wsiegrist at apple.com
 

Copied: branches/gsoc08-privileges/base/portmgr/jobs/mirror_macports.sh (from rev 38577, trunk/base/portmgr/jobs/mirror_macports.sh)
===================================================================
--- branches/gsoc08-privileges/base/portmgr/jobs/mirror_macports.sh	                        (rev 0)
+++ branches/gsoc08-privileges/base/portmgr/jobs/mirror_macports.sh	2008-07-26 16:19:18 UTC (rev 38641)
@@ -0,0 +1,63 @@
+#!/bin/bash
+####
+# Run "port mirror" for each variant of each port 
+# Created by William Siegrist,
+# e-mail: wsiegrist at apple.com
+# $Id$
+####
+
+# regexp of ports that we do not mirror
+EXCLUSIONS='^(molden)$'
+
+# macports really wants this, so lets appease it
+export COLUMNS=80
+export LINES=24
+
+# send all output here
+LOG="/admin/var/log/macports.log"
+
+PORT="/opt/local/bin/port"
+CUT=/usr/bin/cut
+GREP=/usr/bin/grep
+XARGS=/usr/bin/xargs
+EGREP=/usr/bin/egrep
+
+exec >> $LOG 2>&1
+
+echo "------------------------------
+  Beginning mirror run 
+------------------------------";
+
+# for each port
+for P in `$PORT list | $CUT -f 1 -d " " | $EGREP -v $EXCLUSIONS`;
+do
+
+  NOW=`/bin/date`;
+  echo "TIME: ${NOW}";
+
+  # mirror with no variants
+  echo "Mirroring ${P}";
+  $PORT clean $P;
+  $PORT mirror $P;
+
+  # for each variant
+  for V in `$PORT variants $P | $GREP -v 'has no variants' | $GREP -v 'has the variants' | $CUT -d " " -f 1 | $CUT -d ":" -f 1 | $GREP -v universal | $XARGS`;
+  do
+    # mirror with each variant
+    echo "Mirroring ${P} +${V}";
+    $PORT clean $P; 
+    $PORT mirror $P +$V; 
+  done
+
+  # clean up the work area
+  $PORT clean --work $P;
+
+done
+
+# record the last time we mirrored
+/bin/date > /rsync/macports-san/distfiles/TIMESTAMP
+
+echo "------------------------------
+  End of mirror run 
+------------------------------";
+

Modified: branches/gsoc08-privileges/base/portmgr/jobs/mprsyncup
===================================================================
--- branches/gsoc08-privileges/base/portmgr/jobs/mprsyncup	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/portmgr/jobs/mprsyncup	2008-07-26 16:19:18 UTC (rev 38641)
@@ -58,7 +58,13 @@
 else
     ${SVN} checkout ${SVNURL}/trunk/base ${TBASE}
 fi
+
+# Delete old exports if they exist
+if [ -d ${TBASE}-export ]; then
+    $RM -rf ${TBASE}-export;
+fi
 ${SVN} export ${TBASE} ${TBASE}-export
+
 if [ ! -d ${RSYNCROOT}/trunk/base ]; then
     ${MKDIR} -p ${RSYNCROOT}/trunk
 fi
@@ -76,7 +82,13 @@
 else
     ${SVN} checkout ${RELEASE_URL} ${RBASE}
 fi
+
+# Delete old exports if they exist
+if [ -d ${RBASE}-export ]; then
+    $RM -rf ${RBASE}-export;
+fi
 ${SVN} export ${RBASE} ${RBASE}-export
+
 if [ ! -d ${RSYNCROOT}/release/base ]; then
     ${MKDIR} -p ${RSYNCROOT}/release/base
 fi
@@ -89,7 +101,13 @@
 else
     ${SVN} checkout ${SVNURL}/trunk/dports ${PORTS}
 fi
+
+# Delete old exports if they exist
+if [ -d ${PORTS}-export ]; then
+    $RM -rf ${PORTS}-export;
+fi
 ${SVN} export ${PORTS} ${PORTS}-export
+
 if [ ! -d ${RSYNCROOT}/release/ports ]; then
     ${MKDIR} -p ${RSYNCROOT}/release/ports
 fi

Copied: branches/gsoc08-privileges/base/portmgr/jobs/portfile_mirror.pl (from rev 38577, trunk/base/portmgr/jobs/portfile_mirror.pl)
===================================================================
--- branches/gsoc08-privileges/base/portmgr/jobs/portfile_mirror.pl	                        (rev 0)
+++ branches/gsoc08-privileges/base/portmgr/jobs/portfile_mirror.pl	2008-07-26 16:19:18 UTC (rev 38641)
@@ -0,0 +1,88 @@
+#!/opt/local/bin/perl -w
+###
+# Run "port mirror" for all Portfiles changed in a given revision
+# Created by William Siegrist,
+# e-mail: wsiegrist at apple.com
+# $Id$
+###
+
+use strict;
+use Mail::Sendmail;
+
+my $REPOPATH = "/svn/repositories/macports/";
+my $REPOHOST = "http://svn.macosforge.org/repository/macports";
+my $SVNLOOK = "/opt/local/bin/svnlook";
+my $PORTCMD = "/opt/local/bin/port";
+my $SVN = "/opt/local/bin/svn -q --non-interactive";
+my $MKDIR = "/bin/mkdir -p";
+
+my $rev = $ARGV[0] or usage();
+my $TMPROOT = "/tmp/mp_mirror/$rev";
+
+my @changes = `$SVNLOOK changed $REPOPATH -r $rev`;
+
+foreach my $change (@changes) {
+    if ($change =~ /Portfile/) { 
+	# remove svn status and whitespace
+	chop($change);
+	$change =~ s/\w\s+([\/\w]+)/$1/g; 
+	# extract the portname from parent dir of Portfile
+	my $port = $change;
+	$port =~ s/^.*\/([^\/]+)\/Portfile$/$1/g;
+
+	# get the group directory
+	my $group = $change;
+	$group =~ s/^.*\/([^\/]+)\/[^\/]+\/Portfile$/$1/g;	
+
+	# make a temporary work area
+	`$MKDIR $TMPROOT/$group/$port`;
+	chdir("$TMPROOT/$group/$port") or die("Failed to change dir for port: $port");	
+	`$SVN co $REPOHOST/trunk/dports/$group/$port/ .`;
+	
+	_mirror($port);
+    }
+}
+
+
+#
+# Subroutines
+#
+
+sub _mirror {
+    my ($port) = @_; 
+    my $errors = `sudo $PORTCMD -qc mirror`;
+
+    if ($errors) {
+	my $maintainers = `$PORTCMD -q info --maintainer $port`;
+	# strip everything but the email addresses
+	$maintainers =~ s/maintainer: //;
+	$maintainers =~ s/openmaintainer\@macports.org//;
+	$maintainers =~ s/nomaintainer\@macports.org//;
+	chop($maintainers);
+
+	_mail($port, $maintainers, $errors);
+    }
+}
+
+sub _mail {
+    my ($port, $maintainers, $errors) = @_;
+
+    my %mail = (
+             To => $maintainers,
+             From => 'noreply at macports.org',
+             Subject => "[MacPorts Mirror] Portfile Mirror Errors for: $port",
+             Message => "Portfile: $port \n\n\n Errors: $errors \n\n",
+             smtp => 'relay.apple.com',
+             );
+
+    sendmail(%mail) or die $Mail::Sendmail::error;
+}
+
+sub usage {
+	print "usage: portfile_mirror.pl <rev>\n";
+	exit();
+}
+
+
+
+

Modified: branches/gsoc08-privileges/base/src/macports1.0/macports.tcl
===================================================================
--- branches/gsoc08-privileges/base/src/macports1.0/macports.tcl	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/src/macports1.0/macports.tcl	2008-07-26 16:19:18 UTC (rev 38641)
@@ -77,6 +77,13 @@
 # ui_channels returns a list of channels to output the message to, empty for
 #     no message.
 # if these functions are not provided, defaults are used.
+# Clients of the library may optionally provide ui_init with the following
+# prototype.
+#     proc ui_init {priority prefix channels message}
+# ui_init needs to correctly define the proc ::ui_$priority {message} or throw
+# an error.
+# if this function is not provided or throws an error, default procedures for
+# ui_$priority are defined.
 
 # ui_options accessor
 proc macports::ui_isset {val} {
@@ -119,15 +126,19 @@
             set prefix [ui_prefix_default $priority]
         }
 
-        if {$nbchans == 1} {
-            set chan [lindex $channels 0]
-            proc ::ui_$priority {str} [subst { puts $chan "$prefix\$str" }]
-        } else {
-            proc ::ui_$priority {str} [subst {
-                foreach chan \$channels {
-                    puts $chan "$prefix\$str"
-                }
-            }]
+        try {
+            ::ui_init $priority $prefix $channels $message
+        } catch * {
+            if {$nbchans == 1} {
+                set chan [lindex $channels 0]
+                proc ::ui_$priority {str} [subst { puts $chan "$prefix\$str" }]
+            } else {
+                proc ::ui_$priority {str} [subst {
+                    foreach chan \$channels {
+                        puts $chan "$prefix\$str"
+                    }
+                }]
+            }
         }
 
         # Call ui_$priority

Modified: branches/gsoc08-privileges/base/src/port1.0/portbuild.tcl
===================================================================
--- branches/gsoc08-privileges/base/src/port1.0/portbuild.tcl	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/src/port1.0/portbuild.tcl	2008-07-26 16:19:18 UTC (rev 38641)
@@ -102,7 +102,7 @@
 }
 
 proc build_getnicevalue {args} {
-    if {![exists build.nice]} {
+    if {![exists build.nice] || [string match "* *" [option build.cmd]]} {
         return ""
     }
     set nice [option build.nice]
@@ -120,7 +120,7 @@
     }
     ui_debug "port allows a parallel build"
 
-    if {![exists build.jobs] || ![string match "*make*" [option build.cmd]]} {
+    if {![exists build.jobs] || !([string match "*make*" [option build.cmd]] || [string match "*scons*" [option build.cmd]])} {
         return ""
     }
     set jobs [option build.jobs]
@@ -137,11 +137,7 @@
 proc build_start {args} {
     global UI_PREFIX build.asroot  macportsuser euid egid
     
-    if {[string length [option build.target]]} {
-        ui_msg "$UI_PREFIX [format [msgcat::mc "Building %s with target %s"] [option portname] [option build.target]]"
-    } else {
-        ui_msg "$UI_PREFIX [format [msgcat::mc "Building %s"] [option portname]]"
-    }
+    ui_msg "$UI_PREFIX [format [msgcat::mc "Building %s"] [option portname]]"
     
     # start gsoc08-privileges
     if { [tbool build.asroot] } {

Modified: branches/gsoc08-privileges/base/src/port1.0/portconfigure.tcl
===================================================================
--- branches/gsoc08-privileges/base/src/port1.0/portconfigure.tcl	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/src/port1.0/portconfigure.tcl	2008-07-26 16:19:18 UTC (rev 38641)
@@ -40,12 +40,14 @@
 target_prerun ${org.macports.configure} configure_start
 
 # define options
-commands configure automake autoconf xmkmf libtool
+commands configure autoreconf automake autoconf xmkmf libtool
 # defaults
 default configure.env       ""
 default configure.pre_args  {--prefix=${prefix}}
 default configure.cmd       ./configure
 default configure.dir       {${worksrcpath}}
+default autoreconf.dir      {${worksrcpath}}
+default autoreconf.pre_args {--install}
 default autoconf.dir        {${worksrcpath}}
 default automake.dir        {${worksrcpath}}
 default xmkmf.cmd           xmkmf
@@ -281,12 +283,19 @@
 
 proc configure_main {args} {
     global [info globals]
-    global worksrcpath use_configure use_autoconf use_automake use_xmkmf
+    global worksrcpath use_configure use_autoreconf use_autoconf use_automake use_xmkmf
     global configure.env configure.pipe configure.cflags configure.cppflags configure.cxxflags configure.objcflags configure.ldflags configure.libs configure.fflags configure.f90flags configure.fcflags configure.classpath
     global configure.perl configure.python configure.ruby configure.install configure.awk configure.bison configure.pkg_config configure.pkg_config_path
     global configure.ccache configure.distcc configure.cc configure.cxx configure.cpp configure.objc configure.f77 configure.f90 configure.fc configure.javac configure.compiler prefix
     global os.platform os.major
     
+    if {[tbool use_autoreconf]} {
+        # XXX depend on autoreconf
+        if {[catch {command_exec autoreconf} result]} {
+            return -code error "[format [msgcat::mc "%s failure: %s"] autoreconf $result]"
+        }
+    }
+    
     if {[tbool use_automake]} {
         # XXX depend on automake
         if {[catch {command_exec automake} result]} {

Modified: branches/gsoc08-privileges/base/src/port1.0/portutil.tcl
===================================================================
--- branches/gsoc08-privileges/base/src/port1.0/portutil.tcl	2008-07-26 16:07:57 UTC (rev 38640)
+++ branches/gsoc08-privileges/base/src/port1.0/portutil.tcl	2008-07-26 16:19:18 UTC (rev 38641)
@@ -329,7 +329,7 @@
         parse_environment ${command}
     }
     if {[option macosx_deployment_target] ne ""} {
-        set ${command}.env_array("MACOSX_DEPLOYMENT_TARGET") [option macosx_deployment_target]
+        set ${command}.env_array(MACOSX_DEPLOYMENT_TARGET) [option macosx_deployment_target]
     }
     
     # Debug that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080726/f49268a7/attachment-0001.html 


More information about the macports-changes mailing list