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.
This is a weird subject, really. GPL is good, but when you really think about it, source code for government software isn't really something that should fall into the wrong hands...
...because the BSD license is essentially no license at all. So, when the government releases the SuperFoomatic 1.0, anyone can do with it as they please.
If we want a GPL'ed SuperFoomatic, we just take that code and release it under the GPL license. No point in having it release originally under the GPL as the released code can be GPL'ed "retroactively".
The only addiition I can think of is that perhaps it should be dual licensed, so that corporations have to pay for its use, with those monies paying for additional governmental software research.
Forcing the government to release code under GPL is *removing* competition from the market. Public domain is much better. The code can be taken up by private companies and they can improve and sell it. And nothing I am aware of keeps that same code for forming the basis of a GPL and/or BSD project.
So turn the code loose with no strings at all, and let the best licensing system win!
The only good weather is bad weather.
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.
...and we know what Congress feels about doing a lot of work....
True, but... I assume in this model anyone, anywhere could see the source codebase... with any of its bugs and exploits.... Do we want this for these kinds of software implementations (of which there are many done by/for the U.S. government)?
From what I can tell from the various sources (some good, some bad), the crux of the argument here is to avoid Smith et. al., making GPL or BSD licenses for government-produced/contracted code illegal. And that's only right. However, as far as I'm concerned, this simply starts the sticky discussion on what kinds of licenses/protection should be applied to what kind of projects. That's likely to be a lot more work.
Anyway, one can only hope that this news gets replayed as "X tries to restrict freedom", and these guys don't get re-elected.
...because it's an important public policy question: it shouldn't be decided by a backroom push from business lobbyists...
Where the hell have you been for the past 50 years?! This is how all policy is decided by governments. Pretty simple equasion:
BribeH^H^H^H^H^Corporate funding + politician = new policy.
Code, Hardware, stuff like that.
social sciences can never use experience to verify their statemen
GPL does make things difficult for commercial exploitation, especially for software companies which care more about tying you to them with a product rather than their service ... so a GPL license for everyone, and a commercial for fee license for companies works well (you see it used often).
Advances science and business in equal measure, and lets the government recoup some of the costs.
The GPL=National Park, BSD="dump on market" is a completely unfair analogy. If you make land into a National Park, everyone has a right to use them. If you sell the land, only the landowner gets to use it.
However, that is not the case with GPL vs. BSD. I can freely use and modify any code under the GPL or the BSD. It's not like some company can just take over BSD code and never let me use it. They are both free.
The difference is that with GPL if I write a commercial application and 99% of the code is mine and 1% is GPL I am forced to give out my 99% of code. With BSD I don't.
Now this is fair if it is just some Joe Programmer on his own time who wrote the 1% of GPL code. He can let people use (or not use) it as he feels. It is *NOT* fair if that Joe Programmer is being paid to write that code with MY tax dollars! That code should be freely given to the taxpayers to do with it whatever they want, including using it in their closed-source programs and selling it.
It is not "corporate welfare" because it benefits everyone equally! Corporations can use it, individual taxpayers can use it, universities can use it, etc. Corporate welfare is if they give something to corporations that only corporations will benefit from.
Brian Ellenberger
see, the gpl license is very much like modern encryption alogrithms. prior to the days of RSA, ala world wars, encryption and security was based around the fact that people can hide secure algorithms well enough to keep things secret. in other words, if anyone found out the algorithm, the encryption scheme became utterly pointless.
relatively recently, encryption has undergone a complete turn-around in ideology. now, most every cryptologist believes that the algorithm should not only be simple but also VERY OPEN. the more eyes that look at it, the more errors can be spotted, and as time has told, today's crypto systems, for example RSA, are much more secure than the enigma. everyone and their dog knows how it works, and still no one can break it.
the same thing goes for software. the whole "falls into the wrong hands" argument works exactly the same as crypto-systems. if a crypto-system falls into the wrong hands (as someone else noted), it will also fall into the right hands, and errors will be fixed.
licensing government software under the gpl opens it up, and in the long run reduces the error rate and effectively, it's security, etc. people still think that if they hide the source to the software, it will be more secure. PLEASE look at what happened to cryptology in recent times and act accordingly.
BSD is for people who love UNIX. Linux is for those who hate Microsoft.
I haven't found a statement of the rules, but many academic projects funded by the National Science Foundation require that the data collected (or non-confidential bits of it) be made available to the academic community at large. I think that that is a correct policy of the NSF and that the analogy holds for much of software development
Prime numbers are exactly what Alan Greenspan says they are -S. Minsky
If you release it under the GPL, all derived code must itself be released under the GPL. Like it or not, this *does* interfere with commercialization of the software, nobody is going to spend millions of dollars writing code they'll have to give away, under most circumstances.
On the other hand, BSD or Public domain carries no such strings. Someone can pick up the BSD or PD code, alter and adapt it, and make the result proprietary, *and* someone else can take the same original PD/BSD code, alter and adapt it, and release it under the GPL or a similar required open-source liscense. The best of all possible worlds, if making something government-generated generally useful requires a lot of up-front investment, in ways that don't appeal to OSS communities, someone can take that opportunity and make an investment with reasonable hope of return. And if something of benefit can be derived in ways that "scratch an itch", the result can be released or recreated under the GPL and kept available.
The problem is that some systems should never be made public. I don't want the command computer source code for the ICBM system running around loose, "many eyes" security methods are a bad thing when intrusion impacts are measured in megatons. So, like it or not, some code will have to remain forever closed.
--Dave
Someone who actually understands the issue at hand, in context, even, and is able to give a relatively straightforward and largely unbiased review of what has occurred and why you should care. Crazy!
And for the record, if there were a GNU-AirTraffic piece of software, it would take about 10 years to get to anything resembling 2.7; it would probably spend most of that ten years at version 0.9.x or whatever. What is up with OS projects being totally unwilling to actually go up in versions? Sheesh.
So you agree that what MS did with kerberos is OK? I know this is a troll, but what BS.
Let me give an example, say the government funds an email server. I create a plugin that expands on the functionality of the email server and create a small business around this consulting other companies on its use.
You are a large company that markets the email server. If we use the GPL, you can not close me out with proprietary extensions. Same thing would work in reverse, but you would not care that much. If it was a BSD or Public Domain, you could make proprietary extensions that would disallow my plugin from working. What makes you more important than me? Both of our tax money went to this hypothetical project.
By your reasoning it would be ok to leave trash or campfires burning. The parks are GPLed. We don't let companies come in and strip mine Yellow Stone. If we were to use your analogy, we would let loggers cut down the Redwood forest.
The GPL says share and share alike. you want to keep something to yourself, then do all the work yourself. No way are you takeing what is mine. By definition, anything of the Government is partially mine.
Just a Tuna in the Sea of Life
What is bad about the GPL for releasing software in the scientific community?
I'd like to understand your problem. Is it that people are not required to provide changes unless they provide binaries? Interesting. So, would you say that the GPL is not restrictive enough for scientific researchers?
If this is your problem, I think you'd find a more restrictive license difficult to draft. You'd have to carefully define 'research' and 'publish' for purposes of such a license.
The GPL removes much of the motivation for keeping source changes secret, but not the one where people want to keep their changes a secret for purposes of academic competition. I would think that this motivation would be counter-balanced by the desire of researchers to have their results duplicated. This would require that the mechanisms of their research be made public, which I think would include their source code.
One case where researchers are likely to keep their methods secret is their hope to commercialize some aspect of the research. The GPL addresses this well, I would think.
In the case of GPLing a BSD licensed piece of code, it would have to be a modified version of the GPL to take into account the original requirements of the BSD license - that attribution must be given in the documentation and that the BSD copyright notices must not be removed from the source. The BSD license allows you to add restrictions, but you may not remove the ones that were there.
So far as I know, more lawsuits have been filed in defense of the BSD license than the GPL so far. :-)
I don't feel that the government should GPL all its code on principle. But should the government be forbidden to make modifications to a mature GPL software project if that software fills the requirements of some particular project? Imagine that the government wants to use Linux for a particular application, because they feel it's the best tool for the job-- should they be forbidden from adapting it to suit their particular needs (as companies like Tivo have), or even releasing bug-fixes?
It strikes me that in many cases the public and the government can both benefit from this sort of transaction. It's certainly far more efficient than the typical "pay a contractor to develop something and then let them retain the copyright" scenario.
though.
.gov, then gets to turn around and sell that db commercially.
Say IBM gets a 100million $ contract to write a killler database for
So Oracle (& MySQL AB) gets to help pay for code for a competitor?
Seems more fair & logical to release all publically funded code under an open license so that all the folks who have supported the writing of the code can use it.
I suppose it is very little compared to the total amount of software written for the Military.
I was, however, excluding from consideration all software that would not normally be licensed or otherwise released, like software that is not released to entities outside of the US Military or software that could contain State Secrets, etc.
The Yorktown's propulsion system software would only be released to those who had Yorktown class ships. Inspection of said software could aid people in sabotage of Yorktown class ships or might contain operational details that would be of benefit to someone engaging a Yorktown class ship in battle.
I think you're talking about software here that was never intended for any kind of release.
I suppose there are probably some software tools and business software programs, like in the areas of logistics, task management and office tools that the Military might develop that could get widespread release, but I can't imagine that this would be a terribly large body of software.