Licensing for discontinued Qt Solutions projects
-
Hi, I'd like to use QtToolBarDialog in my project. I notice Qt Solutions are no more, though the source for some of them has been put in the qt.gitorious.org repository. The .h and .cpp files for the projects in that repository have been modified to reflect the more flexible BSD licensing. However, QtToolBarDialog is not one of the projects that was moved there.
I see that the blog post announcing the discontinuing of Qt Solutions (http://blog.qt.nokia.com/2010/11/09/qt-4-7-1-and-qt-mobility-1-1-0-released/) says, "The remaining components will be removed from Qt’s product portfolio." So what does this mean, licensing-wise, if I want to use that code? The source files from older releases will still contain the Commercial/LGPL/GPL boilerplate. If I make source modifications, how will I fulfill the LGPL requirement to share those changes, if the project is no longer in Qt's "portfolio"?
I notice in the case of QtToolBarDialog specifically that an incarnation of it exists in the main source (under tools/shared). However, it contains a warning saying "This file is not part of the Qt API. It exists for the convenience of Qt Designer. This header file may change from version to version without notice, or even be removed. We mean it." So referencing it directly doesn't seem wise from a perspective of code maintainability. Again though the most suitable license (for me) in the files is LGPL; is there any way I can copy and paste the majority of the code in these files into my own project, and somehow make it legit?
Thanks for any thoughts.
-
This is a rather interesting situation actually, I believe I have a means of how this can be resolved while still being able to comply with the LGPL license terms in your application. Before I can give details on this I need to get this checked with our legal team so I will do that and get back to you as soon as I can with a definitive answer.
-
I have now received confirmation from the legal team about this so the following approach should hopefully give you what you are after.
- Copy the code for QtToolBarDialog and make a library based project using it.
- Modify the code so that it can be built as a library (this would include exporting the symbols so that they can be found at link time)
- Now your application can dynamically link against this library and subsequently means your application can create instances of QtToolBarDialog
In order to comply with the LGPL now you need to distribute the original QtToolBarDialog code and a separate patch with your modifications to it so that it could be built as a library. This enables users to create their own compatible version of the library using QtToolBarDialog and to drop in a replacement of it to use in your application as per the terms of the LGPL.
If you need further clarification on this then please let me know :)
-
[quote author="AndyS" date="1298446112"]I have now received confirmation from the legal team about this so the following approach should hopefully give you what you are after.
- Copy the code for QtToolBarDialog and make a library based project using it.
- Modify the code so that it can be built as a library (this would include exporting the symbols so that they can be found at link time)
- Now your application can dynamically link against this library and subsequently means your application can create instances of QtToolBarDialog
In order to comply with the LGPL now you need to distribute the original QtToolBarDialog code and a separate patch with your modifications to it so that it could be built as a library. This enables users to create their own compatible version of the library using QtToolBarDialog and to drop in a replacement of it to use in your application as per the terms of the LGPL.
If you need further clarification on this then please let me know :) [/quote]
IANAL, but...
Sounds like this would certainly satisfy the LGPL requirements, but it also sounds like you're asking too much. Why would you require that the sources be distributed in the form of the original code + a patch? Isn't providing the modified code itself enough to satisfy the LGPL requirements? I would agree that doing it this way would be convenient for people who would like to use a later build of QtToolBarDialog than the one used to build the library, but I doubt the LGPL requires you do provide this convenience. -
Qt solutions (old Qt Labs stuff?) are licenced under LGPL, but if you change them, you need to provide the source code. If you don’t, providing the source code should fall to Nokia, though it’d be nice to do it yourself in such case.
Also remember than some of those solutions are not exactly “high quality code” which makes modifying them to do their job better is often needed, effectively making the modifier forced to provide the code.
Offtopic, but... I’d still like those old Jambi pieces :)
-
Thanks Andy and everyone for your replies and comments!
We have another LGPL component in our software that we've had to package in such a way.
In this case since I would probably make quite extensive modifications to the QtToolBarDialog, I may just write equivalent functionality from scratch to avoid the hassle. Ironic that the other former Qt Solutions, which are being maintained presumably because they're of higher quality, could be put to use much more easily than the abandoned ones!