Skip to content

contributing: Use SPDX copyright tags in more complicated file headers - #7751

Open
wenzeslaus wants to merge 1 commit into
OSGeo:mainfrom
wenzeslaus:spdx-deferred
Open

contributing: Use SPDX copyright tags in more complicated file headers#7751
wenzeslaus wants to merge 1 commit into
OSGeo:mainfrom
wenzeslaus:spdx-deferred

Conversation

@wenzeslaus

@wenzeslaus wenzeslaus commented Jul 17, 2026

Copy link
Copy Markdown
Member

Converts the 31 files that #7743 left out because their notices needed reading rather than pattern matching.

  • Names and years preserved as is; notices naming several people are split into one line per person, with a shared range repeated on each line.
  • Organization names with punctuation stay on one line (mundialis GmbH & Co.KG, GDF Hannover bR, http://www.gdf-hannover.de).
  • Text interleaved with the old notices survives unchanged, including the third-party permission notice in r.texture and the RMIT license text in v.delaunay.

The largest split, vector/v.vol.rst:

- * COPYRIGHT:    (C) 1989, 1993, 2000 L. Mitas,  H. Mitasova,
- *               I. Kosinovsky, D. Gerdes, J. Hofierka
-
- *               This program is free software under the GNU General Public
- *               License (>=v2). Read the file COPYING that comes with GRASS
- *               for details.
+ * SPDX-FileCopyrightText: 1989, 1993, 2000 L. Mitas
+ * SPDX-FileCopyrightText: 1989, 1993, 2000 H. Mitasova
+ * SPDX-FileCopyrightText: 1989, 1993, 2000 I. Kosinovsky
+ * SPDX-FileCopyrightText: 1989, 1993, 2000 D. Gerdes
+ * SPDX-FileCopyrightText: 1989, 1993, 2000 J. Hofierka
+ * SPDX-FileCopyrightText: Other GRASS authors
+ * SPDX-License-Identifier: GPL-2.0-or-later

Two decisions here go beyond the mechanical rules of #7743:

  • The r.geomorphon clause (C) Scientific idea of geomorphon copyrighted to authors. is dropped. It was likely meant as an acknowledgement of the authors of the geomorphon concept rather than as a record of a legal right, and that acknowledgement is given by the tool documentation, which cites their papers and lists them as authors.
  • Three imagery tools (i.albedo, i.aster.toar, i.evapo.time) whose prose named an unversioned GNU Lesser General Public License while pointing at the GPL COPYING file are converted to GPL-2.0-or-later, following the COPYING reference.

Like #7743, this should technically merge after #7749, which defines "Other GRASS authors", but it does not have to.

Written with AI assistance (Claude Code with Opus 4.8 and Fable 5); the decisions are the author's.

Details: per-file resolutions and how it was checked (AI generated)

Splits into one line per holder

  • vector/v.vol.rst/* (8 files): five holders, shared years 1989, 1993, 2000 repeated on each line.
  • raster/r.stats.zonal/main.c: 2007,2008 Martin Schroeder and 2007,2008 Glynn Clements.
  • scripts/r.tileset/r.tileset.py: 2006-2009 Cedric Shoc and 2006-2009 Martin Landa, spelling as written.
  • scripts/r.out.xyz/r.out.xyz.py: two clauses, each with its own year, 2006 Hamish Bowman and 2008 Glynn Clements.

Single holders whose names carry punctuation

2019 mundialis GmbH & Co.KG (two files), 2003 University of Sannio (BN), Benevento, Italy, and 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de, each on one line exactly as written.

Interleaved text kept in place

The NOTE in lib/gis/open_misc.c, the modification history in vector/v.perturb/main.c, the port note in scripts/r3.in.xyz/r3.in.xyz.py, the attribution paragraph in macos/build_grass_app.bash, the third-party permission notice below the header in raster/r.texture/main.c, and the RMIT license text in vector/v.delaunay/main.c are all byte-identical to before.

v.delaunay (8 files)

(C) RMIT 1993 becomes SPDX-FileCopyrightText: 1993 RMIT, years first like every other line in the tree. The team clause becomes the standard bare collective line, so its 2008-2009 years are not carried over; this is the one place in this PR where years from the old notice are not preserved.

Checked

Each of the 31 files was changed by a single reviewed replacement applied by a small script that asserts the old text occurs exactly once, the trailing bytes are unchanged, no COPYRIGHT: field remains, and exactly one license identifier results. No emitted C line exceeds 78 columns, and pre-commit run on all 31 files passes with nothing reformatted. lib/vector/rtree/docs/MAILS, an archived 2002 email that quotes a header inside a permission request, remains excluded and untouched.

Convert the 31 files the bulk conversion left alone because their notices
needed reading rather than pattern matching. Names and years stay verbatim;
each holder gets its own line; the collective line and the license
identifier follow the same rules as everywhere else.

Notices naming several people are split into one line per person, with a
shared year range repeated on each line: v.vol.rst (five holders),
r.stats.zonal, r.tileset, and r.out.xyz, whose two clauses carry their own
years. Organization names with punctuation stay on one line: mundialis
GmbH & Co.KG, University of Sannio (BN), Benevento, Italy, and GDF
Hannover bR with its URL. Text interleaved with the old notices survives
unchanged: the NOTE in open_misc.c, the modification history in v.perturb,
the port note in r3.in.xyz, the third-party permission notice in
r.texture, and the RMIT license text in v.delaunay.

Two decisions go beyond the bulk conversion rules and were made by the
maintainer. The geomorphon clause on the scientific idea is dropped: it
was likely meant as an acknowledgement of the authors of the geomorphon
concept rather than as a record of a legal right, and that
acknowledgement is given by the tool documentation, which cites their
papers and lists them as authors. The three imagery tools whose prose
named an unversioned GNU Lesser General Public License while pointing at
the GPL COPYING file are converted to GPL-2.0-or-later, following the
COPYING reference.

In v.delaunay, the RMIT clause becomes "1993 RMIT" and the team clause
becomes the standard bare collective line, so its 2008-2009 years are not
carried over.

The edits were applied by a small script with one reviewed replacement per
file, written with AI assistance (Claude Opus 4.8); the decisions are the
author's.

@neteler neteler left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have scanned it, looks good to me

@github-actions github-actions Bot added macOS macOS specific vector Related to vector data processing raster Related to raster data processing Python Related code is in Python C Related code is in C libraries module imagery raster3d labels Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C Related code is in C imagery libraries macOS macOS specific module Python Related code is in Python raster Related to raster data processing raster3d vector Related to vector data processing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants