5 ms·
The LGPL gives end users the right to replace the LGPLed part with a modified version, and users presumably cannot alter parts of a downloaded Unity app. So it
by ghusbands 3y ago
The LGPL gives end users the right to replace the LGPLed part with a modified version, and users presumably cannot alter parts of a downloaded Unity app. So it does seem that software using an LGPL library cannot be distributed on Unity or most any modern app store and still be in compliance with the LGPL.
It's not viral, but it does give users rights that aren't natural under the app store distribution model.
- larschdk 3y agoIt's not impossible to comply with LGPL under the app store model, but the responsibility falls on the distributor, which is Unity in this case. I can understand that that is something they are not able or willing to do. This doesn't mean that they can't comply with LGPL for components included in Unity itself. I don't see any double standard here.
- tankenmate 3y agoYou're right, but there is the large counterpoint of the fact that Unity is doing exactly that for other software licenced under the LGPL.
- larschdk 3y agoVery different. They can do that, because they are in control of the components and build process. That's much harder for someone else's deliverables.
- deleted 3y ago[deleted]
- captainmuon 3y agoI can give you a right, but that doesn't mean you're neccessary able to excercise that right. I can allow you to drive a tank on my property, but you probably can't afford one, and it would be banned by laws. I'm curious, does the LGPL state explicitly that the licensor guarantees that the licensee can excercise their granted rights in practice? There can always be external circumstances restricting what I can do. Or is it more like: The licensee (the unity package developer) can only use the code (VLC) if they guarantee that the sub-licensee (the package user or the end user) can excercise all their rights with no external conditions? Edit: I think LGPL 3 actually does demand this, in the context of preventing "tivoisation". However, libvlc is licensed under LGPL 2.1 as far as I can see.
- ghusbands 3y agoIANAL, but when it comes to contracts/licences, intent, good faith and fair dealing are important. Allowing someone a right that you know cannot be exercised would likely fail under all three of those. Your intent is not for them to have that right, you're not acting in good faith in claiming they have the right and you're misrepresenting the possibility. The law is not as prescriptive on the exact text as many programmers think. What typically matters in court is what people mutually understand/understood terms to mean, and clear attempts to mislead are typically judged against the one doing the misleading. So, yes, if it went to a court that was otherwise supportive of (L)GPL, providing (L)GPL code on a platform on which users certainly cannot exercise their rights would likely be a failure to provide and hence abide by the licence.
- troupe 3y ago> I'm curious, does the LGPL state explicitly that the licensor guarantees that the licensee can excercise their granted rights in practice? It feels like such a requirement would mean you would have to test each potential user for technical skills to determine if they are capable of doing the things that you are giving them the right to do.
- kelnos 3y agoI think you are looking at it the wrong way. The licensor doesn't guarantee that the licensee can exercise the granted rights. But the license requires that the distributor can guarantee that the recipient can exercise those rights. If I write up a license that says anyone distributing my software must give the recipient the right to drive a tank on their property, I can distribute it, because I am the copyright holder and can do whatever I want. But in practice that software cannot be redistributed, because those license terms probably cannot be fulfilled by any redistributors. If VLC wants to put something on the Unity Store that includes LGPL code, then their responsibility (and the Unity Store's responsibility, as they are now distributors as well) is that people downloading that Unity VLC bundle in order to use it in their game must be able to replace the LGPL code in it with modified versions. And that part may actually be possible, so this may be ok. But then the game developer that uses the Unity VLC bundle must also pass along the ability to their end users (that is, the people that buy and play their game, for example) to replace the LGPL code with modified versions. I think that's just not possible with the Unity Store model[0], so the terms of the LGPL cannot be fulfilled. If this is the case, it's not unreasonable for Unity to ban LGPL code in bundles, because they know that their customers (game developers) will not be able to abide by the terms of the license. [0] Similarly to how an end-user wouldn't be able to replace LGPL code in an iOS app with a modified version and then run that on their iPhone, at least not without paying Apple for the privilege, which is an added restriction that violates the terms of the LGPL.
- deleted 3y ago[deleted]
- chippiewill 3y agoI don't have experience with tinkering with typical Unity apps. But we have one at work and on Linux it literally has the `.so` files for native libraries in a standalone directory (including one LGPL library that we use) which you can easily replace with a differently compiled version if you so desired.
- tedajax 3y agoSeems like another good argument for why the GPL and LGPL are actually kinda shit.
- m463 3y agoThank goodness there are oracle licenses to save you. :)
- tedajax 3y agoYeah because MIT, BSD, etc don't exist or anything
- anthk 3y agoWithout those you would be suffering NT servers, IIS and ActiveX.
- Snow_Falls 3y agoThe issue is with locked down appstores, your inability to exercise your freedoms given by the license is caused by the store not the software.
- freedomben 3y agoIf that were true, then if Unity decided to ban MIT and Apache licensed software from the store, that would mean that MIT and Apache are actually kinda shit. Seems there's a pretty clear error in your logic. Also, your appraisal seems to be assuming that the only goal of the GPL/LGPL is to release software through Unity, which is not correct.
- naasking 3y ago> The LGPL gives end users the right to replace the LGPLed part with a modified version, and users presumably cannot alter parts of a downloaded Unity app. You can use LGPL software on a multitenant mainframe system, where you don't have access to modify installed software. This was a well known use case in the 80s and 90s, so this doesn't seem appreciably different. The LGPL doesn't seem to require you as a software developer to ensure that the user can run the modified software on the same system on which the App Store version is run, mainly it's to make the source code available so they can, in principle, create a modified version that they can run somewhere.
- Steltek 3y agoLGPL leverages copyright and is triggered under distribution/copying. Users of a multitenant system are not receiving a copy of anything. At least this is how GPL2 worked. I don't know if 3 substantially changed that. What you're describing sounds more like the AGPL to me.
- mlaci 3y agoThe same problem applies to LGPL code and browsers (e.g. ffmpeg.wasm).