Skip to content
Snippets Groups Projects
Commit 2f0dab33 authored by Simon McVittie's avatar Simon McVittie
Browse files

Merge branch 'wip/smcv/icds' into 'master'

Make Vulkan and EGL ICDs available in the container

See merge request steam/pressure-vessel!6
parents 71612d65 8aeabedd
Branches
Tags
No related merge requests found
...@@ -6,3 +6,4 @@ ...@@ -6,3 +6,4 @@
/libcapsule_*.tar.[gx]z /libcapsule_*.tar.[gx]z
/pressure-vessel-[0-9]*.tar.gz /pressure-vessel-[0-9]*.tar.gz
/relocatable-install/ /relocatable-install/
/subprojects/steam-runtime-tools/
...@@ -10,11 +10,17 @@ same place as pressure-vessel, or from ...@@ -10,11 +10,17 @@ same place as pressure-vessel, or from
pressure-vessel incorporates code from GNOME libglnx, variously licensed pressure-vessel incorporates code from GNOME libglnx, variously licensed
under [LGPL-2.0-or-later][] and [LGPL-2.1-or-later][]. under [LGPL-2.0-or-later][] and [LGPL-2.1-or-later][].
Complete source code can be obtained from the same place as Complete source code can be obtained from the same place as
pressure-vessel. pressure-vessel, or from <http://repo.steampowered.com/steamrt/>.
pressure-vessel incorporates code from Flatpak, licensed under pressure-vessel incorporates code from Flatpak, licensed under
[LGPL-2.1-or-later][]. Complete source code can be obtained from the [LGPL-2.1-or-later][]. Complete source code can be obtained from the
same place as pressure-vessel. same place as pressure-vessel, or from
<http://repo.steampowered.com/steamrt/>.
pressure-vessel includes the steam-runtime-tools library and utilities,
which are licensed under the [MIT][] license. See steam-runtime-tools.txt.
Complete source code can be obtained from the same place as pressure-vessel,
or from <http://repo.steampowered.com/steamrt/>.
Binary releases of pressure-vessel include the following third-party Binary releases of pressure-vessel include the following third-party
programs and libraries: programs and libraries:
...@@ -47,6 +53,9 @@ programs and libraries: ...@@ -47,6 +53,9 @@ programs and libraries:
- libz.so.1 from zlib: [Zlib][] license. See zlib.txt. - libz.so.1 from zlib: [Zlib][] license. See zlib.txt.
- libjson-glib-1.0.so.0 from json-glib: [LGPL-2.0-or-later][]. See
json-glib.txt.
Complete source code can be obtained from the same place as Complete source code can be obtained from the same place as
pressure-vessel, or from <http://repo.steampowered.com/steamrt/>. pressure-vessel, or from <http://repo.steampowered.com/steamrt/>.
......
...@@ -78,11 +78,13 @@ ARCHS = [ ...@@ -78,11 +78,13 @@ ARCHS = [
DEPENDENCIES = { DEPENDENCIES = {
'libcapsule-tools-relocatable': 'libcapsule', 'libcapsule-tools-relocatable': 'libcapsule',
'libelf1': 'elfutils', 'libelf1': 'elfutils',
'libsteam-runtime-tools-0-helpers': 'steam-runtime-tools',
'zlib1g': 'zlib', 'zlib1g': 'zlib',
} }
# program to install => binary package # program to install => binary package
WRAPPED_PROGRAMS = { WRAPPED_PROGRAMS = {
'bwrap': 'bubblewrap', 'bwrap': 'bubblewrap',
'steam-runtime-system-info': 'steam-runtime-tools-bin',
} }
PRIMARY_ARCH_DEPENDENCIES = { PRIMARY_ARCH_DEPENDENCIES = {
'bubblewrap': 'bubblewrap', 'bubblewrap': 'bubblewrap',
...@@ -90,10 +92,12 @@ PRIMARY_ARCH_DEPENDENCIES = { ...@@ -90,10 +92,12 @@ PRIMARY_ARCH_DEPENDENCIES = {
'libcap2': 'libcap2', 'libcap2': 'libcap2',
'libffi6': 'libffi', 'libffi6': 'libffi',
'libglib2.0-0': 'glib2.0', 'libglib2.0-0': 'glib2.0',
'libjson-glib-1.0-0': 'json-glib',
'libmount1': 'util-linux', 'libmount1': 'util-linux',
'libpcre3': 'pcre3', 'libpcre3': 'pcre3',
'libxau6': 'libxau',
'libselinux1': 'libselinux', 'libselinux1': 'libselinux',
'libsteam-runtime-tools-0-0': 'steam-runtime-tools',
'libxau6': 'libxau',
} }
SCRIPTS = [ SCRIPTS = [
'pressure-vessel-locale-gen', 'pressure-vessel-locale-gen',
...@@ -233,6 +237,7 @@ def main(): ...@@ -233,6 +237,7 @@ def main():
raise RuntimeError('--output directory must not already exist') raise RuntimeError('--output directory must not already exist')
os.makedirs(os.path.join(installation, 'bin'), exist_ok=True) os.makedirs(os.path.join(installation, 'bin'), exist_ok=True)
os.makedirs(os.path.join(installation, 'libexec'), exist_ok=True)
os.makedirs(os.path.join(installation, 'metadata'), exist_ok=True) os.makedirs(os.path.join(installation, 'metadata'), exist_ok=True)
for arch in ARCHS: for arch in ARCHS:
...@@ -291,6 +296,35 @@ def main(): ...@@ -291,6 +296,35 @@ def main():
os.path.join(installation, 'bin'), os.path.join(installation, 'bin'),
) )
path = '/usr/libexec/steam-runtime-tools-0'
if not os.path.exists(path):
package = 'libsteam-runtime-tools-0-helpers'
v_check_call([
'apt-get',
'download',
package + ':' + arch.name,
], cwd=tmpdir)
v_check_call(
'dpkg-deb -X {}_*_{}.deb build-relocatable'.format(
quote(package),
quote(arch.name),
),
cwd=tmpdir,
shell=True,
)
path = '{}/build-relocatable/{}'.format(tmpdir, path)
for tool in glob.glob(os.path.join(path, arch.multiarch + '-*')):
install_exe(
tool,
os.path.join(
installation,
'libexec',
'steam-runtime-tools-0',
),
)
primary_architecture = subprocess.check_output([ primary_architecture = subprocess.check_output([
'dpkg', '--print-architecture', 'dpkg', '--print-architecture',
]).decode('utf-8').strip() ]).decode('utf-8').strip()
...@@ -329,8 +363,10 @@ def main(): ...@@ -329,8 +363,10 @@ def main():
'soname:libXau.so.6', 'soname:libXau.so.6',
'soname:libcap.so.2', 'soname:libcap.so.2',
'soname:libgio-2.0.so.0', 'soname:libgio-2.0.so.0',
'soname:libjson-glib-1.0.so.0',
'soname:libpcre.so.3', 'soname:libpcre.so.3',
'soname:libselinux.so.1', 'soname:libselinux.so.1',
'soname:libsteam-runtime-tools-0.so.0',
]) ])
for so in glob.glob( for so in glob.glob(
......
...@@ -17,9 +17,13 @@ apt-get -y install \ ...@@ -17,9 +17,13 @@ apt-get -y install \
libmount1 \ libmount1 \
libpcre3 \ libpcre3 \
libselinux1 \ libselinux1 \
libsteam-runtime-tools-0-dev \
libsteam-runtime-tools-0-helpers:amd64 \
libsteam-runtime-tools-0-helpers:i386 \
libxau6 \ libxau6 \
locales \ locales \
pandoc \ pandoc \
steam-runtime-tools-bin \
zlib1g:amd64 \ zlib1g:amd64 \
zlib1g:i386 \ zlib1g:i386 \
${NULL+} ${NULL+}
......
...@@ -6,6 +6,7 @@ Standards-Version: 4.4.0 ...@@ -6,6 +6,7 @@ Standards-Version: 4.4.0
Build-Depends: Build-Depends:
debhelper (>= 9), debhelper (>= 9),
libglib2.0-dev, libglib2.0-dev,
libsteam-runtime-tools-0-dev (>= 0.20190926.0~),
libxau-dev, libxau-dev,
locales <!nocheck> | locales-all <!nocheck>, locales <!nocheck> | locales-all <!nocheck>,
meson, meson,
...@@ -22,6 +23,7 @@ Multi-Arch: foreign ...@@ -22,6 +23,7 @@ Multi-Arch: foreign
Depends: Depends:
bubblewrap, bubblewrap,
libcapsule-tools-relocatable, libcapsule-tools-relocatable,
steam-runtime-tools-bin,
${misc:Depends}, ${misc:Depends},
${shlibs:Depends}, ${shlibs:Depends},
Recommends: Recommends:
...@@ -37,6 +39,7 @@ Architecture: amd64 ...@@ -37,6 +39,7 @@ Architecture: amd64
Multi-Arch: foreign Multi-Arch: foreign
Depends: Depends:
libcapsule-tools-relocatable, libcapsule-tools-relocatable,
libsteam-runtime-tools-0-helpers,
${misc:Depends}, ${misc:Depends},
${shlibs:Depends}, ${shlibs:Depends},
Description: Steam container launcher - cross-architecture dependencies Description: Steam container launcher - cross-architecture dependencies
...@@ -49,6 +52,7 @@ Architecture: i386 ...@@ -49,6 +52,7 @@ Architecture: i386
Multi-Arch: foreign Multi-Arch: foreign
Depends: Depends:
libcapsule-tools-relocatable, libcapsule-tools-relocatable,
libsteam-runtime-tools-0-helpers,
${misc:Depends}, ${misc:Depends},
${shlibs:Depends}, ${shlibs:Depends},
Description: Steam container launcher - cross-architecture dependencies Description: Steam container launcher - cross-architecture dependencies
......
...@@ -29,6 +29,9 @@ variables: ...@@ -29,6 +29,9 @@ variables:
# Set non-empty to allow # Set non-empty to allow
CI_ALLOW_MISSING_SOURCES: '' CI_ALLOW_MISSING_SOURCES: ''
STEAM_RUNTIME_TOOLS_GIT_REPO: https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.steamos.cloud/steam/steam-runtime-tools.git
STEAM_RUNTIME_TOOLS_GIT_BRANCH: master
build: build:
variables: variables:
BUILD_IMAGE: docker.internal.steamos.cloud/steamos/package-builder:buster BUILD_IMAGE: docker.internal.steamos.cloud/steamos/package-builder:buster
...@@ -40,11 +43,10 @@ build:devel: ...@@ -40,11 +43,10 @@ build:devel:
- | - |
set -eux set -eux
apt-get -y --no-install-recommends install \ git clone \
libglib2.0-dev \ -b${STEAM_RUNTIME_TOOLS_GIT_BRANCH} \
libxau-dev \ ${STEAM_RUNTIME_TOOLS_GIT_REPO} \
meson \ subprojects/steam-runtime-tools
${NULL+}
meson _build meson _build
ninja -C _build ninja -C _build
...@@ -81,9 +83,13 @@ build:scout: ...@@ -81,9 +83,13 @@ build:scout:
libcapsule0 \ libcapsule0 \
libcapsule-tools-relocatable:amd64 \ libcapsule-tools-relocatable:amd64 \
libcapsule-tools-relocatable:i386 \ libcapsule-tools-relocatable:i386 \
libsteam-runtime-tools-0-dev \
libsteam-runtime-tools-0-helpers:amd64 \
libsteam-runtime-tools-0-helpers:i386 \
libglib2.0-dev \ libglib2.0-dev \
libxau-dev \ libxau-dev \
meson \ meson \
steam-runtime-tools-bin
${NULL+} ${NULL+}
meson \ meson \
......
...@@ -4,9 +4,15 @@ set -eux ...@@ -4,9 +4,15 @@ set -eux
dpkg --add-architecture amd64 dpkg --add-architecture amd64
dpkg --add-architecture i386 dpkg --add-architecture i386
apt-get -y update
apt-get -y install \ apt-get -y install \
libcapsule-tools-relocatable:amd64 \ libcapsule-tools-relocatable:amd64 \
libcapsule-tools-relocatable:i386 \ libcapsule-tools-relocatable:i386 \
libsteam-runtime-tools-0-0:amd64 \
libsteam-runtime-tools-0-0:i386 \
libsteam-runtime-tools-0-helpers:amd64 \
libsteam-runtime-tools-0-helpers:i386 \
steam-runtime-tools-bin \
${NULL+} ${NULL+}
/usr/lib/pressure-vessel/relocatable/bin/pressure-vessel-build-relocatable-install \ /usr/lib/pressure-vessel/relocatable/bin/pressure-vessel-build-relocatable-install \
......
...@@ -177,6 +177,12 @@ executable( ...@@ -177,6 +177,12 @@ executable(
'-Wno-unused-local-typedefs', '-Wno-unused-local-typedefs',
], ],
dependencies : [ dependencies : [
dependency(
'steam-runtime-tools-0',
required : true,
fallback : ['steam-runtime-tools', 'libsteamrt_dep'],
default_options : ['gtk_doc=false'],
),
dependency('gio-unix-2.0', required : true), dependency('gio-unix-2.0', required : true),
dependency('xau', required : true), dependency('xau', required : true),
subproject('libglnx').get_variable('libglnx_dep'), subproject('libglnx').get_variable('libglnx_dep'),
......
This diff is collapsed.
[wrap-git]
directory = steam-runtime-tools
url = https://gitlab.steamos.cloud/steam/steam-runtime-tools.git
revision = head
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment