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 <>

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