Subject: [bug#39263] [PATCH v2 3/3] gnu: godot: List which third party files to keep.

From: Timotej Lazar <[email-masked]>
Date: Tue, 28 Jan 2020 19:25:40 +0100

Remove everything else to catch added dependencies in new versions.

* gnu/packages/game-development.scm (godot)[source](snippet): Instead of
  removing (only) the unbundled libs, remove everything except the listed files.
---
 gnu/packages/game-development.scm | 51 ++++++++++++++++++++-----------
 1 file changed, 33 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 0ef9fcc7dd..517d91df54 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1515,27 +1515,42 @@ games.")
               (sha256
                (base32
                 "12305wj2i4067jc50l8r0wmb7zjcna24fli8vb8kiaild0jrlip6"))
-              (modules '((guix build utils)))
+              (modules '((guix build utils)
+                         (ice-9 ftw)
+                         (srfi srfi-1)))
               (snippet
                '(begin
-                  ;; Drop libraries that we take from Guix.  Note that some
-                  ;; of these may be modified; see "thirdparty/README.md".
+                  ;; Keep only those bundled files we have not (yet) replaced
+                  ;; with Guix versions. Note that some of these may be
+                  ;; modified; see "thirdparty/README.md".
                   (with-directory-excursion "thirdparty"
-                    (for-each delete-file-recursively
-                              '("bullet"
-                                "freetype"
-                                "libogg"
-                                "libpng"
-                                "libtheora"
-                                "libvorbis"
-                                "libvpx"
-                                "libwebp"
-                                "mbedtls"
-                                "opus"
-                                "pcre2"
-                                "zlib"
-                                "zstd"))
-                    #t)))))
+                    (let* ((preserved-files
+                            '("README.md"
+                              "b2d_convexdecomp"
+                              "certs"
+                              "cvtt"
+                              "enet"
+                              "etc2comp"
+                              "fonts"
+                              "glad"
+                              "jpeg-compressor"
+                              "libsimplewebm"
+                              "libwebsockets"
+                              "miniupnpc"
+                              "minizip"
+                              "misc"
+                              "nanosvg"
+                              "pvrtccompressor"
+                              "recastnavigation"
+                              "squish"
+                              "thekla_atlas"
+                              "tinyexr"
+                              "xatlas")))
+                      (for-each delete-file-recursively
+                                (lset-difference string=?
+                                                 (scandir ".")
+                                                 (cons* "." ".." preserved-files)))))
+                  #t))))
     (build-system scons-build-system)
     (arguments
      `(#:scons ,scons-python2
-- 
2.25.0