[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