On 2020-08-24 16:29, Phil Endecott via Boost wrote:
Zach Laine wrote:
On Sun, Aug 23, 2020 at 11:08 AM Phil Endecott via Boost
wrote: Could you please explain what you've done about the copyright issues?
Sure. I've reimplemented the code that originally came from ICU, and ...
As far as I can tell, you still depend on the Unicode data files that have a Boost-incompatible licence. You previously included this Unicode copyright text in the documentation but that page has now been removed, if I'm looking in the right place.
... removed the ICU copyright from these files. They are the output of a code generation tool, and so are not copyrightable individually (like the output of lex and yacc).
For the benefit of everyone else let me describe what Zach does:
1. There are some files at unicode.org that have a Boost-incompatible licence.
I believe, these are the terms of use published by Unicode Inc.: http://www.unicode.org/copyright.html https://www.unicode.org/license.html I'll cite the relevant paragraph from the latter document: Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either (a) this copyright and permission notice appear with all copies of the Data Files or Software, or (b) this copyright and permission notice appear in associated Documentation. I'm not a lawyer, but is doesn't seem to contradict our license requirements: https://www.boost.org/development/requirements.html#License In particular: - It grants permission to copy, use and distribute free of charge and commercially. - It requires the license to appear in the docs or the source code of the data (which, I believe, is in textual form). - It does *not* require the license to appear in the compiled binaries, which may contain the data in binary form. Am I missing some aspect where the license is incompatible with Boost requirements?
2. Zach has some Python scripts at https://github.com/tzlaine/text/tree/master/scripts
3. The scripts download the files from unicode.org, convert them into C++ source files, and prefix the result "(C) Zach Laine Boost License".
4. These generated files are checked in at https://github.com/tzlaine/text/tree/master/include/boost/text/data The intention is not that end-users of Boost.Text will run the scripts, but rather that the generated files will be included in the Boost source distribution.
Zach thinks this is OK because "they are the output of a code generation tool, and so are not copyrightable individually (like the output of lex and yacc)".
I think that's completely wrong. I believe it's a well-established principle of software copyright law that the output of a tool - whether that is g++, bison, or rot13 - is a derived work of the input to that tool. You cannot (without permission) take example.y that's (C) Megacorp, run bison on it, and claim that the resulting example.tab.c is now (C) Someone Else.
Changing the copyright indeed does not look good. However, generally, the terms of use of the source and compiled/translated forms can be different, depending on the license.
This worries me. We really, really don't want to be shipping code that has copyright violations!
Agreed to this. I think, Boost needs to consult with a lawyer on this matter. Personally, I wouldn't like if Boost stopped being entirely covered by the BSL. As I said earlier, this is an important property for Boost to be acceptable in many environments. However, if the Unicode Inc. terms of use don't contradict the BSL and Boost License requirements (as determined by a lawyer) and there really is no other way around it, I'd accept it as an exception for the sake of a greater good of improving Unicode support in C++. Should it end up this way, the licensing terms must be explained clearly in Boost.Text docs, with proper copyright attribution. With a note that license compatibility has been verified and confirmed by a lawyer.