Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Licensing question #1180

Closed
jubalh opened this issue Apr 6, 2020 · 37 comments
Closed

Licensing question #1180

jubalh opened this issue Apr 6, 2020 · 37 comments

Comments

@jubalh
Copy link
Contributor

jubalh commented Apr 6, 2020

My submission of raylib 3.0.0 to openSUSE has been declined.
The bot sais:

Contains non-commercial licenses.
Diff to closest match 153843:
Found new license CC-BY-NC-3.0 (risk 4) not present in old report
Found new license SCEA (risk 3) not present in old report

So raylib now ships things with SCEA and CC-BY-NC-3.0 license? That's correct? Then I'll add them to the spec file.

@chriscamacho
Copy link
Contributor

:-o do you know which dependency is under a CC-BY-NC-3.0 license ?
if its code and not just example resources (for example) I'm going to have to stop using raylib - this is very concerning !

@chriscamacho
Copy link
Contributor

okay panic over!!!

grep "creative commons" * -Ri
examples/textures/resources/LICENSE: - [Scarfy spritesheet](scarfy.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)
examples/textures/resources/LICENSE: - [Fudesumi image](fudesumi.png) by [Eiden Marsal](https://www.artstation.com/artist/marshall_z), licensed as [Creative Commons Attribution-NonCommercial 3.0](https://creativecommons.org/licenses/by-nc/3.0/legalcode)
examples/models/resources/models/castle.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/models/resources/models/bridge.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/models/resources/models/LICENSE:and licensed as Creative Commons Attribution-NonCommercial 4.0.
examples/models/resources/models/turret.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/models/resources/models/market.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/models/resources/models/well.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/models/resources/models/house.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/shaders/resources/models/barracks.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/shaders/resources/models/watermill.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0
examples/shaders/resources/models/church.obj:# Licensed as Creative Commons Attribution-NonCommercial 4.0

@chriscamacho
Copy link
Contributor

grep scea * -Ri
examples/models/resources/models/Duck/Duck_license.txt:Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:
examples/models/resources/models/Duck/Duck_license.txt:http://research.scea.com/scea_shared_source_license.html

@ibilon
Copy link
Contributor

ibilon commented Apr 6, 2020

I tried to list the licenses used by raylib's code dependencies https://gist.github.com/ibilon/ca0630adc9eb512bdba6b072edc0b0f7, it's missing info about raylib/src/external/ANGLE and raylib/src/external/dirent.h but lists the other 20.
Might be useful if you're looking into using raylib commercially.

@raysan5
Copy link
Owner

raysan5 commented Apr 6, 2020

@jubalh @chriscamacho Most of those example resources were also available on previous raylib versions, actually they were created by two of my students and they give me the rights to use them.

About the Duck model, it was added for some example to test glTF support... I removed it on commit 5fb6155.

dirent.h is based on https://dev.w3.org/hypermess/hypermail/lcc/dirent.c, adapted by me, could it suppose a problem? It is used on Windows/UWP platforms and only when using MSVC compiler.

ANGLE is used only on UWP platform, it uses a BSD License that allows commercial use.

@raysan5
Copy link
Owner

raysan5 commented Apr 6, 2020

I just want to note that I really take a lot of care on the licenses used on raylib sources (and external libraries) but thanks for letting me know if I you find any problem with any of them.

@chriscamacho I'm also really concerned about license to allow commercial use.

@raysan5
Copy link
Owner

raysan5 commented Apr 6, 2020

@ibilon thanks for the licenses compilation, if you don't mind I'll add that information on raylib Wiki.

@ibilon
Copy link
Contributor

ibilon commented Apr 6, 2020

@ibilon thanks for the licenses compilation, if you don't mind I'll add that information on raylib Wiki.

No problem of course 👍

@raysan5
Copy link
Owner

raysan5 commented Apr 6, 2020

Added information formatted in raylib Wiki

@raysan5
Copy link
Owner

raysan5 commented Apr 7, 2020

Closing this issue. Feel free to reopen if there is any concern.

@raysan5 raysan5 closed this as completed Apr 7, 2020
@raysan5
Copy link
Owner

raysan5 commented Apr 7, 2020

I removed Android native_app_glue external dependency because is provided by AndroidNDK.

Also removed ANGLE libraries because there are used on UWP and project automatically syncs the required package.

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

@raysan5 The problem is, our tools scan the whole tarball, if it finds incompatible license files it doesnt let us upload it to the repository.

Would you mind creating something like a minimal tarball, which just contains raylib and excludes the examples? For some minimal systems that might be interesting anyways.
If I see correctly the strange license files are all only in the examples.
So that way we could still upload the tarball to our repos.

So far the latest raylib is still not in openSUSE because of this.. :(

@raysan5
Copy link
Owner

raysan5 commented Apr 29, 2020

@jubalh yeah, I see... those licenses are relative to the assets used on the examples... Actually most of those assets are contributions of my students, I proposed those CC-BY-NC licenses to them.

Actually those files have been there for several versions, I only moved the LICENSE file there for better organization.

How could I create a minimal tarball? Does it work a zipped file? What should/could I include?

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

Actually those files have been there for several versions, I only moved the LICENSE file there for better organization.

I'm also confused about this. My assumption is that before we just didn't have scripts to check for such cases.
CC-BY-* is of course good because also free. I assume SCEA was the problem.

How could I create a minimal tarball? Does it work a zipped file? What should/could I include?

I thought about having at the release page: https://github.com/raysan5/raylib/releases
Like we have currently the regular tarball (.tar.gz) you could also upload one which is the same but without the examples folder? What do you think about that?

@raysan5
Copy link
Owner

raysan5 commented Apr 29, 2020

I assume SCEA was the problem.

Actually that license was for a not-used testing asset (Duck.gltf), it was already removed on commit 5fb6155.

I thought about having at the release page: https://github.com/raysan5/raylib/releases
Like we have currently the regular tarball (.tar.gz) you could also upload one which is the same but without the examples folder? What do you think about that?

I can just remove examples directory from current source.tar.gz and upload it or publish a new 3.0.1 release that won't include the previous SCEA license but will include several new changes... what do you prefer?

@raysan5
Copy link
Owner

raysan5 commented Apr 29, 2020

@jubalh Actually, there could be some assets on examples that have no license file attached (usually coming from contributions). Could it suppose a problem? In that case I can just edit source.tar.gz.

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

Actually that license was for a not-used testing asset (Duck.gltf), it was already removed on commit 5fb6155.

Awesome :)
That's good in general but for our build system I can only use the provided upstream tarball. Even if I would remove the files later on it wouldn't allow it because it scans the tarball right at the beginning.

I can just remove examples directory from current source.tar.gz and upload it or publish a new 3.0.1 release that won't include the previous SCEA license but will include several new changes... what do you prefer?

Maybe some other distrubtions rely on the current tarball (and its checksum) already. So I wouldn't change the current tarball. But you could provide a new one raylib-noexamples.tar.gz which is the same as 3.0.0 but has the examples directory removed which would be one option.

Or releasing 3.0.1 with new changes, new changelog but still contaning examples but without the strange license.

But in any case I think examples mostly make sense for regular uses (like on windows) that build raylib itself or include it in their own project. But for distrubtions who just want to build the library for users to use it dynamically the examples are not important. So generally having two tarballs, one complete and one without examples might make sense anyways.

Actually, there could be some assets on examples that have no license file attached (usually coming from contributions). Could it suppose a problem? In that case I can just edit source.tar.gz.

Legally I'm not sure. But in our case it won't be a problem because the script wont detect it :D

@raysan5
Copy link
Owner

raysan5 commented Apr 29, 2020

@jubalh Ok, just updated the 3.0.0 release, added raylib-noexamples-3.0.0.tar.gz. I removed examples, games, and projects directories. File shrinked from 90MB down to 4MB.

Actually games have been moved to raylib-games repo and some projects have been removed, next raylib releases (with examples) will stay under 30MB.

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

@raysan5 this is awesome news! Thanks a lot for doing this! Also the saving in file size is excellent, I guessed that would happen.
I already made a new request for openSUSE, hope it will get accepted now :)
Thanks!

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

One small question I would like to ask. Should I install all of those:
raylib.h
raudio.h
physac.h
raymath.h
rlgl.h
Or just raylib.h?

@raysan5
Copy link
Owner

raysan5 commented Apr 29, 2020

@jubalh Nice! Cross-fingers! 😄

About the headers, actually, all of them can be installed. By default, I just install raylib.h because the other ones are for specific use cases and I let the users manage them as they wish... but yeah, probably it's easier to just make them available and forget about it...

@jubalh
Copy link
Contributor Author

jubalh commented Apr 29, 2020

About the headers, actually, all of them can be installed. By default, I just install raylib.h because the other ones are for specific use cases and I let the users manage them as they wish... but yeah, probably it's easier to just make them available and forget about it...

Okay, thanks for the info! :)

bmwiedemann added a commit to bmwiedemann/openSUSE that referenced this issue May 1, 2020
https://build.opensuse.org/request/show/799028
by user jubalh + dimstar_suse
- Switch to noexamples tarball as requested in:
  raysan5/raylib#1180
  So we don't ship examples with various licenses that we don't
  install anyways.
- Add raylib-3.0.0-noexamples.patch: dont try to install examples
  Raysan seems to have forgotten that.

- Added missing development header files.

- Update to 3.0.0:
  * All global variables from the multiple raylib modules have
    been moved to a global context state, it has several benefits, first, better
    code readability with more comprehensive variables naming and categorization
    (organized by types, i.e. CORE.Window.display.width,
    CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows
    better memory management to load global context state dynamically when required
@jubalh
Copy link
Contributor Author

jubalh commented May 4, 2020

request got accepted. We have raylib 3.0 now in openSUSE!

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

@raysan5 why was there no noexamples tarball released for 3.5.0?

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh because I'm afraid there is no automatic system to generate it...

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

Would you mind adding it? It's pretty good because of this licensing issue and the much smaller tarball :-)

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh ok, but... is there still some licensing issue? I reviewed it...

EDIT: What should the .tar.gz contain?

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

ok, but... is there still some licensing issue? I reviewed it...

Even without license issue the smaller tarball is super nice to have for distros.

EDIT: What should the .tar.gz contain?

In April 2020 you said:

Ok, just updated the 3.0.0 release, added raylib-noexamples-3.0.0.tar.gz. I removed examples, games, and projects directories. File shrinked from 90MB down to 4MB.

And that was quite fine.

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh I don't remember how it did it the last time... this time just updated the GitHub automatically generated .tar.gz archive: https://github.com/raysan5/raylib/releases/download/3.5.0/raylib-noexamples-3.5.0.tar.gz

Please, let me know if it works ok.

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

Please, let me know if it works ok.

That tarball seems to be missing the CMakeLists.txt in the root directory.

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh Oh... sorry, I removed it with cmake directory... ok, reuploaded.

Please note, I don't use and don't maintain CMake, it was a user contribution, I don't know if it currently works...

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

Please note, I don't use and don't maintain CMake, it was a user contribution, I don't know if it currently works...

Oh, I'm surprised to hear that. I remember that I contributed meson build files and removed them when CMake was added. I thought it would be the default for building on Linux now.

What should I use as the official supported build method?

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh I created, use and maintain the plain Makefiles for all supported platforms.

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

Does it also contain library versioning like the meson and cmake file did/do?

@raysan5
Copy link
Owner

raysan5 commented Jan 4, 2021

@jubalh not sure if that's what you mean... I keep a RAYLIB_VERSION variable with current version that is used in some places...

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

@jubalh not sure if that's what you mean... I keep a RAYLIB_VERSION variable with current version that is used in some places...

I mean library versioning which was discussed in:

@jubalh
Copy link
Contributor Author

jubalh commented Jan 4, 2021

@raysan5 Nevermind! I continue to use the CMake files :-) They still contain the library versioning. That's great! Hopefully they will always be in sync! Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants