How are GPL-compatible licenses like MIT usable in GPL programs without being subject to the copyleft provision?
Short answer: They're not. They'll become subject to the copyleft.
Long answer:
The Wikipedia article on license compatibility has a good section on GPL compatibility:
Many of the most common free software licenses, such as the original MIT/X license, ... are "GPL-compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole).
[emphasis added]
And more explicitly from the FSF FAQ on GPL compatibility:
It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.
And just for edification, here's the FSF's comments on various licenses
FSF's comment on the boost license
This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.
Which means that anything licensed under Boost is easily subsumed by the GPL.
Where it gets tricky
Let's say we have project Foo
licensed under Boost, and project Bar
licensed under GPL and which wants to use Foo
.
Bar+Foo
is allowed since the licenses are compatible, and the release of Bar+Foo
must be GPL as Bar
is GPL. Foo
, by itself and without Bar
or Bar+Foo
, is still available under the Boost license. Said another way, Bar+Foo
has no license impact upon Foo
itself.
The resulting license of the project combination is a forward acting event for the combination only. It is not a retroactive event.
So if someone else wants to take Foo
and do something else with it, they are still free to do so without the copyleft provision of the GPL. However, if they take Bar+Foo
, delete Bar
and only use +Foo
then they are still bound by the terms of the GPL since Bar+Foo
was GPL'd.
Your other question:
From what I've understood of the GPL, as long as the application is used internally there is no obligation to release its code (even if a copy is moved to a controlled subsidiary).
This is directly answered by the FSF GPL FAQ on source distribution
The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.
Wholly owned subsidiaries are considered part of the parent organization, so you would legally be in the clear. FSF would point out that you are violating the spirit of Free Software though.
I can't give legal advice, but I can point you at some starting points:
First, if you are shipping GPL software such as Linux, you cannot escape the obligation to offer source. For a detailed breakdown of your obligations, read A Practical Guide to GPL Compliance. Many companies ship embedded Linux systems while complying with these guidelines.
One important point is that to comply with these licenses you need to know what packages you ship, and be prepared in advance for a source code request. There is no substitute for building a list of all software you plan to distribute, including packages incidentally installed as part of the Linux distribution, and reading each license.
For most of the open-source licenses, commercial use is not a relevant distinction. Item 6 of the Open Source Definition is that an open source license should not discriminate based on field of endeavor. Most open source licenses follow this rule (except for JSON, assuming that evil is a field of endeavor).
The LGPL packages have conflicting interpretations for embedded systems. Under the Webkit interpretation it is sufficient to offer source code, but under the Mono/QT interpretation it is also necessary to provide the end-user with the ability to rebuild the package and install the new version on to the embedded system. Obviously each side has a strong commercial reason for its opinion.
Best Answer
In a word, No. In fact, you can't even distribute it for free without releasing your code. The reason you even have access to all of that nice code is because of the GPL and its requirements.
There are loopholes, such as the method TiVo used to release their version of the Linux kernel while withholding their core-code, but that was one of the things that GPL v3 closed.
Of course, you can always look at the GPL code and use that as a learning tool as you write all of it over from scratch, but there is thing called Time To Market.