Your message dated Tue, 22 Jan 2019 11:07:18 +0000
with message-id <[email protected]>
and subject line Bug#916303: fixed in steam 1.0.0.59-1
has caused the Debian Bug report #916303,
regarding steam: installs to ~/.steam, which is not as intended by upstream
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
916303: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916303
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: steam
Version: 1.0.0.56-1
Severity: important
Tags: patch
According to Valve developers, the Steam client is meant to support
multiple parallel installations, with $XDG_DATA_HOME/Steam as the path
that is normally used. On Linux, ~/.steam/steam is meant to be a symbolic
link to the most recently run installation root for production versions
of the Steam client (there can also be a parallel ~/.steam/steambeta
for internal beta-test versions, which you can see referenced in the
bin_steam.sh script), which allows the Steam client and the Steamworks API
to find the Steam installation root even if the XDG_DATA_HOME environment
variable has changed since installation. Users can also switch between
multiple parallel installations by running /path/to/installation/steam.sh,
which will update the symbolic links.
The steam package in Debian has traditionally unpacked the Steam
bootstrapper directly into ~/.steam, which gives that directory a dual
role: the installation root, and also the symlink farm. Unfortunately,
a bootstrapped installation root will contain a ./steam directory,
which collides with the ~/.steam/steam symbolic link, preventing its
creation. Components of the Steam client end up unpredictably installed
into either ~/.steam or ~/.steam/steam, depending on the exact path
they open (writes via ~/.steam/steam end up in the subdirectory,
but writes via ~/.steam/root do not, even though in Valve's Steam client
package, both are normally meant to be symlinks to ~/.local/share/Steam).
For example, my ~/.steam directory on one Debian machine has most games
and mods in ~/.steam/steam/SteamApps, but one mod in ~/.steam/steamapps
instead. (I suspect that single mod might actually not work at all.)
We can't easily disentangle this for existing installations, but for
new installations we can reduce confusion by behaving the way
upstream intended.
The attached patches also make the shell script more robust by quoting
variables more defensively.
I've tested this against an existing Debian Steam installation in ~/.steam
(layout is unchanged) and in a new installation (the client ends up
installed in ~/.local/share/Steam as intended, with symlinks in ~/.steam).
smcv
>From 97b72883bbb9785af1533c5c076ae4e7d6a1167f Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 13 Nov 2018 12:54:11 +0000
Subject: [PATCH 3/7] d/scripts/steam: Quote variables defensively
Signed-off-by: Simon McVittie <[email protected]>
---
debian/scripts/steam | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/debian/scripts/steam b/debian/scripts/steam
index 9b3ef31..9467f40 100644
--- a/debian/scripts/steam
+++ b/debian/scripts/steam
@@ -2,10 +2,10 @@
# Copyright (C) 2013-2017 Michael Gilbert <[email protected]>
# License: MIT
-config=$HOME/.steam
-ubuntu32=$config/ubuntu12_32
-steam=$ubuntu32/steam
-runtime=$ubuntu32/steam-runtime
+config="$HOME/.steam"
+ubuntu32="$config/ubuntu12_32"
+steam="$ubuntu32/steam"
+runtime="$ubuntu32/steam-runtime"
real=/usr/lib/games/steam/steam
@@ -23,22 +23,22 @@ if ! grep -q sse2 /proc/cpuinfo; then
fi
# do an initial update when expected pieces are missing
-test ! -d $config && rm -rf $config && mkdir -p $config || true
-test ! -x $config/steam.sh && rm -rf $config/package $steam || true
-test ! -d $ubuntu32 && rm -rf $ubuntu32 && mkdir -p $ubuntu32 || true
-test ! -x $steam && rm -rf $steam && cp $real $steam && $steam || true
-test ! -e $runtime.tar.xz && cat $runtime.tar.xz.part* > $runtime.tar.xz || true
-test ! -d $runtime && cd $ubuntu32 && tar xf steam-runtime.tar.xz && \
+test ! -d "$config" && rm -rf "$config" && mkdir -p "$config" || true
+test ! -x "$config/steam.sh" && rm -rf "$config/package" "$steam" || true
+test ! -d "$ubuntu32" && rm -rf "$ubuntu32" && mkdir -p "$ubuntu32" || true
+test ! -x "$steam" && rm -rf "$steam" && cp "$real" "$steam" && "$steam" || true
+test ! -e "$runtime.tar.xz" && cat "$runtime.tar.xz.part"* > "$runtime.tar.xz" || true
+test ! -d "$runtime" && cd "$ubuntu32" && tar xf steam-runtime.tar.xz && \
md5sum steam-runtime.tar.xz > steam-runtime/checksum || \
rm -f steam-runtime.tar.xz*
# remove steam-runtime libraries that are incompatible with newer mesa drivers
# (https://bugs.freedesktop.org/78242)
-find $runtime \( -name libxcb.so\* \
- -o -name libgcc_s.so\* \
- -o -name libstdc++.so\* \
- -o -name libgpg-error.so\* \
- \) -delete
+find "$runtime" \( -name libxcb.so\* \
+ -o -name libgcc_s.so\* \
+ -o -name libstdc++.so\* \
+ -o -name libgpg-error.so\* \
+ \) -delete
# Steam bundles a version of SDL that uses the libdbus API wrong, causing
# assertion failures which are now fatal by default
@@ -47,5 +47,5 @@ find $runtime \( -name libxcb.so\* \
export DBUS_FATAL_WARNINGS=0
# launch the Valve run script
-test -x $config/steam.sh && $config/steam.sh -nominidumps -nobreakpad "$@" \
- 2>$config/error.log
+test -x "$config/steam.sh" && "$config/steam.sh" -nominidumps -nobreakpad "$@" \
+ 2>"$config/error.log"
--
2.20.0
>From c9babaf3a2f92f5f909f90d660160098a994fa95 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 13 Nov 2018 13:42:35 +0000
Subject: [PATCH 4/7] d/scripts/steam: Install to the same directory upstream
use
According to Valve, the Steam client is meant to support multiple
parallel installations, with $XDG_DATA_HOME/Steam as the path that is
normally used. On Linux, ~/.steam/steam is meant to be a symbolic link
to the most recently run installation root for production versions of
the Steam client (there can also be a parallel ~/.steam/steambeta
for internal beta-test versions), which allows the Steam client and
the Steamworks API to find the Steam installation root even if the
XDG_DATA_HOME environment variable has changed since installation.
Users can also switch between installations by running
/path/to/installation/steam.sh, which will update the symbolic links.
The steam package in Debian has traditionally unpacked the Steam
bootstrapper directly into ~/.steam, which gives that directory a
dual role: the installation root, and also the symlink farm.
Unfortunately, a bootstrapped installation root will contain a ./steam
directory, which collides with the ~/.steam/steam symbolic link,
preventing its creation. Components of the Steam client end up
unpredictably installed into either ~/.steam or ~/.steam/steam.
We can't easily disentangle this for existing installations, but for
new installations we can reduce confusion by behaving the way
upstream intended.
Signed-off-by: Simon McVittie <[email protected]>
---
debian/scripts/steam | 37 +++++++++++++++++++++++++++++++++----
1 file changed, 33 insertions(+), 4 deletions(-)
diff --git a/debian/scripts/steam b/debian/scripts/steam
index 9467f40..70d9951 100644
--- a/debian/scripts/steam
+++ b/debian/scripts/steam
@@ -2,8 +2,36 @@
# Copyright (C) 2013-2017 Michael Gilbert <[email protected]>
# License: MIT
+# According to Valve, ~/.steam is intended to contain symbolic links
+# pointing to the currently-running or most-recently-run Steam
+# installation, so that users can swap between multiple installations
+# of the Steam client by running /path/to/steam.sh.
config="$HOME/.steam"
-ubuntu32="$config/ubuntu12_32"
+
+: "${XDG_DATA_HOME:="$HOME/.local/share"}"
+
+# Detect the active or most recently used Steam installation
+if [ -L "$config/steam" ]; then
+ # Usually ~/.steam/steam -> ~/.local/share/Steam
+ root="$(readlink -e -q "$config/steam")"
+elif [ -L "$config/root" ]; then
+ # Usually ~/.steam/root -> ~/.local/share/Steam, but perhaps
+ # ~/.steam/root -> ~/.steam in existing installations (see below)
+ root="$(readlink -e -q "$config/root")"
+elif [ -d "$config/steam" ] && ! [ -L "$config/steam" ]; then
+ # Historical Debian behaviour: use ~/.steam as the installation
+ # directory in addition to using it as the symlink farm (upstream
+ # do not like this because it breaks their mechanism for managing
+ # multiple parallel installations, due to the Steam installation
+ # containing a ./steam directory that collides with the ./steam
+ # symbolic link)
+ root="$config"
+else
+ # No installation found: use upstream's default installation path
+ root="$XDG_DATA_HOME/Steam"
+fi
+
+ubuntu32="$root/ubuntu12_32"
steam="$ubuntu32/steam"
runtime="$ubuntu32/steam-runtime"
@@ -24,7 +52,8 @@ fi
# do an initial update when expected pieces are missing
test ! -d "$config" && rm -rf "$config" && mkdir -p "$config" || true
-test ! -x "$config/steam.sh" && rm -rf "$config/package" "$steam" || true
+test ! -d "$root" && rm -rf "$root" && mkdir -p "$root" || true
+test ! -x "$root/steam.sh" && rm -rf "$root/package" "$steam" || true
test ! -d "$ubuntu32" && rm -rf "$ubuntu32" && mkdir -p "$ubuntu32" || true
test ! -x "$steam" && rm -rf "$steam" && cp "$real" "$steam" && "$steam" || true
test ! -e "$runtime.tar.xz" && cat "$runtime.tar.xz.part"* > "$runtime.tar.xz" || true
@@ -47,5 +76,5 @@ find "$runtime" \( -name libxcb.so\* \
export DBUS_FATAL_WARNINGS=0
# launch the Valve run script
-test -x "$config/steam.sh" && "$config/steam.sh" -nominidumps -nobreakpad "$@" \
- 2>"$config/error.log"
+test -x "$root/steam.sh" && "$root/steam.sh" -nominidumps -nobreakpad "$@" \
+ 2>"$root/error.log"
--
2.20.0
--- End Message ---
--- Begin Message ---
Source: steam
Source-Version: 1.0.0.59-1
We believe that the bug you reported is fixed in the latest version of
steam, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Simon McVittie <[email protected]> (supplier of updated steam package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Tue, 22 Jan 2019 10:05:36 +0000
Source: steam
Binary: steam steam-devices
Architecture: source
Version: 1.0.0.59-1
Distribution: experimental
Urgency: medium
Maintainer: Debian Games Team <[email protected]>
Changed-By: Simon McVittie <[email protected]>
Description:
steam - Valve's Steam digital software delivery system
steam-devices - Device support for Steam-related hardware
Closes: 916303 919467
Changes:
steam (1.0.0.59-1) experimental; urgency=medium
.
* New upstream release
* get-orig-source: Use chdist to download Valve's "source" package
with secure-APT authentication
- d/valve-steam-keyring.gpg: Add the signing key for Valve's apt
repository
* d/p/udev-permissions.patch: Update for new upstream udev rules
- new HID device 28de:2102 is now included in 60-steam-vr.rules
* d/gbp.conf: Explicitly disable pristine-tar for this package.
We don't keep upstream "source" in the git repository since that
mostly consists of binary blobs.
* Display a debconf note if the Nvidia proprietary kernel module is
loaded, but the corresponding i386 libraries are not found.
This seems to be the best we can do without adding a Recommends
on the i386 libraries, which would pull in the binary driver even
on systems that do not have Nvidia hardware. (See #918996)
* d/scripts/steam: Cope with different installation directories,
such as ~/.local/share/Steam from Valve's official packaging,
without data loss (Closes: #919467)
* d/scripts/steam: Install to a subdirectory of ~/.steam for new
installations, to avoid ~/.steam/steam trying to be two things
at once (Closes: #916303)
* Adjust VCS metadata for debian/experimental branch
Checksums-Sha1:
5c306313ece15248ab3d66d77639e077bb51f2fe 2065 steam_1.0.0.59-1.dsc
230d48cdc79008876e7a76d14b945e19eccbee68 1532112 steam_1.0.0.59.orig.tar.xz
eeea5011e10a7fdaf9cb17c49691198f628a8c01 27352 steam_1.0.0.59-1.debian.tar.xz
a9b96d953fa71f932e97f00e7f4af11157025237 5518 steam_1.0.0.59-1_source.buildinfo
Checksums-Sha256:
374a0b19aad184a7fdae166fea879c7a15154936ae2af3a52e0968d949230aa8 2065
steam_1.0.0.59-1.dsc
7134fa3fb23d109e7a61ee9212744e73b7e31795f2dc27d6639e9587fd071702 1532112
steam_1.0.0.59.orig.tar.xz
f76c3f6d51fcf8ec553ba645d44c5f34408ba9e0a1980e6e53d26359eb73d9dd 27352
steam_1.0.0.59-1.debian.tar.xz
8b6d2d6947b3011781c11371f4f519868fbee5e78ec3b391dc4e5ac1103ac408 5518
steam_1.0.0.59-1_source.buildinfo
Files:
e73ac26373d7835dcb5dc94374734a97 2065 non-free/games optional
steam_1.0.0.59-1.dsc
57bdfcd7747e96b123e05e9c70eab9d4 1532112 non-free/games optional
steam_1.0.0.59.orig.tar.xz
09af72c559b341fbbbf3d9dfba3ffec8 27352 non-free/games optional
steam_1.0.0.59-1.debian.tar.xz
d500c56884a81f3af2d2f162ea339211 5518 non-free/games optional
steam_1.0.0.59-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEENuxaZEik9e95vv6Y4FrhR4+BTE8FAlxG9mkACgkQ4FrhR4+B
TE9PHA//Wb5tT2xwFP0XpXDPL/Wghj2GCCxUdzEW/n7fjgfm1qGhf94JVtfbMLGD
lFJDCNsuBm/Cv+MwAMPB/ED+tAc4dtm6rxiH4HhIdAA0kug+RRzNheFls2fEQRu4
k7k9yZMjFRBQ2QvpOD83cb4+SouucONisB9+jTS30Njvsl8+0OQSZDRr0nHMnFgE
MeZPst8iEYgQZELL9zZSroIs4SW5VMoye62jmgXgStrlwZbHNTb0QMkKuCoQiftM
5f10LJRkn9uPCyJGqxLcLKK1CY78v0ogPIy8SBluC1dDHd5ohZkjV3afIJNvxKaS
+Ji8MMjxEz3j2znUo8IXdPDFx9XkGzVjtd7TlvR29AHAiKpf/ZCyVMfkXxl9EaZ+
MHza8HEhht8p5ANxQ3lDE+vU97I+Mti+QB0AFe5UZq1fOHCyqKRcnJ6Scwf6DLM4
SqVR6JjrFNrfTfnEg1zuXe1JFQ3EQom4eSjyTgyjT1xl3zDqKmRAZXCnw5ZijCmR
40uWYEvv68ourBJMD17/7glUjGTx/qoEy5GXTXtlF9NbKSfvQ8Qdr5luqRuRMYtZ
Z/OHiC5bBvj9ip/K5SQIK7W8djpth3xsA0WMBHMZ3DmWU3QPHV/uOeaovhItInJc
w0gGHfbFR2TIJoGfjwtqISqpOi4GM/sk+4yMkH/Vrj0SeqaPsvY=
=QvEr
-----END PGP SIGNATURE-----
--- End Message ---