[66611] branches/xterm-titles/base
raimue at macports.org
raimue at macports.org
Sat Apr 17 21:02:19 PDT 2010
Revision: 66611
http://trac.macports.org/changeset/66611
Author: raimue at macports.org
Date: 2010-04-17 21:02:17 -0700 (Sat, 17 Apr 2010)
Log Message:
-----------
Merge from trunk
Modified Paths:
--------------
branches/xterm-titles/base/configure
branches/xterm-titles/base/configure.ac
branches/xterm-titles/base/doc/portfile.7
branches/xterm-titles/base/portmgr/jobs/mirror_macports.sh
branches/xterm-titles/base/src/config.h.in
branches/xterm-titles/base/src/cregistry/Makefile
branches/xterm-titles/base/src/darwintracelib1.0/Makefile
branches/xterm-titles/base/src/macports1.0/macports.tcl
branches/xterm-titles/base/src/macports1.0/macports_fastload.tcl.in
branches/xterm-titles/base/src/macports1.0/sysctl.c
branches/xterm-titles/base/src/package1.0/portarchivefetch.tcl
branches/xterm-titles/base/src/pextlib1.0/Pextlib.c
branches/xterm-titles/base/src/pextlib1.0/rmd160cmd.c
branches/xterm-titles/base/src/pextlib1.0/sha1cmd.c
branches/xterm-titles/base/src/pextlib1.0/sha256cmd.c
branches/xterm-titles/base/src/pextlib1.0/tracelib.c
branches/xterm-titles/base/src/port/Makefile
branches/xterm-titles/base/src/port/port-help.tcl
branches/xterm-titles/base/src/port/port.tcl
branches/xterm-titles/base/src/port/portindex.tcl
branches/xterm-titles/base/src/port/portmirror.tcl
branches/xterm-titles/base/src/port1.0/fetch_common.tcl
branches/xterm-titles/base/src/port1.0/portbuild.tcl
branches/xterm-titles/base/src/port1.0/portutil.tcl
branches/xterm-titles/base/src/registry2.0/portimage.tcl
branches/xterm-titles/base/src/registry2.0/portuninstall.tcl
branches/xterm-titles/base/src/upgrade_sources_conf_default.tcl
Added Paths:
-----------
branches/xterm-titles/base/src/pextlib1.0/sha2.c
branches/xterm-titles/base/src/pextlib1.0/sha2.h
Property Changed:
----------------
branches/xterm-titles/base/
Property changes on: branches/xterm-titles/base
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:66302-66308
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
+ /branches/gsoc08-privileges/base:37343-46937
/branches/gsoc09-logging/base:51231-60371
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:66302-66610
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
Modified: branches/xterm-titles/base/configure
===================================================================
--- branches/xterm-titles/base/configure 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/configure 2010-04-18 04:02:17 UTC (rev 66611)
@@ -8232,7 +8232,7 @@
fi
for ac_header in limits.h paths.h sys/file.h crt_externs.h fcntl.h sys/fcntl.h sys/cdefs.h err.h sys/socket.h \
- readline/readline.h readline/history.h pwd.h sys/paths.h utime.h
+ sys/sysctl.h readline/readline.h readline/history.h pwd.h sys/paths.h utime.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -8250,7 +8250,7 @@
INCLUDES="-I.. -I. $INCLUDES"
# Checks for library functions.
-for ac_func in bzero memset fgetln lockf flock setmode strcasecmp strncasecmp strlcpy copyfile clearenv
+for ac_func in bzero memset fgetln lockf flock setmode strcasecmp strncasecmp strlcpy copyfile clearenv sysctlbyname
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
Modified: branches/xterm-titles/base/configure.ac
===================================================================
--- branches/xterm-titles/base/configure.ac 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/configure.ac 2010-04-18 04:02:17 UTC (rev 66611)
@@ -194,12 +194,12 @@
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([limits.h paths.h sys/file.h crt_externs.h fcntl.h sys/fcntl.h sys/cdefs.h err.h sys/socket.h \
- readline/readline.h readline/history.h pwd.h sys/paths.h utime.h])
+ sys/sysctl.h readline/readline.h readline/history.h pwd.h sys/paths.h utime.h])
INCLUDES="-I.. -I. $INCLUDES"
# Checks for library functions.
-AC_CHECK_FUNCS([bzero memset fgetln lockf flock setmode strcasecmp strncasecmp strlcpy copyfile clearenv])
+AC_CHECK_FUNCS([bzero memset fgetln lockf flock setmode strcasecmp strncasecmp strlcpy copyfile clearenv sysctlbyname])
MP_CHECK_READLINK_IS_P1003_1A
# Check for md5 implementation
Modified: branches/xterm-titles/base/doc/portfile.7
===================================================================
--- branches/xterm-titles/base/doc/portfile.7 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/doc/portfile.7 2010-04-18 04:02:17 UTC (rev 66611)
@@ -1556,7 +1556,7 @@
.br
.Sy Values:
.Em moddate none
-.It Ic livecheck.check
+.It Ic livecheck.type
What kind of check to perform to figure out if the software has been updated.
Can be
.Em freshmeat
Modified: branches/xterm-titles/base/portmgr/jobs/mirror_macports.sh
===================================================================
--- branches/xterm-titles/base/portmgr/jobs/mirror_macports.sh 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/portmgr/jobs/mirror_macports.sh 2010-04-18 04:02:17 UTC (rev 66611)
@@ -41,7 +41,7 @@
$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`;
+ for V in `$PORT -q variants $P | $CUT -d " " -f 1 | $CUT -d ":" -f 1 | $GREP -v universal | $XARGS`;
do
# mirror with each variant
echo "Mirroring ${P} +${V}";
Modified: branches/xterm-titles/base/src/config.h.in
===================================================================
--- branches/xterm-titles/base/src/config.h.in 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/config.h.in 2010-04-18 04:02:17 UTC (rev 66611)
@@ -152,6 +152,9 @@
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
+/* Define to 1 if you have the `sysctlbyname' function. */
+#undef HAVE_SYSCTLBYNAME
+
/* Define to 1 if you have the <sys/cdefs.h> header file. */
#undef HAVE_SYS_CDEFS_H
@@ -178,6 +181,9 @@
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
+/* Define to 1 if you have the <sys/sysctl.h> header file. */
+#undef HAVE_SYS_SYSCTL_H
+
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
Modified: branches/xterm-titles/base/src/cregistry/Makefile
===================================================================
--- branches/xterm-titles/base/src/cregistry/Makefile 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/cregistry/Makefile 2010-04-18 04:02:17 UTC (rev 66611)
@@ -22,7 +22,7 @@
${SHLIB_LD} ${SQLEXT_OBJS} -o $@
clean::
- rm -f ${STLIB_NAME} ${SQLEXT_NAME} ${OBJS}
+ rm -f ${STLIB_NAME} ${SQLEXT_NAME} ${SQLEXT_OBJS} ${OBJS}
distclean:: clean
Modified: branches/xterm-titles/base/src/darwintracelib1.0/Makefile
===================================================================
--- branches/xterm-titles/base/src/darwintracelib1.0/Makefile 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/darwintracelib1.0/Makefile 2010-04-18 04:02:17 UTC (rev 66611)
@@ -6,6 +6,8 @@
include ../../Mk/macports.autoconf.mk
+CFLAGS+= -fPIC
+
all:: ${SHLIB_NAME}
$(SHLIB_NAME):: ${OBJS}
Modified: branches/xterm-titles/base/src/macports1.0/macports.tcl
===================================================================
--- branches/xterm-titles/base/src/macports1.0/macports.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/macports1.0/macports.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -788,6 +788,8 @@
} else {
set macports::universal_archs {i386 ppc}
}
+ } elseif {[llength $macports::universal_archs] < 2} {
+ ui_warn "invalid universal_archs configured (should contain at least 2 archs)"
}
# Default arch to build for
@@ -1570,6 +1572,15 @@
set dlist [dlist_append_dependents $macports::open_mports $mport {}]
dlist_delete dlist $mport
+
+ # print the dep list
+ if {[llength $dlist] > 0} {
+ set depstring "---> Dependencies to be installed:"
+ foreach ditem $dlist {
+ append depstring " [ditem_key $ditem provides]"
+ }
+ ui_msg $depstring
+ }
# install them
# xxx: as with below, this is ugly. and deps need to be fixed to
@@ -1932,6 +1943,11 @@
}
}
+ # refresh the quick index if necessary (batch or interactive run)
+ if {[info exists macports::ui_options(ports_commandfiles)]} {
+ _mports_load_quickindex
+ }
+
if {$numfailed > 0} {
return -code error "Synchronization of $numfailed source(s) failed"
}
@@ -2200,6 +2216,8 @@
proc _mports_load_quickindex {args} {
global macports::sources macports::quick_index
+ unset -nocomplain macports::quick_index
+
set sourceno 0
foreach source $sources {
unset -nocomplain quicklist
@@ -2756,7 +2774,7 @@
# upgrade its dependencies first
set status [_upgrade_dependencies portinfo depscache variationslist options yes]
- if {$status != 0 && ![ui_isset ports_processall]} {
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} {
catch {mportclose $workername}
return $status
}
@@ -2968,7 +2986,7 @@
# first upgrade dependencies
if {![info exists options(ports_nodeps)]} {
set status [_upgrade_dependencies portinfo depscache variationslist options $will_build]
- if {$status != 0 && ![ui_isset ports_processall]} {
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} {
catch {mportclose $workername}
return $status
}
@@ -2994,7 +3012,7 @@
set mpname [lindex $dep 2]
if {![llength [array get depscache port:${mpname}]]} {
set status [macports::_upgrade $mpname port:${mpname} $variationslist [array get options] depscache]
- if {$status != 0 && ![ui_isset ports_processall]} {
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} {
catch {mportclose $workername}
return $status
}
@@ -3113,7 +3131,7 @@
set mpname [lindex $dep 2]
if {![llength [array get depscache port:${mpname}]]} {
set status [macports::_upgrade $mpname port:${mpname} $variationslist [array get options] depscache]
- if {$status != 0 && ![ui_isset ports_processall]} {
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} {
catch {mportclose $workername}
return $status
}
@@ -3195,11 +3213,11 @@
set d [lindex [split $i :] end]
}
set status [macports::_upgrade $d $dspec $variationslist [array get options] depscache]
- if {$status != 0 && ![ui_isset ports_processall]} break
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} break
}
}
}
- if {$status != 0 && ![ui_isset ports_processall]} break
+ if {$status != 0 && $status != 2 && ![ui_isset ports_processall]} break
}
# restore dependent-following to its former value
if {$saved_do_dependents} {
Modified: branches/xterm-titles/base/src/macports1.0/macports_fastload.tcl.in
===================================================================
--- branches/xterm-titles/base/src/macports1.0/macports_fastload.tcl.in 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/macports1.0/macports_fastload.tcl.in 2010-04-18 04:02:17 UTC (rev 66611)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# macports_fastload.tcl.in
# $Id$
#
@@ -45,39 +46,45 @@
#
if { [regexp {\d+\.\d+\.\d+} [info patchlevel]] &&
([package vcompare [info patchlevel] 8.4.7] < 0) } {
- global allpackages
- if {![info exists allpackages]} {
- # Only patch once.
- array set allpackages {}
- rename package package_native
- proc package {args} {
- global allpackages
- if {([lindex $args 0] == "ifneeded") && ([llength $args] == 4)} {
- set package_name [lindex $args 1]
- set package_version [lindex $args 2]
- set package_key ${package_name}::${package_version}
- if {![info exists allpackages($package_key)]} {
- set allpackages($package_key) 1
- set result [eval package_native $args]
- } else {
- set result ""
- }
- } else {
- set result [eval package_native $args]
- }
- return $result
- }
- }
+ global allpackages
+ if {![info exists allpackages]} {
+ # Only patch once.
+ array set allpackages {}
+ rename package package_native
+ proc package {args} {
+ global allpackages
+ if {([lindex $args 0] == "ifneeded") && ([llength $args] == 4)} {
+ set package_name [lindex $args 1]
+ set package_version [lindex $args 2]
+ set package_key ${package_name}::${package_version}
+ if {![info exists allpackages($package_key)]} {
+ set allpackages($package_key) 1
+ set result [eval package_native $args]
+ } else {
+ set result ""
+ }
+ } else {
+ set result [eval package_native $args]
+ }
+ return $result
+ }
+ }
}
-set sharetcldir "@macports_tcl_dir@"
+set sharetcldir [file normalize [file join [file dirname [info script]] ..]]
if {[file exists $sharetcldir]} {
- foreach dir [glob -directory $sharetcldir *] {
- catch {source [file join $dir pkgIndex.tcl]}
- }
+ foreach dir [glob -directory $sharetcldir *] {
+ set pkgindex [file join $dir pkgIndex.tcl]
+ if [file exists $pkgindex] {
+ source $pkgindex
+ }
+ }
}
if { "@SQLITE3_TCL_DIR@" != "" } {
- set dir "@SQLITE3_TCL_DIR@"
- catch {source [file join $dir pkgIndex.tcl]}
+ set dir "@SQLITE3_TCL_DIR@"
+ set pkgindex [file join $dir pkgIndex.tcl]
+ if [file exists $pkgindex] {
+ source $pkgindex
+ }
}
Modified: branches/xterm-titles/base/src/macports1.0/sysctl.c
===================================================================
--- branches/xterm-titles/base/src/macports1.0/sysctl.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/macports1.0/sysctl.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -39,7 +39,10 @@
#include <string.h>
#include <errno.h>
#include <sys/types.h>
+
+#if HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
+#endif
#include "sysctl.h"
@@ -48,6 +51,7 @@
*/
int SysctlCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
+#if HAVE_SYSCTLBYNAME
const char error_message[] = "sysctl failed: ";
Tcl_Obj *tcl_result;
int res;
@@ -84,4 +88,8 @@
Tcl_SetObjResult(interp, tcl_result);
return TCL_OK;
+#else
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("sysctl not available", -1));
+ return TCL_ERROR;
+#endif
}
Modified: branches/xterm-titles/base/src/package1.0/portarchivefetch.tcl
===================================================================
--- branches/xterm-titles/base/src/package1.0/portarchivefetch.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/package1.0/portarchivefetch.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -57,8 +57,7 @@
# Ignore SSL certificate
default archivefetch.ignore_sslcert no
-# TODO: enable this when binaries are available on a macports server
-#default archive_sites macports_archives
+default archive_sites macports_archives
default archive_sites.listfile {"archive_sites.tcl"}
default archive_sites.listpath {"port1.0/fetch"}
Modified: branches/xterm-titles/base/src/pextlib1.0/Pextlib.c
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/Pextlib.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/pextlib1.0/Pextlib.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -399,6 +399,10 @@
#else
clearenv();
#endif
+ /* "If the entire env array is unset then Tcl will stop monitoring
+ env accesses and will not update environment variables."
+ - <http://www.tcl.tk/man/tcl8.4/TclCmd/tclvars.htm#M4> */
+ setenv("MACPORTS_DUMMY", "", 0);
} else {
(void) unsetenv(name);
}
Modified: branches/xterm-titles/base/src/pextlib1.0/rmd160cmd.c
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/rmd160cmd.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/pextlib1.0/rmd160cmd.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -40,9 +40,7 @@
#include "rmd160cmd.h"
-#if HAVE_COMMONCRYPTO_COMMONDIGEST_H
-
-/* We do not have libmd.
+/*
* let's use our own version of rmd160* libraries.
*/
#include <stdio.h>
@@ -60,13 +58,6 @@
CHECKSUMEnd(RMD160, RMD160_CTX, RIPEMD160_DIGEST_LENGTH)
CHECKSUMFile(RMD160, RMD160_CTX)
-#elif defined(HAVE_LIBMD)
-#include <sys/types.h>
-#include <ripemd.h>
-#define RMD160File(x, y) RIPEMD160_File(x, y)
-#else
-#error CommonCrypto or libmd required
-#endif
int RMD160Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
Modified: branches/xterm-titles/base/src/pextlib1.0/sha1cmd.c
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/sha1cmd.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/pextlib1.0/sha1cmd.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -57,6 +57,8 @@
#elif defined(HAVE_LIBMD)
#include <sys/types.h>
#include <sha.h>
+#define SHA_DIGEST_LENGTH (SHA_HASHBYTES)
+#define SHA1_File(x,y) SHAFile(x,y)
#else
#error CommonCrypto or libmd required
#endif
Copied: branches/xterm-titles/base/src/pextlib1.0/sha2.c (from rev 66608, trunk/base/src/pextlib1.0/sha2.c)
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/sha2.c (rev 0)
+++ branches/xterm-titles/base/src/pextlib1.0/sha2.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -0,0 +1,472 @@
+/* $OpenBSD: sha2.c,v 1.6 2004/05/03 02:57:36 millert Exp $ */
+
+/*
+ * FILE: sha2.c
+ * AUTHOR: Aaron D. Gifford <me at aarongifford.com>
+ *
+ * Copyright (c) 2000-2001, Aaron D. Gifford
+ * 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 the copyright holder nor the names of contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``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 AUTHOR OR CONTRIBUTOR(S) 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.
+ *
+ * $From: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
+ */
+
+#include <sys/param.h>
+#include <sys/time.h>
+
+/*
+ * UNROLLED TRANSFORM LOOP NOTE:
+ * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
+ * loop version for the hash transform rounds (defined using macros
+ * later in this file). Either define on the command line, for example:
+ *
+ * cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
+ *
+ * or define below:
+ *
+ * #define SHA2_UNROLL_TRANSFORM
+ *
+ */
+
+
+/*** SHA-256 Machine Architecture Definitions *****************/
+/*
+ * BYTE_ORDER NOTE:
+ *
+ * Please make sure that your system defines BYTE_ORDER. If your
+ * architecture is little-endian, make sure it also defines
+ * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
+ * equivilent.
+ *
+ * If your system does not define the above, then you can do so by
+ * hand like this:
+ *
+ * #define LITTLE_ENDIAN 1234
+ * #define BIG_ENDIAN 4321
+ *
+ * And for little-endian machines, add:
+ *
+ * #define BYTE_ORDER LITTLE_ENDIAN
+ *
+ * Or for big-endian machines:
+ *
+ * #define BYTE_ORDER BIG_ENDIAN
+ *
+ * The FreeBSD machine this was written on defines BYTE_ORDER
+ * appropriately by including <sys/types.h> (which in turn includes
+ * <machine/endian.h> where the appropriate definitions are actually
+ * made).
+ */
+#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
+#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
+#endif
+
+
+/*** SHA-256 Various Length Definitions ***********************/
+/* NOTE: Most of these are in sha2.h */
+#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
+
+
+/*** ENDIAN REVERSAL MACROS *******************************************/
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define REVERSE32(w,x) { \
+ u_int32_t tmp = (w); \
+ tmp = (tmp >> 16) | (tmp << 16); \
+ (x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \
+}
+#define REVERSE64(w,x) { \
+ u_int64_t tmp = (w); \
+ tmp = (tmp >> 32) | (tmp << 32); \
+ tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \
+ ((tmp & 0x00ff00ff00ff00ffULL) << 8); \
+ (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
+ ((tmp & 0x0000ffff0000ffffULL) << 16); \
+}
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+
+/*
+ * Macro for incrementally adding the unsigned 64-bit integer n to the
+ * unsigned 128-bit integer (represented using a two-element array of
+ * 64-bit words):
+ */
+#define ADDINC128(w,n) { \
+ (w)[0] += (u_int64_t)(n); \
+ if ((w)[0] < (n)) { \
+ (w)[1]++; \
+ } \
+}
+
+/*** THE SIX LOGICAL FUNCTIONS ****************************************/
+/*
+ * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
+ *
+ * NOTE: The naming of R and S appears backwards here (R is a SHIFT and
+ * S is a ROTATION) because the SHA-256/384/512 description document
+ * (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
+ * same "backwards" definition.
+ */
+/* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
+#define R(b,x) ((x) >> (b))
+/* 32-bit Rotate-right (used in SHA-256): */
+#define S32(b,x) (((x) >> (b)) | ((x) << (32 - (b))))
+/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
+#define S64(b,x) (((x) >> (b)) | ((x) << (64 - (b))))
+
+/* Two of six logical functions used in SHA-256: */
+#define Ch(x,y,z) (((x) & (y)) ^ ((~(x)) & (z)))
+#define Maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
+
+/* Four of six logical functions used in SHA-256: */
+#define Sigma0_256(x) (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x)))
+#define Sigma1_256(x) (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x)))
+#define sigma0_256(x) (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x)))
+#define sigma1_256(x) (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x)))
+
+/*** INTERNAL FUNCTION PROTOTYPES *************************************/
+/* NOTE: These should not be accessed directly from outside this
+ * library -- they are intended for private internal visibility/use
+ * only.
+ */
+void SHA256_Transform(SHA256_CTX *, const u_int8_t *);
+
+
+/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
+/* Hash constant words K for SHA-256: */
+static const u_int32_t K256[64] = {
+ 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
+ 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
+ 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
+ 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
+ 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
+ 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
+ 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
+ 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
+ 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
+ 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
+ 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
+ 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
+ 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
+ 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
+ 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
+ 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
+};
+
+/* Initial hash value H for SHA-256: */
+static const u_int32_t sha256_initial_hash_value[8] = {
+ 0x6a09e667UL,
+ 0xbb67ae85UL,
+ 0x3c6ef372UL,
+ 0xa54ff53aUL,
+ 0x510e527fUL,
+ 0x9b05688cUL,
+ 0x1f83d9abUL,
+ 0x5be0cd19UL
+};
+
+
+
+/*** SHA-256: *********************************************************/
+void
+SHA256_Init(SHA256_CTX *context)
+{
+ if (context == NULL)
+ return;
+ bcopy(sha256_initial_hash_value, context->state, SHA256_DIGEST_LENGTH);
+ bzero(context->buffer, SHA256_BLOCK_LENGTH);
+ context->bitcount = 0;
+}
+
+#ifdef SHA2_UNROLL_TRANSFORM
+
+/* Unrolled SHA-256 round macros: */
+
+#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h) do { \
+ W256[j] = (u_int32_t)data[3] | ((u_int32_t)data[2] << 8) | \
+ ((u_int32_t)data[1] << 16) | ((u_int32_t)data[0] << 24); \
+ data += 4; \
+ T1 = (h) + Sigma1_256((e)) + Ch((e), (f), (g)) + K256[j] + W256[j]; \
+ (d) += T1; \
+ (h) = T1 + Sigma0_256((a)) + Maj((a), (b), (c)); \
+ j++; \
+} while(0)
+
+#define ROUND256(a,b,c,d,e,f,g,h) do { \
+ s0 = W256[(j+1)&0x0f]; \
+ s0 = sigma0_256(s0); \
+ s1 = W256[(j+14)&0x0f]; \
+ s1 = sigma1_256(s1); \
+ T1 = (h) + Sigma1_256((e)) + Ch((e), (f), (g)) + K256[j] + \
+ (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); \
+ (d) += T1; \
+ (h) = T1 + Sigma0_256((a)) + Maj((a), (b), (c)); \
+ j++; \
+} while(0)
+
+void
+SHA256_Transform(SHA256_CTX *context, const u_int8_t *data)
+{
+ u_int32_t a, b, c, d, e, f, g, h, s0, s1;
+ u_int32_t T1, *W256;
+ int j;
+
+ W256 = (u_int32_t *)context->buffer;
+
+ /* Initialize registers with the prev. intermediate value */
+ a = context->state[0];
+ b = context->state[1];
+ c = context->state[2];
+ d = context->state[3];
+ e = context->state[4];
+ f = context->state[5];
+ g = context->state[6];
+ h = context->state[7];
+
+ j = 0;
+ do {
+ /* Rounds 0 to 15 (unrolled): */
+ ROUND256_0_TO_15(a,b,c,d,e,f,g,h);
+ ROUND256_0_TO_15(h,a,b,c,d,e,f,g);
+ ROUND256_0_TO_15(g,h,a,b,c,d,e,f);
+ ROUND256_0_TO_15(f,g,h,a,b,c,d,e);
+ ROUND256_0_TO_15(e,f,g,h,a,b,c,d);
+ ROUND256_0_TO_15(d,e,f,g,h,a,b,c);
+ ROUND256_0_TO_15(c,d,e,f,g,h,a,b);
+ ROUND256_0_TO_15(b,c,d,e,f,g,h,a);
+ } while (j < 16);
+
+ /* Now for the remaining rounds to 64: */
+ do {
+ ROUND256(a,b,c,d,e,f,g,h);
+ ROUND256(h,a,b,c,d,e,f,g);
+ ROUND256(g,h,a,b,c,d,e,f);
+ ROUND256(f,g,h,a,b,c,d,e);
+ ROUND256(e,f,g,h,a,b,c,d);
+ ROUND256(d,e,f,g,h,a,b,c);
+ ROUND256(c,d,e,f,g,h,a,b);
+ ROUND256(b,c,d,e,f,g,h,a);
+ } while (j < 64);
+
+ /* Compute the current intermediate hash value */
+ context->state[0] += a;
+ context->state[1] += b;
+ context->state[2] += c;
+ context->state[3] += d;
+ context->state[4] += e;
+ context->state[5] += f;
+ context->state[6] += g;
+ context->state[7] += h;
+
+ /* Clean up */
+ a = b = c = d = e = f = g = h = T1 = 0;
+}
+
+#else /* SHA2_UNROLL_TRANSFORM */
+
+void
+SHA256_Transform(SHA256_CTX *context, const u_int8_t *data)
+{
+ u_int32_t a, b, c, d, e, f, g, h, s0, s1;
+ u_int32_t T1, T2, *W256;
+ int j;
+
+ W256 = (u_int32_t *)context->buffer;
+
+ /* Initialize registers with the prev. intermediate value */
+ a = context->state[0];
+ b = context->state[1];
+ c = context->state[2];
+ d = context->state[3];
+ e = context->state[4];
+ f = context->state[5];
+ g = context->state[6];
+ h = context->state[7];
+
+ j = 0;
+ do {
+ W256[j] = (u_int32_t)data[3] | ((u_int32_t)data[2] << 8) |
+ ((u_int32_t)data[1] << 16) | ((u_int32_t)data[0] << 24);
+ data += 4;
+ /* Apply the SHA-256 compression function to update a..h */
+ T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j];
+ T2 = Sigma0_256(a) + Maj(a, b, c);
+ h = g;
+ g = f;
+ f = e;
+ e = d + T1;
+ d = c;
+ c = b;
+ b = a;
+ a = T1 + T2;
+
+ j++;
+ } while (j < 16);
+
+ do {
+ /* Part of the message block expansion: */
+ s0 = W256[(j+1)&0x0f];
+ s0 = sigma0_256(s0);
+ s1 = W256[(j+14)&0x0f];
+ s1 = sigma1_256(s1);
+
+ /* Apply the SHA-256 compression function to update a..h */
+ T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] +
+ (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0);
+ T2 = Sigma0_256(a) + Maj(a, b, c);
+ h = g;
+ g = f;
+ f = e;
+ e = d + T1;
+ d = c;
+ c = b;
+ b = a;
+ a = T1 + T2;
+
+ j++;
+ } while (j < 64);
+
+ /* Compute the current intermediate hash value */
+ context->state[0] += a;
+ context->state[1] += b;
+ context->state[2] += c;
+ context->state[3] += d;
+ context->state[4] += e;
+ context->state[5] += f;
+ context->state[6] += g;
+ context->state[7] += h;
+
+ /* Clean up */
+ a = b = c = d = e = f = g = h = T1 = T2 = 0;
+}
+
+#endif /* SHA2_UNROLL_TRANSFORM */
+
+void
+SHA256_Update(SHA256_CTX *context, const u_int8_t *data, size_t len)
+{
+ size_t freespace, usedspace;
+
+ /* Calling with no data is valid (we do nothing) */
+ if (len == 0)
+ return;
+
+ usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
+ if (usedspace > 0) {
+ /* Calculate how much free space is available in the buffer */
+ freespace = SHA256_BLOCK_LENGTH - usedspace;
+
+ if (len >= freespace) {
+ /* Fill the buffer completely and process it */
+ bcopy(data, &context->buffer[usedspace], freespace);
+ context->bitcount += freespace << 3;
+ len -= freespace;
+ data += freespace;
+ SHA256_Transform(context, context->buffer);
+ } else {
+ /* The buffer is not yet full */
+ bcopy(data, &context->buffer[usedspace], len);
+ context->bitcount += len << 3;
+ /* Clean up: */
+ usedspace = freespace = 0;
+ return;
+ }
+ }
+ while (len >= SHA256_BLOCK_LENGTH) {
+ /* Process as many complete blocks as we can */
+ SHA256_Transform(context, data);
+ context->bitcount += SHA256_BLOCK_LENGTH << 3;
+ len -= SHA256_BLOCK_LENGTH;
+ data += SHA256_BLOCK_LENGTH;
+ }
+ if (len > 0) {
+ /* There's left-overs, so save 'em */
+ bcopy(data, context->buffer, len);
+ context->bitcount += len << 3;
+ }
+ /* Clean up: */
+ usedspace = freespace = 0;
+}
+
+void
+SHA256_Final(u_int8_t digest[], SHA256_CTX *context)
+{
+ u_int32_t *d = (u_int32_t *)digest;
+ unsigned int usedspace;
+
+ /* If no digest buffer is passed, we don't bother doing this: */
+ if (digest != NULL) {
+ usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
+#if BYTE_ORDER == LITTLE_ENDIAN
+ /* Convert FROM host byte order */
+ REVERSE64(context->bitcount,context->bitcount);
+#endif
+ if (usedspace > 0) {
+ /* Begin padding with a 1 bit: */
+ context->buffer[usedspace++] = 0x80;
+
+ if (usedspace <= SHA256_SHORT_BLOCK_LENGTH) {
+ /* Set-up for the last transform: */
+ bzero(&context->buffer[usedspace], SHA256_SHORT_BLOCK_LENGTH - usedspace);
+ } else {
+ if (usedspace < SHA256_BLOCK_LENGTH) {
+ bzero(&context->buffer[usedspace], SHA256_BLOCK_LENGTH - usedspace);
+ }
+ /* Do second-to-last transform: */
+ SHA256_Transform(context, context->buffer);
+
+ /* And set-up for the last transform: */
+ bzero(context->buffer, SHA256_SHORT_BLOCK_LENGTH);
+ }
+ } else {
+ /* Set-up for the last transform: */
+ bzero(context->buffer, SHA256_SHORT_BLOCK_LENGTH);
+
+ /* Begin padding with a 1 bit: */
+ *context->buffer = 0x80;
+ }
+ /* Set the bit count: */
+ *(u_int64_t *)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
+
+ /* Final transform: */
+ SHA256_Transform(context, context->buffer);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+ {
+ /* Convert TO host byte order */
+ int j;
+ for (j = 0; j < 8; j++) {
+ REVERSE32(context->state[j],context->state[j]);
+ *d++ = context->state[j];
+ }
+ }
+#else
+ bcopy(context->state, d, SHA256_DIGEST_LENGTH);
+#endif
+ }
+
+ /* Clean up state data: */
+ bzero(context, sizeof(*context));
+ usedspace = 0;
+}
Copied: branches/xterm-titles/base/src/pextlib1.0/sha2.h (from rev 66608, trunk/base/src/pextlib1.0/sha2.h)
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/sha2.h (rev 0)
+++ branches/xterm-titles/base/src/pextlib1.0/sha2.h 2010-04-18 04:02:17 UTC (rev 66611)
@@ -0,0 +1,62 @@
+/* $OpenBSD: sha2.h,v 1.2 2004/04/28 23:11:57 millert Exp $ */
+
+/*
+ * FILE: sha2.h
+ * AUTHOR: Aaron D. Gifford <me at aarongifford.com>
+ *
+ * Copyright (c) 2000-2001, Aaron D. Gifford
+ * 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 the copyright holder nor the names of contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``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 AUTHOR OR CONTRIBUTOR(S) 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.
+ *
+ * $From: sha2.h,v 1.1 2001/11/08 00:02:01 adg Exp adg $
+ */
+
+#ifndef _SHA2_H
+#define _SHA2_H
+
+
+/*** SHA-256 Various Length Definitions ***********************/
+#define SHA256_BLOCK_LENGTH 64
+#define SHA256_DIGEST_LENGTH 32
+#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
+
+
+/*** SHA-256 Context Structures *******************************/
+typedef struct _SHA256_CTX {
+ u_int32_t state[8];
+ u_int64_t bitcount;
+ u_int8_t buffer[SHA256_BLOCK_LENGTH];
+} SHA256_CTX;
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void SHA256_Init(SHA256_CTX *);
+void SHA256_Update(SHA256_CTX *, const u_int8_t *, size_t);
+void SHA256_Final(u_int8_t[SHA256_DIGEST_LENGTH], SHA256_CTX *);
+__END_DECLS
+
+#endif /* _SHA2_H */
Modified: branches/xterm-titles/base/src/pextlib1.0/sha256cmd.c
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/sha256cmd.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/pextlib1.0/sha256cmd.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -58,18 +58,19 @@
#define SHA256_Final(m, c) CC_SHA256_Final(m,c)
#endif
+#else
+/* We do not have CommonCrypto.
+* let's use our own version of sha256* libraries.
+*/
+#include <sys/types.h>
+#include "sha2.h"
+#include "sha2.c"
+#endif
+
#include "md_wrappers.h"
CHECKSUMEnd(SHA256_, SHA256_CTX, SHA256_DIGEST_LENGTH)
CHECKSUMFile(SHA256_, SHA256_CTX)
-#elif defined(HAVE_LIBMD)
-#include <sys/types.h>
-#include <sha256.h>
-#define SHA256_DIGEST_LENGTH 32
-#else
-#error CommonCrypto or libmd required
-#endif
-
int SHA256Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
{
char *file, *action;
Modified: branches/xterm-titles/base/src/pextlib1.0/tracelib.c
===================================================================
--- branches/xterm-titles/base/src/pextlib1.0/tracelib.c 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/pextlib1.0/tracelib.c 2010-04-18 04:02:17 UTC (rev 66611)
@@ -30,7 +30,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#if HAVE_CONFIG_H
#include <config.h>
+#endif
+
#include <string.h>
#include <sys/time.h>
#include <sys/resource.h>
@@ -47,6 +50,26 @@
#include <limits.h>
#include "tracelib.h"
+#ifndef HAVE_STRLCPY
+/* Define strlcpy if it's not available. */
+size_t strlcpy(char* dst, const char* src, size_t size);
+size_t strlcpy(char* dst, const char* src, size_t size)
+{
+ size_t result = strlen(src);
+ if (size > 0)
+ {
+ size_t copylen = size - 1;
+ if (copylen > result)
+ {
+ copylen = result;
+ }
+ memcpy(dst, src, copylen);
+ dst[copylen] = 0;
+ }
+ return result;
+}
+#endif
+
static char * name;
static char * sandbox;
static char * filemap, * filemap_end;
Modified: branches/xterm-titles/base/src/port/Makefile
===================================================================
--- branches/xterm-titles/base/src/port/Makefile 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port/Makefile 2010-04-18 04:02:17 UTC (rev 66611)
@@ -14,12 +14,15 @@
portmirror: portmirror.tcl ../../Mk/macports.autoconf.mk
${edit} portmirror.tcl > $@
+ chmod +x $@
portindex: portindex.tcl ../../Mk/macports.autoconf.mk
${edit} portindex.tcl > $@
+ chmod +x $@
port: port.tcl ../../Mk/macports.autoconf.mk
${edit} port.tcl > $@
+ chmod +x $@
mkdirs:
cat ../../doc/prefix.mtree | $(MTREE) -U -d -e -p ${INSTALLDIR} > /dev/null
Modified: branches/xterm-titles/base/src/port/port-help.tcl
===================================================================
--- branches/xterm-titles/base/src/port/port-help.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port/port-help.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -9,6 +9,8 @@
set porthelp(activate) {
Activate the given ports
+
+--no-exec Do not execute any stored pre- or post-activate procedures
}
set porthelp(archive) {
@@ -64,6 +66,8 @@
set porthelp(deactivate) {
Deactivates the given ports
+
+--no-exec Do not execute any stored pre- or post-deactivate procedures
}
set porthelp(dependents) {
@@ -310,6 +314,8 @@
set porthelp(uninstall) {
Uninstall the given ports
+
+--no-exec Do not execute any stored pre- or post-uninstall procedures
}
set porthelp(unload) $porthelp(load)
Modified: branches/xterm-titles/base/src/port/port.tcl
===================================================================
--- branches/xterm-titles/base/src/port/port.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port/port.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -34,8 +34,14 @@
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
-catch {source \
- [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]}
+if {([file tail [pwd]] == "src" && [file exists [set dir macports1.0]/macports_fastload.tcl])
+ || ([file tail [pwd]] == "base" && [file exists [set dir src/macports1.0]/macports_fastload.tcl])} {
+ # developer mode, source packages from current directory
+ source [file join $dir macports_fastload.tcl]
+} else {
+ source [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]
+}
+
package require macports
package require Pextlib 1.0
@@ -1451,7 +1457,7 @@
if { [moreargs] } {
# Look first for a potential portname
#
- # We need to allow a wide variaty of tokens here, because of actions like "provides"
+ # We need to allow a wide variety of tokens here, because of actions like "provides"
# so we take a rather lenient view of what a "portname" is. We allow
# anything that doesn't look like either a version, a variant, or an option
set token [lookahead]
@@ -2227,7 +2233,11 @@
}
foreachport $portlist {
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::installed $portname $composite_version]}] && [llength $ilist] == 1} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_activate_no-exec)]
+ && ![catch {set ilist [registry::installed $portname $composite_version]}]
+ && [llength $ilist] == 1} {
+
set i [lindex $ilist 0]
set regref [registry::entry open $portname [lindex $i 1] [lindex $i 2] [lindex $i 3] [lindex $i 5]]
if {[registry::run_target $regref activate [array get options]]} {
@@ -2257,7 +2267,10 @@
}
foreachport $portlist {
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::active $portname]}]} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_deactivate_no-exec)]
+ && ![catch {set ilist [registry::active $portname]}]} {
+
set i [lindex $ilist 0]
set iversion [lindex $i 1]
set irevision [lindex $i 2]
@@ -2790,7 +2803,11 @@
continue
}
set composite_version [composite_version $portversion [array get variations]]
- if {${macports::registry.format} == "receipt_sqlite" && ![catch {set ilist [registry::installed $portname $composite_version]}] && [llength $ilist] == 1} {
+ if {${macports::registry.format} == "receipt_sqlite"
+ && ![info exists options(ports_uninstall_no-exec)]
+ && ![catch {set ilist [registry::installed $portname $composite_version]}]
+ && [llength $ilist] == 1} {
+
set i [lindex $ilist 0]
set iactive [lindex $i 4]
set regref [registry::entry open $portname [lindex $i 1] [lindex $i 2] [lindex $i 3] [lindex $i 5]]
@@ -3824,7 +3841,9 @@
long_description maintainer maintainers name platform
platforms portdir regex revision variant variants version}
selfupdate {nosync}
- uninstall {follow-dependents follow-dependencies}
+ activate {no-exec}
+ deactivate {no-exec}
+ uninstall {follow-dependents follow-dependencies no-exec}
variants {index}
clean {all archive dist work logs}
mirror {new}
@@ -4346,6 +4365,12 @@
# Get arguments remaining after option processing
set remaining_args [lrange $cmd_argv $cmd_argn end]
+# If we have no arguments remaining after option processing then force
+# interactive mode
+if { [llength $remaining_args] == 0 && ![info exists ui_options(ports_commandfiles)] } {
+ lappend ui_options(ports_commandfiles) -
+}
+
# If we have a tty, enable xterm titles
if [isatty stdout] {
set ui_options(ports_xterm_titles) yes
@@ -4360,12 +4385,6 @@
fatal "Failed to initialize MacPorts, $result"
}
-# If we have no arguments remaining after option processing then force
-# interactive mode
-if { [llength $remaining_args] == 0 && ![info exists ui_options(ports_commandfiles)] } {
- lappend ui_options(ports_commandfiles) -
-}
-
# Set up some global state for our code
global current_portdir
set current_portdir [pwd]
Modified: branches/xterm-titles/base/src/port/portindex.tcl
===================================================================
--- branches/xterm-titles/base/src/port/portindex.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port/portindex.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -7,8 +7,14 @@
# if requested
# $Id$
-catch {source \
- [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]}
+if {([file tail [pwd]] == "src" && [file exists [set dir macports1.0]/macports_fastload.tcl])
+ || ([file tail [pwd]] == "base" && [file exists [set dir src/macports1.0]/macports_fastload.tcl])} {
+ # developer mode, source packages from current directory
+ source [file join $dir macports_fastload.tcl]
+} else {
+ source [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]
+}
+
package require macports
package require Pextlib
Modified: branches/xterm-titles/base/src/port/portmirror.tcl
===================================================================
--- branches/xterm-titles/base/src/port/portmirror.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port/portmirror.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -11,8 +11,14 @@
# Updates the distfiles to current distfiles by deleting old stuff.
# Uses the database.
-catch {source \
- [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]}
+if {([file tail [pwd]] == "src" && [file exists [set dir macports1.0]/macports_fastload.tcl])
+ || ([file tail [pwd]] == "base" && [file exists [set dir src/macports1.0]/macports_fastload.tcl])} {
+ # developer mode, source packages from current directory
+ source [file join $dir macports_fastload.tcl]
+} else {
+ source [file join "@macports_tcl_dir@" macports1.0 macports_fastload.tcl]
+}
+
package require macports
package require Pextlib
Modified: branches/xterm-titles/base/src/port1.0/fetch_common.tcl
===================================================================
--- branches/xterm-titles/base/src/port1.0/fetch_common.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port1.0/fetch_common.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -190,8 +190,12 @@
foreach {url_var distfile} $fetch_urls {
if {![info exists urlmap($url_var)]} {
- ui_error [format [msgcat::mc "No defined site for tag: %s, using $default_listvar"] $url_var]
- set urlmap($url_var) [set $default_listvar]
+ if {$url_var != $default_listvar} {
+ ui_error [format [msgcat::mc "No defined site for tag: %s, using $default_listvar"] $url_var]
+ set urlmap($url_var) [set $default_listvar]
+ } else {
+ set urlmap($url_var) {}
+ }
}
set urllist $urlmap($url_var)
set hosts {}
Modified: branches/xterm-titles/base/src/port1.0/portbuild.tcl
===================================================================
--- branches/xterm-titles/base/src/port1.0/portbuild.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port1.0/portbuild.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -112,7 +112,7 @@
ui_warn "failed to determine the number of available CPUs (probably not supported on this platform)"
ui_warn "defaulting to $jobs jobs, consider setting buildmakejobs to a nonzero value in macports.conf"
}
- if {$jobs > $memsize / 1000000000 + 1} {
+ if {[info exists memsize] && $jobs > $memsize / 1000000000 + 1} {
set jobs [expr $memsize / 1000000000 + 1]
}
}
Modified: branches/xterm-titles/base/src/port1.0/portutil.tcl
===================================================================
--- branches/xterm-titles/base/src/port1.0/portutil.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/port1.0/portutil.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -710,7 +710,7 @@
# Execute the code if this platform matches the platform we're on
if {$match} {
- uplevel #0 $code
+ uplevel 1 $code
}
}
Modified: branches/xterm-titles/base/src/registry2.0/portimage.tcl
===================================================================
--- branches/xterm-titles/base/src/registry2.0/portimage.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/registry2.0/portimage.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -66,6 +66,7 @@
variable force 0
variable use_reg2 0
+variable noexec 0
# Activate a "Port Image"
proc activate {name v optionslist} {
@@ -73,10 +74,14 @@
array set options $optionslist
variable force
variable use_reg2
+ variable noexec
if {[info exists options(ports_force)] && [string is true -strict $options(ports_force)] } {
set force 1
}
+ if {[info exists options(ports_activate_no-exec)]} {
+ set noexec $options(ports_activate_no-exec)
+ }
if {[string equal ${macports::registry.format} "receipt_sqlite"]} {
set use_reg2 1
if {![info exists registry_open]} {
@@ -115,7 +120,7 @@
}
}
foreach a $todeactivate {
- if {![registry::run_target $a deactivate [list ports_nodepcheck 1]]} {
+ if {$noexec || ![registry::run_target $a deactivate [list ports_nodepcheck 1]]} {
deactivate $name "[$a version]_[$a revision][$a variants]" [list ports_nodepcheck 1]
}
}
@@ -409,6 +414,7 @@
proc _activate_contents {port {imagefiles {}} {imagedir {}}} {
variable force
variable use_reg2
+ variable noexec
global macports::prefix
set files [list]
@@ -449,7 +455,7 @@
set result [mportlookup [$owner name]]
array unset portinfo
array set portinfo [lindex $result 1]
- if {[info exists portinfo(replaced_by)] && [lsearch -exact -nocase $portinfo(replaced_by) [$port name]] != -1} {
+ if {[info exists portinfo(replaced_by)] && [lsearch -regexp $portinfo(replaced_by) "(?i)^[$port name]\$"] != -1} {
# we'll deactivate the owner later, but before activating our files
set todeactivate($owner) yes
set owner "replaced"
@@ -504,7 +510,7 @@
# deactivate ports replaced_by this one
foreach owner [array names todeactivate] {
- if {![registry::run_target $owner deactivate [list ports_nodepcheck 1]]} {
+ if {$noexec || ![registry::run_target $owner deactivate [list ports_nodepcheck 1]]} {
deactivate [$owner name] "" [list ports_nodepcheck 1]
}
}
@@ -543,9 +549,9 @@
}
# reactivate deactivated ports
foreach entry [array names todeactivate] {
- if {[$entry state] == "imaged" && ![registry::run_target $entry activate ""]} {
+ if {[$entry state] == "imaged" && ($noexec || ![registry::run_target $entry activate ""])} {
set pvers "[$entry version]_[$entry revision][$entry variants]"
- activate [$entry name] $pvers ""
+ activate [$entry name] $pvers [list ports_activate_no-exec $noexec]
}
}
throw
@@ -574,7 +580,7 @@
}
array unset portinfo
array set portinfo [lindex $result 1]
- if {[info exists portinfo(replaced_by)] && [lsearch -exact -nocase $portinfo(replaced_by) $name] != -1} {
+ if {[info exists portinfo(replaced_by)] && [lsearch -regexp $portinfo(replaced_by) "(?i)^${name}\$"] != -1} {
lappend deactivated [lindex [registry::active $port] 0]
deactivate $port "" ""
set port 0
Modified: branches/xterm-titles/base/src/registry2.0/portuninstall.tcl
===================================================================
--- branches/xterm-titles/base/src/registry2.0/portuninstall.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/registry2.0/portuninstall.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -52,6 +52,10 @@
if {[info exists options(ports_force)] && [string is true -strict $options(ports_force)]} {
set uninstall.force yes
}
+ # if no-exec is set for uninstall, set for deactivate too
+ if {[info exists options(ports_uninstall_no-exec)]} {
+ set options(ports_deactivate_no-exec) $options(ports_uninstall_no-exec)
+ }
# check which registry API to use
set use_reg2 [string equal ${macports::registry.format} "receipt_sqlite"]
@@ -126,7 +130,7 @@
foreach depport [$port dependents] {
# make sure it's still installed, since a previous dep uninstall may have removed it
if {[registry::entry exists $depport] && ([$depport state] == "imaged" || [$depport state] == "installed")} {
- if {![registry::run_target $depport uninstall $optionslist]} {
+ if {[info exists options(ports_uninstall_no-exec)] || ![registry::run_target $depport uninstall $optionslist]} {
set depname [$depport name]
set depver "[$depport version]_[$depport revision][$depport variants]"
registry_uninstall::uninstall $depname $depver $optionslist
@@ -142,8 +146,8 @@
if {[info exists options(ports_dryrun)] && [string is true -strict $options(ports_dryrun)]} {
ui_msg "For $portname @${v}: skipping deactivate (dry run)"
} else {
- if {![registry::run_target $port deactivate $optionslist]} {
- portimage::deactivate $portname $v $optionslist
+ if {[info exists options(ports_uninstall_no-exec)] || ![registry::run_target $port deactivate $optionslist]} {
+ portimage::deactivate $portname $v [array get options]
}
}
}
@@ -381,7 +385,7 @@
set ivariants [lindex $i 3]
if {[llength [registry::list_dependents $dep $iversion $irevision $ivariants]] == 0} {
set regref [registry::open_entry $dep $iversion $irevision $ivariants [lindex $i 5]]
- if {![registry::property_retrieve $regref requested] && (!$use_reg2 || ![registry::run_target $regref uninstall $optionslist])} {
+ if {![registry::property_retrieve $regref requested] && (!$use_reg2 || [info exists options(ports_uninstall_no-exec)] || ![registry::run_target $regref uninstall $optionslist])} {
set depver "${iversion}_${irevision}${ivariants}"
registry_uninstall::uninstall $dep $depver $optionslist
}
Modified: branches/xterm-titles/base/src/upgrade_sources_conf_default.tcl
===================================================================
--- branches/xterm-titles/base/src/upgrade_sources_conf_default.tcl 2010-04-18 03:56:24 UTC (rev 66610)
+++ branches/xterm-titles/base/src/upgrade_sources_conf_default.tcl 2010-04-18 04:02:17 UTC (rev 66611)
@@ -23,7 +23,7 @@
}
-set mktempChannel [open "|/usr/bin/mktemp -t macports_sources_upgrade" r]
+set mktempChannel [open "|/usr/bin/mktemp -t macports_sources_upgrade.XXXXXXXXXX" r]
set tempfile [read -nonewline $mktempChannel]
close $mktempChannel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100417/7b28c67a/attachment-0001.html>
More information about the macports-changes
mailing list