Description
Description
vcpkg
is pre-installed in the Ubuntu 24.04 (ubuntu-latest) runner but
- out of the box it does not support use of NuGet for caching packages due to missing
mono-complete
package, - 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
- Fork https://github.com/KhronosGroup/lodepng.
- 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.