I finally have my first Qt application running in release mode. I'd like to release the source code, but I'm not sure what I'm allowed to do license-wise. I'm pretty sure I chose the LGPL version when I installed Qt onto my Windows machine I'm currently working on. I can't really remember since I've installed/uninstalled Qt so many times across so many computers/VMs and OSes between home and work in the past month. I've tried to wrap my head around what I'm allowed to do, but still a little unclear. Is there a way where I can check which license I selected?
I'm not completely sure how to get my build to run on its own outside of Qt Creator. From what I could gather, the simplest approach would be to include all of the required Qt DLLs necessary for running my application. I took the trial-and-error approach of running my app, and getting a error message box telling me each DLLs that was missing. I went to my Qt's install directory, and copied the following DLLs from that directory to my application executable's location:
That said, all of those DLLs would need to be redistributed with my executable for it to run. Is this legal for me to do? Have I done everything correctly so far for Windows builds?
Hi and welcome to devnet,
about deployment you can follow this documentation.
about license, you have to decide the license to choose for your application, here you find information about Qt license model and also some suggestions about how to choose the right license
Sorry for the late reply. I've had little time between work and family to sit down, and research this topic further. I'm familiar with the links you've posted above, but I'm a serious mess when it comes to understanding licensing. I can't seem to wrap my head around what these limit with regards to my project's requirements as I'm using a bunch of source code from a bunch of separate software projects.
For example, the two projects I've currently developed with Qt are intended to be open source. Thing is, they use other 3rd party libraries separate from Qt: GLEW, freetype2, FreeImage. These libraries all use GPL, which is an option with Qt (along with LGPL). I'm assuming I don't have any issues redistributing the library binaries within my application, correct? Each project contains their own local include/lib directories for these libraries' header files, and pre-built binaries. I provide variants for Windows and OS X.
On top of that, each I've written some simple classes to handle mundane things like math/graphics types and operations useful in developing 3D graphics applications as well as simple OpenGL boilerplate code that's intended to be used across multiple projects for multiple purposes outside of Qt. All of this source code I've written is meant to be used in a direct source nature instead of being built and linked as a separate library. That way, changes can be made on a project-to-project basis as needed. I also have have separate, private repo just to store these random plug-n-play header/source files that serve as a baseline standard that I'll refine and improve as I continue to use these files in different use-cases. I'd like to provide this source under the MIT license as a source code entity separate from these Qt projects, as they truly aren't meant to be proprietary to anything. I want them to be usable for both commercial and open source projects for everyone with the least amount of limitations. I believe the MIT license provides that. Is this possible? If so, would I just provide the MIT header at the beginning of every header/source file I produce?
As far as deployment goes, I've been trying to statically link Qt against my project, and it hasn't worked out for me on Windows, Linux or OS X. I just uninstalled, and re-downloaded the OS X online installer of Qt5. I went through the installation steps, but it never gave me a selection as to which license I'd like to use. It just gave me an end-user agreement. I continued with the installation process, and the installer said it was grabbing the source packages from a qt-enterprise-src URL... Thing is, I don't want anything to do with an Enterprise build/license, and I'm not sure if I was getting the source, so I could configure Qt as a static build...
Am I on the right track at all?