0

I'm about to publish a free software written with Qt 4.8 GUI, can I publish the stand-alone version with dlls such as QtCore? Do I have to publish my code also?

If possible, could you make some examples of using GPL license legally?

Thanks very much!

vvofdcx
  • 509
  • 1
  • 6
  • 20
  • You mean free as in beer opposed to free as in freedom? Qt is available under LGPL, so that allows what you're planning, without publishing your code (GPL wouldn't). – Frank Osterfeld Feb 26 '14 at 06:29
  • Thanks for your response. Is Qt 4.8 also under LGPL? Is that mean I don't need to worry about anything about the license even with Qt dlls? The word "free" here means it cost no money to download or use. – vvofdcx Feb 26 '14 at 06:57
  • 4
    I'm voting to close this question as off-topic because **it is about licensing or legal issues**, not programming or software development. [See here](http://meta.stackoverflow.com/a/274964/1402846) for details, and the [help/on-topic] for more. – Kevin Brown-Silva Jun 11 '15 at 23:42

1 Answers1

0

If you want to publish your software using GPL then you have to provide the source code no matter is it free or you charge money for it. In GPL "Free" doesn't mean cost free but freedom to change the code etc.

In your case if you don't wish to give away your source code, then you you should use LGPL license. Qt is available under LGPL license too. The only restriction it puts is that you cannot statically link with Qt libs. You ought to use dlls as you are using. And if you only use Qt dlls then you can even charge money for your application.

http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL

You can use LGPL library in your commercial, closed source, non-free/free application provided you link to the LGPL library dynamically (using .dlls, .so etc.).

adnan kamili
  • 8,967
  • 7
  • 65
  • 125
  • Could you show quote from LGPL, where static linkage is disabled? – Dmitry Sazonov Feb 26 '14 at 09:18
  • @DmitrySazonov Here is the source - http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License#Differences_from_the_GPL – adnan kamili Feb 26 '14 at 09:30
  • I never thought you could sell a GPL application. Does it mean I could sell an app with source code and give the app+source only to those, who paid me? Or do I need to provide the sources to everyone? – kolenda Feb 26 '14 at 10:08
  • @kolenda Legally, you can sell a GPL application but that won't make any sense as you will have to provide src if it can be downloaded from internet, to every one. GPL applies when we distribute. If you don't distribute to public on Internet you can retain the src even in GPL as Google does in Linux. – adnan kamili Feb 26 '14 at 10:41
  • So what if I distribute the app via WWW to my registered users only? E.g. if some customer pays me - I give him an account. From what you say it means I can still sell the GPL app+src, even using other GPL libs? The customer will still be able to modify the app. – kolenda Feb 26 '14 at 11:10
  • @adnan kamili did you read your link? - `...a statically linked library is allowed if either source code or linkable object files are provided.` – Dmitry Sazonov Feb 26 '14 at 11:48
  • @DmitrySazonov Perhaps you didn't get me, I meant static linking is not allowed if you wish to retain the source code, that is what the questioner wanted to know. If you statically link in LGPL then you have to provide the source code. – adnan kamili Feb 26 '14 at 13:41
  • Either == source code OR object files – Dmitry Sazonov Feb 26 '14 at 13:46
  • 2
    @kolenda yes you can http://en.wikipedia.org/wiki/GNU_General_Public_License#Terms_and_conditions but it won't stop your customer from reselling it to someone else or making it public so that others can use it for free. – adnan kamili Feb 26 '14 at 13:51
  • @DmitrySazonov give this a read http://www.gnu.org/copyleft/lesser.html#section4 thoroughly – adnan kamili Feb 26 '14 at 13:53
  • @adnankamili I never thought of it this way, thanks for clarification, +1 from me. – kolenda Feb 26 '14 at 14:02
  • 1
    This is yet another LGPL FUD post. You *do not need to link dynamically!* You only need to **let your customer re-link**. That merely means that you must, on request, provide the object files or, better yet, static library, of your compiled code, so that it can be statically relinked with Qt. That's all. In practice, this means that you need to have two projects set up: one to generate a static library out of your code, another to link that static library, statically, with Qt, to produce the application. Subject to [this caveat with MSVC](http://stackoverflow.com/a/18704890/1329652). – Kuba hasn't forgotten Monica Feb 26 '14 at 15:57