about summary refs log tree commit diff
path: root/scripts/update-copyrights
blob: a582fa1476b0353eac767dd0670b2b8ac518e691 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh
# Update copyright year lists.
# Copyright (C) 2012-2023 Free Software Foundation, Inc.
# This file is part of the GNU C Library.

# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <https://www.gnu.org/licenses/>.

# Run this script with the first argument being the location of
# gnulib's update-copyright script.  Any other arguments are ignored.
# FSF copyright notices in the glibc source directory containing this
# script will be updated; glibc must then be built to update generated
# files.  Copyright dates in --version copyright notices are not
# updated.

set -e

export LC_ALL=C
export UPDATE_COPYRIGHT_FORCE=1
export UPDATE_COPYRIGHT_USE_INTERVALS=2
export UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79

update_script=$1

if ! [ -f "$update_script" ]; then
  echo "error: first argument must point to gnulib update-copyright script" >&2
  exit 1
fi

cd "$(dirname "$0")/.."

files=$(find . -type f | sed 's|^\./||' | grep -v '^\.git/')

for f in $files; do
  case $f in
    COPYING | COPYING.LIB | manual/fdl-1.3.texi | manual/lgpl-2.1.texi)
      # Licenses imported verbatim from FSF sources.
      ;;
    manual/texinfo.tex | scripts/config.guess | scripts/config.sub \
      | scripts/install-sh | scripts/mkinstalldirs | scripts/move-if-change)
      # Other files imported verbatim from other GNU repositories.
      ;;
    po/*.po)
      # Files imported verbatim from the Translation Project.
      ;;
    INSTALL \
      | locale/programs/charmap-kw.h | locale/programs/locfile-kw.h \
      | po/libc.pot | sysdeps/gnu/errlist.c)
      # Generated files.
      ;;
    configure | */configure | preconfigure | */preconfigure)
      # Possibly generated files.
      if ! [ -f "$f.ac" ]; then
	"$update_script" "$f"
      fi
      ;;
    nss/initgroups.c | misc/bits/stab.def | posix/regex.h \
      | sysdeps/wordsize-32/divdi3.c)
      # Pre-1991 gaps in copyright years, so cannot use a single range.
      UPDATE_COPYRIGHT_USE_INTERVALS=1 "$update_script" "$f"
      ;;
    csu/version.c | elf/dl-usage.c)
      # Update the copyright string in the output message.
      year="$(date +%Y)"
      sed -i 's/^Copyright (C) [0-9]\{4\} /Copyright (C) '"$year"' /' $f
      "$update_script" "$f"
      ;;
    *)
      "$update_script" "$f"
      ;;
  esac
done