Use SPDX license disclaimers
The w11 project is licensed under the terms of the GNU General Public License V3 with the or any later version clause. The license is included in the top-level project directory as License.txt. Up to June 2019, most source files had a boilerplate license disclaimer
// This program is free software; you may redistribute and/or modify it under // the terms of the GNU General Public License as published by the Free // Software Foundation, either version 3, or (at your option) any later version. // // This program 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 General Public License // for complete details.or a one line license reference
// License disclaimer see License.txt in $RETROBASE directory
The boilerplate text bloats the codebase. It contributes about 8100 of the 254000 lines of code or 3.2% (as of release w11a_V0.78, see code statistics). The short license reference on the other side becomes ambiguous when a file is seen(copied) out of context and is thus potentially useless. What is clearly needed is a concise, unambiguous, and universally accepted license disclaimer.
The Software Package Data Exchange (SPDX) format provides just this, see
The Linux kernel developers started to use SPDX license tags with kernel version 4.14 (see Linux kernel licensing rules) and have recently converted a large part of the codebase to SPDX tags in a series of large commits for version 5.2 ( see 1, 2, 3, 4, 5).
This motivated me to use SPDX tags in the w11 codebase. All w11 source files have been modified to start with a two-line license and copyright disclaimer of the form
// SPDX-License-Identifier: GPL-3.0-or-later // Copyright 2017-2019 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
65.5% of the files of the w11 project were modified, and about 3.5% of the lines, mostly boilerplate text, were removed. The steps were
Date | Commit | Short-Stats | Changed Files | Comment | ||
---|---|---|---|---|---|---|
mod | (+) | (-) | ||||
2019-06-23 | 82e1a0c | 8 | 28 | 10 | tools/make/*.mk | add tags; other changes |
2019-06-28 | 6b4adf2 | 15 | 143 | 66 | tools/oskit/hook/*.tcl | add tags; other changes |
2019-06-29 | 4fbe46d | 44 | 128 | 393 | tools/bin/* | add tags, drop boilerplate text |
2019-06-30 | 2b953a9 | 9 | 18 | 18 | tools/mcode/*/*.mac | add tags |
2019-07-05 | 99e8b80 | 23 | 54 | 53 | *.mk | add tags |
2019-07-05 | 3c92b79 | 167 | 503 | 195 | Makefile,Makefile.ise | add tags |
2019-07-07 | b6e47e0 | 61 | 122 | 671 | tools/tcl/*/*.tcl | add tags, drop boilerplate text |
2019-07-08 | b4637b1 | 53 | 106 | 159 | tools/tbench/*/*.tcl | add tags |
2019-07-12 | d3cce10 | 525 | 1050 | 5775 | rtl/*/*.vhd | add tags, drop boilerplate text |
2019-07-19 | f0c4ccb | 381 | 752 | 4439 | tools/src/*/*.[chi]pp | add tags, drop boilerplate text; drop \file |
2019-07-20 | db27ced | 56 | 149 | 90 | tools/asm-11/*/*.mac | add tags |
2019-07-20 | 1618759 | 36 | 75 | 75 | tools/man/man*/*.[15] | add tags |
2019-07-21 | 87b21f8 | 28 | 97 | 316 | tools/fx2/src/* | add tags, drop boilerplate text |
2019-07-26 | 0ebc1c7 | 19 | 41 | 55 | *.xdc | add tags |
2019-07-26 | 9f35e48 | 22 | 66 | 24 | tb/*/tb_*.dat etc | add tags |
2019-07-26 | 146fea4 | 31 | 79 | 92 | remaing files | add tags |
Total | 1478 | 3411 | 12431 | 9020 lines removed |