From 2762efd2575fd2a6aba327d3e5ad39e05a2ed37c Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 1 Nov 2019 13:58:27 +0100 Subject: checksrc: repair the copyrightyear check - Consider a modified file to be committed this year. - Make the travis CHECKSRC also do COPYRIGHTYEAR scan. - 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 --- .travis.yml | 4 ++++ lib/checksrc.pl | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3c4fb43e5..50adfe3ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -609,6 +609,10 @@ script: make test-nonflaky fi if [ -n $CHECKSRC ]; then + echo "enable COPYRIGHTYEAR" > ./docs/examples/.checksrc + echo "enable COPYRIGHTYEAR" > ./lib/.checksrc + echo "enable COPYRIGHTYEAR" > ./src/.checksrc + echo "enable COPYRIGHTYEAR" > ./include/curl/.checksrc make checksrc fi fi diff --git a/lib/checksrc.pl b/lib/checksrc.pl index b2cfa8355..834364561 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) && -- cgit v1.2.1