From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 35491 invoked by alias); 16 Aug 2019 11:09:46 -0000 Mailing-List: contact dwz-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: dwz-owner@sourceware.org Received: (qmail 35109 invoked by uid 89); 16 Aug 2019 11:09:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy= X-Spam-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-HELO: mx1.suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Date: Tue, 01 Jan 2019 00:00:00 -0000 From: Tom de Vries To: dwz@sourceware.org, jakub@redhat.com Subject: [0.13 backport][committed] Update --version copyright message Message-ID: <20190816110939.GA13524@delia> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-SW-Source: 2019-q3/txt/msg00097.txt.bz2 Hi, [ This is a backport of master commit dda7184. Output of contrib/gen-copyright-years.sh and dwz --version in this log message have been updated accordingly. ] In commit 9a663b4 "Update copyright" we've updated copyright in the sources, but not in the --version copyright message. Update the --version copyright message, using new script contrib/gen-copyright-years.sh that extracts the copyright years from the source files, and generates a file COPYRIGHT_YEARS containing define flags: ... -DFSF_YEARS='"1992-2017"' -DRH_YEARS='"2001-2018"' -DSUSE_YEARS='"2019"' ... resulting in: ... $ dwz --version dwz version 0.13 Copyright (C) 2001-2018 Red Hat, Inc. Copyright (C) 1992-2017 Free Software Foundation, Inc. Copyright (C) 2019 SUSE LLC. ... Committed to dwz-0.13-branch. Thanks, - Tom Update --version copyright message 2019-08-15 Tom de Vries * contrib/copyright-lines.awk: New file. * contrib/gen-copyright-years.sh: New file. * COPYRIGHT_YEARS: Generate. * Makefile (override CFLAGS +=, dwz-for-test): Add COPYRIGHT_YEARS defines. * dwz.c (version): Update copyright message using COPYRIGHT_YEARS defines. --- COPYRIGHT_YEARS | 3 + Makefile | 6 +- contrib/copyright-lines.awk | 27 +++++++ contrib/gen-copyright-years.sh | 162 +++++++++++++++++++++++++++++++++++++++++ dwz.c | 5 +- 5 files changed, 199 insertions(+), 4 deletions(-) diff --git a/COPYRIGHT_YEARS b/COPYRIGHT_YEARS new file mode 100644 index 0000000..1dc95a5 --- /dev/null +++ b/COPYRIGHT_YEARS @@ -0,0 +1,3 @@ +-DFSF_YEARS='"1992-2017"' +-DRH_YEARS='"2001-2018"' +-DSUSE_YEARS='"2019"' diff --git a/Makefile b/Makefile index 7e281e5..c945c9d 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,8 @@ srcdir=$(shell pwd) endif CFLAGS = -O2 -g DWZ_VERSION := $(shell cat $(srcdir)/VERSION) -override CFLAGS += -Wall -W -D_FILE_OFFSET_BITS=64 -DDWZ_VERSION='"$(DWZ_VERSION)"' +override CFLAGS += -Wall -W -D_FILE_OFFSET_BITS=64 \ + -DDWZ_VERSION='"$(DWZ_VERSION)"' $(shell cat $(srcdir)/COPYRIGHT_YEARS) prefix = /usr exec_prefix = $(prefix) bindir = $(exec_prefix)/bin @@ -52,7 +53,8 @@ DWZ_TEST_SOURCES := $(patsubst %.o,%-for-test.c,$(OBJECTS)) dwz-for-test: $(DWZ_TEST_SOURCES) $(CC) $(DWZ_TEST_SOURCES) -O2 -g -lelf -o $@ -Wall -W -DDEVEL \ - -D_FILE_OFFSET_BITS=64 -DDWZ_VERSION='"for-test"' -I$(srcdir) + -D_FILE_OFFSET_BITS=64 -DDWZ_VERSION='"for-test"' -I$(srcdir) \ + $(shell cat $(srcdir)/COPYRIGHT_YEARS) min: $(CC) $(TEST_SRC)/min.c $(TEST_SRC)/min-2.c -o $@ -g diff --git a/contrib/copyright-lines.awk b/contrib/copyright-lines.awk new file mode 100644 index 0000000..b031c50 --- /dev/null +++ b/contrib/copyright-lines.awk @@ -0,0 +1,27 @@ +BEGIN { + start=0 +} + +/Copyright \(C\).*[.]/ { + print + next +} + +/Copyright \(C\)/ { + start=1 + printf $0 + next +} + +/[.]/ { + if (start == 0) + next + print + start=0 +} + +// { + if (start == 0) + next + printf $0 +} diff --git a/contrib/gen-copyright-years.sh b/contrib/gen-copyright-years.sh new file mode 100755 index 0000000..1ef6f3f --- /dev/null +++ b/contrib/gen-copyright-years.sh @@ -0,0 +1,162 @@ +#!/bin/bash + +this=$(basename $0) + +max () +{ + local a + a=$1 + local b + b=$2 + + if [ "$a" = "" ]; then + echo "$b" + return + elif [ "$b" = "" ]; then + echo "$a" + return + fi + + if [ $a -gt $b ]; then + echo "$a" + else + echo "$b" + fi +} + +min () +{ + local a + a="$1" + local b + b="$2" + + if [ "$a" = "" ]; then + echo "$b" + return + elif [ "$b" = "" ]; then + echo "$a" + return + fi + + if [ $a -lt $b ]; then + echo "$a" + else + echo "$b" + fi +} + +print_range () { + local a + a="$1" + local b + b="$2" + + if [ "$a" = "$b" ]; then + echo "$a" + return + fi + echo "$a-$b" +} + +process_line () +{ + local line + line="$1" + + fsf=false + rh=false + suse=false; + + if echo "$line" \ + | grep -q "Free Software Foundation, Inc\."; then + fsf=true + who=fsf + line=$(echo "$line" \ + | sed 's/Free Software Foundation, Inc\.//') + elif echo "$line" \ + | grep -q "Red Hat, Inc\."; then + rh=true + who=rh + line=$(echo "$line" \ + | sed 's/Red Hat, Inc\.//') + elif echo "$line" \ + | grep -q "SUSE LLC\."; then + suse=true + who=suse + line=$(echo "$line" \ + | sed 's/SUSE LLC\.//') + else + echo "error: unknown copyright: $line" + exit 1 + fi + + line=$(echo "$line" \ + | sed 's/[,-]/ /g') + max_year=$(echo "$line" \ + | sed 's/ /\n/g' \ + | grep -v '^$' \ + | sort -n -r \ + | head -n 1) + min_year=$(echo "$line" \ + | sed 's/ /\n/g' \ + | grep -v '^$' \ + | sort -n \ + | head -n 1) + + if $fsf; then + fsf_max=$(max "$fsf_max" "$max_year") + fsf_min=$(min "$fsf_min" "$min_year") + elif $rh; then + rh_max=$(max "$rh_max" "$max_year") + rh_min=$(min "$rh_min" "$min_year") + elif $suse; then + suse_max=$(max "$suse_max" "$max_year") + suse_min=$(min "$suse_min" "$min_year") + fi +} + +main () +{ + if ! git status --ignored 2>&1 \ + | grep -q "nothing to commit, working tree clean"; then + echo "Git tree not clean" + exit 1 + fi + + local tmp + tmp=$(mktemp) + + for f in *.c *.h *.def; do + if ! grep -q "Copyright (C)" $f; then + echo "error: found file without copyright marker: $f" + exit 1 + fi + + echo processing file: $f + + grep -v '"' $f \ + | awk -f contrib/copyright-lines.awk \ + > $tmp + + while read line; do + line=$(echo "$line" \ + | sed 's/ */ /g') + line=$(echo "$line" \ + | sed 's/.*Copyright (C) *//') + echo "Processing line: $line" + process_line "$line" + done < $tmp + done + + rm -f $tmp + + echo "-DFSF_YEARS='\"$(print_range $fsf_min $fsf_max)\"'" \ + > COPYRIGHT_YEARS + echo "-DRH_YEARS='\"$(print_range $rh_min $rh_max)\"'" \ + >> COPYRIGHT_YEARS + echo "-DSUSE_YEARS='\"$(print_range $suse_min $suse_max)\"'" \ + >> COPYRIGHT_YEARS +} + +main "$@" diff --git a/dwz.c b/dwz.c index 266f56d..727314f 100644 --- a/dwz.c +++ b/dwz.c @@ -12395,8 +12395,9 @@ version (void) { fprintf (stderr, "dwz version " DWZ_VERSION "\n" - "Copyright (C) 2001-2012 Red Hat, Inc.\n" - "Copyright (C) 2003 Free Software Foundation, Inc.\n" + "Copyright (C) " RH_YEARS " Red Hat, Inc.\n" + "Copyright (C) " FSF_YEARS " Free Software Foundation, Inc.\n" + "Copyright (C) " SUSE_YEARS " SUSE LLC.\n" "This program is free software; you may redistribute it under the terms of\n" "the GNU General Public License version 3 or (at your option) any later version.\n" "This program has absolutely no warranty.\n");