FreeBSD Removes GCC From Default Base System
An anonymous reader writes "With the LLVM/Clang migration, FreeBSD developers have now disabled building GCC and the GNU C++ standard library (libstdc++) as part of the FreeBSD base system. GCC and libstdc++ have been superseded by LLVM's Clang and libc++, respectively, on primary architectures for FreeBSD 10.0."
You can still flip a few switches to get GCC, but the system compiler will still be clang. Update: 09/11 14:50 GMT by U L : Reader Noryungi noted that the What's Cooking for FreeBSD 10 page is also worth a look, adding "I have to say, this is shaping up to be a very interesting release. Bhyve [the BSD hypervisor], in particular, sounds very promising."
"the system compiler will still be clang"
Or the Onionequse version: FreeBSD's move to revolutionary new swording system adds a whole new meaning to compiling
WHY?
Can LLVM's Clang build the Linux kernel and QT/KDE?
I would love to have a Linux system,(not android), completely free of GNU.
Try this one: https://wiki.freebsd.org/WhatsNew/FreeBSD10
I have to say, this is shaping up to be a very interesting release. Bhyve, in particular, sounds very promising...
The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
A world where we can call it Linux and the nerd who immediately corrects you with GNU/Linux will have to shut up for once?
You don't need to be the Amazing Kreskin to predict GCC's future. The hand writing is on the wall: GCC faces a bleak future. In fact there won't be any future at all for GCC because GCC is dying. Things are looking very bad for GCC. As many of us are already aware, GCC continues to lose market share. Red ink flows like a river of blood.
GCC is most endangered of all in FreeBSD, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: GCC is dying.
Let's keep to the facts and look at the numbers.
OpenBSD leader Theo states that there are 7000 users of GCC. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the GCC market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.
Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.
All major surveys show that GCC has steadily declined in market share. GCC is very sick and its long term survival prospects are very dim. If GCC is to survive at all it will be among OS dilettante dabblers. GCC continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, GCC is dead.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
By inspecting the source code.
For many reasons.
Clang is faster...
No its slower. Phoronix benchmark GCC vs Clang all the time. http://www.phoronix.com/scan.php?page=article&item=llvm_clang33_3way&num=1
I'm glad for this move for technical reasons rather than philosophical. Clang produces better warnings and error messages. It is also more fault tolerant and faster. I have almost completely moved to using Clang instead of GCC for my open source projects. It's just a nicer compiler to work with.
Not sure how much of the problem is code and how much is the compiler, but I've found at least one application that will crash when compiled with GCC, but will run smoothly when compiled with Clang. My guess would be there is a code issue involved, or an optimization issue, but I still find it interesting that two compilers passed the same flags produce such different code that one binary works flawlessly and the other regularly crashes.
I don't think I've seen Ken Thompson's Reflections on Trusting Trust come up more in the past decade than it has in the past week. Right now seems like a particularly inauspicious time to switch to a one-compiler-to-rule-them-all strategy.
I'm particularly interested in trying to build the gcc phase-1 bootstrap compiler with llvm to see how that works out (TODO list...).
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Redundant, keep reading the whole "What's New" page and the conspiracy klaxon attached to your tin-foil hat will go into hyper-overdrive...
"
Support for the RDRAND random number generator
Status: ...although it would seem more likely that Konstantin Belousov would be working for the FSB rather than the NSA really. ;^)
Committed to -CURRENT, MFC-ed to 9-stable
Author:
Konstantin Belousov
Web:
http://svn.freebsd.org/changeset/base/240135
RDRAND is the new Intel's CPU instruction for accessing its hardware random number generator, also known as the code-name Bull Mountain. It is present in Ivy Bridge and newer CPUs.
"
Regards, Phil
FreeBSD is looking set to kick some serious Linux ass!
Yeah, let me know how that goes!
That is insufficient, as Ken Thompson demonstrated decades ago.
I am officially gone from
How do we know that LLVM/Clang hasn't already been backdoored by the NSA?
How do we know your mom wasn't backdoored? There could be NSA DNA in you right now!
The two dictionaries I checked, including Merriam-Webster, don't list "performant" as a word.
Trying so hard to use "big words" that you resort to using non-words that sound big = douche. Of course "douche" is actually a word.
Support for the RDRAND random number generator
Now you can go "WHY????"
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
FreeBSD: Core Routers, Netflix, Verisign, ZFS
Linux: Steam, WordPress, I think my data is correct
/Troll
it's origin is Microsoft wank speak.
It is a French word, maybe that Microsoft weenie also said things were tres this or that. eurotrash wannabe.
"Especially GPLv3 which they don't want to include in their base OS."
Why?
"GPLv2 was never a problem."
Why is the GPL3 a problem, then?
Not if all you want to do is verifying the source code. If your compiler is compromised then that's your problem.
It seems from the changelog that there wasn't much drama merging RDRAND random number generator patches, unlike on Linux. But here's the compiler the problem. Oh well
Thank you. Note that I'm very firmly on the GPL side... and I couldn't agree more.
There's room for both free licenses. Let's just get along, shall we?
Freedom to deny others freedom. That's the only reason for avoiding copyleft.
Did you try a computer jargon dictionary? Formal dictionaries do not add jargon until it is no longer jargon.
'Performant' is not jargon because it is not used to communicate a specific technical meaning within a particular field of knowledge. It is slang: an unrecognised synonym for 'better', used by people who want to make a vaguely positive but non-specific claim. In this case, suggesting that GCC 'produces more performant code' could imply that it produces an output that executes faster, or is smaller, or is a more exact interpretation of the source with respect to the official language standards or a host of other possible claims. In other words, it's equivalent to saying 'produces better code'.
Trying so hard to use "big words" that you resort to using non-words that sound big = douche.
So what you mean to say is, "durr, people who are smarter than me are douches."
Using made-up words is not a sign of intelligence. Smart people know how, when and whether to use the more obscure parts of the English language.
Or maybe his mother tongue is french and this was only a bad translation for "plus performant" which is quite common over here.
dictionaries I checked, including Merriam-Webster,
It's funny how the Zionists presume that the Merriam Webster is in some way authoritative, for our language.
As opposed to the pidgin derivative, with which they are familiar.
The two dictionaries I checked, including Merriam-Webster, don't list "performant" as a word.
What was the other dictionary?
Translation: I'm too lazy to skip comments I don't like and would rather whine about it instead.
Note to self: Using words that aren't words is an excellent way to troll.
I (unknowingly) used something that isn't actually an english word. You took the time to look it up in two separate dictionaries basically just so you could be pedantic. If you're that kind of person, I'm glad I could waste your time. :)
Kind of like the way they use the word "innovation" in every other sentence. After a while people (i.e. PHBs) start to believe it.
(snicker)
I feel the same way about ACs.
That "reason" is no better than "FreeBSD is not using Clang because of licensing" because it isn't using an earlier version of the BSD license that asked for included attribution.
They're entitled not to like it, but that doesn't mean they have a REASON not to use it.
BSD are just pissed off that they don't get the adulation they feel they deserve for sucking the cock of private industry.
And neocons applaud them for the service.
Or at least, SOMETHING AWFUL
---Up Up Down Down Left Right Left Right B A START
However, if you compile the LLVM/Clang in another compiler (say GCC) then you should be good, injecting "compile into" backdoors into all compilers, to target all compilers, would definitely be noticeable.
DEMETRIUS: Villain, what hast thou done?
AARON: Villain, I have done thy mother.
Shakespeare invents 'your mom'
Feeling anti-joke, are we?
You can also go to the modernized pcc. Only 18000 lines to check in 30 files.
Is it not?
In the long run this is really going to suck for the Sony engineers, maintaining a fork with a different system compiler.
Microsoft will give you a "single pane of glass" for "future stars" to view all the "innovations" and "mentorship" in a "major paradigm shift" to "foster success"
BSD think of the freedom of the distributor, the GPL thinks of the freedom of the user. I see myself as a user, you see yourself as a proprietary distributor.
FFS, I have had it with the "USER" bullshit. Real end users "use" the system and care more about usability than access to the source code. Most of them would not know how to write any code let alone audit it. Stop confusing yourself, an interested third party, with end users. You might also be a user but not all users are interested third parties with coding skills.
The end user's "freedom" is actually limited when nerds argue over licensing terms and are unable to include some software because of it. I am a developer and a user and I find BSD for be free enough. It offers me the choice of proprietary implementation of a BSD project's code, open source BSD implementations and the ability to create my own proprietary implementation for me and my friends without having to hire a lawyer. I can also choose to contribute some or all of my modifications back to the community if I so choose. That is true freedom. The GPL is actually a form of slavery that you agree to enter into in order be able to modify the code. I would rather "pay" money and keep my freedom thank you very much. The price that the GPL imposes is too high a price.
Jesus was a compassionate social conservative who called individuals to sin no more.
I voted for Clodos
“He’s not deformed, he’s just drunk!”
FreeBSD/amd64
FreeBSD/ARM
FreeBSD/i386
FreeBSD/ia64
FreeBSD/MIPS
FreeBSD/pc98
FreeBSD/ppc
FreeBSD/sparc64
FreeBSD/xbox
I guess they dropped 68k...
Since the FreeBSD Kernel is BSD licensed, it only makes sense to have the entire base toolchain BSD licensed as well. This is a big step in that direction. There is also a broader project to create BSD licensed versions of all of the core Unix utilities as well. Hopefully we will see this happen soon.
FreeBSD is a fully open source operating system, with source code everyone can read and freely share. it is a "Free Software" system. If you mean that it doesnt have a license that tells you that you cannot link FreeBSD code to code under other licenses, then yes you are correct about that, and FreeBSD has always been this way, being a BSD licensed OS, which is why many people choose to use it. FreeBSD already has a BSD licensed kernel and always has.
It's clearly stating some basic facts:
1) XKCD isn't funny.
2) References to XKCD aren't needed here at /., nor anywhere else.
Someone who doesn't know the difference between a "fact" and a "subjective opinion" has no business bitching about anyone else's English comprehension or probability of a learning disability...
There may be some undiagnosed medical condition preventing you from thinking in a clear, rational manner.
Luckily, in you're case, it was identified years ago. I believe the current nomenclature is "recto-cranial inversion." Please, seek the help you need.
And yes, I typoed your/you're. I am now aware of this.
The frigging user is why the fucking software is written: no users, no fucking software you fucking idiot!
1) XKCD isn't funny for me and because I am the president of the universe, nobody has the right to enjoy it.
FTFY and stay mad.
now if we could only move Fotran too.
They say in their attempt to justify not wanting any GPL licensed stuff near their stuff that they believe that free code should have NO STRINGS ATTACHED.
IF this were actually the case (note: it is NOT), then they would be 100% fine with slapping a GPL license on the BSD code.
After all, the ORIGINAL code is still available under BSD, right? That's the line about BSD code being taken propriatory, isn't it? That the original is still there for you to have?
Not, apparently, when you take it GPL.
Why?
Because they have a rabid hate for GPL because they are first, foremosed and only developers and they think users should just fucking sit back and take what they have or be a developer themselves if they want any rights.
BSD-licensed software is actually more free, if you think about it. The longer the licence, the less freedom it probably has, and is why the BSD community prefer short MIT-style licences. Your ideas about free software have been 'poisoned' by that RMS person.
Are you stupid?
There's nothing in the post about removing the GPL from the Linux code. Its about removing toe cheese eating RMS and his attempt to rebrand Linux as GNU/Linux from the Linux.
yup you're a troll all right.
Linux: TVs, NFS, core routers, Apache, ext3fs, Google.
I think you're full of shit.
You're joking right?
The FSF has been making decisions on philosophical merits instead of technical merits for years; that's why we have Gnome. Its also why their own kernel efforts, such as HURD, keep failing.
And saying: "I'm using HURD right now!" does't cut it, I've hurd them duck fart underwater for the past 15 years.
If you took one line of microsoft code and put it in your BSD project, you'd be in jail!
And, here's a weird idea: if you want the code, you can ask for permission.
You know, ASK.
Alternatively you can license YOUR code as GPL. That's free according to the FSF too, which you appeal to as authority on freeness.
And guess what: that code you made GPL that was yours: YOU CAN STILL RELEASE IT BSD! Just not with that one line of GPL code.
If you don't like this, then get copyrights ruled null and void.
No, the GPL is not about making you open source your code any more than the BSD is about making you give your code away for nothing.
Your raving sounds like insanity to me.
Haven't you read them?
They state in black and white that *truly free* software should have no strings attached.
Absolute verbatim quote.
If "You cannot slap a GPL license on this code" is not allowed, THEN THAT IS A STRING ATTACHED.
Was that too complex for you?
Cranial Rectomitus is the term for this affliction that I learned. Has it been updated?
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
Boycott? I'll compromise with you on that. I'm going to keep using it, but I'll refuse to pay for it.
In practice, if you want to install a port on FreeBSD that needs to be compiled with gcc instead of clang, the installation will just pull gcc in as a build dependency. Other than the fact that the compilation will take a little while longer, you probably won't even notice it.
It's not free software. Only GPLv3-licensed apps are truly free. You're talking out of your ass.
So, fail there.
Which hardware that FreeBSD supports that GCC doesn't (and please include what FreeBSD supported before they decided to move to CLANG because CLANG didn't support it, because if that's an acceptable change, then its just as acceptable to drop whatever hardware you think GCC is no longer supporting)?
Fuck off, you stupid troll, and DIE.
TdR went APESHIT when someone put code that they wrote that had been dual licensed in an updated version but decided to make it ONLY GPL.
TdR went APESHIT when someone took some code that was dual licensed and removed one of the licenses.
THEY ARE NOT FINE with you slapping a GPL license on their BSD code. They're fine with it being closed completely. That is because they're hypocrites.
THEY ARE NOT FINE with you slapping a GPL license on their BSD code. They're fine with it being closed completely. That is because they're hypocrites.
I think you mean Theo de Raadt is not fine with the GPL being added to BSD code. He's not the only one for sure but I don't think THEY (*all* BSD developers) are against it.
I don't really care about the philosophical implications. What I want to know is if I'll still need to download Xcode from the App Store to get a copy of GCC.
The Gospel according to lolcat
It's also why gcc and glibc are unmaintainable piles of shit.
Go ask people who were around back in the early days. In order to avoid people building closed source frontends and such on top of gcc they mucked around with the interfaces such that few people could understand how they worked, nevermind keep up with the internal changes.
Not that I can blame them given the era, but that cruft was supposedly a lot of the mess either leading up to the egcs releases or leading up to the gcc 3 series (which was also mucked up by redhat creating 'gcc-2.96' because they had to have 'standards compliant c++' before everybody else, and in the process lose backwards AND forwards binary compatibility across almost the entire toolchain/system.)
I thought llvm only ran on i686 hardware, in which case you couldn't have an i386 self hosting toolchain for FreeBSD anyways (Interesting to consider given that NEITHER clang nor gcc would be capable of compiling anything on an i386 to begin with simply because any non-trivial program will take up more RAM than any 386 and possibly most 486s were capable of addressing.
Microsoft will give you a "single pane of glass" for "future stars" to view all the "innovations" and "mentorship" in a "major paradigm shift" to "foster success"
But only if you proactively leverage your synergies.
Trolls and anti-trolls have a symbiotic relationship. Two faces of the same coin.
The change is a year old; it sort of made sense at that time.
RDRAND is not used directly, it's 'whitened' by Yarrow or a similar algorithm (there are now a few pluggable options, although I'm not sure they made it into 10.0). It's one entropy source, and things like interrupt timings and so on are others. If RDRAND is produces non-deterministic data in a way that are easy for the NSA to predict then there are some possible network attacks involving TCP sequence numbers early on in the boot. After that, there are other entropy sources (e.g. interrupt timings) that make it much harder to predict the inputs to Yarrow (and, unless Yarrow is also broken, you need all of the inputs to be able to predict the output).
I am TheRaven on Soylent News
Seriously, the core devs hate free software
Speaking as a member of the FreeBSD Core Team, who contributes code to a GNU project (GNUstep) and has signed an FSF copyright assignment for the purpose, and who was the one to make the disable-gcc-by-default commit, I have to say: What?
I am TheRaven on Soylent News
The 'phoronix' benchmark and phoronix website (add dotcom to see for yourself) of which you speak were also new to me until last year or so. I have no financial interest in them, just a technical interest -- I like fast libre laptops, and phoronix gives me the hard data on how to build them. They benchmark straight from git, in many cases. Basically, the idea of the site (and the motivation for creation of the benchmarking suite) is something like what Tom's Hardware and Anandsoft do, i.e. performance review of PC hardware especially frames-per-second numbers, but with the focus entirely on the software stack on Linux -- plus some *BSD articles for spice -- with particular emphasis on the graphics stack, in other words, the 3D gaming speed of Linux. The benchmark suite from phoronix is actually a meta-benchmark: it contains 700 kajillion benchmarking tools, from the most inane microbenchmark up through an entire copy of a 3D game, in a nice packaging system with a TUI. You can bench gcc versus llvm in 50 different ways with phoronix, in other words. Like rotten tomatoes film reviews (where they collect a hundred individual reviews of LOTR and then give it an overall score based on how many reviews were glowing versus how many reviews talked trash) the phoronix meta-benchmark of system performance is basically impossible to game.
As to the particular testing of LLVM, by phoronix, a little background may help. One aspect of 3D gaming is OpenGL, and with both wayland and mir depending on OpenGL ES under the covers -- not to mention android -- phoronix is busy testing the various aspects of OpenGL ES performance. One of those aspects is shader performance, i.e. the little sub-programs that OpenGL apps like games and CAD systems generate which run fully inside the GPU hardware, and some versions of the X.org graphics stack have started to use LLVM to jit this shader-code on the fly. There are also some generic-system-performance tests that phoronix would probably use, to exercise the system-compiler. The site spends a lot of time doing graphics-stack testing, like comparing libre GPU drivers versus binary-blob GPU drivers on ten different graphics cards and such, but it also provides distro comparisons that rate overall performance of the new distro compared to the competitive siblings (and to previous distro-generations).
So, the answer to your question is, prolly clang devs do not care about phoronix. They should, but mostly what motivates them is their paycheck from apple, which as comments above have explained, is the driving reason for BSD junking gcc prematurely -- apple cannot use GPL3 inside their walled iOS garden, or prolly their walled OSX garden for that matter, and thus gcc had to go. (Yes -- I realize that most FreeBSD contributors are not working for apple. But that is not the case for clang -- most of the devs there are apple-funded.) There are many use-cases where gcc is still faster. One way to overcome that is to 'force' the fully-baked but not yet fully-icing-ed (is that even valid grammer?) clang onto the BSD endusers. There are enough people that will use FreeBSD v10, that apple will get a nice beta-test of how well clang works as the sole system compiler, so they can pay the clang devs to work on the deficiencies prior to the next OSX upgrade. Apple changed over to using llvm and clang as the default a couple of years ago in osx 10.7, see here -- http://stackoverflow.com/questions/6796982/clang-and-the-default-compiler-in-os-x-lion -- but the FreeBSD userbase tends to be *way* more technically inclined than the average person in the OSX userbase. In a nutshell, apple got tired of testing for llvm and clang performance regressions and the like all by themselves, so they are getting the typically-more-bleeding-edge FreeBSD userbase to do this for them, starting with FreeBSD v10.
(end of part one, who's heard of phoronix, beginning of part two, GPL3 versus all comers)
Now, I'm pretty grumpy about the whole situation (if there is anything that shows why GPL3 is
You are 100% correct that anybody can take freebsd and make a proprietary product (e.g. OSX, and in a previous generation, Solaris/Ultrix/etc), and that anybody could take clang/llvm and make a proprietary fork (though in practice methinks ibm/apple/etc will focus on making proprietary plugins for it instead). hedwards is just wrong in saying you cannot *effectively* relicense -- he is being pedantic and saying 'technically' you do not really relicense the original you just release something nigh-identical which it just so happens is under new license and/or binary only. This distinction, copyleft-cannot-relicense, and permissive-can-effectively-relicense, is *the* fundamental difference between the GPL (or any copyleft license) and BSD (or any permissive license e.g. MIT license or for that matter public domain). If the existing codebase is under a permissive license, you can fork it into a proprietary product, or even into a copyleft project, including GPL3 -- one particular example of the latter is the drive-cloning software G4U, which some whippersnapper forked into G4L, converting from a BSD license to a GPL license in the process, and making the G4U author unhappy -- but there was nothing he could do.
However, the bare fact that llvm/clang is under a permissive license does *not* mean your suggested strategy, that the FSF can merely bide their time, and eventually take the llvm/clang codebase and produce a GPL3-encumbered fork, actually makes any sense. The reasons are subtle, but I'll try to keep them short and sweet. First of all, it is likely that apple and ibm will treat the freebsd version of llvm/clang as a reference-implementation of the compiler, and in practice will ship 'tweaked' binary-only versions with OSX and whatever operating systems IBM uses nowadays. That means that your hypothesized llvm-derived GCCv9 (to give it a name for this discussion) under GPL3 would actually be slower on OSX than the AppleBinaryLLVM shipped with the same system, because only Apple's would have the key tweaks. hedward would respond like this: "At least with the permissive licensing it's **likely** that they'll post a notice that they're using the code and [**likely**] give back to the community." emphasis added by moi. In practice the posting notice happens -- BSD license requires it ... but whether the second part happens or not depends ... and mostly what it depends on is how big the company in question is, and whether they can afford to maintain a private fork. In practice this happens regularly: OpenJDK is open source, and even GPL, and both oracle and google contribute patches back to the code... but OracleJ2SE for windows has proprietary tweaks not found in the Linux OpenJDK, and because oracle owns the copyright, they can "relicense" the JDK (to themselves) and release binaries for windows. Google does not distribute their private fork externally, since they don't have the copyright (Oracle does); but they use their private OpenJDK fork for their thousands of company-internal servers. Whether either group contributes back is mostly a question of convenience, and the bottom line.
Second, clang/llvm is explicitly designed to permit proprietary plugins slash extensions, so even if we assume there will not be any private tweaks in private branches, certainly the FSF won't be able to fork the proprietary *extensions* of the clang/llvm codebase. Most of the valuable bits will reside in proprietary extensions, one might predict. For an example of this phenomenon, see the magento shopping-cart-app under the OSL: code for the core is freely available, but without proprietary extensions, many store-owners cannot get their system to function well enough for their needs. Contributions back to the core are minimal; everybody concentrates on building proprietary plugins, not on solving issues in the core (key example, relevant to the clang/llvm versus gcc question -- stock magento is horridly slow, because proprietary performance-plugins are the bread and butter
There's only *some* spirit of the FSF in Linus himself, who prefers GPL2 over GPL3, but that is not the same thing. There's only *some* spirit of the FSF in RedHat Linux distros (Fedora / RHEL / CentOS / SciLin / OraLin), because portions of their code are BSD/MIT/X/similar license, including their new Wayland project... but large portions are GPL2 or GPL3. Ditto for Canonical's Ubuntu Linux distros (LTS/nonLTS/kubuntu/xubuntu/lubuntu/crunchbang/puppyLTS/etc), which has GPL3 for Mir, albeit with the CLA: they have *some* spirit of the FSF. Every Linux distro has some code written by FSF employees; the question is how much. Every Linux distro has some code under FSF-designed licenses; the question is how much. Every Linux distro has code written by RMS personally; the question is how much. Maybe it will help if you break down the meaning of the "spirit of the FSF". That can mean:
1. use of GPL2/GPL3/LGPL2/LGPL3/GFDL licensing, or even of other FSF-approved but not FSF-originated licenses
2. use of GPL3/LGPL3 licensing specifically, the licenses the FSF is most approving of and second-most-approving-of
3. use of projects hosted at gnu.org -- emacs, gcc, binutils, and a slew of others
4. use of code and/or philosophical positions of RMS personally, as founder of FSF and GNU
5. some combination of the above
Unless you specify which of the numbers you are talking about (and what exactly you mean by 'Linux' ... just the kernel? just Linus Torvalds?), it makes zero sense to say there is no spirit of the FSF in Linux, or that they are were never associated in any way. Those statements are so badly phrased they aren't even wrong, as wolfgang might say.
You gave a very solid explanation of both sides of the old debate: picking GPL for your code means that code is henceforth libre forever (available to you and many future folks -- as long as they are *also* the sort of folks that want *their* contribution to your code to similarly become libre forever). Alternatively, picking BSD for your code means that code is libre immediately, to you and to everybody else, even if they disagree with you about libre licensing (the consequence being that *some* versions of the codebase, variants that are not the one you originally released as BSD, *might* no longer be libre at some point, or might get converted into GPL at some point, or whatever).
I would argue which system is "truly free" aka "really free" depends on what you mean. If you mean, this code and any derivatives thereof, will be libre *forever* to myself and to others that respect forever-libre, then the GPL is really & truly free-as-in-freedom. Alternatively, if you mean this *immediate* version of my code will be libre forever, but derivatives thereof might be libre-immediate-bsd, libre-forever-gpl, or libre-no-longer-proprietary, then BSD is really & truly free-to-everybody-regardless-of-politics.
It *is* good both choices exist. Rather than saying 'really' free and 'truly' free, though, which are biased terms that do not convey what you specifically mean by the adjective, I would suggest distinguishing between the BSD as being this-version-of-the-code-libre-forever but derivatives of the codebase can undergo relicensing (by anybody including proprietary folks), and GPL as being this-version-libre-forever, and all derivatives also guaranteed to be libre-forever (which not every future contributor will be willing to accept). That sort of phrasing is reasonably neutral, and highlights the advantages of both licensing options. As you say, which option you pick, as an author of some new project, depends on what you want. Linus w/ GPL2, RMS w/ GPL3, Bill Joy w/ BSD, and Tim Berners-Lee w/ public-domain are good examples here of reasonably famous picks.
BSD has the advantage that future derivatives of the code can become closed source (or be converted to GPL for that matter). GPL has the advantage that future derivatives will always be GPL. Subject to people obeying copyright and contract law, of course.... "Just don't ever think that because your code is GPL'd, no one will dare to use it in close source." This is a good point. The GPL, especially GPL3, definitely depends on enforcement via lawsuits, grounded in the legal term 'propagate'. If you suspect that some competitor is using your GPL3 code, hidden behind a jailed bootloader, or locked up in the cloud, the only way you can stop them is with the threat of legal action. That's a big stick, of course, and with subpoena power you could in fact find out whether they were swiping your GPL3 code or not. But the whole approach relies on lawyers; distasteful. BSD also relies on lawyers, but only for the older four-clause licenses that *required* notice, and most BSD people would not see omission of notice as such a big deal, whereas most GPL people would see omission of GPL'd source code for any propagated derivatives as a huge deal indeed.
(p.s. as for apple 'stealing' stuff, that is also a loaded term. Pretty clearly andreicristianpetcu was upset about exactly that, given his reference to "pretty iShit" at the end... but also look at what he said first, which is not that Apple stole something from him, personally, but that Apple took what was once communal property available to everybody, and made a derivative that was no longer communal property. Which is, basically, complaining about the core feature of the BSD license itself -- such events are guaranteed to happen, sooner or later, with any successful BSD-licensed project. Something very similar, a hardware company commercializing some software that was formerly available to everybody, and thereby impacting the community negatively, is exactly what prompted RMS to in
Thank you for your lengthy response to what I said. I have to agree with you. I used the words true/free based upon my own bias and I shouldn't do that. Good point, I will take that into account for the future. Especially since it's such a 'holy' (as in vi vs emacs) subject. About the ps: I personally don't see it as stealing what Apple did. I consider the BSD license as sort of saying: Here, you can have this. It's a gift. Do what you want with it. And albeit not being too keen on Apple for other reasons, they had every right to use the codebase under the BSD. So no stealing as far as I am concerned. It's funny you mention RMS. I have great respect for him and consider him to be one of the pioneers of the tech-world. When he speaks, I listen. I don't always agree with him 100%, but most of the time I think he's right. To be honest, when I started reading your post for a moment there I thought I got AC'd by him. Again, thank you for this very interesting response. I wasn't expecting such a post from an AC.
Aristotle-dude is trying to make an argument from the vox populi ... ironic, considering what the actual Aristotle had to say about the mob. The point that most people running OSX/Windows/whatever are not programmers is related to his point about "real" endusers. Think of it in terms of the so-called Average Merrikan: they don't know how their computer works, they don't know the difference between GPL and BSD, all they care about is that this black box they bought has good value, which is defined as roughly having plenty of features/stability/speed/style/whatnot for the price. They could care less if the black box was produced by sacrificing oompa-loompa children to the fourth level of the underworld, or about the kind of text-editor which was used to write the software, is the gist of it.
His point is, rather than argue about whether to use GPL or BSD, i.e. argue about morality of licenses, and the *future* state of the software industry, programmers should instead just concentrate on building the lowest-cost highest-featured black boxes possible. If that means spilling some oompa-loompa blood, and risking unleashing the evil residents of the fourth level to feed upon the helpless humanoids on this plane of existence, and editing with ed (The Standard Text Editor), the endusers will not care. Well... until they are gobbled up by some multi-headed troglodyte straight out of a graphic novel, that is.
The trouble with this argument is twofold. First, it assumes that there is no connection between how software is produced, and how software is licensed, and the ultimate long-run happiness of the endusers. This is clearly wrong: the sort of product, and the sort of price, that is produced by a GPL/BSD/proprietary licensing model definitely differs, and more importantly, over time these approaches produce dramatically different economic outcomes for the enduser. (Just because the enduser is unaware of these impacts, or at least, of the underlying causes behind these impacts, is not relevant.)
Second, it assumes that morality stops at the edge of the black box. Notice how he accuses the GPL of being a form of slavery (on programmers), while simultaneously arguing that endusers (implicitly defined as exclusively non-programmers) don't care how software is produced. Reminds me of arguments about the politics of globalization -- people will argue that non-union payscales are slave wages, and then turn around and complain that endusers don't care how goods are manufactured. The correct result for software is a combination of moral licensing -- which usually means BSD or GPL depending on what specific flavor of morality you want to uphold -- and community standards, which is inextricably intertwined with the choice of license, since in the long run what matters is how they treat derivative works. As for globalization, methinks the correct result for economics is a combination of capitalist economics coupled with self-evident individual rights... most countries get one or the other wrong nowadays... but that is another story for another time.
Anyways, the key sentences from his diatribe are these: "I find BSD for be free *enough* [for endusers whether programmers or not]... price that the GPL imposes [on programmers&distributors] is *too* high..." emphasis added. Ignoring the hyperbole, he clearly understands that we're talking about matters of degree here. But small differences, which accumulate over time, can be magnified into much larger differences that impact the systemic nature of the way software is produced. That is true of economic systems, as well as of software licensing.
Thanks for the thorough pieces of information. I learned a few things, and with the stuff I didn't learn I agree on most. However, I'm going to disagree with your last paragraph.
I think a fundamental reason most modern websites are written in languages like Perl, PHP, Python, Ruby, or even Java is that those languages have a much faster compilation cycle than C or C++ for complex applications. Of course the scripting languages are compile-and-run in one fast step. For certain classes of applications where speed is essential, you can't escape the need for C or C++ or something similar. Otherwise, I think the speed of the change-save-run cycle trumps the speed of the execution in importance by a wide margin.
A company with a big war chest of money like Google, Microsoft, Oracle, or IBM can pick (or build) the compiler that lets their 100 servers serve the results as quickly as possible because they're battling costs associated with thousands of servers. But for some company that's looking at 50 servers, or 20, or 3, the company with the quicker compiler probably has his product on sale while the other company is twiddling its thumbs. Whenever I've had to stop what I'm doing to wait for something to finish at work, inevitably I switch from being productive to wasting my time doing something else (like, just for the sake of argument, posting to Slashdot).