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

Duplicate license options with identical contents #20915

Open
balki opened this issue Aug 22, 2022 · 1 comment
Open

Duplicate license options with identical contents #20915

balki opened this issue Aug 22, 2022 · 1 comment
Labels
topic/build PR changes how Gitea is built, i.e. regarding Docker or the Makefile type/bug

Comments

@balki
Copy link
Contributor

balki commented Aug 22, 2022

Description

Many license options seem to have multiple variant but they have identical content. Choosing either of the variant does not seem to have any real impact. It is just confusing.
Example,
Choosing MPL-2.0 or MPL-2.0-no-copyleft-exception , adds the same license file

List of all such duplicate licenses

❯ md5sum options/license/* | cut -f1 -d' ' | sort | uniq -c | sort -n | grep -v '^      1' | cut -c9- | grep -F -f - <(md5sum options/license/*)
06bcb8ed1dec352d24e92f6f39cd138f  options/license/AGPL-1.0-only
06bcb8ed1dec352d24e92f6f39cd138f  options/license/AGPL-1.0-or-later
216109e2c1c3eaf57de2bfc18c11c9f8  options/license/AGPL-3.0-only
216109e2c1c3eaf57de2bfc18c11c9f8  options/license/AGPL-3.0-or-later
a3771b929b1097b53210a4e8da10ed60  options/license/CAL-1.0
a3771b929b1097b53210a4e8da10ed60  options/license/CAL-1.0-Combined-Work-Exception
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-invariants-only
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-invariants-or-later
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-no-invariants-only
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-no-invariants-or-later
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-only
03322744a1a73f36ebf29f98cced39a4  options/license/GFDL-1.1-or-later
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-invariants-only
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-invariants-or-later
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-no-invariants-only
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-no-invariants-or-later
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-only
9f58808219e9a42ff1228309d6f83dc6  options/license/GFDL-1.2-or-later
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-invariants-only
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-invariants-or-later
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-no-invariants-only
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-no-invariants-or-later
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-only
e0771ae6a62dc8a2e50b1d450fea66b7  options/license/GFDL-1.3-or-later
e5b7c80002ef72ab868b43ce47b65125  options/license/GPL-1.0-only
e5b7c80002ef72ab868b43ce47b65125  options/license/GPL-1.0-or-later
3d26203303a722dedc6bf909d95ba815  options/license/GPL-2.0-only
3d26203303a722dedc6bf909d95ba815  options/license/GPL-2.0-or-later
8da5784ab1c72e63ac74971f88658166  options/license/GPL-3.0-only
8da5784ab1c72e63ac74971f88658166  options/license/GPL-3.0-or-later
e3e049b303846e4de3eeafccf035a404  options/license/LGPL-2.0-only
e3e049b303846e4de3eeafccf035a404  options/license/LGPL-2.0-or-later
41890f71f740302b785c27661123bff5  options/license/LGPL-2.1-only
41890f71f740302b785c27661123bff5  options/license/LGPL-2.1-or-later
852ecadc0ac7e6f4d7144d5544a3815b  options/license/LGPL-3.0-only
852ecadc0ac7e6f4d7144d5544a3815b  options/license/LGPL-3.0-or-later
48a3fe23ed1353e0995dadfda05ffdb6  options/license/MPL-2.0
48a3fe23ed1353e0995dadfda05ffdb6  options/license/MPL-2.0-no-copyleft-exception
147016579566640a7c38f035cf962d40  options/license/OFL-1.0
147016579566640a7c38f035cf962d40  options/license/OFL-1.0-no-RFN
147016579566640a7c38f035cf962d40  options/license/OFL-1.0-RFN
2680fce30f17e5fed9bcebd9336e5b78  options/license/OFL-1.1
2680fce30f17e5fed9bcebd9336e5b78  options/license/OFL-1.1-no-RFN
2680fce30f17e5fed9bcebd9336e5b78  options/license/OFL-1.1-RFN

Gitea Version

latest

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

No response

Screenshots

Screenshot from 2022-08-22 14-37-38

Git Version

No response

Operating System

No response

How are you running Gitea?

Reproducible at try.gitea.io. Link: https://try.gitea.io/balki

Database

No response

@balki balki added the type/bug label Aug 22, 2022
@yardenshoham
Copy link
Member

For reference, we get this list from https://github.com/spdx/license-list-data when running build/generate-licenses.go.

@yardenshoham yardenshoham added the topic/build PR changes how Gitea is built, i.e. regarding Docker or the Makefile label May 13, 2023
@yp05327 yp05327 mentioned this issue Sep 26, 2024
10 tasks
techknowlogick added a commit that referenced this issue Oct 1, 2024
Close #278
Close #24076

## Solutions:
- Use
[google/licenseclassifier](https://github.com/google/licenseclassifier/)
Test result between
[google/licensecheck](https://github.com/google/licensecheck) and
[go-license-detector](https://github.com/go-enry/go-license-detector):
#24872 (comment)
Test result between
[google/licensecheck](https://github.com/google/licensecheck) and
[google/licenseclassifier](https://github.com/google/licenseclassifier/):
#24872 (comment)
- Generate License Convert Name List to avoid import license templates
with same contents
Gitea automatically get latest license data from[
spdx/license-list-data](https://github.com/spdx/license-list-data).
But unfortunately, some license templates have same contents. #20915
[click here to see the
list](#24872 (comment))
So we will generate a list of these license templates with same contents
and create a new file to save the result when using `make
generate-license`. (Need to decide the save path)
- Save License info into a new table `repo_license`
Can easily support searching repo by license in the future.

## Screen shot
Single License:

![image](https://github.com/go-gitea/gitea/assets/18380374/41260bd7-0b4c-4038-8592-508706cffa9f)

Multiple Licenses:

![image](https://github.com/go-gitea/gitea/assets/18380374/34ce2f73-7e18-446b-9b96-ecc4fb61bd70)

Triggers:
- [x] Push commit to default branch
- [x] Create repo
- [x] Mirror repo
- [x] When Default Branch is changed, licenses should be updated

Todo:
- [x] Save Licenses info in to DB when there's a change to license file
in the commit
- [x] DB Migration
- [x] A nominal test?
- [x] Select which library to
use(#24872 (comment))
- [x] API Support
- [x] Add repo license table
- ~Select license in settings if there are several licenses(Not
recommended)~
- License board(later, not in this PR)

![image](https://github.com/go-gitea/gitea/assets/18380374/2c3c3bf8-bcc2-4c6d-8ce0-81d1a9733878)

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Denys Konovalov <kontakt@denyskon.de>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: 6543 <m.huber@kithara.com>
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic/build PR changes how Gitea is built, i.e. regarding Docker or the Makefile type/bug
Projects
None yet
Development

No branches or pull requests

2 participants