Player icon indicating copy to clipboard operation
Player copied to clipboard

License related issues

Open Ghabry opened this issue 4 years ago • 13 comments

  • [ ] Add a new option --nonfree to autotools (details see next checkbox)
  • [ ] Add new option -DPLAYER_NONFREE to Player. When enabled it disables the following LGPL'ed libraries:
    • FluidLite/Synth
    • mpg123
    • sndfile
    • wildmidi
    • I know that they are LGPL so you are safe when you use "shared libraries" but you know how good people are in reading so it is safer to turn it off by default.
    • Also disable Pixel font WenQuanYi under GPLv2 /w Font Embed Exception (for me it is still unclear whether the document exception applies to us because we convert the font before using it, so this could be a derived work). Btw were we even compatible here? This is GPLv2 not GPLv2 or newer it seems, upps. Would be good to use a new font here or figure out if the exception applies to us.
  • [x] Add a new "Scene About" (could be reachable via Scene Config) that contains the following (We are not properly citing our dependencies, must be solved!)
    • About Player (already in Scene GameBrowser
    • Player License information
    • Library licenses, only list the ones enabled via preprocessor macros (1-2 Lines per library and a text "for full license text visit https://easyrpg.org/player/licenses")

see also #167

Ghabry avatar Mar 29 '21 09:03 Ghabry

--nonfree is in my opinion not the right name for it. GPL and LGPL allow you to earn money, but you have to grant access to the src. Maybe a better name would be nocopyleft or nodisclosure.

Tondorian avatar Mar 30 '21 13:03 Tondorian

How about --commercial? I mean we can still make it clear that you are allowed to sell it without the switch but that this switch avoids many licensing traps.

I used "nonfree" here because that is the terminology the GPL / the Free Software Foundation uses. (I also completely ignore the case of "Shared Libraries" here. As they would work here with LGPL but this is too easy to violate by accident when you lack the expertise in this area. Also no idea if LGPL even legally works on locked-down platforms such as Android, iOS or the Switch were you cannot simply replace libs)

Of course you can still sell your game even without the switch but with the switch you make it clear, that you do not want to publish your sourcecode (completely) for whatever reason. The switch is also the only proper legal way to use the SteamWorks SDK (which is under NDA and nonfree).

Ghabry avatar Mar 30 '21 14:03 Ghabry

in general I see no huge problem in just recommending this switch for simplicity. This "only" kills audio libraries and when I finally get "dr_wav" working there is also a public domain WAV decoder available again that doesnt suck (compared to FastWav ;)). You can convert all the game music to OGG and OPUS. I mean this is for publishing and selling a game, so you have full control over these steps.

Btw the "effective license" for the Player binary distributed by us is still GPLv3 because we do static linking of LGPL libs. Though if you just want to use the unmodified Player this is no big deal, it already worked this way and selling is allowed. (and the game files do not count as a derived work as they are just interpreted by us).

Ghabry avatar Mar 30 '21 14:03 Ghabry

Maybe --undisclosed-code is more understandable than copyleft, and because copyleft allows commercial use disclosing code (for static LGPL linking).

fdelapena avatar Mar 30 '21 15:03 fdelapena

I used "nonfree" here because that is the terminology the GPL / the Free Software Foundation uses.

Then we should use it, too. Most developers that have signed an NDA should know its meaning then.

Tondorian avatar Mar 30 '21 16:03 Tondorian

Related for the "free" vs. "nonfree": https://www.gnu.org/philosophy/free-sw.html

carstene1ns avatar Mar 30 '21 17:03 carstene1ns

With Midiout coming in #2302 the Midi licensing problem is at least solved for Windows, Linux and macOS, you can simply omit the libs. libasound (ALSA) is LGPL and always part of the distribution, so not issues here.

Ghabry avatar Jul 11 '21 14:07 Ghabry

A suitable alternative (good license) to WenQuanYi appears to be "Hanazono" however it is TTF only and converting this to 9 point BDF looks really bad :(

Ghabry avatar Jul 13 '21 18:07 Ghabry

Very good news! Since End of 2020 GNU Unifont (another bitmal font) is Dual Licensed under GNU GPLv2+ w/ FE and SIF OFL.

SIF OFL (Noto from Google uses this) is GPL incompatible because it forbids distributing under another license as this directly conflicts with the GPL and derivative work.

So the open source Player can use the GPL and the nonfree one can use the SIF OFL.

Unifont could be also used to solve #847

@rohkea

Ghabry avatar Jul 14 '21 01:07 Ghabry

Does Unifont have a 12×12 / 6×12 version? I can’t find anything about it. I can only find a 16×16 / 8×16 Unifont, which is too large for EasyRPG.

I think rasterizing a TTF font would be a better idea way to go. For example, Noto fonts are under SIL license. We can bundle WenQuanYi with GPL builds and rasterized Noto Sans with non-free builds. (This will mean the builds will look a bit different, but I think that's acceptable.)

rohkea avatar Jul 14 '21 13:07 rohkea

yeah unifont is 16x16, so is actually not an option :(

Ghabry avatar Jul 14 '21 14:07 Ghabry

Maybe is a good idea to preannouce this through a blogpost soon. Do not want to have this hidden in the gigantic 0.7 blogpost.

Also already prepare a "How to publih with Easyrpg player" article for the website :)

Ghabry avatar Jul 17 '21 14:07 Ghabry

Alternative Chinese font under CC0 worth taking a look https://timothyqiu.itch.io/vonwaon-bitmap

Ghabry avatar Apr 28 '22 05:04 Ghabry