diff -up kdelibs-3.5.10/configure.in.than kdelibs-3.5.10/configure.in --- kdelibs-3.5.10/configure.in.than 2017-06-20 18:02:22.845910412 +0200 +++ kdelibs-3.5.10/configure.in 2017-06-20 18:03:09.058172814 +0200 @@ -692,10 +692,10 @@ AC_ARG_WITH(libidn, [], with_libidn=check) LIB_IDN= if test "x$with_libidn" != xno; then - AC_CHECK_HEADERS([idna.h punycode.h stringprep.h]) - KDE_CHECK_LIB(idn, idna_to_ascii_4i, [ + AC_CHECK_HEADERS([idn2.h]) + KDE_CHECK_LIB(idn2, idn2_to_ascii_4i, [ AC_DEFINE_UNQUOTED(HAVE_LIBIDN, 1, [Defined if you have libidn in your system]) - LIB_IDN=-lidn + LIB_IDN=-lidn2 ]) if test "x$with_libidn" != xcheck && test -z "$LIB_IDN"; then AC_MSG_ERROR([--with-libidn was given, but test for libidn failed]) diff -up kdelibs-3.5.10/kdecore/configure.in.in.than kdelibs-3.5.10/kdecore/configure.in.in --- kdelibs-3.5.10/kdecore/configure.in.in.than 2017-06-20 17:53:41.544511539 +0200 +++ kdelibs-3.5.10/kdecore/configure.in.in 2017-06-20 18:01:27.557989259 +0200 @@ -48,10 +48,10 @@ AC_ARG_WITH(libidn, [], with_libidn=check) LIB_IDN= if test "x$with_libidn" != xno; then - AC_CHECK_HEADERS([idna.h punycode.h stringprep.h]) - KDE_CHECK_LIB(idn, idna_to_ascii_4i, [ + AC_CHECK_HEADERS([idn2.h]) + KDE_CHECK_LIB(idn2, idn2_to_ascii_4i, [ AC_DEFINE_UNQUOTED(HAVE_LIBIDN, 1, [Defined if you have libidn in your system]) - LIB_IDN=-lidn + LIB_IDN=-lidn2 ]) if test "x$with_libidn" != xcheck && test -z "$LIB_IDN"; then AC_MSG_ERROR([--with-libidn was given, but test for libidn failed]) diff -up kdelibs-3.5.10/kdecore/network/kresolver.cpp.than kdelibs-3.5.10/kdecore/network/kresolver.cpp --- kdelibs-3.5.10/kdecore/network/kresolver.cpp.than 2017-06-21 12:55:55.733217103 +0200 +++ kdelibs-3.5.10/kdecore/network/kresolver.cpp 2017-06-21 13:27:38.956737181 +0200 @@ -49,8 +49,8 @@ #include // IDN -#ifdef HAVE_IDNA_H -# include +#ifdef HAVE_IDN2_H +# include #endif // KDE @@ -1083,7 +1083,7 @@ static QStringList splitLabels(const QSt static QCString ToASCII(const QString& label) { -#ifdef HAVE_IDNA_H +#ifdef HAVE_IDN2_H // We have idna.h, so we can use the idna_to_ascii // function :) @@ -1104,7 +1104,7 @@ static QCString ToASCII(const QString& l ucs4[i] = (unsigned long)label[i].unicode(); ucs4[i] = 0; // terminate with NUL, just to be on the safe side - if (idna_to_ascii_4i(ucs4, label.length(), buf, 0) == IDNA_SUCCESS) + if (idn2_to_ascii_4i(ucs4, label.length(), buf, 0|IDN2_NFC_INPUT|IDN2_NONTRANSITIONAL) == IDN2_OK) // success! retval = buf; @@ -1117,7 +1117,7 @@ static QCString ToASCII(const QString& l static QString ToUnicode(const QString& label) { -#ifdef HAVE_IDNA_H +#ifdef HAVE_IDN2_H // We have idna.h, so we can use the idna_to_unicode // function :) @@ -1131,7 +1131,7 @@ static QString ToUnicode(const QString& // try the same length for output ucs4_output = new Q_UINT32[outlen = label.length()]; - idna_to_unicode_44i(ucs4_input, label.length(), + idn2_to_unicode_44i(ucs4_input, label.length(), ucs4_output, &outlen, 0); @@ -1141,7 +1141,7 @@ static QString ToUnicode(const QString& delete [] ucs4_output; ucs4_output = new Q_UINT32[outlen]; - idna_to_unicode_44i(ucs4_input, label.length(), + idn2_to_unicode_44i(ucs4_input, label.length(), ucs4_output, &outlen, 0); }