1From daf686508f2ee4711d93e96e5b100e50bf161656 Mon Sep 17 00:00:00 2001 2From: Leon Anavi <leon.anavi@konsulko.com> 3Date: Wed, 26 Aug 2020 10:52:10 +0300 4Subject: [PATCH] doxygen: Fix Python issues for doxygen-native 5 6It fails to compile doxygen-native when /usr/bin/python is a link 7to python3 on build host: 8 9| Failed to import the site module 10| Traceback (most recent call last): 11| File "/usr/lib64/python3.6/site.py", line 564, in <module> 12| main() 13| File "/usr/lib64/python3.6/site.py", line 550, in main 14| known_paths = addusersitepackages(known_paths) 15| File "/usr/lib64/python3.6/site.py", line 282, in addusersitepackages 16| user_site = getusersitepackages() 17| File "/usr/lib64/python3.6/site.py", line 258, in getusersitepackages 18| user_base = getuserbase() # this will also set USER_BASE 19| File "/usr/lib64/python3.6/site.py", line 248, in getuserbase 20| USER_BASE = get_config_var('userbase') 21| File "/usr/lib64/python3.6/sysconfig.py", line 604, in get_config_var 22| return get_config_vars().get(name) 23| File "/usr/lib64/python3.6/sysconfig.py", line 553, in get_config_vars 24| _init_posix(_CONFIG_VARS) 25| File "/usr/lib64/python3.6/sysconfig.py", line 424, in _init_posix 26| _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0) 27| ModuleNotFoundError: No module named '_sysconfigdata' 28 29Replace find_package PythonInterp with Python3 to fix this issue 30that it uses python3 from python3-native. And it also replaces the 31result variable PYTHON_EXECUTABLE with Python3_EXECUTABLE. 32 33This patch is only needded by doxygen-native. 34 35Updated to apply to release 1.9.1. 36 37Upstream-Status: Inappropriate[oe specific] 38 39Co-Authored-By: Kai Kang <kai.kang@windriver.com> 40Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> 41Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> 42 43--- 44 CMakeLists.txt | 2 +- 45 addon/doxywizard/CMakeLists.txt | 6 +++--- 46 doc/CMakeLists.txt | 6 +++--- 47 examples/CMakeLists.txt | 4 ++-- 48 libmscgen/CMakeLists.txt | 2 +- 49 src/CMakeLists.txt | 10 +++++----- 50 testing/CMakeLists.txt | 4 ++-- 51 7 files changed, 17 insertions(+), 17 deletions(-) 52 53diff --git a/CMakeLists.txt b/CMakeLists.txt 54index 2455793..28f0d83 100644 55--- a/CMakeLists.txt 56+++ b/CMakeLists.txt 57@@ -105,7 +105,7 @@ else () 58 endif () 59 60 find_program(DOT NAMES dot) 61-find_package(PythonInterp REQUIRED) 62+find_package(Python3 REQUIRED) 63 find_package(FLEX REQUIRED) 64 find_package(BISON REQUIRED) 65 if (BISON_VERSION VERSION_LESS 2.7) 66diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt 67index 63ac8e3..d37d1d0 100644 68--- a/addon/doxywizard/CMakeLists.txt 69+++ b/addon/doxywizard/CMakeLists.txt 70@@ -57,7 +57,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA 71 72 # generate version.cpp 73 add_custom_command( 74- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp 75+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp 76 DEPENDS ${PROJECT_SOURCE_DIR}/VERSION ${PROJECT_SOURCE_DIR}/src/version.py 77 OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp 78 ) 79@@ -65,7 +65,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER 80 81 # generate configdoc.cpp 82 add_custom_command( 83- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp 84+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp 85 DEPENDS ${PROJECT_SOURCE_DIR}/src/configgen.py ${PROJECT_SOURCE_DIR}/src/config.xml 86 OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp 87 ) 88@@ -74,7 +74,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN 89 set(LEX_FILES config_doxyw) 90 foreach(lex_file ${LEX_FILES}) 91 add_custom_command( 92- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h 93+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h 94 DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l 95 OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l.h 96 ) 97diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt 98index ec63ceb..49a2bda 100644 99--- a/doc/CMakeLists.txt 100+++ b/doc/CMakeLists.txt 101@@ -168,7 +168,7 @@ configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1 ${PROJECT_BINARY_DIR 102 103 # doc/language.doc (see tag Doxyfile:INPUT) 104 add_custom_command( 105- COMMAND ${PYTHON_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR} 106+ COMMAND ${Python3_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR} 107 DEPENDS ${PROJECT_SOURCE_DIR}/doc/maintainers.txt ${PROJECT_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES} 108 OUTPUT language.doc 109 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc 110@@ -177,7 +177,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1) 111 112 # doc/config.doc (see tag Doxyfile:INPUT) 113 add_custom_command( 114- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc 115+ COMMAND ${Python3_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc 116 DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py 117 OUTPUT config.doc 118 WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/ 119@@ -228,7 +228,7 @@ add_custom_target(docs_chm 120 COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py 121 COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py 122 COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py 123- COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp 124+ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python3_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp 125 COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" doxygen_manual.hhp || echo > nul 126 COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm 127 DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc 128diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt 129index 194b427..248b807 100644 130--- a/examples/CMakeLists.txt 131+++ b/examples/CMakeLists.txt 132@@ -54,7 +54,7 @@ foreach (f_inp ${BASIC_EXAMPLES}) 133 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f} 134 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f} 135 COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg 136- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex 137+ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex 138 DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py 139 OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex 140 ) 141@@ -73,7 +73,7 @@ if (DOT) 142 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams 143 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams 144 COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg 145- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex 146+ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex 147 DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py 148 OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex 149 ) 150diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt 151index 34cf4d8..f015afc 100644 152--- a/libmscgen/CMakeLists.txt 153+++ b/libmscgen/CMakeLists.txt 154@@ -7,7 +7,7 @@ include_directories( 155 set(LEX_FILES mscgen_lexer) 156 foreach(lex_file ${LEX_FILES}) 157 add_custom_command( 158- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h 159+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h 160 DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l 161 OUTPUT ${GENERATED_SRC}/${lex_file}.l.h 162 ) 163diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 164index 0e0c5f7..c1d3ca5 100644 165--- a/src/CMakeLists.txt 166+++ b/src/CMakeLists.txt 167@@ -40,7 +40,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1) 168 169 # configvalues.h 170 add_custom_command( 171- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h 172+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h 173 DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py 174 OUTPUT ${GENERATED_SRC}/configvalues.h 175 ) 176@@ -52,7 +52,7 @@ add_custom_target( 177 178 # configvalues.cpp 179 add_custom_command( 180- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp 181+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp 182 DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py 183 OUTPUT ${GENERATED_SRC}/configvalues.cpp 184 ) 185@@ -60,7 +60,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT 186 187 # configoptions.cpp 188 add_custom_command( 189- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp 190+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp 191 DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py 192 OUTPUT ${GENERATED_SRC}/configoptions.cpp 193 ) 194@@ -95,7 +95,7 @@ endif() 195 # resources.cpp 196 add_custom_command( 197 COMMENT "Generating ${GENERATED_SRC}/resources.cpp" 198- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp 199+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp 200 DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py 201 OUTPUT ${GENERATED_SRC}/resources.cpp 202 ) 203@@ -126,7 +126,7 @@ foreach(lex_file ${LEX_FILES}) 204 set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files") 205 set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files") 206 add_custom_command( 207- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h 208+ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h 209 DEPENDS ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l 210 OUTPUT ${GENERATED_SRC}/${lex_file}.l.h 211 ) 212diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt 213index fd6912e..0af1865 100644 214--- a/testing/CMakeLists.txt 215+++ b/testing/CMakeLists.txt 216@@ -1,7 +1,7 @@ 217 # run all tests sequentially (keep for backward compatibility) 218 add_custom_target(tests 219 COMMENT "Running doxygen tests..." 220- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing 221+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing 222 DEPENDS doxygen 223 ) 224 225@@ -19,6 +19,6 @@ foreach(TEST_FILE ${TEST_FILES}) 226 string(REGEX REPLACE "^.*/([0-9][0-9][0-9]*).*$" "\\1" TEST_ID "${TEST_FILE}") 227 # add a test target for each test 228 add_test(NAME ${TEST_NAME} 229- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing 230+ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing 231 ) 232 endforeach() 233