Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
steam-runtime-tools
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
steamrt
steam-runtime-tools
Commits
700d8747
Commit
700d8747
authored
6 years ago
by
Simon McVittie
Browse files
Options
Downloads
Patches
Plain Diff
build: Redo installation instructions
Signed-off-by:
Simon McVittie
<
smcv@collabora.com
>
parent
af49a9f7
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.gitignore
+2
-0
2 additions, 0 deletions
.gitignore
Makefile
+41
-6
41 additions, 6 deletions
Makefile
README.md
+19
-16
19 additions, 16 deletions
README.md
with
62 additions
and
22 deletions
.gitignore
+
2
−
0
View file @
700d8747
/_build/
/relocatable-install/
/libcapsule_*.dsc
/libcapsule_*.tar.[gx]z
This diff is collapsed.
Click to expand it.
Makefile
+
41
−
6
View file @
700d8747
all
:
install
install
:
install-amd64 install-i386
chroot
=
/srv/jessie
in_chroot
=
\
bwrap
\
--ro-bind
$(
chroot
)
/
\
--dev-bind
/dev /dev
\
--tmpfs
/tmp
\
--tmpfs
/home
\
--bind
$(
CURDIR
)
$(
CURDIR
)
\
--chdir
$(
CURDIR
)
\
--setenv
LC_ALL C.UTF-8
\
$(
NULL
)
install
:
install-amd64 install-i386 libcapsule/configure
install
pressure-vessel-wrap relocatable-install/bin/
mkdir
-p
relocatable-install/sources
install
-m644
THIRD-PARTY.md relocatable-install/sources/README.txt
install
-m644
libcapsule/debian/copyright relocatable-install/sources/capsule-capture-libs.txt
install
-m644
/usr/share/doc/zlib1g/copyright relocatable-install/sources/libz.txt
install
-m644
/usr/share/doc/libelf1/copyright relocatable-install/sources/libelf.txt
install
-m644
libcapsule-
*
.tar.
*
relocatable-install/sources/
cd
relocatable-install/sources
;
apt-get
--download-only
source
elfutils zlib
dcmd
install
-m644
libcapsule
*
.dsc relocatable-install/sources/
$(
in_chroot
)
$(
MAKE
)
in
-chroot
/install
in-chroot/install
:
cd
relocatable-install/sources
;
\
apt-get
--download-only
source
elfutils zlib
libcapsule/configure
:
rm
-fr
libcapsule
tar
-zxvf
libcapsule-
*
.tar.
*
first
=
;
\
for
t
in
libcapsule
*
.dsc
;
do
\
if
[
-z
"
$$
first"
]
;
then
\
first
=
"
$$
t"
;
\
else
\
echo
"Exactly one libcapsule*.dsc is required"
>
&2
;
\
exit
1
;
\
fi
;
\
done
$(
in_chroot
)
$(
MAKE
)
in
-chroot
/libcapsule/configure
in-chroot/libcapsule/configure
:
dpkg-source
-x
libcapsule
*
.dsc
mv
libcapsule-
*
/ libcapsule
set
-e
;
cd
libcapsule
;
NOCONFIGURE
=
1 ./autogen.sh
_build/%/config.status
:
libcapsule/configure Makefile
mkdir
-p
_build/
$*
/libcapsule
$(
in_chroot
)
$(
MAKE
)
in
-chroot
/configure-
$*
in-chroot/configure-%
:
set
-eu
;
\
eval
"
$$(
dpkg-architecture -a"
$*
" --print-set
)
"
;
\
case
"
$${
DEB_BUILD_ARCH
}
/
$${
DEB_HOST_ARCH
}
"
in
\
...
...
@@ -36,11 +68,14 @@ _build/%/config.status: libcapsule/configure Makefile
$(
NULL
)
build-%
:
_build/%/config.status Makefile
make
-C
_build/
$*
/libcapsule
$(
in_chroot
)
$(
MAKE
)
-C
_build/
$*
/libcapsule
install-%
:
build-% Makefile
mkdir
-p
relocatable-install/bin
$(
in_chroot
)
$(
MAKE
)
in
-chroot
/install-
$*
in-chroot/install-%
:
set
-eu
;
\
mkdir
-p
relocatable-install/bin
;
\
eval
"
$$(
dpkg-architecture -a"
$*
" --print-set
)
"
;
\
mkdir
-p
"relocatable-install/lib/
$${
DEB_HOST_MULTIARCH
}
"
;
\
install
"_build/
$*
/libcapsule/capsule-capture-libs"
"_build/
$${
DEB_HOST_MULTIARCH
}
-capsule-capture-libs"
;
\
...
...
This diff is collapsed.
Click to expand it.
README.md
+
19
−
16
View file @
700d8747
...
...
@@ -21,25 +21,32 @@ that won't be synchronised, other than /tmp or similar.)
We can get a more predictable library stack than the
`LD_LIBRARY_PATH`
-based Steam Runtime by making an alternative runtime
available over
`/usr`
,
`/lib*`
,
`/bin`
,
`/sbin`
, analogous to Flatpak
runtimes, possibly using
[
libcapsule
][]
to share the host's graphics
driver stack. (This mode is not yet implemented.)
runtimes, using some or all of the host system's graphics stack.
A future goal is to use
[
libcapsule
][]
to avoid the library dependencies
of the host system's graphics stack influencing the libraries loaded by
games, particularly libstdc++. This is not yet implemented.
[
libcapsule
]:
https://gitlab.collabora.com/vivek/libcapsule/
Building a relocatable install
------------------------------
On a system with autoconf-archive 20160916-1~bpo8+1 or later, check out
libcapsule from git and use
`aclocal -I m4 --install`
to copy required
macros to the
`m4`
directory. Put it in the
`libcapsule/`
subdirectory
of
`pressure-vessel`
.
Build a Debian source package (
`.dsc`
,
`.debian.tar.*`
,
`.orig.tar.*`
for libcapsule 0.20180430.0 or later, on a system with autoconf-archive
20160916-1~bpo8+1 or later. Put it in the top-level directory of
`pressure-vessel`
, for example:
dcmd cp ../build-area/libcapsule_0.20180430.0-0co1.dsc .
The build system also needs
`bubblewrap`
and
`debootstrap`
.
To make the built version compatible with older systems, you will need a
Debian 8 'jessie' chroot with some extra packages
(
SteamOS 2 'brewmaster'
Debian 8 'jessie' chroot with some extra packages
.
SteamOS 2 'brewmaster'
is not suitable, because its amd64 and i386 linux-libc-dev packages are
not co-installable).
not co-installable.
To prepare the chroot:
sudo debootstrap jessie /srv/jessie http://deb.debian.org/debian
echo 'deb-src http://deb.debian.org/debian jessie main' | \
...
...
@@ -52,14 +59,10 @@ not co-installable).
gtk-doc-tools libelf-dev libelf-dev:i386 libipc-run-perl \
libjpeg62-turbo libjpeg62-turbo:i386 perl xsltproc zlib1g zlib1g:i386
sudo chroot /srv/jessie apt install -t jessie-backports autoconf-archive
bwrap \
--ro-bind /srv/jessie / \
--dev-bind /dev /dev \
--tmpfs /tmp \
--bind /home /home \
--chdir $(pwd) \
--setenv LC_ALL C.UTF-8 \
make
To build the relocatable install:
make chroot=/srv/jessie
Binaries and source code end up in
`relocatable-install/`
which can be
copied to wherever you want.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment