Skip to content

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
Edited by Dakota Williams

Merge request reports