Slashdot Mirror


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..."

14 of 97 comments (clear)

  1. Re:The obvious question remains by hawkstone · · Score: 5, Informative

    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.

  2. It may seem odd, but this is A Good Thing (tm) by stienman · · Score: 3, Informative

    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

  3. perlmonks by tstock · · Score: 4, Informative

    This has been discussed on Permonks

    You can also read the discussion that led to this here

    tstock

  4. Re:interesting by Gid1 · · Score: 4, Informative

    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.

    That way you can have more than one version installed, and symlink /app/perl (ie. current) to /app/perl-x.y.z

    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.

  5. the really cool thing is coming by node3667 · · Score: 3, Informative

    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...

    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 ... one day...

  6. Re:Some choice by Nickus · · Score: 2, Informative

    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.

  7. Partly my fault ;-) by Anonymous Coward · · Score: 1, Informative

    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

  8. Re:/app? by Gid1 · · Score: 4, Informative

    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.

    Because I manage /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.

    /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 /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.

  9. Re:no they're by essdodson · · Score: 2, Informative

    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
  10. Re:#!/usr/bin/perl by Z4rd0Z · · Score: 3, Informative

    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".
  11. Re:The obvious question remains by benedict · · Score: 2, Informative

    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."
  12. Re:Some choice by mph · · Score: 3, Informative
    And what is the justification for this? So it'll fit better on ancient, obsolete harware.
    That's not the argument against it. I guess talking out of your ass is easier than actually reading about the issues involved. Of course, I'm sure that you innately know more about this topic than the FreeBSD and Perl experts who worked on this solution, together, at length.

    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.

  13. Re:The obvious question remains by jo42 · · Score: 3, Informative
    From: owner-freebsd-announce@FreeBSD.ORG
    [mailto:owner- freebsd-announce@FreeBSD.ORG] On Behalf Of Mark Murray
    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
    --
    o Mark Murray
    \_
    O.\_ Warning: this .sig is umop ap!sdn

    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

  14. Re:The obvious question remains by schweikh · · Score: 2, Informative
    Being a committer and having read the relevant mailing lists, let me add two more reasons, that I think have so far not been mentioned. Remember what we are talking about: perl has been removed from the base system in order to make the build perl-independent. Why is this a Good Thing?
    • For once it saves us on the order of 45MB repo space. The build itself didn't need more than a few in-place s/foo/bar/g which we now do with sed, awk, sh, the tools we need to build anyway. Building perl as a prerequisite for just a few variable substitutions was obviously overkill.
    • The most compelling reason IMHO is: you just can't cross-configure perl on arch A for arch B--it will always be built for the host it is configured on (unlike e.g. the compiler tool chain). With support for alpha and sparc this has become an endless source of frustration.

    Regards, Jens
    --
    SIGSIG -- signature too long (core dumped)