#! /bin/sh # Only run when building a release test -z "$WT_RELEASE_BUILD" && exit 0 # Check the copyrights. c1=__wt.copyright.1 c2=__wt.copyright.2 c3=__wt.copyright.3 c4=__wt.copyright.4 c5=__wt.copyright.5 check() { # Skip files in which WiredTiger holds no rights. if `egrep "skip $1" dist/s_copyright.list > /dev/null`; then return; fi # It's okay if the file doesn't exist: we may be running in a release # tree with some files removed. test -f $1 || return # Check for a correct copyright header. if `sed -e 2,5p -e 6q -e d $1 | diff - dist/$c1 > /dev/null` ; then return; fi if `sed -e 2,4p -e 5q -e d $1 | diff - dist/$c2 > /dev/null` ; then return; fi if `sed -e 3,6p -e 7q -e d $1 | diff - dist/$c3 > /dev/null` ; then return; fi if `sed -e 3,5p -e 6q -e d $1 | diff - dist/$c4 > /dev/null` ; then return; fi if `sed -e 1,3p -e 4q -e d $1 | diff - dist/$c4 > /dev/null` ; then return; fi if `sed -e 2,7p -e 8q -e d $1 | diff - dist/$c5 > /dev/null` ; then return; fi echo "$1: copyright information is incorrect" exit 1 } # s_copyright is re-entrant, calling itself with individual file names. # Any single argument call is a file name, check its copyright. if [ $# -ne 0 ]; then check $1 exit 0 fi trap 'rm -f $c1 $c2 $c3 $c4 $c5' 0 1 2 3 13 15 year=`date +%Y` cat > $c1 < $c2 < $c3 < $c4 < $c5 </dev/null 2>&1 if test $? -eq 0; then xp="-P 20" fi # Search for files, skipping some well-known 3rd party directories. (cd .. && find [a-z]* -name '*.[chi]' \ -o -name '*.cxx' \ -o -name '*.in' \ -o -name '*.java' \ -o -name '*.py' | sed -e '/Makefile.in/d' \ -e '/^build_posix\//d' \ -e '/api\/leveldb\/basho\//d' \ -e '/api\/leveldb\/hyperleveldb\//d' \ -e '/api\/leveldb\/leveldb\//d' \ -e '/api\/leveldb\/rocksdb\//d' \ -e '/checksum\/power8\//d' \ -e '/checksum\/zseries\//d' \ -e '/\/3rdparty\//d' \ -e '/\/node_modules\//d' \ -e '/dist\/__/d' \ -e 's/^\.\///' | xargs $xp -n 1 -I{} sh dist/s_copyright {}) # One-offs. (cd .. && sh dist/s_copyright test/syscall/wt2336_base/base.run) # A few special cases: LICENSE, documentation, wt utility, some of which have # more than one copyright notice in the file. For files that have only a single # copyright notice, we give it to MongoDB, from 2008 to now. string1="Copyright \(c\) 2014-$year MongoDB, Inc." string2="Copyright \(c\) 2008-$year MongoDB, Inc." string3="printf.*Copyright \(c\) 2008-$year MongoDB, Inc." string4="Public Domain 2014-$year MongoDB, Inc." special_copyright() { cnt=`egrep "$3" ../$1 | wc -l` if test $cnt -ne $2; then echo "$1: copyright information is incorrect" fi } special_copyright LICENSE 1 "$string1" special_copyright dist/s_c_test_create 1 "$string4" special_copyright src/docs/build-javadoc.sh 1 "$string2" special_copyright src/docs/style/footer.html 2 "$string2" special_copyright src/utilities/util_cpyright.c 1 "$string3" exit 0