[PATCH 0/2] Fix broken Retroarch while respecting FSDG

  • Open
  • quality assurance status badge
Details
3 participants
  • Andrew Wong
  • ???
  • Andrew Wong
Owner
unassigned
Submitted by
Andrew Wong
Severity
normal
A
A
Andrew Wong wrote on 25 Dec 2024 22:29
(address . guix-patches@gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
20241225213801.8020-1-wongandj@icloud.com
Retroarch's ability to download "cores" (libraries) to userspace was removed
recently because of non-free cores being available. However, I have found a
more sensible solution which enables the free-licensed cores (which make up
the majority of the list) to still be downloaded. All that is needed is for
the entries for nonfree cores in the retroarch-core-info package to be
removed; without these entries, Retroarch cannot download or update the
nonfree cores, and the FSDG are respected while keeping the software usable.

Andrew Wong (2):
gnu: retroarch-core-info: Remove non-free core listings.
gnu: retroarch-minimal: Enable core downloading with limited core
info.

gnu/packages/emulators.scm | 59 +++++++++++++++++++++++++++-----------
1 file changed, 42 insertions(+), 17 deletions(-)

--
2.46.0
A
A
Andrew Wong wrote on 25 Dec 2024 22:39
[PATCH 1/2] gnu: retroarch-core-info: Remove non-free core listings.
(address . 75101@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
20241225213931.8523-1-wongandj@icloud.com
Change-Id: Ic6f656dac299080eaa097df5375dd23b96966cfb
---
gnu/packages/emulators.scm | 54 +++++++++++++++++++++++++++++---------
1 file changed, 42 insertions(+), 12 deletions(-)

Toggle diff (71 lines)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index ab3f28cfae..75d924253c 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1584,22 +1584,52 @@ (define-public retroarch-core-info
(package
(name "retroarch-core-info")
(version (git-version "1.19.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/libretro/libretro-core-info")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "11xpy3zhy2smp4a70fc0r1b76mvmjyabkaaipifsxm3j25drki5z"))))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libretro/libretro-core-info")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11xpy3zhy2smp4a70fc0r1b76mvmjyabkaaipifsxm3j25drki5z"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (for-each delete-file
+ ;; incompatibly-licensed cores are
+ ;; removed. When updating check the "license"
+ ;; line of each file.
+ '("duckstation_libretro.info"
+ "dinothawr_libretro.info"
+ "chimerasnes_libretro.info"
+ "cannonball_libretro.info"
+ "fmsx_libretro.info"
+ "fbalpha2012_cps3_libretro.info"
+ "fbalpha2012_cps2_libretro.info"
+ "fbalpha2012_cps1_libretro.info"
+ "mame2003_plus_libretro.info"
+ "fbneo_libretro.info"
+ "fbalpha2012_neogeo_libretro.info"
+ "fbalpha2012_libretro.info"
+ "mu_libretro.info"
+ "genesis_plus_gx_wide_libretro.info"
+ "genesis_plus_gx_libretro.info"
+ "opera_libretro.info"
+ "snes9x2005_plus_libretro.info"
+ "snes9x_libretro.info"
+ "px68k_libretro.info"
+ "snes9x2005_libretro.info"
+ "snes9x2010_libretro.info"
+ "snes9x2002_libretro.info"))))))
(build-system copy-build-system)
(arguments
- (list #:install-plan #~'(("." "lib/libretro/"
- #:include-regexp ("\\.info$")))))
+ (list
+ #:install-plan #~'(("." "lib/libretro/"
+ #:include-regexp ("\\.info$")))))
(home-page "https://github.com/libretro/libretro-core-info")
(synopsis "Libretro core info files")
- (description "This is a versioned snapshot of the files containing
+ (description
+ "This is a versioned snapshot of the files containing
metadata about each known libretro core. The snapshot is taken from the
@url{https://github.com/libretro/libretro-super, libretro-super} repository.")
(license license:expat))))
--
2.46.0
A
A
Andrew Wong wrote on 25 Dec 2024 22:39
[PATCH 2/2] gnu: retroarch-minimal: Enable core downloading with limited core info.
(address . 75101@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
20241225213931.8523-2-wongandj@icloud.com
Change-Id: I5087bed9c7fd1747df6dd7debc7e606ab3aeb73c
---
gnu/packages/emulators.scm | 5 -----
1 file changed, 5 deletions(-)

Toggle diff (18 lines)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 75d924253c..2060b14ec3 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -2441,11 +2441,6 @@ (define (directory? x)
;; D-Bus support is required for 'suspend screensaver' option
;; to work.
"--enable-dbus"
- ;; Non-free software are available through the core updater,
- ;; disable it. See <https://issues.guix.gnu.org/38360>.
- "--disable-update_cores"
- "--disable-update_core_info"
- "--disable-online_updater"
;; The assets are provided via the `retroarch-assets' package.
"--disable-update_assets"
"--disable-builtinmbedtls"
--
2.46.0
?
Re: [bug#75101] [PATCH 0/2] Fix broken Retroarch while respecting FSDG
(name . Andrew Wong)(address . wongandj@icloud.com)(address . 75101@debbugs.gnu.org)
87o70s709r.fsf@envs.net
Andrew Wong <wongandj@icloud.com> writes:

Toggle quote (8 lines)
> Retroarch's ability to download "cores" (libraries) to userspace was removed
> recently because of non-free cores being available. However, I have found a
> more sensible solution which enables the free-licensed cores (which make up
> the majority of the list) to still be downloaded. All that is needed is for
> the entries for nonfree cores in the retroarch-core-info package to be
> removed; without these entries, Retroarch cannot download or update the
> nonfree cores, and the FSDG are respected while keeping the software usable.

Hello, thanks for the contributions.
Toggle quote (3 lines)
>
> Andrew Wong (2):
> gnu: retroarch-core-info: Remove non-free core listings.
LGTM!

Toggle quote (1 lines)
> gnu: retroarch-minimal: Enable core downloading with limited core info.
Despite FSDG requirements, I think downloading those cores / shared
libraries from internet is not a good idea, as there maybe compability
issues between their build environment and Guix:

- if they build cores against glibc newer than our retroarch.
- if the cores shared linked to other libraries than our retroarch.

And we have more trust and transparent with our packaged cores,
so I think we should keep cores downloading disable, also once we
package them there is no need to download.
A
A
Andrew Wong wrote on 4 Jan 03:02 +0100
[bug#75101] [PATCH 0/2] Fix broken Retroarch while respecting FSDG
fba4555b-0df8-4355-87ad-7377376b321b@gmail.com
??? <iyzsong@env.net> writes:


> Despite FSDG requirements, I think downloading those cores / shared
> libraries from internet is not a good idea, as there maybe compability
> issues between their build environment and Guix

Unfortunately, packaging all the Retroarch cores is quite non-trivial,
as they do not have a consistent build system or source tree layout;
many of their upstream repositories are even lacking version numbers and
directions for building.

While I think we should still keep packaging the cores, I also think it
is better to offer imperfect functionality over almost none at all in
this case, since it is non-essential games software, and the cores'
functionality is entirely contained in the application; them not working
perfectly won't crash servers or poison scientific data, but it may help
retain a lot of users.
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75101@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75101
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch