I just listened to a great talk by SAMBA’s Jeremy Allison. It’s about why SAMBA switched from the GPLv2 to the GPLv3.
One of the items that struck me was why SAMBA went with the GPLv2 originally when the project was first founded. There were many SMB vendors that didn’t want to contribute their secret sauce to public knowledge. Once they figured out a part of the proprietary SMB protocol they didn’t want to share it because they would lose their competitive advantage, and not gain anything. The SAMBA project through the GPLv2 allowed them to give away their competitive advantage to others who had given away theirs. If the SAMBA project has been a non-copyleft license the other vendors could just take it and add their special sauce crushing the competition.
It has occurred to me that there is a market very similar to this with many vendors each having their own special sauce. I am referring to OpenGL graphics, specifically Mesa in the place of SAMBA. In this case the protocol (OpenGL) is open, but many of the implementations are far from it and likely contain many software optimizations and even some special features. Mesa is licenses under the MIT license, does anyone else think that they might do better under the GPLv2/v3?
As far as I can tell, the biggest threat to many vendors open sourcing their code, is they will give their competitors free access to their optimizations and awesome features. The GPL requires it stay under the GPL, so nVidia doesn’t need to be worried about AMD taking some of their optimizations and putting them in AMD’s proprietary Catalyst driver. This also translates to patents; S3TC (which is an essential patent we don’t have in free software) would only need to make itself available to GPLv3 (in this case) software as opposed to everyone under the MIT license.