From a120f646b5eb6774a8bc47b94dab23ab3a96028d Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Sat, 20 Jul 2024 20:51:15 -0700 Subject: [PATCH] chore: Add legacy gamescope package --- spec_files/gamescope/0001-cstdint.patch | 37 +++++++ spec_files/gamescope/gamescope-legacy.spec | 109 +++++++++++++++++++++ spec_files/gamescope/gamescope.spec | 18 ++-- 3 files changed, 156 insertions(+), 8 deletions(-) create mode 100644 spec_files/gamescope/0001-cstdint.patch create mode 100644 spec_files/gamescope/gamescope-legacy.spec diff --git a/spec_files/gamescope/0001-cstdint.patch b/spec_files/gamescope/0001-cstdint.patch new file mode 100644 index 00000000..5b435152 --- /dev/null +++ b/spec_files/gamescope/0001-cstdint.patch @@ -0,0 +1,37 @@ +From 5529e8ac8f3232ec6233e33286834548e1d8018d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= +Date: Sun, 8 Oct 2023 22:10:33 +0200 +Subject: [PATCH] + +--- + src/reshade/source/effect_parser_stmt.cpp | 1 + + src/reshade/source/effect_token.hpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/reshade/source/effect_parser_stmt.cpp b/src/reshade/source/effect_parser_stmt.cpp +index 7829729..f126be2 100644 +--- a/src/reshade/source/effect_parser_stmt.cpp ++++ b/src/reshade/source/effect_parser_stmt.cpp +@@ -9,6 +9,7 @@ + #include // std::toupper + #include + #include ++#include + #include + + struct on_scope_exit +diff --git a/src/reshade/source/effect_token.hpp b/src/reshade/source/effect_token.hpp +index 072d439..e4bb633 100644 +--- a/src/reshade/source/effect_token.hpp ++++ b/src/reshade/source/effect_token.hpp +@@ -5,6 +5,7 @@ + + #pragma once + ++#include + #include + #include + +-- +2.41.0 + diff --git a/spec_files/gamescope/gamescope-legacy.spec b/spec_files/gamescope/gamescope-legacy.spec new file mode 100644 index 00000000..6dfb1b8b --- /dev/null +++ b/spec_files/gamescope/gamescope-legacy.spec @@ -0,0 +1,109 @@ +%global libliftoff_minver 0.4.1 +%global reshade_commit 4245743a8c41abbe3dc73980c1810fe449359bf1 +%global reshade_shortcommit %(c=%{reshade_commit}; echo ${c:0:7}) + +Name: gamescope-legacy +Version: 3.14.2 +Release: %autorelease +Summary: Legacy builds of gamescope, a micro-compositor for video games on Wayland + +License: BSD +URL: https://github.com/ValveSoftware/gamescope +Source0: %{url}/archive/%{version}/gamescope-%{version}.tar.gz +# Create stb.pc to satisfy dependency('stb') +Source1: stb.pc +Source2: https://github.com/Joshua-Ashton/reshade/archive/%{reshade_commit}/reshade-%{reshade_shortcommit}.tar.gz + +Patch01: 0001-cstdint.patch + +BuildRequires: meson >= 0.54.0 +BuildRequires: ninja-build +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: glm-devel +BuildRequires: google-benchmark-devel +BuildRequires: libXmu-devel +BuildRequires: libXcursor-devel +BuildRequires: pkgconfig(libdisplay-info) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xxf86vm) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(xres) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-protocols) >= 1.17 +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(sdl2) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libavif) +BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18) +BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5) +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(hwdata) +BuildRequires: spirv-headers-devel +# Enforce the the minimum EVR to contain fixes for all of: +# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898 +# CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666 +# CVE-2023-45667 +BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 +# Header-only library: -static is for tracking per guidelines +BuildRequires: stb_image-static +BuildRequires: stb_image_resize-devel +BuildRequires: stb_image_resize-static +BuildRequires: stb_image_write-devel +BuildRequires: stb_image_write-static +BuildRequires: vkroots-devel +BuildRequires: /usr/bin/glslangValidator + +# libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release +Requires: libliftoff%{?_isa} >= %{libliftoff_minver} +Requires: xorg-x11-server-Xwayland + +Requires: gamescope-libs +Requires: gamescope-libs(x86-32) + +Recommends: mesa-dri-drivers +Recommends: mesa-vulkan-drivers + +%description +%{name} is the micro-compositor optimized for running video games on Wayland. This is a legacy build primarily intended for use by Polaris GPUs. + +%prep +%autosetup -p1 -a2 -N -n gamescope-%{version} +# Install stub pkgconfig file +mkdir -p pkgconfig +cp %{SOURCE1} pkgconfig/stb.pc + +# Replace spirv-headers include with the system directory +sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/meson.build + +# Push in reshade from sources instead of submodule +rm -rf src/reshade && mv reshade-%{reshade_commit} src/reshade + +%autopatch -p1 + +%build +export PKG_CONFIG_PATH=pkgconfig +%meson -Dpipewire=enabled -Denable_gamescope_wsi_layer=false -Denable_openvr_support=false -Dforce_fallback_for=[] +%meson_build + +%install +%meson_install +# Rename to not conflict with the base package +mv %{buildroot}%{_bindir}/gamescope %{buildroot}%{_bindir}/gamescope-legacy + +%files +%license LICENSE +%doc README.md +%{_bindir}/gamescope-legacy + +%changelog +%autochangelog diff --git a/spec_files/gamescope/gamescope.spec b/spec_files/gamescope/gamescope.spec index adc5795c..effd7aef 100644 --- a/spec_files/gamescope/gamescope.spec +++ b/spec_files/gamescope/gamescope.spec @@ -6,7 +6,7 @@ Name: gamescope Version: 100.%{gamescope_tag} -Release: 16.bazzite +Release: 17.bazzite Summary: Micro-compositor for video games on Wayland License: BSD @@ -15,19 +15,21 @@ URL: https://github.com/ValveSoftware/gamescope # Create stb.pc to satisfy dependency('stb') Source0: stb.pc +Patch0: 0001-cstdint.patch + # https://github.com/ChimeraOS/gamescope -Patch0: chimeraos.patch +Patch1: chimeraos.patch # https://hhd.dev/ -Patch1: disable-steam-touch-click-atom.patch -Patch2: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch +Patch2: disable-steam-touch-click-atom.patch +Patch3: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch # https://github.com/ValveSoftware/gamescope/pull/1281 -Patch3: deckhd.patch +Patch4: deckhd.patch # https://github.com/ValveSoftware/gamescope/issues/1398 -Patch4: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch +Patch5: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch # https://github.com/ValveSoftware/gamescope/issues/1369 -Patch5: revert-299bc34.patch +Patch6: revert-299bc34.patch # https://github.com/ValveSoftware/gamescope/pull/1231 -Patch6: 1231.patch +Patch7: 1231.patch BuildRequires: meson >= 0.54.0 BuildRequires: ninja-build