Subject: Re: [bug#39263] [PATCH 2/2] gnu: godot: Unbundle some dependencies.

From: Christopher Baines <[email-masked]>
Date: Sat, 25 Jan 2020 09:18:33 +0000

Timotej Lazar <[email-masked]> writes:

> * gnu/packages/game-development.scm (godot)[inputs]: Add bullet, pcre2, zstd.
> [arguments](configure-flags): Use system libraries for the above.
> [source](snippet): Remove bundled copies.
> ---

Generally, this is good :)

>  gnu/packages/game-development.scm | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
> index 79e3f6dc6c..9ded71375f 100644
> --- a/gnu/packages/game-development.scm
> +++ b/gnu/packages/game-development.scm
> @@ -78,6 +78,7 @@
>    #:use-module (gnu packages multiprecision)
>    #:use-module (gnu packages music)
>    #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages pcre)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages pulseaudio)
>    #:use-module (gnu packages python)
> @@ -1521,7 +1522,8 @@ games.")
>                    ;; of these may be modified; see "thirdparty/README.md".
>                    (with-directory-excursion "thirdparty"
>                      (for-each delete-file-recursively
> -                              '("freetype"
> +                              '("bullet"
> +                                "freetype"
>                                  "libogg"
>                                  "libpng"
>                                  "libtheora"
> @@ -1529,7 +1531,9 @@ games.")
>                                  "libvpx"
>                                  "libwebp"
>                                  "opus"
> -                                "zlib"))
> +                                "pcre2"
> +                                "zlib"
> +                                "zstd"))
>                      #t)))))

One thought I had here is that it would be more rigorous to have a list
of directories that are kept, and anything not on the list is
deleted. That way it's harder for new thirdparty dependencies to sneak
in. Not something that necessarily needs changing now though.

>      (build-system scons-build-system)
>      (arguments
> @@ -1541,6 +1545,7 @@ games.")
>                                 '())
>                             ;; Avoid using many of the bundled libs.
>                             ;; Note: These options can be found in the SConstruct file.
> +                           "builtin_bullet=no"
>                             "builtin_freetype=no"
>                             "builtin_glew=no"
>                             "builtin_libmpdec=no"
> @@ -1551,7 +1556,9 @@ games.")
>                             "builtin_libvpx=no"
>                             "builtin_libwebp=no"
>                             "builtin_opus=no"
> -                           "builtin_zlib=no")
> +                           "builtin_pcre2=no"
> +                           "builtin_zlib=no"
> +                           "builtin_zstd=no")
>         #:tests? #f ; There are no tests
>         #:phases
>         (modify-phases %standard-phases
> @@ -1598,6 +1605,7 @@ games.")
>                 #t))))))
>      (native-inputs `(("pkg-config" ,pkg-config)))
>      (inputs `(("alsa-lib" ,alsa-lib)
> +              ("bullet" ,bullet)
>                ("freetype" ,freetype)
>                ("glew" ,glew)
>                ("glu" ,glu)
> @@ -1612,7 +1620,9 @@ games.")
>                ("libxrandr" ,libxrandr)
>                ("mesa" ,mesa)
>                ("opusfile" ,opusfile)
> -              ("pulseaudio" ,pulseaudio)))
> +              ("pcre2" ,pcre2)
> +              ("pulseaudio" ,pulseaudio)
> +              ("zstd" ,zstd "lib")))
>      (home-page "https://godotengine.org/")
>      (synopsis "Advanced 2D and 3D game engine")
>      (description