microsoft / vcpkg

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

[docs] Document the inconsistencies with vcpkg and NFS #14591

Open L0ric0 opened 3 years ago

L0ric0 commented 3 years ago

Host Environment

Affected Pkg

To Reproduce Steps to reproduce the behavior:

  1. define the boost libs as deps in the vcpkg.json
  2. run VCPKG_FEATURE_FLAGS=manifests vcpkg install or install via cmake integration

Failure logs

boost-throw-exception: ``` Building package boost-throw-exception[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/aa/aa02b8b58bfafdcc1976ff386bbd8ec64ba43d16.zip -- Downloading https://github.com/boostorg/throw_exception/archive/boost-1.74.0.tar.gz... -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-throw_exception-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-throw-exception/src/ost-1.74.0-9fa124ed8a.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-throw-exception_x64-linux/share/boost-throw-exception/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-throw-exception_x64-linux/share/boost-throw-exception/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-throw-exception_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-throw-exception_x64-linux/include/boost/exception If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-throw-exception/portfile.cmake -- Performing post-build validation done Error: Building package boost-throw-exception:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-throw-exception:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. ```
boost-predef: ``` Building package boost-predef[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/c5/c531177085ced8b020d623588879e75c8d113047.zip -- Downloading https://github.com/boostorg/predef/archive/boost-1.74.0.tar.gz... -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/include/boost/predef/hardware/simd/x86_amd If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-predef/portfile.cmake -- Performing post-build validation done Error: Building package boost-predef:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-predef:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. ```
boost-fusion: ``` Starting package 4/67: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Downloading https://github.com/boostorg/fusion/archive/boost-1.74.0.tar.gz... -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/mpl/detail If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-fusion/portfile.cmake -- Performing post-build validation done Error: Building package boost-fusion:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-fusion:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. ```
boost-chrono: ``` Starting package 27/64: boost-chrono:x64-linux Building package boost-chrono[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/7f/7f29520c2b8cad7cd140f3f34670644b5adc452e.zip -- Downloading https://github.com/boostorg/chrono/archive/boost-1.74.0.tar.gz... -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-chrono-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-chrono/src/ost-1.74.0-f37fdbc26f.clean -- Building release... -- Configuring x64-linux-dbg -- Configuring x64-linux-rel -- Building x64-linux-dbg -- Building x64-linux-rel -- Building debug... -- Configuring x64-linux-dbg -- Configuring x64-linux-rel -- Building x64-linux-dbg -- Building x64-linux-rel -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-chrono_x64-linux/share/boost-chrono/usage -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-chrono_x64-linux/share/boost-chrono/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-chrono_x64-linux/share/boost-chrono/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-chrono_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-chrono_x64-linux/include/boost/chrono/io_v1 If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-chrono/portfile.cmake -- Performing post-build validation done Error: Building package boost-chrono:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-chrono:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. ```

Additional context When installing the libs with vcpkg install <libname> the build succedes and a following run in manifest mode then finds the previously build pkg and continues past the point of failure.

This seems to be caused by a race condition (maybe caused by nfs will test later) as when trying to install boost-predef via vcpkg install boost-predef the following happend:

boost-predef race ``` $ share/vcpkg/vcpkg install boost-predef Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Computing installation plan... The following packages will be built and installed: boost-predef[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-predef:x64-linux Building package boost-predef[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/c5/c531177085ced8b020d623588879e75c8d113047.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/include/boost/predef/hardware/simd/x86 /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/include/boost/predef/hardware/simd/arm /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/include/boost/predef/hardware/simd/ppc If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-predef/portfile.cmake -- Performing post-build validation done Error: Building package boost-predef:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-predef:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-predef Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey by running: vcpkg contact --survey Computing installation plan... The following packages will be built and installed: boost-predef[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-predef:x64-linux Building package boost-predef[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/c5/c531177085ced8b020d623588879e75c8d113047.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/include/boost/predef/hardware/simd/x86_amd If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-predef/portfile.cmake -- Performing post-build validation done Error: Building package boost-predef:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-predef:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-predef Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Computing installation plan... The following packages will be built and installed: boost-predef[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-predef:x64-linux Building package boost-predef[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/c5/c531177085ced8b020d623588879e75c8d113047.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/copyright -- Performing post-build validation -- Performing post-build validation done Stored binary cache: /home/lsteinert/.cache/vcpkg/archives/c5/c531177085ced8b020d623588879e75c8d113047.zip Building package boost-predef[core]:x64-linux... done Installing package boost-predef[core]:x64-linux... Installing package boost-predef[core]:x64-linux... done Elapsed time for package boost-predef:x64-linux: 2.393 s Total elapsed time: 3.23 s The package boost is compatible with built-in CMake targets: find_package(Boost REQUIRED [COMPONENTS ...]) target_link_libraries(main PRIVATE Boost::boost Boost:: Boost:: ...) ```
boost-fusion race ``` Starting package 13/13: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/view/nview/detail/cpp03 /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/mpl/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/adapted/boost_tuple/mpl If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-fusion/portfile.cmake -- Performing post-build validation done Error: Building package boost-fusion:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-fusion:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-fusion Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey by running: vcpkg contact --survey Computing installation plan... The following packages will be built and installed: boost-fusion[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/view/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/mpl/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/functional/invocation/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/adapted/std_tuple/mpl /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/adapted/struct/detail/preprocessor If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-fusion/portfile.cmake -- Performing post-build validation done Error: Building package boost-fusion:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-fusion:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-fusion Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Computing installation plan... The following packages will be built and installed: boost-fusion[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/functional/invocation/detail If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-fusion/portfile.cmake -- Performing post-build validation done Error: Building package boost-fusion:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-fusion:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-fusion Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Computing installation plan... The following packages will be built and installed: boost-fusion[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation There should be no empty directories in /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux The following empty directories were found: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/view/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/functional/generation/detail /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/include/boost/fusion/functional/adapter/detail If a directory should be populated but is not, this might indicate an error in the portfile. If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them: file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir") Found 1 error(s). Please correct the portfile: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/ports/boost-fusion/portfile.cmake -- Performing post-build validation done Error: Building package boost-fusion:x64-linux failed with: POST_BUILD_CHECKS_FAILED Please ensure you're using the latest portfiles with `./vcpkg update`, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: boost-fusion:x64-linux Vcpkg version: 2020.11.12-unknownhash Additionally, attach any relevant sections from the log files above. $ share/vcpkg/vcpkg install boost-fusion Warning: manifest-root detected at /home/lsteinert/scripts/monstr/share/librethfeld, but manifests are not enabled. If you wish to use manifest mode, you may do one of the following: * Add the `manifests` feature flag to the comma-separated environment variable `VCPKG_FEATURE_FLAGS`. * Add the `manifests` feature flag to the `--feature-flags` option. * Pass your manifest directory to the `--x-manifest-root` option. If you wish to silence this error and use classic mode, you can: * Add the `-manifests` feature flag to `VCPKG_FEATURE_FLAGS`. * Add the `-manifests` feature flag to `--feature-flags`. Computing installation plan... The following packages will be built and installed: boost-fusion[core]:x64-linux Detecting compiler hash for triplet x64-linux... Starting package 1/1: boost-fusion:x64-linux Building package boost-fusion[core]:x64-linux... Could not locate cached archive: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Cleaning sources at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boostorg-fusion-boost-1.74.0.tar.gz -- Using source at /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/buildtrees/boost-fusion/src/ost-1.74.0-830f825d75.clean -- Packaging headers -- Packaging headers done -- Using cached /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/downloads/boost_LICENSE_1_0.txt -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/usage -- Installing: /home/lsteinert/scripts/monstr/share/librethfeld/share/vcpkg/packages/boost-fusion_x64-linux/share/boost-fusion/copyright -- Performing post-build validation -- Performing post-build validation done Stored binary cache: /home/lsteinert/.cache/vcpkg/archives/f2/f2ec63c49ee3217549de4fde012f9d60b6c44b60.zip Building package boost-fusion[core]:x64-linux... done Installing package boost-fusion[core]:x64-linux... Installing package boost-fusion[core]:x64-linux... done Elapsed time for package boost-fusion:x64-linux: 23.27 s Total elapsed time: 24.51 s The package boost is compatible with built-in CMake targets: find_package(Boost REQUIRED [COMPONENTS ...]) target_link_libraries(main PRIVATE Boost::boost Boost:: Boost:: ...) ```
PhoebeHui commented 3 years ago

@strega-nil, does this a known issue? I didn't repro this issue on ubuntu 18.04 with './vcpkg install boost-predef --feature-flags=manifests'.

./vcpkg install boost-predef --feature-flags=manifests
Your feedback is important to improve Vcpkg! Please take 3 minutes to complete our survey by running: vcpkg contact --survey
Computing installation plan...
The following packages will be built and installed:
    boost-predef[core]:x64-linux
Detecting compiler hash for triplet x64-linux...
Starting package 1/1: boost-predef:x64-linux
Building package boost-predef[core]:x64-linux...
-- Using cached /home/phoebe/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz
-- Cleaning sources at /home/phoebe/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /home/phoebe/vcpkg/downloads/boostorg-predef-boost-1.74.0.tar.gz
-- Using source at /home/phoebe/vcpkg/buildtrees/boost-predef/src/ost-1.74.0-f1dd4ff981.clean
-- Packaging headers
-- Packaging headers done
-- Using cached /home/phoebe/vcpkg/downloads/boost_LICENSE_1_0.txt
-- Installing: /home/phoebe/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/usage
-- Installing: /home/phoebe/vcpkg/packages/boost-predef_x64-linux/share/boost-predef/copyright
-- Performing post-build validation
-- Performing post-build validation done
Building package boost-predef[core]:x64-linux... done
Installing package boost-predef[core]:x64-linux...
Installing package boost-predef[core]:x64-linux... done
Elapsed time for package boost-predef:x64-linux: 101.4 ms

Total elapsed time: 555.2 ms
strega-nil commented 3 years ago

@L0ric0 could you paste the manifest that you used?

L0ric0 commented 3 years ago

here is the manifest:

{
  "name": "librethfeld",
  "version-string": "0.0.1",
  "dependencies": [
      "gtest",
      "boost-ublas",
      "boost-serialization",
      "boost-mpi",
      "boost-units",
      "spdlog",
      {
        "name": "highfive",
        "features": [
            "boost"
        ]
      },
      {
        "name": "hdf5",
        "features": [
            "cpp"
        ]
      }
    ]
}

hdf5 and the boost feature to highfive where added after the report

strega-nil commented 3 years ago

I'm looking into it; I think it's unlikely I'll be able to solve it, and it's probably something to do with NFS. If you can figure out how to repro this, that might be helpful...

L0ric0 commented 3 years ago

ok it most definitely is nfs. I have build the boost-predef (with vcpkg install boost-predef) package on /tmp multiple times without getting an error (removing vcpkg/installed and ~/.cahce/vcpkg/archive/* before each run). Doing the same on the nfs filesystem produces the error mentioned in the issue description about 50% of the time.

The nfs4 filesystem is mounted with the following options: sec=krb5p,exec,suid,soft,nfdvers4.2

strega-nil commented 3 years ago

@L0ric0 it sounds like your NFS share is a bit broken... I'm not really sure how to work around that. We recommend not using vcpkg from a share, since a lot of problems like this end up happening.

L0ric0 commented 3 years ago

yup it was nfs. changing the soft mount option to hard fixed the issue.

Documenting this incompatibility somewhere would probably be nice.

strega-nil commented 3 years ago

@L0ric0 yeah, good idea.