[Resolved] [Q] Closed source application using GPL source code - General Questions and Answers

Hey devs, lawyers and people who know about GPL
I have a question about using GPL'ed source code in a closed source application.
Another question has been easily answered in the news comments, but as libav/ffmpeg is LGPL and has a nice legal.html it was solved quickly.
Here is what it's all about:
- I'm going to use Linux kernel drivers code (several (ten-)thousand lines of code across 10+ files) for several USB devices using JNI and the Android USB host interface
- I'm writing a wrapper / "glue" library so almost no changes have to be made to the GPL code (to keep compatibility with newer versions of the GPL code)
Now my question is: Can I link all the *.o in one shared library or do I have to separate GPL code and wrapper (may be closed source) code into different shared libraries (wrapper may still link to GPL code).
If this is illegal, does my wrapper code have to be GPL'ed as well, because it links against GPL code?
And how much / what of my application has to be GPL'ed since it uses GPL'ed code in any way?
As you can see I'm a bit confused about all the GPL stuff and don't want to get sued or blamed for violating the GPL.
PS: I'm still not sure if I may open source the app or not, but in case I don't want or can't to, I want to be legal at least.

I've done some more research and found out that it is not possible to link closed source directly to GPL'ed code, BUT it is possible to link against LGPL which itself is compatible with the GPL.
So in other words: The wrapper library itself will be open-sourced under the LGPL but the Android application, where most of the work will be done (UI, services, device handling, interfaces, etc.), may be still closed source.
Does this work?

chrulri said:
Does this work?
Click to expand...
Click to collapse
No, it doesn't. Read me. Unless one will pipe all the data flow through command line interface where the GPL'ed binary is running in a separated process (e.g. child process). Well even this is still a "slippery" path, concerning legal issues.
I guess I'll just GPL my app and hope for donations once it's published.

Related

[Q] To use an open source license or not

Alright, so I'm developing an app at the moment. I want to release the source somewhere like github, and I'm wondering if I should include an open source license like the GPLv3 just because it has an "official" feel. Should I do this, or not?
You should. If you don't, whoever will be able to take your code and publish as his. The GNU GPL forbids things like this (legally speaking): if you use part or an entire GPL'd code, you have to publish (at least) the opensource code used, including the modifications, and give credits to the original author.
@smackdown85146
This depends entirely on you - license is for you, not for anyone else. If you don't want to license your work, then this is perfectly ok.
And if you choose to license it, then you should consider whether you want to copyleft it (GPL) or make it fully free (Apache, BSD, etc.). GPL is open, but it isn't free. Most of Android works, including Android itself, use Apache license, not GPL. Me too
elegos said:
You should. If you don't, whoever will be able to take your code and publish as his.
Click to expand...
Click to collapse
I think if you publish your source code without a license then it would be automatically copyrighted and nobody will be able to use it.
jgittins said:
I think if you publish your source code without a license then it would be automatically copyrighted and nobody will be able to use it.
Click to expand...
Click to collapse
So why to license your code? ;-) Unlicensed code belongs to no one, anyone could do anything with it.

[Q] Locked Bootloaders, Android, and the GPL

First off, I didn't know where to put this. I was hoping for a generic Android forum, but General seems to be as close as I can get. This is a device independent question about Android, and of a more philosophical nature. Although there may be a practical solution in here. I've flagged this as a question, and I have a lot of them here (IANAL) but I'm hoping for some good discussion as well.
Bear with me as a say some very obvious things, I want people to follow my train of thought from the beginning. I'm also dead tired and don't want to take any of my presuppositions for granted.
It seems to me that locking bootloader is done by companies to prevent people from modifying the OS (DuH!). Yet is also seems to me that the purpose of having an open source OS is for that OS to be freely modifiable. So when a company locks the bootloader on the hardware they have violated the intent of the open source OS.
Now I know that the intent of a contract or license may not be enforceable in a court of law, and few will risk the money to attempt to resolve this through litigation.
Given the above, can or should the GPL be modified to take the unstated intent of allowing modification to code by anyone and "hard code" that intent directly into the GPL?
It is my assumption that such a change to the GPL would not be retroactive, but rather would apply to newer releases of the Linux kernel. So what would the fallout from a change of this nature be? Could it kill Android as Google is forced by the rest of the OHSA not to continue kernel development past a certain point to avoid having the revised GPL ruin their attempts to proprietize Android? Could the GPL be changed to be in effect from a certain date onward rather than from a certain revision on?
Col.Kernel said:
First off, I didn't know where to put this. I was hoping for a generic Android forum, but General seems to be as close as I can get. This is a device independent question about Android, and of a more philosophical nature. Although there may be a practical solution in here. I've flagged this as a question, and I have a lot of them here (IANAL) but I'm hoping for some good discussion as well.
Bear with me as a say some very obvious things, I want people to follow my train of thought from the beginning. I'm also dead tired and don't want to take any of my presuppositions for granted.
It seems to me that locking bootloader is done by companies to prevent people from modifying the OS (DuH!). Yet is also seems to me that the purpose of having an open source OS is for that OS to be freely modifiable. So when a company locks the bootloader on the hardware they have violated the intent of the open source OS.
Now I know that the intent of a contract or license may not be enforceable in a court of law, and few will risk the money to attempt to resolve this through litigation.
Given the above, can or should the GPL be modified to take the unstated intent of allowing modification to code by anyone and "hard code" that intent directly into the GPL?
It is my assumption that such a change to the GPL would not be retroactive, but rather would apply to newer releases of the Linux kernel. So what would the fallout from a change of this nature be? Could it kill Android as Google is forced by the rest of the OHSA not to continue kernel development past a certain point to avoid having the revised GPL ruin their attempts to proprietize Android? Could the GPL be changed to be in effect from a certain date onward rather than from a certain revision on?
Click to expand...
Click to collapse
Only the kernel is covered by gpl and that only states that you have to post the source code for the kernel if it has been modified. The rest of the OS is not covered by the GPL and neither is the hardware. As long as they give you the source code they do not have to allow the code to be changed on their device.
Col.Kernel said:
Given the above, can or should the GPL be modified to take the unstated intent of allowing modification to code by anyone and "hard code" that intent directly into the GPL?
Click to expand...
Click to collapse
This already happened. It's called GPLv3. However, the Linux kernel is GPLv2 and will stay that way. Not only would moving to GPLv3 be extremely difficult because of the large number of contributors to the kernel, the main developers don't want it. Linus Torvarlds consciously and deliberately made the kernel GPLv2-only in 2000 or so, a decision he still firmly stands by.
Also, the GPLv3 already has fallouts like what you state. For example, Apple did not go beyond GCC 4.2 (the last GPLv2 version, newer versions of GCC are GPLv3) and is instead financing the development of Clang.
The GPLv3 would not so much kill Android (Google would transition to a new kernel), it could kill Linux, as companies would potentially be moving away from it, similarly to how Apple is moving from GCC to Clang. Or, quite likely, there would be a fork of the kernel.
Please use the Q&A Forum for questions Thanks
Moving to Q&A

How to pick an open source license

You've made the decision to release your code as "open source". Ok, what does that mean, what is an open source license, and how do you pick the right one? This question comes up all the time so I thought I'd write up a simple decision tree to try to explain the choices.Many people use GPL without realizing the implications or understanding the other options. This isn't legal advice, and I'm not a lawyer, and I'm probably over-simplifying some of the points, but I hope you find it helpful.
First of all, if you write some code, it's your code and you get to decide how other people can use it. Period. Nobody but you can say how your code can be used, either by putting restrictions on it or taking them off, without your permission. That's a very important point to keep in mind while reading this article.
The second point to keep in mind is that nobody but you can even use your code unless you explicitly give them permission. Another way of saying this is that all source code is closed and proprietary and off limits until you, the author, open it.
Note: The text of all the licenses mentioned here can be found at opensource.org.
Decision 1: Do you want to relinquish any control over how your code is used and distributed?
If yes, then don't copyright it, and don't license it. Put it in the public domain, and you're done. This is a good choice for examples, templates, and other illustrative code where the whole point is that you want everybody to feel free to use what you've written. [Alert readers pointed out that "public domain" is is not a good choice because in many jurisdictions you can't give up your copyright. Use a liberal license like MIT/BSD instead. -22jun/ebb] Example: code listings in a book or article.
If no, then Copyright the code (paste copyright notices all over it) and continue with decision 2.
Hint: Just to make sure your intent is clear, either put in explicit copyright notices, or put in explicit notices that the code is in the public domain. Copyright is how you retain control. Without a copyright, there is no control. [Technically the notices might not be necessary but they don't hurt and are still recommended. -22jun/ebb]
Decision 2: Do you want to allow people to use your code in non open-source programs?
If yes, then continue to decision 3.
If no, then release your code under the GPL, a restrictive "free (libre) software" license that actively promotes user choice at the expense of direct commercial interests. For the most part, GPL'd code can only be used with other GPL'd code, and in fact if you start using [and distributing -22jun/ebb] some GPL code in a program you wrote then you either have to release your program under GPL as well or quit using that code. This is why GPL is sometimes described as "viral". Examples: Emacs, Linux kernel.
Hint: Don't take this choice unless you really mean it. Many people use GPL without realizing the implications or understanding the other options, and thus lock the code away from a whole segment of potential users, so please read the rest of the choices first.
Decision 3: If somebody uses your code in their program and sells their program for money, do you want some of that money?
If yes, then you have two choices. The first choice (3a) is not to release it as open source at all, i.e., use closed source and you're done. This would preclude anyone from using your code in free (no cost) packages. And it would only allow people to use your code in commercial programs if they came to your first and worked out a deal for a commercial license. Note that even if the source is "closed" you can give permission if you like for certain people to have access to the source and use it in limited ways. Example: Microsoft Windows, Sun Java (sort of).
The second choice (3b) is dual license. I'll talk about licenses more in a moment, but dual license just means you give permission for people to use your code under two or more licenses. You pick one license (probably GPL) for free (no cost) programs, and one for commercial ($$$) programs. This is a good choice if you're trying to make a living off licensing fees for the code itself. Examples: MySQL, JBoss, SleepyCat. Continue to decision 4.
If no, then give permission for others to use your code under one or more "commercial friendly" licenses. This is a good choice if you want your code to get into as many hands as possible and either you don't care about the money or you plan to make money in other ways, for example by selling your own programs that use the code or from consulting or support. Examples: Apache HTTPD, Eclipse, Firefox. Continue to decision 4.
Decision 4: If somebody uses [and distributes -22jun/ebb] your code and improves it (fixes bugs or adds features) do you want to make them give you the improvements back so you can use them too?
If yes, then use a "reciprocal" license. Any modifications to your code need to be made available under the same licensing terms as your original code. This is useful if you're worried somebody will take your code and go off on their own private "fork". Examples: Eclipse (EPL), Solaris (CDDL), and Firefox (MPL). Done.
If no, then use a non-reciprocal license. Often times the people using your code will send back improvements anyway, especially if you have a history of frequent releases and they get tired of having to re-merge in their changes every time. This is the most wide open type of license so it will get you the most exposure and users, but it can also relegate the original writer(s) to the sidelines. Example: FreeBSD (BSD). Done.
In a follow-up article I'll explain how the most commonly used open source licenses fall in the categories like "commercial friendly" and "reciprocal", and address any concerns raised by commenters. So whether you agree or disagree with my points above please give me some feedback in the talkback section.

Qualcomm Takes Down 100+ GitHub Repositories With DMCA Notice

Source: Slashdot
Qualcomm has forced GitHub to remove over 100 repositories due to "unauthorized publication, disclosure, and copying of highly sensitive, confidential, trade secret, and copyright-protected documents." Among the repositories taken down were for CyanogenMod and Sony Xperia. The issue though is that these "highly sensitive" and "confidential" files are Linux kernel code and reference/sample code files that can be easily found elsewhere, including the Android kernel, but GitHub has complied with Qualcomm's DMCA request.
Click to expand...
Click to collapse
That's not good.
Umm... Wow
Then, there is this...http://www.androidpolice.com/2014/0...some-belonging-to-cyanogen-sony-and-qualcomm/

Question Tb-j716f GPL source legalese

So, I was wondering if this would be of any help in attempting to get source for the xiaoxin pad pro 2021. I don't know enough about the specifics, but this is under settings>about tab>open source.
If this is not relevant to our kernel dilemma, feel free to delete this thread. I just saw it t on the tablet that Lenovo does everything in it's power to distance itself from, but right in the stock Zui 14 firmware this is there in black and white.
87 1:48
<Open source information
Your mobile device may include software made publicly available by Lenovo, including software licensed under the General Public License and/or the Lesser General Public License (the "opensource software").
You may obtain the corresponding machine-readable copy for any such open source software licensed under the General Public License and/or the Lesser General Public License (or any other license requiring us to make a written offer to provide corresponding source code to you) from Lenovo for a period of three years without charge except for the cost of media, shipping, and handling, upon written request to Lenovo. This offer is valid to anyone in receipt of this mobile device. You may send your request in writing to the address below accompanied by a check or money order for $5 to:
Lenovo Legal Department
Attn: Open Source Team / Source Code Requests 8001 Development Dr.
Morrisville, NC 27560
Please include "ZUI version of this mobile device as part of your request. Be sure to provide a return address.
The open source software is distributed in hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See for example the GNU General Public License and/or the Lesser General Public License for more information.
To view additional information regarding licenses, acknowledgments and required copyright notices for the open source software used in your Lenovo mobile device, go to "Open source licenses" and/or "Additional Open source licenses" within the "Settings" menu on your mobile device. This mobile device may include certain pre-installed application programs or pre-configured links for downloading application
programs published by parties other than Lenovo. Such third party application programs may include open source software made
publicly available by the respective publishers of those application programs. You may obtain the corresponding source code for
any such open source software directly from the publisher of the applicable application program, to the extent permitted under the
relevant open source software license agreement. Additional Information is provided by the publisher of each application program
within the menu structure of its application program.
Sadly, due to the nasty market and legal environment in China, some Chinese vendors consistently do not follow the GPL open source agreement.
Besides, they also have interface: TB-J716F is only for Chinese customers, It is only natural for Chinese manufactors ignore Chinese users.
I myself am Chinese and I have requested many times through internal channels, but no response of course.
That seemed to be my impression as well, but the fact they specifically call out Zui and it's a US address made me wonder.
prozack1983 said:
So, I was wondering if this would be of any help in attempting to get source for the xiaoxin pad pro 2021. I don't know enough about the specifics, but this is under settings>about tab>open source.
If this is not relevant to our kernel dilemma, feel free to delete this thread. I just saw it t on the tablet that Lenovo does everything in it's power to distance itself from, but right in the stock Zui 14 firmware this is there in black and white.
87 1:48
<Open source information
Your mobile device may include software made publicly available by Lenovo, including software licensed under the General Public License and/or the Lesser General Public License (the "opensource software").
You may obtain the corresponding machine-readable copy for any such open source software licensed under the General Public License and/or the Lesser General Public License (or any other license requiring us to make a written offer to provide corresponding source code to you) from Lenovo for a period of three years without charge except for the cost of media, shipping, and handling, upon written request to Lenovo. This offer is valid to anyone in receipt of this mobile device. You may send your request in writing to the address below accompanied by a check or money order for $5 to:
Lenovo Legal Department
Attn: Open Source Team / Source Code Requests 8001 Development Dr.
Morrisville, NC 27560
Please include "ZUI version of this mobile device as part of your request. Be sure to provide a return address.
The open source software is distributed in hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See for example the GNU General Public License and/or the Lesser General Public License for more information.
To view additional information regarding licenses, acknowledgments and required copyright notices for the open source software used in your Lenovo mobile device, go to "Open source licenses" and/or "Additional Open source licenses" within the "Settings" menu on your mobile device. This mobile device may include certain pre-installed application programs or pre-configured links for downloading application
programs published by parties other than Lenovo. Such third party application programs may include open source software made
publicly available by the respective publishers of those application programs. You may obtain the corresponding source code for
any such open source software directly from the publisher of the applicable application program, to the extent permitted under the
relevant open source software license agreement. Additional Information is provided by the publisher of each application program
within the menu structure of its application program.
Click to expand...
Click to collapse
The only way out...

Categories

Resources