[43959] trunk/base

afb at macports.org afb at macports.org
Thu Dec 18 00:46:31 PST 2008


Revision: 43959
          http://trac.macports.org/changeset/43959
Author:   afb at macports.org
Date:     2008-12-18 00:46:30 -0800 (Thu, 18 Dec 2008)
Log Message:
-----------
add xpkg (binary) and portpkg (source) xar archive formats

Modified Paths:
--------------
    trunk/base/ChangeLog
    trunk/base/doc/macports.conf.in
    trunk/base/src/macports1.0/macports.tcl
    trunk/base/src/package1.0/Makefile
    trunk/base/src/package1.0/package.tcl
    trunk/base/src/package1.0/portarchive.tcl
    trunk/base/src/package1.0/portunarchive.tcl
    trunk/base/src/port/port.tcl
    trunk/base/src/port1.0/portsubmit.tcl
    trunk/base/src/port1.0/portutil.tcl

Added Paths:
-----------
    trunk/base/src/package1.0/portportpkg.tcl

Modified: trunk/base/ChangeLog
===================================================================
--- trunk/base/ChangeLog	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/ChangeLog	2008-12-18 08:46:30 UTC (rev 43959)
@@ -5,7 +5,11 @@
 
 
 Release 1.8.0 (unreleased):
+    - Add xpkg archive type, xar-based format with XML. (afb)
 
+    - Split portpkg creation out from portsubmit phase. (afb)
+
+
 Release 1.7.1 (unreleased):
 
 Release 1.7.0 (2008-12-13 by blb):

Modified: trunk/base/doc/macports.conf.in
===================================================================
--- trunk/base/doc/macports.conf.in	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/doc/macports.conf.in	2008-12-18 08:46:30 UTC (rev 43959)
@@ -47,7 +47,7 @@
 # Unarchive uses multiple types as a search list to locate the archive,
 # first archive to match one of the specified types in order is used.
 #
-# Supported types: tgz (default), tar, tbz, tbz2, tlz, xar, zip, cpgz, cpio
+# Supported types: tgz (default), tar, tbz, tbz2, tlz, xar, xpkg, zip, cpgz, cpio
 portarchivetype		tgz
 
 # Use ccache (C/C++ compiler cache) - see http://ccache.samba.org/

Modified: trunk/base/src/macports1.0/macports.tcl
===================================================================
--- trunk/base/src/macports1.0/macports.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/macports1.0/macports.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -1290,7 +1290,7 @@
         || $target == "dmg" || $target == "mdmg"
         || $target == "pkg" || $target == "mpkg"
         || $target == "rpm" || $target == "dpkg" 
-        || $target == "srpm" } {
+        || $target == "srpm"|| $target == "portpkg" } {
 
         if {[mportdepends $mport $target] != 0} {
             return 1
@@ -1722,6 +1722,7 @@
         archive     -
         dmg         -
         pkg         -
+        portpkg     -
         mdmg        -
         mpkg        -
         rpm         -

Modified: trunk/base/src/package1.0/Makefile
===================================================================
--- trunk/base/src/package1.0/Makefile	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/package1.0/Makefile	2008-12-18 08:46:30 UTC (rev 43959)
@@ -1,6 +1,6 @@
 INSTALLDIR=	${DESTDIR}${datadir}/macports/Tcl/package1.0
 
-SRCS=	package.tcl portdmg.tcl portmdmg.tcl portmpkg.tcl portpkg.tcl \
+SRCS=	package.tcl portdmg.tcl portmdmg.tcl portmpkg.tcl portpkg.tcl portportpkg.tcl \
 	portrpm.tcl portsrpm.tcl portdpkg.tcl portunarchive.tcl portarchive.tcl
 
 include ../../Mk/macports.autoconf.mk

Modified: trunk/base/src/package1.0/package.tcl
===================================================================
--- trunk/base/src/package1.0/package.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/package1.0/package.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -39,5 +39,6 @@
 package require portdmg 1.0
 package require portmdmg 1.0
 package require portdpkg 1.0
+package require portportpkg 1.0
 package require portunarchive 1.0
 package require portarchive 1.0

Modified: trunk/base/src/package1.0/portarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portarchive.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/package1.0/portarchive.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -54,6 +54,10 @@
 default archive.file {}
 default archive.path {}
 
+default archive.meta false
+default archive.metaname {}
+default archive.metapath {}
+
 set_ui_prefix
 
 proc archive_init {args} {
@@ -61,7 +65,8 @@
 	global variations package.destpath workpath
 	global ports_force ports_source_only ports_binary_only
 	global portname portversion portrevision portvariants
-	global archive.destpath archive.type archive.file archive.path archive.fulldestpath
+	global archive.destpath archive.type archive.meta
+	global archive.file archive.path archive.fulldestpath
 
 	# Check mode in case archive called directly by user
 	if {[option portarchivemode] != "yes"} {
@@ -108,6 +113,9 @@
 				set unsupported [expr $unsupported + 1]
 			}
 		}
+		if {${archive.type} == "xpkg"} {
+			set archive.meta true
+		}
 		if {[llength [option portarchivetype]] == $unsupported} {
 			ui_debug "Skipping archive ($portname) since specified archive types not supported"
 			set skipped 1
@@ -138,6 +146,7 @@
 	global archive.env archive.cmd
 	global archive.pre_args archive.args archive.post_args
 	global archive.type archive.path
+	global archive.metaname archive.metapath
 	global os.platform os.version
 
 	# Define appropriate archive command and options
@@ -216,6 +225,19 @@
 				return -code error "No '$xar' was found on this system!"
 			}
 		}
+		xpkg {
+			set xar "xar"
+			set compression "bzip2"
+			if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
+				ui_debug "Using $xar"
+				set archive.cmd "$xar"
+				set archive.pre_args "-cv --exclude='\./\+.*' --compression=${compression} -n ${archive.metaname} -s ${archive.metapath} -f"
+				set archive.args "${archive.path} ."
+			} else {
+				ui_debug $errmsg
+				return -code error "No '$xar' was found on this system!"
+			}
+		}
 		zip {
 			set zip "zip"
 			if {[catch {set zip [binaryInPath $zip]} errmsg] == 0} {
@@ -236,11 +258,28 @@
 	return 0
 }
 
+proc putel { fd el data } {
+	# Quote xml data
+	set quoted [string map  { & &amp; < &lt; > &gt; } $data]
+	# Write the element
+	puts $fd "<${el}>${quoted}</${el}>"
+}
+
+proc putlist { fd listel itemel list } {
+	puts $fd "<$listel>"
+	foreach item $list {
+		putel $fd $itemel $item
+	}
+	puts $fd "</$listel>"
+}
+
 proc archive_main {args} {
 	global UI_PREFIX variations
 	global workpath destpath portpath ports_force
 	global portname portepoch portversion portrevision portvariants
 	global archive.fulldestpath archive.type archive.file archive.path
+	global archive.meta archive.metaname archive.metapath
+	global os.platform os.arch
 
 	# Create archive destination path (if needed)
 	if {![file isdirectory ${archive.fulldestpath}]} {
@@ -319,6 +358,81 @@
 	}
 	close $fd
 
+	# the XML package metadata, for XAR package
+	# (doesn't contain any file list/checksums)
+	if {${archive.meta}} {
+		set archive.metaname "xpkg"
+		set archive.metapath [file join $workpath "${archive.metaname}.xml"]
+		set sd [open ${archive.metapath} w]
+		puts $sd "<xpkg version='0.2'>"
+		# TODO: split contents into <buildinfo> (new) and <package> (current)
+		#       see existing <portpkg> for the matching source package layout
+
+		putel $sd name ${portname}
+		putel $sd epoch ${portepoch}
+		putel $sd version ${portversion}
+		putel $sd revision ${portrevision}
+		putel $sd major 0
+		putel $sd minor 0
+
+		putel $sd platform ${os.platform}
+		putel $sd arch ${os.arch}
+		set vlist [lsort -ascii [array names variations]]
+		putlist $sd variants variant $vlist
+
+		if {[exists categories]} {
+			set primary [lindex [split [option categories] " "] 0]
+			putel $sd category $primary
+		}
+		if {[exists description]} {
+			putel $sd comment "[option description]"
+		}
+		if {[exists long_description]} {
+			putel $sd desc "[option long_description]"
+		}
+		if {[exists homepage]} {
+			putel $sd homepage "[option homepage]"
+		}
+
+            # Emit dependencies provided by this package
+            puts $sd "<provides>"
+                set name ${portname}
+                puts $sd "<item>"
+                putel $sd name $name
+                putel $sd major 0
+                putel $sd minor 0
+                puts $sd "</item>"
+            puts $sd "</provides>"
+            
+    set res [mport_search ^$portname\$]
+    if {[llength $res] < 2} {
+        ui_error "Dependency $portname not found"
+    } else {
+    array set portinfo [lindex $res 1]
+
+            # Emit build, library, and runtime dependencies
+            puts $sd "<requires>"
+            foreach {key type} {
+                depends_build "build"
+                depends_lib "library"
+                depends_run "runtime"
+            } {
+                if {[info exists portinfo($key)]} {
+                    set name [lindex [split $portinfo($key) :] end]
+                    puts $sd "<item type=\"$type\">"
+                    putel $sd name $name
+                    putel $sd major 0
+                    putel $sd minor 0
+                    puts $sd "</item>"
+                }
+            }
+            puts $sd "</requires>"
+    }
+
+		puts $sd "</xpkg>"
+		close $sd
+	}
+
 	# Now create the archive(s)
 	# Loop through archive types
 	foreach archive.type [option portarchivetype] {

Added: trunk/base/src/package1.0/portportpkg.tcl
===================================================================
--- trunk/base/src/package1.0/portportpkg.tcl	                        (rev 0)
+++ trunk/base/src/package1.0/portportpkg.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -0,0 +1,206 @@
+# et:ts=4
+# portportpkg.tcl
+# $Id$
+#
+# Copyright (c) 2002 - 2004 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.
+#
+
+package provide portportpkg 1.0
+package require portutil 1.0
+
+set org.macports.portpkg [target_new org.macports.portpkg portpkg_main]
+target_runtype ${org.macports.portpkg} always
+target_provides ${org.macports.portpkg} portpkg 
+target_requires ${org.macports.portpkg} main
+
+set_ui_prefix
+
+
+proc xar_path {args} {
+	global prefix_frozen
+    set xar ""
+    foreach path "${portutil::autoconf::xar_path} ${prefix_frozen}/bin/xar xar" {
+ 	if { [file executable ${path}] } {
+ 	   	  set xar $path
+ 	      break;
+ 	}
+    }
+    if { "${xar}" == "" } {
+    	ui_error "The xar tool is required to make portpkgs"
+    	ui_error "Please install the xar port before proceeding."
+		return -code error [msgcat::mc "Portpkg failed"]
+    }
+    
+    return $xar
+}
+
+
+# escape quotes, and things that make the shell cry
+proc shell_escape {str} {
+	regsub -all -- {\\} $str {\\\\} str
+	regsub -all -- {"} $str {\"} str
+	regsub -all -- {'} $str {\'} str
+	return $str
+}
+
+
+proc putel { fd el data } {
+	# Quote xml data
+	set quoted [string map  { & &amp; < &lt; > &gt; } $data]
+	# Write the element
+	puts $fd "<${el}>${quoted}</${el}>"
+}
+
+
+proc putlist { fd listel itemel list } {
+	puts $fd "<$listel>"
+	foreach item $list {
+		putel $fd $itemel $item
+	}
+	puts $fd "</$listel>"
+}
+
+
+proc create_portpkg {} {
+    global portname portversion prefix UI_PREFIX workpath portpath
+
+	set xar [xar_path]
+	
+    set dirname "portpkg"
+    set dirpath "${workpath}/${dirname}"
+    set pkgpath "${workpath}/${portname}.portpkg"
+    set metaname "portpkg_meta.xml"
+    set metapath "${workpath}/${metaname}"
+    
+    # Expose and default some global variables
+    set vars " portname portversion maintainers categories description \
+    	long_description master_sites homepage epoch version revision \
+    	PortInfo \
+    	submitter_name submitter_email submitter_key \
+    	"
+	eval "global $vars"
+	foreach var $vars {
+		if {![info exists $var]} { set $var {} }
+	}
+	
+	# Unobscure the maintainer addresses
+	set maintainers [unobscure_maintainers $maintainers]
+
+    # Make sure our workpath is clean
+    file delete -force $dirpath $metapath $pkgpath
+    
+    # Create the portpkg directory
+    file mkdir $dirpath
+
+    # Move in the Portfile
+    file copy Portfile ${dirpath}
+    
+    # Move in files    
+    if {[file isdirectory "files"]} {
+        file copy files ${dirpath}
+    }
+    
+    # Create the metadata subdoc
+    set sd [open ${metapath} w]
+    puts $sd "<portpkg version='1'>"
+    
+		puts $sd "<submitter>"
+			putel $sd name $submitter_name
+			putel $sd email $submitter_email
+			
+			# TODO provide means to set notes?
+			putel $sd notes ""
+		puts $sd "</submitter>"
+		
+		puts $sd "<package>"
+			putel $sd name $portname
+			putel $sd homepage $homepage
+			putlist $sd categories category $categories
+			putlist $sd maintainers maintainer $maintainers
+			
+			putel $sd epoch $epoch
+			putel $sd version $version
+			putel $sd revision $revision
+			
+			putel $sd description [join $description]
+			putel $sd long_description [join $long_description]
+		
+			# TODO: variants has platforms in it
+			if {[info exists PortInfo(variants)]} {
+				if {[info exists PortInfo(variant_desc)]} {
+					array set descs $PortInfo(variant_desc)
+				} else {
+					array set descs ""
+				}
+	
+				puts $sd "<variants>"
+				foreach v $PortInfo(variants) {
+					puts $sd "<variant>"
+						putel $sd name $v
+						if {[info exists descs($v)]} {
+							putel $sd description $descs($v)
+						}
+					puts $sd "</variant>"
+				}
+				puts $sd "</variants>"
+			} else {
+				putel $sd variants ""
+			}
+			
+			# TODO: Dependencies and platforms
+			#putel $sd dependencies ""
+			#putel $sd platforms ""
+			
+		puts $sd "</package>"
+		
+    puts $sd "</portpkg>"
+    close $sd
+    
+    # Create portpkg.xar, including the metadata and the portpkg directory contents
+    set cmd "cd ${workpath}; ${xar} -cf ${pkgpath} --exclude \\.DSStore --exclude \\.svn ${dirname} -s ${metapath} -n ${metaname}"
+    if {[system $cmd] != ""} {
+		return -code error [format [msgcat::mc "Failed to create portpkg for port : %s"] $portname]
+    }
+    
+    return ${pkgpath}
+}
+
+
+proc portpkg_main {args} {
+    global portname portversion portverbose prefix UI_PREFIX workpath portpath
+    
+    ui_msg "$UI_PREFIX [format [msgcat::mc "Creating portpkg for %s-%s"] ${portname} ${portversion}]"
+
+    # Make sure we have a work directory
+    file mkdir ${workpath}
+  
+    # Create portpkg.xar in the work directory
+    set pkgpath [create_portpkg]
+ 
+    return 0
+}

Modified: trunk/base/src/package1.0/portunarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portunarchive.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/package1.0/portunarchive.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -223,7 +223,7 @@
 				return -code error "No '$tar' was found on this system!"
 			}
 		}
-		xar {
+		(xar|xpkg) {
 			set xar "xar"
 			if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
 				ui_debug "Using $xar"

Modified: trunk/base/src/port/port.tcl
===================================================================
--- trunk/base/src/port/port.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/port/port.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -2683,6 +2683,7 @@
     dpkg        [list action_target         [action_args_const ports]] \
     mpkg        [list action_target         [action_args_const ports]] \
     pkg         [list action_target         [action_args_const ports]] \
+    portpkg     [list action_target         [action_args_const ports]] \
     rpm         [list action_target         [action_args_const ports]] \
     srpm        [list action_target         [action_args_const ports]] \
     \

Modified: trunk/base/src/port1.0/portsubmit.tcl
===================================================================
--- trunk/base/src/port1.0/portsubmit.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/port1.0/portsubmit.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -32,34 +32,16 @@
 
 package provide portsubmit 1.0
 package require portutil 1.0
+package require portportpkg 1.0
 
 set org.macports.submit [target_new org.macports.submit submit_main]
 target_runtype ${org.macports.submit} always
 target_provides ${org.macports.submit} submit 
-target_requires ${org.macports.submit} main
+target_requires ${org.macports.submit} portpkg
 
 set_ui_prefix
 
 
-proc xar_path {args} {
-	global prefix_frozen
-    set xar ""
-    foreach path "${portutil::autoconf::xar_path} ${prefix_frozen}/bin/xar xar" {
- 	if { [file executable ${path}] } {
- 	   	  set xar $path
- 	      break;
- 	   }
-    }
-    if { "${xar}" == "" } {
-    	ui_error "The xar tool is required to submit ports"
-    	ui_error "Please install the xar port before proceeding."
-		return -code error [msgcat::mc "Submit failed"]
-    }
-    
-    return $xar
-}
-
-
 # escape quotes, and things that make the shell cry
 proc shell_escape {str} {
 	regsub -all -- {\\} $str {\\\\} str
@@ -69,143 +51,21 @@
 }
 
 
-proc putel { fd el data } {
-	# Quote xml data
-	set quoted [string map  { & &amp; < &lt; > &gt; } $data]
-	# Write the element
-	puts $fd "<${el}>${quoted}</${el}>"
-}
-
-
-proc putlist { fd listel itemel list } {
-	puts $fd "<$listel>"
-	foreach item $list {
-		putel $fd $itemel $item
-	}
-	puts $fd "</$listel>"
-}
-
-
-proc create_portpkg {} {
-    global portname portversion prefix UI_PREFIX workpath portpath
-
-	set xar [xar_path]
-	
-    set dirname "portpkg"
-    set dirpath "${workpath}/${dirname}"
-    set pkgpath "${workpath}/${portname}.portpkg"
-    set metaname "portpkg_meta.xml"
-    set metapath "${workpath}/${metaname}"
+proc submit_main {args} {
+    global mp_remote_submit_url portname portversion portverbose prefix UI_PREFIX workpath portpath
     
-    # Expose and default some global variables
-    set vars " portname portversion maintainers categories description \
-    	long_description master_sites homepage epoch version revision \
-    	PortInfo \
-    	submitter_name submitter_email submitter_key \
-    	"
-	eval "global $vars"
-	foreach var $vars {
-		if {![info exists $var]} { set $var {} }
-	}
-	
-	# Unobscure the maintainer addresses
-	set maintainers [unobscure_maintainers $maintainers]
-
-    # Make sure our workpath is clean
-    file delete -force $dirpath $metapath $pkgpath
+    set submiturl $mp_remote_submit_url
     
-    # Create the portpkg directory
-    file mkdir $dirpath
-
-    # Move in the Portfile
-    file copy Portfile ${dirpath}
-    
-    # Move in files    
-    if {[file isdirectory "files"]} {
-        file copy files ${dirpath}
-    }
-    
     # Preconditions for submit
     if {$submitter_email == ""} {
 		return -code error [format [msgcat::mc "Submitter email is required to submit a port"]]
     }
 
-    # Create the metadata subdoc
-    set sd [open ${metapath} w]
-    puts $sd "<portpkg version='1'>"
-    
-		puts $sd "<submitter>"
-			putel $sd name $submitter_name
-			putel $sd email $submitter_email
-			
-			# TODO provide means to set notes?
-			putel $sd notes ""
-		puts $sd "</submitter>"
-		
-		puts $sd "<package>"
-			putel $sd name $portname
-			putel $sd homepage $homepage
-			putlist $sd categories category $categories
-			putlist $sd maintainers maintainer $maintainers
-			
-			putel $sd epoch $epoch
-			putel $sd version $version
-			putel $sd revision $revision
-			
-			putel $sd description [join $description]
-			putel $sd long_description [join $long_description]
-		
-			# TODO: variants has platforms in it
-			if {[info exists PortInfo(variants)]} {
-				if {[info exists PortInfo(variant_desc)]} {
-					array set descs $PortInfo(variant_desc)
-				} else {
-					array set descs ""
-				}
-	
-				puts $sd "<variants>"
-				foreach v $PortInfo(variants) {
-					puts $sd "<variant>"
-						putel $sd name $v
-						if {[info exists descs($v)]} {
-							putel $sd description $descs($v)
-						}
-					puts $sd "</variant>"
-				}
-				puts $sd "</variants>"
-			} else {
-				putel $sd variants ""
-			}
-			
-			# TODO: Dependencies and platforms
-			#putel $sd dependencies ""
-			#putel $sd platforms ""
-			
-		puts $sd "</package>"
-		
-    puts $sd "</portpkg>"
-    close $sd
-    
-    # Create portpkg.xar, including the metadata and the portpkg directory contents
-    set cmd "cd ${workpath}; ${xar} -cf ${pkgpath} --exclude \\.DSStore --exclude \\.svn ${dirname} -s ${metapath} -n ${metaname}"
-    if {[system $cmd] != ""} {
-		return -code error [format [msgcat::mc "Failed to create portpkg for port : %s"] $portname]
-    }
-    
-    return ${pkgpath}
-}
-
-
-proc submit_main {args} {
-    global mp_remote_submit_url portname portversion portverbose prefix UI_PREFIX workpath portpath
-    
-    set submiturl $mp_remote_submit_url
-    
     # Make sure we have a work directory
     file mkdir ${workpath}
   
    	# Create portpkg.xar in the work directory
-   	set pkgpath [create_portpkg]
+   	set pkgpath "${workpath}/${portname}.portpkg"
    	
    	# TODO: If a private key was provided, create a signed digest of the submission
    	

Modified: trunk/base/src/port1.0/portutil.tcl
===================================================================
--- trunk/base/src/port1.0/portutil.tcl	2008-12-18 08:27:09 UTC (rev 43958)
+++ trunk/base/src/port1.0/portutil.tcl	2008-12-18 08:46:30 UTC (rev 43959)
@@ -1264,6 +1264,7 @@
                             archive     -
                             dmg         -
                             pkg         -
+                            portpkg     -
                             mpkg        -
                             rpm         -
                             srpm        -
@@ -2117,7 +2118,7 @@
                 }
             }
         }
-        xar {
+        xar|xpkg {
             set xar "xar"
             if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
                 return 0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20081218/65ebe371/attachment-0001.html>


More information about the macports-changes mailing list