Advocacy Prompts Reconsideration of Anti-GPL Letter
As far as I can tell, it started with this Newsforge story (Newsforge is also part of OSDN, Slashdot's corporate parent). The Newsforge story was excerpted and copied by an Australian newspaper, and from there, it was off and spreading. The headline chosen, "Washington State Congressman attempts to outlaw GPL", is not particularly accurate, but it did a great job at stirring up outrage. Outlaw the GPL! Over my dead keyboard!
From there it really started making the rounds. It was repeatedly submitted to Slashdot with all sorts of flaming, incorrect commentary - in fact, after reading a dozen different submissions, I didn't think any of them were even close to accurate. I picked one and posted it, trying to do my best to a) provide an accurate headline and b) provide an accurate summary of the issue at stake in a few sentences. To recap again: when the Federal government creates computer code (or any copyrightable work) directly, it gets no copyright whatsoever and the work is true public domain (quirk of the U.S. copyright laws - the 50 states, corporations, individuals, and other legal entities all get copyrights automatically, but the Federal government does not). If you want to copy, reproduce, or sell an .mp3 of the U.S. Congress singing "God Bless America" after September 11, go right ahead: there is no copyright on it whatsoever. (Actually, the song itself is still under copyright, but Congress' performance of it wouldn't be...)
However, when the Federal government hires a non-employee to create code or copyrighted works, there is no clear rule regarding the copyright status of the work. Sometimes the contract calls for rights to the work to be assigned to the Federal government (the Feds don't get original copyrights, but if someone else gets an original copyright, the Feds can acquire it). Sometimes the contractor keeps the copyright and gets to do whatever they want with it. Sometimes the contract doesn't specify. Note that this is NOT a BSD-vs.-GPL dispute, not by a long shot. Very little code financed by the Federal government is ever licensed under either of these two licenses - the choice is basically agency-proprietary (the Federal agency asked for the rights in the contract, and kept them) or company-proprietary (the agency didn't ask for the rights, and the contractor kept them).
And most of the time it doesn't matter. I've written code for the Federal government as both a contractor and an employee, and 99% of it was so specific and customized that it would be of use to no one else, regardless of its licensing or copyright status. Probably the majority of code written for the Federal government falls into that category - internal use software for very specific needs.
But some of it is undoubtedly useful. Some major projects funded by the government in conjunction with academia have escaped from licensing purgatory, typically through the efforts of the researchers working on them who approach the issue from an academic freedom viewpoint and want to see their work widely adopted. GRASS is one major one that I know of. A commenter pointed out ADA as an example. For code which is useful to others, either a BSD-like or GPL-like license would be truly beneficial and easily defensible as a public policy choice. In the non-code world, the government makes choices like that all the time - it might choose to purchase a particular piece of land and commit to making it available to everyone forever by declaring it a National Park and committing to maintain it, a GPL-like philosophy; alternately, it might choose to just dump a particular piece of property on the market, putting it up for auction and letting the purchaser do what he wills with it, a BSD-like philosophy.[1] Either of these two options might be optimal; but paying for code which ends up remaining proprietary is like buying a new stadium to benefit a very specific corporation which owns a very specific sports team: the type of use of public funds which is generally seen as sleazy and the opposite of good governance.
Either of the first two choices can be appropriate in certain situations. What does not seem appropriate is paying for proprietary code, although this is generally what happens when the government contracts for code. Since the government has the ability to provide a benefit to the public (open code) at essentially zero cost, it should do so. An example which has struck me several times over the past few years: every airport in the world has the same problem, coordinating planes taking off and landing and keeping them from running into each other. Yet each nation (and often each airport) solves the problem over and over, paying heavily for custom-designed, one-shot software development. Imagine if the world's airports could simply install GNU-AirTrafficControl 2.7, and have a complete, working, bug-free and cost-free air traffic control system. It would cost every nation less to do it this way, but it would also make a lot less money for the consultants retained to develop these systems.
But leave off the advocacy for moment - I was following the story itself. As noted above, the outcry has prompted many of the other Representatives who originally signed the letter to reconsider. The AP story even suggests that some of the signatories were actively misled - that the letter they thought they were signing didn't mention the GPL at all. However it actually played out, some good has been done.
That's good. What's not so good is that much of the outcry was probably generated by stories titled "Washington State Congressman attempts to outlaw GPL". The right outcome occurred, but for the wrong reasons and in the wrong manner. I am left wondering whether the community would have made the same sort of response on this issue if every story that had been posted about it was 100% accurate and non-inflammatory.
[1] If you're not familiar with the BSD-like and GPL-like classes of software licenses, this won't make a lot of sense to you, so please read up if necessary.
In a perfect world everybody would pay for everything, and book keeping would be free, you would still be paying licensing to Daimler Benz for the diezel engine, but it would only cost you less then a cent, no body would steal, business men would be honest, and the free market system would hum along perfectly well, but we do not live in a perfect world. This is why we have expirations on patents, copyrights, and other titles, and this is why we have public funding for some things people won't pay for. Unfortunately government funding is usually partial, so how do you handle cases where only a dollar of funding comes from the government? In a perfect world you would highlight the segments of code they paid for, and license it how the government wants, and license the rest how you want...yeah right.
The only reasonable solution I can imagine is if code that is paid for by more then 50% by the government can NOT be GNU'd. GNU is an invasive license that "sucks" in modifications made to the code. National parks don't suck up your tent into some "tree vortex" when you leave. We come in, pitch our tent, have fun with it, and when we are bored we leave, it is usually just that simple. GNU is much trickier.
Ultimately a GNU license would be a mistake for government, it "sucks" in modifications, it steals from tax payers, and it undermines the spirit of the government. As long as code modified that is GNU, ALSO remains GNU, the government should NOT allow this kind of licensing. The only kind of license the government should ever endorse is one where the ORIGINAL code, and JUST the original code, because this is all that was paid for, and all that should be provided, be availiable to the public (including businesses) for now and always.
--"You are your own God"--
It devalues the work of the Free Software community when proprietary developers rip their code and then use it to make a proprietary product, while giving nothing back to the free community. It also gives proprietary developers an unfair advantage over developers of Free Software, as they can use Free Software in their proprietary programs, but Free Software developers can't use proprietary code in their Free Software. The GPL corrects this unfair imbalance.
What imbalance?
You had a choice when you signed up; release your software however you want to.
You picked "give it away for free".
Note: that means you gave it away. For free. It also doesn't mean that others who use it - however they use it - owe you anything. It was your choice. Your decision. You weighed up the pro's and con's and made that choice.
But no, you're talking about giving it away for Free. The big capital F at the beginning coming with its own footnote and small print attached. Which means "Yes, I'm giving it away for free -- look how altruistic I am! I'm an upstanding member of the community! Look at how wonderful I am! Oh, and by the way, if you don't do the same, I'll take you to court and do you so hard that you'll be bleeding for years."
That's the difference.
Stop stealing the word "Free" for your own use. It's not Free, or Freedom, or anything like that. It's nothing more than a mechanism for pushing your agenda. If it was truly free, there would be no restrictions.
[F]ree: as in, you don't have to pay anything for it, but if you use it in certain ways, you have to give away your work too.
I'm just glad that the GPL doesn't cover things like content/data. "Oh yes, I used EMACS to write my business proposal yesterday. But unfortunately, if I give it to anyone else, I have to let everyone else use it for free."
I mean, think carefully about that scenario for a second. Preposterous, no? But people who use your word-processor/tcp-ip stack/webserver/operating system are still profiting from your work. So what's the difference here?
Well, apparently, the difference is that those people aren't software developers, whereas people who would use your source code to build on are.
How many of those desktop Windows users you want to convert to Linux out there would actually "give back" to the Free Software community?
My guess: very few, if any.
Coming soon - pyrogyra