From dceaaf64d80581ff93f7c16a37d469ea12b669c3acb1df1a8f3ffcfdbc882d1d Mon Sep 17 00:00:00 2001 From: Matthias Bach Date: Wed, 10 May 2023 22:19:07 +0000 Subject: [PATCH] Accepting request 1086137 from home:theMarix:branches:games:tools - Add a new gamemode binary package that provides the command line applications gamemoderun and gamemodelist. These were previously packaged in the gamemoded package but weren't usable without libgamemodeauto0 and libgamemode0 being available, while the latter and the daemon can be used without these. As a side benefit this now allows you to just do an intuitive install of the gamemode package and get the full functionality. - Add feral.keyring to enable verifying the source signature. OBS-URL: https://build.opensuse.org/request/show/1086137 OBS-URL: https://build.opensuse.org/package/show/games:tools/gamemode?expand=0&rev=31 --- feral.keyring | 52 ++++++++++++++++++++++++++++++++++++++++++++++ gamemode-rpmlintrc | 10 +++++++++ gamemode.changes | 12 +++++++++++ gamemode.spec | 32 ++++++++++++++++++++++++---- 4 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 feral.keyring diff --git a/feral.keyring b/feral.keyring new file mode 100644 index 0000000..50fdc6c --- /dev/null +++ b/feral.keyring @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +k2pbXuk= +=gj5V +-----END PGP PUBLIC KEY BLOCK----- diff --git a/gamemode-rpmlintrc b/gamemode-rpmlintrc index 0959082..ce2cf70 100644 --- a/gamemode-rpmlintrc +++ b/gamemode-rpmlintrc @@ -1,3 +1,13 @@ +# In a perfect world this would be a noarch package. But we cannot make the main package +# noarch as the sub-packages are architecture dependent. +addFilter('gamemode.* no-binary') + +# gamemoderun loads the dependency via dlopen, so it cannot be picked up automatically. +addFilter('gamemode.* explicit-lib-dependency libgamemodeauto') + +# Gamemode actually has a % in its description. +addFilter('gamemode.* unexpanded-macro %description -l C %command') + # Libgamemodeauto loads the dependency via dlopen, so it cannot be picked up automatically. addFilter('libgamemodeauto.* explicit-lib-dependency libgamemode') diff --git a/gamemode.changes b/gamemode.changes index a5bbe9b..333262a 100644 --- a/gamemode.changes +++ b/gamemode.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Wed May 10 20:35:53 UTC 2023 - Matthias Bach - 1.7 + +- Add a new gamemode binary package that provides the command line + applications gamemoderun and gamemodelist. These were previously + packaged in the gamemoded package but weren't usable without + libgamemodeauto0 and libgamemode0 being available, while the + latter and the daemon can be used without these. + As a side benefit this now allows you to just do an intuitive + install of the gamemode package and get the full functionality. +- Add feral.keyring to enable verifying the source signature. + ------------------------------------------------------------------- Sat Sep 3 11:47:40 UTC 2022 - Matthias Bach - 1.7 diff --git a/gamemode.spec b/gamemode.spec index ececaa6..47ac35f 100644 --- a/gamemode.spec +++ b/gamemode.spec @@ -1,7 +1,7 @@ # # spec file for package gamemode # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # Copyright (c) 2020 Matthias Bach . # # All modifications and additions to the file contributed by third parties @@ -29,6 +29,7 @@ Source1: %{URL}/releases/download/%{version}/%{name}-%{version}.tar.xz.as Source2: gamemode-rpmlintrc Source3: README.openSUSE Source4: baselibs.conf +Source5: feral.keyring Patch0: only-build-shared-library.patch BuildRequires: cmake BuildRequires: libinih-devel @@ -40,6 +41,11 @@ BuildRequires: pkgconfig(dbus-1) # Yes, it needs both BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(systemd) +# We need to explicitly define the dependency as this is used via +# LD_PRELOAD from a shell script and thus cannot be inferred. +Requires: libgamemodeauto0 +Provides: gamemoded:%{_bindir}/gamemoderun +Provides: gamemoded:%{_bindir}/gamemodelist %description GameMode is a daemon/lib combo for Linux that allows games to request @@ -51,10 +57,20 @@ now able to launch custom user defined plugins, and is intended to be expanded further, as there are a wealth of automation tasks one might want to apply. +For applications that don't implement the GameMode activation themselves, +you can toggle the GameMode by running them via the gamemoderun command. + + gamemoderun ./game + +For Steam games this can be done by editing the launch options: + + gamemoderun %%command%% + %package -n gamemoded Summary: The GameMode daemon required by GameMode enabled games Group: Amusements/Games/Other Recommends: libgamemode +Suggests: gamemode Suggests: libgamemodeauto %description -n gamemoded @@ -95,6 +111,9 @@ For Steam games this can be done by editing the launch options: LD_PRELOAD=$LD_PRELOAD:%{_libdir}/libgamemodeauto.so.0 %%command%% +Nowadays this however can be easier done by using the gamemoderun command +from the gamemode package. + %package -n libgamemode-devel Summary: Headers for compiling games using GameMode Group: Development/Libraries/C and C++ @@ -134,17 +153,22 @@ rm %{buildroot}/%{_sysusersdir}/gamemode.conf %post -n libgamemodeauto0 -p /sbin/ldconfig %postun -n libgamemodeauto0 -p /sbin/ldconfig -%files -n gamemoded -%{_bindir}/gamemoded +%files %{_bindir}/gamemodelist %{_bindir}/gamemoderun +%{_mandir}/*/gamemodelist* +%{_mandir}/*/gamemoderun* +%license LICENSE.txt + +%files -n gamemoded +%{_bindir}/gamemoded %{_libexecdir}/cpugovctl %{_libexecdir}/gpuclockctl %{_userunitdir}/gamemoded.service %{_datadir}/polkit-1/actions/com.feralinteractive.GameMode.policy %{_datadir}/dbus-1/services/com.feralinteractive.GameMode.service %{_datadir}/metainfo/io.github.feralinteractive.gamemode.metainfo.xml -%{_mandir}/*/* +%{_mandir}/*/gamemoded* %doc example/gamemode.ini README.openSUSE %license LICENSE.txt