On Jan 21, 2009, at 1:40 AM, Bryan Blackburn wrote:
On Tue, Jan 20, 2009 at 05:50:23PM -0800, Scott Haneda said:
On Jan 20, 2009, at 5:01 PM, Bryan Blackburn wrote:
[...]
Some perl modules come packaged in groups like that, which definitely
can
cause confusion. Maybe the best solution would be to list all actual modules installed with the given port? Then it may be easier to search
for
it.

List it in the port description? Will that get searched? How do I even
get a list of what is in these packages from the CPAN site?

In the long_description is what I was pondering; if you're running MacPorts
1.7 'port search' will look in (among other field) long_description by
default, with trunk you'd need to add the --long_description flag to search it. Anything more specific to perl modules would mean changing base and of
course deciding first how that would work, etc...

Nice to know, thanks, I was not aware of --long_description

Seems an ok way to deal with it, not ideal to me though. I am not sure if this problem is just perl module related, or is more generic. If it would be appropriate, the idea of adding a new variable to port files may be a fair idea.

file_contains or whatever is appropriate, which could then be searched on by default. It seems very common that this comes up.

[...]
The base perl5.8 port should actually have what's in libnet like
Net::SMTP,
so no port should actually be needed for this one.


How would I know that?
port search smtp
All I see is
p5-net-smtp_auth @0.08 (perl)
   Perl5 SMTP client with AUTHentication

If that is it, great, but how would I confirm it is in fact the same
thing?  All signs point to it being different.

In many cases, a person running 'port install ...' is probably more
interested in some final program and not just perl modules, so that's where
the dependency management comes into play.  This way various port
maintainers only need to determine the which/where question the one time for
these things and anyone else just lets port take it from there.

Correct, and the more I think about it, the more I may be looking at this wrong. My end game here is to get ASSP ported. I need 20 or so perl modules to go with it, but once I get those, and build the dependency tree in the ASSP port file, no other user will ever care about the issues I am currently running into.

If you're one of those maintainers, then it definitely helps to know the software you're dealing with. In perl's case, what I've done in the past is to query search.cpan.org for the specific module, which leads you to either a distribution specific to that module or one that includes several modules.

That is exactly where I have been spending my time as well. To be honest, I just wish the developer of ASSP had listed the parent perl module rather then the submodule, it would have made this seem a heck of a lot easier.

From that you'd just create the port and be done with it.

Also, knowing that Net::SMTP is with the base perl5.8 port is something I just knew because it's part of the perl libnet stuff which was integrated
into perl core some time ago.

And that there is the main major problem with this. While not with Net::SMTP, but other perl modules, this bit me. I need net:foo and did not find it, so I made a port. I later learned net:foo was already in net:main so I wasted my time making the port. In this case, these ports are mostly copy and paste, so not a big deal, but it could have been a larger waste of time.

This is the main thing I think needs solving, and it sounds like it can, with better search, a new field in the port file, and or automatic retrieval of some perl module index file that has some mappings in it. It may take all those suggestions, I am not sure.

The question of "How does a new user know that Net::SMTP is part of the base?" is a problem.

Beginning to dislike perl and I have not written more than 100 lines of it
in my life :)

One advantage is the massive amount of modules already written to reduce the amount of work you have to do; one disadvantage is all of the massive amount of modules one must wade through to determine what you might actually need. Of course using CPAN makes that easier but then that installs outside of
port, which means you can't depend on it for other ports or use
uninstall/activate/deactivate to manage it, etc.

Also, is it still true than CPAN can get clobbered by Apple Updates? This is one of the best selling points of MacPorts.

I guess what I'm trying to say is, if there's an easy answer, I haven't
heard it.


Rarely is it easy :) Curious, without going into a lot of detail, how does the hugely raves about apt-get and equivalent get past all this?
--
Scott

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

Reply via email to