File fix-build.patch of Package libArcus-lulzbot

diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb82b6e..f7a7aff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,7 +61,7 @@ set(arcus_HDRS
 )
 
 set(ARCUS_VERSION 1.1.0)
-set(ARCUS_SOVERSION 3)
+set(ARCUS_SOVERSION 1)
 
 set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
 
diff --git a/cmake/FindSIP.cmake b/cmake/FindSIP.cmake
index 1de4623..e15e2b4 100644
--- a/cmake/FindSIP.cmake
+++ b/cmake/FindSIP.cmake
@@ -8,17 +8,12 @@
 #
 # This file defines the following variables:
 #
-# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number
-#     suitable for comparision as a string.
+# SIP_VERSION - SIP version.
 #
-# SIP_VERSION_STR - The version of SIP found as a human readable string.
+# SIP_EXECUTABLE - Path to the SIP executable.
 #
-# SIP_BINARY_PATH - Path and filename of the SIP command line executable.
+# SIP_INCLUDE_DIRS - The SIP include directories.
 #
-# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file.
-#
-# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed
-#     into.
 
 # Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
 # Redistribution and use is allowed according to the terms of the BSD license.
@@ -29,41 +24,69 @@ if(APPLE)
     set(CMAKE_FIND_FRAMEWORK LAST)
 endif()
 
-find_package(PythonInterp 3.4.0 REQUIRED)
-find_package(PythonLibs 3.4.0 REQUIRED)
+# FIXME: Use FindPython3 to find Python, new in CMake 3.12.
+# However currently on our CI server it finds the wrong Python version and then doesn't find the headers.
+find_package(PythonInterp 3.10 REQUIRED)
+find_package(PythonLibs 3.10 REQUIRED)
+
+# Define variables that are available in FindPython3, so there's no need to branch off in the later part.
+set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
+set(Python3_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS})
+set(Python3_LIBRARIES ${PYTHON_LIBRARIES})
+set(Python3_VERSION_MINOR "${PYTHON_VERSION_MINOR}")
 
-IF(SIP_VERSION)
-  # Already in cache, be silent
-  SET(SIP_FOUND TRUE)
-ELSE(SIP_VERSION)
+execute_process(
+   COMMAND ${Python3_EXECUTABLE} -c
+           "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False))"
+   RESULT_VARIABLE _process_status
+   OUTPUT_VARIABLE _process_output
+   OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(${_process_status} EQUAL 0)
+   string(STRIP ${_process_output} Python3_SITELIB)
+else()
+   message(FATAL_ERROR "Failed to get Python3_SITELIB. Error: ${_process_output}")
+endif()
+
+execute_process(
+   COMMAND ${Python3_EXECUTABLE} -c
+           "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False))"
+   RESULT_VARIABLE _process_status
+   OUTPUT_VARIABLE _process_output
+   OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(${_process_status} EQUAL 0)
+   string(STRIP ${_process_output} Python3_SITEARCH)
+else()
+   message(FATAL_ERROR "Failed to get Python3_SITEARCH. Error: ${_process_output}")
+endif()
 
-  FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH})
+get_filename_component(_python_binary_path ${Python3_EXECUTABLE} DIRECTORY)
 
-  SET(ENV{PYTHONPATH} ${CMAKE_INSTALL_PREFIX}/${PYTHON_SITE_PACKAGES_DIR})
-  EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_sip_py}
-                  OUTPUT_VARIABLE sip_config
-                  RESULT_VARIABLE sip_config_returncode)
-  IF(sip_config_returncode EQUAL 0)
-    STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config})
-    STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config})
-    STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config})
-    STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
-    STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
-    STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
-    SET(SIP_FOUND TRUE)
-  ENDIF(sip_config_returncode EQUAL 0)
+find_program(SIP_EXECUTABLE sip
+    HINTS ${CMAKE_PREFIX_PATH}/bin ${CMAKE_INSTALL_PATH}/bin ${_python_binary_path} ${Python3_SITELIB}/PyQt5
+)
 
-  IF(SIP_FOUND)
-    IF(NOT SIP_FIND_QUIETLY)
-      MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}")
-    ENDIF(NOT SIP_FIND_QUIETLY)
+find_path(SIP_INCLUDE_DIRS sip.h
+    HINTS ${CMAKE_PREFIX_PATH}/include ${CMAKE_INSTALL_PATH}/include ${Python3_INCLUDE_DIRS} ${Python3_SITELIB}/PyQt5
+)
 
-    include(${CMAKE_MODULE_PATH}/SIPMacros.cmake)
-  ELSE(SIP_FOUND)
-    IF(SIP_FIND_REQUIRED)
-      MESSAGE(FATAL_ERROR "Could not find SIP")
-    ENDIF(SIP_FIND_REQUIRED)
-  ENDIF(SIP_FOUND)
+execute_process(
+    COMMAND ${Python3_EXECUTABLE} -c "import sip; print(sip.SIP_VERSION_STR)"
+    RESULT_VARIABLE _process_status
+    OUTPUT_VARIABLE _process_output
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+)
 
-ENDIF(SIP_VERSION)
+if(${_process_status} EQUAL 0)
+    string(STRIP ${_process_output} SIP_VERSION)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SIP REQUIRED_VARS SIP_EXECUTABLE SIP_INCLUDE_DIRS VERSION_VAR SIP_VERSION)
+
+if(SIP_FOUND)
+    include(${CMAKE_CURRENT_LIST_DIR}/SIPMacros.cmake)
+endif()
 
+mark_as_advanced(SIP_EXECUTABLE SIP_INCLUDE_DIRS SIP_VERSION)
diff --git a/cmake/FindSIP.py b/cmake/FindSIP.py
deleted file mode 100644
index d3fb643..0000000
--- a/cmake/FindSIP.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# FindSIP.py
-#
-# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-import sys
-import os.path
-
-def fail(msg="Unable to determine your sip configuration."):
-    print(msg)
-    sys.exit(1)
-
-try:
-    # Try the old sipconfig. Many Linux distros still ship this in their packages.
-    import sipconfig
-    sipcfg = sipconfig.Configuration()
-    
-    sip_version = sipcfg.sip_version
-    sip_version = sipcfg.sip_version
-    sip_version_str = sipcfg.sip_version_str
-    sip_bin = sipcfg.sip_bin
-    default_sip_dir = sipcfg.default_sip_dir
-    sip_inc_dir = sipcfg.sip_inc_dir
-
-except ImportError:
-    try:
-        if sys.platform == "win32":
-            # Collect the info from the sip module and guess the rest.
-            import sip
-            from distutils import sysconfig
-            
-            sip_version = sip.SIP_VERSION
-            sip_version_str = sip.SIP_VERSION_STR
-            
-            exe = sys.executable
-            if exe is None:
-                fail()
-            base_path = os.path.dirname(exe)
-            sip_bin = os.path.join(base_path, "Lib\\site-packages\\PyQt5\\sip.exe")
-            if not os.path.exists(sip_bin):
-                fail()
-                    
-            sip_inc_dir = os.path.join(base_path, "Lib\\site-packages\\PyQt5\\include\\")
-            if not os.path.exists(sip_inc_dir):
-                fail()
-
-            default_sip_dir = os.path.join(base_path, "Lib\\site-packages\\PyQt5\\sip\\")
-            if not os.path.exists(default_sip_dir):
-                fail()
-        else:
-            fail("Unable to import sipconfig and determine your sip configuration.")
-
-    except ImportError:
-        fail("Unable to import sipconfig and determine your sip configuration.")
-
-print("sip_version:%06.0x" % sip_version)
-print("sip_version_num:%d" % sip_version)
-print("sip_version_str:%s" % sip_version_str)
-print("sip_bin:%s" % sip_bin)
-print("default_sip_dir:%s" % default_sip_dir)
-print("sip_inc_dir:%s" % sip_inc_dir)
diff --git a/cmake/SIPMacros.cmake b/cmake/SIPMacros.cmake
index efe6d6c..50553e0 100644
--- a/cmake/SIPMacros.cmake
+++ b/cmake/SIPMacros.cmake
@@ -19,7 +19,7 @@
 # The behaviour of the ADD_SIP_PYTHON_MODULE macro can be controlled by a
 # number of variables:
 #
-# SIP_INCLUDES - List of directories which SIP will scan through when looking
+# SIP_INCLUDE_DIRS - List of directories which SIP will scan through when looking
 #     for included .sip files. (Corresponds to the -I option for SIP.)
 #
 # SIP_TAGS - List of tags to define when running SIP. (Corresponds to the -t
@@ -35,7 +35,7 @@
 # SIP_EXTRA_OPTIONS - Extra command line options which should be passed on to
 #     SIP.
 
-SET(SIP_INCLUDES)
+SET(SIP_INCLUDE_DIRS)
 SET(SIP_TAGS)
 SET(SIP_CONCAT_PARTS 8)
 SET(SIP_DISABLE_FEATURES)
@@ -102,17 +102,16 @@ MACRO(ADD_SIP_PYTHON_MODULE MODULE_NAME MODULE_SIP)
         OUTPUT ${_sip_output_files}
         COMMAND ${CMAKE_COMMAND} -E echo ${message}
         COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files}
-        COMMAND ${SIP_BINARY_PATH} ${_sip_tags} ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} ${_sip_includes} ${_abs_module_sip}
+        COMMAND ${SIP_EXECUTABLE} ${_sip_tags} ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} ${_sip_includes} ${_abs_module_sip}
         DEPENDS ${_abs_module_sip} ${SIP_EXTRA_FILES_DEPEND}
     )
-    # not sure if type MODULE could be uses anywhere, limit to cygwin for now
-    IF (CYGWIN OR APPLE)
-        ADD_LIBRARY(${_logical_name} MODULE ${_sip_output_files} ${SIP_EXTRA_SOURCE_FILES})
-    ELSE (CYGWIN OR APPLE)
-        ADD_LIBRARY(${_logical_name} SHARED ${_sip_output_files} ${SIP_EXTRA_SOURCE_FILES})
-    ENDIF (CYGWIN OR APPLE)
+    ADD_LIBRARY(${_logical_name} MODULE ${_sip_output_files} ${SIP_EXTRA_SOURCE_FILES})
     IF (NOT APPLE)
-        TARGET_LINK_LIBRARIES(${_logical_name} ${PYTHON_LIBRARIES})
+        IF ("${Python3_VERSION_MINOR}" GREATER 7)
+            MESSAGE(STATUS "Python > 3.7 - not linking to libpython")
+        ELSE ()
+            TARGET_LINK_LIBRARIES(${_logical_name} ${Python3_LIBRARIES})
+        ENDIF ()
     ENDIF (NOT APPLE)
     TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES})
     IF (APPLE)
@@ -121,10 +120,9 @@ MACRO(ADD_SIP_PYTHON_MODULE MODULE_NAME MODULE_SIP)
     SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name})
 
     IF (WIN32)
-      SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd" IMPORT_PREFIX "_")
+        SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd" IMPORT_PREFIX "_")
     ENDIF (WIN32)
 
-    INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/${_parent_module_path}")
+    INSTALL(TARGETS ${_logical_name} DESTINATION "${Python3_SITEARCH}/${_parent_module_path}")
 
 ENDMACRO(ADD_SIP_PYTHON_MODULE)
-
diff --git a/src/Socket_p.h b/src/Socket_p.h
index 1b9e220..7722800 100644
--- a/src/Socket_p.h
+++ b/src/Socket_p.h
@@ -362,7 +362,7 @@ namespace Arcus
             return;
         }
 
-        uint32_t message_size = message->ByteSize();
+        uint32_t message_size = message->ByteSizeLong();
         if(platform_socket.writeUInt32(message_size) == -1)
         {
             error(ErrorCode::SendFailedError, "Could not send message size");
@@ -548,7 +548,7 @@ namespace Arcus
 
         google::protobuf::io::ArrayInputStream array(wire_message->data, wire_message->size);
         google::protobuf::io::CodedInputStream stream(&array);
-        stream.SetTotalBytesLimit(message_size_maximum, message_size_warning);
+        stream.SetTotalBytesLimit(message_size_maximum);
         if(!message->ParseFromCodedStream(&stream))
         {
             error(ErrorCode::ParseFailedError, "Failed to parse message:" + std::string(wire_message->data));
openSUSE Build Service is sponsored by