5

I am developing a python GUI for my company using PySide which is under LGPL license.

My company would like to sell it and thus it can't be open source. From my understanding of the LGPL, I need to make sure that the final user would be able to replace the libraries in my program with their own version.

To obtain a compact, sharable version of the program, I am using cx_Freeze. Do you think this comply with the license?

From cx_Freeze docs:

cx_Freeze normally produces a folder containing an executable file for your program, along with the shared libraries (DLLs or .so files) needed to run it.

1
  • 2
    Related: What exactly do I need to do if I use a LGPL licensed library? You can apply the advice in that answer to your specific situation. Notice that if you distribute with cx_Freeze, you will need to at least comply with the licenses of at least the two libraries: Qt (the DLLs, .so's, etc.) and PySide (the .pyc files).
    – Brandin
    Commented Apr 23, 2019 at 6:37

2 Answers 2

3

Not to necro this question, but I've been reading about the concerns recently about pyinstaller packaging in LGPL libs. I think I have a handle on the requirements.

So the LGPL requirement for distribution requires you to either provide source for those LGPL components with the program, or provide it on request by your customers. In reality, since these are just off-the-shelf libs there's really no reason not to just have a link on your web site where whoever can download the source. It has to be possible to build a lib from that source, and replace the one in the program with the patched library.

So, that's it. cx_freeze seems to easily meet this requirement, your libs are in lib and the customer is free to replace those libs.

The concern with pyinstaller that's come up, you can use "--onefile" option and you have one single executable. Neat! But the LGPL libs are in there too with no documented way to replace them. Without "--onefile", all the stuff that goes in lib with cx_freeze goes in the top level directory with your executable in pyinstaller. It's hideous, thus the temptation to use "--onefile" with it. Due to this I've switched my build over to cx_freeze.

2

In order to comply with the LGPL, you still need to bundle your product with the PySide library source.

DLLs and .so files are compiled. You also need to provide the source code of PySide that you are using. But only theirs. You don't have to share your source code, if you only use their library without modifying it. If you don't want to do that then Qt is providing commercial license as well and you don't have to worry about anything.

3
  • What do you mean by bundle? I am already sharing my product with the library inside using cx_freeze. Commented Apr 21, 2019 at 12:18
  • 1
    Please add more details to the answer itself to make it more helpful.
    – Brandin
    Commented Apr 21, 2019 at 17:21
  • @Brandin Thanks for the advice!
    – Smart455
    Commented Apr 21, 2019 at 17:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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