I believe this is attempting to say you cannot redistribute an otherwise ok GPL version if you at the same time are violating the GPL on that code. If you stop infringing the GPL you are then free to distribute the code again. So this is a bit of extra punishment for violating the GPL. Ie if RedHat did something to violate the GPL on Linux, they would lose the rights to sell their copy of Linux, even though otherwise that copy of Linux is completely in the clear. However if RedHat then corrected their violation, I believe that they would get the rights to distribute Linux back. IANAL but this sounds a little bogus to me as one illegal action should not be able to make an otherwise legal action that is totally independent suddenly illegal.
I also think your reading of this would violate RMS's and FSF's goals. According to your reading of this, one mistake by a company would prevent them from ever releasing their code GPL. So in my RedHat example they would never be allowed to distribute Linux ever again, thus shutting off a very productive and useful source of GPL code, and RedHat might as well go into the closed-source business. I seriously doubt this matches the FSF's intentions at all, so for that reason I don't think this revokation works as you think.
Imagine instead the code had a typical public-domain header ("you may use this code for any purpose, provided that..."). For our purposes this is exactly the same as the GPL, it is a block of text saying under what conditions you may violate the copyright on the code. You are claiming that this text is meaningless, and that if I released public-domain code, I could still sue somebody who makes a copy of that code.
If what you are saying is true, then all code that does not involve a signed contract (ie public-domain, BSD, GPL, and all open source licenses, all code samples in books, and all commercial programming libraries) are suddenly unsafe to use.
Personally I think this is hogwash, and I'm not sure what you are trying to say.
Remember that the GPL is somewhere between copyright and public-domain. It cannot do anything that one or the other of those cannot do.
Wrong! The Linux copyright was not assigned to the FSF. Linus himself owns the copyright on large amounts of it, I believe.
The FSF owns the copyright on GCC and many of the command-line utilities. But as RMS likes to point out, the kernel is seperate. And SCO seems uninterested in attacking anything other than the kernel.
He's talking about the license for Linux, you moron, not the plain GPL.
Look up the word "exception" in the dictionary. Now imagine an "exception to the GPL". Now why the hell do you think that text is in the GPL? By definition it is NOT in the GPL.
You have that wrong. Nowhere in the GPL does it say it is revocable or any such clause like that. I am curious what wording you see as saying this, please quote it.
Most importantly: such a clause is illegal without a signed contract. This is the same reason most clauses in unsigned EULA's are probably unenforcable. Otherwise people could put code into the "public domain" (ie even more free than the GPL) and then "revoke" it many years later after it is in every product (open or closed).
What they lose is the ability to redistribute the code as long as they make their current claims. Their claim that their customers are ok, while others (including those who copy the customers code) are not ok, this means their distribution is not GPL because copying is not allowed. Now unless SCO is claiming they wrote 100% of Linux, some portions of it they got from outside authors, who gave it to them under the terms of the GPL, which says that code may not be redistributed unless the GPL applies to the redistribution. By redistributing it and ignoring the rules, they are violating the copyright of all authors (other than themselves:-) ) of Linux. This is the copyright of literally thousands of people and organizations, including Linus and all other big-name kernel hackers, and IBM and nVidea and Oracle and many other companies.
If SCO suddenly changed their plans, and either removed their code or released it GPL or public domain, they could then continue to distribute copies of Linux, without any violations of the GPL. It is not "revoked" in any way.
They may still be liable for copyright violations for the previous releases of SCO Linux. However in the same vein if there really is stolen SCO code in Linux then the person who did that is also still liable for copyright violations, even though the code has been removed.
The Nvidia example was ment to show that if Linux was BSD or GPL then you wouldn't be "tainting" the kernel by linking it.
Considering the fact that these closed-source Nvidea drivers exist, apparently the GPL kernel is not causing any trouble. However that could be explained by the fact that the kernel explicitly allows closed-source modules.
The only problem is that bug fixes and things would have to go through you, nobody could release a non-buggy version of your code because they can't just go and modify your stuff.
You didn't understand what I was requesting, which is different than the Artistic license. The user is required to release their bug fixes just like they have to release the code in GPL or LGPL software. But after they do that they can use the fixed version of the library exactly as though it was public domain. The primary purpose of my license idea is that such fixes are not allowed to remain secret, and most importantly "extensions" are not allowed to remain secret.
Except for extremists (like RMS probably) most people using the GPL or LGPL are most concerned that their code continue to be free to be used by anybody, rather than hijacked and "extended" so that the only people who can benifit from the code is the closed-source company that took it, even the original author loses the ability to use their code if the standard becomes this extended one. I would love to have my code used as much as possible, in closed source as well as open, but I want to prevent "extension" if at all possible. In my opinion the ability of Microsoft to take my code and use it as a part of a product that will extend their monopoly, that is basically a theft of my work and I am sorry that my attempts to prevent it make it difficult to make closed source.
However it seems that there is room for a license that does what people want and does not attempt to cause everything to become opensource. But for now I am forced to trust what real lawyers have written, with minimal changes. IMNAL so I doubt anything I wrote as a license would stand up if Microsoft wanted to steal it.
Even better, some stuff on Apple's website is only available as albums. Apparently any musician who wants this can (in theory at least) get it in their contract. So they should have nothing to complain about.
NVidea cannot make their drivers public domain or BSD either, so that is not an argument for using public domain over GPL.
The rest of this stuff is a real argument about how you cannot add to a GPL piece of software because of the fact that the original code is copyrighted and the rules where the GPL allows you to violate that copyright are not lenient enough to allow you to succeed in what you want to do. That is why almost any system I can think of where such additions are useful uses modifications of the GPL. For instance the Web server certainly has some sort of loadable modules where the modules may be closed. And Linux has loadable modules where the modules may be closed. In both cases I admit that I don't know if the technical requirements of your application can work inside the limits of these modules.
My personal preference over the GPL would be a license that allows any use as long as no source code is modified. You can add as many files as you want to it to make your program and as long as no original file is changed the you can treat the code as public domain. Depending on how the code is written it can be used in quite complex applications, for instance if it has any kind of callback-setting interface then it is legal for this code to call closed-source code.
If however you modify the files, you must release all the changed files. You can still use the resulting modified code in your closed source program. There has to be some rules so you can't just insert callbacks or macros so your modifications are really secret, but this may be solvable with peer review, ie anybody can look at your modifications and complain loudly if you seem to be cheating.
The point is to allow everybody to use the code, but avoid the "embrace and extend" problem, which is usually just caused by programmer errors, but that Microsoft has even stated is a weapon they plan to use.
Unfortunatley I don't know enough legal stuff to make this clear. What I do with my code is LGPL it with a special "exception" that says that programs that are linked with the code with no modifications to the code are not considered derived works and can do anything they want.
If the government is allowed to sell anything, it can "derive commercial gain from any subsequent derivative programs". In fact what the GPL does is guarantee that if there is any possible commercial gain, that the government will get some of it.
Like usual they have completly ignored the fact that the original author can dual license, and are trying to spread the FUD that releasing anything under the GPL means you are giving up all your rights to it.
Read the title again. The word is "Warned", not "warns". Thus it implies that somebody outside the UK Govt said this, not that the government did. The title is accurate.
Wrong. The GPL allows an individual to sell their work to a business. Public domain makes it impossible, because the business can get the work for free. You seem to have conviently forgotten about dual-licensing in some of your arguments. If your GPL code is actually of some value you could possibly make more money since anybody who wants to make a closed-source derivative has to pay you.
The rest of your letter is quite logical and correct. You need to reword this so it does not sound like some kind of anti-GPL rant, but instead expouses the positive aspects of using something else.
Personally I use the LGPL with a modification that allows static linking. The idea is that anybody can use my code for any purpose, but if you alter any of the source or header files you must release those changed files and anything they call. This allows my software to be used by anybody while disallowing the "embrace and extend" problems that are the main reason people GPL stuff.
You can make a good argument that code made by the government should be BSD. Some people have suggested that anything made by the government in the USA cannot be copyrighted, which actually means that they cannot put the GPL on it at all (since the GPL is a simple exception to some of the restrictions of copyright, and is thus meaningless if none of the restrictions of copyright are there).
So a law that says any code made by the government that they release (they can keep the secret nuclear codes secret) must be public domain. Or maybe they can require a BSD-style attribution in any copies. But you can make a logical argument that GPL is not allowed. In addition anything else requiring copyright is also not allowed, they are not allowed to give or sell it to a company that sells it as closed-source or even as open-source but GPL software.
Unfortunatley due to the stupidity of lawmakers, this lobby will confuse production with use and convince them that they cannot *buy* GPL software. If this argument was logical it would say they cannot buy Microsoft software either, but they will snow the lawmakers enough that they will fail to see such obvious conclusions.
If such a rule was done correctly, the only real losing part for GPL software is that the government would not be allowed to "improve" it, because their improvements, in order to be useful, would have to be GPL restricted and this law does not allow that. However it also means that the government would not be allowed to write code that improves Windows either. The government could write public domain modules that work in Linux, and can write public domain programs or libraries that work on either Linux or Windows. Linux is allowed to incorporate those modules into it's own code and even make the result (with some additions) GPL. Microsoft is also allowed to take such modules and put them into it's closed-source product.
This actually sounds quite consistent to me and could work. However everybody has to be shown that the GPL is somewhere between public domain and proprietary. If the GPL is not allowed then everything on one side of it, such as proprietary, must also not be allowed. Microsoft is trying really hard to obfuscate these facts and try to get the "middle" of the range clipped out, even though that is totally illogical.
Then again the RIAA is actually trying (by eventually making recording devices of any kind illegal because they can be used for "piracy") to outlaw the public domain. Odious as this is, it is logical as well, and could be a way to say that "proprietary software is the only legal software" and both GPL and BSD and public domain are all illegal.
I got the impression that 10% was added to the budget when the government purchases Microsoft products and that money is donated to charity. However it is collected, it certainly does not affect private purchases of software.
I do believe the solution is to have government procurment requirements require open data formats. This will allow there to be competitors (whether open source or closed) to Microsoft. Such requirements only affect government purchases and do not affect the private sector, except to encourage companies to make products with open data formats so they can sell the same product to the government.
Unfortunatley Microsoft has such a lock on things that governments cannot function without the ability to purchase Microsoft's product. So any "require open data format" law will be shot down. Microsoft knows this and for that reason it actually encourages them to close all formats (if say they opened NTFS or SMB and this was enough for some organization to pass such a law, they would lose their Word sales to that organization). So some other way must be found. Somehow making purchases of this software more expensive would seem to be the only way, so a "tax" like this looks like a plausable solution.
This is not to fund open source. It is to punish a company for using a closed format. Microsoft could avoid the 10% tax by publishing enough code to allow other programs to read their stored data.
Personally I feel this may be a very workable idea, superior to ones that have been done before:
Mandating open source is definately a bad idea because it is anti-competitive. Like it or not, publishing your code as open source allows competitors to take it and work off your efforts, so such a mandate disallows some forms of software development for profit.
Requiring "consideration of open source" just allows a beauracracy to rubber-stamp their purchases of Microsoft software. It helps nothing and may just employ more beauracrats.
Requiring "open data formats" is an excellent idea as it would level the playing field to all companies (both closed and open) instead of the current Microsoft monopoly of being the only one able to write software that can be used to read the data. But it runs into the problem of Microsoft's existing monopoly. Basically a government cannot function if it is not allowed to buy Microsoft products because huge amounts of data is in Microsoft format, Microsoft can use this fact to make any such law impossible to pass, and this may actually discourage them from publishing anything, since any published format would increase the chances of such a law existing.
This tax allows Microsoft software to be purchased so the government can work, but punishes it's use and gives both the buyers and Microsoft some incentive to switch to open formats. It is a usable verision of the "require open data formats" bills.
Only the person who owns copyright on the code can put it under the GPL. Say in theory Linus actually stole code from SCO and added it to Linux and then released it GPL. Then Linux would be claiming he owns copyright on the SCO code. That is wrong, and he is guilty of copyright violation. The fact that he used the GPL is irrelevant, he would be guilty of the same thing if he had sold the code in Linux for profit, or compiled it and sold that for profit, or released the result BSD or public domain.
The GPL does not have mystical powers that override laws, even though Microsoft would like people to believe that and be scared of it. It is simply an exception to normal copyright to allow code to be placed somewhere between copyrighted and public domain. Nobody seems to have any trouble understanding either copyrighted or public domain, but are confused by the idea that there can be a position inbetween them, and that it is impossible for this position to have any more power than either end.
A bigger problem is that changing one character will change the MD5 sum. This obviously makes hiding code copying from this scheme trivial.
The "hash" actually has to be of a similar design as that used by the mail filters to find matching pieces of spam.
How about Bayesian analysis? Feed an (open source) program with lots of code from Linux and BSD that could not possibly be from SCO. Then feed the same program all the code in SCO Unix. Then run the entire present-day source through and let it judge whether it belongs to Linux or SCO. This could be done under a controlled environment where nobody sees the SCO code.
Though I certainly agree about the part-time statement, in my experience cash is not a problem. I use a computer I would have bought anyway. Yes things like Sourceforge cost money, but they don't seem to have cost me anything.
The big missing factor is time, not cash.
I would also estimate that the size of the talent pool working on the Linux and WIndows kernels is about equal, but possibly the time contributed by the Linux people is 1/10 or less since most of these people have other jobs. The fact that Linux works so much better is probably a combination of the fact that 100% of the people working on Linux are interested in working on it (versus I would guess 30% or less at Microsoft), the fact that the number of talented (ie non-idiots) working on linux is perhaps 90% versus maybe 50% at Microsoft.
That still does not balance out, so a lot of credit must go to the open-source methods as being more efficient and productive. Though programmers at Microsoft have access to all the source code, they may not talk freely about it and they don't have tens of thousands of mildly-interested parties looking at their work and perhaps making useful suggestions.
The other plausable reason is that in both projects about 95% of the work is done by maybe 5-10 people, and in both the Microsoft and Linux cases that small group is working full time.
Scenario one, I incoroprate some GPL code into my own software which I hold the copyright on, and I release it... I cannot control derivative works. This is because the GPL has regulated my behavior. It forces me to grant the rights I received with the GPL to anyone who receives my code which contains GPL'd parts.
The exact same thing would happen if you released your code public domain. You cannot retrieve that code and make it coyprighted again after telling people they are free to copy it. This is not a problem with the GPL. Your problem is that the GPL does not allow you to distribute your program in a way where you prevent people from copying the code. Therefore your entire argument is just a long-winded way of saying that the GPL does not allow you to write closed-source. Well too bad, I feel really sorry for you. Unfortunatly that is 100% the purpose of the GPL and you will have to live with it.
And don't you dare say you are "forced to grant the rights to your code to anybody" by the GPL. You are not "forced" to do anything, and it is easy to avoid: either don't distribute your program, or figure out how to make your program without using some GPL code. You don't see me complaining because I cannot use Microsoft's code in my programs, but you are basically complaining about exactly the same thing.
An OSS license... only restricts one single thing: distributing the GPL'd code and derivative works.
No, copyright restricts distributing the GPL'd code and derivative works. The GPL is an exception to copyright, it gives you explicit rules under which you can violate copyright. Without it you can do less with the code.
Many people are confused because most source code they have seen has at the top the text "permission is hereby granted to..." in it which is also a way to grant an exception to copyright, and usually this exception is much more generous than the GPL, which leads people to think the GPL is restrictive. But compared to nothing at all, both the GPL and such "permission granted" code is generous.
That Microsoft example would not satisfy either the OSF standards or the FSF standards, so it does not prove anything in this argument.
I think the original poster meant that anything that the OSF likes also fulfills the "four freedoms" listed by the FSF. This includes the BSD and public domain licenses. Now there are still differences between the GPL and the BSD or public domain licenses, but those are outside of these "four freedoms". The BSD folks could make a list of "five freedoms" and then say the BSD fulfills these but the GPL does not, but it would not change the fact that both fulfill the four listed by the FSF.
Actually my impression of Plan 9 is that it is not really a micro kernel at all. Micro kernels like Hurd require you to program "interfaces" that then talk to the micro kernel, which then pipes these interfaces through to servers. The only person who concerns themselves with the actual micro kernel interface is the person writing the "interface compiler" or whatever you want to call it.
Plan9 seems like a much better approach. It is a "monolithic kernel" in that all the system services are actually provided by a single block of code called the "kernel". The difference from Linux is that the size of the monolithic kernel has been pared down by reducing the number of services to a manageable size (ie apparently there are less than 50 system calls, versus about 500 for Linux and 3000 for Windows).
Now it gets a little vague as to when it becomes a microkernel, but I feel the difference is that it is plausable to call Plan9 directly from a program because the interface is understandable and usable by programmers. You could claim that Linux is a microkernel because it provides file descriptors but that database operations are done in user space, but most people don't do that. I feel the same is true of Plan9.
I also think your reading of this would violate RMS's and FSF's goals. According to your reading of this, one mistake by a company would prevent them from ever releasing their code GPL. So in my RedHat example they would never be allowed to distribute Linux ever again, thus shutting off a very productive and useful source of GPL code, and RedHat might as well go into the closed-source business. I seriously doubt this matches the FSF's intentions at all, so for that reason I don't think this revokation works as you think.
Imagine instead the code had a typical public-domain header ("you may use this code for any purpose, provided that..."). For our purposes this is exactly the same as the GPL, it is a block of text saying under what conditions you may violate the copyright on the code. You are claiming that this text is meaningless, and that if I released public-domain code, I could still sue somebody who makes a copy of that code.
If what you are saying is true, then all code that does not involve a signed contract (ie public-domain, BSD, GPL, and all open source licenses, all code samples in books, and all commercial programming libraries) are suddenly unsafe to use.
Personally I think this is hogwash, and I'm not sure what you are trying to say.
Remember that the GPL is somewhere between copyright and public-domain. It cannot do anything that one or the other of those cannot do.
The FSF owns the copyright on GCC and many of the command-line utilities. But as RMS likes to point out, the kernel is seperate. And SCO seems uninterested in attacking anything other than the kernel.
Look up the word "exception" in the dictionary. Now imagine an "exception to the GPL". Now why the hell do you think that text is in the GPL? By definition it is NOT in the GPL.
Most importantly: such a clause is illegal without a signed contract. This is the same reason most clauses in unsigned EULA's are probably unenforcable. Otherwise people could put code into the "public domain" (ie even more free than the GPL) and then "revoke" it many years later after it is in every product (open or closed).
What they lose is the ability to redistribute the code as long as they make their current claims. Their claim that their customers are ok, while others (including those who copy the customers code) are not ok, this means their distribution is not GPL because copying is not allowed. Now unless SCO is claiming they wrote 100% of Linux, some portions of it they got from outside authors, who gave it to them under the terms of the GPL, which says that code may not be redistributed unless the GPL applies to the redistribution. By redistributing it and ignoring the rules, they are violating the copyright of all authors (other than themselves :-) ) of Linux. This is the copyright of literally thousands of people and organizations, including Linus and all other big-name kernel hackers, and IBM and nVidea and Oracle and many other companies.
If SCO suddenly changed their plans, and either removed their code or released it GPL or public domain, they could then continue to distribute copies of Linux, without any violations of the GPL. It is not "revoked" in any way.
They may still be liable for copyright violations for the previous releases of SCO Linux. However in the same vein if there really is stolen SCO code in Linux then the person who did that is also still liable for copyright violations, even though the code has been removed.
Considering the fact that these closed-source Nvidea drivers exist, apparently the GPL kernel is not causing any trouble. However that could be explained by the fact that the kernel explicitly allows closed-source modules.
The only problem is that bug fixes and things would have to go through you, nobody could release a non-buggy version of your code because they can't just go and modify your stuff.
You didn't understand what I was requesting, which is different than the Artistic license. The user is required to release their bug fixes just like they have to release the code in GPL or LGPL software. But after they do that they can use the fixed version of the library exactly as though it was public domain. The primary purpose of my license idea is that such fixes are not allowed to remain secret, and most importantly "extensions" are not allowed to remain secret.
Except for extremists (like RMS probably) most people using the GPL or LGPL are most concerned that their code continue to be free to be used by anybody, rather than hijacked and "extended" so that the only people who can benifit from the code is the closed-source company that took it, even the original author loses the ability to use their code if the standard becomes this extended one. I would love to have my code used as much as possible, in closed source as well as open, but I want to prevent "extension" if at all possible. In my opinion the ability of Microsoft to take my code and use it as a part of a product that will extend their monopoly, that is basically a theft of my work and I am sorry that my attempts to prevent it make it difficult to make closed source.
However it seems that there is room for a license that does what people want and does not attempt to cause everything to become opensource. But for now I am forced to trust what real lawyers have written, with minimal changes. IMNAL so I doubt anything I wrote as a license would stand up if Microsoft wanted to steal it.
Even better, some stuff on Apple's website is only available as albums. Apparently any musician who wants this can (in theory at least) get it in their contract. So they should have nothing to complain about.
The rest of this stuff is a real argument about how you cannot add to a GPL piece of software because of the fact that the original code is copyrighted and the rules where the GPL allows you to violate that copyright are not lenient enough to allow you to succeed in what you want to do. That is why almost any system I can think of where such additions are useful uses modifications of the GPL. For instance the Web server certainly has some sort of loadable modules where the modules may be closed. And Linux has loadable modules where the modules may be closed. In both cases I admit that I don't know if the technical requirements of your application can work inside the limits of these modules.
My personal preference over the GPL would be a license that allows any use as long as no source code is modified. You can add as many files as you want to it to make your program and as long as no original file is changed the you can treat the code as public domain. Depending on how the code is written it can be used in quite complex applications, for instance if it has any kind of callback-setting interface then it is legal for this code to call closed-source code.
If however you modify the files, you must release all the changed files. You can still use the resulting modified code in your closed source program. There has to be some rules so you can't just insert callbacks or macros so your modifications are really secret, but this may be solvable with peer review, ie anybody can look at your modifications and complain loudly if you seem to be cheating.
The point is to allow everybody to use the code, but avoid the "embrace and extend" problem, which is usually just caused by programmer errors, but that Microsoft has even stated is a weapon they plan to use.
Unfortunatley I don't know enough legal stuff to make this clear. What I do with my code is LGPL it with a special "exception" that says that programs that are linked with the code with no modifications to the code are not considered derived works and can do anything they want.
That's not in the GPL. Try again.
Like usual they have completly ignored the fact that the original author can dual license, and are trying to spread the FUD that releasing anything under the GPL means you are giving up all your rights to it.
Read the title again. The word is "Warned", not "warns". Thus it implies that somebody outside the UK Govt said this, not that the government did. The title is accurate.
If it really is your project you can dual-license. You can GPL it and still sell the rights to closed-source derivatives. See TrollTech for details.
The rest of your letter is quite logical and correct. You need to reword this so it does not sound like some kind of anti-GPL rant, but instead expouses the positive aspects of using something else.
Personally I use the LGPL with a modification that allows static linking. The idea is that anybody can use my code for any purpose, but if you alter any of the source or header files you must release those changed files and anything they call. This allows my software to be used by anybody while disallowing the "embrace and extend" problems that are the main reason people GPL stuff.
Thank you for your time.
So a law that says any code made by the government that they release (they can keep the secret nuclear codes secret) must be public domain. Or maybe they can require a BSD-style attribution in any copies. But you can make a logical argument that GPL is not allowed. In addition anything else requiring copyright is also not allowed, they are not allowed to give or sell it to a company that sells it as closed-source or even as open-source but GPL software.
Unfortunatley due to the stupidity of lawmakers, this lobby will confuse production with use and convince them that they cannot *buy* GPL software. If this argument was logical it would say they cannot buy Microsoft software either, but they will snow the lawmakers enough that they will fail to see such obvious conclusions.
If such a rule was done correctly, the only real losing part for GPL software is that the government would not be allowed to "improve" it, because their improvements, in order to be useful, would have to be GPL restricted and this law does not allow that. However it also means that the government would not be allowed to write code that improves Windows either. The government could write public domain modules that work in Linux, and can write public domain programs or libraries that work on either Linux or Windows. Linux is allowed to incorporate those modules into it's own code and even make the result (with some additions) GPL. Microsoft is also allowed to take such modules and put them into it's closed-source product.
This actually sounds quite consistent to me and could work. However everybody has to be shown that the GPL is somewhere between public domain and proprietary. If the GPL is not allowed then everything on one side of it, such as proprietary, must also not be allowed. Microsoft is trying really hard to obfuscate these facts and try to get the "middle" of the range clipped out, even though that is totally illogical.
Then again the RIAA is actually trying (by eventually making recording devices of any kind illegal because they can be used for "piracy") to outlaw the public domain. Odious as this is, it is logical as well, and could be a way to say that "proprietary software is the only legal software" and both GPL and BSD and public domain are all illegal.
I do believe the solution is to have government procurment requirements require open data formats. This will allow there to be competitors (whether open source or closed) to Microsoft. Such requirements only affect government purchases and do not affect the private sector, except to encourage companies to make products with open data formats so they can sell the same product to the government.
Unfortunatley Microsoft has such a lock on things that governments cannot function without the ability to purchase Microsoft's product. So any "require open data format" law will be shot down. Microsoft knows this and for that reason it actually encourages them to close all formats (if say they opened NTFS or SMB and this was enough for some organization to pass such a law, they would lose their Word sales to that organization). So some other way must be found. Somehow making purchases of this software more expensive would seem to be the only way, so a "tax" like this looks like a plausable solution.
Personally I feel this may be a very workable idea, superior to ones that have been done before:
Mandating open source is definately a bad idea because it is anti-competitive. Like it or not, publishing your code as open source allows competitors to take it and work off your efforts, so such a mandate disallows some forms of software development for profit.
Requiring "consideration of open source" just allows a beauracracy to rubber-stamp their purchases of Microsoft software. It helps nothing and may just employ more beauracrats.
Requiring "open data formats" is an excellent idea as it would level the playing field to all companies (both closed and open) instead of the current Microsoft monopoly of being the only one able to write software that can be used to read the data. But it runs into the problem of Microsoft's existing monopoly. Basically a government cannot function if it is not allowed to buy Microsoft products because huge amounts of data is in Microsoft format, Microsoft can use this fact to make any such law impossible to pass, and this may actually discourage them from publishing anything, since any published format would increase the chances of such a law existing.
This tax allows Microsoft software to be purchased so the government can work, but punishes it's use and gives both the buyers and Microsoft some incentive to switch to open formats. It is a usable verision of the "require open data formats" bills.
There is no need to run "two hashes" to reduce false positives. The exact same result is achieved by making a larger MD5 sum.
The GPL does not have mystical powers that override laws, even though Microsoft would like people to believe that and be scared of it. It is simply an exception to normal copyright to allow code to be placed somewhere between copyrighted and public domain. Nobody seems to have any trouble understanding either copyrighted or public domain, but are confused by the idea that there can be a position inbetween them, and that it is impossible for this position to have any more power than either end.
A bigger problem is that changing one character will change the MD5 sum. This obviously makes hiding code copying from this scheme trivial.
The "hash" actually has to be of a similar design as that used by the mail filters to find matching pieces of spam.
How about Bayesian analysis? Feed an (open source) program with lots of code from Linux and BSD that could not possibly be from SCO. Then feed the same program all the code in SCO Unix. Then run the entire present-day source through and let it judge whether it belongs to Linux or SCO. This could be done under a controlled environment where nobody sees the SCO code.
The big missing factor is time, not cash.
I would also estimate that the size of the talent pool working on the Linux and WIndows kernels is about equal, but possibly the time contributed by the Linux people is 1/10 or less since most of these people have other jobs. The fact that Linux works so much better is probably a combination of the fact that 100% of the people working on Linux are interested in working on it (versus I would guess 30% or less at Microsoft), the fact that the number of talented (ie non-idiots) working on linux is perhaps 90% versus maybe 50% at Microsoft.
That still does not balance out, so a lot of credit must go to the open-source methods as being more efficient and productive. Though programmers at Microsoft have access to all the source code, they may not talk freely about it and they don't have tens of thousands of mildly-interested parties looking at their work and perhaps making useful suggestions.
The other plausable reason is that in both projects about 95% of the work is done by maybe 5-10 people, and in both the Microsoft and Linux cases that small group is working full time.
The exact same thing would happen if you released your code public domain. You cannot retrieve that code and make it coyprighted again after telling people they are free to copy it. This is not a problem with the GPL. Your problem is that the GPL does not allow you to distribute your program in a way where you prevent people from copying the code. Therefore your entire argument is just a long-winded way of saying that the GPL does not allow you to write closed-source. Well too bad, I feel really sorry for you. Unfortunatly that is 100% the purpose of the GPL and you will have to live with it.
And don't you dare say you are "forced to grant the rights to your code to anybody" by the GPL. You are not "forced" to do anything, and it is easy to avoid: either don't distribute your program, or figure out how to make your program without using some GPL code. You don't see me complaining because I cannot use Microsoft's code in my programs, but you are basically complaining about exactly the same thing.
An OSS license ... only restricts one single thing: distributing the GPL'd code and derivative works.
No, copyright restricts distributing the GPL'd code and derivative works. The GPL is an exception to copyright, it gives you explicit rules under which you can violate copyright. Without it you can do less with the code.
Many people are confused because most source code they have seen has at the top the text "permission is hereby granted to ..." in it which is also a way to grant an exception to copyright, and usually this exception is much more generous than the GPL, which leads people to think the GPL is restrictive. But compared to nothing at all, both the GPL and such "permission granted" code is generous.
I think the original poster meant that anything that the OSF likes also fulfills the "four freedoms" listed by the FSF. This includes the BSD and public domain licenses. Now there are still differences between the GPL and the BSD or public domain licenses, but those are outside of these "four freedoms". The BSD folks could make a list of "five freedoms" and then say the BSD fulfills these but the GPL does not, but it would not change the fact that both fulfill the four listed by the FSF.
Plan9 seems like a much better approach. It is a "monolithic kernel" in that all the system services are actually provided by a single block of code called the "kernel". The difference from Linux is that the size of the monolithic kernel has been pared down by reducing the number of services to a manageable size (ie apparently there are less than 50 system calls, versus about 500 for Linux and 3000 for Windows).
Now it gets a little vague as to when it becomes a microkernel, but I feel the difference is that it is plausable to call Plan9 directly from a program because the interface is understandable and usable by programmers. You could claim that Linux is a microkernel because it provides file descriptors but that database operations are done in user space, but most people don't do that. I feel the same is true of Plan9.
Absolutely agree that this is the approach that should be done.