FreeBSD: Perl to be removed 97
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..."
The obvious question remains (Score:1)
Re:The obvious question remains (Score:3, Interesting)
Re:The obvious question remains (Score:5, Informative)
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.
Re:The obvious question remains (Score:2, Informative)
5. Integrating perl into the BSD build system is
difficult and error-prone.
6. Related to the above, perl has cross-build problems.
Re:The obvious question remains (Score:4, Interesting)
I can't remember if I had to install perl for NetBSD, I thought I did, but it may be just the added packages. I know on one NetBSD box I have it has perl installed as a package. I think FreeBSD is doing the right thing. I mean it is not that hard to do 'make install' in the ports to install perl.
NetBSD 1.5 does not require Perl (Score:2)
Re:NetBSD 1.5 does not require Perl (Score:2)
(Nice, we got new binutils - from 2.9 to 2.11.2)
I find this good because it disables more bloat
in the base system. Removing sendmail and bind,
however, I wouldn't be a friend of, because they
are audited by the team (which cannot be solved
this way by a port) and heavily used (I don't
use bind - djbdns - but many people prefer an
audited bind 4 over bind 9...)
I remember some months ago, uucp was made a port.
The r-suite will also be available as a port.
Re:The obvious question remains (Score:1)
45 megabytes for the next generation "Perl Contract". Read the article.
Re:The obvious question remains (Score:3, Informative)
[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 [freebsd.org]
Re:The obvious question remains (Score:2, Informative)
Regards, Jens
Reasons why (Score:2, Interesting)
2. When Perl is integrated into the base system, users can either eat what they're given, or
jump through hoops to install a separate version and keep it separate. This change will
vastly improve and simplify supporting Perl on FreeBSD.
Re:Reasons why (Score:1)
interesting (Score:2)
Re:interesting (Score:2, Insightful)
Re:interesting (Score:4, Informative)
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.
/app? (Score:1)
That way you can have more than one version installed, and symlink /app/perl (ie. current) to /app/perl-x.y.z
What's wrong with /usr/local/perl -> /usr/local/perl-x.y.z ?
Re:/app? (Score:4, Informative)
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
Re:interesting (Score:1)
Re:interesting (Score:1)
And now, back to your regularly scheduled UNIX. (Score:4, Insightful)
Ever install HatRed? 240 packages later, you have a 'stripped down' *nix. Talk about losing sight of the original idea....
Re:And now, back to your regularly scheduled UNIX. (Score:3, Insightful)
Re:And now, back to your regularly scheduled UNIX. (Score:1)
It may seem odd, but this is A Good Thing (tm) (Score:3, Informative)
-Adam
More Control for FreeBSD (Score:2)
I suppose that some may complain because they are so used to the Windows style bloat ware where someone else makes the choices for you. Ex: Windows Media Player, I prefer Quicktime. Plus I prefer Python over Perl. But not to get into some religious war, it's nice to see that FreeBSD will leave the choice to us. After all, someone who is going to the trouble of installing FreeBSD will probably want to roll it exactly the way they want. Besides, someone can always put an ISO together will some version of Perl and other goodies.
Some choice (Score:1, Flamebait)
Or there's sh, which you can fix instantly, but you have to learn yet another toy syntax, a syntax that is highly restrictive when it comes to real programming work.
And what is the justification for this? So it'll fit better on ancient, obsolete harware. Great, my sysadmins will piss away thousands of dollars in labor (and possibly millions in downtime) dealing with shitty languages, because it will save the hundreds of dollars it would cost to replace that old 486 router.
Equally idiotic are the arguments that using Perl for the core makes it difficult to upgrade Perl. That's because they should be different Perls. For core system stuff, there should be /usr/bin/system-perl, an old, stable, stripped-down Perl that rarely changes. Applications should use /usr/bin/perl, which can be upgraded as needed to make the latest apps run.
Morons. Hardware cost is almost always irrelevant. Dependency conflicts almost always mean you need to fork. But no, we have to change the admins to suit the machine...
Re:Some choice (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.
Re:Some choice (Score:2, Insightful)
Let's all install two different versions of perl on our boxes. One for the system, and one for the user. I've dealt with this hell on HP-UX 10.20 (which ships with perl 4) and I don't like it much. I know that disk space isn't all that expensive nowadays but still, there's some of us out there who like having a semi-clean filesystem and directory structure.
I applaud FreeBSD for finally starting to do what NetBSD has done since the beginning: Install a base OS and let the user decide what else they want or need. Is it really that hard to install perl from source/pkgsrc/ports or whatever? I run several NetBSD machines, and it never was much of an issue building perl from source and installing it. This is even true for the old VAXServer 3100 that I used to run. Yeah, it took a long time (this thing took 6 hours to compile bash), but wasn't "hard."
-J
Re:Some choice (Score:3, Interesting)
In the real world, most sysadmin labor hours are spent on servers and workstations running powerful, modern hardware. And what they need are transparent, diagnosable systems. When things go wrong, or when they have a complex task to accomplish on a short schedule, they need to be able to reach inside the system and extend it. Hard coding system logic into C programs is extremely counterproductive, and sh is so limited and restrictive that you have to jump through all sorts of ridiculous hoops to accomplish the simplest tasks. What is needed is a good, full-featured scripting language that the average sysadmin can master quickly. If I was paying to have my dream OS written, it would be Python, but Perl is good enough.
Re:Some choice (Score:4, Insightful)
Don't be an ass. What they are doing is making sure that a default install of FreeBSD doesn't require a particular version of perl to be installed.
Great. You can go and add the one you want afterwards.
What is needed is a good, full-featured scripting language that the average sysadmin can master quickly. If I was paying to have my dream OS written, it would be Python, but Perl is good enough.
This is exactly what FreeBSD offers you. After you've installed it. Go add Python. You don't need to worry that the system relies on a particular version of Python, so you can install the one you want. In contrast to RedHat Linux which is wedded inseperably to Python 1.5.2, which has been out of data for about a millennia.
Re:Some choice (Score:2)
The FreeBSD solution is to move everything to depend on the /bin/sh executable: it's so vile and useless that nobody sane would **ever** use it for a significant application. Since no applications use it, there can be no conflict. This is self-evidently stupid.
The right solution is to pick a good language (call it "Foo"), put together a stripped-down interpreter for it, and put that interpreter it its own files. E.g., /usr/bin/system-foo. This has lots of benefits:
Re:Some choice (Score:2)
I did. I still disagree with you. Core scripts being written in sh does not impact system administration. It impacts people who need to maintain the core scripts only.
In the event that an administrator needs to modify any of these scripts, the important thing is that the widest possible array of system administrators are able to. That means using sh. If I found a script I needed to alter written in perl, I'd rather wrip it out and re-write it. There'd be plenty of other people who'd say the same for Python, Ruby, or whatever high level language you pick. sh is universal.
The FreeBSD solution is to move everything to depend on the
No-one is asking you to write applications in it. All system administrators live and breath sh. It has existed, largely unchanged, on every UNIX platform since the dawn of time (epoch). If you can't hack it then I suggest you get out of the sysadmin game (and if you're not a system administrator, what the hell is this argument based on?)
If you wish to layer your own administration framework on top of the core system, then you are free to choose whatever language you like.
I recommend using Arusha [sf.net] which uses classless object-oriented XML source and supports methods written in Python, perl, or sh. [But I would recommend it as one of the developers.
Re:Some choice (Score:2)
Re:Some choice (Score:1)
Scripting doesn't get much simpler than
Re:Some choice (Score:1, Insightful)
Have you read anything?? Jeez! It just doesn't ship with Perl any more. Nobody said anything about not being able to HAVE it in FreeBSD. You want Python? You want Perl? Install it afterwards! Hey: you can even have the luxury of installing it from source! Quite the novelty, eh?
Re:Some choice (Score:1)
Re:Some choice (Score:4, Insightful)
I'm a Tivoli administrator and run into all sorts of issues because of Tivoli's continued support of perl v4. Perl 4 doesn't support useful features like modules, and the syntax is signifigantly different in a number of areas. But because so many customers invested a fortune in man-hours and consulting time to develop Tivoli scripts and perl-based policies, everyone is going to be stuck with a very old version of perl for the indefinate future.
Perl 5 is going to be a dinosaur just like perl 4 is today. When Perl 7 is out and there's a problem with a server that is a pain in the ass to fix becuase nobody remembers Perl 5 syntax, you'll be in the same boat.
ksh and sh are standardized on all platforms and do a good job. Use them whenever you can.
Re:Some choice (Score:3, Informative)
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.
Re:Some choice (Score:1)
perlmonks (Score:4, Informative)
You can also read the discussion that led to this here [develooper.com]
tstock
Perl from ports is worth it even for -STABLE (Score:5, Insightful)
BSDPAN allows you to install CPAN modules and manage them like any other package (pkg_info, pkg_delete, etc), and for weenies like me who set LOCALBASE to
/usr/ports/lang/perl5 is not just there for completeness. Even if you have Perl installed from base, chances are anyone even remotely interested in Perl will want to replace it with the port anyway.
Now, if only we can convince core to remove sendmail...
Re:Perl from ports is worth it even for -STABLE (Score:4, Funny)
Oh, dream on. You'll be wanting to get rid of BIND next.
Dave
Re:Perl from ports is worth it even for -STABLE (Score:1)
a) have a choice between a few
b) install qmail/djbdns by default. =)
Re:Perl from ports is worth it even for -STABLE (Score:2)
Dave
Re:Perl from ports is worth it even for -STABLE (Score:2)
Re:Perl from ports is worth it even for -STABLE (Score:1)
OpenBSD (Score:1, Interesting)
the really cool thing is coming (Score:3, Informative)
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
Re:the really cool thing is coming (Score:2)
perl is dead. Long live perl.
tally ho (Score:1)
Good (Score:2)
#!/usr/bin/perl (Score:3, Insightful)
Re:#!/usr/bin/perl (Score:1)
Re:no they're (Score:2, Informative)
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?
Re:for that matter (Score:1)
Re:#!/usr/bin/perl (Score:3, Informative)
Re:#!/usr/bin/perl (Score:1)
Cool. Sounds like the best solution. Not that it would be too difficult when I see 'zsh: no such file or directory: /usr/bin/perl', but this is more elegant (holding together old systems using symlinks like duct tape leads to sheer madness).
Re:#!/usr/bin/perl (Score:1)
Re:#!/usr/bin/perl (Score:1, Funny)
Partly my fault ;-) (Score:1, Informative)
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
Re:Partly my fault ;-) (Score:1)
How do you figure Perl to be a security risk?
Re:Partly my fault ;-) (Score:1)
1. If anything can go wrong, it will.
2. If there is a possibility of several things going wrong, the one that will cause the most damage will be the first one to go wrong.
3. If anything just cannot go wrong, it will anyway.
4. If you perceive that there are four possible ways in which something can go wrong, and circumvent these, then a fifth way, unprepared for, will promptly develop.
5. Left to themselves, things tend to go from bad to worse.
6. If everything seems to be going well, you have obviously overlooked something.
7. Nature always sides with the hidden flaw.
8. Mother nature is a bitch.
Over the last decade on working with security I've seen the most bizarre things, from a hunting phantom black hat that turned out to be flawed ECC memory to hunting a black hat that turned out to be _myself_ being drunk the week before.
Trust me, don't trust anything.
Someone mod the above up (Score:2)
Ok, Now I agree with it. (Score:1)
It has now gotten so bloated I can't belive it! I still use and love Perl, but do we really need all of the modules included? I thought that was what CPAN was for.
BWP
(Yes, I am the one that added Perl to FreeBSD. I also can be thanked for other things such as the "GPLed" math emulator (it is not!), sun libm, the broken mitsumi CD-ROM driver of 1.0 and the original FAQ. For those that doubt me, contact me via email...:))
I think it is a good thing (Score:1)