On Thu, Jun 11, 2026 at 10:54 PM Tim Bird <[email protected]> wrote: > > I believe the nls files were previously assigned a MODULE_LICENSE > of "Dual BSD/GPL" incorrectly. At no time in the history > of the files in the kernel source tree is there mention or reference > to the BSD license being applicable to these files. > > The license "BSD without advertising clause" was introduced in a > set of changes for Linux version v2.4.10.2, in September of 2001 > (right as MODULE_LICENSE was being introduced into the kernel). > > I have searched lore and other lkml archives to see who was originally > responsible for the assignment of the 'BSD...' license string, > and I cannot find any stand-alone patch or any reference to this > string or to the nls files for this time period, nor any justification > for this license assignment. At this point, the nls files had > been in the kernel tree for 4 years, with few modifications from > their original submission in 1997. > > Later in 2001, because this license string tainted the kernel, > the license in the MODULE_LICENSE macro was changed to "Dual BSD/GPL". > However, I believe the original "BSD without advertising clause" was > assigned by mistake. > > Correct this mistake and use what I believe is the correct license > of "Dual Unicode/GPL" for these files. Also, add that string > to the list of acceptable licenses for loading kernel modules in > both the kernel and checkpatch.pl.
I haven't attempted to try to understand this nonsuperficially but I understand the "Dual BSD/GPL" tradition here to mean something corresponding to what SPDX would call `BSD-3-Clause OR GPL-2.0`, i.e. "Dual" refers to a disjunctive dual license, the module can be regarded as licensed under either BSD or GPL, but you've characterized the license of these files as `Unicode-3.0 AND GPL-2.0`, i.e. a conjunctive license (meaning "some of this stuff is under Unicode-3.0 and some of this stuff is under GPL-2.0"). I.e. from my admittedly naive perspective this looks wrong, or else sort of arbitrary. I.e. it feels to me like you're taking the conclusion you reached as to the license of the file - let's just say "Foo AND Bar" -- and then shoehorning that into the MODULE_LICENSE macro in a context that ought to mean "Foo OR Bar". Also, I'm not actually sure why you took the source files that had the old Unicode license and concluded that they should be represented as 'Unicode-3.0 AND GPL-2.0' instead of just 'Unicode-3.0'. What are you asserting is under the GPL in these files that is not (purportedly) under the Unicode license? Not sure whether this ultimately matters, to be sure. Richard

