ValveSoftware / ValveSoftware/steam-runtime

cmake in sniper fails to locate libogg and libvorbis

Open
#735 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
1.5k
Forks
97
PR merge metrics
No merged PRs in 30d

Description

Your system information
  • Steam Runtime Version: Sniper
  • Distribution: Using the image registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest
Please describe your issue in as much detail as possible:

We are building our game in the Sniper container per the documentation at GitLab. We have Cmake find several packages, for example:

find_package(ZLIB REQUIRED GLOBAL)

However, this does not work for ogg or vorbis:

find_package(Ogg REQUIRED GLOBAL)
 CMake Error at extern/CMakeLists.txt:38 (find_package):
   By not providing "FindOgg.cmake" in CMAKE_MODULE_PATH this project has
   asked CMake to find a package configuration file provided by "Ogg", but
   CMake did not find one.

   Could not find a package configuration file provided by "Ogg" with any of
   the following names:

     OggConfig.cmake
     ogg-config.cmake

   Add the installation prefix of "Ogg" to CMAKE_PREFIX_PATH or set "Ogg_DIR"
   to a directory containing one of the above files.  If "Ogg" provides a
   separate development package or SDK, be sure it has been installed.
find_package(Vorbis REQUIRED GLOBAL)
   Could not find a package configuration file provided by "Vorbis" with any
   of the following names:

     VorbisConfig.cmake
     vorbis-config.cmake

   Add the installation prefix of "Vorbis" to CMAKE_PREFIX_PATH or set
   "Vorbis_DIR" to a directory containing one of the above files.  If "Vorbis"
   provides a separate development package or SDK, be sure it has been
   installed.

When browsing the Sniper image, we see that vorbis is missing as well.

find /usr -iname "*sdl*cmake*" -o -iname "*zlib*cmake*" -o -iname "*freetype*cmake*" -o -iname "*vorbis*cmake*" -o -iname "*openal*cmake*" -o -iname "*curl*cmake*" -o -iname "*stb*cmake*"
/usr/lib/i386-linux-gnu/cmake/SDL2/sdl2-config-version.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2/sdl2-config.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_image/sdl2_image-config-version.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_image/sdl2_image-config.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_mixer/sdl2_mixer-config-version.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_mixer/sdl2_mixer-config.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_ttf/sdl2_ttf-config-version.cmake
/usr/lib/i386-linux-gnu/cmake/SDL2_ttf/sdl2_ttf-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_image/sdl2_image-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_image/sdl2_image-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_mixer/sdl2_mixer-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_mixer/sdl2_mixer-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_ttf/sdl2_ttf-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/SDL2_ttf/sdl2_ttf-config.cmake
/usr/share/cmake-3.25/Modules/FindCURL.cmake
/usr/share/cmake-3.25/Modules/FindFreetype.cmake
/usr/share/cmake-3.25/Modules/FindSDL_gfx.cmake
/usr/share/cmake-3.25/Modules/FindSDL_image.cmake
/usr/share/cmake-3.25/Modules/FindSDL_net.cmake
/usr/share/cmake-3.25/Modules/FindOpenAL.cmake
/usr/share/cmake-3.25/Modules/FindSDL.cmake
/usr/share/cmake-3.25/Modules/FindSDL_mixer.cmake
/usr/share/cmake-3.25/Modules/FindSDL_sound.cmake
/usr/share/cmake-3.25/Modules/FindSDL_ttf.cmake
/usr/share/cmake-3.25/Modules/FindZLIB.cmake
/usr/share/cmake-3.25/Modules/TestBigEndian.cmake

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at extern/CMakeLists.txt:38 and reproduce the Ogg and Vorbis package lookup in the Sniper SDK image. Inspect the image contents and the documented Sniper build setup to determine how these dependencies are exposed. Done means CMake can locate both Ogg and Vorbis in the Sniper container, with the relevant build check passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.