Skip to content
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

Audit use of TO_NATIVE_PATH. #26201

Merged
merged 3 commits into from
Aug 12, 2022
Merged

Conversation

BillyONeal
Copy link
Member

@BillyONeal BillyONeal commented Aug 5, 2022

TO_NATIVE_PATH should only be used when (1) pasting a path into a command line, or (2) displaying a path to a user. It must not be used before calling other CMake operations like file(WRITE.

Fixes #26178

ports/ffmpeg/portfile.cmake:
Both uses are being embedded into a command line ✅

ports/gdal/dependency_win.cmake
117: This used TO_NATIVE_PATH but didn't actually connect the result. It's going on a command line so TO_NATIVE_PATH is appropriate.
Drive by: Added quotes around other uses (all of which seem to be going to command lines).
202: ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL} don't seem to be set even though they are used; I think this is wrong but I don't know for sure that it is so I'm leaving it alone for now.

ports/msmpi/portfile.cmake
All 3 uses are being embedded into a command line ✅

ports/jemalloc/fix-utilities.patch
ports/libproxy/fix-dependency-libmodman.patch
ports/qtbase/env.patch
These are in upstream content / context so it is not edited.

ports/opengl/portfile.cmake
Broken! Drive by fixes:

  • Modernized checking VCPKG_BUILD_TYPE
  • Ordered things consistently to be release then debug.
  • Removed funny newlines.

ports/openni2/portfile.cmake
Borderline OK; it goes into an MSBuild / vcxproj. I'm leaving it alone. Drive by fixes:

  • Guarded debug-only copies for VCPKG_BUILD_TYPE
  • Fixed supports expression

ports/openssl/unix/CMakeLists.txt:
Unused!

ports/pthreads/portfile.cmake:
Both uses are being embedded into a command line ✅

ports/qt5-base/cmake/qt_fix_makefile_install.cmake
I'm not sure if this one is OK but it's being embedded into a file so it's probably fine.

ports/qtapplicationmanager/portfile.cmake:
I'm pretty sure this one is wrong, but it's guarded by VCPKG_TARGET_IS_WINDOWS so the ability to create damage is limited.

ports/readosm/portfile.cmake:
The use is being embedded into a command line ✅

ports/spatialite-tools/portfile.cmake:
The use is being embedded into a command line ✅

ports/sqlcipher/portfile.cmake:
Both uses are being embedded into a command line ✅

scripts/ports.cmake:
Some uses were unused, others are immediately used and printed to the console. ✅

scripts/buildsystems/vcpkg.cmake:
Fixed :)

scripts/cmake/vcpkg_build_qmake:
Looks unused.

scripts/cmake/vcpkg_build_process.cmake:
Added to console message only. ✅

scripts/cmake/vcpkg_execute_required_process_repeat.cmake:
Added to console message only. ✅
Drive by: Fixed typo in variable name in the message.

scripts/cmake/vcpkg_execute_required_process.cmake:
Added to console message only. ✅

TO_NATIVE_PATH should only be used when (1) pasting a path into a command line, or (2) displaying a path to a user. It must not be used before calling other CMake operations like file(WRITE.

Fixes microsoft#26178

ports/ffmpeg/portfile.cmake:
Both uses are being embedded into a command line ✅

ports/gdal/dependency_win.cmake
117: This used TO_NATIVE_PATH but didn't actually connect the result. It's going on a command line so TO_NATIVE_PATH is appropriate.
Drive by: Added quotes around other uses (all of which seem to be going to command lines).
202: ${EXPAT_LIBRARY_REL} ${ZLIB_LIBRARY_REL} don't seem to be set even though they are used; I think this is wrong but I don't know for sure that it is so I'm leaving it alone for now.

ports/msmpi/portfile.cmake
All 3 uses are being embedded into a command line ✅

ports/jemalloc/fix-utilities.patch
ports/libproxy/fix-dependency-libmodman.patch
ports/qtbase/env.patch
These are in upstream content / context so it is not edited.

ports/opengl/portfile.cmake
Broken! Drive by fixes:
* Modernized checking VCPKG_BUILD_TYPE
* Ordered things consistently to be release then debug.
* Removed funny newlines.

ports/openni2/portfile.cmake
Borderline OK; it goes into an MSBuild / vcxproj. I'm leaving it alone. Drive by fixes:
* Guarded debug-only copies for VCPKG_BUILD_TYPE
* Fixed supports expression

ports/openssl/unix/CMakeLists.txt:
Unused!

ports/pthreads/portfile.cmake:
Both uses are being embedded into a command line ✅

ports/qt5-base/cmake/qt_fix_makefile_install.cmake
I'm not sure if this one is OK but it's being embedded into a file so it's probably fine.

ports/qtapplicationmanager/portfile.cmake:
I'm pretty sure this one is wrong, but it's guarded by VCPKG_TARGET_IS_WINDOWS so the ability to create damage is limited.

ports/readosm/portfile.cmake:
The use is being embedded into a command line ✅

ports/spatialite-tools/portfile.cmake:
The use is being embedded into a command line ✅

ports/sqlcipher/portfile.cmake:
Both uses are being embedded into a command line ✅

scripts/ports.cmake:
Some uses were unused, others are immediately used and printed to the console. ✅

scripts/buildsystems/vcpkg.cmake:
Fixed :)

scripts/cmake/vcpkg_build_qmake:
Looks unused.

scripts/cmake/vcpkg_build_process.cmake:
Added to console message only. ✅

scripts/cmake/vcpkg_execute_required_process_repeat.cmake:
Added to console message only. ✅
Drive by: Fixed typo in variable name in the message.

scripts/cmake/vcpkg_execute_required_process.cmake:
Added to console message only. ✅
@BillyONeal BillyONeal added category:vcpkg-bug The issue is with the vcpkg system (including helper scripts in `scripts/cmake/`) category:port-bug The issue is with a library, which is something the port should already support info:internal This PR or Issue was filed by the vcpkg team. labels Aug 5, 2022
github-actions[bot]
github-actions bot previously approved these changes Aug 5, 2022
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one vcpkg.json where you should check the license field.

If you feel able to do so, please consider adding a "license" field to the following files:

  • ports/openni2/vcpkg.json

Valid values for the license field can be found in the documentation

@JackBoosY JackBoosY added the category:scripts-audit Part of the scripts audit effort. label Aug 8, 2022
@BillyONeal
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

@JavierMatosD JavierMatosD left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

woot woot!

@BillyONeal BillyONeal merged commit ae76307 into microsoft:master Aug 12, 2022
@BillyONeal BillyONeal deleted the to-native-path branch August 12, 2022 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-bug The issue is with a library, which is something the port should already support category:scripts-audit Part of the scripts audit effort. category:vcpkg-bug The issue is with the vcpkg system (including helper scripts in `scripts/cmake/`) info:internal This PR or Issue was filed by the vcpkg team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

vcpkg cmake folder names with spaces errors
4 participants