I wondered something :
- I develop a little standalone tool for a commercial application written in C++ with Qt (lets say "test.exe")
- Not having a commercial licence of Qt, I use Qt LGPL license - I cannot legally link statically against QtCore.dll, neither MSVC redist) so I link it dynamically.
- When I want to share this tool with clients, they receive a lot of dll that don't really concern them, making the tool more difficult to run

  • Is it legal to create an SFX archive that embeds the exe and dlls, and make it run automatically "test.exe" ? (no real installation)
  • Is it legal to name this SFX archive "test.exe" and to modify its properties (manifest) to add my organization, app version and icon ?
    The archive executable would look like the true executable, but it would extract the dlls as a first step.
  • 1
    A self-extracting archive containing LGPL libraries would be considered a Combined Work according to the LGPL. Distributing it is allowed as long as you follow the requirements in Section 4 of the LGPL. Please read that first and amend your question about any part that is not clear. – Brandin Jan 9 at 9:32

In simple terms, the requirements of the LGPL license are that an end-user has the possibility to replace the LGPL licensed code with a different version and to inform them of those rights.

This requirement is not directly broken by distributing your binaries in the form of an SFX archive rather than an archive format that needs to be explicitly unpacked by the user.

However, the use of an SFX archive can hide the fact that you are using LGPL licensed libraries, so distributing just the SFX archive can get you into trouble with the requirement of informing the users of their rights. To remedy that, you should accompany the SFX archive with separate documentation where it is stated that you are using LGPL licensed code and where users can obtain a copy of the license and the source code. Preferably, the license copy would be inside the SFX archive (which implies telling your users that the SFX archive can be unpacked and that the SFX format is chosen as a convenience for the average user who doesn't want/need to exercise their LGPL rights).

  • The archive I planned to create doesn't ask any confirmation before auto-extraction and autorun. The user could change the version of the DLL but only after having run the software first. Is that a problem ? If I display a message about the license before extracting the files, would it be better ? I also wonder how 7zip licensing works, because it is LGPL software but the process to create the SFX archive requires to merge the 7zip SFX module and some custom manifest/content into a single file. Therefore, it is not possible to replace the 7zip SFX module version – Kiruahxh Jan 9 at 21:53
  • Though 7zip author seems to be ok with this usage, I don't see where this is legally allowed. sourceforge.net/p/sevenzip/discussion/45797/thread/88757edf – Kiruahxh Jan 9 at 21:56
  • @Kiruahxh 7zip has different licenses for different parts. If you read the License.txt file, it notes that some files are "public domain" if they are marked as such. Many of the SFX related files are marked in this way, although not all. However, if the author has given you explicit permission to do something with his code (say, include the SFX without DLLs), that also counts as a license to do that thing. – Brandin Jan 10 at 7:41
  • @Kiruahxh Technically speaking, the statement in that message board might be seen as an "additional permission" in GPL parlance (See the GPL section 7). Basically, the copyright holder (Igor Pavlov) can give you an additional permission to use his code in that situation (SFX archives) without having to comply with the normal LGPL requirements, which is possible since he owns the copyright for his own code. It would be clearer if he mentioned that in the License text or in all relevant source files (as the GPL says you should do) rather than in a message board post on SourceForge. – Brandin Jan 10 at 7:47
  • @Kiruahxh Note however that the Qt Company (copyright holders of Qt) definitely do not give any such lenient additional permissions for using their libraries. They are very clear that the Qt code is LGPL (or GPL, for some portions) only, or else you must buy the commercial version of Qt if you don't want to or are not able to comply with the LGPL requirements. – Brandin Jan 10 at 7:55

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.