Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2020-08-24 17:13:36


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
>> <boost_at_[hidden]> 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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk