]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
reuse: switch to REUSE 3.2 and REUSE.toml
authorMax Mehl <max.mehl@fsfe.org>
Fri, 5 Jul 2024 12:09:32 +0000 (14:09 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 5 Jul 2024 18:47:48 +0000 (20:47 +0200)
- remove scripts/copyright.pl

Closes #14107

.reuse/dep5 [deleted file]
REUSE.toml [new file with mode: 0644]
docs/CONTRIBUTE.md
scripts/copyright.pl [deleted file]

diff --git a/.reuse/dep5 b/.reuse/dep5
deleted file mode 100644 (file)
index 0715ee3..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: curl
-Upstream-Contact: Daniel Stenberg <daniel@haxx.se>
-Source: https://curl.se
-
-# Tests
-Files: tests/data/test* tests/certs/* tests/stunnel.pem tests/valgrind.supp
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-# Docs in docs/
-Files: docs/FAQ docs/INSTALL docs/KNOWN_BUGS docs/MAIL-ETIQUETTE docs/THANKS docs/TODO docs/libcurl/symbols-in-versions docs/options-in-versions
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-# Windows
-Files: projects/Windows/*
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: libcurl.def
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-# Single files we do not want to edit directly
-Files: CHANGES
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: GIT-INFO.md
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: RELEASE-NOTES
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-# checksrc control files
-Files: lib/.checksrc src/.checksrc docs/examples/.checksrc tests/libtest/.checksrc
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: lib/libcurl.vers.in
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/OS400/README.OS400
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/vms/build_vms.com
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/vms/curl_release_note_start.txt
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/vms/curlmsg.sdl
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/vms/macro32_exactcase.patch
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: packages/vms/readme
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: plan9/README
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: projects/wolfssl_override.props
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: README
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: renovate.json
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
-
-Files: .mailmap
-Copyright: Daniel Stenberg, <daniel@haxx.se>, et al.
-License: curl
diff --git a/REUSE.toml b/REUSE.toml
new file mode 100644 (file)
index 0000000..a3c5a32
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: curl
+# SPDX-FileCopyrightText: Daniel Stenberg, <daniel@haxx.se>, et al.
+
+# This file describes the licensing and copyright situation for files that
+# cannot be annotated directly, for example because of being simply
+# uncommentable. Unless this is the case, a file should be annotated directly.
+#
+# This follows the REUSE specification: https://reuse.software/spec-3.2/#reusetoml
+
+version = 1
+SPDX-PackageName = "curl"
+SPDX-PackageDownloadLocation = "https://curl.se/"
+
+[[annotations]]
+path = [
+  ".mailmap",
+  "CHANGES",
+  "docs/FAQ",
+  "docs/INSTALL",
+  "docs/KNOWN_BUGS",
+  "docs/libcurl/symbols-in-versions",
+  "docs/MAIL-ETIQUETTE",
+  "docs/options-in-versions",
+  "docs/THANKS",
+  "docs/TODO",
+  "GIT-INFO.md",
+  "lib/libcurl.vers.in",
+  "libcurl.def",
+  "packages/OS400/README.OS400",
+  "packages/vms/build_vms.com",
+  "packages/vms/curl_release_note_start.txt",
+  "packages/vms/curlmsg.sdl",
+  "packages/vms/macro32_exactcase.patch",
+  "packages/vms/readme",
+  "plan9/README",
+  "projects/Windows/**", "projects/wolfssl_override.props",
+  "README",
+  "RELEASE-NOTES",
+  "renovate.json",
+  "tests/certs/**",
+  "tests/data/test**",
+  "tests/stunnel.pem",
+  "tests/valgrind.supp",
+  # checksrc control files
+  "docs/examples/.checksrc",
+  "lib/.checksrc",
+  "src/.checksrc",
+  "tests/libtest/.checksrc",
+]
+SPDX-FileCopyrightText = "Daniel Stenberg, <daniel@haxx.se>, et al."
+SPDX-License-Identifier = "curl"
+# If there is licensing/copyright information in or next to these files, perfer that
+precedence = "closest"
index bffcd5a945027960e3ba51ceee67cd0f9f55b674..156ea0bef0143e6944cf1160e67af108ba299a3f 100644 (file)
@@ -316,8 +316,8 @@ fine.
 This means that all files need to have their license and copyright information
 clearly stated. Ideally by having the standard curl source code header, with
 the SPDX-License-Identifier included. If the header does not work, you can use a
-smaller header or add the information for a specific file to the `.reuse/dep5`
+smaller header or add the information for a specific file to the `REUSE.toml`
 file.
 
 You can manually verify the copyright and compliance status by running the
-`./scripts/copyright.pl` script in the root of the git repository.
+[REUSE helper tool](https://github.com/fsfe/reuse-tool): `reuse lint`
diff --git a/scripts/copyright.pl b/scripts/copyright.pl
deleted file mode 100755 (executable)
index 376f023..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/usr/bin/env perl
-#***************************************************************************
-#                                  _   _ ____  _
-#  Project                     ___| | | |  _ \| |
-#                             / __| | | | |_) | |
-#                            | (__| |_| |  _ <| |___
-#                             \___|\___/|_| \_\_____|
-#
-# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at https://curl.se/docs/copyright.html.
-#
-# You may opt to use, copy, modify, merge, publish, distribute and/or sell
-# copies of the Software, and permit persons to whom the Software is
-# furnished to do so, under the terms of the COPYING file.
-#
-# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-# KIND, either express or implied.
-#
-# SPDX-License-Identifier: curl
-#
-###########################################################################
-#
-# Invoke script in the root of the git checkout. Scans all files in git unless
-# given a specific single file.
-#
-# Usage: copyright.pl [file]
-#
-
-my %skips;
-
-# file names
-my %skiplist = (
-    # REUSE-specific file
-    ".reuse/dep5" => "<built-in>",
-
-    # License texts
-    "LICENSES/BSD-3-Clause.txt" => "<built-in>",
-    "LICENSES/BSD-4-Clause-UC.txt" => "<built-in>",
-    "LICENSES/ISC.txt" => "<built-in>",
-    "LICENSES/curl.txt" => "<built-in>",
-    "COPYING" => "<built-in>",
-
-    );
-
-sub scanfile {
-    my ($f) = @_;
-    my $line=1;
-    my $found = 0;
-    open(F, "<$f") || return -1;
-    while (<F>) {
-        chomp;
-        my $l = $_;
-        # check for a copyright statement and save the years
-        if($l =~ /.* ?copyright .* (\d\d\d\d|)/i) {
-            my $count = 0;
-            while($l =~ /([\d]{4})/g) {
-                push @copyright, {
-                  year => $1,
-                  line => $line,
-                  col => index($l, $1),
-                  code => $l
-                };
-                $count++;
-            }
-            if(!$count) {
-                # year-less
-                push @copyright, {
-                    year => -1,
-                    line => $line,
-                    col => index($l, $1),
-                    code => $l
-                };
-                $count++;
-            }
-            $found = $count;
-        }
-        if($l =~ /SPDX-License-Identifier:/) {
-            $spdx = 1;
-        }
-        # allow within the first 100 lines
-        if(++$line > 100) {
-            last;
-        }
-    }
-    close(F);
-    return $found;
-}
-
-sub checkfile {
-    my ($file, $skipped, $pattern) = @_;
-    $spdx = 0;
-    my $found = scanfile($file);
-
-    if($found < 1) {
-        if($skipped) {
-            # just move on
-            $skips{$pattern}++;
-            return 0;
-        }
-        if(!$found) {
-            print "$file:1: missing copyright range\n";
-            return 2;
-        }
-        # this means the file couldn't open - it might not exist, consider
-        # that fine
-        return 1;
-    }
-    if(!$spdx) {
-        if($skipped) {
-            # move on
-            $skips{$pattern}++;
-            return 0;
-        }
-        print "$file:1: missing SPDX-License-Identifier\n";
-        return 2;
-    }
-
-    if($skipped) {
-        print "$file:1: ignored superfluously by $pattern\n" if($verbose);
-        $superf{$pattern}++;
-    }
-
-    return 1;
-}
-
-sub dep5 {
-    my ($file) = @_;
-    my @files;
-    my $copy;
-    open(F, "<$file") || die "can't open $file";
-    my $line = 0;
-    while(<F>) {
-        $line++;
-        if(/^Files: (.*)/i) {
-            my @all = `git ls-files $1`;
-            if(!$all[0]) {
-                print STDERR "$1 matches no files\n";
-            }
-            else {
-                push @files, @all;
-            }
-        }
-        elsif(/^Copyright: (.*)/i) {
-            $copy = $1;
-        }
-        elsif(/^License: (.*)/i) {
-            my $license = $1;
-            for my $f (@files) {
-                chomp $f;
-                if($f =~ /\.gitignore\z/) {
-                    # ignore .gitignore
-                }
-                else {
-                    if($skiplist{$f}) {
-                        print STDERR "$f already skipped at $skiplist{$f}\n";
-                    }
-                    $skiplist{$f} = "dep5:$line";
-                }
-            }
-            undef @files;
-        }
-    }
-    close(F);
-}
-
-dep5(".reuse/dep5");
-
-my $checkall = 0;
-my @all;
-my $verbose;
-if($ARGV[0] eq "-v") {
-    $verbose = 1;
-    shift @ARGV;
-}
-if($ARGV[0]) {
-    push @all, @ARGV;
-}
-else {
-    @all = `git ls-files`;
-    $checkall = 1;
-}
-
-for my $f (@all) {
-    chomp $f;
-    my $skipped = 0;
-    my $miss;
-    my $wro;
-    my $pattern;
-    if($skiplist{$f}) {
-        $pattern = $skip;
-        $skiplisted++;
-        $skipped = 1;
-        $skip{$f}++;
-    }
-
-    my $r = checkfile($f, $skipped, $pattern);
-    $mis=1 if($r == 2);
-    $wro=1 if(!$r);
-
-    if(!$skipped) {
-        $missing += $mis;
-        $wrong += $wro;
-    }
-}
-
-if($verbose) {
-    print STDERR "$missing files have no copyright\n" if($missing);
-    print STDERR "$wrong files have wrong copyright year\n" if ($wrong);
-    print STDERR "$skiplisted files are skipped\n" if ($skiplisted);
-
-    for my $s (@skiplist) {
-        if(!$skips{$s}) {
-            printf ("Never skipped pattern: %s\n", $s);
-        }
-        if($superf{$s}) {
-            printf ("%s was skipped superfluously %u times and legitimately %u times\n",
-                    $s, $superf{$s}, $skips{$s});
-        }
-    }
-}
-
-if($checkall) {
-    for(keys %skiplist) {
-        if(!$skip{$_}) {
-            printf STDERR "$_ is marked for SKIP but is missing!\n";
-        }
-    }
-}
-
-exit 1 if($missing || $wrong);