-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
fix(main/googletest): deduplicate import prefix #25694
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(main/googletest): deduplicate import prefix #25694
Conversation
|
This is a workaround that passes the test case given, but I am unsure whether this is actually the correct solution. I would like to discuss with Maxython about what might be the problem here. |
8a3da25 to
3fa6b85
Compare
|
To summarize, this PR from the perspective of agnostic-apollo could be considered to include a logical equivalent to a reversion of the primary change of 571db28, because, in summary, we think that the global What that could potentially be broken by this PR is any package that strictly expects absolute I don't personally know of any packages like that which wouldn't return to normal behavior when provided with relative CMake GNUInstallDirs after removing patches from them that Termux might have added to force compatibility with an absolute CMake GNUInstallDir, but there might be some (other than based on the commit description of 571db28, it appears that this PR, for example, might cause |
|
I think if you are gonna change to relative paths, then you will obviously need to test all the affected packages, which obviously breaks for some too, that's why 571db28 was done to revert 2af0006. Whether absolute is recommended is not as important I think as what works for most packages, absolute paths have been tried and tested and are currently working for our packages. If a package sees an absolute path, yet still appends to prefix, that would a logical error and should be fixed by upstream. As for what the right method is, not sure if "While absolute paths are allowed, they are not recommended as they do not work with the cmake --install command's --prefix option" applies to these packages as
So I would also be on the fence for this change, best patch the package itself. |
Thanks for the confirmation that the code inside googletest's CMake files is wrong - I thought that might be the case, but I really wasn't sure and I thought that maybe googletest was correct and the bug was in Termux. Generally I agree with your opinion about this situation, so I'm going to add an additional commit into this PR based on this direction. |
|
@Maxython I have added some changes into a separate commit so it's easier for you to review. If you agree with all the changes in the temporary commit, I can move all its changes into one of the other two commits before the PR is merged. |
a56288e to
7d54688
Compare
7985d61 to
8cada8d
Compare
ab05a8f to
5a8b911
Compare
- `TERMUX__PREFIX__INCLUDE_SUBDIR` - `TERMUX__PREFIX__LIB_SUBDIR`
5a8b911 to
ffe54e0
Compare
ffe54e0 to
f09447e
Compare
|
The current version of this PR seems to resolve the discussed problems in the most balanced way, so I will merge it in 24 hours if no other problems are found. |
|
Merge away. |
…NCLUDEDIR` to packages that otherwise generate invalid `.cmake` and `.pc` files - like - #25694 - #26831 - #27230 - Before: ``` ~ $ grep -rnI $PREFIX -e /$PREFIX/include -e /$PREFIX/lib /data/data/com.termux/files/usr/bin/taglib-config:24: includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/bin/gdal-config:10:CONFIG_PLUGINDIR="/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib/gdalplugins" /data/data/com.termux/files/usr/bin/xslt-config:6:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/bin/xslt-config:7:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-c.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-c.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-lua.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-lua.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-query.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-query.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/swipl.pc:3:libdir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libcares.pc:11:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libcares.pc:12:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/blosc.pc:5:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/toxcore.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/toxcore.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/id3tag.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libxslt.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libxslt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools-shared.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools-shared.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown-inline.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown-inline.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_combined.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_combined.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libtorrent-rasterbar.pc:8:Cflags: -fexceptions -pthread -I/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include -DTORRENT_LINKING_SHARED -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_NO_DEPRECATED -DTORRENT_USE_OPENSSL -DTORRENT_USE_LIBCRYPTO -DTORRENT_SSL_PEERS -DOPENSSL_NO_SSL2 /data/data/com.termux/files/usr/lib/pkgconfig/muparser.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/muparser.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/haisrt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_static.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_static.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/aom.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/srt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/openxr.pc:7:libdir=${exec_prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libobjc.pc:3:libdir=${exec_prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/openblas.pc:5:includedir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas /data/data/com.termux/files/usr/lib/pkgconfig/libpano13.pc:14:libdir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libchromaprint.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libchromaprint.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libexslt.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libexslt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:40:set(LIBXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/include") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:41:set(LIBXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/lib") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:42:set(LIBXSLT_EXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/include") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:43:set(LIBXSLT_EXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/lib") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-export.cmake:56: INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}//data/data/com.termux/files/usr/include" /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-export.cmake:64: INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}//data/data/com.termux/files/usr/include" /data/data/com.termux/files/usr/lib/python3.12/site-packages/scipy/__config__.py:86: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/scipy/__config__.py:96: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/numpy/__config__.py:79: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/numpy/__config__.py:89: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", ~ $ ``` - After: ``` ~ $ grep -rnI $PREFIX -e /$PREFIX/include -e /$PREFIX/lib ~ $ ``` - Fix prefix pollutiuon build failure `shaderc`->`openxr` - Remove only remaining instance of obsolete variable `TERMUX_PKG_INCLUDE_IN_DEVPACKAGE` from `taglib` - Rebuild `python-numpy` and `python-scipy` because they got polluted by invalid paths from the `openblas.pc`
…NCLUDEDIR` to packages that otherwise generate invalid `.cmake` and `.pc` files - like - termux/termux-packages#25694 - termux/termux-packages#26831 - termux/termux-packages#27230 - Before: ``` ~ $ grep -rnI $PREFIX -e /$PREFIX/include -e /$PREFIX/lib /data/data/com.termux/files/usr/bin/taglib-config:24: includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/bin/gdal-config:10:CONFIG_PLUGINDIR="/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib/gdalplugins" /data/data/com.termux/files/usr/bin/xslt-config:6:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/bin/xslt-config:7:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-c.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-c.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-lua.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-lua.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-query.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/share/pkgconfig/tree-sitter-query.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/share/pkgconfig/swipl.pc:3:libdir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libcares.pc:11:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libcares.pc:12:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/blosc.pc:5:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/toxcore.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/toxcore.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/id3tag.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libxslt.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libxslt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools-shared.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/SPIRV-Tools-shared.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown-inline.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown-inline.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_combined.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_combined.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libtorrent-rasterbar.pc:8:Cflags: -fexceptions -pthread -I/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include -DTORRENT_LINKING_SHARED -DBOOST_ASIO_ENABLE_CANCELIO -DBOOST_ASIO_NO_DEPRECATED -DTORRENT_USE_OPENSSL -DTORRENT_USE_LIBCRYPTO -DTORRENT_SSL_PEERS -DOPENSSL_NO_SSL2 /data/data/com.termux/files/usr/lib/pkgconfig/muparser.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/muparser.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/haisrt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_static.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/shaderc_static.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/aom.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/srt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/openxr.pc:7:libdir=${exec_prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libobjc.pc:3:libdir=${exec_prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/openblas.pc:5:includedir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas /data/data/com.termux/files/usr/lib/pkgconfig/libpano13.pc:14:libdir=/data/data/com.termux/files/usr//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown.pc:2:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/tree-sitter-markdown.pc:3:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libchromaprint.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libchromaprint.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/pkgconfig/libexslt.pc:3:libdir=${prefix}//data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/lib/pkgconfig/libexslt.pc:4:includedir=${prefix}//data/data/com.termux/files/usr/include /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:40:set(LIBXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/include") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:41:set(LIBXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/lib") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:42:set(LIBXSLT_EXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/include") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-config.cmake:43:set(LIBXSLT_EXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}//data/data/com.termux/files/usr/lib") /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-export.cmake:56: INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}//data/data/com.termux/files/usr/include" /data/data/com.termux/files/usr/lib/cmake/libxslt-1.1.43/libxslt-export.cmake:64: INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}//data/data/com.termux/files/usr/include" /data/data/com.termux/files/usr/lib/python3.12/site-packages/scipy/__config__.py:86: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/scipy/__config__.py:96: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/numpy/__config__.py:79: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", /data/data/com.termux/files/usr/lib/python3.12/site-packages/numpy/__config__.py:89: "include directory": r"/data/data/com.termux/files/usr//data/data/com.termux/files/usr/include/openblas", ~ $ ``` - After: ``` ~ $ grep -rnI $PREFIX -e /$PREFIX/include -e /$PREFIX/lib ~ $ ``` - Fix prefix pollutiuon build failure `shaderc`->`openxr` - Remove only remaining instance of obsolete variable `TERMUX_PKG_INCLUDE_IN_DEVPACKAGE` from `taglib` - Rebuild `python-numpy` and `python-scipy` because they got polluted by invalid paths from the `openblas.pc`
properties.shto assist with this:TERMUX__PREFIX__INCLUDE_SUBDIRTERMUX__PREFIX__LIB_SUBDIR