From cb4bfa04b654b10a34d223b7948758ef5b97b2b4 Mon Sep 17 00:00:00 2001 From: Michal Ruprich Date: Mon, 17 Jul 2023 17:17:04 +0200 Subject: [PATCH] Fixing a build error with asn2wrs --- wireshark-0009-fix-asn2wrs-cmake.patch | 213 +++++++++++++++++++++++++ wireshark.spec | 1 + 2 files changed, 214 insertions(+) create mode 100644 wireshark-0009-fix-asn2wrs-cmake.patch diff --git a/wireshark-0009-fix-asn2wrs-cmake.patch b/wireshark-0009-fix-asn2wrs-cmake.patch new file mode 100644 index 0000000..fc1d7bc --- /dev/null +++ b/wireshark-0009-fix-asn2wrs-cmake.patch @@ -0,0 +1,213 @@ +From 601bf39e6b2eaff9e77588ff1b1a8a987dad404d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= +Date: Fri, 26 May 2023 14:16:06 +0100 +Subject: [PATCH] CMake: Remove module LocatePythonModule.cmake + +This module is unnecessary and frequently causes hard-to-debug +issues during CMake's configure run. Nuke it. +--- + cmake/modules/LocatePythonModule.cmake | 53 -------------------------- + cmake/modules/UseAsn2Wrs.cmake | 13 ++----- + cmake/modules/UseMakePluginReg.cmake | 7 +--- + 3 files changed, 6 insertions(+), 67 deletions(-) + delete mode 100644 cmake/modules/LocatePythonModule.cmake + +diff --git a/cmake/modules/LocatePythonModule.cmake b/cmake/modules/LocatePythonModule.cmake +deleted file mode 100644 +index 3fbe0c7..0000000 +--- a/cmake/modules/LocatePythonModule.cmake ++++ /dev/null +@@ -1,53 +0,0 @@ +-#LOCATE_PYTHON_MODULE( [PATHS ... ] [REQUIRED]) +-# +-# This function tries to find the given python module. +-# If found the path is provided in and <_FOUND> is set to TRUE. +-# +-# After PATHS additional paths for python to search can be provided. +-# When REQUIRED is set, the function will abort the cmake execution is the module is not found +-function(LOCATE_PYTHON_MODULE module) +- if(NOT PYTHON_EXECUTABLE) +- find_package(PythonInterp) +- endif() +- +- # Parse (additional) arguments +- set(options REQUIRED) +- set(multiValueArgs PATHS) +- cmake_parse_arguments(LPM "${options}" "" "${multiValueArgs}" ${ARGN}) +- +- string(TOUPPER ${module} module_upper) +- if(NOT PY_${module_upper}) +- +- if(LPM_PATHS) +- # Append LPM_PATHS to PYTHONPATH to search at provided location (first) +- file(TO_CMAKE_PATH "$ENV{PYTHONPATH}" CMAKE_PATH) +- list(INSERT CMAKE_PATH 0 ${LPM_PATHS}) +- file(TO_NATIVE_PATH "${CMAKE_PATH}" NATIVE_PATH) +- if(UNIX) +- string(REPLACE ";" ":" NATIVE_PATH "${NATIVE_PATH}") +- endif(UNIX) +- set(ENV{PYTHONPATH} "${NATIVE_PATH}") +- endif(LPM_PATHS) +- +- # Use the (native) python impl module to find the location of the requested module +- execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" +- "import imp; print(imp.find_module('${module}')[1])" +- RESULT_VARIABLE _${module}_status +- OUTPUT_VARIABLE _${module}_location +- ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +- +- if(NOT _${module}_status) +- set(PY_${module_upper} ${_${module}_location} CACHE STRING +- "Location of Python module ${module}") +- set(${module_upper}_FOUND TRUE) +- message(STATUS "Found python module ${module}: ${PY_${module_upper}}") +- else(NOT _${module}_status) +- set(${module_upper}_FOUND FALSE) +- if(LPM_REQUIRED) +- message(FATAL_ERROR "Could NOT find python module ${module}") +- else(LPM_REQUIRED) +- message(STATUS "Could NOT find python module ${module}") +- endif(LPM_REQUIRED) +- endif(NOT _${module}_status) +- endif(NOT PY_${module_upper}) +-endfunction(LOCATE_PYTHON_MODULE) +diff --git a/cmake/modules/UseMakePluginReg.cmake b/cmake/modules/UseMakePluginReg.cmake +index e6e6a91..fe57381 100644 +--- a/cmake/modules/UseMakePluginReg.cmake ++++ b/cmake/modules/UseMakePluginReg.cmake +@@ -1,20 +1,17 @@ + # + function(register_plugin_files _outputfile _registertype) +- include(LocatePythonModule) +- locate_python_module(make-plugin-reg REQUIRED PATHS ${CMAKE_SOURCE_DIR}/tools) +- + file(RELATIVE_PATH output "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/${_outputfile}") + add_custom_command( + OUTPUT + ${_outputfile} + COMMAND ${PYTHON_EXECUTABLE} +- ${PY_MAKE-PLUGIN-REG} ++ ${CMAKE_SOURCE_DIR}/tools/make-plugin-reg.py + ${CMAKE_CURRENT_SOURCE_DIR} + ${_registertype} + ${ARGN} + COMMENT "Generating ${output}" + DEPENDS + ${ARGN} +- ${PY_MAKE-PLUGIN-REG} ++ ${CMAKE_SOURCE_DIR}/tools/make-plugin-reg.py + ) + endfunction() +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6db2e46..21e71e8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3825,7 +3825,6 @@ install( + ${WS_CMAKE_MODULE_PATH}/FindWSLibrary.cmake + ${WS_CMAKE_MODULE_PATH}/FindWSWinLibs.cmake + ${WS_CMAKE_MODULE_PATH}/UseAsn2Wrs.cmake +- ${WS_CMAKE_MODULE_PATH}/LocatePythonModule.cmake + ${WS_CMAKE_MODULE_PATH}/UseMakePluginReg.cmake + DESTINATION + ${WIRESHARK_INSTALL_CMAKEDIR} +diff --git a/cmake/modules/FindAsciidoctor.cmake b/cmake/modules/FindAsciidoctor.cmake +index 67cbc8d..929a4eb 100644 +--- a/cmake/modules/FindAsciidoctor.cmake ++++ b/cmake/modules/FindAsciidoctor.cmake +@@ -124,7 +124,7 @@ if(ASCIIDOCTOR_EXECUTABLE) + ADD_CUSTOM_COMMAND( + OUTPUT + ${_output_txt} +- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/html2text.py ++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/html2text.py + ${_output_html} + > ${_output_txt} + DEPENDS +diff --git a/cmake/modules/UseMakePluginReg.cmake b/cmake/modules/UseMakePluginReg.cmake +index fe57381..0c7198d 100644 +--- a/cmake/modules/UseMakePluginReg.cmake ++++ b/cmake/modules/UseMakePluginReg.cmake +@@ -4,7 +4,7 @@ function(register_plugin_files _outputfile _registertype) + add_custom_command( + OUTPUT + ${_outputfile} +- COMMAND ${PYTHON_EXECUTABLE} ++ COMMAND ${Python3_EXECUTABLE} + ${CMAKE_SOURCE_DIR}/tools/make-plugin-reg.py + ${CMAKE_CURRENT_SOURCE_DIR} + ${_registertype} +diff --git a/cmake/modules/UseMakeTaps.cmake b/cmake/modules/UseMakeTaps.cmake +index aed9318..56fd628 100644 +--- a/cmake/modules/UseMakeTaps.cmake ++++ b/cmake/modules/UseMakeTaps.cmake +@@ -5,7 +5,7 @@ MACRO(REGISTER_TAP_FILES _outputfile) + OUTPUT + ${_outputfile} + COMMAND +- ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/make-regs.py taps ${_outputfile} ${_sources} ++ ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/make-regs.py taps ${_outputfile} ${_sources} + DEPENDS + ${CMAKE_SOURCE_DIR}/tools/make-regs.py + ${_sources} +diff --git a/cmake/modules/UseAsn2Wrs.cmake b/cmake/modules/UseAsn2Wrs.cmake +index 9d7cdfe..6b0c46c 100644 +--- a/cmake/modules/UseAsn2Wrs.cmake ++++ b/cmake/modules/UseAsn2Wrs.cmake +@@ -6,11 +6,6 @@ + # absolute path (e.g. "${CMAKE_CURRENT_SOURCE_DIR}"). + + function(ASN2WRS) +- if(NOT PY_ASN2WRS) +- include(LocatePythonModule) +- locate_python_module(asn2wrs REQUIRED PATHS "${CMAKE_SOURCE_DIR}/tools") +- endif() +- + if(NOT PROTO_OPT) + set(PROTO_OPT -p ${PROTOCOL_NAME}) + elseif(PROTO_OPT STREQUAL "_EMPTY_") +@@ -38,8 +33,8 @@ function(ASN2WRS) + # Creates a dissector in the source directory and store the timestamp. + add_custom_command( + OUTPUT packet-${PROTOCOL_NAME}-stamp +- COMMAND "${PYTHON_EXECUTABLE}" +- ${PY_ASN2WRS} ++ COMMAND "${Python3_EXECUTABLE}" ++ ${CMAKE_SOURCE_DIR}/tools/asn2wrs.py + ${A2W_FLAGS} + ${PROTO_OPT} + -c "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL_NAME}.cnf" +@@ -48,12 +43,12 @@ function(ASN2WRS) + -O "${A2W_OUTPUT_DIR}" + ${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE} + COMMAND +- "${PYTHON_EXECUTABLE}" -c ++ "${Python3_EXECUTABLE}" -c + "import shutil, sys; x,s,d=sys.argv; open(d, 'w'); shutil.copystat(s, d)" + "${A2W_OUTPUT_DIR}/packet-${PROTOCOL_NAME}.c" + packet-${PROTOCOL_NAME}-stamp + DEPENDS +- "${PY_ASN2WRS}" ++ ${CMAKE_SOURCE_DIR}/tools/asn2wrs.py + ${SRC_FILES} + ${EXTRA_CNF_targets} + ${EXTRA_CNF} +@@ -67,8 +62,8 @@ function(ASN2WRS) + foreach(_asn2wrs_export_file IN LISTS EXPORT_FILES) + add_custom_command( + OUTPUT ${_asn2wrs_export_file} +- COMMAND "${PYTHON_EXECUTABLE}" +- "${PY_ASN2WRS}" ++ COMMAND "${Python3_EXECUTABLE}" ++ ${CMAKE_SOURCE_DIR}/tools/asn2wrs.py + -E + ${A2W_FLAGS} + ${PROTO_OPT} +@@ -76,7 +71,7 @@ function(ASN2WRS) + -D "${CMAKE_CURRENT_SOURCE_DIR}" + ${EXT_ASN_FILE_LIST} ${ASN_FILE_LIST} ${EXT_ASN_FILE_LIST_LATE} + DEPENDS +- "${PY_ASN2WRS}" ++ ${CMAKE_SOURCE_DIR}/tools/asn2wrs.py + ${SRC_FILES} + ${EXPORT_DEPENDS_targets} + ${EXPORT_DEPENDS} diff --git a/wireshark.spec b/wireshark.spec index 71af95f..1438a27 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -28,6 +28,7 @@ Patch5: wireshark-0005-Fix-paths-in-a-wireshark.desktop-file.patch Patch6: wireshark-0006-Move-tmp-to-var-tmp.patch Patch7: wireshark-0007-cmakelists.patch Patch8: wireshark-0008-glib2-g_strdup-build.patch +Patch9: wireshark-0009-fix-asn2wrs-cmake.patch #install tshark together with wireshark GUI Requires: %{name}-cli = %{epoch}:%{version}-%{release}