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

commit 683f12ca4f79027339a388a4f2f58b5b8c187303
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/containers.scm
      (go-github-com-opencontainers-image-spec-schema)
      (go-go-podman-io-common, go-go-podman-io-image-v5)
      (go-go-podman-io-storage): Likewise.
    * gnu/packages/databases.scm (mysql): Likewise.
    * gnu/packages/debug.scm (fandango): Likewise.
    * gnu/packages/electronics.scm (hal, librepcb, nextpnr, surelog):
      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/gnome.scm (gjs): 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-check.scm
      (go-github-com-go-openapi-swag-jsonutils-fixtures-test): 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-profiler)
      (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-sns)
      (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-go-openapi-swag-loading)
      
(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-opentracing-contrib-go-grpc-test)
      (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-instrumentation-net-http-httptrace)
      (go-go-opentelemetry-io-contrib-propagators-autoprop)
      (go-go-opentelemetry-io-otel-bridge-opentracing)
      (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-golang-getoutline-org-sdk-x)
      (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-go-openapi-swag-jsonutils)
      (go-github-com-go-openapi-swag-yamlutils)
      (go-github-com-moby-sys-atomicwriter, go-github-com-moby-sys-devices)
      (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.
    
    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/containers.scm       |  76 +---
 gnu/packages/databases.scm        |  11 +-
 gnu/packages/debug.scm            |  10 +-
 gnu/packages/electronics.scm      | 105 ++---
 gnu/packages/emacs-xyz.scm        |  11 +-
 gnu/packages/emulators.scm        |  85 +---
 gnu/packages/game-development.scm |  10 +-
 gnu/packages/gnome.scm            |  15 +-
 gnu/packages/golang-apps.scm      |  10 +-
 gnu/packages/golang-build.scm     |  33 +-
 gnu/packages/golang-check.scm     |  10 +-
 gnu/packages/golang-web.scm       | 871 +++++---------------------------------
 gnu/packages/golang-xyz.scm       | 226 ++--------
 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   |  18 +-
 gnu/packages/version-control.scm  |  10 +-
 gnu/packages/vnc.scm              |  10 +-
 25 files changed, 221 insertions(+), 1464 deletions(-)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 4c8c5a0dc4..270888d0a5 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -2019,18 +2019,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 11d6fac83b..85be7736e2 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3833,20 +3833,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/containers.scm b/gnu/packages/containers.scm
index 24c5e8fe57..0e18a95647 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -491,25 +491,8 @@ The binary is called @command{gvproxy}.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0jg1wfbr6rva24cz6q6d73wgaridzkh9sclzm2dwxpiwmbkcas38"))
-         (modules '((guix build utils)
-                    (ice-9 ftw)
-                    (srfi srfi-26)))
-         (snippet
-          #~(begin
-              (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 "." "schema")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "schema"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -621,24 +604,9 @@ unprivileged user, known as \"Rootless mode\".")
        (file-name (git-file-name name version))
        (sha256
         (base32 "040snqsg3il98pz9w8442wdzwm2rm07yqbch87f4jic4p4s0707s"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (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 "." "common")
             ;; Module name has been changed upstream.
             (substitute* (find-files "." "\\.go$")
@@ -728,24 +696,9 @@ those files in github.com/containers repos.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "17qjzgc3h89sa0y8qkviz5gry1kvkkm3j79yhn78c7gbmqcx5v0j"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (modules '((guix build utils)))
        (snippet
         #~(begin
-            (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 "." "image")
             ;; This is a workaround to provide a correct import-path.
             (rename-file "image" "tmp")
@@ -863,25 +816,8 @@ also implements \"simple image signing\".  It's a 
successor of
        (file-name (git-file-name name version))
        (sha256
         (base32 "0ywj80wkpyq2yhizsdlfh0n2fxip75042rsk7jm4vyp98bb18rb6"))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
-       (snippet
-        #~(begin
-            (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 "." "storage")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "storage"))))
     (build-system go-build-system)
     (arguments
      (list
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 3420665b06..4b8f7deb6e 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1098,18 +1098,9 @@ auto-completion and syntax highlighting.")
               (sha256
                (base32
                 "0v9hc8yzp0f5pwl4kr1a8k7lwyf62g95klxb6avfrc2npjx79dbl"))
-              (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 bundled source libraries.
                    (delete-all-but "extra"
                                    ;; XXX: The build system doesn't currently
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 8787652a62..b8f144390c 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1109,17 +1109,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 a10313ce8a..37edfff328 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -872,18 +872,8 @@ Simulator Trace} files.")
         (base32 "1mb8mdrw8kp9mxj7ayv9gw59ghkbaj4jy1pbba8ia3s2nbzwqwp0"))
        (patches
         (search-patches "hal-disable-googletest.patch"))
-       (snippet
-        #~(begin
-            (use-modules (guix build utils)
-                         (ice-9 ftw)
-                         (srfi srfi-26))
-            (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 "deps" "abc" "subprocess")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "deps" "abc" "subprocess"))))
     (build-system qt-build-system)
     (arguments
      (list
@@ -1862,33 +1852,22 @@ exploration and optimization.")
               (commit version)
               (recursive? #t)))
        (file-name (git-file-name name version))
-       (modules '((guix build utils)
-                  (ice-9 ftw)
-                  (srfi srfi-26)))
+       (sha256 (base32 "1g3k2g2p5yy7zk971bg7qh4k38p30aydp27c5bfb02gn7djknz7w"))
+       (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")))
-       (sha256
-        (base32 "1g3k2g2p5yy7zk971bg7qh4k38p30aydp27c5bfb02gn7djknz7w"))))
+        #~(delete-all-but "libs"
+            "delaunay-triangulation"
+            "dxflib"
+            ;; "fontobene-qt"
+            ;; "googletest"
+            ;; "hoedown"
+            "librepcb"
+            ;; "muparser"
+            "optional"
+            "parseagle"
+            ;; "polyclipping"
+            ;; "quazip"
+            "type_safe"))))
     (build-system qt-build-system)
     (arguments
      (list
@@ -2447,27 +2426,16 @@ layout of a circuit corresponds to the desired 
netlists.")
               ;; no longer have their original upstream.
               (recursive? #t)))
        (file-name (git-file-name name 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))))
-            (delete-all-but "3rdparty"
-                            ;; The following sources have all been patched, so
-                            ;; cannot easily be unbundled.
-                            "QtPropertyBrowser"
-                            "json11"
-                            "python-console"
-                            "oourafft"
-                            "imgui"
-                            "qtimgui")))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "3rdparty"
+                    ;; The following sources have all been patched, so
+                    ;; cannot easily be unbundled.
+                    "QtPropertyBrowser"
+                    "json11"
+                    "python-console"
+                    "oourafft"
+                    "imgui"
+                    "qtimgui"))
        (sha256
         (base32 "1mb2dywv4gd52vzmml7rlyqdv4psw0l0gfy0mgwsknxblps3aha1"))))
     (outputs '("out" "bba"))
@@ -4952,21 +4920,10 @@ code{yosys}-based formal hardware verification flows.")
               ;; Custom verion of the antlr4; see third_party/README.
               (recursive? #t)))
        (file-name (git-file-name name version))
-       (snippet
-        #~(begin
-            (use-modules (guix build utils)
-                         (ice-9 ftw)
-                         (srfi srfi-26))
-            (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 "third_party"
-                            "antlr4" "antlr4_bin" "tests" "UVM")))
-       (sha256
-        (base32 "0pj84bb3iyhrq09ggwfbhdhzb5c3d9ifga87pn0rjw9ym17ns1vh"))))
+       (sha256 (base32 "0pj84bb3iyhrq09ggwfbhdhzb5c3d9ifga87pn0rjw9ym17ns1vh"))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "third_party"
+                    "antlr4" "antlr4_bin" "tests" "UVM"))))
     (build-system cmake-build-system)
     (arguments
      (list
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a1a606d31b..ebe6209eb6 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -16748,18 +16748,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 3e82bd92ec..54436654c3 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -502,13 +502,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
@@ -698,14 +691,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
@@ -1133,17 +1118,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")))))
@@ -2371,42 +2348,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
@@ -3063,16 +3007,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"
@@ -3913,24 +3848,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 a3697e91f9..bd3f56bc85 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1194,17 +1194,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/gnome.scm b/gnu/packages/gnome.scm
index 400375893c..bb52b79d5f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8121,20 +8121,9 @@ the GNU Shepherd.")
        (sha256
         (base32
          "0ly43lcpafl0an3k4g4mvwrwvc78f0y91ckdi6qn13ky67rvk81h"))
-       (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 "subprojects"
-                            "gobject-introspection-tests")))))
+        #~(delete-all-but "subprojects" "gobject-introspection-tests"))))
     (build-system meson-build-system)
     (outputs '("out" "debug"))
     (arguments
diff --git a/gnu/packages/golang-apps.scm b/gnu/packages/golang-apps.scm
index 80ad63d853..cc0c06be3e 100644
--- a/gnu/packages/golang-apps.scm
+++ b/gnu/packages/golang-apps.scm
@@ -193,17 +193,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 70d99a41a7..d49aab3c8f 100644
--- a/gnu/packages/golang-build.scm
+++ b/gnu/packages/golang-build.scm
@@ -1555,17 +1555,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)
@@ -1595,17 +1587,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")))))
@@ -1638,18 +1622,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-check.scm b/gnu/packages/golang-check.scm
index d05e0ee2c5..a0d5f71238 100644
--- a/gnu/packages/golang-check.scm
+++ b/gnu/packages/golang-check.scm
@@ -1288,17 +1288,9 @@ ci-info} in Go.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0rg5q7xif4gmhc99kkgvnz03d0d0z2vanyv8xa4myn6ykvacw458"))
-       (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 "jsonutils" "fixtures_test")
             (delete-all-but "." "jsonutils")))))
     (build-system go-build-system)
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index a673448d5c..fa5ca50047 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -504,16 +504,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)
@@ -571,16 +563,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)
@@ -643,17 +627,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
@@ -690,17 +665,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
@@ -736,18 +702,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
@@ -795,17 +751,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
@@ -841,18 +788,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
@@ -887,18 +824,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 "." "profiler")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "profiler"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -942,17 +869,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
@@ -987,18 +905,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
@@ -1059,17 +967,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
@@ -1124,18 +1023,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
@@ -2809,21 +2698,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
@@ -2858,21 +2734,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
@@ -2915,17 +2778,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")
@@ -2991,19 +2846,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
@@ -3038,17 +2882,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")))))
@@ -3081,17 +2917,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)
@@ -3125,17 +2953,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)
@@ -3252,17 +3072,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
-            (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" "sns")
             (delete-all-but "." "service")))))
     (build-system go-build-system)
@@ -3296,20 +3108,9 @@ Amazon Simple Notification Service. ")
        (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)
@@ -3342,17 +3143,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)
@@ -3562,17 +3355,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)
@@ -3729,16 +3514,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)
@@ -3772,16 +3549,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)
@@ -3822,16 +3591,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)
@@ -3863,16 +3624,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")
@@ -3913,16 +3666,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")
@@ -3958,16 +3703,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")))))
@@ -4008,16 +3745,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")))))
@@ -5572,18 +5301,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
@@ -7186,18 +6905,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
@@ -8551,18 +8260,8 @@ the go-openapi and go-swagger projects.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0rg5q7xif4gmhc99kkgvnz03d0d0z2vanyv8xa4myn6ykvacw458"))
-       (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 "." "loading")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "loading"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -10022,17 +9721,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)
@@ -10079,17 +9770,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)
@@ -10135,17 +9818,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)
@@ -10184,17 +9859,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)
@@ -10822,17 +10489,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)
@@ -11033,17 +10692,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
@@ -15190,18 +14840,9 @@ control the daemon.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "175i8w410z4532krammdard8gn13q4mr6bfadf81gqyd3ab60ksy"))
-       (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
@@ -15989,18 +15630,8 @@ client or server.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "1igrpi9yyjpzqyzyvgc6kl5l043x1hmkki26bnny30cmxahmjnrv"))
-       (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 "." "test")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "test"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -19113,17 +18744,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")
@@ -19162,17 +18785,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")
@@ -19213,17 +18828,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")
@@ -19261,17 +18868,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")
@@ -22780,17 +22379,9 @@ progress tracking and timeout support.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0xg0bh3fv4av63ika8f7vgj4f929b108ia5ccyqrv00j3k4vyjm1"))
-       (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 "." "api")
             ;; This is a workaround to provide a correct import-path.
             (rename-file "api" "tmp")
@@ -22833,17 +22424,9 @@ interacting with the etcd v3 API.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0xg0bh3fv4av63ika8f7vgj4f929b108ia5ccyqrv00j3k4vyjm1"))
-       (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")
             ;; This is a workaround to provide a correct import-path.
@@ -23028,18 +22611,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
@@ -23067,17 +22640,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")))))
@@ -23116,17 +22681,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")))))
@@ -23161,17 +22718,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)
@@ -23251,17 +22800,9 @@ Container Service, ECS} instances.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "06h5rvvji92dj25vb37s9vmvp5fignbp7zbigbdhbql16gfhp225"))
-       (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 "instrumentation/net/http/httptrace"
                             "otelhttptrace")
             (delete-all-but "instrumentation/net/http" "httptrace")
@@ -23355,20 +22896,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)
@@ -23634,17 +23164,9 @@ go.opentelemetry.io/otel/trace.")
        (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 "bridge" "opentracing")
             (delete-all-but "." "bridge")))))
     (build-system go-build-system)
@@ -23716,17 +23238,9 @@ API calls to the @code{OpenTelemetry} SDK.")
        (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)
@@ -23767,17 +23281,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)
@@ -23816,20 +23322,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
@@ -23871,17 +23366,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")))))
@@ -23928,20 +23415,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)
@@ -23983,20 +23459,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)
@@ -24039,17 +23504,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")))))
@@ -24092,17 +23549,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")))))
@@ -24139,20 +23588,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)
@@ -24187,21 +23625,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
@@ -24246,17 +23671,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)
@@ -24290,20 +23707,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")))))
@@ -24340,20 +23746,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)
@@ -24388,20 +23783,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)
@@ -24672,18 +24056,8 @@ most complex network-level interference.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "01hgmz80292q6sd4p43ldvnq1fwkknq6hzsg671nxfhzz99v30dx"))
-       (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 "." "x")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "x"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -25044,20 +24418,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
@@ -25102,17 +24465,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)
@@ -25214,18 +24569,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
@@ -25255,18 +24601,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
@@ -25610,18 +24946,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 7e11803d57..74a68ffa66 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -1564,26 +1564,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
@@ -5778,18 +5760,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
@@ -5826,14 +5798,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
@@ -5891,18 +5856,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
@@ -6054,18 +6009,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
@@ -6153,21 +6099,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
@@ -7412,21 +7345,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
@@ -13234,17 +13154,9 @@ etc.).")
        (file-name (git-file-name name version))
        (sha256
         (base32 "0rg5q7xif4gmhc99kkgvnz03d0d0z2vanyv8xa4myn6ykvacw458"))
-       (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 "." "jsonutils")
             ;; Submodules with their own go.mod files and packaged separately:
             (delete-file-recursively "jsonutils/fixtures_test")
@@ -13293,18 +13205,8 @@ with the order of keys maintained
        (file-name (git-file-name name version))
        (sha256
         (base32 "0rg5q7xif4gmhc99kkgvnz03d0d0z2vanyv8xa4myn6ykvacw458"))
-       (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 "." "yamlutils")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "yamlutils"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -18278,18 +18180,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
@@ -22427,18 +22320,9 @@ scheduling and more.")
        (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
@@ -22492,18 +22376,8 @@ https://github.com/syndtr/gocapability.";)
        (file-name (git-file-name name version))
        (sha256
         (base32 "0r3dcyw3snklr40z09rzyx9pva8lic1h5wqrv222l0b4dm08d3ny"))
-       (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 "." "devices")))))
+       (modules '((guix build utils)))
+       (snippet #~(delete-all-but "." "devices"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -22535,18 +22409,9 @@ that need to configure runc's device list based on 
existing devices.")
        (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
@@ -34715,21 +34580,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
@@ -36195,18 +36047,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)
@@ -37162,20 +37005,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 c354c32bff..f8b924ad7a 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 def344cfff..68364ed2be 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -1392,21 +1392,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 59197f5915..2ce08199fb 100644
--- a/gnu/packages/kubernetes.scm
+++ b/gnu/packages/kubernetes.scm
@@ -92,16 +92,8 @@ tree for exported @acronym{CustomResourceDefinition, CRD} 
types.")
        (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)
@@ -182,16 +174,8 @@ tree for exported @acronym{CustomResourceDefinition, CRD} 
types.")
        (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")
@@ -265,16 +249,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 290434229d..8a35604531 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -865,20 +865,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 2bf77a8d7c..a0b9de1f1b 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 ddc1e18a33..5020dea14d 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 6cc1af1e4b..1ff17aedf2 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -6420,26 +6420,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
@@ -6448,7 +6433,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 fd2800ff25..57a0cd6e4f 100644
--- a/gnu/packages/specifications.scm
+++ b/gnu/packages/specifications.scm
@@ -46,24 +46,12 @@
        (file-name (git-file-name name version))
        (sha256
         (base32 "0wl2mxyv974q7si33irl6jvfd432ymnbrsxyrz9xvczlvn87f67b"))
-       (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"
-                            "galactic_center"
-                            "l1448")))))
+        #~(delete-all-but "."
+            "allsky" "coordinates" "galactic_center" "l1448"))))
     (build-system copy-build-system)
     (arguments
      (list
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cc0d989733..719da10b63 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -3799,17 +3799,9 @@ modification time.")
              (check-in version)))
        (sha256
         (base32 "16zrha8vb4dwfmyq86iaz2xz4k91dh018bk94xkxgqbyrr33nm7y"))
-       (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")))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index 68f65e372f..9317fa08cc 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