Port dependencies on p5-Test-*

Dag-Erling Smørgrav des at des.no
Wed Feb 27 10:22:22 UTC 2008


Anton Berezin <tobez at tobez.org> writes:
> Dag-Erling Smørgrav <des at des.no> writes:
> > The rest of the ports tree checks every dependency right before building
> > it; I don't see why Perl ports should be any different.
> Er, I am not sure we understood each other here.  What I was trying to say
> was this.  Let's suppose we do not have perl installed.  Let's suppose the
> user wants to build port A which depends on perl and on a module B which is
> both in perl's core and in a port B.  Then the list of direct dependencies
> for port A will either include port B or not, depending on the version
> consideration.  If we accomodate your suggestion, we cannot decide whether
> port B will be a dependency or not until we built and installed perl.  I did
> not look in bsd.port.mk specifically to compose this mail, but my
> recollection is that it is not how this currently works.

Every dependency is checked *right before it is built*.  You stick it in
the list, but you have perl at the front of the list.  It builds perl
first, then it gets to the module, checks 'perl -M$MODULE', finds out
that it's already there, and skips it.

> Not really.  What I don't like is that we still have to deal with ports (for
> building stuff) and packages (for recording dependencies), and dealing in
> addition to that with modules does not help us much with the first two.  For
> example, when you do "perl -MX -e 'print $X::VERSION'", you get back a
> version which is OK.  Now what?  Now you *still* need to test whether p5-X
> is in fact installed, because if it is and you do not record it as a
> dependency you are in trouble, since the user can without any complaints
> pkg_delete p5-X and break your port.  And if it is not installed then you
> are going to assume that it must be in the core perl since it is there, and
> you could be wrong on that, too (if the user just installed it from CPAN).

But the ports system knows which package corresponds to which module,
since we put that in the dependency list:

PERL_DEPENDS= Test::Unit:devel/p5-Test-Unit

Or do you mean modules which are absorbed into core?

> Alright, I sort of drop this objection, except that then we do the loading
> part twice (the time consideration part of my previous mail).

Still a lot less work then building a bunch ports we don't need, which
is the current situation.

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the freebsd-perl mailing list