Subject: [bug#73522] [PATCH games-team 06/14] gnu: retroarch: Clean-up source from extraneous bundled libraries.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 06 Oct 2024 08:55:32 +0200

Am Sonntag, dem 06.10.2024 um 14:32 +0900 schrieb Maxim Cournoyer:
> * gnu/packages/emulators.scm (retroarch) [source]: Add snippet
> removing
> unnecessary sources.
> [license]: Add licenses of bundled sources.
> 
> Change-Id: I824391424bf0fa2ec3888f02535b94dea3021378
> ---
> 
>  gnu/packages/emulators.scm | 45
> +++++++++++++++++++++++++++++++++++++-
>  1 file changed, 44 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
> index afe11caf7f..e6cf365e26 100644
> --- a/gnu/packages/emulators.scm
> +++ b/gnu/packages/emulators.scm
> @@ -1587,6 +1587,43 @@ (define-public retroarch
>         (uri (git-reference
>               (url "https://github.com/libretro/RetroArch")
>               (commit (string-append "v" version))))
> +       (modules '((guix build utils)
> +                  (ice-9 ftw)
> +                  (srfi srfi-26)))
> +       (snippet
> +        #~(begin
> +            ;; XXX: 'delete-all-but' is copied from the turbovnc
> package.
> +            (define (delete-all-but directory . preserve)
> +              (define (directory? x)
> +                (and=> (stat x #f)
> +                       (compose (cut eq? 'directory <>) stat:type)))
> +              (with-directory-excursion directory
> +                (let* ((pred
> +                        (negate (cut member <> (append '("." "..")
> preserve))))
> +                       (items (scandir "." pred)))
> +                  (for-each (lambda (item)
> +                              (if (directory? item)
> +                                  (delete-file-recursively item)
> +                                  (delete-file item)))
> +                            items))))
> +            ;; Remove as much bundled sources as possible, shaving
> off about
> +            ;; 17 MiB.
> +            (delete-all-but "deps"
> +                            "7zip"
> +                            "SPIRV-Cross"   ;used in
> slang_reflection.cpp
Can we unvendor spirv-cross?
> +                            "discord-rpc"   ;used in
> network/discord.h
Can we drop this discord thing?
> +                            "dr"            ;used in audio_mixer.c
> +                            "feralgamemode" ;used in platform_unix.c
> +                            "ibxm"          ;used in audio_mixer.c
> +                            "mbedtls"       ;further refined below
> +                            "rcheevos"      ;used in menu_setting.c
> +                            "stb"           ;used in audio_mixer.c
> +                            "switchres"     ;used in
> video_crt_switch.c
> +                            "xdelta3"       ;used in task_patch.c
> +                            "yxml")         ;used in rxml.c
> +            ;; This is an old root certificate used in
> net_socket_ssl_mbed.c,
> +            ;; not actually from mbedtls.
> +            (delete-all-but "deps/mbedtls" "cacert.h")))
>         (file-name (git-file-name name version))
>         (sha256
>          (base32
> "15nh4y4vpf4n1ryhiy4fwvzn5xz5idzfzn9fsi5v9hzp25vbjmrm"))))
> @@ -1669,7 +1706,13 @@ (define-public retroarch
>  straight into any libretro-compatible frontend.  RetroArch is the
> official
>  reference frontend for the libretro API, currently used by most as a
> modular
>  multi-system game/emulator system.")
> -    (license license:gpl3+)))
> +    (license (list license:gpl3+         ;for RetroArch itself
> +                   license:asl2.0        ;SPIRV-Cross, xdelta3
> +                   license:public-domain ;7zip, stb
> +                   license:expat         ;discord-rpc, rcheevos,
> yxml
> +                   license:unlicense     ;dr
> +                   license:bsd-3         ;feragamemode, ibxm
> +                   license:gpl2+))))    ;switchres
Cheers