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

License? #150

Open
guoyunhe opened this issue Aug 8, 2020 · 9 comments · May be fixed by #641
Open

License? #150

guoyunhe opened this issue Aug 8, 2020 · 9 comments · May be fixed by #641

Comments

@guoyunhe
Copy link

guoyunhe commented Aug 8, 2020

What is the license of this repo?

@guoyunhe
Copy link
Author

guoyunhe commented Aug 8, 2020

Here is no LICENSE file in this repo.

@hizzlekizzle
Copy link
Collaborator

It's many different licenses, some GPL, some MIT, some public domain, some with no license listed.

@guoyunhe
Copy link
Author

It is good to mention which shader is GPL/MIT/public domain/no license. Otherwise, there is the copyright risk for the project. You cannot modify or redistribute the shader code if the author doesn't allow it.

freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this issue Jul 27, 2024
Changes to the port:
- take maintainership
- update COMMENT and pkg-descr to point out that the shaders originate
  from the libretro project but that they can also be used for other
  projects, e.g. librashader
- update LICENSE in accordance to
  libretro/slang-shaders#150
  (it's actual unclear which shader has which license for the most part)
- add DOCS option which handles README.md
- update files/patch-Makefile to also delete Makefile.orig, or else it
  will be listed in pkg-plist

Comparing changes:
https://github.com/libretro/slang-shaders/compare/3c28137..7d6751a

PR:	280439
@Apteryks
Copy link

Apteryks commented Sep 28, 2024

If we could have some commitment from the maintainers of this repo to only accept properly licensed shader sources from now on, I could try coming up with a list of the licenses and see which are the problematic ones (such has lacking any license information).

Without such commitment, it seems unwise of my time to do this effort as any new commit could be adding more problematic sources.

What do you think? Perhaps the short SPDX identifiers could be used? There is a nifty reuse tool that could run in the CI on new contributions to ensure they are properly annotated.

@Apteryks
Copy link

At least this one looks problematic: anti-aliasing/shaders/ewa_curvature.slang:

#version 450

/**
* Practical Elliptical Texture Filtering on the GPU
* Copyright 2010-2011 Pavlos Mavridis, All rights reserved.
*
* Version: 0.6 - 12 / 7 / 2011 (DD/MM/YY)
*/

@hizzlekizzle
Copy link
Collaborator

You're welcome to make contributions but those contributions wouldn't entitle you to dictate how the repo is maintained.

I'm not sure whether that's actually the license for the code itself or just a citation for a paper used as reference (i.e., whether it's a direct copy/paste job of restricted code or not). That code is apparently based heavily on code from this guy's master's thesis, which doesn't appear to have any license on it. That said, I don't have any way of contacting TorridGristle anymore to find out any additional details, so might be best to pull it.

@Apteryks
Copy link

Apteryks commented Oct 1, 2024

Hi! I've started looking into this. I think these could be considered project files (own work)?

- README.md
- spec/SHADER_SPEC.md
- stock.slang (?)
- test/*

A beginning would be to say that these are GPLv3+/Expat/ any free software of your choosing somewhere (README.md?), and put that LICENSE or COPYING file at the root of the repo. The README.md could say that any other files copyright/licenses are their originals, which ought to be identified.

I'm not sure if stock.slang is original work. It's very short and seems used by many others .slang sources, but its license is not mentioned.

Apteryks added a commit to Apteryks/slang-shaders that referenced this issue Oct 1, 2024
This effort is to bring the project in compliance with most
distributions guidelines such as the GNU Free Software Distribution
Guidelines (GNU FSDG) [0]: the files without a clear license or a
non-free license are removed.

This is a work in progress; some files such as README.md and other
project files can be easily re-added when the project owners introduce
a LICENSE file with some explanatory text.

This is a rather strict purge; I haven't tried contacting the authors
or going through hoops to recover it from the original place the files
were found; I've simply assumed that if there's no license information
within the files, then they aren't free.  This is relaxed for
non-functional sources as the .slangp configuration or images, as
non-functional data does not require to be freely licensed, per the
GNU FSDG.

[0]  https://www.gnu.org/distros/free-system-distribution-guidelines.html

Fixes: libretro#150
@Apteryks Apteryks linked a pull request Oct 1, 2024 that will close this issue
@hizzlekizzle
Copy link
Collaborator

hizzlekizzle commented Oct 1, 2024

I don't think stock.slang is copyrightable as it's not really expressing anything, it's just a passthru. https://softwareengineering.stackexchange.com/questions/240930/whats-the-copyright-status-of-boilerplate-code

EDIT: for that matter, if we're going by the 15-line rule, many, many shaders are at or below that threshold if you restrict the calculation to the non-boilerplate code (i.e., changes from stock.slang).

Apteryks added a commit to Apteryks/slang-shaders that referenced this issue Oct 1, 2024
This effort is to bring the project in compliance with most
distributions guidelines such as the GNU Free Software Distribution
Guidelines (GNU FSDG) [0]: the files without a clear license or a
non-free license are removed.

This is a work in progress; some files such as README.md and other
project files can be easily re-added when the project owners introduce
a LICENSE file with some explanatory text.

This is a rather strict purge; I haven't tried contacting the authors
or going through hoops to recover it from the original place the files
were found; I've simply assumed that if there's no license information
within the files, then they aren't free.  This is relaxed for
non-functional sources as the .slangp configuration or images, as
non-functional data does not require to be freely licensed, per the
GNU FSDG.

[0]  https://www.gnu.org/distros/free-system-distribution-guidelines.html

Fixes: libretro#150
@Apteryks
Copy link

Apteryks commented Oct 2, 2024

I'd prefer not pretend I'm a copyright lawyer and refer to some stated information in the README.md, perhaps something concise such as:

# License
The few original files of this project (listed below) are provided under the Expat license (see the `LICENSE` file for its full text). An alternative could be to declare these to use CC0 (https://creativecommons.org/public-domain/cc0/).
- README
- tests/*
- include/compat_macros.h
[...]

All other projects aggregated in this collection retain their original license, which include various copyleft (GPLv3+, GPLv2+, GPLv3, GPLv2) as well as permissive (Expat, BSD-2, BSD-3, ISC, CC0, public domain, etc.) licenses.

Alternatively, instead of an explicit listing of files that would easily become outdated, a better option would be to directly annotate these with SPDX license comments, e.g:

#file: stock.slang
# SPDX-FileCopyrightText: YYYY someone <someone@email.com>
#
# SPDX-License-Identifier: CC0-1.0

This can be done and automated with the reuse tool [0].

[0] https://reuse.software/

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

Successfully merging a pull request may close this issue.

3 participants