6 ms·
I am confused by QT licensing model. What are limitation of free QT plan used by commercial (downloadable) application?
by dejv 10y ago
I am confused by QT licensing model. What are limitation of free QT plan used by commercial (downloadable) application?
- brcha 10y agoQt is LGPL. So there are no limitations unless you make changes to the Qt library (which you probably won't do). If you do make changes, though, then you would have to release them under LGPL license. So, I think there are absolutely no limitations to using Qt LGPL in a commercial application. All you get from the commercial license is support. Note: I'm not a lawyer, don't hang me if you get sued or something. But I do think I'm right about this.
- chrisseaton 10y ago> there are no limitations unless you make changes to the Qt library I thought you were required to allow linking to a newer or modified version of a LGPL library? So one limitation is you have to either dynamically link or provide a mechanism to relink.
- purplesinha 10y agoIANAL, but this requirement is the reason I stopped using Qt for my own projects. Those terms would seem to mean anything you write using Qt can't be deployed on a closed platform. Tons of people use LGPLd code on iOS and Android (stores like Play and Amazon) though and I think most users and developers are ignorant of the relinking requirement. I didn't want to risk it.
- rsynnott 10y agoHere's an old example of how it can (apparently; presumably according to Google's lawyers) be done for iOS: https://news.ycombinator.com/item?id=4302517 https://news.ycombinator.com/item?id=4302517 Google has now killed off Sparrow entirely, but they used to make it available for download so that an end-user could in principle re-link it, to comply with the LGPL.
- ChajusSaib 10y agoSo if I were to statically link my application but release the object files and let user's re-compile it with another version of the library then that would satisfy the LGPL license? If so I think I might be headed back to Qt.
- chrisseaton 10y agoOr just dynamically link.
- ChajusSaib 10y agoI'm asking for iOS which won't allow it.
- paxcoder 10y agoSeems so: https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynami... It would appear that once again the FUD is unjustified, and in reality GNU/SFLC licenses well made
- deleted 10y ago[deleted]
- rectang 10y agoThe Apache Software Foundation does not allow its projects to have mandatory LGPL dependencies for this reason: it would become impossible to bundle the Apache product plus its dependencies into a package that forbids modification, either through technical or licensing restrictions. This linking restriction is not a part of other product-scoped copyleft licenses like the MPL and the EPL.
- chronial 10y ago> Those terms would seem to mean anything you write using Qt can't be deployed on a closed platform. This sentence is missing a "closed source". If you license your application under GPL, you will have none of these problems.
- brcha 10y agoYes, if you link dynamically, you are generally okay with just sending your executables. If you link statically, you also have to make your object code available for relinking if needed. But that generally comes down to doing something like "ar q libMyApp.a *.o" and then the user would make the app with "gcc -o MyApp libMyApp.a -lQtWhatever". If you distribute as some package (like .apk for android), you'd have to make it possible for user to change the library. Simply allowing users to download .apk files would make it work, since they can unzip them, change the library and rezip them back. So, I wouldn't really call those "limitations". Just pesky things you have to do if making a commercial app with lgpl lib. Oh, and there is no requirement to link with a newer version of the library, to the best of my knowledge. That's generally impossible since newer versions might (and do) deprecate features that were available in the older versions.
- Matthias247 10y agoIt's also in the meantime LGPLv3 - at least for certain QT components, but the system is not easy to understand. The v3 requirements add that if you distribute an application (or device) with it, you have to provide the user with a way to update the linked QT library with a different version that he provides himself.
- slavik81 10y agoThe open source version of Qt is LGPL, which basically means you may use it in a proprietary application if you use dynamic linking. If you link statically or copy any of its code, then your program must be free software (GPL). If you pay for a commercial license, you can link statically without restriction. The commercial version is also necessary for locked-down platforms like iOS where the dynamic linking can't be changed by the end user of the software. IANAL, and there are a few details I glossed over, but that's the simple version.
- Nokinside 10y agoEither dynamic linking or provide object files that can be linked with the library. In essence, you can use it in proprietary application as long as you don't modify the library and you provide means to switch to different version of the library.
- donatj 10y agoIf I statically link is my code inherintly LGPL or could I still license MIT?
- int_19h 10y agoIf LGPL was "viral" even when linking dynamically, there would be no point in it (it'd be like GPL). So, yes. You can use MIT. Of course, the dynamic dependency still remains LGPL.
- kuschku 10y agoYes and no. LGPL only is non-viral if the end user can trivially replace the linked library with their own version.
- hurd 10y ago"If you link statically or copy any of its code, then your program must be free software (GPL)." I don't the first part is true (the second one is though). https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDynamic https://www.gnu.org/licenses/gpl-faq.en.html#LGPLStaticVsDyn...
- simfoo 10y agoIt seems the obscure qt.io Downloads page really isn't helping in this regard