109 lines
3.6 KiB
Bash
109 lines
3.6 KiB
Bash
|
#!/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
|