I've seen some very interesting theories posted here about
why we ship with perl4 as /usr/bin/perl rather than the perl5
that /usr/ports/lang/perl5 installs into /usr/local/bin/perl
It's really simple: In order for something to go into the base
distribution, it first needs to be "bmaked" (e.g. converted to
Berkeley Make) syntax and nobody has had the time or inclination
to do this for perl5. When someone does, we'll switch. It's
And to answer the obvious follow-up questions:
Q. Why do you need to bmake it?
A. Because everything under /usr/src builds with Berkeley make and
consistency is pretty important. It also allows you to set things
like optimization flags *globally* with little fuss or muss by
simply editing /etc/make.conf. The fact that everything uses
berkeley make then assures that these flags will be passed along
to the various tools in a proper fashion. /usr/src is also
supposed to be usable READ ONLY (I.E. mounted from a CDROM) and the
GNU tools like to do things like create configuration files on the
fly in the working source dir, which violates this pretty badly.
Q. How do you bmake something?
A. That's a long involved question to answer and if you have to
ask, you probably shouldn't even be thinking about taking this
on. :) Look in /usr/src/contrib and the associated "skeleton"
Makefiles associated with pieces of it in /usr/src/gnu and other
places for a hint as to how this has been done for other packages.
Q. Can't you just import it as it is and forget about all this
Berkeley make stuff?
A. No. That's the way it has to be and I don't care to argue
the point, so if that's your intention just save your fingers.
It's all been debated before, ad nauseum, and this is just
the way we do things. If you want to help, submit us a bmake'd
perl5 that follows all the rules and we'll be quite interested
in examining the migration issues then (otherwise the point's kinda
- Jordan Hubbard
The FreeBSD Project / Walnut Creek CDROM