can we use Qt lgpl in android and ios ?
-
@jsulm said in can we use Qt lgpl in android and ios ?:
LGPL3
how to not violate LGPL, should I only mention that I am using Qt and provide LGPL license link
@mouhamed said in can we use Qt lgpl in android and ios ?:
should I only mention that I am using Qt and provide LGPL license link
You also have to give the user the possibility to replace Qt libraries with their own versions. And at this points it gets tricky for Android/iOS apps.
Take a look at https://www.qt.io/licensing/open-source-lgpl-obligationsAnd keep in mind: I'm not a lawyer :-)
-
WARNING: I am NOT a lawyer.
Technically, static builds are allowed with LGPL but you have to provide the build artifacts so other people can redo the linking with their own static version of the library. That's the very tricky part. -
Furthermore, for iOS even dynamic linking might not be sufficient to fulfill the LGPL. How is a user of your app supposed to replace Qt on an iPhone? It is totally locked down and the app is signed. It is near impossible to switch out the .dylib files. In this context there might be not much of a difference between static and dynamic linking.
I haven't used Qt in this context. So, I'm just trying to analyze the situation: You might have to provide the app as separate download on a computer with instructions how to replace the .dylib files inside the app folder, register a develop account, resigning the app, and loading it onto the device.
-
Furthermore, for iOS even dynamic linking might not be sufficient to fulfill the LGPL. How is a user of your app supposed to replace Qt on an iPhone? It is totally locked down and the app is signed. It is near impossible to switch out the .dylib files. In this context there might be not much of a difference between static and dynamic linking.
I haven't used Qt in this context. So, I'm just trying to analyze the situation: You might have to provide the app as separate download on a computer with instructions how to replace the .dylib files inside the app folder, register a develop account, resigning the app, and loading it onto the device.
@SimonSchroeder AFAIK, you don't need to provide the app itself but the build artifacts so that the user who wants to link its own libraries can do so.
Or did you mean provide the
.ipajust to swap the libraries themselves ? -
With Qt 6.10.3 we were able to built Qt as dynamic frameworks instead (which may make it compatible with LGPLv3), and our prototype works: it runs on the arm64 simulator and links for devices.
Anyone has been down this road?@aziesemer said in can we use Qt lgpl in android and ios ?:
With Qt 6.10.3 we were able to built Qt as dynamic frameworks instead (which may make it compatible with LGPLv3), and our prototype works: it runs on the arm64 simulator and links for devices.
Anyone has been down this road?You replied a bit late... buddy.
-
@SimonSchroeder AFAIK, you don't need to provide the app itself but the build artifacts so that the user who wants to link its own libraries can do so.
Or did you mean provide the
.ipajust to swap the libraries themselves ?@SGaist said in can we use Qt lgpl in android and ios ?:
Or did you mean provide the .ipa just to swap the libraries themselves ?
I'm not sure what those are called. But in the case of dynamic libraries you don't need to provide the build artifacts. However, to be able to replace the libraries on an iPhone or iPad it might be a lot more complicated to switch out libraries than on a desktop computer.