From bf1cdc68c3f67ef58b7866e9f422db3d272bce77 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 27 Jun 2023 06:36:54 +0300 Subject: [PATCH 01/31] build: Remove big-endian patch No longer needed and fix FTBFS. --- retroarch-1.15.0-big-endian.patch | 20 -------------------- retroarch.spec | 3 --- 2 files changed, 23 deletions(-) delete mode 100644 retroarch-1.15.0-big-endian.patch diff --git a/retroarch-1.15.0-big-endian.patch b/retroarch-1.15.0-big-endian.patch deleted file mode 100644 index 900eb1d..0000000 --- a/retroarch-1.15.0-big-endian.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up RetroArch-1.15.0/input/input_driver.c.s390x RetroArch-1.15.0/input/input_driver.c ---- RetroArch-1.15.0/input/input_driver.c.s390x 2023-03-10 16:16:50.000000000 +0000 -+++ RetroArch-1.15.0/input/input_driver.c 2023-03-12 23:27:07.574931035 +0000 -@@ -4809,14 +4809,14 @@ void bsv_movie_next_frame(input_driver_s - uint64_t size; - uint8_t frame_tok = REPLAY_TOKEN_CHECKPOINT_FRAME; - core_serialize_size(&info); -- size = info.size; -+ size = swap_if_big64(info.size); - st = (uint8_t*)malloc(info.size); - serial_info.data = st; - serial_info.size = info.size; - core_serialize(&serial_info); - /* "next frame is a checkpoint" */ - intfstream_write(handle->file, (uint8_t *)(&frame_tok), sizeof(uint8_t)); -- intfstream_write(handle->file, &(swap_if_big64(size)), sizeof(uint64_t)); -+ intfstream_write(handle->file, &size, sizeof(uint64_t)); - intfstream_write(handle->file, st, info.size); - free(st); - } diff --git a/retroarch.spec b/retroarch.spec index 4bdf544..d773080 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -126,8 +126,6 @@ Source11: README.fedora.md # https://github.com/libretro/retroarch-assets/pull/334 Patch0: https://github.com/libretro/retroarch-assets/pull/334.patch#/add-executable-bit-to-script.patch -# fix build on big-endian -Patch1: %{name}-1.15.0-big-endian.patch BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 @@ -299,7 +297,6 @@ database of ROMs that are known to be good copies. pushd %{appname}-assets-%{commit1} %patch0 -p1 popd -%patch1 -p1 -b .s390x %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 From f49f489dfaf4f18170d5d4429f6b1e6d15239c05 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 27 Jun 2023 06:37:48 +0300 Subject: [PATCH 02/31] build: Use modern RPM macros for %patch Fix deprecate warning --- retroarch.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/retroarch.spec b/retroarch.spec index d773080..6513ad2 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -28,7 +28,7 @@ ExcludeArch: %{ix86} Name: %{appname}%{?p_suffix} Version: 1.15.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} # CC-BY: Assets @@ -295,7 +295,7 @@ database of ROMs that are known to be good copies. %setup -n RetroArch-%{version} -q -D -T -a1 pushd %{appname}-assets-%{commit1} -%patch0 -p1 +%patch 0 -p1 popd %setup -n RetroArch-%{version} -q -D -T -a3 @@ -512,6 +512,10 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml %changelog +* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-5 +- build: Use modern RPM macros for %patch +- build: Remove big-endian patch + * Sun Mar 12 2023 Neal Gompa - 1.15.0-4 - Rebuild for ffmpeg 6.0 - fix build on big-endian (Dominik Mierzejewski) From 0f3debbbb4ecf36e6f2784933f1bbfae9c95ed87 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 27 Jun 2023 07:12:08 +0300 Subject: [PATCH 03/31] build: ExcludeArch: s390x --- retroarch.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/retroarch.spec b/retroarch.spec index 6513ad2..0d70dd1 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -1,5 +1,7 @@ # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} +# Please fix upstream this if you need it and no downstream Fedora patch +ExcludeArch: s390x # Free/Freeworld/Non-Free version %bcond_with freeworld @@ -28,7 +30,7 @@ ExcludeArch: %{ix86} Name: %{appname}%{?p_suffix} Version: 1.15.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} # CC-BY: Assets @@ -512,6 +514,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml %changelog +* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-6 +- build: ExcludeArch: s390x + * Tue Jun 27 2023 Artem Polishchuk - 1.15.0-5 - build: Use modern RPM macros for %patch - build: Remove big-endian patch From 9fd008bd3079a6f00e95474dc61bc486926c9420 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 27 Jun 2023 08:00:49 +0300 Subject: [PATCH 04/31] Convert to %autorelease and %autochangelog [skip changelog] --- changelog | 165 ++++++++++++++++++++++++++++++++++++++++++++++++ retroarch.spec | 168 +------------------------------------------------ 2 files changed, 167 insertions(+), 166 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..d81bd64 --- /dev/null +++ b/changelog @@ -0,0 +1,165 @@ +* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-6 +- build: ExcludeArch: s390x + +* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-5 +- build: Use modern RPM macros for %patch +- build: Remove big-endian patch + +* Sun Mar 12 2023 Neal Gompa - 1.15.0-4 +- Rebuild for ffmpeg 6.0 +- fix build on big-endian (Dominik Mierzejewski) + +* Sat Mar 11 2023 Artem Polishchuk - 1.15.0-3 +- chore: Update to 1.15.0 + +* Fri Jan 20 2023 Fedora Release Engineering - 1.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Dec 13 2022 Artem Polishchuk - 1.14.0-1 +- chore: Update to 1.14.0 + +* Sun Nov 20 2022 Artem Polishchuk - 1.13.0-1 +- chore: Update to 1.13.0 + +* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-4 +- build: Use ffmpeg-free only for >= f37 + +* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-3 +- build: Add new build deps + +* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-2 +- build: Add limited ffmpeg support for >= f36 + +* Sat Oct 22 2022 Artem Polishchuk - 1.12.0-1 +- chore(update): 1.12.0 + +* Sat Oct 01 2022 Artem Polishchuk - 1.11.0-2 +- build: Recommends: gamemode + +* Fri Sep 30 2022 Artem Polishchuk - 1.11.0-1 +- chore(update): 1.11.0 + +* Wed Sep 14 2022 Michel Alexandre Salim - 1.10.3-3 +- Rebuilt for flac 1.4.0 + +* Sat Jul 23 2022 Fedora Release Engineering - 1.10.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Apr 12 2022 Artem Polishchuk - 1.10.3-1 +- chore(update): 1.10.3 + +* Wed Mar 23 2022 Artem Polishchuk - 1.10.2-1 +- chore(update): 1.10.2 + +* Fri Mar 04 2022 Artem Polishchuk - 1.10.1-1 +- chore(update): 1.10.1 + +* Sat Jan 22 2022 Morten Stevens 1.10.0-2 +- Rebuilt for mbedTLS 2.28.0 + +* Thu Jan 20 2022 Artem Polishchuk - 1.10.0-1 +- chore(update): 1.10.0 + +* Mon Dec 06 2021 Artem Polishchuk - 1.9.14-1 +- chore(update): 1.9.14 + +* Sun Nov 07 2021 Artem Polishchuk - 1.9.13-1 +- chore(update): 1.9.13 + +* Sun Oct 24 2021 Artem Polishchuk - 1.9.12-1 +- chore(update): 1.9.12 + +* Sat Oct 09 2021 Artem Polishchuk - 1.9.11-1 +- chore(update): 1.9.11 + +* Mon Oct 04 2021 Artem Polishchuk - 1.9.10-1 +- build(update): 1.9.10 + +* Fri Oct 01 2021 Artem Polishchuk - 1.9.9-3 +- docs: Add README.fedora.md | rh#1846170 + +* Tue Sep 14 2021 Sahana Prasad - 1.9.9-2 +- Rebuilt with OpenSSL 3.0.0 + +* Tue Sep 07 2021 Artem Polishchuk - 1.9.9-1 +- build(update): 1.9.9 + +* Thu Aug 26 2021 Artem Polishchuk - 1.9.8-1 +- build(update): 1.9.8 + +* Sat Aug 14 2021 Artem Polishchuk +- build(update): 1.9.7 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.9.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 14 2021 Artem Polishchuk - 1.9.5-1 +- build(update): 1.9.5 + +* Fri May 28 2021 Artem Polishchuk - 1.9.4-1 +- build(update): 1.9.4 + +* Sat May 15 2021 Artem Polishchuk - 1.9.3-1 +- build(update): 1.9.3 + +* Sat May 01 2021 Artem Polishchuk - 1.9.2-1 +- build(update): 1.9.2 + +* Mon Mar 29 2021 Artem Polishchuk - 1.9.1-1 +- build(update): 1.9.1 + +* Wed Jan 27 2021 Fedora Release Engineering - 1.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 08 2020 Artem Polishchuk - 1.9.0-1 +- Update to 1.9.0 + +* Wed Jul 29 2020 Fedora Release Engineering - 1.8.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jun 20 2020 Artem Polishchuk - 1.8.9-1 +- Update to 1.8.9 + +* Wed May 27 2020 Artem Polishchuk - 1.8.8-1 +- Update to 1.8.8 + +* Tue May 19 2020 Artem Polishchuk - 1.8.7-2 +- Add Database files (cheatcode, content data, cursors) | Fix: RH#1822743 +- Disable LTO + +* Mon May 18 2020 Artem Polishchuk - 1.8.7-1 +- Update to 1.8.7 + +* Thu May 07 2020 Artem Polishchuk - 1.8.6-1 +- Update to 1.8.6 + +* Thu Mar 26 2020 Artem Polishchuk - 1.8.5-2 +- Add Joypad Autoconfig Files + +* Mon Mar 23 2020 Artem Polishchuk - 1.8.5-1 +- Update to 1.8.5 +- Add new libretro core + +* Thu Jan 30 2020 Fedora Release Engineering - 1.8.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 29 2020 Artem Polishchuk - 1.8.4-3 +- Spec file improvements +- Thanks to Nicolas Chauvet for help with packaging and review + +* Fri Jan 24 2020 Artem Polishchuk - 1.8.4-2 +- Add Libretro's core info. Thanks + +* Sun Jan 19 2020 Artem Polishchuk - 1.8.4-1 +- Update to 1.8.4 +- Add missed Perl modules + +* Sun Dec 29 2019 Artem Polishchuk - 1.8.2-2 +- Make fully standlone Freeworld package as RPM Fusion recommended + +* Thu Dec 26 2019 Artem Polishchuk - 1.8.2-1 +- Update to 1.8.2 + +* Fri Nov 29 2019 Artem Polishchuk - 1.8.1-14 +- Initial package +- Thanks to Vitaly Zaitsev for help with packaging and review diff --git a/retroarch.spec b/retroarch.spec index 0d70dd1..870c760 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -30,7 +30,7 @@ ExcludeArch: s390x Name: %{appname}%{?p_suffix} Version: 1.15.0 -Release: 6%{?dist} +Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} # CC-BY: Assets @@ -514,168 +514,4 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.xml %changelog -* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-6 -- build: ExcludeArch: s390x - -* Tue Jun 27 2023 Artem Polishchuk - 1.15.0-5 -- build: Use modern RPM macros for %patch -- build: Remove big-endian patch - -* Sun Mar 12 2023 Neal Gompa - 1.15.0-4 -- Rebuild for ffmpeg 6.0 -- fix build on big-endian (Dominik Mierzejewski) - -* Sat Mar 11 2023 Artem Polishchuk - 1.15.0-3 -- chore: Update to 1.15.0 - -* Fri Jan 20 2023 Fedora Release Engineering - 1.14.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Dec 13 2022 Artem Polishchuk - 1.14.0-1 -- chore: Update to 1.14.0 - -* Sun Nov 20 2022 Artem Polishchuk - 1.13.0-1 -- chore: Update to 1.13.0 - -* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-4 -- build: Use ffmpeg-free only for >= f37 - -* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-3 -- build: Add new build deps - -* Mon Nov 14 2022 Artem Polishchuk - 1.12.0-2 -- build: Add limited ffmpeg support for >= f36 - -* Sat Oct 22 2022 Artem Polishchuk - 1.12.0-1 -- chore(update): 1.12.0 - -* Sat Oct 01 2022 Artem Polishchuk - 1.11.0-2 -- build: Recommends: gamemode - -* Fri Sep 30 2022 Artem Polishchuk - 1.11.0-1 -- chore(update): 1.11.0 - -* Wed Sep 14 2022 Michel Alexandre Salim - 1.10.3-3 -- Rebuilt for flac 1.4.0 - -* Sat Jul 23 2022 Fedora Release Engineering - 1.10.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Apr 12 2022 Artem Polishchuk - 1.10.3-1 -- chore(update): 1.10.3 - -* Wed Mar 23 2022 Artem Polishchuk - 1.10.2-1 -- chore(update): 1.10.2 - -* Fri Mar 04 2022 Artem Polishchuk - 1.10.1-1 -- chore(update): 1.10.1 - -* Sat Jan 22 2022 Morten Stevens 1.10.0-2 -- Rebuilt for mbedTLS 2.28.0 - -* Thu Jan 20 2022 Artem Polishchuk - 1.10.0-1 -- chore(update): 1.10.0 - -* Mon Dec 06 2021 Artem Polishchuk - 1.9.14-1 -- chore(update): 1.9.14 - -* Sun Nov 07 2021 Artem Polishchuk - 1.9.13-1 -- chore(update): 1.9.13 - -* Sun Oct 24 2021 Artem Polishchuk - 1.9.12-1 -- chore(update): 1.9.12 - -* Sat Oct 09 2021 Artem Polishchuk - 1.9.11-1 -- chore(update): 1.9.11 - -* Mon Oct 04 2021 Artem Polishchuk - 1.9.10-1 -- build(update): 1.9.10 - -* Fri Oct 01 2021 Artem Polishchuk - 1.9.9-3 -- docs: Add README.fedora.md | rh#1846170 - -* Tue Sep 14 2021 Sahana Prasad - 1.9.9-2 -- Rebuilt with OpenSSL 3.0.0 - -* Tue Sep 07 2021 Artem Polishchuk - 1.9.9-1 -- build(update): 1.9.9 - -* Thu Aug 26 2021 Artem Polishchuk - 1.9.8-1 -- build(update): 1.9.8 - -* Sat Aug 14 2021 Artem Polishchuk -- build(update): 1.9.7 - -* Fri Jul 23 2021 Fedora Release Engineering - 1.9.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jun 14 2021 Artem Polishchuk - 1.9.5-1 -- build(update): 1.9.5 - -* Fri May 28 2021 Artem Polishchuk - 1.9.4-1 -- build(update): 1.9.4 - -* Sat May 15 2021 Artem Polishchuk - 1.9.3-1 -- build(update): 1.9.3 - -* Sat May 01 2021 Artem Polishchuk - 1.9.2-1 -- build(update): 1.9.2 - -* Mon Mar 29 2021 Artem Polishchuk - 1.9.1-1 -- build(update): 1.9.1 - -* Wed Jan 27 2021 Fedora Release Engineering - 1.9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Sat Aug 08 2020 Artem Polishchuk - 1.9.0-1 -- Update to 1.9.0 - -* Wed Jul 29 2020 Fedora Release Engineering - 1.8.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sat Jun 20 2020 Artem Polishchuk - 1.8.9-1 -- Update to 1.8.9 - -* Wed May 27 2020 Artem Polishchuk - 1.8.8-1 -- Update to 1.8.8 - -* Tue May 19 2020 Artem Polishchuk - 1.8.7-2 -- Add Database files (cheatcode, content data, cursors) | Fix: RH#1822743 -- Disable LTO - -* Mon May 18 2020 Artem Polishchuk - 1.8.7-1 -- Update to 1.8.7 - -* Thu May 07 2020 Artem Polishchuk - 1.8.6-1 -- Update to 1.8.6 - -* Thu Mar 26 2020 Artem Polishchuk - 1.8.5-2 -- Add Joypad Autoconfig Files - -* Mon Mar 23 2020 Artem Polishchuk - 1.8.5-1 -- Update to 1.8.5 -- Add new libretro core - -* Thu Jan 30 2020 Fedora Release Engineering - 1.8.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jan 29 2020 Artem Polishchuk - 1.8.4-3 -- Spec file improvements -- Thanks to Nicolas Chauvet for help with packaging and review - -* Fri Jan 24 2020 Artem Polishchuk - 1.8.4-2 -- Add Libretro's core info. Thanks - -* Sun Jan 19 2020 Artem Polishchuk - 1.8.4-1 -- Update to 1.8.4 -- Add missed Perl modules - -* Sun Dec 29 2019 Artem Polishchuk - 1.8.2-2 -- Make fully standlone Freeworld package as RPM Fusion recommended - -* Thu Dec 26 2019 Artem Polishchuk - 1.8.2-1 -- Update to 1.8.2 - -* Fri Nov 29 2019 Artem Polishchuk - 1.8.1-14 -- Initial package -- Thanks to Vitaly Zaitsev for help with packaging and review +%autochangelog From 81059bd48f91ae46741be5ba20f64c5570afae07 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Tue, 27 Jun 2023 08:06:51 +0300 Subject: [PATCH 05/31] build: Attempt to enable CSD on Wayland (rh#2217543) --- retroarch.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/retroarch.spec b/retroarch.spec index 870c760..be4e44a 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -368,6 +368,8 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ --disable-builtinmbedtls \ --disable-builtinzlib \ --enable-dbus \ + --enable-libdecor \ + --enable-wayland \ %{nil} %set_build_flags %make_build From 6aa8dafa3233cd19649c05b8dd9c1e9bc89c9ea2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 21 Jul 2023 16:49:48 +0000 Subject: [PATCH 06/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 25d257b08d1d673c09db9234145aeb5fd9d96bac Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 30 Sep 2023 17:49:56 +0300 Subject: [PATCH 07/31] build: Update to 1.16.0.3 --- .gitignore | 6 +++++ add-executable-bit-to-script.patch | 13 ----------- retroarch.spec | 35 ++++++++++++------------------ sources | 10 ++++----- 4 files changed, 25 insertions(+), 39 deletions(-) delete mode 100644 add-executable-bit-to-script.patch diff --git a/.gitignore b/.gitignore index d14bca4..cb0866a 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,9 @@ /libretro-core-info-1.15.0.tar.gz /libretro-database-1.15.0.tar.gz /retroarch-joypad-autoconfig-1.15.0.tar.gz +/retroarch-1.16.0.tar.gz +/retroarch-assets-20230911git7b735ef.tar.gz +/libretro-core-info-1.16.0.tar.gz +/retroarch-joypad-autoconfig-1.16.0.tar.gz +/libretro-database-1.16.0.tar.gz +/retroarch-1.16.0.3.tar.gz diff --git a/add-executable-bit-to-script.patch b/add-executable-bit-to-script.patch deleted file mode 100644 index b575867..0000000 --- a/add-executable-bit-to-script.patch +++ /dev/null @@ -1,13 +0,0 @@ -From e51c6d405ec8ce6b708292e8f55b9106d92b23e0 Mon Sep 17 00:00:00 2001 -From: Artem Polishchuk -Date: Tue, 3 Dec 2019 15:40:58 +0200 -Subject: [PATCH] Add executable bit to script - ---- - xmb/convert.sh | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - mode change 100644 => 100755 xmb/convert.sh - -diff --git a/xmb/convert.sh b/xmb/convert.sh -old mode 100644 -new mode 100755 diff --git a/retroarch.spec b/retroarch.spec index be4e44a..8e2b4b1 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -24,12 +24,13 @@ ExcludeArch: s390x # Assets # * https://github.com/libretro/retroarch-assets # * https://github.com/libretro/retroarch-assets/issues/414 -%global commit1 4ec80faf1b5439d1654f407805bb66141b880826 -%global date 20221024 +%global commit1 7b735ef18bcc6508b1c9a626eb237779ff787179 +%global date 20230911 %global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) Name: %{appname}%{?p_suffix} -Version: 1.15.0 +Version: 1.16.0.3 +%global version_addons 1.16.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} @@ -112,13 +113,13 @@ Source1: %{short_url}/%{appname}-assets/archive/%{commit1}/%{appname}-ass %dnl Source2: https://raw.githubusercontent.com/flathub/%{uuid}/63af0e2449891e40c6ab6feae5d27845768b26fb/%{uuid}.appdata.xml # Libretro's core info -Source3: %{short_url}/libretro-core-info/archive/v%{version}/libretro-core-info-%{version}.tar.gz +Source3: %{short_url}/libretro-core-info/archive/v%{version_addons}/libretro-core-info-%{version_addons}.tar.gz # Joypad Autoconfig Files -Source4: %{short_url}/%{appname}-joypad-autoconfig/archive/v%{version}/%{appname}-joypad-autoconfig-%{version}.tar.gz +Source4: %{short_url}/%{appname}-joypad-autoconfig/archive/v%{version_addons}/%{appname}-joypad-autoconfig-%{version_addons}.tar.gz # Database files (cheatcode, content data, cursors) -Source5: %{short_url}/libretro-database/archive/v%{version}/libretro-database-%{version}.tar.gz +Source5: %{short_url}/libretro-database/archive/v%{version_addons}/libretro-database-%{version_addons}.tar.gz # Script for enabling network access which allows downloading more libretro # cores @@ -126,9 +127,6 @@ Source10: %{name}-enable-network-access.sh Source11: README.fedora.md -# https://github.com/libretro/retroarch-assets/pull/334 -Patch0: https://github.com/libretro/retroarch-assets/pull/334.patch#/add-executable-bit-to-script.patch - BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 BuildRequires: glslang-devel @@ -228,7 +226,7 @@ Provides: bundled(ibxm) # https://github.com/libretro/RetroArch/issues/8153 Provides: bundled(lua) = 5.3.5 -Provides: bundled(rcheevos) = 10.4 +Provides: bundled(rcheevos) = 10.7 Provides: bundled(SPIRV-Cross) Provides: bundled(stb) @@ -295,11 +293,6 @@ database of ROMs that are known to be good copies. %prep %setup -n RetroArch-%{version} -q %setup -n RetroArch-%{version} -q -D -T -a1 - -pushd %{appname}-assets-%{commit1} -%patch 0 -p1 -popd - %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 %setup -n RetroArch-%{version} -q -D -T -a5 @@ -385,13 +378,13 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ %make_build -C gfx/video_filters # Libretro's core info -%make_build -C libretro-core-info-%{version} +%make_build -C libretro-core-info-%{version_addons} # Joypad Autoconfig Files -%make_build -C %{appname}-joypad-autoconfig-%{version} +%make_build -C %{appname}-joypad-autoconfig-%{version_addons} # Database files (cheatcode, content data, cursors) -%make_build -C libretro-database-%{version} +%make_build -C libretro-database-%{version_addons} %install @@ -426,14 +419,14 @@ rm %{buildroot}%{_datadir}/libretro/assets%{?p_suffix}/pkg/osd-font.ttf \ INSTALLDIR=%{_libdir}/retroarch/filters%{?p_suffix}/video # Libretro's core info -%make_install -C libretro-core-info-%{version} \ +%make_install -C libretro-core-info-%{version_addons} \ INSTALLDIR=%{_datadir}/libretro/info%{?p_suffix} # AppData manifest %dnl install -m 0644 -Dp %{SOURCE2} %{buildroot}%{_metainfodir}/%{uuid}.appdata.xml # Joypad Autoconfig Files -%make_install -C %{appname}-joypad-autoconfig-%{version} \ +%make_install -C %{appname}-joypad-autoconfig-%{version_addons} \ DOC_DIR=%{_datadir}/libretro/autoconfig/doc %if %{with freeworld} mv %{buildroot}%{_datadir}/libretro/autoconfig/ \ @@ -441,7 +434,7 @@ mv %{buildroot}%{_datadir}/libretro/autoconfig/ \ %endif # Database files (cheatcode, content data, cursors) -%make_install -C libretro-database-%{version} \ +%make_install -C libretro-database-%{version_addons} \ INSTALLDIR=%{_datadir}/libretro/database%{?p_suffix} # Rename desktop file to UUID for compatibility diff --git a/sources b/sources index 6fb735b..90c2f75 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (libretro-core-info-1.15.0.tar.gz) = 573418f8e27b66dea312be6bceef9e46d03862a26b1f55033e909618dc4f1784ed9cc206f49c7903efec8583fd8cee6d4f77de4ca34682dfc33c1d75850eeb1b -SHA512 (libretro-database-1.15.0.tar.gz) = 2730865000da062ee42e98f66182f5a152d864be4af3c46f925f860a89219bd0e84ec21cd5748762ae6e22643051a092bf6abc165a70f31a50ea2f4e4e0d9087 -SHA512 (retroarch-1.15.0.tar.gz) = 7655335877fb42ffbba76037763e1e7b7e9c0b67cf6a41f4a3c26ddfd1f004b9be59f6aebb2470c6b48ca15aadc20773a0cc197988323b482c3a358edfd58a12 -SHA512 (retroarch-assets-20221024git4ec80fa.tar.gz) = d6188dd4e3c6e5b2cddf88513bcd92f1e65b8d877c16c9a9de045aa960050620b5db21da9a784f5ccc93a4c0908a29093dc4396535ea568470ae69247afe723d -SHA512 (retroarch-joypad-autoconfig-1.15.0.tar.gz) = 9a548926a81e80740055175e0c8380d1dda5e855bae118553429e30b22257e432e7b7b70fe7f2aa9b48e2048a06ffc20c0186626e01887c3d8ab8c5b436ae865 +SHA512 (libretro-core-info-1.16.0.tar.gz) = ca061f4ed16e53f21053c311353e42a83336688011e13a474e5d6a59ed1d317f0dd3d9f03aa569c41f2e38c684eac8db7529f935b573731499c0c2ee5c73c84e +SHA512 (libretro-database-1.16.0.tar.gz) = 02f8108cfe5954cc10e7edf131d81f767bf71151dd314854aad3fc8b18c3d8ebb13e98496aceb905eb2b0680f0b93d13dd7c911894e14ea4b65a78ab7643c1fe +SHA512 (retroarch-1.16.0.3.tar.gz) = a208905257ef5ac38f055195a06167cba5727f470abcba20015ae47bec9af5936fbdc50badb146502d6ccf8de76eaad5846a131974919bb99ea5a0a008624bc1 +SHA512 (retroarch-assets-20230911git7b735ef.tar.gz) = 4948501b63b65314bcef1ea7e14f22f7d5a3c0a5d2d340ac6bd33514ea487b1b4354e25d8ba49ac6ffa81bb7a43923edc985fd292d2fe38949742af468ac65f5 +SHA512 (retroarch-joypad-autoconfig-1.16.0.tar.gz) = b0ca89386b681c081faf76e6b65cbe90fce3b712de3f66a1e8686653824f02566b8d50fb40fad2fc7d7260fe46be75199871f8a316c9acf7210dd2287e5047de From 664693146827ee1cc7708c76290f615f705f028c Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 30 Sep 2023 17:58:32 +0300 Subject: [PATCH 08/31] license: Convert to SPDX --- retroarch.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroarch.spec b/retroarch.spec index 8e2b4b1..e799ddd 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -94,7 +94,7 @@ Summary: Cross-platform, sophisticated frontend for the libretro API. %{? # gfx/ # libretro-common/ # -License: GPLv3+ and GPLv2 and CC-BY and CC0 and BSD and ASL 2.0 and MIT +License: GPL-3.0-or-later and GPL-2.0-only and CC-BY-3.0 and CC-BY-4.0 and CC0-1.0 and BSD-2-Clause and BSD-3-Clause and Apache-2.0 and MIT URL: https://www.libretro.com/ Source0: %{short_url}/RetroArch/archive/v%{version}/%{appname}-%{version}.tar.gz From d8d7569180c13180173c0346dd7119b945d46b43 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 11:28:01 +0000 Subject: [PATCH 09/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From f479abf081138785eeb3b971032b327e546b1ab3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 15:17:37 +0000 Subject: [PATCH 10/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 324c150932f6556d263663d65c7012238eaae6a8 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sun, 4 Feb 2024 15:25:35 +0300 Subject: [PATCH 11/31] chore: Update to 1.17.0 --- .gitignore | 2 ++ retroarch.spec | 6 +++--- sources | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index cb0866a..37a09bc 100644 --- a/.gitignore +++ b/.gitignore @@ -138,3 +138,5 @@ /retroarch-joypad-autoconfig-1.16.0.tar.gz /libretro-database-1.16.0.tar.gz /retroarch-1.16.0.3.tar.gz +/retroarch-1.17.0.tar.gz +/retroarch-assets-20240102git923b711.tar.gz diff --git a/retroarch.spec b/retroarch.spec index e799ddd..9ce4b4e 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -24,12 +24,12 @@ ExcludeArch: s390x # Assets # * https://github.com/libretro/retroarch-assets # * https://github.com/libretro/retroarch-assets/issues/414 -%global commit1 7b735ef18bcc6508b1c9a626eb237779ff787179 -%global date 20230911 +%global commit1 923b711dc6772a168d83dc8915e9260730fcf3a1 +%global date 20240102 %global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) Name: %{appname}%{?p_suffix} -Version: 1.16.0.3 +Version: 1.17.0 %global version_addons 1.16.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} diff --git a/sources b/sources index 90c2f75..e41e0fe 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ SHA512 (libretro-core-info-1.16.0.tar.gz) = ca061f4ed16e53f21053c311353e42a83336688011e13a474e5d6a59ed1d317f0dd3d9f03aa569c41f2e38c684eac8db7529f935b573731499c0c2ee5c73c84e SHA512 (libretro-database-1.16.0.tar.gz) = 02f8108cfe5954cc10e7edf131d81f767bf71151dd314854aad3fc8b18c3d8ebb13e98496aceb905eb2b0680f0b93d13dd7c911894e14ea4b65a78ab7643c1fe -SHA512 (retroarch-1.16.0.3.tar.gz) = a208905257ef5ac38f055195a06167cba5727f470abcba20015ae47bec9af5936fbdc50badb146502d6ccf8de76eaad5846a131974919bb99ea5a0a008624bc1 -SHA512 (retroarch-assets-20230911git7b735ef.tar.gz) = 4948501b63b65314bcef1ea7e14f22f7d5a3c0a5d2d340ac6bd33514ea487b1b4354e25d8ba49ac6ffa81bb7a43923edc985fd292d2fe38949742af468ac65f5 +SHA512 (retroarch-1.17.0.tar.gz) = 708367df074f6eb641c115a28251ca82e8e486e9f61a3d10c53327c5eca9c5c90773af4d40daaa16b5cc4e8820d1edec0086420b42e031b39a2281a820482fa4 +SHA512 (retroarch-assets-20240102git923b711.tar.gz) = 0d436662985b43ab372975082eb9f5c08093a52c447d4c7ddf62bd61fa148534ecffa9e30f51086637d5682c37fc551462e1f0f111ce43662e521558c45dac68 SHA512 (retroarch-joypad-autoconfig-1.16.0.tar.gz) = b0ca89386b681c081faf76e6b65cbe90fce3b712de3f66a1e8686653824f02566b8d50fb40fad2fc7d7260fe46be75199871f8a316c9acf7210dd2287e5047de From e2e0546e1a0aea48787acdc9d9e003d4ef4977a7 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sun, 4 Feb 2024 23:11:24 +0300 Subject: [PATCH 12/31] build: Update version addons to 1.17.0 --- .gitignore | 3 +++ retroarch.spec | 2 +- sources | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 37a09bc..cb9c63e 100644 --- a/.gitignore +++ b/.gitignore @@ -140,3 +140,6 @@ /retroarch-1.16.0.3.tar.gz /retroarch-1.17.0.tar.gz /retroarch-assets-20240102git923b711.tar.gz +/libretro-core-info-1.17.0.tar.gz +/libretro-database-1.17.0.tar.gz +/retroarch-joypad-autoconfig-1.17.0.tar.gz diff --git a/retroarch.spec b/retroarch.spec index 9ce4b4e..f1a81d3 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -30,7 +30,7 @@ ExcludeArch: s390x Name: %{appname}%{?p_suffix} Version: 1.17.0 -%global version_addons 1.16.0 +%global version_addons 1.17.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} diff --git a/sources b/sources index e41e0fe..cc2f2b4 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (libretro-core-info-1.16.0.tar.gz) = ca061f4ed16e53f21053c311353e42a83336688011e13a474e5d6a59ed1d317f0dd3d9f03aa569c41f2e38c684eac8db7529f935b573731499c0c2ee5c73c84e -SHA512 (libretro-database-1.16.0.tar.gz) = 02f8108cfe5954cc10e7edf131d81f767bf71151dd314854aad3fc8b18c3d8ebb13e98496aceb905eb2b0680f0b93d13dd7c911894e14ea4b65a78ab7643c1fe +SHA512 (libretro-core-info-1.17.0.tar.gz) = f1460dabcc9940e022b7c0fa02a7132099bbd88855ff9bd266ff9ea3efba4ee5813047981fb2ab10ed98abd926d6d03fecca91a91f14a0e6aa84aa8169dc26cc +SHA512 (libretro-database-1.17.0.tar.gz) = f058518703d3749853d0dbb3314cfcf8d24ae7b637158366b23f32c3422e0f5071822e07064edf8a7864a489ace12927d743bc2a09fa04d5b0a3393c2ef3901f SHA512 (retroarch-1.17.0.tar.gz) = 708367df074f6eb641c115a28251ca82e8e486e9f61a3d10c53327c5eca9c5c90773af4d40daaa16b5cc4e8820d1edec0086420b42e031b39a2281a820482fa4 SHA512 (retroarch-assets-20240102git923b711.tar.gz) = 0d436662985b43ab372975082eb9f5c08093a52c447d4c7ddf62bd61fa148534ecffa9e30f51086637d5682c37fc551462e1f0f111ce43662e521558c45dac68 -SHA512 (retroarch-joypad-autoconfig-1.16.0.tar.gz) = b0ca89386b681c081faf76e6b65cbe90fce3b712de3f66a1e8686653824f02566b8d50fb40fad2fc7d7260fe46be75199871f8a316c9acf7210dd2287e5047de +SHA512 (retroarch-joypad-autoconfig-1.17.0.tar.gz) = b0123e6478677551295a7c8bca9f258b9c619c494abaa6d4fbd448b63310706046b133e5b9bfe7cbcc8ce59ef4f7872270e37d780e182b949b90fb752347d2cf From e768faad0800206dfd334687c162fbcdf65d64d5 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 13 Apr 2024 13:14:22 +0300 Subject: [PATCH 13/31] chore: Update to 1.18.0 --- .gitignore | 4 ++++ retroarch.spec | 4 ++-- sources | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index cb9c63e..c7ad232 100644 --- a/.gitignore +++ b/.gitignore @@ -143,3 +143,7 @@ /libretro-core-info-1.17.0.tar.gz /libretro-database-1.17.0.tar.gz /retroarch-joypad-autoconfig-1.17.0.tar.gz +/libretro-core-info-1.18.0.tar.gz +/libretro-database-1.18.0.tar.gz +/retroarch-1.18.0.tar.gz +/retroarch-joypad-autoconfig-1.18.0.tar.gz diff --git a/retroarch.spec b/retroarch.spec index f1a81d3..1c7270a 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -29,8 +29,8 @@ ExcludeArch: s390x %global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) Name: %{appname}%{?p_suffix} -Version: 1.17.0 -%global version_addons 1.17.0 +Version: 1.18.0 +%global version_addons 1.18.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} diff --git a/sources b/sources index cc2f2b4..b2800a9 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (libretro-core-info-1.17.0.tar.gz) = f1460dabcc9940e022b7c0fa02a7132099bbd88855ff9bd266ff9ea3efba4ee5813047981fb2ab10ed98abd926d6d03fecca91a91f14a0e6aa84aa8169dc26cc -SHA512 (libretro-database-1.17.0.tar.gz) = f058518703d3749853d0dbb3314cfcf8d24ae7b637158366b23f32c3422e0f5071822e07064edf8a7864a489ace12927d743bc2a09fa04d5b0a3393c2ef3901f -SHA512 (retroarch-1.17.0.tar.gz) = 708367df074f6eb641c115a28251ca82e8e486e9f61a3d10c53327c5eca9c5c90773af4d40daaa16b5cc4e8820d1edec0086420b42e031b39a2281a820482fa4 +SHA512 (libretro-core-info-1.18.0.tar.gz) = 832132b943d979ff24a6a60cb0bc339cbd684822b81d6384854bf171d8e73fb0a627eb8fba4354fa0de32d18fb810b753538d521c357e8c73753adda1e54e133 +SHA512 (libretro-database-1.18.0.tar.gz) = c4e793ffcb11680a7be4968d99daa5dcd547d028ddc2b698e74b2271c42c3e17c1b62dfaf1d7fcec9726be56d66c19dc4092d5c8f4fedb0753fad0cb0457b1fa +SHA512 (retroarch-1.18.0.tar.gz) = 3b685a4016e06bc69dfe015da91dc240f24672d30f1511f87ded90d1953b8aab60e54a81eb51cb4666676b2b8544ebdcf8497b5987a9683551c5f24ba1d86306 SHA512 (retroarch-assets-20240102git923b711.tar.gz) = 0d436662985b43ab372975082eb9f5c08093a52c447d4c7ddf62bd61fa148534ecffa9e30f51086637d5682c37fc551462e1f0f111ce43662e521558c45dac68 -SHA512 (retroarch-joypad-autoconfig-1.17.0.tar.gz) = b0123e6478677551295a7c8bca9f258b9c619c494abaa6d4fbd448b63310706046b133e5b9bfe7cbcc8ce59ef4f7872270e37d780e182b949b90fb752347d2cf +SHA512 (retroarch-joypad-autoconfig-1.18.0.tar.gz) = 69e0fc60ed381a932099a45f348e1ef8f31638766b540e8815cbb088f32a845f274095d8ac5786becd09bf5ec866218482bec354f363fe00adfa836eb4b306f0 From 6893907201bcd4741b2df06190d7549fe8e26530 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Sat, 13 Apr 2024 14:29:41 +0300 Subject: [PATCH 14/31] build: Update bundled(lua) to 5.3.6 --- retroarch.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroarch.spec b/retroarch.spec index 1c7270a..d27d663 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -224,7 +224,7 @@ Provides: bundled(glslang) Provides: bundled(ibxm) # https://github.com/libretro/RetroArch/issues/8153 -Provides: bundled(lua) = 5.3.5 +Provides: bundled(lua) = 5.3.6 Provides: bundled(rcheevos) = 10.7 Provides: bundled(SPIRV-Cross) From 73510624b201f8d30db7419370b42d16520121d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= Date: Sun, 5 May 2024 13:01:30 +0200 Subject: [PATCH 15/31] Add compatibility with FFMPEG 7.0 --- 0001-Add-compatibility-with-FFMPEG-7.0.patch | 122 +++++++++++++++++++ retroarch.spec | 5 + 2 files changed, 127 insertions(+) create mode 100644 0001-Add-compatibility-with-FFMPEG-7.0.patch diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch new file mode 100644 index 0000000..e676efb --- /dev/null +++ b/0001-Add-compatibility-with-FFMPEG-7.0.patch @@ -0,0 +1,122 @@ +From 4a1047151ceba2ff0c52fe1962bbf5df41506899 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= +Date: Sun, 5 May 2024 12:43:48 +0200 +Subject: [PATCH] Add compatibility with FFMPEG 7.0 + +channel_layout has been replaced with ch_layout + +Fix: #16437 +--- + cores/libretro-ffmpeg/ffmpeg_core.c | 8 ++++++++ + record/drivers/record_ffmpeg.c | 29 ++++++++++++++++++++++++++--- + 2 files changed, 34 insertions(+), 3 deletions(-) + +diff --git a/cores/libretro-ffmpeg/ffmpeg_core.c b/cores/libretro-ffmpeg/ffmpeg_core.c +index c96b4f4c75..08bee25063 100644 +--- a/cores/libretro-ffmpeg/ffmpeg_core.c ++++ b/cores/libretro-ffmpeg/ffmpeg_core.c +@@ -65,6 +65,8 @@ extern "C" { + s ##_version() >> 8 & 0xFF, \ + s ##_version() & 0xFF); + ++#define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) ++ + static bool reset_triggered; + static bool libretro_supports_bitmasks = false; + +@@ -1726,8 +1728,14 @@ static void decode_thread(void *data) + { + swr[i] = swr_alloc(); + ++#if HAVE_CH_LAYOUT ++ AVChannelLayout out_chlayout = AV_CHANNEL_LAYOUT_STEREO; ++ av_opt_set_chlayout(swr[i], "in_chlayout", &actx[i]->ch_layout, 0); ++ av_opt_set_chlayout(swr[i], "out_chlayout", &out_chlayout, 0); ++#else + av_opt_set_int(swr[i], "in_channel_layout", actx[i]->channel_layout, 0); + av_opt_set_int(swr[i], "out_channel_layout", AV_CH_LAYOUT_STEREO, 0); ++#endif + av_opt_set_int(swr[i], "in_sample_rate", actx[i]->sample_rate, 0); + av_opt_set_int(swr[i], "out_sample_rate", media.sample_rate, 0); + av_opt_set_int(swr[i], "in_sample_fmt", actx[i]->sample_fmt, 0); +diff --git a/record/drivers/record_ffmpeg.c b/record/drivers/record_ffmpeg.c +index cb5114b945..0af5499872 100644 +--- a/record/drivers/record_ffmpeg.c ++++ b/record/drivers/record_ffmpeg.c +@@ -70,6 +70,7 @@ extern "C" { + #include "../../verbosity.h" + + #define FFMPEG3 (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)) ++#define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) + + struct ff_video_info + { +@@ -301,9 +302,15 @@ static bool ffmpeg_init_audio(ffmpeg_t *handle, const char *audio_resampler) + audio->codec = avcodec_alloc_context3(codec); + + audio->codec->codec_type = AVMEDIA_TYPE_AUDIO; ++#if HAVE_CH_LAYOUT ++ audio->codec->ch_layout = (param->channels > 1) ++ ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO ++ : (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; ++#else + audio->codec->channels = param->channels; + audio->codec->channel_layout = (param->channels > 1) + ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; ++#endif + + ffmpeg_audio_resolve_format(audio, codec); + ffmpeg_audio_resolve_sample_rate(handle, codec); +@@ -351,9 +358,15 @@ static bool ffmpeg_init_audio(ffmpeg_t *handle, const char *audio_resampler) + if (!audio->codec->frame_size) + audio->codec->frame_size = 1024; + ++#if HAVE_CH_LAYOUT ++ int nb_channels = audio->codec->ch_layout.nb_channels; ++#else ++ int nb_channels = audio->codec->channels; ++#endif ++ + audio->buffer = (uint8_t*)av_malloc( + audio->codec->frame_size * +- audio->codec->channels * ++ nb_channels * + audio->sample_size); + + if (!audio->buffer) +@@ -1342,20 +1355,30 @@ static bool encode_audio(ffmpeg_t *handle, bool dry) + + frame->nb_samples = handle->audio.frames_in_buffer; + frame->format = handle->audio.codec->sample_fmt; ++#if HAVE_CH_LAYOUT ++ av_channel_layout_copy(&frame->ch_layout, &handle->audio.codec->ch_layout); ++#else + frame->channel_layout = handle->audio.codec->channel_layout; ++#endif + frame->pts = handle->audio.frame_cnt; + + planarize_audio(handle); + ++#if HAVE_CH_LAYOUT ++ int nb_channels = handle->audio.codec->ch_layout.nb_channels; ++#else ++ int nb_channels = handle->audio.codec->channels; ++#endif ++ + samples_size = av_samples_get_buffer_size( + NULL, +- handle->audio.codec->channels, ++ nb_channels, + handle->audio.frames_in_buffer, + handle->audio.codec->sample_fmt, 0); + + av_frame_get_buffer(frame, 0); + avcodec_fill_audio_frame(frame, +- handle->audio.codec->channels, ++ nb_channels, + handle->audio.codec->sample_fmt, + handle->audio.is_planar + ? (uint8_t*)handle->audio.planar_buf : +-- +2.44.0 + diff --git a/retroarch.spec b/retroarch.spec index d27d663..0b57e7c 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -127,6 +127,10 @@ Source10: %{name}-enable-network-access.sh Source11: README.fedora.md +# Add compatibility with FFMPEG 7.0 +# https://github.com/libretro/RetroArch/pull/16499 +Patch1: 0001-Add-compatibility-with-FFMPEG-7.0.patch + BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 BuildRequires: glslang-devel @@ -296,6 +300,7 @@ database of ROMs that are known to be good copies. %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 %setup -n RetroArch-%{version} -q -D -T -a5 +%patch -P 1 -p 1 # Unbundling pushd deps From 1b7d008b5e2ae55544394acb462f2aec2621c476 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Fri, 31 May 2024 17:20:33 +0300 Subject: [PATCH 16/31] build: Update to 1.19.0 Signed-off-by: Artem Polishchuk --- .gitignore | 5 + 0001-Add-compatibility-with-FFMPEG-7.0.patch | 122 ------------------- retroarch.spec | 40 ++---- sources | 10 +- 4 files changed, 23 insertions(+), 154 deletions(-) delete mode 100644 0001-Add-compatibility-with-FFMPEG-7.0.patch diff --git a/.gitignore b/.gitignore index c7ad232..d4b9199 100644 --- a/.gitignore +++ b/.gitignore @@ -147,3 +147,8 @@ /libretro-database-1.18.0.tar.gz /retroarch-1.18.0.tar.gz /retroarch-joypad-autoconfig-1.18.0.tar.gz +/libretro-core-info-1.19.0.tar.gz +/libretro-database-1.19.0.tar.gz +/retroarch-1.19.0.tar.gz +/retroarch-assets-1.19.0.tar.gz +/retroarch-joypad-autoconfig-1.19.0.tar.gz diff --git a/0001-Add-compatibility-with-FFMPEG-7.0.patch b/0001-Add-compatibility-with-FFMPEG-7.0.patch deleted file mode 100644 index e676efb..0000000 --- a/0001-Add-compatibility-with-FFMPEG-7.0.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 4a1047151ceba2ff0c52fe1962bbf5df41506899 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Sun, 5 May 2024 12:43:48 +0200 -Subject: [PATCH] Add compatibility with FFMPEG 7.0 - -channel_layout has been replaced with ch_layout - -Fix: #16437 ---- - cores/libretro-ffmpeg/ffmpeg_core.c | 8 ++++++++ - record/drivers/record_ffmpeg.c | 29 ++++++++++++++++++++++++++--- - 2 files changed, 34 insertions(+), 3 deletions(-) - -diff --git a/cores/libretro-ffmpeg/ffmpeg_core.c b/cores/libretro-ffmpeg/ffmpeg_core.c -index c96b4f4c75..08bee25063 100644 ---- a/cores/libretro-ffmpeg/ffmpeg_core.c -+++ b/cores/libretro-ffmpeg/ffmpeg_core.c -@@ -65,6 +65,8 @@ extern "C" { - s ##_version() >> 8 & 0xFF, \ - s ##_version() & 0xFF); - -+#define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) -+ - static bool reset_triggered; - static bool libretro_supports_bitmasks = false; - -@@ -1726,8 +1728,14 @@ static void decode_thread(void *data) - { - swr[i] = swr_alloc(); - -+#if HAVE_CH_LAYOUT -+ AVChannelLayout out_chlayout = AV_CHANNEL_LAYOUT_STEREO; -+ av_opt_set_chlayout(swr[i], "in_chlayout", &actx[i]->ch_layout, 0); -+ av_opt_set_chlayout(swr[i], "out_chlayout", &out_chlayout, 0); -+#else - av_opt_set_int(swr[i], "in_channel_layout", actx[i]->channel_layout, 0); - av_opt_set_int(swr[i], "out_channel_layout", AV_CH_LAYOUT_STEREO, 0); -+#endif - av_opt_set_int(swr[i], "in_sample_rate", actx[i]->sample_rate, 0); - av_opt_set_int(swr[i], "out_sample_rate", media.sample_rate, 0); - av_opt_set_int(swr[i], "in_sample_fmt", actx[i]->sample_fmt, 0); -diff --git a/record/drivers/record_ffmpeg.c b/record/drivers/record_ffmpeg.c -index cb5114b945..0af5499872 100644 ---- a/record/drivers/record_ffmpeg.c -+++ b/record/drivers/record_ffmpeg.c -@@ -70,6 +70,7 @@ extern "C" { - #include "../../verbosity.h" - - #define FFMPEG3 (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)) -+#define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) - - struct ff_video_info - { -@@ -301,9 +302,15 @@ static bool ffmpeg_init_audio(ffmpeg_t *handle, const char *audio_resampler) - audio->codec = avcodec_alloc_context3(codec); - - audio->codec->codec_type = AVMEDIA_TYPE_AUDIO; -+#if HAVE_CH_LAYOUT -+ audio->codec->ch_layout = (param->channels > 1) -+ ? (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO -+ : (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO; -+#else - audio->codec->channels = param->channels; - audio->codec->channel_layout = (param->channels > 1) - ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; -+#endif - - ffmpeg_audio_resolve_format(audio, codec); - ffmpeg_audio_resolve_sample_rate(handle, codec); -@@ -351,9 +358,15 @@ static bool ffmpeg_init_audio(ffmpeg_t *handle, const char *audio_resampler) - if (!audio->codec->frame_size) - audio->codec->frame_size = 1024; - -+#if HAVE_CH_LAYOUT -+ int nb_channels = audio->codec->ch_layout.nb_channels; -+#else -+ int nb_channels = audio->codec->channels; -+#endif -+ - audio->buffer = (uint8_t*)av_malloc( - audio->codec->frame_size * -- audio->codec->channels * -+ nb_channels * - audio->sample_size); - - if (!audio->buffer) -@@ -1342,20 +1355,30 @@ static bool encode_audio(ffmpeg_t *handle, bool dry) - - frame->nb_samples = handle->audio.frames_in_buffer; - frame->format = handle->audio.codec->sample_fmt; -+#if HAVE_CH_LAYOUT -+ av_channel_layout_copy(&frame->ch_layout, &handle->audio.codec->ch_layout); -+#else - frame->channel_layout = handle->audio.codec->channel_layout; -+#endif - frame->pts = handle->audio.frame_cnt; - - planarize_audio(handle); - -+#if HAVE_CH_LAYOUT -+ int nb_channels = handle->audio.codec->ch_layout.nb_channels; -+#else -+ int nb_channels = handle->audio.codec->channels; -+#endif -+ - samples_size = av_samples_get_buffer_size( - NULL, -- handle->audio.codec->channels, -+ nb_channels, - handle->audio.frames_in_buffer, - handle->audio.codec->sample_fmt, 0); - - av_frame_get_buffer(frame, 0); - avcodec_fill_audio_frame(frame, -- handle->audio.codec->channels, -+ nb_channels, - handle->audio.codec->sample_fmt, - handle->audio.is_planar - ? (uint8_t*)handle->audio.planar_buf : --- -2.44.0 - diff --git a/retroarch.spec b/retroarch.spec index 0b57e7c..ba46404 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -21,16 +21,8 @@ ExcludeArch: s390x %global short_url https://github.com/libretro -# Assets -# * https://github.com/libretro/retroarch-assets -# * https://github.com/libretro/retroarch-assets/issues/414 -%global commit1 923b711dc6772a168d83dc8915e9260730fcf3a1 -%global date 20240102 -%global shortcommit1 %(c=%{commit1}; echo ${c:0:7}) - Name: %{appname}%{?p_suffix} -Version: 1.18.0 -%global version_addons 1.18.0 +Version: 1.19.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} @@ -100,7 +92,7 @@ URL: https://www.libretro.com/ Source0: %{short_url}/RetroArch/archive/v%{version}/%{appname}-%{version}.tar.gz # Assets -Source1: %{short_url}/%{appname}-assets/archive/%{commit1}/%{appname}-assets-%{date}git%{shortcommit1}.tar.gz +Source1: %{short_url}/%{appname}-assets/archive/v%{version}/%{appname}-assets-%{version}.tar.gz # AppData manifest # Upstreamed so should be easier now to maintain and automate updates for both @@ -113,13 +105,13 @@ Source1: %{short_url}/%{appname}-assets/archive/%{commit1}/%{appname}-ass %dnl Source2: https://raw.githubusercontent.com/flathub/%{uuid}/63af0e2449891e40c6ab6feae5d27845768b26fb/%{uuid}.appdata.xml # Libretro's core info -Source3: %{short_url}/libretro-core-info/archive/v%{version_addons}/libretro-core-info-%{version_addons}.tar.gz +Source3: %{short_url}/libretro-core-info/archive/v%{version}/libretro-core-info-%{version}.tar.gz # Joypad Autoconfig Files -Source4: %{short_url}/%{appname}-joypad-autoconfig/archive/v%{version_addons}/%{appname}-joypad-autoconfig-%{version_addons}.tar.gz +Source4: %{short_url}/%{appname}-joypad-autoconfig/archive/v%{version}/%{appname}-joypad-autoconfig-%{version}.tar.gz # Database files (cheatcode, content data, cursors) -Source5: %{short_url}/libretro-database/archive/v%{version_addons}/libretro-database-%{version_addons}.tar.gz +Source5: %{short_url}/libretro-database/archive/v%{version}/libretro-database-%{version}.tar.gz # Script for enabling network access which allows downloading more libretro # cores @@ -127,10 +119,6 @@ Source10: %{name}-enable-network-access.sh Source11: README.fedora.md -# Add compatibility with FFMPEG 7.0 -# https://github.com/libretro/RetroArch/pull/16499 -Patch1: 0001-Add-compatibility-with-FFMPEG-7.0.patch - BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 BuildRequires: glslang-devel @@ -300,7 +288,6 @@ database of ROMs that are known to be good copies. %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 %setup -n RetroArch-%{version} -q -D -T -a5 -%patch -P 1 -p 1 # Unbundling pushd deps @@ -373,8 +360,7 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ %make_build # Assets -%make_build -C %{appname}-assets-%{commit1} \ - GIT_VERSION=%{shortcommit1} +%make_build -C %{appname}-assets-%{version} # Audio filters %make_build -C libretro-common/audio/dsp_filters @@ -383,13 +369,13 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ %make_build -C gfx/video_filters # Libretro's core info -%make_build -C libretro-core-info-%{version_addons} +%make_build -C libretro-core-info-%{version} # Joypad Autoconfig Files -%make_build -C %{appname}-joypad-autoconfig-%{version_addons} +%make_build -C %{appname}-joypad-autoconfig-%{version} # Database files (cheatcode, content data, cursors) -%make_build -C libretro-database-%{version_addons} +%make_build -C libretro-database-%{version} %install @@ -398,7 +384,7 @@ rm %{buildroot}%{_docdir}/%{appname}/COPYING \ %{buildroot}%{_docdir}/%{appname}/README.md # Assets -%make_install -C %{appname}-assets-%{commit1} +%make_install -C %{appname}-assets-%{version} %if %{with freeworld} mv %{buildroot}%{_datadir}/libretro/assets/ \ %{buildroot}%{_datadir}/libretro/assets-freeworld/ @@ -424,14 +410,14 @@ rm %{buildroot}%{_datadir}/libretro/assets%{?p_suffix}/pkg/osd-font.ttf \ INSTALLDIR=%{_libdir}/retroarch/filters%{?p_suffix}/video # Libretro's core info -%make_install -C libretro-core-info-%{version_addons} \ +%make_install -C libretro-core-info-%{version} \ INSTALLDIR=%{_datadir}/libretro/info%{?p_suffix} # AppData manifest %dnl install -m 0644 -Dp %{SOURCE2} %{buildroot}%{_metainfodir}/%{uuid}.appdata.xml # Joypad Autoconfig Files -%make_install -C %{appname}-joypad-autoconfig-%{version_addons} \ +%make_install -C %{appname}-joypad-autoconfig-%{version} \ DOC_DIR=%{_datadir}/libretro/autoconfig/doc %if %{with freeworld} mv %{buildroot}%{_datadir}/libretro/autoconfig/ \ @@ -439,7 +425,7 @@ mv %{buildroot}%{_datadir}/libretro/autoconfig/ \ %endif # Database files (cheatcode, content data, cursors) -%make_install -C libretro-database-%{version_addons} \ +%make_install -C libretro-database-%{version} \ INSTALLDIR=%{_datadir}/libretro/database%{?p_suffix} # Rename desktop file to UUID for compatibility diff --git a/sources b/sources index b2800a9..2671772 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (libretro-core-info-1.18.0.tar.gz) = 832132b943d979ff24a6a60cb0bc339cbd684822b81d6384854bf171d8e73fb0a627eb8fba4354fa0de32d18fb810b753538d521c357e8c73753adda1e54e133 -SHA512 (libretro-database-1.18.0.tar.gz) = c4e793ffcb11680a7be4968d99daa5dcd547d028ddc2b698e74b2271c42c3e17c1b62dfaf1d7fcec9726be56d66c19dc4092d5c8f4fedb0753fad0cb0457b1fa -SHA512 (retroarch-1.18.0.tar.gz) = 3b685a4016e06bc69dfe015da91dc240f24672d30f1511f87ded90d1953b8aab60e54a81eb51cb4666676b2b8544ebdcf8497b5987a9683551c5f24ba1d86306 -SHA512 (retroarch-assets-20240102git923b711.tar.gz) = 0d436662985b43ab372975082eb9f5c08093a52c447d4c7ddf62bd61fa148534ecffa9e30f51086637d5682c37fc551462e1f0f111ce43662e521558c45dac68 -SHA512 (retroarch-joypad-autoconfig-1.18.0.tar.gz) = 69e0fc60ed381a932099a45f348e1ef8f31638766b540e8815cbb088f32a845f274095d8ac5786becd09bf5ec866218482bec354f363fe00adfa836eb4b306f0 +SHA512 (libretro-core-info-1.19.0.tar.gz) = 17cca258bb3460f2078fea0f2d64319a946aecf915475f61ca4b8eac3c882edfb96e38ae897285b4e1959ab06cf277e93130317ea13c469515948fd28fc942cd +SHA512 (libretro-database-1.19.0.tar.gz) = 1ca406d93670ef9bd8fb4fdd4a551c8cff4f6523aad3b5172af62b78cc4ae69ffddc911f7077aa93cdbd5860ed20e75d93a6271d48b6a1d24b63528cfbea753f +SHA512 (retroarch-1.19.0.tar.gz) = fe807570eedac5e5142e68a0c9d4e085be923e4914a3cfa9635ef644c02de2d8f9777ce7dfbdee0d8584fc4fa038f04adc1c9a55e3fe46903ba8ce05878b17a0 +SHA512 (retroarch-assets-1.19.0.tar.gz) = 4e02e4c5d9b546ad12bf10d54aae51b43f18879e603edc7f90f02907712fff78c8cfd23adaa8fbce6b054aea91254ad942fc4ade60daf925906ba85e9b6ec9fb +SHA512 (retroarch-joypad-autoconfig-1.19.0.tar.gz) = 2644fe7f40dcb94fb433ea23b7825193ddc1b81d9fe9841b0a3bcba9598aa72286ea07426657ec6de404efb64e2c42950d81f58861ffc9193a892e8bd4a59a6d From b20e425e2b7f211cb9a2a30a92ed00c9b9338e92 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Fri, 31 May 2024 17:24:30 +0300 Subject: [PATCH 17/31] docs: Update desc Signed-off-by: Artem Polishchuk --- retroarch.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/retroarch.spec b/retroarch.spec index ba46404..9e7830d 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -232,10 +232,8 @@ While RetroArch is the reference frontend for libretro, several other projects have used the libretro interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use. -To download and install more libretro cores please read included README.Fedora -file: - - $ xdg-open %{_docdir}/%{name}/README.fedora.md} +For how to download and install more libretro cores please read included README.fedora.md +file. %description %{_description} From 5045366c0f376a39062a97fb913c866b2e45d88f Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Fri, 31 May 2024 17:27:01 +0300 Subject: [PATCH 18/31] build: Add Packit config Signed-off-by: Artem Polishchuk --- .packit.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..0cb662d --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,27 @@ +copy_upstream_release_description: false +# downstream_package_name: foo # not mandatory +# upstream_package_name: Foo # not mandatory +upstream_project_url: https://github.com/libretro/RetroArch +upstream_tag_template: v{version} + +jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + # - fedora-development + # - fedora-all + + - job: koji_build + trigger: commit + allowed_pr_authors: ["packit", "atim"] + allowed_committers: ["packit", "atim"] + dist_git_branches: + - fedora-all + # - epel-9 + + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-branched + # - epel-9 From 1358879df4a2d134509e4a815d517671e57472d4 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Fri, 31 May 2024 17:30:35 +0300 Subject: [PATCH 19/31] build: Add } to desc Signed-off-by: Artem Polishchuk --- retroarch.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retroarch.spec b/retroarch.spec index 9e7830d..9a22c98 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -233,7 +233,7 @@ have used the libretro interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use. For how to download and install more libretro cores please read included README.fedora.md -file. +file.} %description %{_description} From c8d3e4c9095a268fd36b9cd569523e01b892a678 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 18:32:54 +0000 Subject: [PATCH 20/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From c11b52a92eca5ff5c7d64e23b7020702fa1e6b49 Mon Sep 17 00:00:00 2001 From: Morten Stevens Date: Tue, 3 Sep 2024 17:27:42 +0200 Subject: [PATCH 21/31] Rebuilt for mbedTLS 3.6.1 --- changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog b/changelog index d81bd64..2d278a8 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +* Tue Sep 03 2024 Morten Stevens - 1.15.0-7 +- Rebuilt for mbedTLS 3.6.1 + * Tue Jun 27 2023 Artem Polishchuk - 1.15.0-6 - build: ExcludeArch: s390x From 29b630c7b62c16185a52f016e30c338db71f75ec Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Mon, 23 Sep 2024 17:01:16 +0200 Subject: [PATCH 22/31] Rebuild for ffmpeg 7 From f5dcafa5703b5b3fcf2c81a6f6e0063b78c76cbe Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 22:24:43 +0000 Subject: [PATCH 23/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 4906717aa9d3f7582073e927b4504a81ed9f1e2f Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 19 Mar 2025 17:38:22 +0000 Subject: [PATCH 24/31] Rebuild for mbedtls 3.6 From d48557cd0583f593edd28ade0154ae4684415c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 24 Mar 2025 17:14:23 +0000 Subject: [PATCH 25/31] switch to bundled mbedtls 2.x for Fedora >= 42 retroarch is not compatible with mbedtls 3.x (yet?) and the bundled bearssl won't build on ppc64le --- retroarch.spec | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/retroarch.spec b/retroarch.spec index 9a22c98..1335577 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -124,7 +124,9 @@ BuildRequires: gcc-c++ >= 7 BuildRequires: glslang-devel BuildRequires: libappstream-glib BuildRequires: make +%if 0%{?fedora} < 42 BuildRequires: mbedtls-devel +%endif BuildRequires: mesa-libEGL-devel BuildRequires: spirv-tools-libs BuildRequires: systemd-devel @@ -222,6 +224,10 @@ Provides: bundled(rcheevos) = 10.7 Provides: bundled(SPIRV-Cross) Provides: bundled(stb) +%if 0%{?fedora} >= 42 +Provides: bundled(mbedtls) = 2.5.1 +%endif + %global _description %{expand: libretro is an API that exposes generic audio/video/input callbacks. A frontend for libretro (such as RetroArch) handles video output, audio output, input and @@ -301,8 +307,10 @@ rm -rf \ %{nil} popd +%if 0%{?fedora} < 42 # * Not part of the 'mbedtls' upstream source find deps/mbedtls/ ! -name 'cacert.h' -type f -exec rm -f {} + +%endif # Use system assets, libretro cores, libretro's core info and audio/video, # filters, database files (cheatcode, content data, cursors) @@ -348,7 +356,11 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ ./configure \ --prefix=%{_prefix} \ --disable-builtinflac \ +%if 0%{?fedora} < 42 --disable-builtinmbedtls \ +%else + --enable-builtinmbedtls \ +%endif --disable-builtinzlib \ --enable-dbus \ --enable-libdecor \ From 8b4270569b21505bb6d3442b7392bdd1b34b839f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 8 Apr 2025 06:15:16 -0400 Subject: [PATCH 26/31] Unbundle three of the four bundled stb libraries --- retroarch.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/retroarch.spec b/retroarch.spec index 1335577..3bef799 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -131,6 +131,11 @@ BuildRequires: mesa-libEGL-devel BuildRequires: spirv-tools-libs BuildRequires: systemd-devel +# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_header_only_libraries +BuildRequires: stb_image-static +BuildRequires: stb_rect_pack-static +BuildRequires: stb_truetype-static + BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(caca) BuildRequires: pkgconfig(dbus-1) @@ -222,7 +227,8 @@ Provides: bundled(lua) = 5.3.6 Provides: bundled(rcheevos) = 10.7 Provides: bundled(SPIRV-Cross) -Provides: bundled(stb) +# Unbundling this in the manner of the other stb libraries does not work. +Provides: bundled(stb_vorbis) %if 0%{?fedora} >= 42 Provides: bundled(mbedtls) = 2.5.1 @@ -306,6 +312,10 @@ rm -rf \ wayland-protocols \ %{nil} popd +for lib in image rect_pack truetype +do + ln -svf /usr/include/stb/stb_${lib}.h deps/stb/stb_${lib}.h +done %if 0%{?fedora} < 42 # * Not part of the 'mbedtls' upstream source From 08651437574680ddf12dc46d005acb73ac7d94e1 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 27 May 2025 17:39:48 +0200 Subject: [PATCH 27/31] Rebuilt for flac 1.5.0 From fd81acf7626aed3cad0ef7a81cb295808c3c2475 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 11:56:33 +0000 Subject: [PATCH 28/31] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 5c0d919eddd9b5025cb0b9d02f6877c0c96c821a Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Wed, 15 Oct 2025 10:36:53 +0200 Subject: [PATCH 29/31] Rebuilt for FFmpeg 8 From e782a2bb6080df95636d8fc9c8ddebc8b59796fb Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Wed, 15 Oct 2025 10:36:53 +0200 Subject: [PATCH 30/31] Fixed build with FFmpeg 8 Backported upstream patch. --- retroarch-ffmpeg8.patch | 85 +++++++++++++++++++++++++++++++++++++++++ retroarch.spec | 3 ++ 2 files changed, 88 insertions(+) create mode 100644 retroarch-ffmpeg8.patch diff --git a/retroarch-ffmpeg8.patch b/retroarch-ffmpeg8.patch new file mode 100644 index 0000000..0d64fb1 --- /dev/null +++ b/retroarch-ffmpeg8.patch @@ -0,0 +1,85 @@ +diff -up RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c.ffmpeg8 RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c +--- RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c.ffmpeg8 2024-05-30 05:03:48.000000000 +0200 ++++ RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c 2025-10-23 17:12:03.063697264 +0200 +@@ -99,6 +99,9 @@ static tpool_t *tpool; + + #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \ + (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100))) ++#ifndef FFMPEG8 ++#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) ++#endif + + #if ENABLE_HW_ACCEL + static enum AVHWDeviceType hw_decoder; +@@ -2088,17 +2091,28 @@ void CORE_PREFIX(retro_unload_game)(void + + for (i = 0; i < MAX_STREAMS; i++) + { ++#if FFMPEG8 ++ if (sctx[i]) ++ avcodec_free_context(&sctx[i]); ++ if (actx[i]) ++ avcodec_free_context(&actx[i]); ++#else + if (sctx[i]) + avcodec_close(sctx[i]); + if (actx[i]) + avcodec_close(actx[i]); ++#endif + sctx[i] = NULL; + actx[i] = NULL; + } + + if (vctx) + { ++#if FFMPEG8 ++ avcodec_free_context(&vctx); ++#else + avcodec_close(vctx); ++#endif + vctx = NULL; + } + +diff -up RetroArch-1.19.0/record/drivers/record_ffmpeg.c.ffmpeg8 RetroArch-1.19.0/record/drivers/record_ffmpeg.c +--- RetroArch-1.19.0/record/drivers/record_ffmpeg.c.ffmpeg8 2024-05-30 05:03:48.000000000 +0200 ++++ RetroArch-1.19.0/record/drivers/record_ffmpeg.c 2025-10-23 17:11:17.419250148 +0200 +@@ -70,6 +70,15 @@ extern "C" { + #include "../../verbosity.h" + + #define FFMPEG3 (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)) ++ ++#ifndef FFMPEG8 ++#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) ++#endif ++ ++#ifndef AV_INPUT_BUFFER_MIN_SIZE ++#define AV_INPUT_BUFFER_MIN_SIZE 16384 ++#endif ++ + #define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) + + struct ff_video_info +@@ -949,7 +958,11 @@ static void ffmpeg_free(void *data) + + if (handle->audio.codec) + { ++#if FFMPEG8 ++ avcodec_free_context(&handle->audio.codec); ++#else + avcodec_close(handle->audio.codec); ++#endif + av_free(handle->audio.codec); + } + +@@ -957,7 +970,11 @@ static void ffmpeg_free(void *data) + + if (handle->video.codec) + { ++#if FFMPEG8 ++ avcodec_free_context(&handle->video.codec); ++#else + avcodec_close(handle->video.codec); ++#endif + av_free(handle->video.codec); + } + diff --git a/retroarch.spec b/retroarch.spec index 3bef799..e7f480e 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -118,6 +118,8 @@ Source5: %{short_url}/libretro-database/archive/v%{version}/libretro-data Source10: %{name}-enable-network-access.sh Source11: README.fedora.md +# https://github.com/libretro/RetroArch/commit/21776a2e59f5f5899ff2198c0df25a95b5020012 +Patch0: %{name}-ffmpeg8.patch BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 @@ -298,6 +300,7 @@ database of ROMs that are known to be good copies. %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 %setup -n RetroArch-%{version} -q -D -T -a5 +%patch -P0 -p1 -b .ffmpeg8 # Unbundling pushd deps From 08cf039f9889f017c1674ec1812282b932243273 Mon Sep 17 00:00:00 2001 From: Artem Polishchuk Date: Thu, 18 Dec 2025 06:57:18 +0300 Subject: [PATCH 31/31] Update to 1.22.0 Signed-off-by: Artem Polishchuk --- .gitignore | 5 +++ retroarch-ffmpeg8.patch | 85 ----------------------------------------- retroarch.spec | 42 +++++++------------- sources | 10 ++--- 4 files changed, 23 insertions(+), 119 deletions(-) delete mode 100644 retroarch-ffmpeg8.patch diff --git a/.gitignore b/.gitignore index d4b9199..1df90dd 100644 --- a/.gitignore +++ b/.gitignore @@ -152,3 +152,8 @@ /retroarch-1.19.0.tar.gz /retroarch-assets-1.19.0.tar.gz /retroarch-joypad-autoconfig-1.19.0.tar.gz +/libretro-core-info-1.22.0.tar.gz +/libretro-database-1.22.0.tar.gz +/retroarch-1.22.0.tar.gz +/retroarch-assets-1.22.0.tar.gz +/retroarch-joypad-autoconfig-1.22.0.tar.gz diff --git a/retroarch-ffmpeg8.patch b/retroarch-ffmpeg8.patch deleted file mode 100644 index 0d64fb1..0000000 --- a/retroarch-ffmpeg8.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -up RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c.ffmpeg8 RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c ---- RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c.ffmpeg8 2024-05-30 05:03:48.000000000 +0200 -+++ RetroArch-1.19.0/cores/libretro-ffmpeg/ffmpeg_core.c 2025-10-23 17:12:03.063697264 +0200 -@@ -99,6 +99,9 @@ static tpool_t *tpool; - - #define FFMPEG3 ((LIBAVUTIL_VERSION_INT < (56, 6, 100)) || \ - (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100))) -+#ifndef FFMPEG8 -+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) -+#endif - - #if ENABLE_HW_ACCEL - static enum AVHWDeviceType hw_decoder; -@@ -2088,17 +2091,28 @@ void CORE_PREFIX(retro_unload_game)(void - - for (i = 0; i < MAX_STREAMS; i++) - { -+#if FFMPEG8 -+ if (sctx[i]) -+ avcodec_free_context(&sctx[i]); -+ if (actx[i]) -+ avcodec_free_context(&actx[i]); -+#else - if (sctx[i]) - avcodec_close(sctx[i]); - if (actx[i]) - avcodec_close(actx[i]); -+#endif - sctx[i] = NULL; - actx[i] = NULL; - } - - if (vctx) - { -+#if FFMPEG8 -+ avcodec_free_context(&vctx); -+#else - avcodec_close(vctx); -+#endif - vctx = NULL; - } - -diff -up RetroArch-1.19.0/record/drivers/record_ffmpeg.c.ffmpeg8 RetroArch-1.19.0/record/drivers/record_ffmpeg.c ---- RetroArch-1.19.0/record/drivers/record_ffmpeg.c.ffmpeg8 2024-05-30 05:03:48.000000000 +0200 -+++ RetroArch-1.19.0/record/drivers/record_ffmpeg.c 2025-10-23 17:11:17.419250148 +0200 -@@ -70,6 +70,15 @@ extern "C" { - #include "../../verbosity.h" - - #define FFMPEG3 (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 10, 100)) -+ -+#ifndef FFMPEG8 -+#define FFMPEG8 (LIBAVCODEC_VERSION_MAJOR >= 62) -+#endif -+ -+#ifndef AV_INPUT_BUFFER_MIN_SIZE -+#define AV_INPUT_BUFFER_MIN_SIZE 16384 -+#endif -+ - #define HAVE_CH_LAYOUT (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100)) - - struct ff_video_info -@@ -949,7 +958,11 @@ static void ffmpeg_free(void *data) - - if (handle->audio.codec) - { -+#if FFMPEG8 -+ avcodec_free_context(&handle->audio.codec); -+#else - avcodec_close(handle->audio.codec); -+#endif - av_free(handle->audio.codec); - } - -@@ -957,7 +970,11 @@ static void ffmpeg_free(void *data) - - if (handle->video.codec) - { -+#if FFMPEG8 -+ avcodec_free_context(&handle->video.codec); -+#else - avcodec_close(handle->video.codec); -+#endif - av_free(handle->video.codec); - } - diff --git a/retroarch.spec b/retroarch.spec index e7f480e..8b7c4ba 100644 --- a/retroarch.spec +++ b/retroarch.spec @@ -22,7 +22,7 @@ ExcludeArch: s390x %global short_url https://github.com/libretro Name: %{appname}%{?p_suffix} -Version: 1.19.0 +Version: 1.22.0 Release: %autorelease Summary: Cross-platform, sophisticated frontend for the libretro API. %{?sum_suffix} @@ -118,17 +118,13 @@ Source5: %{short_url}/libretro-database/archive/v%{version}/libretro-data Source10: %{name}-enable-network-access.sh Source11: README.fedora.md -# https://github.com/libretro/RetroArch/commit/21776a2e59f5f5899ff2198c0df25a95b5020012 -Patch0: %{name}-ffmpeg8.patch BuildRequires: desktop-file-utils BuildRequires: gcc-c++ >= 7 BuildRequires: glslang-devel BuildRequires: libappstream-glib BuildRequires: make -%if 0%{?fedora} < 42 BuildRequires: mbedtls-devel -%endif BuildRequires: mesa-libEGL-devel BuildRequires: spirv-tools-libs BuildRequires: systemd-devel @@ -141,7 +137,8 @@ BuildRequires: stb_truetype-static BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(caca) BuildRequires: pkgconfig(dbus-1) -BuildRequires: pkgconfig(flac) +# Since Flac 1.5.0 update RetroArch won't compile +#BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(gl) @@ -218,7 +215,7 @@ Recommends: libretro-stella2014 # * Dummy for future %endif -Provides: bundled(7zip) = 9.20 +Provides: bundled(7zip) = 19.00 Provides: bundled(discord-rpc) Provides: bundled(dr) Provides: bundled(glslang) @@ -227,15 +224,12 @@ Provides: bundled(ibxm) # https://github.com/libretro/RetroArch/issues/8153 Provides: bundled(lua) = 5.3.6 -Provides: bundled(rcheevos) = 10.7 +Provides: bundled(flac) = 1.3.2 +Provides: bundled(rcheevos) = 12.1 Provides: bundled(SPIRV-Cross) # Unbundling this in the manner of the other stb libraries does not work. Provides: bundled(stb_vorbis) -%if 0%{?fedora} >= 42 -Provides: bundled(mbedtls) = 2.5.1 -%endif - %global _description %{expand: libretro is an API that exposes generic audio/video/input callbacks. A frontend for libretro (such as RetroArch) handles video output, audio output, input and @@ -246,8 +240,8 @@ While RetroArch is the reference frontend for libretro, several other projects have used the libretro interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use. -For how to download and install more libretro cores please read included README.fedora.md -file.} +For how to download and install more libretro cores please read included +README.fedora.md file.} %description %{_description} @@ -290,8 +284,8 @@ Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} %description database RetroArch incoporates a ROM scanning system to automatically produce playlists. -Each ROM that is scanned by the playlist generator is checked against a -database of ROMs that are known to be good copies. +Each ROM that is scanned by the playlist generator is checked against a database +of ROMs that are known to be good copies. %prep @@ -300,13 +294,13 @@ database of ROMs that are known to be good copies. %setup -n RetroArch-%{version} -q -D -T -a3 %setup -n RetroArch-%{version} -q -D -T -a4 %setup -n RetroArch-%{version} -q -D -T -a5 -%patch -P0 -p1 -b .ffmpeg8 # Unbundling pushd deps rm -rf \ libfat \ - libFLAC \ +%dnl Since Flac 1.5.0 update RetroArch won't compile \ +%dnl libFLAC \ libiosuhax \ libvita2d \ libz \ @@ -320,10 +314,8 @@ do ln -svf /usr/include/stb/stb_${lib}.h deps/stb/stb_${lib}.h done -%if 0%{?fedora} < 42 # * Not part of the 'mbedtls' upstream source find deps/mbedtls/ ! -name 'cacert.h' -type f -exec rm -f {} + -%endif # Use system assets, libretro cores, libretro's core info and audio/video, # filters, database files (cheatcode, content data, cursors) @@ -368,12 +360,8 @@ sed -e 's|retroarch.cfg|%{name}.cfg|g' \ %build ./configure \ --prefix=%{_prefix} \ - --disable-builtinflac \ -%if 0%{?fedora} < 42 +%dnl --disable-builtinflac \ --disable-builtinmbedtls \ -%else - --enable-builtinmbedtls \ -%endif --disable-builtinzlib \ --enable-dbus \ --enable-libdecor \ @@ -451,10 +439,6 @@ mv %{buildroot}%{_datadir}/libretro/autoconfig/ \ %make_install -C libretro-database-%{version} \ INSTALLDIR=%{_datadir}/libretro/database%{?p_suffix} -# Rename desktop file to UUID for compatibility -mv %{buildroot}%{_datadir}/applications/%{appname}.desktop \ - %{buildroot}%{_datadir}/applications/%{uuid}.desktop - %if %{with freeworld} # Rename binary, desktop file, appdata manifest, manpage and config file mv %{buildroot}%{_bindir}/%{appname} \ diff --git a/sources b/sources index 2671772..19cfff3 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -SHA512 (libretro-core-info-1.19.0.tar.gz) = 17cca258bb3460f2078fea0f2d64319a946aecf915475f61ca4b8eac3c882edfb96e38ae897285b4e1959ab06cf277e93130317ea13c469515948fd28fc942cd -SHA512 (libretro-database-1.19.0.tar.gz) = 1ca406d93670ef9bd8fb4fdd4a551c8cff4f6523aad3b5172af62b78cc4ae69ffddc911f7077aa93cdbd5860ed20e75d93a6271d48b6a1d24b63528cfbea753f -SHA512 (retroarch-1.19.0.tar.gz) = fe807570eedac5e5142e68a0c9d4e085be923e4914a3cfa9635ef644c02de2d8f9777ce7dfbdee0d8584fc4fa038f04adc1c9a55e3fe46903ba8ce05878b17a0 -SHA512 (retroarch-assets-1.19.0.tar.gz) = 4e02e4c5d9b546ad12bf10d54aae51b43f18879e603edc7f90f02907712fff78c8cfd23adaa8fbce6b054aea91254ad942fc4ade60daf925906ba85e9b6ec9fb -SHA512 (retroarch-joypad-autoconfig-1.19.0.tar.gz) = 2644fe7f40dcb94fb433ea23b7825193ddc1b81d9fe9841b0a3bcba9598aa72286ea07426657ec6de404efb64e2c42950d81f58861ffc9193a892e8bd4a59a6d +SHA512 (libretro-core-info-1.22.0.tar.gz) = a9c4b471b77b09fcaa1d46f4fae9d56a07e30ef15665f1b067d53a28b5e14c2b83120dee8ddaa1ec9ba31bab198fb748f76d5d4990888f9141e774e256ec6e2d +SHA512 (libretro-database-1.22.0.tar.gz) = 832f020182d4371e88ddb817c9214f7292265a82e51e53e9a1645217f1de801ad67c2b05cd19e17b70732f79e3ee3d33e82e7045e5bda6d3d81414a677b3fcb5 +SHA512 (retroarch-1.22.0.tar.gz) = 99a2c1bf4d74090c357431e78968012187ec47040b2b22c5f5d155d9e1713583d3160b2fcd4b872e177f706a87cbc660efb37766181862865f8f3a437e3b92f5 +SHA512 (retroarch-assets-1.22.0.tar.gz) = 930683106b777745a799ce6a45aac82e09164946a788f820aed27856d1a3fcf39f26045edc84706f047afe654bd3ba265d84dcaf143def194258606c4ff656be +SHA512 (retroarch-joypad-autoconfig-1.22.0.tar.gz) = 1b59694d3520a516f145d3e48d12b42267591cd59f44ca0d6b1a3532d6c195884e2d4345a69326bf6fe75bf53b4edb077cfe57a4701e3fe72f04e61f66a0d317