Describe the bug
If mpg123 (or libvpx as I've seen) is added as a dependency in a manifest (either as a direct dependency or through another package such as sdl2-mixer), building the package for anything other than x86-windows-* will fail due to a soft dependency on yasm-tool for the x86-windows triplet. Trying to install it manually using --x-install-root will install it, but upon installing the manifest for x64-windows (or any other triplet) will cause it to be purged before installing mpg123, failing to install again.
This still happens when yasm-tool is directly depended on in the manifest. vcpkg will continue to uninstall the x86 version, queueing the x64 version instead (which will specifically not work).
Environment
- OS: Windows 10 (20H2, 19042.631)
- Compiler: Microsoft Visual Studio 2019 v16.8.3,
cl.exe version 19.28.29335
- vcpkg version: 2020.11.12-nohash (latest commit)
To Reproduce
Steps to reproduce the behavior:
- Make a new directory anywhere, and
cd into it
- Create a
vcpkg.json in that directory requiring mpg123 in some way, such as this:
{
"name": "test",
"version-string": "1.0",
"description": "Test package",
"dependencies": ["3fd"]
}
- Run
vcpkg --feature-flags=manifests install --target=x64-windows
- Notice failure
- Run
vcpkg --x-install-root=vcpkg_installed install yasm-tool:x86-windows to attempt to fix failure
- Run
vcpkg --feature-flags=manifests install --target=x64-windows again
- Notice how
yasm-tool is purged, and mpg123 fails again
Expected behavior
Either yasm-tool remains installed during manifest installation, or there should be some way to declare installation of yasm-tool:x86-windows in the manifest.
Failure logs
Logs
Computing installation plan...
The following packages will be built and installed:
yasm-tool[core]:x86-windows -> 2020-10-12
Detecting compiler hash for triplet x86-windows...
Using cached binary package: C:\Users\jackb_000\AppData\Local\vcpkg\archives\73\73f71f1c170eaaf362d3c5f757a2c52e1fee59dd.zip
Starting package 1/1: yasm-tool:x86-windows
Building package yasm-tool[core]:x86-windows...
Building package yasm-tool[core]:x86-windows... done
Installing package yasm-tool[core]:x86-windows...
Installing package yasm-tool[core]:x86-windows... done
Elapsed time for package yasm-tool:x86-windows: 13.5 ms
Total elapsed time: 4.016 s
Detecting compiler hash for triplet x64-windows...
The following packages will be removed:
yasm-tool:x86-windows
The following packages will be built and installed:
* mpg123[core]:x64-windows -> 1.26.3
* opus[core]:x64-windows -> 1.3.1#5
* opusfile[core]:x64-windows -> 0.12
pdcurses[core]:x64-windows -> 3.9
pngpp[core]:x64-windows -> 0.2.10
poco[core]:x64-windows -> 1.10.1#3
sdl2[core]:x64-windows -> 2.0.12#8
sdl2-mixer[core,dynamic-load,fluidsynth,libflac,libmodplug,libvorbis,mpg123,nativemidi,opusfile]:x64-windows -> 2.0.4#10
Additional packages (*) will be modified to complete this operation.
Starting package 1/9: yasm-tool:x86-windows
Removing package yasm-tool:x86-windows...
Removing package yasm-tool:x86-windows... done
Elapsed time for package yasm-tool:x86-windows: 7.359 ms
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives90\901b97c5c2efbfc84fa4d0f7596ae853d1760322.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\f2\f26f63c63a7cce103e30aac390f8596dacae0982.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\c9\c9bbf3f6f1fd7e20405ffa0d4fbe78b97f9b5061.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\79\79485ca3be49f4b3238f298584a1a78721e011bb.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\0e\0ea0e20954cff081a87e4a237ca245d7c4c5da23.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\9f\9f8e86d610c7d567af9961b2f666930f94997172.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\f6\f68d66d6a6fab5794997a5abff0f9324fba5e082.zip
Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\0f\0f1802e11d6f5aa6a26f1751e923c15b0306d81d.zip
Starting package 2/9: mpg123:x64-windows
Building package mpg123[core]:x64-windows...
-- Trying auto-select mirror...
-- Using cached C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2
-- Skipping hash check for C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2.
-- The default mirror is in Disaster Recovery mode, trying other mirrors...
-- Trying mirror cfhcable...
-- Using cached C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2
-- Skipping hash check for C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2.
-- Cleaning sources at C:/Users/jackb_000/Downloads/vcpkg/buildtrees/mpg123/src/7574331afa-116bac1a58.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2
-- Applying patch 0001-fix-x86-build.patch
-- Using source at C:/Users/jackb_000/Downloads/vcpkg/buildtrees/mpg123/src/7574331afa-116bac1a58.clean
CMake Error at C:/Users/jackb_000/Downloads/ComputerCraft/CraftOS-PC-2/vcpkg_installed/x64-windows/share/yasm-tool-helper/yasm-tool-helper.cmake:16 (message):
Cross-targetting and x64 ports requiring yasm require the x86-windows
yasm-tool to be available. Please install yasm-tool:x86-windows first.
Call Stack (most recent call first):
ports/mpg123/portfile.cmake:37 (yasm_tool_helper)
scripts/ports.cmake:136 (include)
EXEC : error : Building package mpg123:x64-windows failed with: BUILD_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: mpg123:x64-windows
Vcpkg version: 2020.11.12-nohash
Additionally, attach any relevant sections from the log files above.
Additional context
I'm mainly installing the manifest through Visual Studio, but this issue persists when manually installing with vcpkg install.
Describe the bug
If
mpg123(orlibvpxas I've seen) is added as a dependency in a manifest (either as a direct dependency or through another package such assdl2-mixer), building the package for anything other thanx86-windows-*will fail due to a soft dependency onyasm-toolfor thex86-windowstriplet. Trying to install it manually using--x-install-rootwill install it, but upon installing the manifest forx64-windows(or any other triplet) will cause it to be purged before installingmpg123, failing to install again.This still happens when
yasm-toolis directly depended on in the manifest. vcpkg will continue to uninstall the x86 version, queueing the x64 version instead (which will specifically not work).Environment
cl.exeversion 19.28.29335To Reproduce
Steps to reproduce the behavior:
cdinto itvcpkg.jsonin that directory requiringmpg123in some way, such as this:{ "name": "test", "version-string": "1.0", "description": "Test package", "dependencies": ["3fd"] }vcpkg --feature-flags=manifests install --target=x64-windowsvcpkg --x-install-root=vcpkg_installed install yasm-tool:x86-windowsto attempt to fix failurevcpkg --feature-flags=manifests install --target=x64-windowsagainyasm-toolis purged, andmpg123fails againExpected behavior
Either
yasm-toolremains installed during manifest installation, or there should be some way to declare installation ofyasm-tool:x86-windowsin the manifest.Failure logs
Logs
Computing installation plan... The following packages will be built and installed: yasm-tool[core]:x86-windows -> 2020-10-12 Detecting compiler hash for triplet x86-windows... Using cached binary package: C:\Users\jackb_000\AppData\Local\vcpkg\archives\73\73f71f1c170eaaf362d3c5f757a2c52e1fee59dd.zip Starting package 1/1: yasm-tool:x86-windows Building package yasm-tool[core]:x86-windows... Building package yasm-tool[core]:x86-windows... done Installing package yasm-tool[core]:x86-windows... Installing package yasm-tool[core]:x86-windows... done Elapsed time for package yasm-tool:x86-windows: 13.5 msTotal elapsed time: 4.016 s
Detecting compiler hash for triplet x64-windows... The following packages will be removed: yasm-tool:x86-windows The following packages will be built and installed: * mpg123[core]:x64-windows -> 1.26.3 * opus[core]:x64-windows -> 1.3.1#5 * opusfile[core]:x64-windows -> 0.12 pdcurses[core]:x64-windows -> 3.9 pngpp[core]:x64-windows -> 0.2.10 poco[core]:x64-windows -> 1.10.1#3 sdl2[core]:x64-windows -> 2.0.12#8 sdl2-mixer[core,dynamic-load,fluidsynth,libflac,libmodplug,libvorbis,mpg123,nativemidi,opusfile]:x64-windows -> 2.0.4#10 Additional packages (*) will be modified to complete this operation. Starting package 1/9: yasm-tool:x86-windows Removing package yasm-tool:x86-windows... Removing package yasm-tool:x86-windows... done Elapsed time for package yasm-tool:x86-windows: 7.359 ms Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives90\901b97c5c2efbfc84fa4d0f7596ae853d1760322.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\f2\f26f63c63a7cce103e30aac390f8596dacae0982.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\c9\c9bbf3f6f1fd7e20405ffa0d4fbe78b97f9b5061.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\79\79485ca3be49f4b3238f298584a1a78721e011bb.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\0e\0ea0e20954cff081a87e4a237ca245d7c4c5da23.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\9f\9f8e86d610c7d567af9961b2f666930f94997172.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\f6\f68d66d6a6fab5794997a5abff0f9324fba5e082.zip Could not locate cached archive: C:\Users\jackb_000\AppData\Local\vcpkg\archives\0f\0f1802e11d6f5aa6a26f1751e923c15b0306d81d.zip Starting package 2/9: mpg123:x64-windows Building package mpg123[core]:x64-windows... -- Trying auto-select mirror... -- Using cached C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2 -- Skipping hash check for C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2. -- The default mirror is in Disaster Recovery mode, trying other mirrors... -- Trying mirror cfhcable... -- Using cached C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2 -- Skipping hash check for C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2. -- Cleaning sources at C:/Users/jackb_000/Downloads/vcpkg/buildtrees/mpg123/src/7574331afa-116bac1a58.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source C:/Users/jackb_000/Downloads/vcpkg/downloads/mpg123-1.26.3.tar.bz2 -- Applying patch 0001-fix-x86-build.patch -- Using source at C:/Users/jackb_000/Downloads/vcpkg/buildtrees/mpg123/src/7574331afa-116bac1a58.clean CMake Error at C:/Users/jackb_000/Downloads/ComputerCraft/CraftOS-PC-2/vcpkg_installed/x64-windows/share/yasm-tool-helper/yasm-tool-helper.cmake:16 (message): Cross-targetting and x64 ports requiring yasm require the x86-windows yasm-tool to be available. Please install yasm-tool:x86-windows first. Call Stack (most recent call first): ports/mpg123/portfile.cmake:37 (yasm_tool_helper) scripts/ports.cmake:136 (include) EXEC : error : Building package mpg123:x64-windows failed with: BUILD_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: mpg123:x64-windows Vcpkg version: 2020.11.12-nohash Additionally, attach any relevant sections from the log files above.Additional context
I'm mainly installing the manifest through Visual Studio, but this issue persists when manually installing with
vcpkg install.