You can charge any price you
like, and you’re only obligated to pass on the code to those you sold
or gave the binaries to.
Well, no. Once you ship a binary to even a single person (outside
your company), that person is free under the GPL license to make and
share as many copies of the binary as they like. Each eventual
recipient has the right to come back to you to get the source code.
Each binary must come with an offer that says how to get the matching
source. Your recipients are free to reproduce that offer for their
recipients.
So, you are obligated to provide source code that matches each binary
version that you ship, to anyone who has the binary (not just your
own customers), for three years or the support lifetime of the binary
product, whichever is longer, and for a low cost. See paragraph 6(b)
of The GNU General Public License v3.0 - GNU Project - Free Software Foundation .
There’s a FAQ on the GNU Public License at that same web page.
But answer me this: Why did we (the gnuradio experts)
select a license that does not provide a clear answer to Matt’s question?
I’m one of the originators of the GNU Radio project. We picked the GPL
because it protects the freedom of the code (and the code’s users), and
encourages a community to form around the code.
By then I’d already started and sold off one company that made tons of
money by selling and supporting GPL-licensed and other free software.
I really didn’t see any problem with making commercial gear that used
GNU Radio under the GPL. There are tons of network routers and PDAs
and such that ship with GNU/Linux inside – much of which is also
GPL-licensed. Those companies seem to be able to read the license,
figure it out, and make money.
You can make money with free software by selling your expertise; by
selling convenience; by selling support; by selling quality assurance;
by selling documentation; by selling hardware that works with free
software (like Ettus R. does); and in other ways. You just
can’t make money by preventing people from seeing your code, freely
sharing your code, and improving it if they want to.
When we started GNU Radio, the only working software-defined radio
code was proprietary. The opportunity was there to build a
community-maintained SDR code base, that everyone would be free to
experiment with, share, improve, or commercialize. We did it (thanks,
everybody)! Eric and I could’ve built another proprietary SDR
package, but then you wouldn’t all be here having this conversation.
John
(PS: Most of the proprietary software I’ve seen has even more
draconian and unreadable licenses than the free software.)