On Wed, Feb 27, 2008 at 11:22:06AM +0100, Dag-Erling Smorgrav wrote: > Anton Berezin <[EMAIL PROTECTED]> writes: > > Dag-Erling Smorgrav <[EMAIL PROTECTED]> 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.
But then it needs to not record it as a dependency. Not just skip the build. > > 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? Yes. For "normal" modules the existing package version check is perfectly adequate as it is, the suggested knobs simply serve as a syntax sugar (except PERL_TEST_DEPENDS, which is a bit more advanced). > Still a lot less work then building a bunch ports we don't need, which > is the current situation. We are arguing about a relatively minor thing here, namely about whether to keep the knowledge about dual-life modules in bsd.perl.mk or try to deduce it in runtime (and by proxy, whether to use the existing *package* version check or to do perl *module* version check), not about the usefulness of the suggested knobs, remember? \Anton. -- We're going for 'working' here. 'clean' is for people with skills... -- Flemming Jacobsen _______________________________________________ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "[EMAIL PROTECTED]"