Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package steam for openSUSE:Factory:NonFree 
checked in at 2021-07-26 17:37:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/steam (Old)
 and      /work/SRC/openSUSE:Factory:NonFree/.steam.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "steam"

Mon Jul 26 17:37:15 2021 rev:38 rq:908165 version:1.0.0.71

Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/steam/steam.changes      2021-07-05 
22:21:55.134214599 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.steam.new.1899/steam.changes    
2021-07-26 17:37:16.134153770 +0200
@@ -1,0 +2,14 @@
+Sun Jul 25 11:39:09 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Update to version 1.0.0.71
+  * Build using updated Steam client:
+    - Client timestamp 1626824053 (2021-07-20)
+    - Steam Runtime version 0.20210630.0
+  * Update steam-devices subproject up to 2021-06-10
+    - PDP Wired Fight Pad Pro for Nintendo Switch
+    - Razer Raiju 2 Tournament Edition (USB)
+    - Horipad mini 4
+- Remove steam-no-icon-on-desktop.patch: unneeded
+- Remove steam-makefile.patch: unneeded
+
+-------------------------------------------------------------------

Old:
----
  com.steampowered.steam.metainfo.xml
  steam-makefile.patch
  steam-no-icon-on-desktop.patch
  steam_1.0.0.70.tar.gz

New:
----
  steam_1.0.0.71.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ steam.spec ++++++
--- /var/tmp/diff_new_pack.WxKXs3/_old  2021-07-26 17:37:17.058152660 +0200
+++ /var/tmp/diff_new_pack.WxKXs3/_new  2021-07-26 17:37:17.062152655 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package steam
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,119 +16,105 @@
 #
 
 
+%define dependency() \
+%ifarch %{ix86} \
+Requires: %{1} \
+%else \
+Requires: %{1}-32bit \
+%endif \
+%{nil}
+%define booldependency() \
+%ifarch x86_64 \
+Requires: (%{1}-32bit if %{1}) \
+%endif \
+%{nil}
 Name:           steam
-Version:        1.0.0.70
+Version:        1.0.0.71
 Release:        0
 Summary:        Installer for Valve's digital software distribution service
 # "Limited Installation License"
 License:        SUSE-Freeware
 Group:          Amusements/Games/Other
-URL:            http://www.steampowered.com/
-Source:         
https://repo.steampowered.com/steam/pool/steam/s/steam/steam_%{version}.tar.gz
-ExclusiveArch:  %{ix86} x86_64 
-Source1:        com.steampowered.steam.metainfo.xml
+URL:            https://www.steampowered.com/
+Source0:        
https://repo.steampowered.com/steam/pool/steam/s/steam/steam_%{version}.tar.gz
 Source2:        %{name}-streaming.xml
 Source3:        51-these-are-not-joysticks-rm.rules
 # 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
 Patch1:         steam-path-fix.patch
-# PATCH-FIX-OPENSUSE steam-makefile.patch based on RPMFusion patch.
-Patch2:         steam-makefile.patch
-# PATCH-FIX-OPENSUSE steam-no-icon-on-desktop.patch from RPMFusion
-Patch3:         steam-no-icon-on-desktop.patch
 Patch4:         gpu-offload.patch
-BuildRequires:  hicolor-icon-theme
-BuildRequires:  pkgconfig(shared-mime-info)
-BuildRequires:  update-desktop-files
 BuildRequires:  fdupes
-BuildRequires:  pkgconfig(udev)
 BuildRequires:  firewall-macros
-
-# for Steam Hardware Survey
-Requires:       lsb-release
-
-# dep_postfix macro is used to append "-32bit" to dependencies for x86_64 on 
openSUSE
-%define dep_postfix %{nil}
-%ifarch x86_64
-  %define dep_postfix -32bit
-%endif
-
-Recommends:     Mesa-libGL1%{dep_postfix}
-%if 0%{?sle_version} >= 150300 || 0%{?suse_version} >= 1550
-Recommends:     Mesa-vulkan-device-select
-Recommends:     Mesa-vulkan-device-select%{dep_postfix}
-%endif
-Recommends:     libvulkan1%{dep_postfix}
-Recommends:     libvulkan_intel%{dep_postfix}
-Recommends:     libvulkan_radeon%{dep_postfix}
-Requires:       alsa%{dep_postfix} >= 1.0.23
-Requires:       alsa-devel%{dep_postfix} >= 1.0.23
-Requires:       dbus-1-glib%{dep_postfix}
-Requires:       gtk2-engine-oxygen%{dep_postfix}
-Requires:       libSDL-1_2-0%{dep_postfix} >= 1.2.10
-Requires:       libX11-6%{dep_postfix} >= 1.4.99.1
-Requires:       libXdmcp6%{dep_postfix}
-Requires:       libXext6%{dep_postfix}
-Requires:       libXfixes3%{dep_postfix}
-Requires:       libXi6%{dep_postfix} >= 1.2.99.4
-Requires:       libXrandr2%{dep_postfix} >= 1.2.99.3
-Requires:       libXrender1%{dep_postfix}
-Requires:       libatk-1_0-0%{dep_postfix}
-Requires:       libcairo2%{dep_postfix} >= 1.6.0
-Requires:       libcurl4%{dep_postfix} >= 7.16.2-1
-Requires:       libdbus-1-3%{dep_postfix} >= 1.2.14
-Requires:       libfreetype6%{dep_postfix} >= 2.3.9
-%if 0%{?suse_version} >= 1315
-Requires:       libgcrypt20%{dep_postfix} >= 1.6.1
-%else
-Requires:       libgcrypt11%{dep_postfix} >= 1.4.5
-%endif
-Requires:       libgdk_pixbuf-2_0-0%{dep_postfix} >= 2.22.0
-Requires:       libglib-2_0-0%{dep_postfix} >= 2.14.0
-Requires:       libgmodule-2_0-0%{dep_postfix}
-Requires:       libgobject-2_0-0%{dep_postfix}
-Requires:       libgtk-2_0-0%{dep_postfix} >= 2.24.0
-Requires:       libogg0%{dep_postfix} >= 1.0
-Requires:       libpango-1_0-0%{dep_postfix} >= 1.22.0
-Requires:       libpixman-1-0%{dep_postfix} >= 0.24.4
-Requires:       libpng12-0%{dep_postfix} >= 1.2.13
-Requires:       libpulse0%{dep_postfix} >= 0.99.1
-Requires:       libtheora0%{dep_postfix} >= 1.0
-Requires:       libvorbis0%{dep_postfix} >= 1.1.2
-Requires:       mozilla-nspr%{dep_postfix} >= 1.8.0.10
-Requires:       mozilla-nss%{dep_postfix} >= 3.12.3
-%if 0%{?suse_version} < 1330
-Requires:       cups-libs%{dep_postfix} >= 1.4.0
-%else
-Requires:       libcups2%{dep_postfix}
-%endif
-Requires:       fontconfig%{dep_postfix} >= 2.8.0
-Requires:       glibc%{dep_postfix} >= 2.15
-Requires:       openal-soft >= 1.13
-Requires:       zlib%{dep_postfix} >= 1.2.3.3
-Requires:       libgcc_s1%{dep_postfix} >= 4.1.1
-Requires:       libopenal1%{dep_postfix} >= 1.13
-Requires:       libstdc++6%{dep_postfix} >= 4.6
-Requires:       glibc-locale-base%{dep_postfix}
-
-# our own builds of libcrypto.so.1 and libssl.so.1.
-Requires:      libopenssl1_0_0-steam
-Requires:      libopenssl1_0_0-steam%{dep_postfix}
-
+BuildRequires:  hicolor-icon-theme
+BuildRequires:  pkgconfig
+BuildRequires:  update-desktop-files
 # from steamdeps.txt which uses Debian package syntax
 Requires:       curl
+# our own builds of libcrypto.so.1 and libssl.so.1.
+Requires:       libopenssl1_0_0-steam
+# for Steam Hardware Survey
+Requires:       lsb-release
+#Proton Requirements
+Requires:       python3
 Requires:       xz
 Requires:       zenity
-Requires:       libxcb-dri2-0%{dep_postfix}
-Requires:       libxcb-glx0%{dep_postfix}
+Requires:       openal-soft
 Recommends:     bubblewrap
-
 # replaces steamruntime-fix and is required for steam to boot
 Recommends:     steamtricks
-
-#Proton Requirements
-Requires:              python3
+ExclusiveArch:  %{ix86} x86_64
+%booldependency  Mesa-libGL1
+%booldependency  libvulkan_intel
+%booldependency  libvulkan_radeon
+%dependency  libvulkan1
+%dependency  libasound2
+%dependency  alsa-devel
+%dependency  dbus-1-glib
+%dependency  gtk2-engine-oxygen
+%dependency  libSDL-1_2-0
+%dependency  libX11-6
+%dependency  libXdmcp6
+%dependency  libXext6
+%dependency  libXfixes3
+%dependency  libXi6
+%dependency  libXrandr2
+%dependency  libXrender1
+%dependency  libatk-1_0-0
+%dependency  libcairo2
+%dependency  libcurl4
+%dependency  libdbus-1-3
+%dependency  libfreetype6
+%dependency  libgcrypt20
+%dependency  libgdk_pixbuf-2_0-0
+%dependency  libglib-2_0-0
+%dependency  libgmodule-2_0-0
+%dependency  libgobject-2_0-0
+%dependency  libgtk-2_0-0
+%dependency  libogg0
+%dependency  libpango-1_0-0
+%dependency  libpixman-1-0
+%dependency  libpng12-0
+%dependency  libpulse0
+%dependency  libtheora0
+%dependency  libvorbis0
+%dependency  mozilla-nspr
+%dependency  mozilla-nss
+%dependency  libcups2
+%dependency  fontconfig
+%dependency  glibc
+%dependency  libz1
+%dependency  libgcc_s1
+%dependency  libopenal1
+%dependency  libstdc++6
+%dependency  glibc-locale-base
+%dependency  libudev1
+%dependency  libxcb-dri2-0
+%dependency  libxcb-glx0
+%dependency  libdrm2
+%ifarch x86_64
+Requires:       libopenssl1_0_0-steam-32bit
+%endif
 
 %description
 Steam is a software distribution service with an online store, automated
@@ -140,15 +126,15 @@
 
 %package        devices
 Summary:        Device support for Steam-related hardware
-URL:            https://github.com/ValveSoftware/steam-devices/
 License:        MIT
 Group:          Hardware/Joystick
+URL:            https://github.com/ValveSoftware/steam-devices/
+Requires:       steam = %{version}
+Supplements:    steam = %{version}
 Obsoletes:      steam-controller < %{version}
 Obsoletes:      steam-vr < %{version}
 Provides:       steam-controller = %{version}
 Provides:       steam-vr = %{version}
-Supplements:    steam = %{version}
-Requires:       steam = %{version}
 %if 0%{?suse_version} >= 1330
 Requires(pre):  group(games)
 Requires(pre):  user(games)
@@ -161,39 +147,30 @@
 are in the "games" group. Steam VR is a full-featured, 360?? room-scale 
 virtual reality experience.
 
-
 %prep
 %setup -q -n steam-launcher
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
-%patch3 -p1
 %if 0%{?suse_version} < 1550
 %patch4 -p1
 %endif
 
 
 %build
+true
 
 %install
-%make_install
-
-# TODO: Patch it so it works with zypper or at least does not invoke apt-get.
-rm %{buildroot}%{_bindir}/steamdeps
-rm %{buildroot}%{_prefix}/lib/steam/bin_steamdeps.py
+make DESTDIR=%{buildroot} install-bin install-docs install-icons 
install-bootstrap install-desktop install-appdata
 
 mkdir -p %{buildroot}%{_udevrulesdir}
 install -Dm0644 subprojects/steam-devices/60-steam-input.rules 
%{buildroot}%{_udevrulesdir}/60-steam-input.rules
 install -Dm0644 subprojects/steam-devices/60-steam-vr.rules 
%{buildroot}%{_udevrulesdir}/60-steam-vr.rules
 install -Dm0644 %{SOURCE3} 
%{buildroot}%{_udevrulesdir}/51-these-are-not-joysticks-rm.rules
-
-# https://en.opensuse.org/openSUSE:AppStore
-install -Dm0644 %{SOURCE1} 
%{buildroot}%{_datadir}/metainfo/com.steampowered.steam.metainfo.xml
-
 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
-install -Dm644 %{SOURCE2} 
%{buildroot}%{_prefix}/lib/firewalld/services/steam-streaming.xml
+install -Dm0644 %{SOURCE2} 
%{buildroot}%{_prefix}/lib/firewalld/services/steam-streaming.xml
 %endif
-%fdupes %{buildroot}%{_prefix}
+
+%fdupes -s %{buildroot}
 
 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
 %post
@@ -201,9 +178,8 @@
 %endif
 
 %files
-%{_bindir}/%{name}
-%dir %{_prefix}/lib/%{name}
-%{_prefix}/lib/%{name}/bootstraplinux_ubuntu12_32.tar.xz
+%{_bindir}/*
+%{_prefix}/lib/%{name}
 %{_datadir}/pixmaps/%{name}_tray_mono.png
 %{_datadir}/pixmaps/%{name}.png
 %{_datadir}/applications/%{name}.desktop
@@ -213,8 +189,7 @@
 %doc %{_datadir}/doc/%{name}/README
 %doc debian/changelog
 %{_mandir}/man6/%{name}.6%{?ext_man}
-%dir %{_datadir}/metainfo/
-%{_datadir}/metainfo/com.steampowered.steam.metainfo.xml
+%{_datadir}/metainfo/*
 %if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150300
 %dir %{_prefix}/lib/firewalld
 %dir %{_prefix}/lib/firewalld/services

++++++ steam_1.0.0.70.tar.gz -> steam_1.0.0.71.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/Makefile new/steam-launcher/Makefile
--- old/steam-launcher/Makefile 2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/Makefile 2021-07-23 17:32:58.000000000 +0200
@@ -3,7 +3,7 @@
 all:
        @echo 'Run steam with "./steam" or install it with "sudo make install"'
 
-install: install-bin install-docs install-icons install-bootstrap 
install-desktop install-apt-source
+install: install-bin install-docs install-icons install-bootstrap 
install-desktop install-appdata install-apt-source
 
 install-bin:
        install -d -m 755 $(DESTDIR)$(PREFIX)/bin/
@@ -41,8 +41,16 @@
 install-desktop:
        install -d -m 755 $(DESTDIR)$(PREFIX)/share/applications/
        install -d -m 755 $(DESTDIR)$(pkglibdir)/
-       install -p -m 644 $(PACKAGE).desktop $(DESTDIR)$(pkglibdir)
-       ln -fns $(pkglibdir)/$(PACKAGE).desktop 
$(DESTDIR)$(datadir)/applications/
+       # If we create a desktop symlink in $(datadir)/applications/, the 
md5sum deb file
+       # will not contain an entry for it and appstream-generator will 
complain that
+       # the package is missing the desktop file. Instead we place the real 
file in
+       # $(datadir)/applications/ and create a symlink in $(pkglibdir)
+       install -p -m 644 $(PACKAGE).desktop $(DESTDIR)$(datadir)/applications/
+       ln -fns $(datadir)/applications/$(PACKAGE).desktop 
$(DESTDIR)$(pkglibdir)/
+
+install-appdata:
+       install -d -m 755 $(DESTDIR)$(PREFIX)/share/metainfo/
+       install -p -m 644 $(PACKAGE_ID).metainfo.xml 
$(DESTDIR)$(PREFIX)/share/metainfo/
 
 install-apt-source:
        if [ -d /etc/apt ]; then \
@@ -55,13 +63,14 @@
 #########################
 
 PACKAGE=steam
+PACKAGE_ID=com.valvesoftware.Steam
 PREFIX?=/usr
 bindir = $(PREFIX)/bin
 datadir = $(PREFIX)/share
 pkglibdir = $(PREFIX)/lib/$(PACKAGE)
 PYTHON ?= python3
 
-.PHONY: all install install-bin install-docs install-icons install-bootstrap 
install-desktop install-apt-source
+.PHONY: all install install-bin install-docs install-icons install-bootstrap 
install-desktop install-appdata install-apt-source
 
 check:
        prove -v tests/*.sh
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     2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/bin_steam.sh     2021-07-23 17:32:58.000000000 +0200
@@ -14,7 +14,7 @@
 bootstrapscript="$(readlink -f "$STEAMSCRIPT")"
 bootstrapdir="$(dirname "$bootstrapscript")"
 
-export STEAMSCRIPT_VERSION=1.0.0.70
+export STEAMSCRIPT_VERSION=1.0.0.71
 
 # 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 2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/bin_steamdeps.py 2021-07-23 17:32:58.000000000 +0200
@@ -567,6 +567,23 @@
                 packages[package.name] = package
                 dependencies.append([package])
 
+    # Try to install these packages, even if they are not
+    # listed in the steamdeps.txt file. If they are not available we
+    # just inform the user about it and continue.
+    for additional_pkg in (
+        'steam-libs-amd64:amd64',
+        'steam-libs-i386:i386',
+        'xdg-desktop-portal',
+        choose_xdg_portal_backend() or 'xdg-desktop-portal-gtk',
+    ):
+        if additional_pkg not in packages:
+            if is_package_available(additional_pkg):
+                package = Package(additional_pkg, [])
+                packages[package.name] = package
+                dependencies.append([package])
+            else:
+                missing_packages.append(additional_pkg)
+
     # 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.
@@ -584,26 +601,6 @@
         packages[package.name] = package
         dependencies.append([package])
 
-    # Try to install xdg-desktop-portal and a backend, even if they are
-    # not listed in the steamdeps.txt file. If they are not available we
-    # just inform the user about it and continue.
-    xdg_portal = 'xdg-desktop-portal'
-    if xdg_portal not in packages:
-        if is_package_available(xdg_portal):
-            package = Package(xdg_portal, [])
-            packages[package.name] = package
-            dependencies.append([package])
-        else:
-            missing_packages.append(xdg_portal)
-
-    xdg_backend = choose_xdg_portal_backend()
-    if xdg_backend is not None and xdg_backend not in packages:
-        package = Package(xdg_backend, [])
-        packages[package.name] = package
-        dependencies.append([package])
-    else:
-        missing_packages.append(xdg_backend or 'xdg-desktop-portal-gtk')
-
     if missing_packages:
         print("These packages are not available:\n")
 
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     2021-04-07 14:33:49.000000000 
+0200
+++ new/steam-launcher/client-versions.json     2021-07-23 17:33:29.000000000 
+0200
@@ -1,4 +1,4 @@
 {
-  "client_version": "1616532526",
-  "runtime_version": "0.20210126.2"
+  "client_version": "1626824053",
+  "runtime_version": "0.20210630.0"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/com.valvesoftware.Steam.metainfo.xml 
new/steam-launcher/com.valvesoftware.Steam.metainfo.xml
--- old/steam-launcher/com.valvesoftware.Steam.metainfo.xml     1970-01-01 
01:00:00.000000000 +0100
+++ new/steam-launcher/com.valvesoftware.Steam.metainfo.xml     2021-07-23 
17:32:58.000000000 +0200
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2017 Cosimo Cecchi -->
+<!-- Copyright 2021 Collabora Ltd. -->
+<component type="desktop-application">
+  <id>com.valvesoftware.Steam.desktop</id>
+  <metadata_license>CC0-1.0</metadata_license>
+  <name>Steam</name>
+  <summary>Launcher for the Steam software distribution service</summary>
+  <description>
+    <p>Steam is a software distribution service with an online store, automated
+      installation, automatic updates, achievements, SteamCloud synchronized
+      savegame and screenshot functionality, and many social features.</p>
+  </description>
+  <categories>
+    <category>Game</category>
+    <category>PackageManager</category>
+  </categories>
+  <url type="homepage">https://store.steampowered.com</url>
+  <url 
type="bugtracker">https://github.com/ValveSoftware/steam-for-linux/issues</url>
+  <project_license>LicenseRef-proprietary</project_license>
+  <developer_name>Valve Corporation</developer_name>
+  <screenshots>
+    <screenshot>
+      <image type="source" width="1200" 
height="1026">https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/27766192/27b935179076c418c2f62f9440aba9c06161e4c0.jpg</image>
+    </screenshot>
+    <screenshot type="default">
+      <image type="source" width="1200" 
height="582">https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/27766192/ac26dea63042eec4886d5fa27854517ce374b11e.jpg</image>
+    </screenshot>
+    <screenshot>
+      <image type="source" width="1200" 
height="535">https://steamcdn-a.akamaihd.net/steamcommunity/public/images/clans/27766192/563daff788965a9f0aa4525190ef12d8c10832d6.jpg</image>
+    </screenshot>
+  </screenshots>
+  <launchable type="desktop-id">steam.desktop</launchable>
+  <releases>
+    <release version="1.0.0.71" date="2021-07-23"/>
+    <release version="1.0.0.70" date="2021-04-07"/>
+  </releases>
+</component>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/debian/.gitignore 
new/steam-launcher/debian/.gitignore
--- old/steam-launcher/debian/.gitignore        2021-04-07 14:33:15.000000000 
+0200
+++ new/steam-launcher/debian/.gitignore        2021-07-23 17:32:58.000000000 
+0200
@@ -3,6 +3,8 @@
 /*.log
 /*.substvars
 /files
-/steam/
 /steam-launcher/
+/steam-libs-amd64/
+/steam-libs-i386/
+/steam/
 /tmp/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/debian/README.source 
new/steam-launcher/debian/README.source
--- old/steam-launcher/debian/README.source     2021-04-07 14:33:15.000000000 
+0200
+++ new/steam-launcher/debian/README.source     2021-07-23 17:32:58.000000000 
+0200
@@ -97,6 +97,9 @@
 
 * Check that `STEAMSCRIPT_VERSION` in `bin_steam.sh` is correct
 
+* Add a `<release>` in `com.valvesoftware.Steam.metainfo.xml`, preserving
+    newest-first order
+
 * Commit the changes
 
 * `git tag -m 'steam-launcher vX.Y.Z.W' -a vX.Y.Z.W`
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 2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/debian/changelog 2021-07-23 17:32:58.000000000 +0200
@@ -1,3 +1,31 @@
+steam (1:1.0.0.71) beta; urgency=medium
+
+  [ Ludovico de Nittis ]
+  * d/control: Add steamrt-libs-amd64, steamrt-libs-i386 metapackages.
+    These pull in libraries required by steam-launcher and Steam itself.
+    Note that although these should ideally be hard dependencies, we cannot
+    enforce this at the packaging level, because that would break the
+    ability to download "steam-launcher.deb" through a browser and install
+    it with "gdebi" or similar, which is a documented use-case.
+  * bin_steamdeps: Try to install the new steam-libs metapackages
+
+  [ Simon McVittie ]
+  * d/control: Depend on realpath.
+    steam.sh assumes realpath(1) is available, but in older distributions
+    such as Ubuntu 14.04 that isn't necessarily present.
+  * Build using updated Steam client:
+    - Client timestamp 1626824053 (2021-07-20)
+    - Steam Runtime version 0.20210630.0
+  * Update steam-devices subproject up to 2021-06-10
+    - PDP Wired Fight Pad Pro for Nintendo Switch
+      (thanks, @theGiallo) (Resolves: steam-devices#19)
+    - Razer Raiju 2 Tournament Edition (USB)
+      (thanks, @dsuserds) (Resolves: steam-devices#20)
+    - Horipad mini 4 (thanks, @besselfunct) (Resolves: steam-devices#21)
+  * Update python-vdf subproject to v3.4
+
+ -- Simon McVittie <s...@collabora.com>  Fri, 23 Jul 2021 16:27:40 +0100
+
 steam (1:1.0.0.70) beta; urgency=medium
 
   * steam.desktop: Request running on a discrete or otherwise "big" GPU
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/debian/control 
new/steam-launcher/debian/control
--- old/steam-launcher/debian/control   2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/debian/control   2021-07-23 17:32:58.000000000 +0200
@@ -18,6 +18,7 @@
          ${python3:Depends},
          apt (>= 1.6) | apt-transport-https,
          ca-certificates,
+         coreutils (>= 8.23-1~) | realpath,
          curl,
          file,
          libc6 (>= 2.15),
@@ -27,7 +28,9 @@
          xterm | gnome-terminal | konsole | x-terminal-emulator,
          xz-utils,
          zenity
-Recommends: sudo,
+Recommends: steam-libs-amd64,
+            steam-libs-i386,
+            sudo,
             xdg-utils | steamos-base-files,
 Description: Launcher for the Steam software distribution service
  Steam is a software distribution service with an online store, automated
@@ -41,3 +44,50 @@
 Depends: steam-launcher (>= ${source:Version})
 Description: Launcher for the Steam software distribution service
  This is a transitional package that can be safely removed once steam-launcher 
is installed.
+
+Package: steam-libs-amd64
+Architecture: amd64
+Multi-Arch: foreign
+Depends: libc6 (>= 2.15),
+         libnss3 (>= 2:3.26),
+         libgl1,
+         libgl1-mesa-dri,
+         libgcc-s1 | libgcc1,
+         libgpg-error0 (>= 1.10),
+         libstdc++6,
+         libudev1 | libudev0,
+         libxcb-dri3-0,
+         libxcb1,
+         libxinerama1 (>= 2:1.1.1),
+         libx11-6,
+Recommends: libasound2-plugins,
+            libxss1,
+            mesa-vulkan-drivers,
+Suggests: nvidia-driver-libs,
+          nvidia-vulkan-icd,
+Description: Steam libraries metapackage
+ This metapackage depends on the amd64 libraries required by
+ steam-launcher.
+
+Package: steam-libs-i386
+Architecture: i386
+Multi-Arch: foreign
+Depends: libc6 (>= 2.15),
+         libgl1,
+         libgl1-mesa-dri,
+         libgcc-s1 | libgcc1,
+         libgpg-error0 (>= 1.10),
+         libstdc++6,
+         libudev1 | libudev0,
+         libxcb-dri3-0,
+         libxcb1,
+         libxinerama1 (>= 2:1.1.1),
+         libx11-6,
+Recommends: libasound2-plugins,
+            libxss1,
+            mesa-vulkan-drivers,
+Suggests: nvidia-driver-libs,
+          nvidia-vulkan-icd,
+Description: Steam libraries metapackage
+ This metapackage depends on the i386 libraries required by
+ steam-launcher.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/.coveragerc 
new/steam-launcher/subprojects/python-vdf/.coveragerc
--- old/steam-launcher/subprojects/python-vdf/.coveragerc       1970-01-01 
01:00:00.000000000 +0100
+++ new/steam-launcher/subprojects/python-vdf/.coveragerc       2021-07-23 
17:32:58.000000000 +0200
@@ -0,0 +1,9 @@
+
+# Docs:  https://coverage.readthedocs.org/en/latest/config.html
+
+[run]
+branch = False
+
+# If True, stores relative file paths in data file (needed for Github Actions).
+# Using this parameter requires coverage>=5.0
+relative_files = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/.github/workflows/testing.yml 
new/steam-launcher/subprojects/python-vdf/.github/workflows/testing.yml
--- old/steam-launcher/subprojects/python-vdf/.github/workflows/testing.yml     
1970-01-01 01:00:00.000000000 +0100
+++ new/steam-launcher/subprojects/python-vdf/.github/workflows/testing.yml     
2021-07-23 17:32:58.000000000 +0200
@@ -0,0 +1,77 @@
+name: Tests
+
+on:
+  push:
+    branches: [ master ]
+    paths-ignore:
+      - '.gitignore'
+      - '*.md'
+      - '*.rst'
+      - 'LICENSE'
+      - 'requirements.txt'
+      - 'vdf2json/**'
+  pull_request:
+    branches: [ master ]
+    paths-ignore:
+      - '.gitignore'
+      - '*.md'
+      - '*.rst'
+      - 'LICENSE'
+      - 'requirements.txt'
+      - 'vdf2json/**'
+
+jobs:
+  test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ubuntu-latest, macos-latest, windows-latest]
+        python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
+        no-coverage: [0]
+        include:
+          - os: ubuntu-latest
+            python-version: pypy-2.7
+            no-coverage: 1
+          - os: ubuntu-latest
+            python-version: pypy-3.6
+            no-coverage: 1
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Python Env
+        uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Display Python version
+        run: python -c "import sys; print(sys.version)"
+      - name: Install dependencies
+        run: |
+          make init
+      - name: Run Tests
+        env:
+          NOCOV: ${{ matrix.no-coverage }}
+        run: |
+          make test
+      - name: Upload to Coveralls
+        # pypy + concurrenct=gevent not supported in coveragepy. See 
https://github.com/nedbat/coveragepy/issues/560
+        if: matrix.no-coverage == 0
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          COVERALLS_PARALLEL: true
+          COVERALLS_FLAG_NAME: "${{ matrix.os }}_${{ matrix.python-version }}"
+        run: |
+          coveralls --service=github
+
+  coveralls:
+    name: Finish Coveralls
+    needs: test
+    runs-on: ubuntu-latest
+    container: python:3-slim
+    steps:
+    - name: Install coveralls
+      run: |
+        pip3 install --upgrade coveralls
+    - name: Send coverage finish to coveralls.io
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        coveralls --finish
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/.scrutinizer.yml 
new/steam-launcher/subprojects/python-vdf/.scrutinizer.yml
--- old/steam-launcher/subprojects/python-vdf/.scrutinizer.yml  2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/.scrutinizer.yml  1970-01-01 
01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
-filter:
-    excluded_paths:
-        - 'tests/*'
-        - 'vdf2json/*'
-tools:
-    external_code_coverage:
-        timeout: 200
-        runs: 8
-
-build:
-  nodes:
-    analysis:
-      tests:
-        override:
-          - command: py-scrutinizer-run
-            idle_timeout: 300
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/.travis.yml 
new/steam-launcher/subprojects/python-vdf/.travis.yml
--- old/steam-launcher/subprojects/python-vdf/.travis.yml       2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/.travis.yml       1970-01-01 
01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-language: python
-os: linux
-
-jobs:
-  include:
-    - python: 2.7
-    - python: 3.4
-    - python: 3.5
-    - python: 3.6
-    - python: 3.7
-    - python: 3.8
-    - python: "pypy"
-    - python: "pypy3"
-install:
-    - pip install -r requirements.txt
-    - pip install coveralls
-    - pip install scrutinizer-ocular
-before_script:
-    - rm -f .coverage vdf/*.pyc tests/*.pyc
-script:
-    - PYTHONHASHSEED=0 python -m pytest --cov=vdf tests
-after_success:
-    - coveralls
-    - ocular --data-file ".coverage"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/Makefile 
new/steam-launcher/subprojects/python-vdf/Makefile
--- old/steam-launcher/subprojects/python-vdf/Makefile  2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/Makefile  2021-07-23 
17:32:58.000000000 +0200
@@ -16,11 +16,17 @@
        @echo "$$HELPBODY"
 
 init:
-       pip install -r requirements.txt
+       pip install -r dev_requirements.txt
+
+COVOPTS = --cov-config .coveragerc --cov=vdf
+
+ifeq ($(NOCOV), 1)
+       COVOPTS =
+endif
 
 test:
        rm -f .coverage vdf/*.pyc tests/*.pyc
-       PYTHONHASHSEED=0 python -m pytest --cov=vdf tests
+       PYTHONHASHSEED=0 pytest --tb=short $(COVOPTS) tests
 
 pylint:
        pylint -r n -f colorized vdf || true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/README.rst 
new/steam-launcher/subprojects/python-vdf/README.rst
--- old/steam-launcher/subprojects/python-vdf/README.rst        2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/README.rst        2021-07-23 
17:32:58.000000000 +0200
@@ -1,8 +1,9 @@
-|pypi| |license| |coverage| |scru| |master_build|
+| |pypi| |license| |coverage| |master_build|
+| |sonar_maintainability| |sonar_reliability| |sonar_security|
 
 Pure python module for (de)serialization to and from VDF that works just like 
``json``.
 
-Tested and works on ``python2.7``, ``python3.3+``, ``pypy`` and ``pypy3``.
+Tested and works on ``py2.7``, ``py3.3+``, ``pypy`` and ``pypy3``.
 
 VDF is Valve's KeyValue text file format
 
@@ -35,8 +36,8 @@
   that can be used as mapper instead of ``dict``. See the example section for 
details.
 
 - By default de-serialization will return a ``dict``, which doesn't preserve 
nor guarantee
-  key order due to `hash randomization`_. If key order is important then
-  I suggest using ``collections.OrderedDict``, or ``vdf.VDFDict``.
+  key order on Python versions prior to 3.6, due to `hash randomization`_. If 
key order is
+  important on old Pythons, I suggest using ``collections.OrderedDict``, or 
``vdf.VDFDict``.
 
 Example usage
 -------------
@@ -146,12 +147,20 @@
     :target: https://coveralls.io/r/ValvePython/vdf?branch=master
     :alt: Test coverage
 
-.. |scru| image:: 
https://scrutinizer-ci.com/g/ValvePython/vdf/badges/quality-score.png?b=master
-    :target: https://scrutinizer-ci.com/g/ValvePython/vdf/?branch=master
-    :alt: Scrutinizer score
+.. |sonar_maintainability| image:: 
https://sonarcloud.io/api/project_badges/measure?project=ValvePython_vdf&metric=sqale_rating
+    :target: https://sonarcloud.io/dashboard?id=ValvePython_vdf
+    :alt: SonarCloud Rating
+
+.. |sonar_reliability| image:: 
https://sonarcloud.io/api/project_badges/measure?project=ValvePython_vdf&metric=reliability_rating
+    :target: https://sonarcloud.io/dashboard?id=ValvePython_vdf
+    :alt: SonarCloud Rating
+
+.. |sonar_security| image:: 
https://sonarcloud.io/api/project_badges/measure?project=ValvePython_vdf&metric=security_rating
+    :target: https://sonarcloud.io/dashboard?id=ValvePython_vdf
+    :alt: SonarCloud Rating
 
-.. |master_build| image:: 
https://img.shields.io/travis/ValvePython/vdf/master.svg?style=flat&label=master%20build
-    :target: http://travis-ci.org/ValvePython/vdf
+.. |master_build| image:: 
https://github.com/ValvePython/vdf/workflows/Tests/badge.svg?branch=master
+    :target: 
https://github.com/ValvePython/vdf/actions?query=workflow%3A%22Tests%22+branch%3Amaster
     :alt: Build status of master branch
 
 .. _DuplicateOrderedDict: 
https://github.com/rossengeorgiev/dota2_notebooks/blob/master/DuplicateOrderedDict_for_VDF.ipynb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/dev_requirements.txt 
new/steam-launcher/subprojects/python-vdf/dev_requirements.txt
--- old/steam-launcher/subprojects/python-vdf/dev_requirements.txt      
1970-01-01 01:00:00.000000000 +0100
+++ new/steam-launcher/subprojects/python-vdf/dev_requirements.txt      
2021-07-23 17:32:58.000000000 +0200
@@ -0,0 +1,8 @@
+mock; python_version < '3.3'
+
+coverage>=5.0; python_version == '2.7' or python_version >= '3.5'
+pytest-cov>=2.7.0; python_version == '2.7' or python_version >= '3.5'
+
+# coveralls 2.0 has removed support for Python 2.7 and 3.4
+git+https://github.com/andy-maier/coveralls-python.git@andy/add-py27#egg=coveralls;
 python_version == '2.7'
+coveralls>=2.1.2; python_version >= '3.5'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/requirements.txt 
new/steam-launcher/subprojects/python-vdf/requirements.txt
--- old/steam-launcher/subprojects/python-vdf/requirements.txt  2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/requirements.txt  1970-01-01 
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-mock
-pytest
-pytest-cov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/setup.py 
new/steam-launcher/subprojects/python-vdf/setup.py
--- old/steam-launcher/subprojects/python-vdf/setup.py  2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/setup.py  2021-07-23 
17:32:58.000000000 +0200
@@ -26,10 +26,12 @@
         'Natural Language :: English',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
+        'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
         'Programming Language :: Python :: Implementation :: PyPy',
     ],
     keywords='valve keyvalue vdf tf2 dota2 csgo',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/tests/test_vdf.py 
new/steam-launcher/subprojects/python-vdf/tests/test_vdf.py
--- old/steam-launcher/subprojects/python-vdf/tests/test_vdf.py 2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/tests/test_vdf.py 2021-07-23 
17:32:58.000000000 +0200
@@ -1,8 +1,12 @@
 import unittest
-import mock
 import sys
 
 try:
+    from unittest import mock
+except ImportError:
+    import mock
+
+try:
         from StringIO import StringIO
 except ImportError:
         from io import StringIO
@@ -124,7 +128,7 @@
         result = vdf.loads(vdf.BOMS + '"asd" "123"')
         self.assertEqual(result, {'asd': '123'})
 
-        if sys.version_info[0] is 2:
+        if sys.version_info[0] == 2:
             result = vdf.loads(vdf.BOMS_UNICODE + '"asd" "123"')
             self.assertEqual(result, {'asd': '123'})
 
@@ -319,16 +323,27 @@
         self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
 
     def test_wierd_symbols_for_unquoted(self):
-        INPUT = 'a asd.vdf\nb language_*lol*\nc zxc_-*.sss//'
+        INPUT = 'a asd.vdf\nb language_*lol*\nc zxc_-*.sss//\nd<2?$% 
/cde/$fgh/<i>'
         EXPECTED = {
             'a': 'asd.vdf',
             'b': 'language_*lol*',
             'c': 'zxc_-*.sss',
+            'd<2?$%': '/cde/$fgh/<i>',
             }
 
         self.assertEqual(vdf.loads(INPUT), EXPECTED)
         self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
 
+    def test_space_for_unquoted(self):
+        INPUT = 'a b c d   \n efg h i\t // j k\n'
+        EXPECTED= {
+            'a': 'b c d',
+            'efg': 'h i',
+        }
+
+        self.assertEqual(vdf.loads(INPUT), EXPECTED)
+        self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
+
     def test_merge_multiple_keys_on(self):
         INPUT = '''
         a
@@ -393,6 +408,101 @@
 
         self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
 
+    def test_single_line_empty_block(self):
+        INPUT = '''
+        "root1"
+        {
+            "key1" {}
+            key2 "value2"
+            "key3" value3
+        }
+        root2 { }
+        root3
+        {
+            "key1" "value1"
+            key2 {   }
+            "key3" value3
+        }
+        '''
+
+        EXPECTED = {
+            'root1': {
+                'key1': {},
+                'key2': 'value2',
+                'key3': 'value3',
+            },
+            'root2': {},
+            'root3': {
+                'key1': 'value1',
+                'key2': {},
+                'key3': 'value3',
+            }
+        }
+
+        self.assertEqual(vdf.loads(INPUT), EXPECTED)
+        self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
+
+    def test_inline_opening_bracker(self):
+        INPUT = '''
+        "root1" {
+            "key1" {
+            }
+            key2 "value2"
+            "key3" value3
+        }
+        root2 { }
+        root3 {
+            "key1" "value1"
+            key2 {
+
+            }
+            "key3" value3
+        }
+        '''
+
+        EXPECTED = {
+            'root1': {
+                'key1': {},
+                'key2': 'value2',
+                'key3': 'value3',
+            },
+            'root2': {},
+            'root3': {
+                'key1': 'value1',
+                'key2': {},
+                'key3': 'value3',
+            }
+        }
+
+        self.assertEqual(vdf.loads(INPUT), EXPECTED)
+        self.assertEqual(vdf.loads(INPUT, escaped=False), EXPECTED)
+
+    def test_duplicate_key_with_value_from_str_to_mapper(self):
+        INPUT = r'''
+        level1
+        {
+            key1 text1
+            key2 text2
+        }
+        level1
+        {
+            key2
+            {
+                key3 text3
+            }
+        }
+        '''
+
+        EXPECTED = {
+            "level1": {
+                "key1": "text1",
+                "key2": {
+                    "key3": "text3"
+                }
+            }
+        }
+
+        self.assertEqual(vdf.loads(INPUT), EXPECTED)
 
 class testcase_VDF_other(unittest.TestCase):
     def test_dumps_pretty_output(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/steam-launcher/subprojects/python-vdf/vdf/__init__.py 
new/steam-launcher/subprojects/python-vdf/vdf/__init__.py
--- old/steam-launcher/subprojects/python-vdf/vdf/__init__.py   2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/vdf/__init__.py   2021-07-23 
17:32:58.000000000 +0200
@@ -1,7 +1,7 @@
 """
 Module for deserializing/serializing to and from VDF
 """
-__version__ = "3.3"
+__version__ = "3.4"
 __author__ = "Rossen Georgiev"
 
 import re
@@ -86,10 +86,11 @@
     stack = [mapper()]
     expect_bracket = False
 
-    re_keyvalue = 
re.compile(r'^("(?P<qkey>(?:\\.|[^\\"])+)"|(?P<key>#?[a-z0-9\-\_\\\?]+))'
+    re_keyvalue = 
re.compile(r'^("(?P<qkey>(?:\\.|[^\\"])*)"|(?P<key>#?[a-z0-9\-\_\\\?$%<>]+))'
                              r'([ \t]*('
                              r'"(?P<qval>(?:\\.|[^\\"])*)(?P<vq_end>")?'
-                             r'|(?P<val>[a-z0-9\-\_\\\?\*\.]+)'
+                             r'|(?P<val>(?:(?<!/)/(?!/)|[a-z0-9\-\_\\\?\*\.$<> 
])+)'
+                             r'|(?P<sblock>{[ \t]*)(?P<eblock>})?'
                              r'))?',
                              flags=re.I)
 
@@ -134,7 +135,13 @@
                                       (getattr(fp, 'name', '<%s>' % 
fp.__class__.__name__), lineno, 0, line))
 
             key = match.group('key') if match.group('qkey') is None else 
match.group('qkey')
-            val = match.group('val') if match.group('qval') is None else 
match.group('qval')
+            val = match.group('qval')
+            if val is None:
+                val = match.group('val')
+                if val is not None:
+                    val = val.rstrip()
+                    if val == "":
+                        val = None
 
             if escaped:
                 key = _unescape(key)
@@ -143,12 +150,18 @@
             if val is None:
                 if merge_duplicate_keys and key in stack[-1]:
                     _m = stack[-1][key]
+                    # we've descended a level deeper, if value is str, we have 
to overwrite it to mapper
+                    if not isinstance(_m, mapper):
+                        _m = stack[-1][key] = mapper()
                 else:
                     _m = mapper()
                     stack[-1][key] = _m
 
-                stack.append(_m)
-                expect_bracket = True
+                if match.group('eblock') is None:
+                    # only expect a bracket if it's not already closed or on 
the same line
+                    stack.append(_m)
+                    if match.group('sblock') is None:
+                        expect_bracket = True
 
             # we've matched a simple keyvalue pair, map it to the last dict 
obj in the stack
             else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/steam-launcher/subprojects/python-vdf/vdf/vdict.py 
new/steam-launcher/subprojects/python-vdf/vdf/vdict.py
--- old/steam-launcher/subprojects/python-vdf/vdf/vdict.py      2021-04-07 
14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/python-vdf/vdf/vdict.py      2021-07-23 
17:32:58.000000000 +0200
@@ -5,7 +5,7 @@
     _iter_values = 'values'
     _range = range
     _string_type = str
-    import collections as _c
+    import collections.abc as _c
     class _kView(_c.KeysView):
         def __iter__(self):
             return self._mapping.iterkeys()
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   
2021-04-07 14:33:15.000000000 +0200
+++ new/steam-launcher/subprojects/steam-devices/60-steam-input.rules   
2021-07-23 17:32:58.000000000 +0200
@@ -40,6 +40,9 @@
 # Faceoff Wired Pro Controller for Nintendo Switch
 KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0180", 
MODE="0660", TAG+="uaccess"
 
+# PDP Wired Fight Pad Pro for Nintendo Switch
+KERNEL=="hidraw*", ATTRS{idVendor}=="0e6f", ATTRS{idProduct}=="0185", 
MODE="0660", TAG+="uaccess"
+
 # PowerA Wired Controller for Nintendo Switch
 KERNEL=="hidraw*", ATTRS{idVendor}=="20d6", ATTRS{idProduct}=="a711", 
MODE="0660", TAG+="uaccess"
 
@@ -59,6 +62,9 @@
 # Razer Raiju PS4 Controller
 KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="1000", 
MODE="0660", TAG+="uaccess"
 
+# Razer Raiju 2 Tournament Edition
+KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="1007", 
MODE="0660", TAG+="uaccess"
+
 # Razer Panthera Arcade Stick
 KERNEL=="hidraw*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0401", 
MODE="0660", TAG+="uaccess"
 
@@ -86,6 +92,9 @@
 # HORIPAD for Nintendo Switch
 KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="00c1", 
MODE="0660", TAG+="uaccess"
 
+# HORIPAD mini 4
+KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="00ee", 
MODE="0660", TAG+="uaccess"
+
 # Armor Armor 3 Pad PS4
 KERNEL=="hidraw*", ATTRS{idVendor}=="0c12", ATTRS{idProduct}=="0e10", 
MODE="0660", TAG+="uaccess"
 

Reply via email to