-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
License problem: ConvertUTF is non-free, use libicu instead #349
Comments
Not sure I see this as a problem; AFAIK we have not modified it and since it was included |
Ok, so after a very quick look, the problem with libicu is that it is serious overkill |
I agree libicu is overkill. On Monday I'll take a closer look at the convertutf license and see if there are other alternatives; I'll also contribute to the conversation regarding the potential problem for NetCDF that it may pose. |
The problem with the ConvertUTF code is that its license is incompatible with the license of NetCDF. The NetCDF license explicitly allows modification, which the ConvertUTF license does not. The ghostscript bugreport linked from the Debian bugreport has more information:
Because NetCDF does not comply with the DFSG due to the inclusion of the ConvertUTF files which don't allow modification, NetCDF and all its reverse dependencies need to be removed from Debian & Ubuntu if this issue is not resolved. Which would be a great disservice to our users. |
I found an alternative that claims to be the MIT license.
|
Yes, the MIT licensed alternative would be a good replacement (license-wise), since both it and the NetCDF explicitly allow modification and don't contain terms contrary to the other license. |
I have just discovered two things.
1. At some point, the utf8proc license was modified
to allow modification
2. continued development of utf8proc was taken over by the
Julia Language developers.
My reference is this page:
https://github.com/JuliaLang/utf8proc/blob/master/LICENSE.md
I will immediately shift to using this version of utf8proc.
Please examine the license on the above referenced web page
and let me know if it is satisfactory.
=Dennis Heimbigner
Unidata
…On 1/22/2017 2:56 PM, Bas Couwenberg wrote:
The lintian QA tool reported a license problem with the
|ConvertUTF.{c,h}| files included in |ncgen|
(license-problem-convert-utf-code
<https://lintian.debian.org/tags/license-problem-convert-utf-code.html>):
The following file source files include material under a non-free
license from Unicode Inc. Therefore, it is not possible to ship this
in main or contrib.
This license does not grant any permission to modify the files (thus
failing DFSG#3). Moreover, the license grant to attempt to restrict
use to "products supporting the Unicode Standard" (thus failing DFSG#6).
In this case a solution is to use libicu and to remove this code by
repacking.
If this is a false-positive, please report a bug against Lintian.
Refer to https://bugs.debian.org/823100 for details.
Quoting the mentioned Debian Free Software Guidelines (DFSG) paragraphs:
*3. Derived Works*
The license must allow modifications and derived works, and must
allow them to be distributed under the same terms as the license of
the original software.
*6. No Discrimination Against Fields of Endeavor*
The license must not restrict anyone from making use of the program
in a specific field of endeavor. For example, it may not restrict
the program from being used in a business, or from being used for
genetic research.
Please remove the problematic |ConvertUTF.{c,h}| files and use |libicu|
instead.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#349>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA3P23pcx1GbHm8BdAglMkLAqB-pb4gbks5rU9CngaJpZM4LqhMu>.
|
Unfortunately the Unicode data license is non-free due to the advertising clause (like BSD-4-Clause). |
Interesting. You are aware, I presume that libicu also has this same restriction. Hence |
I was not aware of that icu used the same license terms, since the icu license terms were apparently deemed acceptable for Debian main by the FTP masters (although that's no precedent), it's probably fine to adopt the utf8proc from Julia. If they reject the netcdf upload due to those license terms I'll raise that issue then. |
It turns out that the utf8proc software we are using was turned over to the Julia Language developers and the license terms changed to allow modification. (https://github.com/JuliaLang/utf8proc/blob/master/LICENSE.md). So the fix here is as follows: 1. Wrap the library with a fixed interface: libdispatch/dutf8.c and include/ncutf8.h. 2. Replace the existing utf8proc code with the new version from https://github.com/JuliaLang/utf8proc. 3. Add a couple more test cases: nc_test/tst_utf8_validate.c and nc_test_utf8_phrases.c. If/when I can find a usable normalization test, I will incorporate that later.
ok
…On 2/16/2017 10:35 AM, Bas Couwenberg wrote:
I was not aware of that icu used the same license terms, since the icu
license terms were apparently deemed acceptable for Debian main by the
FTP masters (although that's no precedent), it's probably fine to adopt
the utf8proc from Julia. If they reject the netcdf upload due to those
license terms I'll raise that issue then.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#349 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AA3P26pTAUzJFEdeoVi8vN8VEbfd7FKBks5rdIjhgaJpZM4LqhMu>.
|
Update utf8proc.[ch] to use the version now maintained by the Julia Language project (https://github.com/JuliaLang/utf8proc/blob/master/LICENSE.md). The license for the previous version was unacceptable for the Debian and Ubuntu release systems. The new version both updates the code and addresses the license issue. It turns out that the utf8proc software we are using was turned over to the Julia Language developers and the license terms changed to allow modification. (https://github.com/JuliaLang/utf8proc/blob/master/LICENSE.md). So the fix here is as follows: 1. Wrap the library with a fixed interface: libdispatch/dutf8.c and include/ncutf8.h. 2. Replace the existing utf8proc code with the new version from https://github.com/JuliaLang/utf8proc. 3. Add a couple more test cases: nc_test/tst_utf8_validate.c and nc_test_utf8_phrases.c. If/when I can find a usable normalization test, I will incorporate that later.
This issue is resolved, closing. |
|
@DennisHeimbigner Can the solution you provided for libdispatch/ in #364 also be applied in ncgen/? |
I did not remember that this code was being used in ncgen. I will take responsibility for it. |
The old code (convertUTF.c/h) is currently only in ncgen; it was removed from libdispatch and the new code was put in place. I looked at libicu and I'm glad you found this solution as libicu is not practical for our purposes; it is too large, too difficult to deploy, and is an unnecessary dependency. If you have yet to create a branch to work from, would you ~~~fork~~~ branch from |
Ok, I will fork the release branch. This is going to be harder than I thought. |
To make sure I understand, it was only used to convert utf8 to utf16 when having ncgen generate Java code? If this is the case I'd be loathe to rip it out completely as that is very useful, maybe just leave the hooks in and commented out or something. I dug into this a bit and it wouldn't be impossible to write our own converter if need be. But having this functionality removed for the next release candidate wouldn't be a problem. And would give people a chance to speak up if they need/rely on this. |
Also, thanks for forking that branch; I've set it up so that anything in that branch can propagate downstream into a release candidate as well as upstream back into |
It turns out that I do have utf8 -> utf32 conversion. And converting |
@DennisHeimbigner Is this issue ready to be closed out? I think it is but I thought I'd double check before closing it. |
Actually, the fix was merged so closing this out, I'll reopen if I hear I need to. |
The lintian QA tool reported a license problem with the
ConvertUTF.{c,h}
files included inncgen
(license-problem-convert-utf-code):Quoting the mentioned Debian Free Software Guidelines (DFSG) paragraphs:
Please remove the problematic
ConvertUTF.{c,h}
files and uselibicu
instead.The text was updated successfully, but these errors were encountered: