-
Simon McVittie authored
This ensures that they can find the non-ubiquitous json-glib library, and the steam-runtime-tools library, even if relocated into a non-standard prefix like the LD_LIBRARY_PATH Steam Runtime. We can't just use a relative version of the standard library directory as our RPATH, because if we did that, we would load glibc from the same place. This causes crashes in pressure-vessel, where ld.so and the rest of glibc are often taken from the host system via /overrides/lib, and the glibc in /lib and /usr/lib is incompatible with ld.so. Instead, use a private library directory and populate it with relative symlinks to our non-glibc dependencies; we assume the host version of glibc is new enough that this is OK. Using DT_RPATH in preference to DT_RUNPATH means we take all our direct and indirect dependencies from the same place. This is important when libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in GIO as an indirect dependency of check-locale, which doesn't directly depend on GIO. The GIO library we get must match the versions of GLib and GObject we're using. This also bypasses LD_LIBRARY_PATH. Signed-off-by:
Simon McVittie <smcv@collabora.com>
Simon McVittie authoredThis ensures that they can find the non-ubiquitous json-glib library, and the steam-runtime-tools library, even if relocated into a non-standard prefix like the LD_LIBRARY_PATH Steam Runtime. We can't just use a relative version of the standard library directory as our RPATH, because if we did that, we would load glibc from the same place. This causes crashes in pressure-vessel, where ld.so and the rest of glibc are often taken from the host system via /overrides/lib, and the glibc in /lib and /usr/lib is incompatible with ld.so. Instead, use a private library directory and populate it with relative symlinks to our non-glibc dependencies; we assume the host version of glibc is new enough that this is OK. Using DT_RPATH in preference to DT_RUNPATH means we take all our direct and indirect dependencies from the same place. This is important when libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in GIO as an indirect dependency of check-locale, which doesn't directly depend on GIO. The GIO library we get must match the versions of GLib and GObject we're using. This also bypasses LD_LIBRARY_PATH. Signed-off-by:
Simon McVittie <smcv@collabora.com>
control 3.68 KiB
Source: steam-runtime-tools
Section: libs
Priority: optional
Maintainer: Simon McVittie <smcv@collabora.com>
Standards-Version: 4.3.0
Build-Depends:
debhelper,
g++ (>= 4:4.8) | g++-4.8,
glslang-tools,
gtk-doc-tools <!nodoc>,
libcapsule-tools,
libglib2.0-dev,
libjson-glib-dev (>= 1.0),
libtheora0 <!nocheck>,
libvulkan-dev,
libxcb1-dev,
locales <!nocheck> | locales-all <!nocheck>,
meson,
pandoc,
zlib1g <!nocheck>,
Build-Depends-Indep:
libglib2.0-dev,
Vcs-Git: https://gitlab.steamos.cloud/steam/steam-runtime-tools.git
Vcs-Browser: https://gitlab.steamos.cloud/steam/steam-runtime-tools
Package: libsteam-runtime-tools-0-0
Architecture: any
Multi-Arch: same
Section: libdevel
Depends:
libsteam-runtime-tools-0-helpers,
${misc:Depends},
${shlibs:Depends},
Description: Steam Runtime utility library - shared library
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains the shared library.
Package: libsteam-runtime-tools-0-dev
Architecture: any
Multi-Arch: same
Section: libdevel
Depends:
libc6-dev,
libglib2.0-dev,
libjson-glib-dev (>= 1.0),
libsteam-runtime-tools-0-0 (= ${binary:Version}),
${misc:Depends},
${shlibs:Depends},
Description: Steam Runtime utility library - development files
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains development files.
Package: libsteam-runtime-tools-0-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends:
${misc:Depends},
Description: Steam Runtime utility library - documentation
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains documentation.
Package: libsteam-runtime-tools-0-helpers
Architecture: amd64 i386
Multi-Arch: same
Section: misc
Depends:
${misc:Depends},
${shlibs:Depends},
waffle-utils-multiarch,
Description:
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains helper tools used to examine the library stack
available for each architecture.
Package: libsteam-runtime-tools-0-tests
Architecture: any
Section: misc
Depends:
${misc:Depends},
${shlibs:Depends},
libtheora0,
steam-runtime-tools-bin,
zlib1g,
Description:
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains automated tests.
Package: steam-runtime-tools-bin
Architecture: any
Multi-Arch: foreign
Section: libdevel
Breaks:
libsteam-runtime-tools-0-tests (<< 0.20190806.0~),
Replaces:
libsteam-runtime-tools-0-tests (<< 0.20190806.0~),
Depends:
libsteam-runtime-tools-0-0,
${misc:Depends},
${shlibs:Depends},
Description: Steam Runtime utility library - command-line tools
The Steam Runtime is the library stack used to run the Steam client
on Linux. The Steam Runtime Tools utility library contains open-source
supporting code used by the Steam client to discover system information.
.
This package contains the command-line tool steam-runtime-system-info,
which summarizes everything that the libsteam-runtime-tools library
can find out.