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             [EMAIL PROTECTED]
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.

_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users

Reply via email to