From: Daniel Stenberg Date: Fri, 1 Nov 2019 12:58:27 +0000 (+0100) Subject: checksrc: repair the copyrightyear check X-Git-Tag: curl-7_68_0~183 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1f73138ce1272ea52c9b0119f5ef67aed28af836;p=thirdparty%2Fcurl.git checksrc: repair the copyrightyear check - Consider a modified file to be committed this year. - Make the travis CHECKSRC also do COPYRIGHTYEAR scan in examples and includes - Ignore 0 parents when getting latest commit date of file. since in the CI we're dealing with a truncated repo of last 50 commits, the file's most recent commit may not be available. when this happens git log and rev-list show the initial commit (ie first commit not to be truncated) but that's incorrect so ignore it. Ref: https://github.com/curl/curl/pull/4547 Closes https://github.com/curl/curl/pull/4549 Co-authored-by: Jay Satiro --- diff --git a/.travis.yml b/.travis.yml index 3c4fb43e54..73ac0fb018 100644 --- a/.travis.yml +++ b/.travis.yml @@ -609,6 +609,8 @@ script: make test-nonflaky fi if [ -n $CHECKSRC ]; then + echo "enable COPYRIGHTYEAR" > ./docs/examples/.checksrc + echo "enable COPYRIGHTYEAR" > ./include/curl/.checksrc make checksrc fi fi diff --git a/lib/checksrc.pl b/lib/checksrc.pl index b2cfa83559..8343645610 100755 --- a/lib/checksrc.pl +++ b/lib/checksrc.pl @@ -6,7 +6,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 2011 - 2018, Daniel Stenberg, , et al. +# Copyright (C) 2011 - 2019, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -717,12 +717,17 @@ sub scanfile { my $commityear = undef; @copyright = sort {$$b{year} cmp $$a{year}} @copyright; + # if the file is modified, assume commit year this year if(`git status -s -- $file` =~ /^ [MARCU]/) { $commityear = (localtime(time))[5] + 1900; } - elsif (`git rev-list --count origin/master..HEAD -- $file` !~ /^0/) { - my $grl = `git rev-list --max-count=1 --timestamp HEAD -- $file`; - $commityear = (localtime((split(/ /, $grl))[0]))[5] + 1900; + else { + # min-parents=1 to ignore wrong initial commit in truncated repos + my $grl = `git rev-list --max-count=1 --min-parents=1 --timestamp HEAD -- $file`; + if($grl) { + chomp $grl; + $commityear = (localtime((split(/ /, $grl))[0]))[5] + 1900; + } } if(defined($commityear) && scalar(@copyright) &&