Skip to content

Cannot include mpg123 for x64-windows in manifest due to missing x86-windows yasm-tool #15087

@MCJack123

Description

@MCJack123

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:

  1. Make a new directory anywhere, and cd into it
  2. 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"]
}
  1. Run vcpkg --feature-flags=manifests install --target=x64-windows
  2. Notice failure
  3. Run vcpkg --x-install-root=vcpkg_installed install yasm-tool:x86-windows to attempt to fix failure
  4. Run vcpkg --feature-flags=manifests install --target=x64-windows again
  5. 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.

Metadata

Metadata

Labels

category:vcpkg-featureThe issue is a new capability of the tool that doesn’t already exist and we haven’t committedinfo:manifestsThis PR or Issue pertains to the Manifests feature

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions