ASSP out of date

Scott Haneda talklists at newgeo.com
Tue Nov 11 15:43:26 PST 2008


On Nov 11, 2008, at 1:57 AM, Bryan Blackburn wrote:
> On Tue, Nov 11, 2008 at 01:20:51AM -0800, Scott Haneda said:
>> Hello, had some more spare time this evening, working on the assp  
>> port,
>> thanks to all who are entertaining me in this training process.
>>
>> I am working on the port as it started, so I issue sudo port edit  
>> assp.
>> If I run:
>> clear; sudo port -d install assp
>> I generally get a bunch of errors, certainly a lot less if I  
>> uninstall
>> the port first.  In the interest of learning, can someone explain  
>> what is
>> going on, here is the output:
>> http://pastebin.com/m61fea40e
>> ( I have a good deal of ui_info " MY DEBUG: *" in there )
>
> The basic problem is that you're trying to install stuff directly, but
> everything needs initially to be underneath ${destroot} so port can  
> then
> figure out what files belong to the software.  Your destroot phase  
> should
> get rid of the 'file delete ...' and change the copy to be
>
>   file copy "${worksrcpath}" "${destroot}${prefix}/var/ASSP"
>
> [...]

My destroot path is:
/opt/local/var/macports/build/ 
_opt_local_var_macports_sources_rsync 
.macports.org_release_ports_mail_assp/work/destroot

prefix is /opt/local

So the entire final path would be
/opt/local/var/macports/build/ 
_opt_local_var_macports_sources_rsync 
.macports.org_release_ports_mail_assp/work/destroot/opt/local/var/ASSP

I do not at all understand that.  I want assp to end up in /opt/local/ 
var/ASSP so unless file copy does something special to a destination  
path, I am lost on that one.

Also, the errors I am seeing, sometimes they go away if I issue an  
uninstall, sometimes it seems more erratic.  At the paste url http://pastebin.com/m61fea40e 
  look at lines 96 and beyond, that is what I am trying to learn what  
they are all about.

>> pre-patch, configrue, build, and destroot all appear to be what I  
>> would
>> call tcl functions, does the order of placement in the port file  
>> make any
>> difference at all, or are the parsed and ran in the order they need  
>> to be?
>> I think the logical order would be
>
> Order in the Portfile doesn't matter for those, they are run in the  
> logical
> order (fetch, extract, patch, configure, build, destroot, install,  
> activate)
> with pre- and post- phases for each available.

Ahh nice, thanks.  I am not entirely sure, you guys can be the gauge  
of this, but I feel my questions are not that out of the ordinary for  
a new port maker.  I do look at the docs before I ask here, either I  
am a bad searcher in the docs, or the data is missing.  Google tends  
to mostly point the the tracker, so that is of little use.

If I wanted to start adding stuff like this to the docs, would you  
agree it is beneficial, or am I asking questions most people  
understand?  If you do think it is beneficial, what is the best  
procedure for making changes and additions to the docs?

A good example is fs-traverse, which I think is just awesome, and in  
looking over other ports, trying to learn, there are clear cases where  
it would be a better choice to use than some of the for each loops  
people are doing in tcl.  I do not think fs-traverse is even mentioned  
on the docs.

>> Thanks, once this works, I will work on the destroot and making  
>> sure it
>> does not nuke config and bayes database and other files, that  
>> should leave
>> me with figuring out what perl modules need ports.
>
> Note that during development of a port, it's best to initially run  
> through
> the destroot phase, and if at all possible, as a user who can't  
> write to the
> MacPorts install location.  Eg,

If that user can not write to the /opt/local, what would this  
accomplish, aside from erroring out on a permission error?

> $ port -d destroot
>
> in the Portfile directory, as you, this way if your uid doesn't have  
> write
> access, it will fail to write things directly to ${prefix} so you know
> there's something that needs to be updated so it goes into
> ${destroot}${prefix} instead.

Where is this portfile directory?

Is there a list of all port commands, in short form, that I can use as  
a references?  Things like `port dir MacPorts` are tremendously  
useful, but hard to remember and learn about.

Thanks.
--
Scott



More information about the macports-users mailing list