Hello community, here is the log from the commit of package steam for openSUSE:Factory:NonFree checked in at 2020-07-31 15:50:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory:NonFree/steam (Old) and /work/SRC/openSUSE:Factory:NonFree/.steam.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "steam" Fri Jul 31 15:50:49 2020 rev:25 rq:823581 version:1.0.0.66 Changes: -------- --- /work/SRC/openSUSE:Factory:NonFree/steam/steam.changes 2020-07-01 14:24:51.846426890 +0200 +++ /work/SRC/openSUSE:Factory:NonFree/.steam.new.3592/steam.changes 2020-07-31 15:50:50.947943835 +0200 @@ -1,0 +2,14 @@ +Thu Jul 30 11:13:19 UTC 2020 - Callum Farmer <callumjfarme...@gmail.com> + +- Update to version 1.0.0.66 + * Bootstrap using updated Steam client: + - Client timestamp 1595977781 (2020-07-28) + - Steam Runtime version 0.20200604.0 + * Update steam-devices subproject up to 2020-07-28 + - Replace escaped double quotes in udev rules with single quotes, for + compatibility with udev < 235 and eudev. +- Add Recommends: bubblewrap, required by the experimental container + runtime system +- Switch to FirewallD + +------------------------------------------------------------------- Old: ---- steam.firewall steam_1.0.0.64.tar.gz New: ---- steam-streaming.xml steam_1.0.0.66.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ steam.spec ++++++ --- /var/tmp/diff_new_pack.K8lvay/_old 2020-07-31 15:50:51.771944580 +0200 +++ /var/tmp/diff_new_pack.K8lvay/_new 2020-07-31 15:50:51.775944584 +0200 @@ -17,7 +17,7 @@ Name: steam -Version: 1.0.0.64 +Version: 1.0.0.66 Release: 0 Summary: Installer for Valve's digital software distribution service # "Limited Installation License" @@ -26,7 +26,7 @@ URL: http://www.steampowered.com/ Source: http://repo.steampowered.com/steam/pool/steam/s/steam/steam_%{version}.tar.gz Source2: steam.appdata.xml -Source3: %{name}.firewall +Source3: %{name}-streaming.xml # Based on https://raw.githubusercontent.com/steamtricks/steamtricks/master/dist/patch/steam-invoke_steamtricks.patch Patch0: steam-invoke_steamtricks.patch # PATCH-FIX-OPENSUSE steam-path-fix.patch bnc#1025841 @@ -36,6 +36,7 @@ BuildRequires: update-desktop-files BuildRequires: fdupes BuildRequires: pkgconfig(udev) +BuildRequires: firewall-macros # for Steam Hardware Survey Recommends: lsb-release @@ -108,6 +109,7 @@ Requires: zenity Requires: libxcb-dri2-0%{dep_postfix} Requires: libxcb-glx0%{dep_postfix} +Recommends: bubblewrap # replaces steamruntime-fix and is required for steam to boot Requires: steamtricks @@ -169,8 +171,7 @@ # https://en.opensuse.org/openSUSE:AppStore install -Dm0644 %{SOURCE2} %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml -install -d %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ -install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name} +install -Dm644 %{SOURCE3} %{buildroot}%{_prefix}/lib/firewalld/services/steam-streaming.xml %fdupes %{buildroot}%{_prefix} @@ -178,6 +179,7 @@ %desktop_database_post %icon_theme_cache_post %mime_database_post +%firewalld_reload %postun %desktop_database_postun @@ -205,7 +207,9 @@ %{_mandir}/man6/%{name}.6%{?ext_man} %dir %{_datadir}/appdata/ %{_datadir}/appdata/%{name}.appdata.xml -%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name} +%dir %{_prefix}/lib/firewalld +%dir %{_prefix}/lib/firewalld/services +%{_prefix}/lib/firewalld/services/steam-streaming.xml %{_prefix}/lib/steam/bin_steam.sh %{_prefix}/lib/steam/steam.desktop ++++++ steam-streaming.xml ++++++ <?xml version="1.0" encoding="utf-8"?> <service> <short>Steam In-Home Streaming</short> <description>Steam in-home streaming allows you to play a game on one computer when the game process is actually running on another computer elsewhere in your home. Through Steam, game audio and video is captured on the remote computer and sent to the player's computer. The game input (keyboard, mouse or gamepad) is sent from the player's computer to the game process on the remote computer.</description> <port protocol="tcp" port="27036"/> <port protocol="tcp" port="27037"/> <port protocol="udp" port="27031-27036"/> </service> ++++++ steam_1.0.0.64.tar.gz -> steam_1.0.0.66.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steam-launcher/bin_steam.sh new/steam-launcher/bin_steam.sh --- old/steam-launcher/bin_steam.sh 2020-06-24 12:36:09.000000000 +0200 +++ new/steam-launcher/bin_steam.sh 2020-07-29 17:44:37.000000000 +0200 @@ -14,7 +14,7 @@ bootstrapscript="$(readlink -f "$STEAMSCRIPT")" bootstrapdir="$(dirname "$bootstrapscript")" -export STEAMSCRIPT_VERSION=1.0.0.64 +export STEAMSCRIPT_VERSION=1.0.0.66 # Set up domain for script localization export TEXTDOMAIN=steam diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steam-launcher/bin_steamdeps.py new/steam-launcher/bin_steamdeps.py --- old/steam-launcher/bin_steamdeps.py 2020-06-24 12:36:09.000000000 +0200 +++ new/steam-launcher/bin_steamdeps.py 2020-07-29 17:44:37.000000000 +0200 @@ -7,14 +7,21 @@ Usage: steamdeps dependencies.txt """ +import argparse import os import re +import shlex import stat import subprocess import sys import tempfile try: + import typing +except ImportError: + pass + +try: import apt except ImportError: sys.stderr.write("Couldn't import apt, please install python3-apt or " @@ -30,6 +37,64 @@ _arch = None +class OsRelease: + def __init__(self): + # type: () -> None + self._load_any() + self._is_like = self._data.get('ID_LIKE', '').split() + + def _load_any(self): + # type: () -> None + for path in ('/etc/os-release', '/usr/lib/os-release'): + self._data = self._load('/etc/os-release') + + if self._data: + return + + def _load( + self, + path # type: str + ): + # type: (...) -> typing.Dict[str, str] + + data = {} # type: typing.Dict[str, str] + + try: + with open(path, 'r', encoding='utf-8', errors='replace') as reader: + for line in reader: + try: + line = line.strip() + + if not line or line.startswith('#'): + continue + + key, value = line.split('=', 1) + + data[key] = ''.join(shlex.split(value)) + + except Exception as e: + print( + 'Warning: error parsing %s: line %r: %s' + % (path, line, e), + file=sys.stderr + ) + continue + except OSError: + return {} + else: + return data + + def is_os(self, os_id): + # type: (str) -> bool + if self._data.get('ID') == os_id: + return True + + return os_id in self._is_like + + def dump(self): + print(self._data, file=sys.stderr) + + # # Get the current package architecture # This may be different than the actual architecture for the case of i386 @@ -57,7 +122,7 @@ else: return name -# + # N.B. Version checks are not supported on virtual packages # def is_provided(pkgname): @@ -332,10 +397,10 @@ ### -def check_config(config): +def check_config(path, config): if "STEAM_RUNTIME" not in config: sys.stderr.write( - "Missing STEAM_RUNTIME definition in %s\n" % sys.argv[1]) + "Missing STEAM_RUNTIME definition in %s\n" % path) return False if config["STEAM_RUNTIME"] not in SUPPORTED_STEAM_RUNTIME: @@ -345,8 +410,7 @@ if "STEAM_DEPENDENCY_VERSION" not in config: sys.stderr.write( - "Missing STEAM_DEPENDENCY_VERSION definition in %s\n" % sys.argv[ - 1]) + "Missing STEAM_DEPENDENCY_VERSION definition in %s\n" % path) return False if config["STEAM_DEPENDENCY_VERSION"]\ @@ -369,15 +433,33 @@ ### def main(): config = {} + os_release = OsRelease() - # Check the command line arguments - if len(sys.argv) < 2: - sys.stderr.write("Usage: %s dependencies.txt\n" % sys.argv[0]) - return 1 + parser = argparse.ArgumentParser(description='Install Steam dependencies') + parser.add_argument( + '--dry-run', + action='store_true', + help="Don't install anything, just report", + ) + parser.add_argument( + '--debug-dump-os-release', + action='store_true', + help=argparse.SUPPRESS, + ) + parser.add_argument( + 'dependencies', + metavar='$HOME/.steam/root/steamdeps.txt', + help='Path to steamdeps.txt', + ) + args = parser.parse_args() + + if args.debug_dump_os_release: + os_release.dump() + return 0 # Make sure we can open the file try: - fp = open(sys.argv[1]) + fp = open(args.dependencies) except Exception as e: sys.stderr.write("Couldn't open file: %s\n" % e) return 2 @@ -394,7 +476,7 @@ config[match.group(1)] = match.group(2) # Check to make sure we have a valid config - if not check_config(config): + if not check_config(args.dependencies, config): return 3 # Seek back to the beginning of the file @@ -434,6 +516,23 @@ packages[package.name] = package dependencies.append([package]) + # The Steam container runtime (pressure-vessel) requires a setuid + # bubblewrap executable on some kernel configurations. Steam is + # unprivileged, so we have to get it from the host OS. + if ( + # Debian's kernel doesn't allow unprivileged users to create + # new namespaces (https://bugs.debian.org/898446) so we need the + # setuid bubblewrap + os_release.is_os('debian') + # Ubuntu's kernel does allow that. We assume Ubuntu derivatives + # like Linux Mint will inherit that, rather than reverting to the + # Debian behaviour + and not os_release.is_os('ubuntu') + ): + package = Package('bubblewrap', []) + packages[package.name] = package + dependencies.append([package]) + # Print package dependency information for debug """ for row in dependencies: @@ -485,7 +584,10 @@ print("Package %s needs to be installed" % package.name, file=sys.stderr) - return update_packages(needed) + if args.dry_run: + return 1 + else: + return update_packages(needed) else: return 0 Binary files old/steam-launcher/bootstraplinux_ubuntu12_32.tar.xz and new/steam-launcher/bootstraplinux_ubuntu12_32.tar.xz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steam-launcher/client-versions.json new/steam-launcher/client-versions.json --- old/steam-launcher/client-versions.json 2020-06-24 12:36:49.000000000 +0200 +++ new/steam-launcher/client-versions.json 2020-07-29 17:45:10.000000000 +0200 @@ -1,4 +1,4 @@ { - "client_version": "1591251555", - "runtime_version": "0.20200505.0" + "client_version": "1595977781", + "runtime_version": "0.20200604.0" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steam-launcher/debian/changelog new/steam-launcher/debian/changelog --- old/steam-launcher/debian/changelog 2020-06-24 12:36:09.000000000 +0200 +++ new/steam-launcher/debian/changelog 2020-07-29 17:44:37.000000000 +0200 @@ -1,3 +1,29 @@ +steam (1:1.0.0.66) beta; urgency=medium + + * Bootstrap using updated Steam client: + - Client timestamp 1595977781 (2020-07-28) + - Steam Runtime version 0.20200604.0 + + -- Simon McVittie <s...@collabora.com> Wed, 29 Jul 2020 16:43:18 +0100 + +steam (1:1.0.0.65) beta; urgency=medium + + * Update steam-devices subproject up to 2020-07-28 + - Replace escaped double quotes in udev rules with single quotes, for + compatibility with udev < 235 and eudev. + (thanks, James Le Cuirot) (Fixes: steam-devices#10) + * bin_steamdeps: Install bubblewrap on Debian systems. + The Steam container runtime relies on bubblewrap to launch containers. + The Debian kernel doesn't allow unprivileged users to create new + user namespaces by default, so we have to install an OS-provided, + setuid-root bubblewrap executable instead of using the unprivileged + copy bundled with pressure-vessel. + (Fixes: T22758; see also Debian#898446) + * bin_steamdeps: Make pycodestyle happier + * bin_steamdeps: Add a --dry-run mode + + -- Simon McVittie <s...@collabora.com> Wed, 29 Jul 2020 16:37:42 +0100 + steam (1:1.0.0.64) beta; urgency=medium [ Simon McVittie ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/steam-launcher/subprojects/steam-devices/60-steam-input.rules new/steam-launcher/subprojects/steam-devices/60-steam-input.rules --- old/steam-launcher/subprojects/steam-devices/60-steam-input.rules 2020-06-24 12:36:09.000000000 +0200 +++ new/steam-launcher/subprojects/steam-devices/60-steam-input.rules 2020-07-29 17:44:37.000000000 +0200 @@ -39,7 +39,7 @@ # instead of udevadm directly becuase we need to use '*' glob at the # end of "hidraw" name since we don't know the index it'd have. # -KERNEL=="input*", ATTRS{name}=="Lic Pro Controller", RUN{program}+="/bin/sh -c \"udevadm test-builtin uaccess /sys/%p/../../hidraw/hidraw*\"" +KERNEL=="input*", ATTRS{name}=="Lic Pro Controller", RUN{program}+="/bin/sh -c 'udevadm test-builtin uaccess /sys/%p/../../hidraw/hidraw*'" # Nacon PS4 Revolution Pro Controller KERNEL=="hidraw*", ATTRS{idVendor}=="146b", ATTRS{idProduct}=="0d01", MODE="0660", TAG+="uaccess"