this post was submitted on 12 Jan 2024
1073 points (97.7% liked)

Technology

60076 readers
3379 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
1073
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/[email protected]
 

Everyone can agree on VLC being the best video player, right? Game developers can agree on it too, since it is a great utility for playing multimedia in games, and/or have a video player included. However, disaster struck; Unity has now banned VLC from the Unity Store, seemingly due to it being under the LGPL license which is a "Violation of section 5.10.4 of the Provider agreement." This is a contridiction however. According to Martin Finkel in the linked article, "Unity itself, both the Editor and the runtime (which means your shipped game) is already using LGPL dependencies! Unity is built on libraries such as Lame, libiconv, libwebsockets and websockify.js (at least)." Unity is swiftly coming to it's demise.

Edit: link to Videolan Blog Post: https://mfkl.github.io/2024/01/10/unity-double-oss-standards.html

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 15 points 11 months ago* (last edited 11 months ago) (5 children)

Why is it bullshit? AFAIK, Unity wouldn't be able to comply with LGPL without supplying their own source code, so then this would be the only logical outcome.

[–] [email protected] 21 points 11 months ago* (last edited 11 months ago) (2 children)

Unity let me go earlier this week, so I'm really not in the mood to defend them, but this is correct. I'm on the Unity hate train as much as the next guy and i feel this is pretty cut and dry.

[–] [email protected] 10 points 11 months ago (1 children)

Sad to hear it, hope you'll find something else soon.

[–] [email protected] 18 points 11 months ago

Thankfully I'm in Canada where Collective Layoffs are heavily protected, and I have a generous package to keep me afloat until I find the right job.

It is a sad week for tech because not everyone has these protections.

[–] [email protected] 9 points 11 months ago (1 children)

No, it's not correct. Unity's management might think that's how the LGPL works, but they're wrong.

[–] [email protected] 4 points 11 months ago

The fact that they prefer to not do something at all instead of going through the hassle of doing something properly has always been a thing at Unity. It's correct that it is for business reasons and not necessarily logical ones.

[–] [email protected] 19 points 11 months ago* (last edited 11 months ago) (1 children)

You are only required to give source code for changes to that part for LGPL code. So only the library requires that.

Other game engines supply source code. If Unity wants any hope of redemption they should let us inspect wtf it actually does on our computers (edit: and let us make it work for our needs).

[–] [email protected] 2 points 11 months ago (1 children)

You CAN access the source code, but it's for corporate/enterprise partners. afaik

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago)

Charging for access is actually fine under L/GPL but after that you're then free to redistribute at your own price. I imagine Unity heavily control how you use and distribute your modified engine (nonfree).

[–] [email protected] 13 points 11 months ago (2 children)

Unity uses the LGPL for parts of their own products. The GPL in most cases only requires that derivative work must also be shipped with the same license. The source code from providers doesn't have to be distributed by unity, it has to be distributed by the provider. In this case that would be videoLAN, which has all their source code on GitHub. You can read the text of the LGPL here, and this is VideoLAN's post about the situation.

[–] [email protected] 4 points 11 months ago

That puts things into perspective, thanks!

[–] [email protected] 0 points 11 months ago (1 children)

The GPL in most cases only requires that derivative work must also be shipped with the same license. The source code from providers doesn't have to be distributed by unity, it has to be distributed by the provider.

This is incorrect. The distributor of derivative works in binary form is responsible for providing the source code. They can refer to a server operated by a third party, but if that third party stops providing the source code the distributor remains obligated to ensure that it is still available. The only exception is for binaries which were originally received with a written offer of source code, where the offer can be passed on as-is, but that only applies for "occasional and non-commercial" distribution which wouldn't work here.

[–] [email protected] 1 points 11 months ago (1 children)

Can you point to the section of the LGPL that describes what you're claiming?

[–] [email protected] 1 points 11 months ago (1 children)

Section 6 of the GPLv3, which the LGPLv3 includes by reference as one of the required distribution terms in paragraph 4.d.0:

Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.

(emphasis added) There is the alternative of following 4.d.1 instead, but that's only if the application links against a shared library already present on the user's computer system—it couldn't be distributed with the program.

GPLv3 section six offers five alternative methods of satisfying the obligation to provide source code. The first (6.a) applies only to physical distribution and must include source code with the physical media. The second (6.b) also requires physical distribution plus a written offer to provide the source code to anyone possessing the object code. The third (6.c) is the one I mentioned that applies only "occasionally and noncommercially" for those who received a written offer themselves under the previous clause. The fourth option (6.d) allows for the source to be provided through a network server:

If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

The fifth and final alternative (6.e) pertains to object code provided through P2P distribution, with the same requirements as the fourth method for the source code.

[–] [email protected] 0 points 11 months ago* (last edited 11 months ago) (1 children)

Section A in section 3 of the LGPL is the out here for unity:

a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.

As long as there is prominent notice with the distribution of the plugin, unity doesn't need to distribute the source code.

[–] [email protected] 1 points 11 months ago

You mean "3. Object Code Incorporating Material from Library Header Files."? That section 3? I think they're using a bit more than just header files. Section 4 "Combined Works" is the one that applies here.

Also even if section 3 did apply they'd need to follow 3.b as well as 3.a and include the full text of both the GPL and the LGPL.

[–] [email protected] 7 points 11 months ago

I thought the point of the LGPL was to allow this sort of usage without requiring the release of source code. It's an extension of the GPL to remove those requirements isn't it?

[–] [email protected] 1 points 11 months ago

I admit this is totally not my area, but couldn't you say that about literally any online source that sold software from Steam to the Apple App Store?