On Sun, Nov 30, 2008 at 10:41:05AM -0600, Adam Mercer wrote: > [snip] > > [EMAIL PROTECTED] base]$ cat /opt/local/etc/macports/sources.conf > #rsync://rsync.macports.org/release/ports/ > file:///Users/ram/opt/macports [nosync] > [EMAIL PROTECTED] base]$ > > [snip] > > Any idea why base is complianing this directory doesn't exist when it does? > > Cheers > > Adam
The problem is that you don't have a [default] port in your sources.conf. Then MacPorts fails sometimes because of a missing $sources_default in [macports::getportresourcepath] (see my other mail). Thats why I committed this change so the problem can be easily found. Now I think it would be better to just issue a warning if no [default] is there and use the first source as default. I attached the change as patch default.diff. It also fixes the problem when no sources are defined at all but a directory "ports" exists. But maybe the best way would be to try to find the resource in all sources (default first). I just saw r42760 [1] and the question is if my patch should be committed or not. It maybe useful to people who change their sources.conf later or have it in a custom place but otherwise it's not necessary (except for the ports fix). Please tell me if it should be committed. Thanks, Simon [1]: http://trac.macports.org/changeset/42760 -- + privacy is necessary + using http://gnupg.org + public key id: 0x6115F804EFB33229
diff --git a/base/src/macports1.0/macports.tcl
b/base/src/macports1.0/macports.tcl
index 170ce0d..60a78fd 100644
--- a/base/src/macports1.0/macports.tcl
+++ b/base/src/macports1.0/macports.tcl
@@ -432,19 +432,23 @@ proc mportinit {{up_ui_options {}} {up_options {}}
{up_variations {}}} {
}
}
}
- # Make sure the default port source is defined. Otherwise
- # [macports::getportresourcepath] fails when the first source doesn't
- # contain _resources.
- if {![info exists sources_default]} {
- return -code error "No default port source specified in $sources_conf"
- }
+ # If no sources are defined try to use the "ports" directory in pwd as
+ # source.
if {![info exists sources]} {
if {[file isdirectory ports]} {
set sources "file://[pwd]/ports"
+ set sources_default [concat [list $sources] [list default]]
} else {
return -code error "No sources defined in $sources_conf"
}
+ # If no default source was defined in sources.conf use the first source
+ # as default and issue an error. This prevents an 'can't read
+ # "sources_default"' error in [macports::getportresourcepath] if the
+ # requested resource doesn't exist (in this source).
+ } elseif {![info exists sources_default]} {
+ set sources_default [lindex $sources 0]
+ ui_error "$sources_default specifies no default source."
}
if {[info exists variants_conf]} {
pgpUQlkMrxWQd.pgp
Description: PGP signature
_______________________________________________ macports-dev mailing list [email protected] http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev
