ASSP out of date

Ryan Schmidt ryandesign at macports.org
Wed Nov 5 19:38:44 PST 2008


On Nov 5, 2008, at 21:08, Scott Haneda wrote:

> On Nov 5, 2008, at 4:04 PM, David Evans wrote:
>
>> Scott Haneda wrote:
>>> This port installs clean, and really nice:
>>> http://trac.macports.org/browser/trunk/dports/mail/assp/Portfile
>>>
>>> however, I can not locate a maintainer, as it is woefully out of  
>>> date.
>>> name                    assp
>>> version                 1.1.0
>>>
>>> ASSP 1.3.3.10 is current, and also, there is a very strong beta  
>>> of 2.x
>>> as well I would love to see in the ports system.  What is the  
>>> best way
>>> to find the maintainer, and see about getting this updated.
>>> -- 
>>> Scott
>>>
>> Since the maintainer is "nomaintainer" then maintainership is up for
>> grabs.  So you can become the
>> maintainer if you like.  Just update the Portfile as necessary with
>> yourself as maintainer
>> and also openmaintainer if you are willing to let others make  
>> changes to
>> the port.  Then
>> create a ticket on Trac and attach your changes, preferably as a  
>> patch
>> to the current Portfile.
>>
>> See http://guide.macports.org/  for procedural details.
>
>
> This is my first effort to make a port update file locally on my  
> machine, so be gentle :)
>
> sudo port clean --work assp
> Password:
> --->  Cleaning assp
>
> I located this path:
> /opt/local/var/macports/sources/rsync.macports.org/release/ports/ 
> mail/assp/
> it would be nice to know how to locate that path with a command.

port dir assp


> Made a copy:
> -rw-r--r--  1 root  admin  4686 Nov  5 18:34 Portfile
> -rw-r--r--  1 root  admin  4686 Nov  5 16:52 Portfile.orig
>
> Original located here: http://pastebin.com/m7a3fb1d6
>
> sudo port edit assp
> Changed -> version                 1.4.3.0
> Changed -> maintainers             scott at newgeo.com
> Added   -> distname                ASSP_${version}-Install
>
> pre-patch seems to run around and look for two files, to rename
> file rename "${worksrcpath}/ASSP Documentation.htm" ${worksrcpath}/ 
> ASSPDocumentation.htm
> file rename "${worksrcpath}/Regular Expression Tutorial.htm" $ 
> {worksrcpath}/RegularExpressionutorial.htm
>
> Neither of them exist, and even if they did, they would have moved  
> to the docs/ directory.  Either way, I am not sure what was bad  
> about spaces in the files anyway, they are html files, and most  
> browsers can deal with that.
>
> I simply removed those two lines.

I'm not sure why those lines were there. They were part of the port  
since it was initially created in r10407.


> Removed -> patchfiles              patch-assp.pl.diff
> Here is where my lack of experience comes on, I have no idea if the  
> patch is needed, so at this point, I am commenting it out and just  
> trying to get it to build. I know it will build clean on a Intel  
> machine, so I would imagine, this patch is no longer needed with so  
> many versions passing.

Not sure either. It's also been there since the initial revision. You  
could ask the person who committed that change 3 years ago, or you  
could see if the new version of the software already has a similar  
change in it, in which case it was probably a bug that the previous  
maintainer fixed locally, which is now no longer needed.


> Save the file, and run:
> sudo port install assp
> * Error on checksum, after a bit of poking, I see there is:
> sudo port -d checksum assp
> Portfile checksum: ASSP_1.4.3.0-Install.zip md5  
> 55be31bab3efacc6bd964adf8cd25c83
> Distfile checksum: ASSP_1.4.3.0-Install.zip md5  
> e7fa4bfbed0e7cb7d430d1ebcd4b6eb1
>
> Updated -> checksums               md5  
> e7fa4bfbed0e7cb7d430d1ebcd4b6eb1
>
> ( Also at http://pastebin.com/m5c6dab26 )
> sudo port -d install assp
> DEBUG: Found port in file:///opt/local/var/macports/sources/ 
> rsync.macports.org/release/ports/mail/assp
> DEBUG: Changing to port directory: /opt/local/var/macports/sources/ 
> rsync.macports.org/release/ports/mail/assp
> DEBUG: Requested variant powerpc is not provided by port assp.
> DEBUG: Requested variant darwin is not provided by port assp.
> DEBUG: Requested variant macosx is not provided by port assp.
> DEBUG: Found port in file:///opt/local/var/macports/sources/ 
> rsync.macports.org/release/ports/lang/perl5.8
> DEBUG: Changing to port directory: /opt/local/var/macports/sources/ 
> rsync.macports.org/release/ports/lang/perl5.8
> DEBUG: Requested variant powerpc is not provided by port perl5.8.
> DEBUG: Requested variant macosx is not provided by port perl5.8.
> DEBUG: Executing variant darwin provides darwin
> DEBUG: Executing variant darwin_9 provides darwin_9
> DEBUG: Searching for dependency: perl5.8
> DEBUG: Found Dependency: receipt exists for perl5.8
> DEBUG: Skipping completed org.macports.main (assp)
> DEBUG: Skipping completed org.macports.fetch (assp)
> DEBUG: Skipping completed org.macports.checksum (assp)
> DEBUG: setting option extract.cmd to /usr/bin/unzip
> DEBUG: setting option extract.pre_args to -q
> DEBUG: setting option extract.post_args to {-d /opt/local/var/ 
> macports/build/ 
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_ 
> assp/work/ASSP_1.4.3.0-Install}
> DEBUG: Skipping completed org.macports.extract (assp)
> DEBUG: Executing proc-pre-org.macports.patch-patch-0
> Error: Target org.macports.patch returned: no files matched glob  
> patterns "*.pl *.sh *.htm *.txt rc/*.dat"
> Warning: the following items did not execute (for assp):  
> org.macports.activate org.macports.patch org.macports.configure  
> org.macports.build org.macports.destroot org.macports.install
> Error: Status 1 encountered during processing.
>
> And now, we get stuck when the portfile tries to glob through the  
> source files, I suspect because {worksrcpath} is somehow wrong. It  
> looks to me like this is the path that it is calling {workssrcpath}
> /opt/local/var/macports/build/ 
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_ 
> assp/work/ASSP_1.4.3.0-Install
>
> *What is it doing anyway, just fixing line endings?  Is that really  
> needed?

That's what it appears to be doing. It's doing that so that the unix- 
line-ending patchfiles can be applied to the source files. If you're  
removing the patch files, then you no longer care about the source's  
line endings.


> However, in that path is another directory of "ASSP_1.4.3.0- 
> Install", so it is this:
> .../ 
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_ 
> assp/work/ASSP_1.4.3.0-Install/ASSP_1.4.3.0-Install
> But then, even in that path, there is one last /ASSP directory as  
> well, so the full path to the source files is really:
> /opt/local/var/macports/build/\
> _opt_local_var_macports_sources_rsync.macports.org_release_ports_mail_ 
> assp/\
> work/ASSP_1.4.3.0-Install/ASSP_1.4.3.0-Install/ASSP
>
> I would wager, this is because the developer has changed his  
> layout, if I download, and unzip, I show a path to source of:
> ASSP_1.4.3.0-Install/ASSP
>
> * How do I debug and print out the {worksrcpath} so I can see what  
> it is, and what is it that sets that path as well?

You can "ui_info ${worksrcpath}" or "return -code error $ 
{worksrcpath}" for example.

The first thing you should do is remove these lines:

pre-extract		{ file mkdir ${worksrcpath} }
extract.dir		${worksrcpath}

Previously, the software apparently unpacked directly, without  
creating an enclosing directory. Now it does create an enclosing  
directory for itself. So you no longer need to do so in the Portfile.

Maybe you need so set worksrcdir to "ASSP_${version}-Install/ASSP"


> Looking at configure:
> configure {
>        reinplace "s%^#!.*perl%#![binaryInPath perl]%" \
>                ${worksrcpath}/assp.pl \
>                ${worksrcpath}/move2num.pl \
>                ${worksrcpath}/rebuildspamdb.pl \
>                ${worksrcpath}/repair.pl \
>                ${worksrcpath}/stat.pl
>        reinplace "s%/usr/local/assp%${assp_base}%" \
>                ${worksrcpath}/ASSPDocumentation.htm \
>                ${worksrcpath}/stats.sh \
>                ${worksrcpath}/assp.pl \
>                ${worksrcpath}/rc/assp.dat \
>                ${worksrcpath}/rc/start.dat \
>                ${worksrcpath}/rc/stop.dat
>        reinplace "s%/usr/local%${prefix}%" \
>                ${worksrcpath}/ASSPDocumentation.htm
> }
>
> I can see, I am pretty sure I need to delete the 2  
> "ASSPDocumentation.htm" lines, is this correct?

If you no longer want to do the reinplaces in that file, then sure.


> I am not sure what this does:
> reinplace "s%^#!.*perl%#![binaryInPath perl]%"

binaryInPath is a tcl procedure that returns the full path of the  
given binary. So [binaryInPath] will probably return ${prefix}/bin/ 
perl (where ${prefix} is expanded to whatever the current prefix is).

The reinplace command will replace all occurrences of the regular  
expression ^#!.*perl with the string "#!" and the path to perl as above.

This is basically making sure that the scripts, when run, use  
MacPorts perl, and not Mac OS X perl.

> And as you can see, given the above mentioned {worksrcpath}  
> configure is never going to find those files.  As a first effort, I  
> tried commenting out:
> #extract.dir            ${worksrcpath}
> After than, I ran clean, then install...
> http://pastebin.com/m2053b159
>
> I think it is there, line 35, we sort of run into the same thing,  
> which is there is this "ASSP" directory path that is missing, and I  
> do not know how to add it in, without hard coding it, which if  
> course, would make this too hard to make an updated port file again  
> in the future if the developer moves stuff around.
>
> Hopefully I have troubleshot this as best as I can, I am stuck at  
> this point, with this being my first attempt to make a port update  
> file. Any help is appreciated.



More information about the macports-users mailing list