Public domain/MIT licensed IDN library for C
Short version: Is anyone aware of an implementation of IDNA2008 that is in the public domain or MIT/BSD licensed? Long version: During a discussion with Paul Hoffman, we were talking about the state of IDN support in at a core programming language level, and my efforts to write a yellow paper showing the full effort required to implement support for IDNs/EAIs we talked about the licensing of libidn2. Specifically, libidn2 is dual-licensed under the GPLv2/LGPLv3. This is rather problematic for implementing IDN support in many applications coded in C/C++. GPLv2 requires that an application that uses libidn be free and open source and compatible the GPLv2 licensing terms which is impossible for any propitiatory software package, or those under a free software but non-GPL compatible license such as the CDDL. LGPLv3 in theory solves this problem, but adds even more complications. LGPL allows libidn2 to linked to proprietary software but only in the form of a shared library (dll or so) file. However, LGPLv3 requires patent grants be given to any user of said library (GPLv3 section 11). This clause adds an extremely high barrier to entry in corporate environment which involves legal questions and may not be surmountable. As we want IDN support to go as far as wide as possible, the best way to accomplish that is an IDNA2008 implementation that is entirely non-embured, either under the MIT license, another weak copyleft license, or ideally in the public domain or CC-0 licenses. I searched around and came up empty but I'm hoping the list can point me in the right direction. Michael
There is PUNYCODE-related code in RFC 3492 with a very permissive license. But I'm afraid it needs to be updated to match IDNA2008. On Tue, Jul 2, 2019 at 6:51 AM Michael Casadevall <michael@casadevall.pro> wrote:
Short version: Is anyone aware of an implementation of IDNA2008 that is in the public domain or MIT/BSD licensed?
Long version: During a discussion with Paul Hoffman, we were talking about the state of IDN support in at a core programming language level, and my efforts to write a yellow paper showing the full effort required to implement support for IDNs/EAIs we talked about the licensing of libidn2. Specifically, libidn2 is dual-licensed under the GPLv2/LGPLv3. This is rather problematic for implementing IDN support in many applications coded in C/C++.
GPLv2 requires that an application that uses libidn be free and open source and compatible the GPLv2 licensing terms which is impossible for any propitiatory software package, or those under a free software but non-GPL compatible license such as the CDDL.
LGPLv3 in theory solves this problem, but adds even more complications. LGPL allows libidn2 to linked to proprietary software but only in the form of a shared library (dll or so) file. However, LGPLv3 requires patent grants be given to any user of said library (GPLv3 section 11). This clause adds an extremely high barrier to entry in corporate environment which involves legal questions and may not be surmountable.
As we want IDN support to go as far as wide as possible, the best way to accomplish that is an IDNA2008 implementation that is entirely non-embured, either under the MIT license, another weak copyleft license, or ideally in the public domain or CC-0 licenses. I searched around and came up empty but I'm hoping the list can point me in the right direction. Michael
_______________________________________________ By submitting your personal data, you consent to the processing of your personal data for purposes of subscribing to this mailing list accordance with the ICANN Privacy Policy (https://www.icann.org/privacy/policy) and the website Terms of Service (https://www.icann.org/privacy/tos). You can visit the Mailman link above to change your membership status or configuration, including unsubscribing, setting digest-style delivery or disabling delivery altogether (e.g., for a vacation), and so on.
-- SY, Dmitry Belyavsky
On Jul 2, 2019, at 12:11 AM, Dmitry Belyavsky <beldmit@gmail.com> wrote:
There is PUNYCODE-related code in RFC 3492 with a very permissive license. But I'm afraid it needs to be updated to match IDNA2008.
Punycode was not changed in IDNA2008. The change in IDNA2008 was the specification of what characters and strings are allowed in an IDNA labels. --Paul Hoffman
Do any of these resources help? https://pypi.org/project/idna/ https://www.verisign.com/en_US/channel-resources/domain-registry-products/id... On 7/1/19, 11:51 PM, "UA-discuss on behalf of Michael Casadevall" <ua-discuss-bounces@icann.org on behalf of michael@casadevall.pro> wrote: Short version: Is anyone aware of an implementation of IDNA2008 that is in the public domain or MIT/BSD licensed? Long version: During a discussion with Paul Hoffman, we were talking about the state of IDN support in at a core programming language level, and my efforts to write a yellow paper showing the full effort required to implement support for IDNs/EAIs we talked about the licensing of libidn2. Specifically, libidn2 is dual-licensed under the GPLv2/LGPLv3. This is rather problematic for implementing IDN support in many applications coded in C/C++. GPLv2 requires that an application that uses libidn be free and open source and compatible the GPLv2 licensing terms which is impossible for any propitiatory software package, or those under a free software but non-GPL compatible license such as the CDDL. LGPLv3 in theory solves this problem, but adds even more complications. LGPL allows libidn2 to linked to proprietary software but only in the form of a shared library (dll or so) file. However, LGPLv3 requires patent grants be given to any user of said library (GPLv3 section 11). This clause adds an extremely high barrier to entry in corporate environment which involves legal questions and may not be surmountable. As we want IDN support to go as far as wide as possible, the best way to accomplish that is an IDNA2008 implementation that is entirely non-embured, either under the MIT license, another weak copyleft license, or ideally in the public domain or CC-0 licenses. I searched around and came up empty but I'm hoping the list can point me in the right direction. Michael
On 7/2/19 10:12 AM, Tan Tanaka, Dennis wrote:
Do any of these resources help? https://pypi.org/project/idna/ https://www.verisign.com/en_US/channel-resources/domain-registry-products/id...
Thank you for these. The first library is written in Python and isn't helpful unless you're coding in Python. I wasn't aware of the Verisign IDN SDK, but the licensing on it is unclear. The primary license appears to be three clause BSD which is acceptable for commercial/proprietary software, but they also have code that appears to be licensed under GPLv2 and neither the programmers documentation or the user guide really clarifies the situation. It *looks* like only the Java implementation in the SDK is GNUv2 but its very hard to tell. Is there anyone at Verisign that can come forward and help clarify the license situation here? Michael
participants (4)
-
Dmitry Belyavsky -
Michael Casadevall -
Paul Hoffman -
Tan Tanaka, Dennis