microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
23.38k stars 6.46k forks source link

[jemalloc] build failure, "versions" feature can't recognize port's current version format 4.3.1-4 in "overrides" section #17409

Open zeyangl opened 3 years ago

zeyangl commented 3 years ago

Host Environment

To Reproduce Steps to reproduce the behavior: ./vcpkg install --feature-flags="manifests" --feature-flags="versions"

Failure logs

Errors occurred while parsing .../vcpkg.json
    $.overrides[3] (an override): 'version' text was not a relaxed version:
Error: String '4.3.1-4' must only contain dot-separated numeric values without leading zeroes.
See https://github.com/Microsoft/vcpkg/tree/master/docs/users/manifests.md for more information.

Additional context with the following entry in overrides section of any vcpkg.json file

"overrides": [
{
        "name": "jemalloc", "version": "4.3.1-4"
}
]

Additional build failure issues with jemalloc, after removing version constraint, same platform and cmd as above

CMake Error at Utilities.cmake:756 (message):
  GetSystemPageSize failed compilation see
  vcpkg/buildtrees/jemalloc/x64-osx-dbg/GetPageSize/getpagesize.log
Call Stack (most recent call first):
  CMakeLists.txt:465 (GetSystemPageSize)

Content of getpagesize.log

Change Dir: vcpkg/buildtrees/jemalloc/x64-osx-dbg/GetPageSize/CMakeFiles/CMakeTmp
  2 
  3 Run Build Command(s):vcpkg/downloads/tools/ninja-1.10.1-osx/ninja cmTC_a18fd && [1/2] Building C object CMakeFi
  4 FAILED: CMakeFiles/cmTC_a18fd.dir/getpagesize.c.o
  5 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -fPIC  -arch x86_64 -isysroot /Applications/Xcode.app/C
  6 vcpkg/buildtrees/jemalloc/x64-osx-dbg/GetPageSize/getpagesize.c:1:10: fatal error: 'windows.h' file not found
  7 #include <windows.h>
  8          ^~~~~~~~~~~
  9 1 error generated.
 10 ninja: build stopped: subcommand failed.
JonLiu1993 commented 2 years ago

@zeyangl, I followed your steps and did not encounter this error in the latest vcpkg version, could you try it in the latest version?

vcpkg.json:

{
  "name": "test",
  "version-string": "1.79.0",
  "builtin-baseline": "20907dc8bfd4a3baf555467727755fbba708ad84",
  "dependencies": [
    "sqlite3"
  ],
  "overrides": [
    {
      "name": "jemalloc",
      "version": "4.3.1-4"
    }
  ]
}

Run command "./vcpkg install --feature-flags="manifests" --feature-flags="versions"":

vcpkg@test vcpkg % ./vcpkg install --feature-flags="manifests" --feature-flags="versions"
Detecting compiler hash for triplet x64-osx...
The following packages will be removed:
    boost-assert:x64-osx
    boost-build:x64-osx
    boost-config:x64-osx
    boost-modular-build-helper:x64-osx
    boost-mp11:x64-osx
    boost-predef:x64-osx
    boost-system:x64-osx
    boost-throw-exception:x64-osx
    boost-uninstall:x64-osx
    boost-variant2:x64-osx
    boost-vcpkg-helpers:x64-osx
    boost-winapi:x64-osx
    vcpkg-cmake-get-vars:x64-osx
The following packages will be built and installed:
    sqlite3[core]:x64-osx -> 3.37.2#1 -- /Users/vcpkg/Jon/vcpkg/buildtrees/versioning_/versions/sqlite3/f49ad405225c6326558adb79f2082814002a8cda
  * vcpkg-cmake-config[core]:x64-osx -> 2022-02-06 -- /Users/vcpkg/Jon/vcpkg/buildtrees/versioning_/versions/vcpkg-cmake-config/24dc7dfc704406e9f745f033643dc25f56e4ca18
Additional packages (*) will be modified to complete this operation.
Starting package 1/15: boost-system:x64-osx
Removing package boost-system:x64-osx...
Elapsed time for package boost-system:x64-osx: 8.282 ms
Starting package 2/15: boost-build:x64-osx
Removing package boost-build:x64-osx...
Elapsed time for package boost-build:x64-osx: 155.6 ms
Starting package 3/15: boost-modular-build-helper:x64-osx
Removing package boost-modular-build-helper:x64-osx...
Elapsed time for package boost-modular-build-helper:x64-osx: 2.049 ms
Starting package 4/15: vcpkg-cmake-get-vars:x64-osx
Removing package vcpkg-cmake-get-vars:x64-osx...
Elapsed time for package vcpkg-cmake-get-vars:x64-osx: 1.753 ms
Starting package 5/15: boost-throw-exception:x64-osx
Removing package boost-throw-exception:x64-osx...
Elapsed time for package boost-throw-exception:x64-osx: 2.291 ms
Starting package 6/15: boost-variant2:x64-osx
Removing package boost-variant2:x64-osx...
Elapsed time for package boost-variant2:x64-osx: 2.372 ms
Starting package 7/15: boost-assert:x64-osx
Removing package boost-assert:x64-osx...
Elapsed time for package boost-assert:x64-osx: 2.807 ms
Starting package 8/15: boost-mp11:x64-osx
Removing package boost-mp11:x64-osx...
Elapsed time for package boost-mp11:x64-osx: 8.708 ms
Starting package 9/15: boost-winapi:x64-osx
Removing package boost-winapi:x64-osx...
Elapsed time for package boost-winapi:x64-osx: 20.54 ms
Starting package 10/15: boost-config:x64-osx
Removing package boost-config:x64-osx...
Elapsed time for package boost-config:x64-osx: 38.54 ms
Starting package 11/15: boost-predef:x64-osx
Removing package boost-predef:x64-osx...
Elapsed time for package boost-predef:x64-osx: 27.28 ms
Starting package 12/15: boost-vcpkg-helpers:x64-osx
Removing package boost-vcpkg-helpers:x64-osx...
Elapsed time for package boost-vcpkg-helpers:x64-osx: 1.692 ms
Starting package 13/15: boost-uninstall:x64-osx
Removing package boost-uninstall:x64-osx...
Elapsed time for package boost-uninstall:x64-osx: 1.513 ms
Restored 0 packages from /Users/vcpkg/.cache/vcpkg/archives in 1.024 ms. Use --debug to see more details.
Starting package 14/15: vcpkg-cmake-config:x64-osx
Building package vcpkg-cmake-config[core]:x64-osx...
-- Installing port from location: /Users/vcpkg/Jon/vcpkg/buildtrees/versioning_/versions/vcpkg-cmake-config/24dc7dfc704406e9f745f033643dc25f56e4ca18
-- Installing: /Users/vcpkg/Jon/vcpkg/packages/vcpkg-cmake-config_x64-osx/share/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake
-- Installing: /Users/vcpkg/Jon/vcpkg/packages/vcpkg-cmake-config_x64-osx/share/vcpkg-cmake-config/vcpkg-port-config.cmake
-- Installing: /Users/vcpkg/Jon/vcpkg/packages/vcpkg-cmake-config_x64-osx/share/vcpkg-cmake-config/copyright
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /Users/vcpkg/.cache/vcpkg/archives/5e/5e54c458cbd4144f957bef6a6e85bb42a80a88dc6ceb9dd26ead898bda0a2cc4.zip
Installing package vcpkg-cmake-config[core]:x64-osx...
Elapsed time for package vcpkg-cmake-config:x64-osx: 40.44 ms
Starting package 15/15: sqlite3:x64-osx
Building package sqlite3[core]:x64-osx...
-- Installing port from location: /Users/vcpkg/Jon/vcpkg/buildtrees/versioning_/versions/sqlite3/f49ad405225c6326558adb79f2082814002a8cda
-- Downloading https://sqlite.org/2021/sqlite-amalgamation-3370100.zip -> sqlite-amalgamation-3370100.zip...
-- Extracting source /Users/vcpkg/Jon/vcpkg/downloads/sqlite-amalgamation-3370100.zip
-- Applying patch fix-arm-uwp.patch
-- Using source at /Users/vcpkg/Jon/vcpkg/buildtrees/sqlite3/src/3370100-a1573e1602.clean
-- Found external ninja('1.10.2').
-- Configuring x64-osx-dbg
-- Configuring x64-osx-rel
-- Building x64-osx-dbg
-- Building x64-osx-rel
-- Fixing pkgconfig file: /Users/vcpkg/Jon/vcpkg/packages/sqlite3_x64-osx/lib/pkgconfig/sqlite3.pc
-- Fixing pkgconfig file: /Users/vcpkg/Jon/vcpkg/packages/sqlite3_x64-osx/debug/lib/pkgconfig/sqlite3.pc
-- Performing post-build validation
-- Performing post-build validation done
Stored binary cache: /Users/vcpkg/.cache/vcpkg/archives/ed/edd1216ba016906f0dc01da84c62ffe382915813d84e8131b71c21e8c5b767f7.zip
Installing package sqlite3[core]:x64-osx...
Elapsed time for package sqlite3:x64-osx: 26.2 s

Total elapsed time: 28 s

The package sqlite3 provides CMake targets:

    find_package(unofficial-sqlite3 CONFIG REQUIRED)
    target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3)
zeyangl commented 2 years ago

Sorry I have migrated to an arm-based mac system and cannot test this effectively. I pulled the newest repo and tried building, the community arm triplet failed with the following CMake error, though I don't see the previous error anymore:

1 CMake Error at Utilities.cmake:756 (message): 2 GetSystemPageSize failed compilation see 3 xxxxxxx/vcpkg/buildtrees/jemalloc/arm64-osx-dbg/GetPageSize/getpagesize.log 4 Call Stack (most recent call first): 5 CMakeLists.txt:465 (GetSystemPageSize)

getpagesize.log: 1 Change Dir: xxxxxxx/vcpkg/buildtrees/jemalloc/arm64-osx-dbg/GetPageSize/CMakeFiles/CMakeTmp 2 3 Run Build Command(s):/opt/local/bin/ninja cmTC_63b2b && [1/2] Building C object CMakeFiles/cmTC_63b2b.dir/getpagesize.c.o 4 FAILED: CMakeFiles/cmTC_63b2b.dir/getpagesize.c.o 5 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -fPIC -arch arm64 -isysroot /Applications/Xcode.app/Contents/Develo 6 /Users/zeyangl/package/vcpkg/buildtrees/jemalloc/arm64-osx-dbg/GetPageSize/getpagesize.c:1:10: fatal error: 'windows.h' file not found 7 #include 8 ^~~ 9 1 error generated. 10 ninja: build stopped: subcommand failed.

JonLiu1993 commented 2 years ago

@zeyangl ,Can you successfully install jemalloc using classic mode?

JackBoosY commented 2 years ago

@zeyangl Can you please use command ./vcpkg install jemalloc:arm64-osx --host-triplet=arm64-osx to try again?

zeyangl commented 2 years ago

Still the same error.

On Mon, Jun 13, 2022 at 4:37 PM Jack·Boos·Yu @.***> wrote:

@zeyangl https://github.com/zeyangl Can you please use command ./vcpkg install jemalloc:arm64-osx --host-triplet=arm64-osx to try again?

— Reply to this email directly, view it on GitHub https://github.com/microsoft/vcpkg/issues/17409#issuecomment-1153637932, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJP3PV4WB4RIR65JBOHISLVO3XLPANCNFSM43J4BACQ . You are receiving this because you were mentioned.Message ID: @.***>

JackBoosY commented 2 years ago

I know there are some compatibility issues with GetPageSize, but it's not clear if it's platform related.

Edit: OMG, that's hard coded in the source file!

JackBoosY commented 2 years ago

Bad news is the upstream doesn't support non-Windows at all, good news is I'm going to add non-Windows support now.

zeyangl commented 2 years ago

Not really. The error was the same as reported above.

On Thu, Jun 9, 2022 at 5:40 PM JonLiu1993 @.***> wrote:

@zeyangl https://github.com/zeyangl ,Can you successfully install jemalloc using classic mode?

— Reply to this email directly, view it on GitHub https://github.com/microsoft/vcpkg/issues/17409#issuecomment-1150903597, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJP3PVVCZTSNIVQK3T2SSLVOG32RANCNFSM43J4BACQ . You are receiving this because you were mentioned.Message ID: @.***>

Neumann-A commented 2 years ago

Not really. The error was the same as reported above.

Did you update vcpkg to have jemalloc 5.3 ?