Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37769940
en ru br
ALT Linux repos
S:2.4.2.0.21.git918a6cd-alt1

Group :: Networking/File transfer
RPM: eiskaltdcpp

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: eiskaltdcpp-use_libidn2.patch
Download


diff --git a/CMakeLists.txt b/CMakeLists.txt
index 45a389f8..a22f67cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,7 +64,7 @@ option (USE_JS "QtScript support in Qt interface" OFF)
 option (XMLRPC_DAEMON "Make daemon as xmlrpc server" OFF)
 option (PERL_REGEX "Use pcre lib for regex in perl style" ON)
 option (ENABLE_STACKTRACE "Show stacktrace when program receive SIGSEGV" OFF)
-option (USE_IDNA "Use libidn for punycode generation" ON)
+option (USE_IDN2 "Use libidn2 for punycode generation" ON)
 option (JSONRPC_DAEMON "Make daemon as jsonrpc server" ON)
 option (USE_CLI_XMLRPC "Command line interface to control daemon via XMLRPC" OFF)
 option (USE_CLI_JSONRPC "Command line interface to control daemon via JSONRPC" OFF)
@@ -96,9 +96,9 @@ if (PERL_REGEX)
     find_package(Pcre REQUIRED)
 endif (PERL_REGEX)
 
-if (USE_IDNA)
-    find_package(IDNA REQUIRED)
-endif(USE_IDNA)
+if (USE_IDN2)
+    find_package(IDN2 REQUIRED)
+endif(USE_IDN2)
 
 if (XATTR_FOUND)
     message (STATUS "Building with libattr support")
@@ -445,7 +445,7 @@ message(STATUS "CMAKE will use these libraries (and headers) during build:
     aspell (headers): ${ASPELL_LIBRARIES} (${ASPELL_INCLUDE_DIR})
     gettext (headers): ${GETTEXT_LIBRARIES} (${GETTEXT_INCLUDE_DIR})
     pcre(cpp) (headers): ${PCRE_LIBRARIES} (${PCRE_INCLUDE_DIR})
-    idna (headers): ${IDNA_LIBRARIES} (${IDNA_INCLUDE_DIR})
+    idn2 (headers): ${IDN2_LIBRARIES} (${IDN2_INCLUDE_DIR})
     ")
 
 configure_file("${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
diff --git a/cmake/FindIDN2.cmake b/cmake/FindIDN2.cmake
index e69de29b..a46067b0 100644
--- a/cmake/FindIDN2.cmake
+++ b/cmake/FindIDN2.cmake
@@ -0,0 +1,40 @@
+# - Try to find GNU IDN2 library and headers
+# Once done, this will define
+#
+#  IDN2_FOUND - system has IDN2
+#  IDN2_INCLUDE_DIR - the IDN2 include directories (<idn2.h>)
+#  IDN2_LIBRARIES - link these to use IDN2 (idn2_to_ascii_8z)
+
+if (IDN2_INCLUDE_DIR AND IDN2_LIBRARIES)
+  set(IDN2_FIND_QUIETLY TRUE)
+endif (IDN2_INCLUDE_DIR AND IDN2_LIBRARIES)
+
+# Include dir
+find_path(IDN2_INCLUDE_DIR
+  NAMES idn2.h
+)
+
+# Library
+find_library(IDN2_LIBRARY
+  NAMES idn2
+)
+
+
+# handle the QUIETLY and REQUIRED arguments and set IDN2_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(IDN2 DEFAULT_MSG IDN2_LIBRARY IDN2_INCLUDE_DIR)
+
+# If we successfully found the idn2 library then add the library to the
+# IDN2_LIBRARIES cmake variable otherwise set IDN2_LIBRARIES to nothing.
+IF(IDN2_FOUND)
+   SET( IDN2_LIBRARIES ${IDN2_LIBRARY} )
+ELSE(IDN2_FOUND)
+   SET( IDN2_LIBRARIES )
+ENDIF(IDN2_FOUND)
+
+
+# Lastly make it so that the IDN2_LIBRARIES and IDN2_INCLUDE_DIR variables
+# only show up under the advanced options in the gui cmake applications.
+MARK_AS_ADVANCED( IDN2_LIBRARIES IDN2_INCLUDE_DIR IDN2_LIBRARY)
+
diff --git a/cmake/FindIDNA.cmake b/cmake/FindIDNA.cmake
deleted file mode 100644
index 01efc56d..00000000
--- a/cmake/FindIDNA.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-# - Try to find GNU IDN library and headers
-# Once done, this will define
-#
-#  IDNA_FOUND - system has IDNA
-#  IDNA_INCLUDE_DIR - the IDNA include directories (<idna.h>)
-#  IDNA_LIBRARIES - link these to use IDNA (idna_to_ascii_8z)
-
-if (IDNA_INCLUDE_DIR AND IDNA_LIBRARIES)
-  set(IDNA_FIND_QUIETLY TRUE)
-endif (IDNA_INCLUDE_DIR AND IDNA_LIBRARIES)
-
-# Include dir
-find_path(IDNA_INCLUDE_DIR
-  NAMES idna.h
-)
-
-# Library
-find_library(IDNA_LIBRARY
-  NAMES idn
-)
-
-
-# handle the QUIETLY and REQUIRED arguments and set IDNA_FOUND to TRUE if
-# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(IDNA DEFAULT_MSG IDNA_LIBRARY IDNA_INCLUDE_DIR)
-
-# If we successfully found the idn library then add the library to the
-# IDNA_LIBRARIES cmake variable otherwise set IDNA_LIBRARIES to nothing.
-IF(IDNA_FOUND)
-   SET( IDNA_LIBRARIES ${IDNA_LIBRARY} )
-ELSE(IDNA_FOUND)
-   SET( IDNA_LIBRARIES )
-ENDIF(IDNA_FOUND)
-
-
-# Lastly make it so that the IDNA_LIBRARIES and IDNA_INCLUDE_DIR variables
-# only show up under the advanced options in the gui cmake applications.
-MARK_AS_ADVANCED( IDNA_LIBRARIES IDNA_INCLUDE_DIR IDNA_LIBRARY)
-
diff --git a/dcpp/CMakeLists.txt b/dcpp/CMakeLists.txt
index e89a1524..41f8f54f 100644
--- a/dcpp/CMakeLists.txt
+++ b/dcpp/CMakeLists.txt
@@ -22,7 +22,7 @@ include_directories (${PROJECT_BINARY_DIR}
                      ${OPENSSL_INCLUDE_DIR}
                      ${GETTEXT_INCLUDE_DIR}
                      ${LUA_INCLUDE_DIR}
-                     ${IDNA_INCLUDE_DIR})
+                     ${IDN2_INCLUDE_DIR})
 
 if (WIN32)
     set (LINK STATIC)
@@ -64,10 +64,10 @@ if (PERL_REGEX)
     set(PCRE ${PCRE_LIBRARIES})
 endif (PERL_REGEX)
 
-if (USE_IDNA)
+if (USE_IDN2)
     set_property(SOURCE ${PROJECT_SOURCE_DIR}/Util.cpp
-                 PROPERTY COMPILE_DEFINITIONS USE_IDNA APPEND)
-endif(USE_IDNA)
+                 PROPERTY COMPILE_DEFINITIONS USE_IDN2 APPEND)
+endif(USE_IDN2)
 
 if (XATTR_FOUND)
     set_property(SOURCE ${PROJECT_SOURCE_DIR}/HashManager.h
@@ -116,7 +116,7 @@ target_link_libraries (dcpp
                        ${LUA_LIBRARIES}
                        ${UPNP}
                        ${PCRE}
-                       ${IDNA_LIBRARIES}
+                       ${IDN2_LIBRARIES}
                        ${XATTR_LIBRARIES}
                        ${HAIKU_LIB}
                        ${Boost_LIBRARIES})
diff --git a/dcpp/Util.cpp b/dcpp/Util.cpp
index 1f3348c2..742b246f 100644
--- a/dcpp/Util.cpp
+++ b/dcpp/Util.cpp
@@ -68,8 +68,8 @@
 
 #include "FastAlloc.h"
 
-#ifdef USE_IDNA
-#include <idna.h>
+#ifdef USE_IDN2
+#include <idn2.h>
 #endif
 
 #if defined(__APPLE__) && defined(__MACH__)
@@ -671,10 +671,10 @@ void Util::decodeUrl(const string& url, string& protocol, string& host, string&
     query = url.substr(queryStart, queryEnd - queryStart);
     fragment = url.substr(fragmentStart, fragmentEnd - fragmentStart);
 
-#ifdef USE_IDNA
+#ifdef USE_IDN2
     //printf("%s\n",host.c_str());
     char *p;
-    if (idna_to_ascii_8z(host.c_str(), &p, 0) == IDNA_SUCCESS) {
+    if (idn2_to_ascii_8z(host.c_str(), &p, IDN2_NONTRANSITIONAL) == IDN2_OK) {
         host = string(p);
     }
     free(p);
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin