Skip to content

Ubuntu 24.04 runner does not include various dependencies of vcpkg #12342

Closed
@MarkCallow

Description

@MarkCallow

Description

vcpkg is pre-installed in the Ubuntu 24.04 (ubuntu-latest) runner but

  1. out of the box it does not support use of NuGet for caching packages due to missing mono-complete package,
  2. when building a project's dependencies using automated manifest mode vcpkg builds 16 packages while on Windows and macOS runners only 3 packages are built. The 3 packages are those listed by vcpkg depend-info sdl2 the single package which is my project's dependency. The additional packages built on Ubuntu must be dependencies of vcpkg.

Since vcpkg is pre-installed I expect everything it needs to be pre-installed as well. Arguably mono-complete is only needed by those doing NuGet caching but I expect that to be a large number of users given the time saving on CI runs.

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022
  • Windows Server 2025

Image version and build link

A log of a build showing all the packages built on Ubuntu can be found at https://github.com/KhronosGroup/lodepng/actions/runs/15530986521/job/43719740596. Look at the "Build utilities and tests" step.

Note that I have not tried the Ubuntu 22.04 runner.

Is it regression?

I don't know. This is the first time I have tried vcpkg on an Ubuntu runner.

Expected behavior

I expected all packages which are dependencies of vcpkg to be installed in the runner and I hoped that packages needed to support using NuGet caching would also be installed.

Actual behavior

mono-complete is not installed. Neither are the following packages

The following packages will be built and installed:
  * dbus[core,systemd]:x64-linux@1.16.2#1
  * expat:x64-linux@2.7.1
  * gperf:x64-linux@3.1#7
  * libcap:x64-linux@2.73
  * liblzma:x64-linux@5.8.1
  * libmount:x64-linux@2.40
  * libsystemd:x64-linux@256.4
  * libxcrypt:x64-linux@4.4.38
  * lz4:x64-linux@1.10.0
    sdl2[core,dbus,ibus,wayland,x11]:x64-linux@2.32.6
  * vcpkg-cmake:x64-linux@2024-04-23
  * vcpkg-cmake-config:x64-linux@2024-05-23
  * vcpkg-cmake-get-vars:x64-linux@2024-09-22
  * vcpkg-make:x64-linux@2025-04-25
  * vcpkg-tool-meson:x64-linux@1.7.2
  * zstd:x64-linux@1.5.7

sdl2 is the dependency for my project. The output of vcpkg depend-info sdl2 is

$ vcpkg depend-info sdl2
Fetching registry information from https://github.com/microsoft/vcpkg (HEAD)...
vcpkg-cmake: 
vcpkg-cmake-config: 
sdl2: vcpkg-cmake, vcpkg-cmake-config

vcpkg-cmake and vcpkg-cmake-config have no dependencies according to vcpkg depend-info so all those other packages listed above appear to be for vcpkg so should be pre-installed in the runner along with vcpkg.

Repro steps

  1. Fork https://github.com/KhronosGroup/lodepng.
  2. In the fork run the "Build lodepng Utilities and Tests and Run Tests" workflow in the nuget_test branch. Observe packages needed on Linux. Note, since the NuGet cache is now working in this branch the packages won't actually be built.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions