[25283] trunk/base/src

James Berry jberry at macports.org
Wed May 16 21:57:46 PDT 2007


On May 16, 2007, at 9:44 PM, source_changes at macosforge.org wrote:

> Revision
> 25283
> Author
> jberry at macports.org
> Date
> 2007-05-16 21:44:07 -0700 (Wed, 16 May 2007)
> Log Message
>
> Remove workdir variable.
>
>  * Placement of the work symlink in the portdir is now optional  
> based on the place_worksymlink key in ports.conf. This defaults to  
> yes.
>  * New command Can't map the URL 'file://.' to a port description  
> file ("Could not find Portfile in /Users/jberry/Projects/macports/ 
> trunk/base/src").
> Please verify that the directory and portfile syntax are correct.
> To use the current port, you must be in a port's directory.
> (you might also see this message if a pseudo-port such as

This should have read "New command 'port work' prints the path to the  
workdir, if there is one."

I was foiled by command expansion inside of my svn -m.

James.
>
> outdated or installed expands to no ports). prints the path to the  
> workdir, if there is one.
>
> These changes make it possible to have a port repository that is  
> entirely readonly and not written to during build, etc.
>
> Note that by keeping place_worksymlink at its default value of yes,  
> no behavior should be changed for the user/developer. (until we  
> decide to default this to no ;).
>
> There exists about three ports that use workdir, and these will  
> need to be modified to use workpath instead.
> Modified Paths
>
> trunk/base/src/darwinports1.0/darwinports.tcl
> trunk/base/src/port/port.tcl
> trunk/base/src/port1.0/portclean.tcl
> trunk/base/src/port1.0/portmain.tcl
> trunk/base/src/port1.0/portutil.tcl
> Diff
>
> Modified: trunk/base/src/darwinports1.0/darwinports.tcl (25282 =>  
> 25283)
>
> --- trunk/base/src/darwinports1.0/darwinports.tcl	2007-05-17  
> 04:05:00 UTC (rev 25282)
> +++ trunk/base/src/darwinports1.0/darwinports.tcl	2007-05-17  
> 04:44:07 UTC (rev 25283)
> @@ -41,14 +41,14 @@
>      	portdbpath libpath binpath auto_path extra_env sources_conf  
> prefix portdbformat \
>      	portinstalltype portarchivemode portarchivepath  
> portarchivetype portautoclean \
>      	porttrace portverbose destroot_umask variants_conf  
> rsync_server rsync_options \
> -    	rsync_dir startupitem_type xcodeversion xcodebuildcmd \
> +    	rsync_dir startupitem_type place_worksymlink xcodeversion  
> xcodebuildcmd \
>      	mp_remote_url mp_remote_submit_url"
>      variable user_options "submitter_name submitter_email  
> submitter_key"
>      variable portinterp_options "\
>      	portdbpath portpath portbuildpath auto_path prefix  
> prefix_frozen portsharepath \
>      	registry.path registry.format registry.installtype  
> portarchivemode portarchivepath \
>      	portarchivetype portautoclean porttrace portverbose  
> destroot_umask rsync_server \
> -    	rsync_options rsync_dir startupitem_type \
> +    	rsync_options rsync_dir startupitem_type place_worksymlink \
>      	mp_remote_url mp_remote_submit_url \
>      	$user_options"
>
> @@ -255,7 +255,6 @@
>  	global darwinports::registry.path
>  	global darwinports::sources
>  	global darwinports::sources_conf
> -	global darwinports::startupitem_type
>     	global darwinports::destroot_umask
>     	global darwinports::libpath
>     	global darwinports::prefix
> @@ -530,19 +529,21 @@
>      }
>
>      # Set startupitem default type (can be overridden by portfile)
> -    if {![info exists startupitem_type]} {
> +    if {![info exists darwinports::startupitem_type]} {
>      	set darwinports::startupitem_type "default"
> -    	global darwinports::startupitem_type
>      }
>
> +    # Default place_worksymlink
> +    if {![info exists darwinports::place_worksymlink]} {
> +    	set darwinports::place_worksymlink yes
> +    }
> +
>      # Default mp remote options
> -    if {![info exists mp_remote_url]} {
> +    if {![info exists darwinports::mp_remote_url]} {
>      	set darwinports::mp_remote_url "http://db.macports.org"
> -    	global darwinports::mp_remote_url
>      }
> -    if {![info exists mp_remote_submit_url]} {
> +    if {![info exists darwinports::mp_remote_submit_url]} {
>      	set darwinports::mp_remote_submit_url "$ 
> {darwinports::mp_remote_url}/submit"
> -    	global darwinports::mp_remote_submit_url
>      }
>
>      # ENV cleanup.
> @@ -633,6 +634,7 @@
>
>      # Export some utility functions defined here.
>      $workername alias darwinports_create_thread  
> darwinports::create_thread
> +    $workername alias getportworkpath_from_buildpath  
> darwinports::getportworkpath_from_buildpath
>
>  	# New Registry/Receipts stuff
>  	$workername alias registry_new registry::new_entry
> @@ -765,7 +767,7 @@
>  	if {[regexp {(?x)([^:]+)://(.+)} $url match protocol string] == 1} {
>  		switch -regexp -- ${protocol} {
>  			{^file$} {
> -				return $string
> +				return [file normalize $string]
>  			}
>  			{^dports$} {
>  				return [darwinports::index::fetch_port $url $destdir]
> @@ -813,12 +815,11 @@
>  		set portdir ""
>  	}
>
> -	set portdir [darwinports::getportdir $porturl $portdir]
> -	ui_debug "Changing to port directory: $portdir"
> -	cd $portdir
> -	set portpath [pwd]
> +	set portpath [darwinports::getportdir $porturl $portdir]
> +	ui_debug "Changing to port directory: $portpath"
> +	cd $portpath
>      if {![file isfile Portfile]} {
> -        return -code error "Could not find Portfile in $portdir"
> +        return -code error "Could not find Portfile in $portpath"
>      }
>
>  	set workername [interp create]
> @@ -1183,6 +1184,14 @@
>  	return [file join $portdbpath build $port_path]
>  }
>
> +proc darwinports::getportworkpath_from_buildpath {portbuildpath} {
> +	return [file join $portbuildpath work]
> +}
> +
> +proc darwinports::getportworkpath_from_portdir {portpath} {
> +	return [darwinports::getportworkpath_from_buildpath  
> [darwinports::getportbuildpath $portpath]]
> +}
> +
>  proc darwinports::getindex {source} {
>  	# Special case file:// sources
>  	if {[darwinports::getprotocol $source] == "file"} {
> Modified: trunk/base/src/port/port.tcl (25282 => 25283)
>
> --- trunk/base/src/port/port.tcl	2007-05-17 04:05:00 UTC (rev 25282)
> +++ trunk/base/src/port/port.tcl	2007-05-17 04:44:07 UTC (rev 25283)
> @@ -1968,6 +1968,14 @@
>  					puts $portdir
>  				}
>  				
> +				work {
> +					# output the path to the port's work directory
> +					set workpath [darwinports::getportworkpath_from_portdir  
> $portdir]
> +					if {[file exists $workpath]} {
> +						puts $workpath
> +					}
> +				}
> +				
>  				cd {
>  					# Change to the port's directory, making it the default
>  					# port for any future commands
> @@ -2157,6 +2165,7 @@
>  	edit		action_portcmds
>  	cat			action_portcmds
>  	dir			action_portcmds
> +	work		action_portcmds
>  	cd			action_portcmds
>  	url			action_portcmds
>  	file		action_portcmds
> Modified: trunk/base/src/port1.0/portclean.tcl (25282 => 25283)
>
> --- trunk/base/src/port1.0/portclean.tcl	2007-05-17 04:05:00 UTC  
> (rev 25282)
> +++ trunk/base/src/port1.0/portclean.tcl	2007-05-17 04:44:07 UTC  
> (rev 25283)
> @@ -165,7 +165,7 @@
>  	}
>
>  	# Clean symlink, if necessary
> -	if {[file type $worksymlink] == "link"} {
> +	if {[file exists $worksymlink] && [file type $worksymlink] ==  
> "link"} {
>  		ui_debug "Removing symlink: ${worksymlink}"
>  		file delete -force -- ${worksymlink}
>  	}
> Modified: trunk/base/src/port1.0/portmain.tcl (25282 => 25283)
>
> --- trunk/base/src/port1.0/portmain.tcl	2007-05-17 04:05:00 UTC  
> (rev 25282)
> +++ trunk/base/src/port1.0/portmain.tcl	2007-05-17 04:44:07 UTC  
> (rev 25283)
> @@ -42,7 +42,7 @@
>  # define options
>  options prefix name version revision epoch categories maintainers
>  options long_description description homepage
> -options workdir worksrcdir filesdir distname portdbpath libpath  
> distpath sources_conf os.platform os.version os.arch os.endian  
> platforms default_variants install.user install.group
> +options worksrcdir filesdir distname portdbpath libpath distpath  
> sources_conf os.platform os.version os.arch os.endian platforms  
> default_variants install.user install.group
>
>  # Export options via PortInfo
>  options_export name version revision epoch categories maintainers  
> platforms description long_description homepage
> @@ -53,9 +53,8 @@
>  # Hard coded version number for resource location
>  default portresourcepath {[file join $portsharepath resources/ 
> port1.0]}
>  default distpath {[file join $portdbpath distfiles]}
> -default workdir work
> -default workpath {[file join $portbuildpath $workdir]}
> -default worksymlink {[file join $portpath $workdir]}
> +default workpath {[getportworkpath_from_buildpath $portbuildpath]}
> +default worksymlink {[file join $portpath work]}
>  default prefix /opt/local
>  default x11prefix /usr/X11R6
>  default destdir destroot
> Modified: trunk/base/src/port1.0/portutil.tcl (25282 => 25283)
>
> --- trunk/base/src/port1.0/portutil.tcl	2007-05-17 04:05:00 UTC  
> (rev 25282)
> +++ trunk/base/src/port1.0/portutil.tcl	2007-05-17 04:44:07 UTC  
> (rev 25283)
> @@ -941,7 +941,7 @@
>  # filefindbypath
>  # Provides searching of the standard path for included files
>  proc filefindbypath {fname} {
> -    global distpath filesdir workdir worksrcdir portpath
> +    global distpath filesdir worksrcdir portpath
>
>      if {[file readable $portpath/$fname]} {
>  	return $portpath/$fname
> @@ -1246,7 +1246,7 @@
>  # open_statefile
>  # open file to store name of completed targets
>  proc open_statefile {args} {
> -    global workpath worksymlink portname portpath ports_ignore_older
> +    global workpath worksymlink place_worksymlink portname  
> portpath ports_ignore_older
>
>      if {![file isdirectory $workpath]} {
>  	file mkdir $workpath
> @@ -1266,7 +1266,7 @@
>      }
>
>      # Create a symlink to the workpath for port authors
> -    if {![file isdirectory $worksymlink]} {
> +    if {[tbool place_worksymlink] && ![file isdirectory  
> $worksymlink]} {
>  	    exec ln -sf $workpath $worksymlink
>      }
>
> @@ -1288,8 +1288,6 @@
>  # check_statefile
>  # Check completed/selected state of target/variant $name
>  proc check_statefile {class name fd} {
> -    global portpath workdir
> -
>      seek $fd 0
>      while {[gets $fd line] >= 0} {
>  	if {$line == "$class: $name"} {
> _______________________________________________
> macports-changes mailing list
> macports-changes at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macports-changes

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070516/69847ccb/attachment.html


More information about the macports-changes mailing list