guix_mirror_bot pushed a commit to branch misc-world-rebuild
in repository guix.

commit b1982fe54b30cb49e3057ea2c9a6bd44d357449a
Author: Patrick Norton <[email protected]>
AuthorDate: Fri Jan 2 07:21:13 2026 -0500

    gnu: Use built-in delete-all-but.
    
    * gnu/packages/astronomy.scm (phd2): Use built-in delete-all-but.
    * gnu/packages/bioinformatics.scm (pynsptools-examples-files): Likewise.
    * gnu/packages/debug.scm (fandango): Likewise.
    * gnu/packages/electronics.scm (librepcb, nextpnr): Likewise.
    * gnu/packages/emacs-xyz.scm (emacs-smartparens): Likewise.
    * gnu/packages/emulators.scm (dolphin-emu, libretro-dolphin-emu)
      (libretro-slang-shaders, mgba, pcsx2, retroarch-minimal): Likewise.
    * gnu/packages/game-development.scm (sfml): Likewise.
    * gnu/packages/golang-apps.scm (godoc): Likewise.
    * gnu/packages/golang-build.scm (go-golang-org-x-tools-go-expect)
      (go-golang-org-x-tools-go-packages-packagestest)
      (go-golang-org-x-tools-godoc): Likewise.
    * gnu/packages/golang-web.scm (go-github-com-containerd-containerd-api)
      (go-cloud-google-com-go-auth, go-cloud-google-com-go-auth-oauth2adapt)
      (go-cloud-google-com-go-iam, go-cloud-google-com-go-kms)
      (go-cloud-google-com-go-logging, go-cloud-google-com-go-longrunning)
      (go-cloud-google-com-go-monitoring, go-cloud-google-com-go-security)
      (go-cloud-google-com-go-spanner, go-cloud-google-com-go-storage)
      (go-cloud-google-com-go-trace)
      (go-github-com-aws-aws-sdk-go-v2-config)
      (go-github-com-aws-aws-sdk-go-v2-credentials)
      (go-github-com-aws-aws-sdk-go-v2-feature-ec2-imds)
      (go-github-com-aws-aws-sdk-go-v2-internal-configsources)
      (go-github-com-aws-aws-sdk-go-v2-internal-endpoints-v2)
      (go-github-com-aws-aws-sdk-go-v2-service-cloudwatchlogs)
      (go-github-com-aws-aws-sdk-go-v2-service-kms)
      (go-github-com-aws-aws-sdk-go-v2-service-sqs)
      (go-github-com-aws-aws-sdk-go-v2-service-ssm)
      (go-github-com-aws-smithy-go-metrics-smithyotelmetrics)
      (go-github-com-azure-azure-sdk-for-go-sdk-azcore)
      (go-github-com-azure-azure-sdk-for-go-sdk-azidentity)
      (go-github-com-azure-azure-sdk-for-go-sdk-internal)
      (go-github-com-azure-azure-sdk-for-go-sdk-security-keyvault-azkeys)
      (go-github-com-azure-azure-sdk-for-go-sdk-security-keyvault-internal)
      (go-github-com-azure-azure-sdk-for-go-sdk-storage-azblob)
      (go-github-com-azure-azure-sdk-for-go-sdk-storage-azfile)
      (go-github-com-envoyproxy-go-control-plane-envoy)
      
(go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-metric)
      
(go-github-com-googlecloudplatform-opentelemetry-operations-go-exporter-trace)
      
(go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-cloudmock)
      
(go-github-com-googlecloudplatform-opentelemetry-operations-go-internal-resourcemapping)
      (go-github-com-grpc-ecosystem-go-grpc-middleware-providers-prometh)
      (go-github-com-hashicorp-go-secure-stdlib-parseutil)
      (go-github-com-jtolio-crawlspace-tools)
      (go-github-com-moby-moby-client)
      (go-github-com-sigstore-sigstore-pkg-signature-kms-aws)
      (go-github-com-sigstore-sigstore-pkg-signature-kms-azure)
      (go-github-com-sigstore-sigstore-pkg-signature-kms-gcp)
      (go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault)
      (go-go-etcd-io-etcd-api-v3, go-go-etcd-io-etcd-client-pkg-v3)
      (go-go-opentelemetry-io-auto-sdk)
      (go-go-opentelemetry-io-contrib-detectors-aws-ec2-v2)
      (go-go-opentelemetry-io-contrib-detectors-aws-ecs)
      (go-go-opentelemetry-io-contrib-detectors-gcp)
      (go-go-opentelemetry-io-contrib-propagators-autoprop)
      (go-go-opentelemetry-io-otel-exporters-otlp-otlpmetric-otlpmetricgrpc)
      (go-go-opentelemetry-io-otel-exporters-otlp-otlpmetric-otlpmetrichttp)
      (go-go-opentelemetry-io-otel-exporters-otlp-otlptrace)
      (go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc)
      (go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp)
      (go-go-opentelemetry-io-otel-exporters-prometheus)
      (go-go-opentelemetry-io-otel-exporters-stdout-stdoutmetric)
      (go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace)
      (go-go-opentelemetry-io-otel-exporters-zipkin)
      (go-go-opentelemetry-io-otel-log)
      (go-go-opentelemetry-io-otel-metric-x)
      (go-go-opentelemetry-io-otel-sdk, go-go-opentelemetry-io-otel-sdk-log)
      (go-go-opentelemetry-io-otel-sdk-metric)
      (go-google-golang-org-genproto-googleapis-api)
      (go-google-golang-org-genproto-googleapis-bytestream)
      (go-google-golang-org-grpc-cmd-protoc-gen-go-grpc)
      (go-google-golang-org-grpc-examples)
      (go-k8s-io-kube-openapi-test-integration): Likewise.
    * gnu/packages/golang-xyz.scm (go-github-com-ajstarks-deck-generate)
      (go-github-com-charmbracelet-x-ansi)
      (go-github-com-charmbracelet-x-cellbuf)
      (go-github-com-charmbracelet-x-errors)
      (go-github-com-charmbracelet-x-term)
      (go-github-com-charmbracelet-x-xpty)
      (go-github-com-containerd-errdefs-pkg)
      (go-github-com-moby-sys-atomicwriter)
      (go-github-com-moby-sys-mount, go-go-uber-org-zap-exp)
      (go-modernc-org-ccgo-v4, go-sigs-k8s-io-kustomize-cmd-config):
      Likewise.
    * gnu/packages/image-processing.scm (opencv): Likewise.
    * gnu/packages/ipfs.scm (go-github-com-ipfs-shipyard-nopfs-ipfs):
      Likewise.
    * gnu/packages/kubernetes.scm (go-go-etcd-io-etcd-client-v3)
      go-go-etcd-io-etcd-pkg-v3, go-go-etcd-io-etcd-server-v3): Likewise.
    * gnu/packages/mail.scm (neomutt): Likewise.
    * gnu/packages/mpi.scm (openmpi-5): Likewise.
    * gnu/packages/protobuf.scm (protobuf-6): Likewise.
    * gnu/packages/python-science.scm (python-vaex-core): Likewise.
    * gnu/packages/specifications.scm (specification-astropy-data): Likewise.
    * gnu/packages/version-control.scm (libfossil): Likewise.
    * gnu/packages/vnc.scm (turbovnc): Likewise.
    
    Change-Id: I6575463a072a6ee05751e23ebcee9a393529c8b1
    Merges: https://codeberg.org/guix/guix/pulls/5312
    Reviewed-by: Maxim Cournoyer <[email protected]>
    Reviewed-by: Cayetano Santos <[email protected]>
    Reviewed-by: Gabriel Wicki <[email protected]>
    Co-authored-by: Nguyễn Gia Phong <[email protected]>
    Signed-off-by: Nguyễn Gia Phong <[email protected]>
---
 gnu/packages/astronomy.scm        |  11 +-
 gnu/packages/bioinformatics.scm   |  15 +-
 gnu/packages/debug.scm            |  10 +-
 gnu/packages/electronics.scm      |  49 +--
 gnu/packages/emacs-xyz.scm        |  11 +-
 gnu/packages/emulators.scm        |  85 +---
 gnu/packages/game-development.scm |  10 +-
 gnu/packages/golang-apps.scm      |  10 +-
 gnu/packages/golang-build.scm     |  33 +-
 gnu/packages/golang-web.scm       | 789 +++++---------------------------------
 gnu/packages/golang-xyz.scm       | 188 ++-------
 gnu/packages/image-processing.scm |  22 +-
 gnu/packages/ipfs.scm             |  16 +-
 gnu/packages/kubernetes.scm       |  30 +-
 gnu/packages/mail.scm             |  18 +-
 gnu/packages/mpi.scm              |  11 +-
 gnu/packages/protobuf.scm         |  21 +-
 gnu/packages/python-science.scm   |  30 +-
 gnu/packages/specifications.scm   |  10 +-
 gnu/packages/version-control.scm  |  10 +-
 gnu/packages/vnc.scm              |  10 +-
 21 files changed, 178 insertions(+), 1211 deletions(-)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 376470b168..4b40202389 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1858,18 +1858,9 @@ R. Seaman's protocol}
          (file-name (git-file-name name version))
          (sha256
           (base32 "0n2jzlpwvjgj8ydg7hsqxnvy8s9pdi5z96id0231kgi87pyfkh7s"))
-         (modules '((guix build utils)
-                    (ice-9 ftw)
-                    (srfi srfi-26)))
+         (modules '((guix build utils)))
          (snippet
           #~(begin
-              ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-              (define (delete-all-but directory . preserve)
-                (with-directory-excursion directory
-                  (let* ((pred (negate (cut member <>
-                                            (cons* "." ".." preserve))))
-                         (items (scandir "." pred)))
-                    (for-each (cut delete-file-recursively <>) items))))
               (delete-all-but "thirdparty" "thirdparty.cmake")))))
       (build-system cmake-build-system)
       (arguments
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 9fa2134325..33c268fe96 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3811,20 +3811,13 @@ familiar to anyone with experience of scikit-learn or 
scipy.")
       (file-name (git-file-name name version))
       (sha256
        (base32 "0hznpj15kx2sla16wlmcqz21n2vi2qb1493v30vz75hnm1m4iwm1"))
-      (modules '((guix build utils)
-                 (ice-9 ftw)))
+      (modules '((guix build utils)))
       (snippet
        #~(begin
            ;; Delete everything except for examples directory:
-           (define (delete-except exceptions)
-             (lambda (file)
-               (unless (member file `("." ".." ,@exceptions))
-                 (delete-file-recursively file))))
-           (for-each (delete-except '("pysnptools" "tests")) (scandir "."))
-           (with-directory-excursion "pysnptools"
-             (for-each (delete-except '("examples")) (scandir ".")))
-           (with-directory-excursion "tests"
-             (for-each (delete-except '("datasets")) (scandir "."))))))))
+           (delete-all-but ".""pysnptools" "tests")
+           (delete-all-but "pysnptools" "examples")
+           (delete-all-but "tests" "datasets"))))))
 
 (define-public python-pysnptools
   (package
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index ead7aff7b8..4a42d40ff0 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1113,17 +1113,9 @@ to aid in debugging.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256 (base32 "0ppx8r9isc772y0ahpgl8g5b3yxka7ffqzlcsa920aib5nj39lrg"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (substitute* "pyproject.toml"
               ;; Python is linked with GNU readline on all Guix targets.
               ((".*gnureadline.*") "")
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 04784975db..f166345f4a 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -1750,31 +1750,21 @@ exploration and optimization.")
               (commit version)
               (recursive? #t)))
        (file-name (git-file-name name version))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "libs"
-                            "delaunay-triangulation"
-                            "dxflib"
-                            ;; "fontobene-qt"
-                            ;; "googletest"
-                            ;; "hoedown"
-                            "librepcb"
-                            ;; "muparser"
-                            "optional"
-                            "parseagle"
-                            ;; "polyclipping"
-                            ;; "quazip"
-                            "type_safe")))
+        #~(delete-all-but "libs"
+            "delaunay-triangulation"
+            "dxflib"
+            ;; "fontobene-qt"
+            ;; "googletest"
+            ;; "hoedown"
+            "librepcb"
+            ;; "muparser"
+            "optional"
+            "parseagle"
+            ;; "polyclipping"
+            ;; "quazip"
+            "type_safe"))
        (sha256
         (base32 "1g3k2g2p5yy7zk971bg7qh4k38p30aydp27c5bfb02gn7djknz7w"))))
     (build-system cmake-build-system)
@@ -2358,18 +2348,9 @@ layout of a circuit corresponds to the desired 
netlists.")
               ;; no longer have their original upstream.
               (recursive? #t)))
        (file-name (git-file-name name version))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (use-modules (guix build utils)
-                         (ice-9 ftw)
-                         (srfi srfi-26))
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "3rdparty"
                             ;; The following sources have all been patched, so
                             ;; cannot easily be unbundled.
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 088a75e305..4f95f7643b 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16180,18 +16180,9 @@ placed at the margin of the minibuffer for your 
completion candidates.")
                (url "https://github.com/Fuco1/smartparens";)
                (commit commit)))
          (file-name (git-file-name name version))
-         (modules '((guix build utils)
-                    (ice-9 ftw)
-                    (srfi srfi-26)))
+         (modules '((guix build utils)))
          (snippet
           '(begin
-             ;; Taken from nextpnr package.
-             (define (delete-all-but directory . preserve)
-               (with-directory-excursion directory
-                 (let* ((pred
-                         (negate (cut member <> (append '("." "..") 
preserve))))
-                        (items (scandir "." pred)))
-                   (for-each delete-file items))))
              ;; Only activate basic tests.
              (delete-all-but "test"
                              "test-helper.el"
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 927a195972..eeef288815 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -464,13 +464,6 @@ It aims to support Nintendo DSi and 3DS as well.")
                     (srfi srfi-26)))
          (snippet
           #~(begin
-              (define (delete-all-but directory . preserve)
-                (with-directory-excursion directory
-                  (let* ((pred (negate (cut member <>
-                                            (cons* "." ".." preserve))))
-                         (items (scandir "." pred)))
-                    (for-each (cut delete-file-recursively <>) items))))
-
               ;; Clean up the source from bundled libraries we don't need.
               (delete-all-but "Externals"
                               ;; XXX: The build system is currently hard-coded
@@ -660,14 +653,6 @@ turbo speed, networked multiplayer, and graphical 
enhancements.")
                     (srfi srfi-26)))
          (snippet
           #~(begin
-              ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-              (define (delete-all-but directory . preserve)
-                (with-directory-excursion directory
-                  (let* ((pred (negate (cut member <>
-                                            (cons* "." ".." preserve))))
-                         (items (scandir "." pred)))
-                    (for-each (cut delete-file-recursively <>) items))))
-
               ;; Clean up the source from bundled libraries we don't need.
               (delete-all-but "Externals"
                               ;; XXX: The build system is currently hard-coded
@@ -1083,17 +1068,9 @@ The following systems are supported:
          (sha256
           (base32
            "0dfsz4dsh49dc9xx9rjhfzfkg4h91i2ksgp2inlr9yhgldw9q8h3"))
-         (modules '((guix build utils)
-                    (ice-9 ftw)
-                    (srfi srfi-26)))
+         (modules '((guix build utils)))
          (snippet
           #~(begin
-              (define (delete-all-but directory . preserve)
-                (with-directory-excursion directory
-                  (let* ((pred (negate (cut member <> (cons* "." ".." 
preserve))))
-                         (items (scandir "." pred)))
-                    (for-each (cut delete-file-recursively <>) items))))
-
               (delete-all-but "src/third-party"
                               "blip_buf"
                               "inih")))))
@@ -2324,42 +2301,9 @@ physical device and the RetroPad virtual controller.")
          (modules '((guix build utils)))
          (snippet
           '(begin
-             (use-modules (guix build utils)
-                          (ice-9 ftw)
-                          (srfi srfi-1)
-                          (srfi srfi-26))
-             (define (delete-all-but . preserve)
-               ;; Walk the file tree and delete everything except the paths
-               ;; listed in PRESERVE.  Directories listed PRESERVE will cause
-               ;; their whole contents to be preserved.
-               (let ((preserve (map (compose (cut string-trim-right <> #\/)
-                                             (cut string-append "./" <>))
-                                    preserve)))
-                 (file-system-fold
-                  (lambda (path stat result) ;enter
-                    (or (any (lambda (x)
-                               (or (string-prefix? path x)
-                                   (string-prefix? x path)))
-                             preserve)
-                        (begin
-                          (delete-file-recursively path)
-                          #f)))
-                  (lambda (path stat result) ;leaf (file)
-                    (unless (any (cut string-prefix? <> path) preserve)
-                      (delete-file path)))
-                  (const #t)                 ;down (directory)
-                  (const #t)                 ;up (directory)
-                  (lambda (path stat result) ;skip
-                    (when (file-exists? path)
-                      (error "could not enter unreadable directory" path)))
-                  (lambda (path stat errno result) ;error
-                    (error "error processing" path (strerror errno)))
-                  0
-                  ".")))
-
              ;; This is an allow-list of the shaders explicitly licensed as
              ;; free software.
-             (delete-all-but
+             (delete-all-but "."
               "anamorphic/shaders/anamorphic.slang" ;expat
               "anamorphic/anamorphic.slangp"
               "annotated_passthru.slang" ;public license
@@ -3016,16 +2960,7 @@ GLSL (@file{.slang}) shaders for use with RetroArch.")
              (commit (string-append "v" version))))
        (snippet
         #~(begin
-            (use-modules (guix build utils)
-                         (ice-9 ftw)
-                         (srfi srfi-26))
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
+            (use-modules (guix build utils))
             ;; Remove as much bundled sources as possible, shaving off about
             ;; 65 MiB.
             (delete-all-but "deps"
@@ -3834,24 +3769,14 @@ de-interlacing patches for use with PCSX2.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0nr53cjifqwnz3icxsj01yd3aw1vfsfxga4zz5zi8aqr175mvq27"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
             (substitute* "cmake/Pcsx2Utils.cmake"
               (("(PCSX2_GIT_REV \")Unknown" _ prefix)
                (string-append prefix #$version "-guix")))
             (delete-file "3rdparty/include/Packet32.h") ;"not open source"
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but
-             "3rdparty"
+            (delete-all-but "3rdparty"
              ;; asl2.0 and cc0
              "glad"                     ;Is tailored.
              ;; bsd-3
diff --git a/gnu/packages/game-development.scm 
b/gnu/packages/game-development.scm
index 1d957101a5..89e4a86829 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1181,17 +1181,9 @@ It is capable of creating games for SCUMM version 6 and 
partially version 7.")
        (sha256
         (base32
          "12f1d45995qf5sazjmmfdydllcd6alhqs1s4xwv3jiq1fw66hcy9"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-           (define (delete-all-but directory . preserve)
-             (with-directory-excursion directory
-               (let* ((pred (negate (cut member <> (cons* "." ".." preserve))))
-                      (items (scandir "." pred)))
-                 (for-each (cut delete-file-recursively <>) items))))
            (delete-all-but "extlibs/headers"
                            "glad")))))  ;pre-generated headers
     (build-system cmake-build-system)
diff --git a/gnu/packages/golang-apps.scm b/gnu/packages/golang-apps.scm
index 5b87686dd8..677e03e484 100644
--- a/gnu/packages/golang-apps.scm
+++ b/gnu/packages/golang-apps.scm
@@ -192,17 +192,9 @@ definitions in Go programs.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0c1rxbj3v3m0fqb8q96xlbawxm9scyx6vvr8pddkiwp7zkx4ajym"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "cmd" "godoc")
             (delete-all-but "." "cmd")))))
     (build-system go-build-system)
diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm
index bc6f3fbe03..3d51a790b3 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -1535,17 +1535,9 @@ Go programming language.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "go" "expect")
             (delete-all-but "." "go")))))
     (build-system go-build-system)
@@ -1575,17 +1567,9 @@ Go source code (including go.mod and go.work files) as 
test expectations.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "go" "packages")
             (delete-all-but "go/packages" "packagestest")
             (delete-all-but "." "go")))))
@@ -1618,18 +1602,9 @@ tools on.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1blk22apy424j9v58lfy4pxnrgh93yqchqhxsnf78dmx4vx5yi9r"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "godoc")))))
+        #~(begin (delete-all-but "." "godoc")))))
     (build-system go-build-system)
     (arguments
      (list
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index ea5017f96c..34d74eb377 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -479,16 +479,8 @@ Services.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1c2i8jhc4rizmwz6716bwxwy04adjmm7k2cigki3m1f00rwblmki"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-file-recursively "auth/oauth2adapt")
                     (delete-all-but "." "auth")))))
     (build-system go-build-system)
@@ -546,16 +538,8 @@ automatic token management.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "109szg097fn42qpsmrmd29iwsdh2yrjh9krq8mjm02fnm7l18lc4"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "auth" "oauth2adapt")
                     (delete-all-but "." "auth")))))
     (build-system go-build-system)
@@ -618,17 +602,8 @@ API service accounts for Go.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0l3dc1i1qqj8mfvl7xcm8rgvsi49xaxlzlrx3p4vjhc23skx1688"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "kms")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "kms"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -665,17 +640,8 @@ Service (KMS) API.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1qrhsn90v1myvyd46pjvg02pzwqzny1v3f75jdby03bbdcd7al9m"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "iam")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "iam"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -711,18 +677,8 @@ see: @url{https://cloud.google.com/iam, IAM specification} 
for more details.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "14khzbcymknsz4p40ibc8v1zsy33b33yn7fcvkfp4rkzw69wv356"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "logging")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "logging"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -770,17 +726,8 @@ resources, see package 
cloud.google.com/go/logging/logadmin.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1ykr9kj0sbb4w0h190lp9gcxppv18dp0d5ak2g93dky8hjyc2wfa"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "longrunning")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "longrunning"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -816,18 +763,8 @@ its service definition.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "13rdnpz6jz5242gfx6xv6q66rr7k2sbrf7s507wq09bxvd4g20p0"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "monitoring")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "monitoring"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -862,17 +799,8 @@ its service definition.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1pn77lf1d22sqpkia9zccdhdihlqc48lls6y9npc2wrp4lman2kv"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "security")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "security"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -907,18 +835,8 @@ its service definition.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "05jgalbqb9n1whlpdkj40rvyk8lg39q5w4l463ycsj2301pmr90h"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "spanner")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "spanner"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -979,17 +897,8 @@ introduction to Cloud Spanner and additional help on using 
this API.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sjwrcjqja62mgv4bzl8z4jps9bf55l8zln5wy8qjvrs6ql117ny"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "storage")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "storage"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -1044,18 +953,8 @@ buckets.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "14khzbcymknsz4p40ibc8v1zsy33b33yn7fcvkfp4rkzw69wv356"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "trace")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "trace"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -2349,21 +2248,8 @@ functions.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1j68835z0dgzxwf3m4gfir50wi6r30yx3g78y63x55sdg2imbhsk"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "config")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "config"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -2398,21 +2284,8 @@ utilities.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "04cv6g96hhmjl6snql6a909grq4yxyjk95a3dzk6mpihvg79q47p"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "credentials")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "credentials"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -2455,17 +2328,9 @@ credentials sources.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "04cv6g96hhmjl6snql6a909grq4yxyjk95a3dzk6mpihvg79q47p"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "feature")
             (delete-all-but "feature" "ec2")
             (delete-all-but "feature/ec2" "imds")
@@ -2531,19 +2396,8 @@ S3 concurrently.  Helpful for when working with large 
objects.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "068yzhxxxdymr1avb1l1pm9m0p7mcd0zlw5an66mcqldgl7hfivg"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "internal" "configsources")
-            (delete-all-but "." "internal")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "internal"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -2578,17 +2432,9 @@ configuration sources in AWS.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "068yzhxxxdymr1avb1l1pm9m0p7mcd0zlw5an66mcqldgl7hfivg"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "internal/endpoints" "v2")
             (delete-all-but "internal" "endpoints")
             (delete-all-but "." "internal")))))
@@ -2621,17 +2467,9 @@ structured records.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "133768fizkn8hp0xrf90bh64y14gxzj45zfa1711igwafijwlvnl"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "service" "cloudwatchlogs")
             (delete-all-but "." "service")))))
     (build-system go-build-system)
@@ -2665,17 +2503,9 @@ for Amazon CloudWatch Logs.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1syzl2cd6m9hdjnn15163afz1wh85gva10l4k8j8w5i1jhk5sf40"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "service" "kms")
             (delete-all-but "." "service")))))
     (build-system go-build-system)
@@ -2793,20 +2623,9 @@ parameter types for AWS Secrets Manager.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "04cv6g96hhmjl6snql6a909grq4yxyjk95a3dzk6mpihvg79q47p"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "service" "sqs")
             (delete-all-but "." "service")))))
     (build-system go-build-system)
@@ -2839,17 +2658,9 @@ Amazon Simple Queue Service.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "055i6c41zppxhf5kgxky7a8nc1wzsaxd6vbdyv0wqqbg8zbw5fjb"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "service" "ssm")
             (delete-all-but "." "service")))))
     (build-system go-build-system)
@@ -3059,17 +2870,9 @@ signing.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "15f2j863rb9cp4927sn48gsccnn6cm6cn8zjc8mycas4fw07lswr"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "metrics" "smithyotelmetrics")
             (delete-all-but "." "metrics")))))
     (build-system go-build-system)
@@ -3226,16 +3029,8 @@ headers before the request is sent over the wire.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1qbcm8mqg2qvikv129s832qqvpydipv71825s4dkyjmzar5g04vf"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk" "azcore")
                     (delete-all-but "." "sdk")))))
     (build-system go-build-system)
@@ -3269,16 +3064,8 @@ Azure SDK clients.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "18s9h2fcbcw39idfyjglm7vyyp04bgl0x0wj4vcd8q6a46b8rbh6"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk" "azidentity")
                     (delete-all-but "." "sdk")))))
     (build-system go-build-system)
@@ -3319,16 +3106,8 @@ clients supporting token authentication.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0q0cbmh4vn2x1bi7bax2q6wpqndcyw7649w8lzl384k3rbn1q8yn"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk" "internal")
                     (delete-all-but "." "sdk")))))
     (build-system go-build-system)
@@ -3360,16 +3139,8 @@ clients supporting token authentication.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0jxpzd6sg6fp2mim3sr7gg9y0lvlngf23mmij388ywz4zfvpcqhq"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each delete-file-recursively items))))
                     (delete-all-but "sdk/security/keyvault" "azkeys")
                     (delete-all-but "sdk/security" "keyvault")
                     (delete-all-but "sdk" "security")
@@ -3410,16 +3181,8 @@ keys used to encrypt your data.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "16xb2gyl48xcc1xc58l8c8qhraxsmar7655348ggi4r2jzyc6sik"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk/security/keyvault" "internal")
                     (delete-all-but "sdk/security" "keyvault")
                     (delete-all-but "sdk" "security")
@@ -3455,16 +3218,8 @@ challenge authentication policy.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "08a8kx4n31pa4krrxs1hrcwygryh86nz98fyr9hvw67202zr3adw"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk/storage" "azblob")
                     (delete-all-but "sdk" "storage")
                     (delete-all-but "." "sdk")))))
@@ -3505,16 +3260,8 @@ to Azure Blob Storage}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "08a8kx4n31pa4krrxs1hrcwygryh86nz98fyr9hvw67202zr3adw"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "sdk/storage" "azfile")
                     (delete-all-but "sdk" "storage")
                     (delete-all-but "." "sdk")))))
@@ -4976,18 +4723,8 @@ it mimics the functionality and signatures of the 
standard `os` package.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0pmcgi5jdcf0cx6z6qlppzqqwf6fhglfxd4sdr00wgbhvhfzchm3"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "api")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "api"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -6503,18 +6240,8 @@ implements the discovery service APIs defined in
        (file-name (git-file-name name version))
        (sha256
         (base32 "0ysssv13sykny7x8ajqlm0wyz7r0wplam94gnrjz4xw1jxvqvwpv"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "envoy")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "envoy"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -8951,17 +8678,9 @@ testing of the detection functions in real GCP 
environments.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporter" "metric")
             (delete-all-but "." "exporter")))))
     (build-system go-build-system)
@@ -9008,17 +8727,9 @@ send collected metrics to Google Cloud.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0nizaaydcvvi718g5v4pgx8in6d546mmkrf7h3sxhz2yyyygvms3"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporter" "trace")
             (delete-all-but "." "exporter")))))
     (build-system go-build-system)
@@ -9064,17 +8775,9 @@ collected traces and spans to Google Cloud.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0nizaaydcvvi718g5v4pgx8in6d546mmkrf7h3sxhz2yyyygvms3"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "internal" "cloudmock")
             (delete-all-but "." "internal")))))
     (build-system go-build-system)
@@ -9113,17 +8816,9 @@ collected traces and spans to Google Cloud.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0a2641mgbc2fv8ramifawpxv9rx99wqknv0xqin3wfapsn2vn5i9"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "internal" "resourcemapping")
             (delete-all-but "." "internal")))))
     (build-system go-build-system)
@@ -9725,17 +9420,9 @@ build multiple microservices easily.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0fr8z4dr9n1x6zgs2n7m2wd1j2wnnmig0xq099xcg5lvcxiqjv73"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "providers" "prometheus")
             (delete-all-but "." "providers")))))
     (build-system go-build-system)
@@ -9936,17 +9623,8 @@ It is part of HashiCorp's Secure division products 
stdlib.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "08wp7cx0br7wz0rwz92v0c6jgbv735l04438k74wgqrghsxgl31m"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
-                    (delete-all-but "." "parseutil")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "parseutil"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -13858,18 +13536,9 @@ control the daemon.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1624z57hqqw1b473arfa5m936rsrhc8h3hs2jg4645b3dykfyawn"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "client")))))
+        #~(begin (delete-all-but "." "client")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -17230,17 +16899,9 @@ verification of signatures and attestations produced 
by Sigstore tools.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "pkg")
             (delete-all-but "pkg" "signature")
             (delete-all-but "pkg/signature" "kms")
@@ -17279,17 +16940,9 @@ verification of signatures and attestations produced 
by Sigstore tools.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "pkg")
             (delete-all-but "pkg" "signature")
             (delete-all-but "pkg/signature" "kms")
@@ -17330,17 +16983,9 @@ service.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "pkg")
             (delete-all-but "pkg" "signature")
             (delete-all-but "pkg/signature" "kms")
@@ -17378,17 +17023,9 @@ service.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "pkg")
             (delete-all-but "pkg" "signature")
             (delete-all-but "pkg/signature" "kms")
@@ -20677,18 +20314,8 @@ browsing activities based on HTTP Upgrade (HTTPT).")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0xyq7flcdvbmiss0snriylvabkwclhyb3977vl1xy9gxq94cwqq4"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "api")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "api"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -20725,17 +20352,9 @@ interacting with the etcd v3 API.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0xyq7flcdvbmiss0snriylvabkwclhyb3977vl1xy9gxq94cwqq4"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "client")
             (delete-all-but "client" "pkg")))))
     (build-system go-build-system)
@@ -20912,18 +20531,8 @@ lists)
        (file-name (git-file-name name version))
        (sha256
         (base32 "155qcbl84bwy7m9k221w75yakfv71fbxpfn9g3d7nnq6cl30fbfw"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "sdk")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "sdk"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -20951,17 +20560,9 @@ lists)
        (file-name (git-file-name name version))
        (sha256
         (base32 "0nh7g1zxr3drqcbhsnnkqaz2hn1rnawg8jalixng23c9hwfgqaly"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "detectors/aws" "ec2")
             (delete-all-but "detectors" "aws")
             (delete-all-but "." "detectors")))))
@@ -21000,17 +20601,9 @@ Compute Cloud, EC2} instances using 
@code{aws-sdk-go-v2}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0nh7g1zxr3drqcbhsnnkqaz2hn1rnawg8jalixng23c9hwfgqaly"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "detectors/aws" "ecs")
             (delete-all-but "detectors" "aws")
             (delete-all-but "." "detectors")))))
@@ -21045,17 +20638,9 @@ Container Service, ECS} instances.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "18k9pqwzlcjkiz8cy2hgl5jwal10ypj171hra4zsqizbqjivd4lc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "detectors" "gcp")
             (delete-all-but "." "detectors")))))
     (build-system go-build-system)
@@ -21177,20 +20762,9 @@ Handler) and routes @code{WithRouteTag}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "propagators" "autoprop")
             (delete-all-but "." "propagators")))))
     (build-system go-build-system)
@@ -21491,17 +21065,9 @@ go.opentelemetry.io/otel/trace.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/otlp/otlpmetric" "otlpmetricgrpc")
             (delete-all-but "." "exporters")))))
     (build-system go-build-system)
@@ -21542,17 +21108,9 @@ protobuf payloads.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/otlp/otlpmetric" "otlpmetrichttp")
             (delete-all-but "." "exporters")))))
     (build-system go-build-system)
@@ -21591,20 +21149,9 @@ protobuf payloads.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/otlp" "otlptrace")
             (delete-all-but "." "exporters")
             ;; Submodules with their own go.mod files and packed as separated
@@ -21646,17 +21193,9 @@ protobuf payloads.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0583dw99k25k07pnq8hhhb45kwqhsx30lbk9yxsh4m50ji65wl8h"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/otlp/otlptrace" "otlptracegrpc")
             (delete-all-but "exporters/otlp" "otlptrace")
             (delete-all-but "." "exporters")))))
@@ -21703,20 +21242,9 @@ By default the telemetry is sent to 
@@url{https://localhost:4317}.";)
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/otlp/otlptrace" "otlptracehttp")
             (delete-all-but "." "exporters")))))
     (build-system go-build-system)
@@ -21758,20 +21286,9 @@ protobuf payloads.  By default the telemetry is sent to
        (file-name (git-file-name name version))
        (sha256
         (base32 "0ag8103mf4j03lspi5rxk161iscbw1wkdk6ri9f746jia1w4qji8"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters" "prometheus")
             (delete-all-but "." "exporters")))))
     (build-system go-build-system)
@@ -21814,17 +21331,9 @@ prometheus.Collector to provide a handler for these 
metrics.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0583dw99k25k07pnq8hhhb45kwqhsx30lbk9yxsh4m50ji65wl8h"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/stdout" "stdoutmetric")
             (delete-all-but "exporters" "stdout")
             (delete-all-but "." "exporters")))))
@@ -21867,17 +21376,9 @@ for production use.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters/stdout" "stdouttrace")
             (delete-all-but "exporters" "stdout")
             (delete-all-but "." "exporters")))))
@@ -21914,20 +21415,9 @@ telemetry to be written to an output destination as 
JSON.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "exporters" "zipkin")
             (delete-all-but "." "exporters")))))
     (build-system go-build-system)
@@ -21962,21 +21452,8 @@ telemetry to be written to an output destination as 
JSON.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "log")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "log"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -22022,17 +21499,9 @@ OpenTelemetry API.")))
        (file-name (git-file-name name version))
        (sha256
         (base32 "16x0aw116dadi73vzh8bcwasy79sblvh6k1q7yfx8n841x48ry8r"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "metric" "x")
             (delete-all-but "." "metric")))))
     (build-system go-build-system)
@@ -22066,20 +21535,9 @@ entirely.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "sdk")
             (delete-file-recursively "sdk/log")
             (delete-file-recursively "sdk/metric")))))
@@ -22116,20 +21574,9 @@ entirely.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "sdk" "log")
             (delete-all-but "." "sdk")))))
     (build-system go-build-system)
@@ -22164,20 +21611,9 @@ entirely.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "sdk" "metric")
             (delete-all-but "." "sdk")))))
     (build-system go-build-system)
@@ -22694,20 +22130,9 @@ interacting with Google's @code{gRPC} APIs.")
        (uri (git-reference
               (url "https://github.com/googleapis/go-genproto";)
               (commit (go-version->git-ref version #:subdir 
"googleapis/api"))))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             ;; Submodules with their own go.mod files and packaged separately:
             ;;
             ;; - google.golang.org/genproto/googleapis/api/apikeys
@@ -22752,17 +22177,9 @@ interacting with Google's @code{gRPC} APIs.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0yvcd9xiyarwmzgl70xqiaxxla3qiys1iysqajwmbrf8k4ghr26p"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "googleapis" "bytestream")
             (delete-all-but "." "googleapis")))))
     (build-system go-build-system)
@@ -22865,18 +22282,9 @@ Google Cloud Platform}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0yn1ir5y0wc91q95ngr3dlz2cyhp0wlb9l30hkw2cr34r38hq19w"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "cmd")))))
+        #~(begin (delete-all-but "." "cmd")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -22906,18 +22314,8 @@ generate Go code.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1p7h51pm4r8gfxaimvkmkwk0ii4rvhs6p6shvs3qaig86wg1rxwb"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "examples")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "examples"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -23229,18 +22627,9 @@ the code or routes.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1appaqgllddcl6kxkz3azix0xhlzy093vvxi6y3im1mkf5zblwl7"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "test")))))
+        #~(begin (delete-all-but "." "test")))))
     (build-system go-build-system)
     (arguments
      (list
diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index 6a24c592fa..1a37d1b76d 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1303,26 +1303,8 @@ may be interactive or produce standard formats such as 
SVG or PDF.")
          (file-name (git-file-name name version))
          (sha256
           (base32 "1np11if704xzyhsx9mqhz7djx23g6wnz62r1v9ra6xaz91yfic0n"))
-         (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))))
-              (delete-all-but "." "generate")))))
+         (modules '((guix build utils)))
+         (snippet #~(delete-all-but "." "generate"))))
       (build-system go-build-system)
       (arguments
        (list
@@ -5019,18 +5001,8 @@ and multi-selects with a focus on user experience and 
aesthetics.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1nr09574rdrgnsj7c2z11233zljl3gcqax0jb3na6v4ixl7gnhq2"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "ansi")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "ansi"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -5067,14 +5039,7 @@ ECMA-48} specs.")
                   (ice-9 ftw)
                   (srfi srfi-26)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "cellbuf")))))
+        #~(begin (delete-all-but "." "cellbuf")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -5132,18 +5097,8 @@ ECMA-48} specs.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "088786ak8jsgvssbb5y16z066vfq9f6078sjc7iv766knfr2i0x2"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "errors")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "errors"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -5295,18 +5250,9 @@ package provides an API for comparing Golden files.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1shw55110fnn4xz80wmgr18czmiil6z1j064m90iw8c7j9llfzn5"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "term")))))
+        #~(begin (delete-all-but "." "term")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -5394,21 +5340,8 @@ package provides an API for comparing Golden files.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0blpb8vpl7sc6pb43h0730wdcwrkvnhly6qhik6wljrzn2nqz5g2"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "xpty")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "xpty"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -6491,21 +6424,8 @@ packages.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0afaljkkd388f6igr3f2vjnd14yr8h20fcfzglw8j5q1q7a1cvik"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "pkg")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "pkg"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -15968,18 +15888,9 @@ Twisted's manhole library} .")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0xj782ghf0iv8r2xxmg2vrh72b02h216y4yfyi60y9z0691lrsip"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "tools")))))
+        #~(begin (delete-all-but "." "tools")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -19764,18 +19675,9 @@ publish–subscribe pattern}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0an8ypp8v9gfxbbb71mpimb1g9labl4v7lgazcphysn6c5smgmiw"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "atomicwriter")))))
+        #~(begin (delete-all-but "." "atomicwriter")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -19830,18 +19732,9 @@ https://github.com/syndtr/gocapability.";)
        (file-name (git-file-name name version))
        (sha256
         (base32 "1nh1disclgydvq7k10awzks6k8kw9cjj3q19f83ksi4b76p5l475"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "mount")))))
+        #~(begin (delete-all-but "." "mount")))))
     (build-system go-build-system)
     (arguments
      (list
@@ -30759,21 +30652,8 @@ when they'd prefer a more familiar, loosely typed 
API.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "05i15278swdmpif3p6g18sy0sn7rnfdl3m2rj5p30cnyb0j29vig"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "exp")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "exp"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -32254,18 +32134,9 @@ code.")
     (name "go-modernc-org-ccgo-v4")
     (source (origin
               (inherit (package-source go-modernc-org-ccgo-v3))
-              (modules '((guix build utils)
-                         (ice-9 ftw)
-                         (srfi srfi-26)))
+              (modules '((guix build utils)))
               (snippet
-               #~(begin
-                   (define (delete-all-but directory . preserve)
-                     (with-directory-excursion directory
-                       (let* ((pred (negate (cut member <>
-                                                 (cons* "." ".." preserve))))
-                              (items (scandir "." pred)))
-                         (for-each (cut delete-file-recursively <>) items))))
-                   (delete-all-but "." "v4")))))
+               #~(begin (delete-all-but "." "v4")))))
     (arguments
      (substitute-keyword-arguments
          (package-arguments go-modernc-org-ccgo-v3)
@@ -33221,20 +33092,9 @@ unmarshaling functions based on @code{encoding/json} 
@code{Unmarshal()}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "12n8ij4gisah5mvxcgq263iic61gjpxdj3ml03826zckzn7wlv46"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider implementing it as a reusable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "." "cmd")
             (delete-all-but "cmd" "config")))))
     (build-system go-build-system)
diff --git a/gnu/packages/image-processing.scm 
b/gnu/packages/image-processing.scm
index 2df830ef3a..bced7937a9 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -600,24 +600,16 @@ different data arrays similar to those available in the 
numdiff software.")
               (file-name (git-file-name name version))
               (snippet
                #~(begin
-                   (use-modules (guix build utils)
-                                (ice-9 ftw)
-                                (srfi srfi-26))
+                   (use-modules (guix build utils))
                    ;; Delete any bundled .jar files.
                    (for-each delete-file (find-files "." "\\.jar$"))
-                   (define (delete-all-but directory . preserve)
-                     (with-directory-excursion directory
-                       (let* ((pred (negate (cut member <>
-                                                 (cons* "." ".." preserve))))
-                              (items (scandir "." pred)))
-                         (for-each (cut delete-file-recursively <>) items))))
                    (delete-all-but "3rdparty"
-                                   "fastcv"     ;TODO: Unbundle these
-                                   "libspng"
-                                   "libtim-vx"
-                                   "orbbecsdk"
-                                   "quirc"
-                                   "zlib-ng")))
+                     "fastcv"           ;TODO: Unbundle these
+                     "libspng"
+                     "libtim-vx"
+                     "orbbecsdk"
+                     "quirc"
+                     "zlib-ng")))
               (sha256
                (base32
                 "15w4fqjqv5k1yw70jbjsnlgiky39mqpy05rvmm2fbyjrif4kbgkl"))))
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 9431edb8f9..8d3e627b93 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -1362,21 +1362,9 @@ code prior to it getting merged into @code{go-cid}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "00lwizzdfdx6kynxddal3all6q9dhwqanpkw0d0vxlwik4nkvxa5"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
-        #~(begin
-            ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-            ;; Consider to implement it as re-usable procedure in
-            ;; guix/build/utils or guix/build-system/go.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "." "ipfs")))))
+        #~(begin (delete-all-but "." "ipfs")))))
     (build-system go-build-system)
     (arguments
      (list
diff --git a/gnu/packages/kubernetes.scm b/gnu/packages/kubernetes.scm
index c12e0efbab..6dbc117fc9 100644
--- a/gnu/packages/kubernetes.scm
+++ b/gnu/packages/kubernetes.scm
@@ -48,16 +48,8 @@
        (file-name (git-file-name name version))
        (sha256
         (base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     ;; Replace symlinks to tests with file contents
                     (for-each
                      (lambda (f)
@@ -138,16 +130,8 @@
        (file-name (git-file-name name version))
        (sha256
         (base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "." "server")
                     (rename-file "server" "server.tmp")
                     (mkdir-p "server/v3")
@@ -221,16 +205,8 @@ system.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0d9rjyl5h0xm9isgr8b2fz8528wk3pds71rjl8g08fgsmsa5kicb"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet #~(begin
-                    (define (delete-all-but directory . preserve)
-                      (with-directory-excursion directory
-                        (let* ((pred (negate (cut member <>
-                                                  (cons* "." ".." preserve))))
-                               (items (scandir "." pred)))
-                          (for-each (cut delete-file-recursively <>) items))))
                     (delete-all-but "." "pkg")
                     (rename-file "pkg" "pkg.tmp")
                     (mkdir-p "pkg/v3")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index f3e998f7be..c8aa08d854 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -785,20 +785,10 @@ operating systems.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1sg6ifabci7xyp3zds1w906vx6jsmyjlfr6bqld7m7hj07by9ndd"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
-            (delete-all-but "autosetup"
-              "mutt-gettext.tcl"
-              "mutt-iconv.tcl")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "autosetup"
+                    "mutt-gettext.tcl"
+                    "mutt-iconv.tcl"))))
     (build-system gnu-build-system)
     (inputs
      (list cyrus-sasl
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 5d975bc753..fde76b58ba 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -336,18 +336,9 @@ software vendors, application developers and computer 
science researchers.")
        (uri (string-append "https://www.open-mpi.org/software/ompi/v";
                            (version-major+minor version)
                            "/downloads/openmpi-" version ".tar.bz2"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; XXX: 'delete-all-but' is copied from the turbovnc package.
-           (define (delete-all-but directory . preserve)
-             (with-directory-excursion directory
-               (let* ((pred (negate (cut member <>
-                                         (cons* "." ".." preserve))))
-                      (items (scandir "." pred)))
-                 (for-each (cut delete-file-recursively <>) items))))
            ;; Delete as many bundled libraries as permitted by the build
            ;; system.
            (delete-all-but "3rd-party" "treematch" "Makefile.in" "Makefile.am")
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index aa0ed790c4..817bd39ac3 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -107,24 +107,9 @@ data in motion, or as a file format for data at rest.")
        (uri (git-reference
               (url "https://github.com/protocolbuffers/protobuf/";)
               (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 delete-file-recursively items))))
-            ;; "utf8_range" development now takes place in main protobuf
-            ;; repository.
-            (delete-all-but "third_party" "utf8_range")))
+       (modules '((guix build utils)))
+       ;; "utf8_range" development now takes place in main protobuf repository.
+       (snippet #~(delete-all-but "third_party" "utf8_range"))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1rdxm75bqwjj4qd3hz4vlydra6bw5dq391kwln2q0pjfx9gbrjhk"))))
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index f9a7e6e82b..3b89941e60 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -4846,26 +4846,11 @@ readable.")
         (base32 "1m6h6m0vm8vdx2nk26nvlbyfvlj0g9ph8cdh38258gn18fd2db0l"))
        (patches
         (search-patches "python-vaex-core-fix-tsl-use.patch"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)))
-       (snippet
-        #~(begin
-            ;; Delete everything except for vaex-core itself:
-            (define (delete-except exception)
-              (lambda (file)
-                (unless (member file `("." ".." ,exception))
-                  (delete-file-recursively file))))
-            (for-each (delete-except "packages") (scandir "."))
-            (with-directory-excursion "packages"
-              (for-each (delete-except "vaex-core") (scandir ".")))
-            (for-each (lambda (file)
-                        (unless (member file '("." ".."))
-                          (rename-file
-                           (string-append "packages/vaex-core/" file)
-                           file)))
-                      (scandir "packages/vaex-core"))
-            (delete-file-recursively "packages")
-            (delete-file-recursively "vendor")))))
+       (modules '((guix build utils)))
+       (snippet #~(begin
+                    (delete-all-but "." "packages")
+                    (delete-all-but "packages" "vaex-core")
+                    (delete-file-recursively "packages/vaex-core/vendor")))))
     (build-system pyproject-build-system)
     (arguments
      (list
@@ -4874,7 +4859,10 @@ readable.")
       #:tests? #f
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'unpack 'relax-requirements
+          (add-after 'unpack 'chdir
+            (lambda _
+              (chdir "packages/vaex-core")))
+          (add-after 'chdir 'relax-requirements
             (lambda _
               (substitute* "setup.py"
                 ;; "dask!=2022.4.0,<2024.9"; there is a note "fingerprinting
diff --git a/gnu/packages/specifications.scm b/gnu/packages/specifications.scm
index e3e706ecdb..add1d33b16 100644
--- a/gnu/packages/specifications.scm
+++ b/gnu/packages/specifications.scm
@@ -46,19 +46,11 @@
        (file-name (git-file-name name version))
        (sha256
         (base32 "17iqvqs7w3z5c4acnjc6mixqkqz4rff2c7flfpnlwgfjgqy1a2zw"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         ;; XXX: Keep just some portion with valulable data and no license
         ;; issues.
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "."
                             "allsky"
                             "coordinates"
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index c8966cb31c..36eec9662e 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -3536,17 +3536,9 @@ modification time.")
        (file-name (fossil-file-name name version))
        (sha256
         (base32 "0haaczpjnjpkiikf0q70nfabm2csdk6dl9rh80j0sh90wfvkyqwm"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
             (delete-all-but "autosetup" "proj.tcl" "wh-common.tcl")
             (delete-file-recursively "extsrc")
             ;; Re-create Fossil check-out manifests,
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 7379317909..9600fd854b 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -183,9 +183,7 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols 
are supported.")
        (uri (git-reference
               (url "https://github.com/TurboVNC/turbovnc";)
               (commit version)))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
             ;; There are a few bundled Java libraries, such as jsch and jzlib,
@@ -193,12 +191,6 @@ RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols 
are supported.")
             ;; bundled under java/org.  These are used by the 'vncviewer'
             ;; program.  The jsch copy is modified and integrates changes from
             ;; https://github.com/mwiede/jsch, so cannot easily be un-bundled.
-            (define (delete-all-but directory . preserve)
-              (with-directory-excursion directory
-                (let* ((pred (negate (cut member <>
-                                          (cons* "." ".." preserve))))
-                       (items (scandir "." pred)))
-                  (for-each (cut delete-file-recursively <>) items))))
 
             ;; d3des, rfb (headers) and turbojpeg-jni are small and not
             ;; packaged in Guix, so preserve them.

Reply via email to