Unsolved Understanding QT OpenSource Licenses
-
Hey guys I am trying to wrap my head around the two open source license options available in QT.
I am specifically interested int he GPL because I like the data visualization and charts.
I will say what I understand of the two in hopes that I get a correction if I am wrong.
From what I understand LGPL I am better off doing dynamic linking so that I can provide the libraries that I use from QT with my project, with this license I am not required to distribute my source code for my application. The only code I must provide are the libraries that I use from QT, especially in the event of me modifying them.
For GPL the above is true about sharing library source but now I must actually release my application source code as well.
What confuses me is can I make money off my application still? Who needs to have access to my source code? The person I made it for or any random joe who comes asking? What would I do about private information like sql server passwords and such?
For now I would like to use QT in place of LabVIEW to run equipment and display data, I won't be selling it but I do get paid to write the code by the company as I am employed by them to do such (not a contractor is what I am getting at). Is this a legitimate use of the GPL QT license? Honestly, I am sure down the road if they OK me using QT instead of LV (which they seem to love dearly) they would likely pay for the commercial license. However I need to show them that C++ is a viable option for what they want to achieve.
Cheers.
Shawn -
@MrShawn You can make money even with GPL software. But for commercial software LGPL is better suited.
"What would I do about private information like sql server passwords and such?" - I hope you do NOT store such information in your source code?! Passwords in binaries can easily be extracted! -
Thanks for the response. So I would be good to use QT for programs in house then?
As far as the password goes, I honestly and not sure how to work that and where I can store it. How the heck else can I log in to things?
-
@MrShawn said in Understanding QT OpenSource Licenses:
can I make money off my application still?
From https://www.gnu.org/licenses/gpl-faq.en.html#DoesTheGPLAllowMoney :
Does the GPL allow me to sell copies of the program for money? Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)
From https://www.gnu.org/licenses/gpl-faq.en.html#DoesTheGPLRequireAvailabilityToPublic :
If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.
Who needs to have access to my source code?
From https://www.gnu.org/licenses/gpl-faq.en.html#GPLRequireSourcePostedPublic :
Does the GPL require that source code of modified versions be posted to the public?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.
But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.
Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you. -
@MrShawn said in Understanding QT OpenSource Licenses:
The only code I must provide are the libraries that I use from QT, especially in the event of me modifying them.
As I understand, using the LGPL license if you modify source code of Qt framework you MUST also make your source code available as well
-
@Pablo-J-Rogina AFAIK, no, not your application/library code. Only the modifications you made to Qt.
-
@MrShawn said in Understanding QT OpenSource Licenses:
So I would be good to use QT for programs in house then?
Yes.
With the GPL and LGPL, the clauses that say "you must open up your source code" only apply to people who have access to your software. If Random Joe doesn't have access to your GPL application, then you don't need to give him access to your source code either.
[Insert the usual I-am-not-a-lawyer disclaimer here]
As far as the password goes, I honestly and not sure how to work that and where I can store it. How the heck else can I log in to things?
- https://security.stackexchange.com/questions/5051/how-to-protect-ftp-account-information-in-the-source-code-of-a-program
- https://security.stackexchange.com/questions/52693/how-can-one-secure-a-password-key-in-source-code
Short answer: Do not store the password anywhere on your workstation -- not in your source code, not in a config file. Instead, type in your password by hand each time you run the application.
Caveat: Yes, I know this is tedious. If it is a private app that you only run from your PC and the PC is not shared, I won't fault you for storing your password on your PC to enable easy auto-login.
Caveat to the caveat: Just because I won't fault you doesn't mean your employer won't. Make sure that even if someone breaks into your PC and steals your password, the damage they can do is minimal. If the potential damage is significant, stick to typing the password by hand.