File steam.spec of Package steam
#
# spec file for package steam
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: steam
Version: 1.0.0.62
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: http://repo.steampowered.com/steam/pool/steam/s/steam/steam_%{version}.tar.gz
Source2: steam.appdata.xml
Source3: %{name}.firewall
# 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
BuildRequires: hicolor-icon-theme
BuildRequires: shared-mime-info
BuildRequires: update-desktop-files
BuildRequires: fdupes
BuildRequires: pkgconfig(udev)
# for Steam Hardware Survey
Recommends: 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
Requires: Mesa-libGL1%{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
# our own builds of libcrypto.so.1 and libssl.so.1.
Requires: libopenssl1_0_0-steam
%ifarch x86_64
Requires: libopenssl1_0_0-steam-32bit
%endif
# from steamdeps.txt which uses Debian package syntax
Requires: curl
Requires: xz
Requires: zenity
Requires: libxcb-dri2-0%{dep_postfix}
Requires: libxcb-glx0%{dep_postfix}
# replaces steamruntime-fix and is required for steam to boot
Requires: steamtricks
#Proton Requirements
Requires: python3
Recommends: vulkan
Recommends: libvulkan1-32bit
%description
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.
This package will fetch and install the Steam bootstrap. Start Steam to
complete the installation of the client for the current user.
%package devices
Summary: Device support for Steam-related hardware
URL: https://github.com/ValveSoftware/steam-devices/
License: MIT
Group: Hardware/Joystick
Obsoletes: steam-controller < %{version}
Obsoletes: steam-vr < %{version}
Provides: steam-controller = %{version}
Provides: steam-vr = %{version}
Requires: steam = %{version}
%if 0%{?suse_version} >= 1330
Requires(pre): group(games)
Requires(pre): user(games)
%endif
%description devices
The Steam Controller features dual trackpads, HD haptic feedback, dual-stage
triggers, back grip buttons, and fully-customizable control schemes.
Make sure that all users, which should have access to the steam-controller,
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
%build
%install
make DESTDIR=%{buildroot} install-bin install-docs install-icons install-bootstrap install-desktop
# TODO: Patch it so it works with zypper or at least does not invoke apt-get.
rm %{buildroot}%{_bindir}/steamdeps
rm %{buildroot}/usr/lib/steam/bin_steamdeps.py
mkdir -p %{buildroot}%{_udevrulesdir}
cp subprojects/steam-devices/60-steam-input.rules %{buildroot}%{_udevrulesdir}/60-steam-input.rules
cp subprojects/steam-devices/60-steam-vr.rules %{buildroot}%{_udevrulesdir}/60-steam-vr.rules
# 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}
%fdupes %{buildroot}%{_prefix}
%post
%desktop_database_post
%icon_theme_cache_post
%mime_database_post
%postun
%desktop_database_postun
%icon_theme_cache_postun
%mime_database_postun
%post devices
%{?udev_rules_update:%udev_rules_update}
%postun devices
%{?udev_rules_update:%udev_rules_update}
%files
%{_bindir}/%{name}
%dir %{_prefix}/lib/%{name}
%{_prefix}/lib/%{name}/bootstraplinux_ubuntu12_32.tar.xz
%{_datadir}/pixmaps/%{name}_tray_mono.png
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%dir %{_datadir}/doc/%{name}
%doc %{_datadir}/doc/%{name}/steam_subscriber_agreement.txt
%doc %{_datadir}/doc/%{name}/README
%doc debian/changelog
%{_mandir}/man6/%{name}.6%{?ext_man}
%dir %{_datadir}/appdata/
%{_datadir}/appdata/%{name}.appdata.xml
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}
/usr/lib/steam/bin_steam.sh
/usr/lib/steam/steam.desktop
%files devices
%license subprojects/steam-devices/LICENSE
%{_udevrulesdir}/60-%{name}-input.rules
%{_udevrulesdir}/60-%{name}-vr.rules
%changelog