FreeBSD: Perl to be removed
zmcgrew writes "From Daemon News:
"The decision was made to remove Perl from the FreeBSD -current base system [earlier story ]. Perl will be supported as a port that the user can install after the base installation, however it will no longer be required. Mark Murray put out a call to the -current mailing list asking for volunteers to port all Perl scripts in the base system to another language, such as sh or C. All critical programs are already being ported, with only a few minor ones left to be claimed." Wow..."
"The decision was made to remove Perl from the FreeBSD -current base system [earlier story ]. Perl will be supported as a port that the user can install after the base installation, however it will no longer be required. Mark Murray put out a call to the -current mailing list asking for volunteers to port all Perl scripts in the base system to another language, such as sh or C. All critical programs are already being ported, with only a few minor ones left to be claimed." Wow..."
It appears that having Perl in the base distro has the following problems:
1. It increases the distro image size.
2. It forces everyone to use the same version of Perl.
3. If someone tries to install over that version or just even patch it, it can break stuff in BSD which needed the old version.
4. Installing multiple copies imposes weird symlink tricks or else breaks other stuff.
It's easier to keep perl up to date and apply patches for it (maintain) if there are no critical system pieces that depend on it. Perl was never considered 'standard' and shouldn't be installed on systems that don't need or use it. Of course many people who live/breathe/eat perl are going to be surprised, but this is good for them.
-Adam
This has been discussed on Permonks
You can also read the discussion that led to this here
tstock
This is great! First thing I do with my nice FreeBSD installs is remake world with NO_BIND, NO_SENDMAIL and NO_PERL. The other thing I'd like is separate packaging of all ports in their own directories in, say, /app.
/app/perl (ie. current) to /app/perl-x.y.z
That way you can have more than one version installed, and symlink
I'd like to see *all* parts of FreeBSD (incl. kernel, etc.) represented as pseudo-ports/packages in the package database to ease componentized installation (eg. no 'gcc' for client machines) and simple networked FS management.
I use things like Perl all the time, but I'd like the control of which Perl, which GCC, etc.
I couldn't stand the obsolete perl 5.005 which was on the base system... once you install 5.6.1, things can mess up pretty quickly if you don't take care to separate things... not to say that you have to convince sysadmins...
... one day...
The worse is that the perl5 base would install obsolete modules, like cgi.pm.... and now if you install the cgi perl port, you have to either remove the original cgi.pm (will break at the next make installword) or tweak PERL5LIB to insert the path to the new modules before the others.... thanks god all that pain in the . will be gone
Yes, you get choice. You can install whatever you want from the package collection. And when they don't have any Perl installed any more you can install precisely the version you need without breaking anything. Sure, most people would be happy with the latest and greatest and it also works for them.
I bitched and moaned about the size of base-install on the security mailing list; I got a lot of people with me, including, but not limited to, JKH.
The biggest reason is the fact that it breaks stuff, if you need another version of perl you have to know your system to get your box running without a hitch.
For me, the reason however was founded on security, I was tired of having to write csh-scripts to strip my system from potential security holes; including Sendmail and Perl.
It is a lot easier to secure a firewall that only has a kernel, cshell and not mcu else than the mastodont it was by default.
I run NetBSD on that box now, but anyway, good to see it as I use FreeBSD on my laptop.
Kind regards,
Da
Sorry.. didn't make it clear. I put *all* major applications/packages where I track multiple versions (eg. Apache, Perl, Sendmail/Postfix, MySQL, PHP, prc-tools, GD, etc., etc.) in /app, allowing me to build and test newer versions without overwriting the current "approved" version.
/app in a different way, I avoid /usr/local for packages that I track. Throwaway, uncustomised packages (eg. zip, word2x) which I'm unlikely to ever get round to upgrading just go in /usr/local as usual.
/opt on other Unices, but since there doesn't seem to be a consensus on the correct structure of /opt, I avoid that name to prevent confusion when new sysadmins come on board.
Because I manage
/app/pkg (package installs)
/app/src (source)
/app/etc (package configs)
/app/var (logs, etc)
I tend to also keep the configure parameters and also config files in CVS.
Sounds like a lot of work, but worth it. The number of production boxes I've used (that others have set up) where different versions of things are spread around everywhere has made me reasonably tidy and regimented when setting up a production box.
I guess it's like
The issue here isn't installing Perl. Which I'm sure given FreeBSD's history of the ports/pkg tree will be rather painless. The issue is the thousands of perl scripts which think perl is in /usr/bin/perl. It will be located in /usr/local/bin/perl... where it should be as its soon to be a local customization.
He's right, you're wrong. He posted logged in, you posted AC... coincidence? I think not. Someone remind me again why we allow AC posts, please?
scott
There will be a small redirector program called /usr/bin/perl that looks for perl and passes your script on to it, and if it doesn't find perl, gives you an error message.
You had me at "dicks fuck assholes".
There are two more, from the article:
5. Integrating perl into the BSD build system is
difficult and error-prone.
6. Related to the above, perl has cross-build problems.
Ben "You have your mind on computers, it seems."
Hint: Perl has always been hard to incorporate into the BSD build structure and breaks easily, especially in cases like cross-compilation. Because it's so fragile, it's a lot of work to maintain and tends to fall out of date. These are the kinds of things you need to worry about when you're actually maintaining an operating system, instead of throwing a kernel and 100's of externally maintained packages together and calling it done.
[mailto:owner
Sent: Wednesday, May 15, 2002 9:44 AM
To: announce@freebsd.org
Subject: Perl5 is leaving the base system for 5.0 and after!
Hello folks!
It has been decided after some debate to remove Perl5 from the "Base FreeBSD" sources. This decision was not taken lightly, and was taken in consultation with (but not seeking the approval of) the perl5 developer community.
There are 2 main reasons for this:
1) Perl5 is getting larger very fast, and FreeBSD cannot afford the time and space to build and maintain it.
2) Upgrading the "base perl" is a nightmare that regularly breaks upgrades and cross-builds, to the intense annoyance of the FreeBSD developer community.
Speaking as the "Perl5 guy", keeping FreeBSD's "base perl" up to date was hellish, and folks who wish a return to that state should please consider doing this work in my place. BEWARE! This job is not trivial!
PERL IS NOT BEING OSTRACISED! FreeBSD is not taking this action because of any dispute between the FreeBSD community and the Perl community - such a dispute DOES NOT EXIST! In fact, the Perl community have been exemplary in their attempts to understand the problem, and in their proposals to deal with it. FreeBSD DOES NOT HATE PERL!
Some time in the future, perl may be split in half, such that the core language and the standard libraries may be separately installed. In such a case, FreeBSD might be in a position to better deal with the problem of the very large perl libraries. Such splitting will be done by the perl community, NOT by us, although we will be taking note.
In the meanwhile, the Perl5 Port will continue to be available, and continued discussion indicates that there is very substantial support for it to be installed by default (or near-default) by sysinstall.
This will result in a FreeBSD that has effectively the same Perl5 that is kept up-to-date in ports, rather than the one that is left to rot in STABLE.
This update will _NOT_ be MFCed. The first FreeBSD that has no perl in the default sources will be 5.0-RELEASE, when that is released at the end of this year. FreeBSD-4.n will continue with the perl that it currently has.
The ports system will continue to support Perl5.
M .sig is umop ap!sdn
--
o Mark Murray
\_
O.\_ Warning: this
This is the moderated mailing list freebsd-announce.
The list contains announcements of new FreeBSD capabilities,
important events and project milestones.
See also the FreeBSD Web pages at http://www.freebsd.org
Regards, Jens
SIGSIG -- signature too long (core dumped)