My company, DEY Storage Systems, is in the process of creating a new product around the illumos operating system. As you might imagine, this product includes a variety of open and proprietary source code. The product itself is not delivered as a separate executable, but as a complete product. We don't permit our customers to crack it open, both from the sense of protecting our IP, but also to protect our support and release engineering organizations -- our software releases consist only of a single file and we don't supply tools or source for other parties to modify that file.
One of the pieces that we wanted to integrate into the tree is an excellent little piece of software called Zookeeper, produced by the Apache organization. Like illumos, Zookeeper has a nice non-viral copyleft license, which makes it nice for integration into our product.
However, I discovered that as part of our integration, one of my engineers had decided to integrate GNU grep. Why? Because the startup script for Zookeeper apparently makes use of some GNU grep extensions that are not illumos' grep. (The need for us to enhance illumos' grep utility, and the need to teach folks not to rely on non-portable GNU extensions, are both topics for another time.)
Fortunately, I caught this in time. Because that one little "worm" - used simply to support a startup script, could have created a situation where we would have been required to open source our entire product.
Now if you're Richard Stallman -- this is your goal -- all source code is "liberated".
But if you're a business trying to create value, this is actively harmful. Its almost impossible to build a product around GPLv3 code unless the only way you create value is through selling support. (There are a variety of business reasons this is a bad model... with open code, 3rd parties can start "selling support" for your product, possibly giving your product a bad name, and generally leaching off your engineering effort. In the end, without proprietary code, there is vastly reduced economic incentive to innovate -- you can't use innovation in software to gain a competitive advantage when all software is open. I would argue that even the innovation that occurs in Linux exists largely due to economic pressures arising from attempts to compete against proprietary systems. )
So, while the correction here is not big for us -- just a small change to a startup script for now -- the hazard of these viral licenses cannot be understated. If you make your living, as I do, writing software, then you should be very wary of the lure of code carrying the GPLv3 -- its a potential license bomb that may have nasty consequences for you later.
And if you're a producer of open source software -- as I am -- be wary of your dependencies as well. While your code may be licensed under reasonably generous terms that support commercial uses, if your dependencies include things like GPLv3 GNU grep, you may find that your product has less wide acceptance than you intended. Inclusion (by dependency or otherwise) of a GPLv3 product in your own product means that you are willing to abdicate any decisions about the licensing of your own product.
I'll get off my soapbox now...
One of the pieces that we wanted to integrate into the tree is an excellent little piece of software called Zookeeper, produced by the Apache organization. Like illumos, Zookeeper has a nice non-viral copyleft license, which makes it nice for integration into our product.
However, I discovered that as part of our integration, one of my engineers had decided to integrate GNU grep. Why? Because the startup script for Zookeeper apparently makes use of some GNU grep extensions that are not illumos' grep. (The need for us to enhance illumos' grep utility, and the need to teach folks not to rely on non-portable GNU extensions, are both topics for another time.)
Fortunately, I caught this in time. Because that one little "worm" - used simply to support a startup script, could have created a situation where we would have been required to open source our entire product.
Now if you're Richard Stallman -- this is your goal -- all source code is "liberated".
But if you're a business trying to create value, this is actively harmful. Its almost impossible to build a product around GPLv3 code unless the only way you create value is through selling support. (There are a variety of business reasons this is a bad model... with open code, 3rd parties can start "selling support" for your product, possibly giving your product a bad name, and generally leaching off your engineering effort. In the end, without proprietary code, there is vastly reduced economic incentive to innovate -- you can't use innovation in software to gain a competitive advantage when all software is open. I would argue that even the innovation that occurs in Linux exists largely due to economic pressures arising from attempts to compete against proprietary systems. )
So, while the correction here is not big for us -- just a small change to a startup script for now -- the hazard of these viral licenses cannot be understated. If you make your living, as I do, writing software, then you should be very wary of the lure of code carrying the GPLv3 -- its a potential license bomb that may have nasty consequences for you later.
And if you're a producer of open source software -- as I am -- be wary of your dependencies as well. While your code may be licensed under reasonably generous terms that support commercial uses, if your dependencies include things like GPLv3 GNU grep, you may find that your product has less wide acceptance than you intended. Inclusion (by dependency or otherwise) of a GPLv3 product in your own product means that you are willing to abdicate any decisions about the licensing of your own product.
I'll get off my soapbox now...

