Migrate License field to SPDX identifiers

https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2

Reviewed-by: Frédéric Bérat <fberat@redhat.com>
This commit is contained in:
Arjun Shankar 2023-09-01 12:33:32 +02:00
parent 17cf2b8eab
commit 067a9cbdac
2 changed files with 120 additions and 2 deletions

108
bison-license-check.sh Executable file
View File

@ -0,0 +1,108 @@
#!/bin/bash
# Run this in a bison source tree basedir to quickly guess the licensing
# status of various bison source files. e.g. when using
# glibc-maintainer-scripts for package maintenance, this means running it in
# the bison-patches directory.
# We use this because for some reason, fossology is unable to grok bison
# sources for a license analysis.
for f in $(find . -type f | grep -v '\.git/' | grep -v 'gnulib/'); do
if file $f | grep -q text; then # Hoping this is true iff the file is a text file
license="Unknown"
if head -n50 $f \
| grep -C50 -i "This.*file is free software; the Free Software Foundation" \
| grep -C50 -i "unlimited permission to copy and/or distribute it" \
| grep -C50 -i "with or without" \
| grep -qi "modifications, as long as this notice is preserved"; then
license="FSFULLR"
fi
if head -n50 $f \
| grep -C50 -i "This.*\(program\|file\) is free software" \
| grep -C50 -i "GNU General Public License" \
| grep -C50 -i "either version 2" \
| grep -qi "any later version"; then
license="GPL-2.0-or-later"
fi
if head -n50 $f \
| grep -C50 -i "This.*\(program\|file\) is free" \
| grep -C50 -i "GNU General Public License" \
| grep -C50 -i "either version 3" \
| grep -qi "any later version"; then
license="GPL-3.0-or-later"
fi
# Order of check for v2 and v2.1 is important here;
# "either version 2" will also match "either version 2.1"
if head -n50 $f \
| grep -C50 -i "This.*\(program\|file\) is free software" \
| grep -C50 -i "GNU Lesser General Public License" \
| grep -C50 -i "either version 2" \
| grep -qi "any later version"; then
license="LGPL-2.0-or-later"
fi
if head -n50 $f \
| grep -C50 -i "Th.* is free software" \
| grep -C50 -i "GNU Lesser General Public" \
| grep -C50 -i "License" \
| grep -C50 -i "either" \
| grep -C50 -i "version 2.1" \
| grep -qi "any later version"; then
license="LGPL-2.1-or-later"
fi
if head -n50 $f \
| grep -C50 -i "This.*\(program\|file\) is free software" \
| grep -C50 -i "GNU Lesser General Public License" \
| grep -C50 -i "either version 3" \
| grep -qi "any later version"; then
license="LGPL-3.0-or-later"
fi
if head -n50 $f \
| grep -C50 -i "Permission is granted" \
| grep -C50 -i "copy, distribute.*modify" \
| grep -C50 -i "GNU Free Documentation License" \
| grep -C50 -i "Version 1.3" \
| grep -qi "any later version"; then
license="GFDL-1.3-or-later"
fi
if head -n50 $f \
| grep -C50 -i "Permission is hereby granted, free of charge" \
| grep -C50 -i "to any person" \
| grep -C50 -i "the Software without restriction" \
| grep -C50 -i "use, copy, modify, merge, publish, distribute, sublicense" \
| grep -qi "X Consortium"; then
license="X11"
fi
if head -n50 $f \
| grep -C50 -i "This file is distributed under the same license as" \
| grep -qi "package"; then
license="Same-as-package-license"
fi
if head -n50 $f \
| grep -A20 -i "as .*exception" \
| grep -qi "2\.2 of bison"; then
license="$license WITH Bison-exception-2.2"
fi
if head -n50 $f \
| grep -A20 -i "as .*exception" \
| grep -A20 -i "distribute" \
| grep -A20 -i "generated by autoconf" \
| grep -qi "same distribution terms"; then
license="$license WITH Autoconf-exception-generic-3.0"
fi
echo $license "("$f")"
fi;
done | sort

View File

@ -1,8 +1,12 @@
Summary: A GNU general-purpose parser generator Summary: A GNU general-purpose parser generator
Name: bison Name: bison
Version: 3.8.2 Version: 3.8.2
Release: 5%{?dist} Release: 6%{?dist}
License: GPLv3+
# An SPDX license string check done against bison-3.8.2 found strings
# corresponding to the following licenses across the bison source tree:
License: GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic-3.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH Autoconf-exception-generic AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND FSFULLR AND GFDL-1.3-or-later AND X11
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
# genereted from https://ftp.gnu.org/gnu/gnu-keyring.gpg via: # genereted from https://ftp.gnu.org/gnu/gnu-keyring.gpg via:
@ -120,6 +124,12 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info*
%{_libdir}/liby.a %{_libdir}/liby.a
%changelog %changelog
* Fri Sep 1 2023 Arjun Shankar <arjun@redhat.com> - 3.8.2-6
- Analyse bison sources for license information
- Migrate License field to SPDX identifiers for
https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
(#2222079)
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-5 * Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild