Version 2.2.0 (released 2019-05-23)
* Perform A-Label roundtrip for lookup functions by default
* Stricter check of input to punycode decoder
* Fix punycode decoding with no ASCII chars but given delimiter
* Fix 'idn2 --no-tr64' (was a no-op)
* Allow _ as a basic code point in domain labels
* Fail building documentatino if 'ronn' isn't installed
* git tag changed to reflect https://semver.org/
Version 2.1.1 (released 2019-02-08)
* Revert SONAME bump from release 2.1.0
* Fix NULL dereference in idn2_register_u8() and idn2_register_ul()
* Fix free of random value in idn2_to_ascii_4i()
* Improved fuzzer (which found the above issues)
* Fix printf() crash in test-lookup.c on Solaris
* Check for valid unicode input in punycode encoder
* Avoid excessive CPU usage in punycode encoding with
large inputs
* Deprecate idn2_to_ascii_4i() in favor of idn2_to_ascii_4i2()
* Restrict output length of idn2_to_ascii_4i() to 63 bytes
Version 2.1.0 (released 2019-01-04)
* Two exposed functions are no longer exposed:
_idn2_punycode_encode() and _idn2_punycode_decode() which were
meant to be used internally only. The output needs additional
checks to be used safely.
This is the reason to for the SONAME bump, just in case.
* Fix label length check for idn2_register_u8()
* Remove compiler warnings
* Use gnulib-python tool for bootstrapping if possible
* Improve build system (several small issues)
* Add missing error messages to idn2_strerror_name()
* Improve docs and remove typos
* Update gnulib
** Switched the default library behavior to IDNA2008 as amended
by TR#46 (non-transitional). That default behavior is enabled when
no flags are specified to function calls. Applications can utilize the
%IDN2_NO_TR46 flag to switch to the unamended IDNA2008. This is done in
the interest of interoperability based on the fact that this is what application
writers care about rather than strict compliance with a particular protocol.
** Fixed memleak in idn2_to_unicode_8zlz().
** Return error (IDN2_ICONV_FAIL) on charset conversion errors.
** Fixed issue with STD3 rules applying in non-transitional
TR46 mode.
** idn2: added option --usestd3asciirules.
By default libidn2 is configured with `--disable-gtk-doc'. However,
despite that, it will checks several `gtkdoc-*' tools anyway, ending
in a failure during the installation phase because only a couple
of them are available.
Add a kludge via CONFIGURE_ENV to avoid picking up gtkdoc-* tools.
Pointed out by <scole> via PR pkg/52667.
* Fix integer overflow in bidi.c/_isBidi()
* Fix integer overflow in puny_decode.c/decode_digit()
* Improve docs
* Fix idna_free() to idn_free()
* Update fuzzer corpora
Use the .tar.gz distfile again, for the moment, to work around
https://github.com/jmmv/pkg_comp/issues/24 ("can't extract distfiles
with EXTRACT_SUFX=.tar.lz").
** %IDN2_USE_STD3_ASCII_RULES disabled by default.
Previously we were eliminating non-STD3 characters from domain strings
such as _443._tcp.example.com, or IPs 1.2.3.4/24 provided to libidn2
functions. That was an unexpected regression for applications switching
from libidn and thus it is no longer applied by default.
Use %IDN2_USE_STD3_ASCII_RULES to enable that behavior again.
** Fix several documentation issues
** Fix build issues
** Modernize gtk-doc build infrastructure.
names to and from ASCII Compatible Encoding (ACE), following the
IDNA2008 and TR46 standards. The library is a rewrite of the popular but
legacy libidn library, and is backwards (API) compatible with it.