WIP: Add support for libidn2 2.1.1a for gnutls 3.5.x
libidn2 >=2.1.0 removed _idn2_punycode_[en|de]code
symbols from its
library. The preprocessor check in str-idna.c
only checks for the
existence of libidn2, not the version. Therefore the symbol is declared,
but missing a definition. This showed up after linking to GnuTLS on EL6, which recently updated their distributed version of libidn2 to 2.1.1a.
A simplified version of this patch has already been accepted into the EL6 package.
Also as part of this merge request, I cherry-picked the copyright update so that the static-analysis test would pass.
The Debian test seems to be failing due to OpenSSL being upgraded to 1.1.1a and exhibits the same behavior as #572 (closed). I could use some guidance on how it was fixed for 3.6 so that it could be brought in here. I tried an approach of picking a few relevant-looking commits (d4202bc9, c5a251d3, and b9709cac) and resolving conflicts, which helped a bit, but found it more difficult when things went wrong afterwards. Any ideas would be appreciated.
Checklist
-
Code modified for feature -
Test suite updated with functionality tests -
Test suite updated with negative tests -
Documentation updated / NEWS entry present (for non-trivial changes)
Reviewer's checklist:
-
Any issues marked for closing are addressed -
There is a test suite reasonably covering new functionality or modifications -
Function naming, parameters, return values, types, etc., are consistent and according to CONTRIBUTION.md
-
This feature/change has adequate documentation added -
No obvious mistakes in the code