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----- + +mQINBF4oZXABEACl1NiNblsIcQ09UqIiEAJ9P5r+Bn5ogGonXJviYzHIxH3d8Ksu +CUlNe8Z3aRF+gfBd0O5uZ+EoOUJNF+Ld0I+J4XElsj8bmIGPsxn2p3qj3Dpq39I0 +rf2yavVCSG4Npe63WcNFlx172/joruAzYL0j7JEPzCXoJG+tVqSGUe2O6ix2zxaK +I7wTDsBQcwwAMcq5udyhbkspjQmW9gWvtZbFANdH+iXMuf2YVzgCVeYOLFbFuRm5 +cSm6MBSmbMd+EJEAqN2+A372h6ZOCDL14TgsR4hYBzzXLFvoCGX5Mh3JfAyeqzQX +VbebBupU/ohLs6V4mAFS/nPMXjB6NMV47u/AqatU3RTBjGnbwIQX47TKQmWsLQ2+ +VyRKIutsYVgu0LYokCdJcg6uBOnW8BnQKn/JNcq10MhauFyjPdZ/WAFOZqSG0d3q ++aFuMHtU1RLQZ95AapHF2wLneKkMR302/bbTvZ+0LNjP1WvC+EghDVcFHKeoS537 +jzPhwU85bwqO4UoPSVh2bq3wBtfMPuVWIL9PqbM9J5WLNHSa//GaC53Lc277t0Pt +LzwxgAfwAA0cROZ+UjZ67kWzwa+1qsntS1Wg8RgggKmbDzDLZB2F0r45lpRlib2j +EJDrwy26nR+IbbZsmUCRiIV/xl1iQSe0itNZq9D2WnfDrh6yqNy5plFq2wARAQAB +tClBaHNhbiBGYXlheiA8YWZheWF6QGZlcmFsaW50ZXJhY3RpdmUuY29tPokCTgQT +AQgAOBYhBN46YdWAkrfs0EMJlQj5wceIzHUVBQJeKGVwAhsDBQsJCAcCBhUKCQgL +AgQWAgMBAh4BAheAAAoJEAj5wceIzHUVd/YP/RdovU1f+KDIutskjByUf5bLVzbR +YmmvaZSP9eVigakik79BHv/Eb/yB4qGlPU094tUACrhXuLV33EQOS49XdWrahg3s +F4ZooXz5IDMjo/N2SW5q5980H0iMMU/kBxF4iSeWtLqv0RJSzkDI/5V508Tn4d2R +/ETDPAY03DumVbC8MjGF40oYtfOU5EG4HyXrMACy5kPEmWG+4ocPM81QzoSavbtU +4uYFTQhsTfPcGS7TQhrVrW46QxyBAPhOwxBE0XMa1VyE6/GvxWOGQnCYTf4jO4SM +Q1hso1O+VgqHUd94x+NKWA721+aa2ReiSKF97DH0tg1pp6j8MGYBQ5kUTlQNdbJH +kAMzeflD1OHGi376raqn/j6NA0fC0x8RQrfBD3RMxbIMTNk1/AooY1bjMZheObL/ +9yfUPyDK5mkcyCXHYHya7p2zPUJhoT60gs7yfVo3DFk7CU3PBatPd4UgFtGK5oqS +w+KhvHE1Dr3iG5T1hVboMcuVQVfT8MtFIel6dvEicSdJZ/gCR8hby4nnoOMKIycc +qFLkDbllJsYu+4Jq91y6g/KskNMFR5OJHR2byo9uMH1ZXDLNdkSyJx4pVluKgmsB +hKaEifrqNJEXikZWzFMnFi+OdkGbqWuKnAG5Q7Kl0+NMhVDEez4igaZeGn5xeNI3 +pP+lkERljYt662DVuQINBF4oZXABEACiK0gBdTw2b/WcmnIEAEC1uHKqN2GvwYx9 +NK22G84OaLziJAsZmOt1j6Km9zVjf3+Yb1KsrQ0imikemHYoO1x3+oMj/YX2Nhgw +BPm/tFlZ84yxsDRVfWvbc/6HlZ7tHISQX6LslgPJpFmt1G1sj0gvgw2AKgZKS9Cp +o8fsa5rdRDMXuz8vDn0tnI5OzR8lLWVxdSyNk/bD8F58yVK/did4o7MmanV5P1IX +sHSQN609Lzo3DOjRzmvJJFUh0TaDWuDbo3MlFsS5WJiplW6RcfeKUYTdZVctlK+K +T4Y3eATRkBys9sqko8DZhsxggu8m78jg4nM03MmAMylLxVnDmbeF0cDorV8QMinn +rhMV5rfH1FSvfumzkDur/n/uRpQxME44CqI6jYRCY1xGAdVDwG1oaKUxZDQ+hKv8 +SBi/kmy+g8R0/24oednXYjUYKJ0wguPB373SDK9lvCqq9TzNi4d850vk/Q9ZJCKu +RIaFT9Mna9/nTGYc4rKj214FCkw5PRwhlL+bGtfqKjADeFq4n55jv5sy0PSU41xx +/cMauzNIpZuR4iaYpkFNA8qd3AqJYofmfZzB1ePvEDgoc3AShm3qtYTwx6vXkDUd +meO+C2Kti6cyqTSzXxk5+90uBlH0+fZYKO09jhKaN69Kw5Y8t9kNTpwavgyHTKvU +tZ9v1bD2AwARAQABiQI2BBgBCAAgFiEE3jph1YCSt+zQQwmVCPnBx4jMdRUFAl4o +ZXACGwwACgkQCPnBx4jMdRXqUw/8D/t87kuvrEg+AKZdN7qVPctuZmsov1vAVcoh +myC78eg1SZR5poZwvlrH5uEZerX+qhpifpyRlj8RkTzP+TUJtfaIopVBuGHTQiXZ +SYBALveoPZhIeaH5OU9IRgRrd97MedTyuTJx9YQoPep4DqeroLOETM0VVPonBKMM +Dgk8Voq6bfvxTzceV2Erp5jaVhWSMczfLHufEMb56YDojpJtOyq91KVkn00eN5bA +HhbAiWfzKs1e5Qz68QMUNkXNWdAOYfWFpWFXExzC3/1vHkV5FIjM6R5qIKFd4W56 +j7Tm6qjVAqgc6rOf6hUs+nhNy4sXR/s5dCHkxwvwzLW6BJTTfhH/okJlNECO0lHP +s+tSBM7f3agD2nVGCSD3EsADjzFAMdxe/+arIdK9CkHDATVEdB9RWQjTdRphJdsd +VvBW9p2jxrW6hGSC7S0kW1wcc+SMaZ+JIkw85fRyPGmSNG/pzk75hvUIRe3boX9G +zbq0/VDq2jsFRfSsGPb4HkSMRAOTcEaBsoG82sjE4vOPD/DnI7R7/A60Yl3DCkOg +xQy3yfs30qBozvOxGTjNv9wh4XbX4mleE46eYfVnleP0veLAtJ7g3gHN2xOETb7d +KQYFf5bM9KCBhahCXB22b/NIOHzQE6focEX1nXYwU5UW8qegQmZ8YWpLMn6nF0/G +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