summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-03-16 07:47:34 -0400
committerMark H Weaver <mhw@netris.org>2018-03-16 09:08:31 -0400
commit6cbee49d6668eb7fd738080666f66febfce8c7e8 (patch)
treea98161dd7448bfc076f2dbe64ca41aeacacd3229 /gnu/packages
parent1e5005e2eea867c6e762c1fb97731080b6666498 (diff)
downloadguix-6cbee49d6668eb7fd738080666f66febfce8c7e8.tar.gz
gnu: All snippets report errors using exceptions, else return #t.
* gnu/packages/admin.scm, gnu/packages/algebra.scm, gnu/packages/audio.scm,
gnu/packages/backup.scm, gnu/packages/base.scm,
gnu/packages/bioinformatics.scm, gnu/packages/cdrom.scm,
gnu/packages/chez.scm, gnu/packages/code.scm, gnu/packages/compression.scm,
gnu/packages/cross-base.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm,
gnu/packages/databases.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm,
gnu/packages/emulators.scm, gnu/packages/engineering.scm,
gnu/packages/enlightenment.scm, gnu/packages/fpga.scm,
gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm,
gnu/packages/gcc.scm, gnu/packages/geo.scm, gnu/packages/ghostscript.scm,
gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm,
gnu/packages/gnuzilla.scm, gnu/packages/graphics.scm, gnu/packages/gtk.scm,
gnu/packages/guile.scm, gnu/packages/irc.scm, gnu/packages/java.scm,
gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm,
gnu/packages/lxde.scm, gnu/packages/machine-learning.scm,
gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/messaging.scm,
gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/music.scm,
gnu/packages/netpbm.scm, gnu/packages/networking.scm, gnu/packages/node.scm,
gnu/packages/nvi.scm, gnu/packages/ocaml.scm, gnu/packages/pdf.scm,
gnu/packages/perl.scm, gnu/packages/php.scm, gnu/packages/plotutils.scm,
gnu/packages/pretty-print.scm, gnu/packages/profiling.scm,
gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm,
gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/robotics.scm,
gnu/packages/sawfish.scm, gnu/packages/scanner.scm, gnu/packages/scheme.scm,
gnu/packages/scribus.scm, gnu/packages/sdl.scm,
gnu/packages/serialization.scm, gnu/packages/shells.scm,
gnu/packages/slang.scm, gnu/packages/smalltalk.scm, gnu/packages/ssh.scm,
gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/tbb.scm,
gnu/packages/terminals.scm, gnu/packages/texinfo.scm,
gnu/packages/text-editors.scm, gnu/packages/textutils.scm,
gnu/packages/tls.scm, gnu/packages/unrtf.scm,
gnu/packages/version-control.scm, gnu/packages/video.scm,
gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wm.scm,
gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm:
In all snippets, report errors using exceptions, or else return #t.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm50
-rw-r--r--gnu/packages/algebra.scm3
-rw-r--r--gnu/packages/audio.scm19
-rw-r--r--gnu/packages/backup.scm3
-rw-r--r--gnu/packages/base.scm16
-rw-r--r--gnu/packages/bioinformatics.scm88
-rw-r--r--gnu/packages/cdrom.scm28
-rw-r--r--gnu/packages/chez.scm6
-rw-r--r--gnu/packages/code.scm3
-rw-r--r--gnu/packages/compression.scm21
-rw-r--r--gnu/packages/cross-base.scm6
-rw-r--r--gnu/packages/crypto.scm17
-rw-r--r--gnu/packages/cups.scm9
-rw-r--r--gnu/packages/databases.scm13
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/emacs.scm52
-rw-r--r--gnu/packages/emulators.scm15
-rw-r--r--gnu/packages/engineering.scm13
-rw-r--r--gnu/packages/enlightenment.scm3
-rw-r--r--gnu/packages/fpga.scm6
-rw-r--r--gnu/packages/freedesktop.scm3
-rw-r--r--gnu/packages/ftp.scm3
-rw-r--r--gnu/packages/games.scm83
-rw-r--r--gnu/packages/gcc.scm56
-rw-r--r--gnu/packages/geo.scm3
-rw-r--r--gnu/packages/ghostscript.scm3
-rw-r--r--gnu/packages/gl.scm8
-rw-r--r--gnu/packages/glib.scm6
-rw-r--r--gnu/packages/gnome.scm3
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/graphics.scm3
-rw-r--r--gnu/packages/gtk.scm16
-rw-r--r--gnu/packages/guile.scm31
-rw-r--r--gnu/packages/irc.scm3
-rw-r--r--gnu/packages/java.scm20
-rw-r--r--gnu/packages/kerberos.scm8
-rw-r--r--gnu/packages/linux.scm75
-rw-r--r--gnu/packages/lisp.scm36
-rw-r--r--gnu/packages/lxde.scm3
-rw-r--r--gnu/packages/machine-learning.scm3
-rw-r--r--gnu/packages/mail.scm8
-rw-r--r--gnu/packages/maths.scm61
-rw-r--r--gnu/packages/messaging.scm7
-rw-r--r--gnu/packages/monitoring.scm8
-rw-r--r--gnu/packages/mp3.scm12
-rw-r--r--gnu/packages/music.scm61
-rw-r--r--gnu/packages/netpbm.scm3
-rw-r--r--gnu/packages/networking.scm8
-rw-r--r--gnu/packages/node.scm3
-rw-r--r--gnu/packages/nvi.scm3
-rw-r--r--gnu/packages/ocaml.scm30
-rw-r--r--gnu/packages/pdf.scm12
-rw-r--r--gnu/packages/perl.scm3
-rw-r--r--gnu/packages/php.scm3
-rw-r--r--gnu/packages/plotutils.scm19
-rw-r--r--gnu/packages/pretty-print.scm8
-rw-r--r--gnu/packages/profiling.scm6
-rw-r--r--gnu/packages/pulseaudio.scm8
-rw-r--r--gnu/packages/python-crypto.scm3
-rw-r--r--gnu/packages/python.scm3
-rw-r--r--gnu/packages/qt.scm25
-rw-r--r--gnu/packages/robotics.scm10
-rw-r--r--gnu/packages/sawfish.scm13
-rw-r--r--gnu/packages/scanner.scm8
-rw-r--r--gnu/packages/scheme.scm13
-rw-r--r--gnu/packages/scribus.scm6
-rw-r--r--gnu/packages/sdl.scm14
-rw-r--r--gnu/packages/serialization.scm8
-rw-r--r--gnu/packages/shells.scm7
-rw-r--r--gnu/packages/slang.scm3
-rw-r--r--gnu/packages/smalltalk.scm3
-rw-r--r--gnu/packages/ssh.scm3
-rw-r--r--gnu/packages/sync.scm3
-rw-r--r--gnu/packages/syncthing.scm5
-rw-r--r--gnu/packages/tbb.scm8
-rw-r--r--gnu/packages/terminals.scm45
-rw-r--r--gnu/packages/texinfo.scm4
-rw-r--r--gnu/packages/text-editors.scm12
-rw-r--r--gnu/packages/textutils.scm7
-rw-r--r--gnu/packages/tls.scm3
-rw-r--r--gnu/packages/unrtf.scm2
-rw-r--r--gnu/packages/version-control.scm7
-rw-r--r--gnu/packages/video.scm42
-rw-r--r--gnu/packages/vpn.scm3
-rw-r--r--gnu/packages/web.scm27
-rw-r--r--gnu/packages/wm.scm21
-rw-r--r--gnu/packages/wxwidgets.scm3
-rw-r--r--gnu/packages/xdisorg.scm16
-rw-r--r--gnu/packages/xorg.scm10
89 files changed, 815 insertions, 538 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index ad31bc498f..33bf6cd3f8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -893,13 +893,15 @@ at once based on a Perl regular expression.")
                 "0751mb9l2f0jrk3vj6q8ilanifd121dliwk0c34g8k0dlzsv3kd7"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile.in"
-                  (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
-                   ;; Don't try to chown root.
-                   "")
-                  (("mkdir -p \\$\\(ROTT_STATDIR\\)")
-                   ;; Don't attempt to create /var/lib/rottlog.
-                   "true")))))
+               '(begin
+                  (substitute* "Makefile.in"
+                    (("-o \\$\\{LOG_OWN\\} -g \\$\\{LOG_GROUP\\}")
+                     ;; Don't try to chown root.
+                     "")
+                    (("mkdir -p \\$\\(ROTT_STATDIR\\)")
+                     ;; Don't attempt to create /var/lib/rottlog.
+                     "true"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
@@ -963,7 +965,9 @@ system administrator.")
                 "00pxp74xkwdcmrjwy55j0k8p684jk1zx3nzdc11v30q8q8kwnmkj"))
               (modules '((guix build utils)))
               (snippet
-               '(delete-file-recursively "lib/zlib"))))
+               '(begin
+                  (delete-file-recursively "lib/zlib")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -1357,9 +1361,11 @@ environment variable is set and output is to tty.")
                (base32
                 "1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
               (modules '((guix build utils)))
-              (snippet '(substitute* "tests/testsuite"
-                          (("#![[:blank:]]?/bin/sh")
-                           "#!$SHELL")))))
+              (snippet '(begin
+                          (substitute* "tests/testsuite"
+                            (("#![[:blank:]]?/bin/sh")
+                             "#!$SHELL"))
+                          #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1747,14 +1753,16 @@ done with the @code{auditctl} utility.")
                 "08bga42ipymmbxd7wy4x5sl26c0ir1fm3n9rc6nqmhx69z66wyd8"))
               (modules '((guix build utils)))
               (snippet
-               '(map delete-file-recursively
-                 ;; Remove bundled lua, pcap, and pcre libraries.
-                 ;; FIXME: Remove bundled liblinear once packaged.
-                 '("liblua"
-                   "libpcap"
-                   "libpcre"
-                   ;; Remove pre-compiled binares.
-                   "mswin32")))))
+               '(begin
+                  (for-each delete-file-recursively
+                            ;; Remove bundled lua, pcap, and pcre libraries.
+                            ;; FIXME: Remove bundled liblinear once packaged.
+                            '("liblua"
+                              "libpcap"
+                              "libpcre"
+                              ;; Remove pre-compiled binares.
+                              "mswin32"))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("openssl" ,openssl)
@@ -2055,7 +2063,9 @@ Kerberos and Heimdal and FAST is supported with recent MIT Kerberos.")
        (snippet
         ;; Remove binaries contained in the tarball which are only for the
         ;; target and can be regenerated anyway.
-        '(delete-file-recursively "bin"))
+        '(begin
+           (delete-file-recursively "bin")
+           #t))
        (file-name (string-append name "-" version ".tar.gz"))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 57f273cc7a..0f3e4229d8 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -730,7 +730,8 @@ Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
                     ;; See
                     ;; https://bitbucket.org/eigen/eigen/commits/ea8c22ce6920e982d15245ee41d0531a46a28e5d
                     ((".*svd_preallocate[^\n]*" &)
-                     (string-append "//" & " // Not supported by BDCSVD")))))))
+                     (string-append "//" & " // Not supported by BDCSVD")))
+                  #t))))
     (build-system cmake-build-system)
     (arguments
      '(;; Turn off debugging symbols to save space.
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index eb7b79ee7a..82fadfe175 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -209,7 +209,8 @@ streams from live audio.")
                     "libs/ardour/revision.cc"
                   (lambda (port)
                     (format port ,(string-append "#include \"ardour/revision.h\"
-namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
+namespace ARDOUR { const char* revision = \"" version "\" ; }"))
+                    #t)))
               (sha256
                (base32
                 "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"))
@@ -510,7 +511,9 @@ tools (analyzer, mono/stereo tools, crossovers).")
               (modules '((guix build utils)))
               (snippet
                ;; remove prebuilt binaries
-               '(delete-file-recursively "linux_32bit"))))
+               '(begin
+                  (delete-file-recursively "linux_32bit")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -2745,8 +2748,10 @@ result.")
                     version ".tar.bz2"))
               (snippet
                ;; Don't optimize for a specific processor architecture.
-               '(substitute* "libs/Makefile"
-                  (("^CXXFLAGS \\+= -march=native") "")))
+               '(begin
+                  (substitute* "libs/Makefile"
+                    (("^CXXFLAGS \\+= -march=native") ""))
+                  #t))
               (modules '((guix build utils)))
               (sha256
                (base32
@@ -2790,8 +2795,10 @@ engine.")
                     version ".tar.bz2"))
               (snippet
                ;; Don't optimize for a specific processor architecture.
-               '(substitute* '("apps/Makefile" "libs/Makefile")
-                  (("^CXXFLAGS \\+= -march=native") "")))
+               '(begin
+                  (substitute* '("apps/Makefile" "libs/Makefile")
+                    (("^CXXFLAGS \\+= -march=native") ""))
+                  #t))
               (modules '((guix build utils)))
               (sha256
                (base32
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 5487157c86..628c39a6eb 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -465,7 +465,8 @@ detection, and lossless compression.")
            ;; Remove bundled shared libraries.
            (with-directory-excursion "src/borg/algorithms"
              (for-each delete-file-recursively
-                       (list "blake2" "lz4" "zstd")))))))
+                       (list "blake2" "lz4" "zstd")))
+           #t))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((srfi srfi-26) ; for cut
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index f3001cb8bd..7dd9474d57 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -556,9 +556,11 @@ store.")
              ;; Disable 'ldconfig' and /etc/ld.so.cache.  The latter is
              ;; required on LFS distros to avoid loading the distro's libc.so
              ;; instead of ours.
-             '(substitute* "sysdeps/unix/sysv/linux/configure"
-                (("use_ldconfig=yes")
-                 "use_ldconfig=no")))
+             '(begin
+                (substitute* "sysdeps/unix/sysv/linux/configure"
+                  (("use_ldconfig=yes")
+                   "use_ldconfig=no"))
+                #t))
             (modules '((guix build utils)))
             (patches (search-patches "glibc-ldd-x86_64.patch"
                                      "glibc-versioned-locpath.patch"
@@ -1190,9 +1192,11 @@ and daylight-saving rules.")
               (snippet
                ;; Work around "declared gets" error on glibc systems (fixed by
                ;; Gnulib commit 66712c23388e93e5c518ebc8515140fa0c807348.)
-               '(substitute* "srclib/stdio.in.h"
-                  (("^#undef gets") "")
-                  (("^_GL_WARN_ON_USE \\(gets.*") "")))))
+               '(begin
+                  (substitute* "srclib/stdio.in.h"
+                    (("^#undef gets") "")
+                    (("^_GL_WARN_ON_USE \\(gets.*") ""))
+                  #t))))
     (build-system gnu-build-system)
     (synopsis "Character set conversion library")
     (description
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 46212de693..6fea723fd8 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -295,9 +295,10 @@ BAM files.")
                 "0093hkkvxmbwfaa7905s6185jymynvg42kq6sxv7fili11l5mxwz"))
               (patches (search-patches "bcftools-regidx-unsigned-char.patch"))
               (modules '((guix build utils)))
-              (snippet
-               ;; Delete bundled htslib.
-               '(delete-file-recursively "htslib-1.5"))))
+              (snippet '(begin
+                          ;; Delete bundled htslib.
+                          (delete-file-recursively "htslib-1.5")
+                          #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -1194,10 +1195,12 @@ errors at the end of reads.")
                 "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile"
-                  ;; replace BUILD_HOST and BUILD_TIME for deterministic build
-                  (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
-                  (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
+               '(begin
+                  (substitute* "Makefile"
+                    ;; replace BUILD_HOST and BUILD_TIME for deterministic build
+                    (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
+                    (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("perl" ,perl)
@@ -1391,10 +1394,12 @@ well as many of the command line options.")
                 "15z2w3bvnc0n4qmb9bd6d8ylc2h2nj883x2w9iixf4x3vki9b22i"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "setup.py"
-                  ;; remove dependency on outdated "distribute" module
-                  (("^from distribute_setup import use_setuptools") "")
-                  (("^use_setuptools\\(\\)") "")))))
+               '(begin
+                  (substitute* "setup.py"
+                    ;; remove dependency on outdated "distribute" module
+                    (("^from distribute_setup import use_setuptools") "")
+                    (("^use_setuptools\\(\\)") ""))
+                  #t))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;tests fail because test data are not included
@@ -1426,9 +1431,11 @@ multiple sequence alignments.")
                (base32
                 "0dzap2axin9cbbl0d825w294bpn00zagfm1sigamm4v2pm5bj9lp"))
               (modules '((guix build utils)))
-              (snippet
-               ;; Drop bundled htslib. TODO: Also remove samtools and bcftools.
-               '(delete-file-recursively "htslib"))))
+              (snippet '(begin
+                          ;; Drop bundled htslib. TODO: Also remove samtools
+                          ;; and bcftools.
+                          (delete-file-recursively "htslib")
+                          #t))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -1800,9 +1807,10 @@ time.")
               ;; for download from Sourceforge, but it has not been merged.
               (patches (search-patches "crossmap-allow-system-pysam.patch"))
               (modules '((guix build utils)))
-              ;; remove bundled copy of pysam
-              (snippet
-               '(delete-file-recursively "lib/pysam"))))
+              (snippet '(begin
+                          ;; remove bundled copy of pysam
+                          (delete-file-recursively "lib/pysam")
+                          #t))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
@@ -1911,7 +1919,8 @@ files.")
               (snippet
                '(begin
                   ;; Delete bundled libBigWig sources
-                  (delete-file-recursively "libBigWig")))))
+                  (delete-file-recursively "libBigWig")
+                  #t))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -3785,9 +3794,11 @@ sequences).")
                 "08znbvqq5xknfhmpp3wcj574zvi4p7i8zifi67c9qw9a6ikp42fj"))
               (modules '((guix build utils)))
               (snippet
-               ;; Delete bundled kseq.
-               ;; TODO: Also delete bundled murmurhash and open bloom filter.
-               '(delete-file "src/mash/kseq.h"))))
+               '(begin
+                  ;; Delete bundled kseq.
+                  ;; TODO: Also delete bundled murmurhash and open bloom filter.
+                  (delete-file "src/mash/kseq.h")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; No tests.
@@ -3965,18 +3976,19 @@ assembled metagenomic sequence.")
                (base32
                 "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip"))
               (modules '((guix build utils)))
-              (snippet
-               '(substitute* "setup.py"
-                  ;; Use setuptools, or else the executables are not
-                  ;; installed.
-                  (("distutils.core") "setuptools")
-                  ;; use "gcc" instead of "cc" for compilation
-                  (("^defines")
-                   "cc.set_executables(
+              (snippet '(begin
+                          (substitute* "setup.py"
+                            ;; Use setuptools, or else the executables are not
+                            ;; installed.
+                            (("distutils.core") "setuptools")
+                            ;; use "gcc" instead of "cc" for compilation
+                            (("^defines")
+                             "cc.set_executables(
 compiler='gcc',
 compiler_so='gcc',
 linker_exe='gcc',
-linker_so='gcc -shared'); defines")))))
+linker_so='gcc -shared'); defines"))
+                          #t))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2 ; only Python 2 is supported
@@ -4777,7 +4789,8 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
              (("^from distribute_setup import use_setuptools") "")
              (("^use_setuptools\\(\\)") "")
              ;; do not use bundled copy of pysam
-             (("^have_pysam = False") "have_pysam = True"))))))
+             (("^have_pysam = False") "have_pysam = True"))
+           #t))))
     (build-system python-build-system)
     (arguments `(#:python ,python-2))
     (inputs
@@ -5333,9 +5346,10 @@ structures, classes for genomic regions, mapped sequencing reads, etc.")
               (sha256
                (base32 "08r684l50pnxjpvmhzjgqq56yv9rfw90k8vx0nsrnrzk8mf9hsdq"))
               (modules '((guix build utils)))
-              (snippet
-               ;; Remove bundled samtools.
-               '(delete-file-recursively "samtools"))))
+              (snippet '(begin
+                          ;; Remove bundled samtools.
+                          (delete-file-recursively "samtools")
+                          #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;no "check" target
@@ -11807,7 +11821,8 @@ bytes of memory space, where n is the length of the string.")
                     (snippet
                      '(begin (delete-file-recursively "include/spdlog")
                              (for-each delete-file '("include/xxhash.h"
-                                                     "src/xxhash.c"))))))
+                                                     "src/xxhash.c"))
+                             #t))))
        ("libdivsufsort" ,libdivsufsort)
        ("libgff" ,libgff)
        ("tbb" ,tbb)
@@ -12532,7 +12547,8 @@ contains
        (snippet
         '(begin
            (for-each delete-file (find-files "jar/lib" "\\.jar$"))
-           (delete-file-recursively "3rdParty")))))
+           (delete-file-recursively "3rdParty")
+           #t))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f                      ; test data are not included
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 672064db12..21b8371f31 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -188,9 +188,11 @@ files.")
              (patches (search-patches "cdparanoia-fpic.patch"))
              (modules '((guix build utils)))
              (snippet
-              ;; Make libraries respect LDFLAGS.
-              '(substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
-                 (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname")))))
+              '(begin
+                 ;; Make libraries respect LDFLAGS.
+                 (substitute* '("paranoia/Makefile.in" "interface/Makefile.in")
+                   (("-Wl,-soname") "$(LDFLAGS) -Wl,-soname"))
+                 #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; there is no check target
@@ -449,9 +451,11 @@ the data.")
                 "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile"
-                  (("/usr/bin/install")
-                   "install")))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("/usr/bin/install")
+                     "install"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
@@ -479,11 +483,13 @@ from an audio CD.")
                 "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile"
-                  (("/usr/bin/install")
-                   "install")
-                  (("^etcdir = .*$")
-                   (string-append "etcdir = $(prefix)/etc\n"))))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("/usr/bin/install")
+                     "install")
+                    (("^etcdir = .*$")
+                     (string-append "etcdir = $(prefix)/etc\n")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index bb7767670d..c8e76b8ab4 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -74,8 +74,10 @@
        (modules '((guix build utils)))
        (snippet
         ;; Fix compilation with glibc >= 2.26, which removed xlocale.h.
-        '(substitute* "c/expeditor.c"
-           (("xlocale\\.h") "locale.h")))))
+        '(begin
+           (substitute* "c/expeditor.c"
+             (("xlocale\\.h") "locale.h"))
+           #t))))
     (build-system gnu-build-system)
     (inputs
      `(("ncurses" ,ncurses)
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 979c7a72b8..d454056668 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -414,7 +414,8 @@ functionality such as HTML output.")
            (let ((files (find-files "." ".*\\.cpp|.*\\.h")))
              (substitute* files
                (("#include ?\"rct/(.*.h)\"" all header)
-                (string-append "#include <rct/" header ">"))))))
+                (string-append "#include <rct/" header ">")))
+             #t)))
        (sha256
         (base32
          "0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2"))))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 04c33ca868..15a12d03c2 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -920,10 +920,11 @@ tarballs.")
                  (base32
                   "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n"))
                 (modules '((guix build utils)))
-                (snippet
-                 ;; This is a recursive submodule that is unnecessary for this
-                 ;; package, so delete it.
-                 '(delete-file-recursively "brotli/terryfy"))))
+                (snippet '(begin
+                            ;; This is a recursive submodule that is
+                            ;; unnecessary for this package, so delete it.
+                            (delete-file-recursively "brotli/terryfy")
+                            #t))))
       (build-system gnu-build-system)
       (native-inputs
        `(("autoconf" ,autoconf)
@@ -982,7 +983,9 @@ respectively, based on the reference implementation from Google.")
        (file-name (string-append name "-" version ".tar.gz"))
        (snippet
         ;; This file isn't freely distributable and has no effect on building.
-        '(delete-file "xdelta3/draft-korn-vcdiff.txt"))))
+        '(begin
+           (delete-file "xdelta3/draft-korn-vcdiff.txt")
+           #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -1450,7 +1453,9 @@ handles the 7z format which features very high compression ratios.")
                 (modules '((guix build utils)))
                 (snippet
                  ;; Remove pre-compiled object.
-                 '(delete-file "gzstream.o"))))
+                 '(begin
+                    (delete-file "gzstream.o")
+                    #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -1487,7 +1492,9 @@ functionality in a C++ iostream.")
        (modules '((guix build utils)))
        (snippet
         ;; Delete irrelevant pre-compiled binaries.
-        '(for-each delete-file (find-files "." "\\.exe$")))))
+        '(begin
+           (for-each delete-file (find-files "." "\\.exe$"))
+           #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index ea717fc071..bbd779ae4e 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -182,8 +182,10 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
 (define (cross-gcc-snippet target)
   "Return GCC snippet needed for TARGET."
   (cond ((target-mingw? target)
-         '(copy-recursively "libstdc++-v3/config/os/mingw32-w64"
-                            "libstdc++-v3/config/os/newlib"))
+         '(begin
+            (copy-recursively "libstdc++-v3/config/os/mingw32-w64"
+                              "libstdc++-v3/config/os/newlib")
+            #t))
         (else #f)))
 
 (define* (cross-gcc target
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 1e447d4f3a..df0141b353 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -181,7 +181,8 @@ OpenBSD tool of the same name.")
            (substitute* "src/crypto.cpp"
              (("argon2/argon2.h") "argon2.h"))
            (substitute* "configure.ac"
-             (("src/argon2/Makefile") ""))))
+             (("src/argon2/Makefile") ""))
+           #t))
        (sha256
         (base32
          "09yvkmbqbym3b5md4n96qc1s9sf2n8ji404hagih45rmsj49599x"))))
@@ -226,9 +227,11 @@ communication.")
          "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
        (modules '((guix build utils)))
        ;; Remove bundled dependencies in favour of proper inputs.
-       (snippet '(for-each delete-file-recursively
-                           (find-files "internal" "^tinyxml2-[0-9]"
-                                       #:directories? #t)))))
+       (snippet '(begin
+                   (for-each delete-file-recursively
+                             (find-files "internal" "^tinyxml2-[0-9]"
+                                         #:directories? #t))
+                   #t))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -270,8 +273,10 @@ the wrong hands.")
          "1dmgjcf7mnwc6h72xkvpaqpzxw8vmlnsmzz0s27pg0giwzm3sp0i"))
        (modules '((guix build utils)))
        ;; Create relative symbolic links instead of absolute ones to /lib/*
-       (snippet '(substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
-                                          "$(LNS) ")))))
+       (snippet '(begin
+                   (substitute* "Makefile" (("\\$\\(LNS\\) \\$\\(LIBDIR\\)/")
+                                            "$(LNS) "))
+                   #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index e09fd04a30..209f8da3d2 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -79,7 +79,8 @@
                   ;; output directory, not CUPS's prefix.
                   (substitute* "configure"
                     (("\\{CUPS_DATADIR\\}/data")
-                     "{prefix}/share/cups/data"))))))
+                     "{prefix}/share/cups/data"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" %output))
@@ -381,8 +382,10 @@ device-specific programs to convert and print many types of files.")
               (modules '((guix build utils)))
               (snippet
                ;; Fix type mismatch.
-               '(substitute* "prnt/hpcups/genPCLm.cpp"
-                  (("boolean") "bool")))))
+               '(begin
+                  (substitute* "prnt/hpcups/genPCLm.cpp"
+                    (("boolean") "bool"))
+                  #t))))
     (build-system gnu-build-system)
     (home-page "http://hplipopensource.com/")
     (synopsis "HP Printer Drivers")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 3635084328..f48474026b 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -435,7 +435,8 @@ applications.")
                                 (string-append "src/third_party/" dir)))
                             '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3"
                               "valgrind-3.11.0" "wiredtiger"
-                              "yaml-cpp-0.5.3" "zlib-1.2.8"))))
+                              "yaml-cpp-0.5.3" "zlib-1.2.8"))
+                  #t))
               (patches
                (list
                 (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
@@ -1932,10 +1933,12 @@ etc., and an SQL engine for performing simple SQL queries.")
               (modules '((guix build utils)))
               (snippet
                ;; Delete bundled lmdb source files.
-               '(for-each delete-file (list "lib/lmdb.h"
-                                            "lib/mdb.c"
-                                            "lib/midl.c"
-                                            "lib/midl.h")))))
+               '(begin
+                  (for-each delete-file (list "lib/lmdb.h"
+                                              "lib/mdb.c"
+                                              "lib/midl.c"
+                                              "lib/midl.h"))
+                  #t))))
     (build-system python-build-system)
     (inputs
      `(("lmdb" ,lmdb)))
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index b0f6ddaec2..a9b183c231 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -176,7 +176,9 @@ high-volume and high-reliability applications. The name BIND stands for
               (snippet
                ;; Delete bundled libltdl. XXX: This package also bundles
                ;; a modified libevent that cannot currently be removed.
-               '(delete-file-recursively "libltdl"))))
+               '(begin
+                  (delete-file-recursively "libltdl")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index c2c162c75c..7a3e3cc257 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -148,7 +148,8 @@
                      (list line
                            "\"~/.guix-profile/include\""
                            "\"/var/guix/profiles/system/profile/include\"")
-                     " ")))))))
+                     " ")))
+                 #t))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
@@ -837,21 +838,23 @@ provides an optional IDE-like error list.")
                 "1b0kalhn81dir26jgsma30i5bbly7d3s1ngqpf01zjjpr7lw5v0h"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile"
-                  (("/usr/bin/install-info")
-                   ;; No need to use 'install-info' since it would create a
-                   ;; useless 'dir' file.
-                   "true")
-                  (("^INFODIR=.*")
-                   ;; Install Info files to $out/share/info, not $out/info.
-                   "INFODIR := $(PREFIX)/share/info\n")
-                  (("/site-lisp/emms")
-                   ;; Install directly in share/emacs/site-lisp, not in a
-                   ;; sub-directory.
-                   "/site-lisp")
-                  (("^all: (.*)\n" _ rest)
-                   ;; Build 'emms-print-metadata'.
-                   (string-append "all: " rest " emms-print-metadata\n"))))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("/usr/bin/install-info")
+                     ;; No need to use 'install-info' since it would create a
+                     ;; useless 'dir' file.
+                     "true")
+                    (("^INFODIR=.*")
+                     ;; Install Info files to $out/share/info, not $out/info.
+                     "INFODIR := $(PREFIX)/share/info\n")
+                    (("/site-lisp/emms")
+                     ;; Install directly in share/emacs/site-lisp, not in a
+                     ;; sub-directory.
+                     "/site-lisp")
+                    (("^all: (.*)\n" _ rest)
+                     ;; Build 'emms-print-metadata'.
+                     (string-append "all: " rest " emms-print-metadata\n")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -1011,9 +1014,11 @@ within a specified width.  It is useful for displaying long track titles.")
               (modules '((guix build utils)))
               (snippet
                ;; We don't want to build and install the PDF.
-               '(substitute* "doc/Makefile.in"
-                  (("^doc_DATA = .*$")
-                   "doc_DATA =\n")))))
+               '(begin
+                  (substitute* "doc/Makefile.in"
+                    (("^doc_DATA = .*$")
+                     "doc_DATA =\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -2614,7 +2619,8 @@ to a key in your preferred mode.")
         '(begin
            (for-each delete-file '("dot-emacs.el" "Makefile"))
            (install-file "6.945-config/mit-scheme-doc.el" ".")
-           (delete-file-recursively "6.945-config")))
+           (delete-file-recursively "6.945-config")
+           #t))
        (file-name (string-append name "-" version ".tar.bz2"))
        (method url-fetch)
        (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
@@ -3739,7 +3745,8 @@ programming language.")
                   (substitute* "lisp/Makefile"
                     (("^\tjulia-mode.elc\\\\\n") "")
                     (("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
-                     "all: $(ELC) ess-custom.el"))))))
+                     "all: $(ELC) ess-custom.el"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
@@ -4985,7 +4992,8 @@ mode-line.")
                   ;; warnings about a missing directory.
                   (substitute* "yasnippet.el"
                     (("^ +'yas-installed-snippets-dir\\)\\)\n")
-                     "))\n"))))))
+                     "))\n"))
+                  #t))))
     (build-system emacs-build-system)
     (home-page "https://github.com/joaotavora/yasnippet")
     (synopsis "Yet another snippet extension for Emacs")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 142603b082..b4b585d51d 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -410,11 +410,13 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
               (modules '((guix build utils)))
               (snippet
                ;; Make sure we don't use the bundled software.
-               '(for-each
-                 (lambda (subdir)
-                   (let ((lib-subdir (string-append "src/third-party/" subdir)))
-                     (delete-file-recursively lib-subdir)))
-                 '("libpng" "lzma" "sqlite3" "zlib")))))
+               '(begin
+                  (for-each
+                   (lambda (subdir)
+                     (let ((lib-subdir (string-append "src/third-party/" subdir)))
+                       (delete-file-recursively lib-subdir)))
+                   '("libpng" "lzma" "sqlite3" "zlib"))
+                  #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no "test" target
@@ -1010,7 +1012,8 @@ towards a working Mupen64Plus for casual users.")
                   ;; Use system zlib.
                   (delete-file-recursively "source/zlib")
                   (substitute* "source/core/NstZlib.cpp"
-                    (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))))))
+                    (("#include \"../zlib/zlib.h\"") "#include <zlib.h>"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 449584f57e..aee60bd697 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -329,7 +329,9 @@ featuring various improvements and bug fixes.")))
                 "0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k"))
               (snippet
                ;; Remove a non-free file.
-               '(delete-file "doc/psfig.sty"))
+               '(begin
+                  (delete-file "doc/psfig.sty")
+                  #t))
               (patches (search-patches "fastcap-mulSetup.patch"
                                        "fastcap-mulGlobal.patch"))))
     (build-system gnu-build-system)
@@ -592,7 +594,8 @@ as well as pick-place files.")
                     ;; Use #include <catch.hpp>.
                     (substitute* (find-files "." "\\.[ch]pp$")
                       (("catch/catch\\.hpp")
-                       "catch.hpp"))))))
+                       "catch.hpp"))
+                    #t))))
       (build-system cmake-build-system)
       (arguments
        `(;; Have the RUNPATH of libao.so point to $libdir, where libefsw.so
@@ -1152,7 +1155,8 @@ bindings for Python, Java, OCaml and more.")
                   (substitute* "libr/parse/p/Makefile"
                     (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
                   (substitute* "libr/bin/p/Makefile"
-                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))))))
+                    (("LDFLAGS\\+=") "LDFLAGS+=-Wl,-rpath=$(LIBDIR) "))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f; tests require git and network access
@@ -1257,7 +1261,8 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
                     (("src/ciderlib/input/Makefile") "")
                     (("src/ciderlib/support/Makefile") "")
                     (("src/ciderlib/oned/Makefile") "")
-                    (("src/ciderlib/twod/Makefile") ""))))))
+                    (("src/ciderlib/twod/Makefile") ""))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(;; No tests for libngspice exist.
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index a0bf841415..b6b0c9a145 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -202,7 +202,8 @@ removable devices or support for multimedia.")
                                  "data/themes/Makefile.am"
                                  "data/themes/nyanology/Makefile.in"
                                  "data/themes/nyanology/Makefile.am")
-                    (("-fd \\$\\(top_srcdir\\)/data/fonts") ""))))))
+                    (("-fd \\$\\(top_srcdir\\)/data/fonts") ""))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 60c5f96a87..0a5568a016 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -131,8 +131,10 @@ For synthesis, the compiler generates netlists in the desired format.")
               (file-name (string-append name "-" version "-checkout.tar.gz"))
               (modules '((guix build utils)))
               (snippet
-                '(substitute* "Makefile"
-                   (("ABCREV = .*") "ABCREV = default\n")))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("ABCREV = .*") "ABCREV = default\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 3c83e668b0..36ff49a573 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -233,7 +233,8 @@ the freedesktop.org XDG Base Directory specification.")
                   (substitute* "Makefile.am"
                     ;; Avoid validation against DTD because the DTDs for
                     ;; both doctype 4.2 and 4.5 are needed.
-                    (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
+                    (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ;FIXME: "make check" in the "po" directory fails.
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index 5a79edf245..22e5c918ee 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -112,7 +112,8 @@ reliability in mind.")
                   ;; This is free software, avoid any confusion.
                   (substitute* (find-files "." "\\.c$")
                     (("a freeware program")
-                     "free software"))))))
+                     "free software"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 6d44d8d91e..543edbe94c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -188,11 +188,13 @@ settings to tweak as well.")
               (modules '((guix build utils)))
               (snippet
                ;; Import cmath header for the std::pow function.
-               '(for-each (lambda (file)
-                            (substitute* file
-                              (("#include <math.h>")
-                               "#include <cmath>")))
-                          (find-files "src")))))
+               '(begin
+                  (for-each (lambda (file)
+                              (substitute* file
+                                (("#include <math.h>")
+                                 "#include <cmath>")))
+                            (find-files "src"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
@@ -682,9 +684,11 @@ watch your CPU playing while enjoying a cup of tea!")
               "151v6nign86m1a2vqz27krsccpc9m4d1jax4y43v2fa82wfj9qp0"))
             (modules '((guix build utils)))
             (snippet
-             '(substitute* "src/version.c"
-                           (("__DATE__") "")
-                           (("__TIME__") "")))))
+             '(begin
+                (substitute* "src/version.c"
+                  (("__DATE__") "")
+                  (("__TIME__") ""))
+                #t))))
    (build-system gnu-build-system)
    (arguments
     '(#:configure-flags '("--disable-cpu-opt")
@@ -896,7 +900,9 @@ can be explored and changed freely.")
        (modules '((guix build utils)))
        (snippet
         ;; Unbundle fonts.
-        '(delete-file-recursively "fonts"))))
+        '(begin
+           (delete-file-recursively "fonts")
+           #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags '("CC=gcc")
@@ -952,15 +958,15 @@ that beneath its ruins lay buried an ancient evil.")
         ;; In the future, if someone tries to make a graphical variant of
         ;; this package, they can deal with that mess themselves. :)
         '(begin
-           (for-each
-            (lambda (subdir)
-              (let ((lib-subdir (string-append "lib/" subdir)))
-                (delete-file-recursively lib-subdir)))
-            '("fonts" "icons" "sounds" "tiles"))
+           (for-each (lambda (subdir)
+                       (let ((lib-subdir (string-append "lib/" subdir)))
+                         (delete-file-recursively lib-subdir)))
+                     '("fonts" "icons" "sounds" "tiles"))
            (substitute* "lib/Makefile"
              ;; And don't try to invoke makefiles in the directories we removed
              (("gamedata customize help screens fonts tiles sounds icons user")
-              "gamedata customize help screens user"))))))
+              "gamedata customize help screens user"))
+           #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                                 ;no check target
@@ -1281,11 +1287,13 @@ destroy, the better your score.  The person with the highest score wins.")
                ;; We do not provide `ncurses.h' within an `ncursesw'
                ;; sub-directory, so patch the source accordingly.  See
                ;; <http://bugs.gnu.org/19018>.
-               '(for-each (lambda (file)
-                            (substitute* file
-                              (("ncursesw/ncurses.h")
-                               "ncurses.h")))
-                          (find-files "." "configure$|\\.c$")))))
+               '(begin
+                  (for-each (lambda (file)
+                              (substitute* file
+                                (("ncursesw/ncurses.h")
+                                 "ncurses.h")))
+                            (find-files "." "configure$|\\.c$"))
+                  #t))))
     (build-system gnu-build-system)
     (inputs `(("ncurses" ,ncurses)
               ("perl" ,perl)))
@@ -1989,7 +1997,9 @@ world}, @uref{http://evolonline.org, Evol Online} and
              (modules '((guix build utils)))
              (snippet
               ;; The DOS port contains proprietary software.
-              '(delete-file-recursively "os/dos"))))
+              '(begin
+                 (delete-file-recursively "os/dos")
+                 #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f              ; no "check" target
@@ -2839,7 +2849,8 @@ safety of the Chromium vessel.")
            (substitute* "Makefile"
              ;; Do not rely on $(GPERF) being an absolute file name
              (("\\[ -x \\$\\(GPERF\\) \\]")
-              "$(GPERF) --version >/dev/null 2>&1"))))
+              "$(GPERF) --version >/dev/null 2>&1"))
+           #t))
        (patches (search-patches "tuxpaint-stamps-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -4050,14 +4061,13 @@ fight against their plot and save his fellow rabbits from slavery.")
        (modules '((guix build utils)))
        (snippet
         #~(begin
-            (for-each
-             (lambda (name)
-               (let* ((dir (string-append "binaries/data/mods/" name))
-                      (file (string-append dir "/" name ".zip"))
-                      (unzip #$(file-append unzip "/bin/unzip")))
-                 (system* unzip "-d" dir file)
-                 (delete-file file)))
-             '("mod" "public"))
+            (for-each (lambda (name)
+                        (let* ((dir (string-append "binaries/data/mods/" name))
+                               (file (string-append dir "/" name ".zip"))
+                               (unzip #$(file-append unzip "/bin/unzip")))
+                          (system* unzip "-d" dir file)
+                          (delete-file file)))
+                      '("mod" "public"))
             #t))))
     (build-system trivial-build-system)
     (native-inputs `(("tar" ,tar)
@@ -4292,10 +4302,12 @@ Crowther & Woods, its original authors, in 1995.  It has been known as
          "0v2qgdfpvdzd1bcbp9v8pfahj1bgczsq2d4xfhh5wg11jgjcwz03"))
        (modules '((guix build utils)))
        (snippet
-        '(substitute* '("src/music.h" "src/tSDL.h")
-           (("#elif defined(__FreeBSD__)" line)
-            (string-append
-             line " || defined(__GNUC__)"))))))
+        '(begin
+           (substitute* '("src/music.h" "src/tSDL.h")
+             (("#elif defined(__FreeBSD__)" line)
+              (string-append
+               line " || defined(__GNUC__)")))
+           #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
@@ -4777,7 +4789,8 @@ You can save humanity and get programming skills!")
                   (delete-file-recursively "bzip2")
                   (delete-file-recursively "game-music-emu")
                   (delete-file-recursively "jpeg-6b")
-                  (delete-file-recursively "zlib")))))
+                  (delete-file-recursively "zlib")
+                  #t))))
     (arguments
      '(#:tests? #f
        #:configure-flags
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index e9c83997ab..2aa6970ea9 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -370,13 +370,15 @@ Go.  It also includes runtime support libraries for these languages.")
               ;; This is required for building with glibc-2.26.
               ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
               (snippet
-               '(for-each
-                  (lambda (dir)
-                    (substitute* (string-append "libgcc/config/"
-                                                dir "/linux-unwind.h")
-                      (("struct ucontext") "ucontext_t")))
-                  '("aarch64" "alpha" "bfin" "i386" "m68k"
-                    "pa" "sh" "tilepro" "xtensa")))))
+               '(begin
+                  (for-each
+                   (lambda (dir)
+                     (substitute* (string-append "libgcc/config/"
+                                                 dir "/linux-unwind.h")
+                       (("struct ucontext") "ucontext_t")))
+                   '("aarch64" "alpha" "bfin" "i386" "m68k"
+                     "pa" "sh" "tilepro" "xtensa"))
+                  #t))))
     (supported-systems %supported-systems)
     (inputs
      `(("isl" ,isl-0.11)
@@ -402,13 +404,15 @@ Go.  It also includes runtime support libraries for these languages.")
               ;; This is required for building with glibc-2.26.
               ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
               (snippet
-               '(for-each
-                  (lambda (dir)
-                    (substitute* (string-append "libgcc/config/"
-                                                dir "/linux-unwind.h")
-                      (("struct ucontext") "ucontext_t")))
-                  '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
-                    "pa" "sh" "tilepro" "xtensa")))))
+               '(begin
+                  (for-each
+                   (lambda (dir)
+                     (substitute* (string-append "libgcc/config/"
+                                                 dir "/linux-unwind.h")
+                       (("struct ucontext") "ucontext_t")))
+                   '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
+                     "pa" "sh" "tilepro" "xtensa"))
+                  #t))))
     ;; Override inherited texinfo-5 with latest version.
     (native-inputs `(("perl" ,perl)   ;for manpages
                      ("texinfo" ,texinfo)))))
@@ -440,9 +444,11 @@ Go.  It also includes runtime support libraries for these languages.")
                ;;
                ;;   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67590
                ;;   http://cgit.openembedded.org/openembedded-core/commit/?id=f6e47aa9b12f9ab61530c40e0343f451699d9077
-               '(substitute* "libcc1/configure"
-                  (("\\$gcc_cv_objdump -T")
-                   "$OBJDUMP_FOR_TARGET -T")))))
+               '(begin
+                  (substitute* "libcc1/configure"
+                    (("\\$gcc_cv_objdump -T")
+                     "$OBJDUMP_FOR_TARGET -T"))
+                  #t))))
     (inputs
      `(("isl" ,isl)
        ,@(package-inputs gcc-4.7)))))
@@ -468,13 +474,15 @@ Go.  It also includes runtime support libraries for these languages.")
               ;; This can be removed when gcc-6.5.0 is released.
               ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712
               (snippet
-               '(for-each
-                  (lambda (dir)
-                    (substitute* (string-append "libgcc/config/"
-                                                dir "/linux-unwind.h")
-                      (("struct ucontext") "ucontext_t")))
-                  '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
-                    "pa" "sh" "tilepro" "xtensa")))))
+               '(begin
+                  (for-each
+                   (lambda (dir)
+                     (substitute* (string-append "libgcc/config/"
+                                                 dir "/linux-unwind.h")
+                       (("struct ucontext") "ucontext_t")))
+                   '("aarch64" "alpha" "bfin" "i386" "m68k" "nios2"
+                     "pa" "sh" "tilepro" "xtensa"))
+                  #t))))
     (inputs
      `(("isl" ,isl)
        ,@(package-inputs gcc-4.7)))))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 9014cc3206..2c15fd5a59 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -207,7 +207,8 @@ and driving.")
              (("^all-am: .*$")
               "all-am: Makefile $(LTLIBRARIES) $(HEADERS) geo_config.h\n")
              (("^install-data-am: .*$")
-              "install-data-am: install-includeHEADERS"))))))
+              "install-data-am: install-includeHEADERS"))
+           #t))))
     (build-system gnu-build-system)
     (inputs
      `(("libjpeg-turbo" ,libjpeg-turbo)
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 345ac76317..e37ceb9e16 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -155,7 +155,8 @@ printing, and psresize, for adjusting page sizes.")
          '(begin
             (for-each delete-file-recursively '("freetype" "jbig2dec" "jpeg"
                                                 "lcms2" "libpng"
-                                                "tiff" "zlib"))))))
+                                                "tiff" "zlib"))
+            #t))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))                  ;19 MiB of HTML/PS doc + examples
     (arguments
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 0e416a9efd..b1b60d0040 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -478,9 +478,11 @@ glxgears, glxheads, and glxinfo.")
                 "0r37fg2s1f0jrvwh6c8cz5x6v4wqmhq42qm15cs9qs349q5c6wn5"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "config/Makefile.linux"
-                  (("= cc") "= gcc")
-                  (("/lib64") "/lib")))))
+               '(begin
+                  (substitute* "config/Makefile.linux"
+                    (("= cc") "= gcc")
+                    (("/lib64") "/lib"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index fe6b257963..b802777192 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -306,8 +306,10 @@ dynamic loading, and an object system.")
               (base32 "1y50pbn5qqbcv2h9rkz96wvv5jls2gma9bkqjq6wapmaszx5jw0d"))
              (modules '((guix build utils)))
              (snippet
-              '(substitute* "tools/g-ir-tool-template.in"
-                 (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@")))
+              '(begin
+                 (substitute* "tools/g-ir-tool-template.in"
+                   (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))
+                 #t))
              (patches (search-patches
                        "gobject-introspection-cc.patch"
                        "gobject-introspection-girepository.patch"
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a4ace442e8..16dc49bc66 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5021,7 +5021,8 @@ users.")
                  (substitute* "src/nm-session-monitor.c"
                    (("systemd") "elogind"))
                  (substitute* "./src/nm-logging.c"
-                   (("systemd") "elogind"))))))
+                   (("systemd") "elogind"))
+                 #t))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc")) ; 8 MiB of gtk-doc HTML
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 323743d089..ebdb749824 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -77,8 +77,10 @@
              (modules '((guix build utils)))
              (snippet
               ;; Fix incompatibility with Perl 5.22+.
-              '(substitute* '("js/src/config/milestone.pl")
-                 (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")))))
+              '(begin
+                 (substitute* '("js/src/config/milestone.pl")
+                   (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))
+                 #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -136,8 +138,10 @@ in C/C++.")
               (patches (search-patches "mozjs24-aarch64-support.patch"))
               (snippet
                ;; Fix incompatibility with Perl 5.22+.
-               '(substitute* '("js/src/config/milestone.pl")
-                  (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")))))
+               '(begin
+                  (substitute* '("js/src/config/milestone.pl")
+                    (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))
+                  #t))))
     (arguments
       (substitute-keyword-arguments (package-arguments mozjs)
         ((#:phases phases)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 8504b2f11e..61cd4ef5b4 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -339,7 +339,8 @@ graphics.")
                   ;; and <https://github.com/openexr/openexr/pull/184>.
                   (substitute* "IlmImf/Makefile.in"
                     (("ImfIO\\.h")
-                     "ImfIO.h ImfStdIO.h"))))
+                     "ImfIO.h ImfStdIO.h"))
+                  #t))
               (patches (search-patches "openexr-missing-samples.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index c4fae5d8a8..6d3a4d5210 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -846,9 +846,11 @@ exceptions, macros, and a dynamic programming environment.")
                 (patches (search-patches "guile-rsvg-pkgconfig.patch"))
                 (modules '((guix build utils)))
                 (snippet
-                 '(substitute* (find-files "." "Makefile\\.am")
-                    (("/share/guile/site")
-                     "/share/guile/site/@GUILE_EFFECTIVE_VERSION@")))
+                 '(begin
+                    (substitute* (find-files "." "Makefile\\.am")
+                      (("/share/guile/site")
+                       "/share/guile/site/@GUILE_EFFECTIVE_VERSION@"))
+                    #t))
                 (file-name (string-append name "-" version ".tar.gz"))))
       (build-system gnu-build-system)
       (native-inputs `(("pkg-config" ,pkg-config)
@@ -881,9 +883,11 @@ images onto Cairo surfaces.")
               (patches (search-patches "guile-present-coding.patch"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile.in"
-                  (("godir = .*$")
-                   "godir = $(moddir)\n")))))
+               '(begin
+                  (substitute* "Makefile.in"
+                    (("godir = .*$")
+                     "godir = $(moddir)\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 7f01441b0e..2df815bc79 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -240,8 +240,10 @@ without requiring the source code to be rewritten.")
               ;; Remove the pre-built object files.  Instead, build everything
               ;; from source, at the expense of significantly longer build
               ;; times (almost 3 hours on a 4-core Intel i5).
-              (snippet '(for-each delete-file
-                                  (find-files "prebuilt" "\\.go$")))))
+              (snippet '(begin
+                          (for-each delete-file
+                                    (find-files "prebuilt" "\\.go$"))
+                          #t))))
     (properties '((timeout . 72000)               ;20 hours
                   (max-silent-time . 36000)))     ;10 hours (needed on ARM
                                                   ;  when heavily loaded)
@@ -525,7 +527,8 @@ program can be installed in one go.")
                                       post)))
                     (substitute* "artanis/artanis.scm"
                       (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
-                       ""))))))
+                       ""))
+                    #t))))
       (build-system gnu-build-system)
       ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
       (inputs `(("guile" ,guile-2.2)
@@ -852,7 +855,8 @@ for Guile\".")
                      "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
                   (substitute* '("Makefile.in" "json/Makefile.in")
                     (("moddir =.*/share/guile/site" all)
-                     (string-append all "/@GUILE_EFFECTIVE_VERSION@")))))))
+                     (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs `(("guile" ,guile-2.2)))
     (home-page "https://savannah.nongnu.org/projects/guile-json/")
@@ -1225,9 +1229,11 @@ Guile's foreign function interface.")
                 (modules '((guix build utils)))
                 (snippet
                  ;; Upgrade 'Makefile.am' to the current way of doing things.
-                 '(substitute* "Makefile.am"
-                    (("TESTS_ENVIRONMENT")
-                     "TEST_LOG_COMPILER")))))
+                 '(begin
+                    (substitute* "Makefile.am"
+                      (("TESTS_ENVIRONMENT")
+                       "TEST_LOG_COMPILER"))
+                    #t))))
 
       (build-system gnu-build-system)
       (native-inputs
@@ -1362,7 +1368,8 @@ above command-line parameters.")
                                  "redis/Makefile.in"
                                  "redis/commands/Makefile.in")
                     (("moddir =.*/share/guile/site" all)
-                     (string-append all "/@GUILE_EFFECTIVE_VERSION@")))))))
+                     (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("guile" ,guile-2.0)))
@@ -1475,7 +1482,8 @@ users and in some situations.")
                     (("godir = .*$")
                      (string-append
                       "godir = "
-                      "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
+                      "$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -1729,7 +1737,8 @@ you send to a FIFO file.")
                      "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
                   (substitute* "Makefile.in"
                     (("/site/2.0")
-                     "/site/@GUILE_EFFECTIVE_VERSION@"))))))
+                     "/site/@GUILE_EFFECTIVE_VERSION@"))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("guile" ,guile-2.2)))
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index e59b34417b..e349b1cb6b 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -81,7 +81,8 @@
          '(begin
             (delete-file-recursively "data/scripts")
             (substitute* "data/CMakeLists.txt"
-              (("NOT WIN32") "WIN32"))))))
+              (("NOT WIN32") "WIN32"))
+            #t))))
     (build-system cmake-build-system)
     (arguments
       ;; The three binaries are not mutually exlusive, and are all built
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 30acbaf0a5..ce9896bf9c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -752,10 +752,12 @@ the standard javac executable.  The tool runs on JamVM instead of SableVM.")))
                 "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile.in"
-                  ;; do not leak information about the build host
-                  (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
-                   "DISTRIBUTION_ID=\"\\\"guix\\\"\"")))))
+               '(begin
+                  (substitute* "Makefile.in"
+                    ;; do not leak information about the build host
+                    (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
+                     "DISTRIBUTION_ID=\"\\\"guix\\\"\""))
+                  #t))))
     (build-system gnu-build-system)
     (outputs '("out"   ; Java Runtime Environment
                "jdk"   ; Java Development Kit
@@ -1096,10 +1098,12 @@ bootstrapping purposes.")
                   "0s0zh0mj1sab99kb516lsgq3859vsc951phc565gwix4l5g9zppk"))
                 (modules '((guix build utils)))
                 (snippet
-                 '(substitute* "Makefile.in"
-                    ;; do not leak information about the build host
-                    (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
-                     "DISTRIBUTION_ID=\"\\\"guix\\\"\"")))))
+                 '(begin
+                    (substitute* "Makefile.in"
+                      ;; do not leak information about the build host
+                      (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
+                       "DISTRIBUTION_ID=\"\\\"guix\\\"\""))
+                    #t))))
       (build-system gnu-build-system)
       (outputs '("out"   ; Java Runtime Environment
                  "jdk"   ; Java Development Kit
diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm
index 4ef604d02a..6877f5b873 100644
--- a/gnu/packages/kerberos.scm
+++ b/gnu/packages/kerberos.scm
@@ -147,9 +147,11 @@ secure manner through client-server mutual authentication via tickets.")
                                        "heimdal-CVE-2017-11103.patch"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "configure"
-                  (("User=.*$") "User=Guix\n")
-                  (("Date=.*$") "Date=2017\n")))))
+               '(begin
+                  (substitute* "configure"
+                    (("User=.*$") "User=Guix\n")
+                    (("Date=.*$") "Date=2017\n"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 40f172c654..8875e5d28f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1687,16 +1687,19 @@ UnionFS-FUSE additionally supports copy-on-write.")
     (source (origin (inherit (package-source fuse))
               (modules '((guix build utils)))
               (snippet
-               ;; Normally libfuse invokes mount(8) so that /etc/mtab is
-               ;; updated.  Change calls to 'mtab_needs_update' to 0 so that
-               ;; it doesn't do that, allowing us to remove the dependency on
-               ;; util-linux (something that is useful in initrds.)
-               '(substitute* '("lib/mount_util.c"
-                               "util/mount_util.c")
-                  (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)")
-                   "0")
-                  (("/bin/")
-                   "")))))))
+               '(begin
+                  ;; Normally libfuse invokes mount(8) so that /etc/mtab is
+                  ;; updated.  Change calls to 'mtab_needs_update' to 0 so
+                  ;; that it doesn't do that, allowing us to remove the
+                  ;; dependency on util-linux (something that is useful in
+                  ;; initrds.)
+                  (substitute* '("lib/mount_util.c"
+                                 "util/mount_util.c")
+                    (("mtab_needs_update[[:blank:]]*\\([a-z_]+\\)")
+                     "0")
+                    (("/bin/")
+                     ""))
+                  #t))))))
 
 (define-public unionfs-fuse/static
   (package (inherit unionfs-fuse)
@@ -1705,11 +1708,13 @@ UnionFS-FUSE additionally supports copy-on-write.")
     (source (origin (inherit (package-source unionfs-fuse))
               (modules '((guix build utils)))
               (snippet
-               ;; Add -ldl to the libraries, because libfuse.a needs that.
-               '(substitute* "src/CMakeLists.txt"
-                  (("target_link_libraries(.*)\\)" _ libs)
-                   (string-append "target_link_libraries"
-                                  libs " dl)"))))))
+               '(begin
+                  ;; Add -ldl to the libraries, because libfuse.a needs that.
+                  (substitute* "src/CMakeLists.txt"
+                    (("target_link_libraries(.*)\\)" _ libs)
+                     (string-append "target_link_libraries"
+                                    libs " dl)")))
+                  #t))))
     (arguments
      '(#:tests? #f
        #:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-static")
@@ -1871,7 +1876,8 @@ system.")
                   (substitute* '("src/unicode_start" "src/unicode_stop")
                     ;; Assume the Coreutils are in $PATH.
                     (("/usr/bin/tty")
-                     "tty"))))))
+                     "tty"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -2063,7 +2069,8 @@ time.")
                     (("confdir = .*$")
                      "confdir = @sysconfdir@\n")
                     (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
-                     "DEFAULT_SYS_DIR = @sysconfdir@"))))
+                     "DEFAULT_SYS_DIR = @sysconfdir@"))
+                  #t))
               (patches (search-patches "lvm2-static-link.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -2247,7 +2254,9 @@ compliance.")
                 "1f9mcp78sdd4sci6v32vxfcl1rfjpv205jisz1p93kkfnaisy7ip"))
 
               ;; We're building 'regulatory.bin' by ourselves.
-              (snippet '(delete-file "regulatory.bin"))))
+              (snippet '(begin
+                          (delete-file "regulatory.bin")
+                          #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2680,7 +2689,8 @@ also contains the libsysfs library.")
               "includedir = @includedir@"))
            (substitute* "configure"
              (("includedir='(\\$\\{prefix\\}/include)'" all orig)
-              (string-append "includedir='" orig "/sysfs'")))))))
+              (string-append "includedir='" orig "/sysfs'")))
+           #t))))
     (synopsis "System utilities based on Linux sysfs (version 1.x)")))
 
 (define-public cpufrequtils
@@ -3295,9 +3305,10 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
               (modules '((guix build utils)))
               ;; Fix erroneous man page location in Makefile leading to
               ;; a compilation failure.
-              (snippet
-               '(substitute* "CMakeLists.txt"
-                  (("thinkfan\\.1") "src/thinkfan.1")))))
+              (snippet '(begin
+                          (substitute* "CMakeLists.txt"
+                            (("thinkfan\\.1") "src/thinkfan.1"))
+                          #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -3348,11 +3359,12 @@ from userspace.")
                (base32
                 "1mb228p80hv97pgk3myyvgp975r9mxq56c6bdn1n24kngcfh4niy"))
               (modules '((guix build utils)))
-              (snippet
-               ;; Install under $prefix.
-               '(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
-                  (("/sbin")
-                   "@sbindir@")))))
+              (snippet '(begin
+                          ;; Install under $prefix.
+                          (substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
+                            (("/sbin")
+                             "@sbindir@"))
+                          #t))))
     (build-system gnu-build-system)
     (inputs `(("util-linux" ,util-linux)
               ("fuse" ,fuse)))                    ;libuuid
@@ -3648,9 +3660,12 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
               (file-name (string-append name "-" version ".tar.gz"))
               (modules '((guix build utils)))
               (snippet
-               ;; The snapshots lack a .git directory, breaking ‘git describe’.
-               `(substitute* "Makefile"
-                  (("\"unknown\"") (string-append "\"v" ,version "\""))))))
+               `(begin
+                  ;; The snapshots lack a .git directory,
+                  ;; breaking ‘git describe’.
+                  (substitute* "Makefile"
+                    (("\"unknown\"") (string-append "\"v" ,version "\"")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 1cda606c20..f7b74b030f 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -189,8 +189,10 @@ interface to the Tk widget system.")
        (modules '((guix build utils)))
        (snippet
         ;; Add ecl-bundle-systems to 'default-system-source-registry'.
-        `(substitute* "contrib/asdf/asdf.lisp"
-           ,@(asdf-substitutions name)))))
+        `(begin
+           (substitute* "contrib/asdf/asdf.lisp"
+             ,@(asdf-substitutions name))
+           #t))))
     (build-system gnu-build-system)
     ;; src/configure uses 'which' to confirm the existence of 'gzip'.
     (native-inputs `(("which" ,which)))
@@ -324,8 +326,10 @@ an interpreter, a compiler, a debugger, and much more.")
        (modules '((guix build utils)))
        (snippet
         ;; Add sbcl-bundle-systems to 'default-system-source-registry'.
-        `(substitute* "contrib/asdf/asdf.lisp"
-           ,@(asdf-substitutions name)))))
+        `(begin
+           (substitute* "contrib/asdf/asdf.lisp"
+             ,@(asdf-substitutions name))
+           #t))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     ;; Bootstrap with CLISP.
@@ -618,10 +622,11 @@ The core is 12 builtin special forms and 33 builtin functions.")
        (snippet
         '(begin
            (substitute* "src/unix.c"
-               (("\\{ \"LUSH_DATE\", __DATE__ \\},") "")
-               (("\\{ \"LUSH_TIME\", __TIME__ \\},") ""))
-             (substitute* "src/main.c"
-               (("\" \\(built \" __DATE__ \"\\)\"") ""))))
+             (("\\{ \"LUSH_DATE\", __DATE__ \\},") "")
+             (("\\{ \"LUSH_TIME\", __TIME__ \\},") ""))
+           (substitute* "src/main.c"
+             (("\" \\(built \" __DATE__ \"\\)\"") ""))
+           #t))
        (sha256
         (base32
          "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k"))))
@@ -920,7 +925,8 @@ ANSI-compliant Common Lisp implementations.")
              (delete-file-recursively "demo")
              (delete-file "test/trapezoid.lisp")
              (substitute* "clx.asd"
-               (("\\(:file \"trapezoid\"\\)") ""))))))
+               (("\\(:file \"trapezoid\"\\)") ""))
+             #t))))
       (build-system asdf-build-system/sbcl)
       (home-page "http://www.cliki.net/portable-clx")
       (synopsis "X11 client library for Common Lisp")
@@ -1048,12 +1054,12 @@ productive, customizable lisp based systems.")
              (rename-file "contrib" "slynk/contrib")
              ;; Move slynk's contents into the base directory for easier
              ;; access
-             (for-each
-              (lambda (file)
-                (unless (string-prefix? "." file)
-                  (rename-file (string-append "slynk/" file)
-                               (string-append "./" (basename file)))))
-              (scandir "slynk"))))))
+             (for-each (lambda (file)
+                         (unless (string-prefix? "." file)
+                           (rename-file (string-append "slynk/" file)
+                                        (string-append "./" (basename file)))))
+                       (scandir "slynk"))
+             #t))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(#:tests? #f ; No test suite
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 02dacd3e87..f493720973 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -364,7 +364,8 @@ in LXDE.")
                    (and (string-suffix? ".c" file)
                         (file-exists? (c->vala file))))))
            (for-each delete-file
-                     (find-files "." generated-c-file?))))))
+                     (find-files "." generated-c-file?))
+           #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 12384a1031..d9b54d692f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -408,7 +408,8 @@ sample proximities between pairs of cases.")
                            (display line out))
                          (loop (read-line in 'concat) skip-next?)))))))
            (for-each delete-ifdefs (find-files "src/shogun/kernel/"
-                                               "^Kernel\\.(cpp|h)"))))))
+                                               "^Kernel\\.(cpp|h)"))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ;no check target
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 7986671e97..b579914e73 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -137,9 +137,11 @@
              (snippet
               ;; For a rebuild of the Flex/Bison byproducts touched by the
               ;; patch above.
-              '(for-each delete-file
-                         '("mh/mh_alias_lex.c"
-                           "libmailutils/cfg/parser.c")))))
+              '(begin
+                 (for-each delete-file
+                           '("mh/mh_alias_lex.c"
+                             "libmailutils/cfg/parser.c"))
+                 #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index f9e5d2c3a2..0a2f266a7d 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -169,9 +169,11 @@ interactive dialogs to guide them.")
        (modules '((guix build utils)))
        (snippet
         ;; Make sure we don't use the bundled software.
-        '(for-each (lambda (d)
-                     (delete-file-recursively (string-append "libcoda/" d)))
-                   '("zlib" "pcre" "expat")))))
+        '(begin
+           (for-each (lambda (d)
+                       (delete-file-recursively (string-append "libcoda/" d)))
+                     '("zlib" "pcre" "expat"))
+           #t))))
     (native-inputs
      `(("fortran" ,gfortran)
        ("python" ,python)
@@ -819,7 +821,8 @@ extremely large and complex data collections.")
           (for-each delete-file
                     (list "SZip.tar.gz" "ZLib.tar.gz" "JPEG8d.tar.gz"
                           "HDF4.tar.gz" "HDF5.tar.gz"))
-          (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))))))
+          (delete-file-recursively ,(string-append "hdfjava-" version "/lib"))
+          #t))))
    (build-system gnu-build-system)
    (native-inputs
     `(("jdk" ,icedtea "jdk")
@@ -1222,7 +1225,9 @@ online as well as original implementations of various other algorithms.")
               (modules '((guix build utils)))
               (snippet
                ;; Make sure we don't use the bundled software.
-               '(delete-file-recursively "ThirdParty"))))
+               '(begin
+                  (delete-file-recursively "ThirdParty")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -1446,7 +1451,9 @@ Open CASCADE library.")
       (modules '((guix build utils)))
       (snippet
        ;; Remove non-free METIS code
-       '(delete-file-recursively "contrib/Metis"))))
+       '(begin
+          (delete-file-recursively "contrib/Metis")
+          #t))))
     (build-system cmake-build-system)
     (propagated-inputs
      `(("fltk" ,fltk)
@@ -1980,7 +1987,8 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
                    (let ((line (read-line in 'concat)))
                     (unless (regexp-exec rx line)
                       (display line out)
-                      (loop)))))))))))
+                      (loop))))
+                 #t)))))))
     (build-system cmake-build-system)
     (native-inputs
      `(("tcsh" ,tcsh)))
@@ -2038,7 +2046,8 @@ void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
            (delete-file "SRC/mc64ad.f.bak")
            (substitute* "SRC/util.c"    ;adjust default algorithm
              (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag")
-              "RowPerm = NOROWPERM"))))
+              "RowPerm = NOROWPERM"))
+           #t))
        (patches (search-patches "superlu-dist-scotchmetis.patch"))))
     (build-system gnu-build-system)
     (native-inputs
@@ -2887,7 +2896,9 @@ Fresnel integrals, and similar related functions as well.")
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled metis source
-        '(delete-file-recursively "metis-5.1.0"))))
+        '(begin
+           (delete-file-recursively "metis-5.1.0")
+           #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f  ;no "check" target
@@ -3083,19 +3094,21 @@ specifications.")
         "12pj1idjz31r7c2mb5w03vy1cmvycvbkx9z29s40qdmkp1i7q6i0"))
       (modules '((guix build utils)))
       (snippet
-       '(substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
-          (("^c=cc") "c=gcc")
-          ;; Pretend to be on a 64 bit platform to obtain a common directory
-          ;; name for the build results on all architectures; nothing else
-          ;; seems to depend on it.
-          (("^PLATFORM=.*$") "PLATFORM=ux64\n")
-
-          ;; The check for 'isnan' as it is written fails with
-          ;; "non-floating-point argument in call to function
-          ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro
-          ;; definition, which in turn leads to bad things.  Fix the feature
-          ;; test.
-          (("isnan\\(0\\)") "isnan(0.)")))))
+       '(begin
+          (substitute* (list "lp_solve/ccc" "lpsolve55/ccc")
+            (("^c=cc") "c=gcc")
+            ;; Pretend to be on a 64 bit platform to obtain a common directory
+            ;; name for the build results on all architectures; nothing else
+            ;; seems to depend on it.
+            (("^PLATFORM=.*$") "PLATFORM=ux64\n")
+
+            ;; The check for 'isnan' as it is written fails with
+            ;; "non-floating-point argument in call to function
+            ;; ‘__builtin_isnan’", which leads to the 'NOISNAN' cpp macro
+            ;; definition, which in turn leads to bad things.  Fix the feature
+            ;; test.
+            (("isnan\\(0\\)") "isnan(0.)"))
+          #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -3153,7 +3166,9 @@ revised simplex and the branch-and-bound methods.")
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost
-        '(delete-file-recursively "bundled"))))
+        '(begin
+           (delete-file-recursively "bundled")
+           #t))))
     (build-system cmake-build-system)
     (inputs
      `(("tbb" ,tbb)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index d0e0431130..9ed93cfd6d 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -217,7 +217,8 @@ identi.ca and status.net).")
                               '("intltool.m4" "libtool.m4" "lt~obsolete.m4"
                                 "ltoptions.m4" "ltsugar.m4" "ltversion.m4")))
                   (delete-file-recursively "build-aux")
-                  (delete-file "po/Makefile.in.in")))))
+                  (delete-file "po/Makefile.in.in")
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf)
                      ("autoconf-archive" ,autoconf-archive)
@@ -1060,7 +1061,9 @@ into existing applications.")
          "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
        ;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
        ;; we can add it back when this is no longer the case.
-       (snippet '(delete-file "contrib/psycmp3"))))
+       (snippet '(begin
+                   (delete-file "contrib/psycmp3")
+                   #t))))
     (build-system perl-build-system)
     (inputs
      `(("perl-curses" ,perl-curses)
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index c5a86d02c6..fee9575bb9 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -54,9 +54,11 @@
               (modules '((guix build utils)))
               (snippet
                ;; Ensure reproducibility.
-               '(substitute* (find-files "cgi" "\\.c$")
-                  (("__DATE__") "\"1970-01-01\"")
-                  (("__TIME__") "\"00:00:00\"")))))
+               '(begin
+                  (substitute* (find-files "cgi" "\\.c$")
+                    (("__DATE__") "\"1970-01-01\"")
+                    (("__TIME__") "\"00:00:00\""))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("unzip" ,unzip)))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 6dc58e2cc8..5904fef8d3 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -120,7 +120,7 @@ versions of ID3v2.")
               "0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"))
             (modules '((guix build utils)))
             ;; Don't use bundled zlib
-            (snippet '(delete-file-recursively "zlib"))
+            (snippet '(begin (delete-file-recursively "zlib") #t))
             (patches (search-patches "id3lib-CVE-2007-4460.patch"))))
    (build-system gnu-build-system)
    (inputs `(("zlib" ,zlib)))
@@ -192,10 +192,12 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
                 "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile"
-                  (("/bin/rm") "rm")
-                  (("/usr/bin/install") "install")
-                  (("man/man1") "share/man/man1")))))
+               '(begin
+                  (substitute* "Makefile"
+                    (("/bin/rm") "rm")
+                    (("/usr/bin/install") "install")
+                    (("man/man1") "share/man/man1"))
+                  #t))))
     (build-system gnu-build-system)
     (outputs '("out" "gui"))                      ;GTK+ interface in "gui"
     (arguments
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 4bd58d9733..7eb2896963 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -203,29 +203,31 @@ score, keyboard, guitar, drum and controller views.")
                    "0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi"))
                 (modules '((guix build utils)))
                 (snippet
-                  '(for-each
+                 '(begin
+                    (for-each
                      (lambda (dir)
                        (delete-file-recursively
-                         (string-append "3rdparty/" dir)))
+                        (string-append "3rdparty/" dir)))
                      (list
-                       ;; TODO: The following dependencies are still bundled:
-                       ;; - "qxt": Appears to be unmaintained upstream.
-                       ;; - "qsqlite"
-                       ;; - "qtsingleapplication"
-                       ;; - "qocoa"
-                       ;; - "qtiocompressor"
-                       ;; - "gmock": The tests crash when using our googletest
-                       ;;   package instead of the bundled gmock.
-                       "SPMediaKeyTap"
-                       "fancytabwidget"
-                       "google-breakpad"
-                       "libmygpo-qt"
-                       "libmygpo-qt5"
-                       "libprojectm"
-                       "qtwin"
-                       "sha2" ;; Replaced by openssl.
-                       "taglib"
-                       "tinysvcmdns")))
+                      ;; TODO: The following dependencies are still bundled:
+                      ;; - "qxt": Appears to be unmaintained upstream.
+                      ;; - "qsqlite"
+                      ;; - "qtsingleapplication"
+                      ;; - "qocoa"
+                      ;; - "qtiocompressor"
+                      ;; - "gmock": The tests crash when using our googletest
+                      ;;   package instead of the bundled gmock.
+                      "SPMediaKeyTap"
+                      "fancytabwidget"
+                      "google-breakpad"
+                      "libmygpo-qt"
+                      "libmygpo-qt5"
+                      "libprojectm"
+                      "qtwin"
+                      "sha2" ;; Replaced by openssl.
+                      "taglib"
+                      "tinysvcmdns"))
+                    #t))
                 (patches (search-patches "clementine-use-openssl.patch"
                                          "clementine-remove-crypto++-dependency.patch"))))
       (build-system cmake-build-system)
@@ -2607,7 +2609,8 @@ of tools for manipulating and accessing your music.")
                '(begin
                   (delete-file-recursively "resources/music")
                   (substitute* "CMakeLists.txt"
-                    (("add_subdirectory\\(resources/music\\)") ""))))))
+                    (("add_subdirectory\\(resources/music\\)") ""))
+                  #t))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no check target
@@ -2645,9 +2648,11 @@ for improved Amiga ProTracker 2/3 compatibility.")
               (modules '((guix build utils)))
               (snippet
                ;; Remove use of __DATE__ and __TIME__ for reproducibility.
-               `(substitute* "schism/version.c"
-                  (("Schism Tracker built %s %s.*$")
-                   (string-append "Schism Tracker version " ,version "\");"))))))
+               `(begin
+                  (substitute* "schism/version.c"
+                    (("Schism Tracker built %s %s.*$")
+                     (string-append "Schism Tracker version " ,version "\");")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2762,9 +2767,11 @@ available memory.")
               (modules '((guix build utils)))
               (snippet
                ;; Remove use of __DATE__ and __TIME__ for reproducibility.
-               '(substitute* "main.c"
-                  (("printf \\(\"            Built : %s\", __DATE__\\);") "")
-                  (("printf \\(\" %s\", __TIME__\\);") "")))))
+               '(begin
+                  (substitute* "main.c"
+                    (("printf \\(\"            Built : %s\", __DATE__\\);") "")
+                    (("printf \\(\" %s\", __TIME__\\);") ""))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm
index 2d76d7e067..e5246660a2 100644
--- a/gnu/packages/netpbm.scm
+++ b/gnu/packages/netpbm.scm
@@ -94,7 +94,8 @@
                   (("^DATE=.*")
                    "DATE=\"Thu Jan 01 00:00:00+0000 1970\"\n")
                   (("^USER=.*")
-                   "USER=Guix\n"))))))
+                   "USER=Guix\n"))
+                #t))))
 
    (build-system gnu-build-system)
    (inputs `(("ghostscript" ,ghostscript)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 167d1af777..d7e78cb630 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -394,9 +394,11 @@ Ethernet devices.")
                 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Main.h"
-                  (("#include <stdio.h>")
-                   "#include <stdio.h>\n#include <stdlib.h>")))))
+               '(begin
+                  (substitute* "Main.h"
+                    (("#include <stdio.h>")
+                     "#include <stdio.h>\n#include <stdlib.h>"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                                ; no "check" target
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 976d0c048a..8daaf6de89 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -68,7 +68,8 @@
                     (("deps/http_parser/http_parser.gyp") "")
                     (("deps/uv/include/\\*.h") "")
                     (("deps/uv/uv.gyp") "")
-                    (("deps/zlib/zlib.gyp") ""))))))
+                    (("deps/zlib/zlib.gyp") ""))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      ;; TODO: Purge the bundled copies from the source.
diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm
index 5f829aa6ee..ea02762a9b 100644
--- a/gnu/packages/nvi.scm
+++ b/gnu/packages/nvi.scm
@@ -50,7 +50,8 @@
                conf-wrap)
              (newline conf-wrap)
              (close-output-port conf-wrap)
-             (chmod "configure" #o0755)))))
+             (chmod "configure" #o0755)
+             #t))))
 
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 24f402128c..25ef8ccad0 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -100,7 +100,8 @@
                 ;; in OCaml's directory in the store, which is read-only.
                 (substitute* "Makefile"
                   (("--prefix")
-                   "--libdir $(LIBDIR) --prefix")))))))
+                   "--libdir $(LIBDIR) --prefix"))
+                #t)))))
 
 ;; They also require almost the same set of arguments
 (define janestreet-arguments
@@ -781,7 +782,8 @@ libpanel, librsvg and quartz.")
             ;; Without the '-fix' argument, the html file produced does not
             ;; have functioning internal hyperlinks.
             (substitute* "doc/Makefile"
-              (("hevea unison") "hevea -fix unison"))))))
+              (("hevea unison") "hevea -fix unison"))
+            #t))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 1.9 MiB of documentation
@@ -2196,17 +2198,19 @@ file (POSIX like) and filename.")
                 "1ln7vc7ip6s5xbi20mhnn087xi4a2m5vqawx0703qqnfkzhmslqy"))
             (modules '((guix build utils)))
             (snippet
-             '(substitute* "test/test-main/Test.ml"
-                ;; most of these tests fail because ld cannot find crti.o, but according
-                ;; to the log file, the environment variables {LD_,}LIBRARY_PATH
-                ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand.
-                (("TestBaseCompat.tests;") "")
-                (("TestExamples.tests;") "")
-                (("TestFull.tests;") "")
-                (("TestPluginDevFiles.tests;") "")
-                (("TestPluginInternal.tests;") "")
-                (("TestPluginOCamlbuild.tests;") "")
-                (("TestPluginOMake.tests;") "")))))
+             '(begin
+                (substitute* "test/test-main/Test.ml"
+                  ;; most of these tests fail because ld cannot find crti.o, but according
+                  ;; to the log file, the environment variables {LD_,}LIBRARY_PATH
+                  ;; are set correctly whene LD_LIBRARY_PATH is defined beforhand.
+                  (("TestBaseCompat.tests;") "")
+                  (("TestExamples.tests;") "")
+                  (("TestFull.tests;") "")
+                  (("TestPluginDevFiles.tests;") "")
+                  (("TestPluginInternal.tests;") "")
+                  (("TestPluginOCamlbuild.tests;") "")
+                  (("TestPluginOMake.tests;") ""))
+                #t))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("ocamlify" ,ocamlify)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 95f42c6751..f1aa958931 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -579,7 +579,7 @@ extracting content or merging files.")
          (base32
           "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp"))
         (modules '((guix build utils)))
-        (snippet '(delete-file-recursively "thirdparty"))))
+        (snippet '(begin (delete-file-recursively "thirdparty") #t))))
     (build-system gnu-build-system)
     (inputs
       `(("curl" ,curl)
@@ -631,12 +631,14 @@ line tools for batch rendering @command{pdfdraw}, rewriting files
             (snippet
              ;; Replace shebang with the bi-lingual shell/Perl trick to remove
              ;; dependency on Perl.
-             '(substitute* "qpdf/fix-qdf"
-                (("#!/usr/bin/env perl")
-                 "\
+             '(begin
+                (substitute* "qpdf/fix-qdf"
+                  (("#!/usr/bin/env perl")
+                   "\
 eval '(exit $?0)' && eval 'exec perl -wS \"$0\" ${1+\"$@\"}'
   & eval 'exec perl -wS \"$0\" $argv:q'
-    if 0;\n")))))
+    if 0;\n"))
+                #t))))
    (build-system gnu-build-system)
    (arguments
     `(#:disallowed-references (,perl)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 965bead418..4b0454d4e2 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -7489,7 +7489,8 @@ TODO: {
     local $TODO = \"/proc/cpuinfo doesn't always report 'model name' or 'machine' ...\";
     $type = &Sys::CPU::cpu_type();
     ok( defined($type), \"CPU Type:  $type\" );
-}~%")))))))
+}~%")))
+                  #t))))
     (build-system perl-build-system)
     (synopsis "Perl extension for getting CPU information")
     (description
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index f3f279a533..58ace823ee 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -86,7 +86,8 @@
                               "pcre/pcrelib"
                               "sqlite3/libsqlite"
                               "xmlrpc/libxmlrpc"
-                              "zip/lib"))))))
+                              "zip/lib"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 482ae1b862..82b55fbf2f 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -60,9 +60,11 @@
               ;; that, libplot.la ends up containing just "-lXaw" (without
               ;; "-L/path/to/Xaw"), due to the fact that there is no
               ;; libXaw.la, which forces us to propagate libXaw.
-              '(substitute* "configure"
-                 (("-lXaw")
-                  "-lXaw7")))))
+              '(begin
+                 (substitute* "configure"
+                   (("-lXaw")
+                    "-lXaw7"))
+                 #t))))
     (build-system gnu-build-system)
     (inputs `(("libpng" ,libpng)
               ("libx11" ,libx11)
@@ -97,7 +99,8 @@ scientific data.")
                   ;; Use the standard location for modules.
                   (substitute* "Makefile.in"
                     (("godir = .*$")
-                     "godir = $(moddir)\n"))))))
+                     "godir = $(moddir)\n"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("guile" ,guile-2.2)))
@@ -123,9 +126,11 @@ using the Cairo drawing library.")
               (modules '((guix build utils)))
               (snippet
                ;; Install binaries in the right place.
-               '(substitute* "src/Makefile"
-                  (("INSTALLBIN =.*$")
-                   (string-append "INSTALLBIN = $(out)/bin"))))))
+               '(begin
+                  (substitute* "src/Makefile"
+                    (("INSTALLBIN =.*$")
+                     (string-append "INSTALLBIN = $(out)/bin")))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 6edfba95cc..d1485082e3 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -56,9 +56,11 @@
               (modules '((guix build utils)))
               (snippet
                ;; Remove timestamp from the installed 'README' file.
-               '(substitute* "etc/README.in"
-                  (("@date@")
-                   "1st of some month, sometime after 1970")))
+               '(begin
+                  (substitute* "etc/README.in"
+                    (("@date@")
+                     "1st of some month, sometime after 1970"))
+                  #t))
               (patches (search-patches
                         "a2ps-CVE-2001-1593.patch"
                         "a2ps-CVE-2014-0466.patch"))))
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index d6f3aede28..b2def45ccf 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -350,8 +350,10 @@ different kinds of performance behavior.")
               (modules '((guix build utils)))
               (snippet
                ;; Remove bundled software.
-               '(for-each delete-file-recursively
-                          '("vendor/opari2" "vendor/cube")))))
+               '(begin
+                  (for-each delete-file-recursively
+                            '("vendor/opari2" "vendor/cube"))
+                  #t))))
     (build-system gnu-build-system)
     (inputs
      `(("mpi" ,mpi)
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 8a45137a7f..f23ef9eca1 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -144,9 +144,11 @@ rates.")
              (snippet
               ;; Disable console-kit support by default since it's deprecated
               ;; anyway.
-              '(substitute* "src/daemon/default.pa.in"
-                 (("load-module module-console-kit" all)
-                  (string-append "#" all "\n"))))
+              '(begin
+                 (substitute* "src/daemon/default.pa.in"
+                   (("load-module module-console-kit" all)
+                    (string-append "#" all "\n")))
+                 #t))
              (patches (search-patches
                        "pulseaudio-fix-mult-test.patch"
                        "pulseaudio-longer-test-timeout.patch"))))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 3734b6ba10..f35c8c5042 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -563,7 +563,8 @@ PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
        (uri (pypi-uri "PyNaCl" version))
        (modules '((guix build utils)))
        ;; Remove bundled libsodium
-       (snippet '(delete-file-recursively "src/libsodium"))
+       (snippet '(begin (delete-file-recursively "src/libsodium")
+                        #t))
        (sha256
         (base32
          "135gz0020fqx8fbr9izpwyq49aww202nkqacq0cw61xz99sjpx9j"))))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cd940d68f6..4484a59986 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3253,7 +3253,8 @@ that client code uses to construct the grammar directly in Python code.")
            ;; input since it would create a circular dependency: Extend the
            ;; test for Python 3, where it is already dropped, to Python 2.
            (substitute* "numpydoc/tests/test_plot_directive.py"
-             (("3") "2"))))))
+             (("3") "2"))
+           #t))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-sphinx" ,python-sphinx)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a8c2729ee8..74a22ae6f4 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -145,7 +145,8 @@ system, and the core design of Django is reused in Grantlee.")
                         "qtcanvas3d/examples/canvas3d/3rdparty"))
                 ;; Tests depend on this example, which depends on the 3rd party code.
                 (substitute* "qtmultimedia/examples/multimedia/multimedia.pro"
-                  (("spectrum") "#"))))))
+                  (("spectrum") "#"))
+                #t))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("mesa" ,mesa)))
@@ -287,7 +288,8 @@ developers using C++ or QML, a CSS & JavaScript like language.")
              (modules '((guix build utils)))
              (snippet
               ;; Remove webkit module, which is not built.
-              '(delete-file-recursively "src/3rdparty/webkit"))))
+              '(begin (delete-file-recursively "src/3rdparty/webkit")
+                      #t))))
     (inputs `(,@(alist-delete "harfbuzz"
                               (alist-delete "libjpeg" (package-inputs qt)))
               ("libjepg" ,libjpeg-8)
@@ -686,8 +688,8 @@ HostData=lib/qt5
               (base32
                "1nfxvf96wh1smdmcsk4m9f7zg69fgp844f8772qpv6v4m20p1qb9"))
              (modules '((guix build utils)))
-             (snippet
-              '(delete-file-recursively "src/3rdparty"))))
+             (snippet '(begin (delete-file-recursively "src/3rdparty")
+                              #t))))
     (native-inputs `())
     (inputs
      `(("jasper" ,jasper)
@@ -901,7 +903,8 @@ recognition API for devices.")))
                    "examples/multimedia/spectrum/3rdparty")
                  ;; We also prevent the spectrum example from being built.
                  (substitute* "examples/multimedia/multimedia.pro"
-                   (("spectrum") "#"))))))
+                   (("spectrum") "#"))
+                 #t))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -947,7 +950,8 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
              (modules '((guix build utils)))
              (snippet
                ;; The examples try to build and cause the build to fail
-              '(delete-file-recursively "examples"))))
+              '(begin (delete-file-recursively "examples")
+                      #t))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:phases phases)
@@ -1233,7 +1237,8 @@ coloring, and many more.")))
                "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3"))
              (modules '((guix build utils)))
              (snippet
-              '(delete-file-recursively "tools/opengldummy/3rdparty"))))
+              '(begin (delete-file-recursively "tools/opengldummy/3rdparty")
+                      #t))))
     (native-inputs `())
     (inputs
      `(("qtbase" ,qtbase)
@@ -1292,7 +1297,8 @@ and mobile applications targeting TV-like form factors.")))
                  (delete-file-recursively "tests/3rdparty")
                  ;; the scion test refers to the bundled 3rd party test code.
                  (substitute* "tests/auto/auto.pro"
-                   (("scion") "#"))))))
+                   (("scion") "#"))
+                 #t))))
     (inputs
      `(("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)))
@@ -1338,7 +1344,8 @@ purchasing goods and services.")))
                "0agdxgk7knf6zkjdi6316y2k9zq72wcg5zn3cbhw4hzjw81qadgg"))
              (modules '((guix build utils)))
              (snippet
-              '(delete-file-recursively "examples/canvas3d/3rdparty"))))
+              '(begin (delete-file-recursively "examples/canvas3d/3rdparty")
+                      #t))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
       ;; Building the tests depends on the bundled 3rd party javascript files,
diff --git a/gnu/packages/robotics.scm b/gnu/packages/robotics.scm
index 9b30b90da2..389bb5a028 100644
--- a/gnu/packages/robotics.scm
+++ b/gnu/packages/robotics.scm
@@ -91,10 +91,12 @@ hundred times faster than real-time.")
                 (modules '((guix build utils)))
                 (snippet
                  ;; Add missing Qt5::Network.
-                 '(substitute* "targets/playground/CMakeLists.txt"
-                    (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle)
-                     (string-append "target_link_libraries" middle
-                                    " Qt5::Network ${EXTRA_LIBS}"))))))
+                 '(begin
+                    (substitute* "targets/playground/CMakeLists.txt"
+                      (("target_link_libraries(.*)\\$\\{EXTRA_LIBS\\}" _ middle)
+                       (string-append "target_link_libraries" middle
+                                      " Qt5::Network ${EXTRA_LIBS}")))
+                    #t))))
       (build-system cmake-build-system)
       (arguments
        '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm
index 4eced74f22..8795d8d9fb 100644
--- a/gnu/packages/sawfish.scm
+++ b/gnu/packages/sawfish.scm
@@ -87,10 +87,12 @@ implementing both small and large scale systems.")
                 "0qslm2isyv22hffdpw0nh7xk8jw8cj3h5y7d40c9h5r833w7j6sz"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "Makefile.in"
-                  (("installdir=\\$\\(repexecdir\\)")
-                   ;; Install libraries for librep to $out/lib/rep.
-                   "installdir=$(libdir)/rep")))))
+               '(begin
+                  (substitute* "Makefile.in"
+                    (("installdir=\\$\\(repexecdir\\)")
+                     ;; Install libraries for librep to $out/lib/rep.
+                     "installdir=$(libdir)/rep"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments '(#:tests? #f)) ; no tests
     (native-inputs
@@ -127,7 +129,8 @@ backend of Sawfish.")
                      "REP_DL_LOAD_PATH=$(REP_DL_LOAD_PATH):"))
                   (substitute* "src/Makefile.in"
                     ;; Install libraries for librep to $out/lib/rep.
-                    (("\\$\\(repexecdir\\)") "$(libdir)/rep"))))))
+                    (("\\$\\(repexecdir\\)") "$(libdir)/rep"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index f44f037efb..d1dfdd4e27 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -45,9 +45,11 @@
              (snippet
               ;; Generated HTML files and udev rules normally embed a
               ;; timestamp.  Work around that to build things reproducibly.
-              '(substitute* "tools/sane-desc.c"
-                 (("asctime \\(localtime \\(&current_time\\)\\)")
-                  "\"1970-01-01\"")))))
+              '(begin
+                 (substitute* "tools/sane-desc.c"
+                   (("asctime \\(localtime \\(&current_time\\)\\)")
+                    "\"1970-01-01\""))
+                 #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 657ca875d5..39240dfca7 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -212,8 +212,10 @@ features an integrated Emacs-like editor and a large runtime library.")
              ;; Remove bundled libraries.
              (modules '((guix build utils)))
              (snippet
-              '(for-each delete-file-recursively
-                         '("gc" "gmp" "libuv")))))
+              '(begin
+                 (for-each delete-file-recursively
+                           '("gc" "gmp" "libuv"))
+                 #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -609,9 +611,10 @@ threads.")
        (origin
          (method url-fetch/tarbomb)
          (modules '((guix build utils)))
-         (snippet
-          ;; Remove binary code
-          '(delete-file-recursively "scmutils/mit-scheme"))
+         (snippet '(begin
+                     ;; Remove binary code
+                     (delete-file-recursively "scmutils/mit-scheme")
+                     #t))
          (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/6946"
                              "/scmutils-tarballs/" name "-" version
                              "-x86-64-gnu-linux.tar.gz"))
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index 860d346778..6cf382e0bb 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -75,8 +75,10 @@
        (snippet
         ;; Fix typo.  Equivalent to patch at
         ;; https://bugs.scribus.net/view.php?id=14850
-        '(substitute* "cmake/modules/FindLIBPODOFO.cmake"
-           (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)")))))
+        '(begin
+           (substitute* "cmake/modules/FindLIBPODOFO.cmake"
+             (("find_package\\(OPENSSL\\)") "find_package(OpenSSL)"))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no test target
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 222fd5b6f1..1bc2778da1 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -369,9 +369,10 @@ directory.")
                (string-append "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-"
                               version ".tar.gz"))
               (modules '((guix build utils)))
-              (snippet
-               ;; Remove bundled libraries.
-               '(delete-file-recursively "external"))
+              (snippet '(begin
+                          ;; Remove bundled libraries.
+                          (delete-file-recursively "external")
+                          #t))
               (sha256
                (base32
                 "1fw3kkqi5346ai5if4pxrcbhs5c4vv3a4smgz6fl6kyaxwkmwqaf"))))
@@ -388,9 +389,10 @@ directory.")
               (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-"
                              version ".tar.gz"))
              (modules '((guix build utils)))
-             (snippet
-              ;; Remove bundled libraries.
-              '(delete-file-recursively "external"))
+             (snippet (begin
+                        ;; Remove bundled libraries.
+                        '(delete-file-recursively "external")
+                        #t))
              (sha256
               (base32
                "0xljwcpvd2knrjdfag5b257xqayplz55mqlszrqp0kpnphh5xnrl"))))
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 9bbac3ac22..dd6a13a4e3 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -108,10 +108,10 @@ such as compact binary encodings, XML, or JSON.")
          "cpp-" version "/msgpack-" version ".tar.gz"))
        (snippet
         '(let ((p (open-file "msgpack.pc.in" "a")))
-           (begin
-             (display
-              (string-append "Requires: " "zlib" "\n") p)
-             (close-output-port p))))
+           (display
+            (string-append "Requires: " "zlib" "\n") p)
+           (close-output-port p)
+           #t))
        (sha256
         (base32
          "18hzmyfg3mvnp7ab03nqdzzvqagkl42gygjpi4zv4i7aca2dmwf0"))))
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 526fdd1d35..0bd4cd2fb2 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -103,9 +103,10 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
                 "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4"))
               (modules '((guix build utils)))
               ;; Don't try to install /etc/fish/config.fish.
-              (snippet
-               '(substitute* "Makefile.in"
-                  ((".*INSTALL.*sysconfdir.*fish.*") "")))))
+              (snippet '(begin
+                          (substitute* "Makefile.in"
+                            ((".*INSTALL.*sysconfdir.*fish.*") ""))
+                          #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)))
diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm
index abc00c1a89..f9956d0113 100644
--- a/gnu/packages/slang.scm
+++ b/gnu/packages/slang.scm
@@ -51,7 +51,8 @@
                   (substitute* "src/Makefile.in"
                     (("/bin/ln") "ln"))
                   (substitute* "configure"
-                    (("-ltermcap") ""))))))
+                    (("-ltermcap") ""))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:parallel-tests? #f
diff --git a/gnu/packages/smalltalk.scm b/gnu/packages/smalltalk.scm
index a0d6c86dff..c0c53a5291 100644
--- a/gnu/packages/smalltalk.scm
+++ b/gnu/packages/smalltalk.scm
@@ -100,7 +100,8 @@ such as ones for networking and GUI programming.")
               "ux_version = \"GNU\";\n"))
            (substitute* "unix/vm/config.cmake"
              (("\\(VM_BUILD_STRING.*")
-              "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))))))
+              "(VM_BUILD_STRING \\\"Built with GNU Guix\\\")"))
+           #t))))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index d7b1897051..9e157f29f4 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -479,7 +479,8 @@ basis for almost any application.")
                     (("localhost") "127.0.0.1"))
 
                   (substitute* "src/testsuite/login-auth-test"
-                    (("/bin/cat") "cat"))))))
+                    (("/bin/cat") "cat"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("m4" ,m4)
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 3656f5855e..df1b963878 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -58,7 +58,8 @@
            ;; qtsingleapplication have not yet been packaged, but all are
            ;; explicitly used from the 3rdparty folder during build.
            ;; We can also remove the macgoodies folder
-           (delete-file-recursively "src/3rdparty/qtmacgoodies")))))
+           (delete-file-recursively "src/3rdparty/qtmacgoodies")
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 6c3792b92f..ed59a5b922 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -39,8 +39,9 @@
                 "0nv5g9ymykl4316l2g3mnac77y2rx9ps4j2kg3pymxlq6qms2dij"))
               (modules '((guix build utils)))
               ;; Delete bundled ("vendored") free software source code.
-              (snippet
-                '(delete-file-recursively "vendor"))))
+              (snippet '(begin
+                          (delete-file-recursively "vendor")
+                          #t))))
     (build-system go-build-system)
     ;; The primary Syncthing executable goes to "out", while the auxiliary
     ;; server programs and utility tools go to "utils".  This reduces the size
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index 6a668801ff..e4399678dc 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -40,9 +40,11 @@
                 "1i3zy87gyzw22fvajm039w6g822qzqn7jbmznc8y8c57qpqnf330"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "build/common.inc"
-                  (("export tbb_build_prefix.+$")
-                   "export tbb_build_prefix?=guix\n")))))
+               '(begin
+                  (substitute* "build/common.inc"
+                    (("export tbb_build_prefix.+$")
+                     "export tbb_build_prefix?=guix\n"))
+                  #t))))
     (outputs '("out" "doc"))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index eeae8bea41..efc57d36ed 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -239,7 +239,8 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
                      "")
                     ;; Replace the call to 'sd_booted' by the truth value.
                     (("sd_booted\\(\\)")
-                     "1"))))))
+                     "1"))
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -462,26 +463,28 @@ embedded kernel situations.")
                                  "cool-retro-term-memory-leak-1.patch"))
                 (modules '((guix build utils)))
                 (snippet
-                 '(for-each (lambda (font)
-                              (delete-file-recursively
-                               (string-append "app/qml/fonts/" font))
-                              (substitute* '("app/qml/resources.qrc")
-                                (((string-append "<file>fonts/" font ".*"))
-                                 "")))
-                            '(;"1971-ibm-3278"     ; BSD 3-clause
-                              "1977-apple2"        ; Non-Free
-                              "1977-commodore-pet" ; Non-Free
-                              "1979-atari-400-800" ; Non-Free
-                              "1982-commodore64"   ; Non-Free
-                              "1985-atari-st"      ; ?
-                              "1985-ibm-pc-vga"    ; Unclear
-                              ;"modern-fixedsys-excelsior" ; Redistributable
-                              ;"modern-hermit"     ; SIL
-                              ;"modern-inconsolata"; SIL
-                              ;"modern-pro-font-win-tweaked" ; X11
-                              ;"modern-proggy-tiny"; X11
-                              ;"modern-terminus"   ; SIL
-                              "modern-monaco"))))) ; Apple non-free
+                 '(begin
+                    (for-each (lambda (font)
+                                (delete-file-recursively
+                                 (string-append "app/qml/fonts/" font))
+                                (substitute* '("app/qml/resources.qrc")
+                                  (((string-append "<file>fonts/" font ".*"))
+                                   "")))
+                              '(;;"1971-ibm-3278"             ; BSD 3-clause
+                                "1977-apple2"                 ; Non-Free
+                                "1977-commodore-pet"          ; Non-Free
+                                "1979-atari-400-800"          ; Non-Free
+                                "1982-commodore64"            ; Non-Free
+                                "1985-atari-st"               ; ?
+                                "1985-ibm-pc-vga"             ; Unclear
+                                ;;"modern-fixedsys-excelsior" ; Redistributable
+                                ;;"modern-hermit"             ; SIL
+                                ;;"modern-inconsolata"        ; SIL
+                                ;;"modern-pro-font-win-tweaked" ; X11
+                                ;;"modern-proggy-tiny"        ; X11
+                                ;;"modern-terminus"           ; SIL
+                                "modern-monaco"))             ; Apple non-free
+                    #t))))
       (build-system gnu-build-system)
       (inputs
        `(("qtbase" ,qtbase)
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 30f593d0ad..bcaf35bf2d 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -143,7 +143,9 @@ is on expressing the content semantically, avoiding physical markup commands.")
                ;; timestamp so we don't trigger the rule to update PO files,
                ;; which would require Gettext.
                ;; See <http://bugs.gnu.org/18247>.
-               '(utime "texi2html.pl" 0 0 0 0))))
+               '(begin
+                  (utime "texi2html.pl" 0 0 0 0)
+                  #t))))
     (build-system gnu-build-system)
     (inputs `(("perl" ,perl)))
     (arguments
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index f1ccab9af9..caec009f1a 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -214,7 +214,9 @@ compiled, requires few libraries, and starts up quickly. ")
               (modules '((guix build utils)))
 
               ;; Remove pre-built binaries.
-              (snippet '(delete-file-recursively "bin"))))
+              (snippet '(begin
+                          (delete-file-recursively "bin")
+                          #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -248,10 +250,10 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings.  e3 can be used on
                (base32
                 "0hakfikzsml7z0hja8m8mcahrmfy2piy81bq9nccsjplyfc9clai"))
               (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (substitute* "GNUmakefile"
-                    (("/usr/bin/") ""))))))
+              (snippet '(begin
+                          (substitute* "GNUmakefile"
+                            (("/usr/bin/") ""))
+                          #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 2d8a104d54..11deff4f6d 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -93,10 +93,9 @@ to DOS format and vice versa.")
         (base32
          "0r4yhf7i7zp2nl2apyzz7r3i2in12n385hmr8zcfr18ly0ly530q"))
        (modules '((guix build utils)))
-       (snippet
-        `(begin
-           (delete-file "tests/Recode.c")
-           #t))))
+       (snippet '(begin
+                   (delete-file "tests/Recode.c")
+                   #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-2)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 573c610e07..227a71225c 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -793,7 +793,8 @@ then ported to the GNU / Linux environment.")
         '(begin
            (substitute* "include/mbedtls/dhm.h"
              (("#define MBEDTLS_DHM_RFC5114_MODP_P")
-              "#define MBEDTLS_DHM_RFC5114_MODP_2048_P"))))))
+              "#define MBEDTLS_DHM_RFC5114_MODP_2048_P"))
+           #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/unrtf.scm b/gnu/packages/unrtf.scm
index 3a15171a57..1d21a81a0e 100644
--- a/gnu/packages/unrtf.scm
+++ b/gnu/packages/unrtf.scm
@@ -61,7 +61,7 @@
                                          #$grep "/bin:" #$sed "/bin:"
                                          #$coreutils "/bin:"
                                          (getenv "PATH")))
-                  (zero? (system* "autoreconf" "-vfi"))))))
+                  (invoke "autoreconf" "-vfi")))))
     (build-system gnu-build-system)
     (home-page "https://www.gnu.org/software/unrtf/")
     (synopsis "Convert Rich Text Format documents to other formats")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 2907999fca..70197744e7 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -391,7 +391,9 @@ everything from small to very large projects with speed and efficiency.")
               (patches (search-patches "libgit2-0.25.1-mtime-0.patch"))
 
               ;; Remove bundled software.
-              (snippet '(delete-file-recursively "deps"))
+              (snippet '(begin
+                          (delete-file-recursively "deps")
+                          #t))
               (modules '((guix build utils)))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
@@ -1716,7 +1718,8 @@ be served with a HTTP file server of your choice.")
              (("__TIME__") "\"00:00:00\""))
            (substitute* "src/impossible.h"
              (("__DATE__") "\"\"")
-             (("__TIME__") "\"\""))))))
+             (("__TIME__") "\"\""))
+           #t))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index bf5999177e..41d15558f0 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -303,15 +303,15 @@ H.264 (MPEG-4 AVC) video streams.")
         (base32
          "0hknnnnx9661igm1r73dc7aqxnnrl5a8yvyvr1nhd9ymn2klwpl5"))
        (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Delete bundled libraries.
-           (for-each delete-file-recursively
-                     '("lib/libebml"
-                       "lib/libmatroska"
-                       "lib/nlohmann-json"
-                       "lib/pugixml"
-                       "lib/utf8-cpp"))))))
+       (snippet '(begin
+                   ;; Delete bundled libraries.
+                   (for-each delete-file-recursively
+                             '("lib/libebml"
+                               "lib/libmatroska"
+                               "lib/nlohmann-json"
+                               "lib/pugixml"
+                               "lib/utf8-cpp"))
+                   #t))))
     (build-system gnu-build-system)
     (inputs
      `(("boost" ,boost)
@@ -387,8 +387,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
          (base32
           "1gyd94jkwdii9308m07nymsbxrmrcl81c0j8i10zhslr2mj07w0v"))
         (modules '((guix build utils)))
-        (snippet
-         '(delete-file-recursively "source/compat/getopt"))))
+        (snippet '(begin
+                    (delete-file-recursively "source/compat/getopt")
+                    #t))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
@@ -1794,10 +1795,10 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
                (base32
                 "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))
               (modules '((guix build utils)))
-              (snippet
-               ;; As of glibc 2.26, <xlocale.h> no longer is.
-               '(substitute* "src/framework/mlt_property.h"
-                  (("xlocale\\.h") "locale.h")))))
+              (snippet '(begin
+                          ;; As of glibc 2.26, <xlocale.h> no longer is.
+                          (substitute* "src/framework/mlt_property.h"
+                            (("xlocale\\.h") "locale.h"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no tests
@@ -1983,7 +1984,8 @@ implementation.")
           "1x2ag1f2fwa4yh1g5spv99w9x1m33hbxlqwyhm205ssq0ra234bx"))
         (patches (search-patches "libvdpau-va-gl-unbundle.patch"))
         (modules '((guix build utils)))
-        (snippet '(delete-file-recursively "3rdparty"))))
+        (snippet '(begin (delete-file-recursively "3rdparty")
+                         #t))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; Tests require a running X11 server, with VA-API support.
@@ -2495,10 +2497,10 @@ many codecs and formats supported by libmediainfo.")
                (base32
                 "0f5kxpayqn3yhabqrd2cqlc74i6x2xr01jfkank1lcilxnfyrsnq"))
               (modules '((guix build utils)))
-              (snippet
-               ;; As of glibc 2.26, <xlocale.h> no longer is.
-               '(substitute* "liveMedia/include/Locale.hh"
-                  (("xlocale\\.h") "locale.h")))))
+              (snippet '(begin
+                          ;; As of glibc 2.26, <xlocale.h> no longer is.
+                          (substitute* "liveMedia/include/Locale.hh"
+                            (("xlocale\\.h") "locale.h"))))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no tests
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 0fc3197077..442335cb94 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -62,7 +62,8 @@
                   (substitute* "lib/Makefile.in"
                     (("getopt1?\\.(c|h|\\$\\(OBJEXT\\))") ""))
                   (for-each delete-file
-                            '("lib/getopt.h" "lib/getopt.c"))))))
+                            '("lib/getopt.h" "lib/getopt.c"))
+                  #t))))
     (build-system gnu-build-system)
     (home-page "http://software.schmorp.de/pkg/gvpe.html")
     (inputs `(("openssl" ,openssl)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 6db59daa2c..a70db24d7b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -539,7 +539,8 @@ data.")
 
                  ;; Don't try to build with -Werror.
                  (substitute* (find-files "." "Makefile\\.in")
-                   (("-Werror") ""))))))
+                   (("-Werror") ""))
+                 #t))))
     (build-system gnu-build-system)
     (arguments '(#:parallel-build? #f
                  #:parallel-tests? #f))
@@ -575,7 +576,8 @@ It aims to conform to RFC 7159.")
 
                  ;; Don't try to build with -Werror.
                  (substitute* (find-files "." "Makefile\\.in")
-                   (("-Werror") ""))))))))
+                   (("-Werror") ""))
+                 #t))))))
 
 (define-public qjson
   (package
@@ -4836,10 +4838,10 @@ config files---you only have to specify the www root.")
                (base32
                 "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
               (modules '((guix build utils)))
-              (snippet
-               '(substitute* "src/error.h"
-                  (("__DATE__") "\"1970-01-01\"")
-                  (("__TIME__") "\"00:00:00\"")))))
+              (snippet '(begin
+                          (substitute* "src/error.h"
+                            (("__DATE__") "\"1970-01-01\"")
+                            (("__TIME__") "\"00:00:00\""))))))
     (build-system gnu-build-system)
     (inputs
      ;; TODO: Add dependency on geoip-tools.
@@ -4869,9 +4871,9 @@ on the fly.")
         (base32
          "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
        (modules '((guix build utils)))
-       (snippet
-        ;; Remove non-free IETF RFC documentation.
-        '(delete-file-recursively "doc"))))
+       (snippet '(begin
+                   ;; Remove non-free IETF RFC documentation.
+                   (delete-file-recursively "doc")))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -5005,9 +5007,10 @@ functions of Tidy.")
        (uri (string-append "https://www.hiawatha-webserver.org/files/"
                            "hiawatha-" version ".tar.gz"))
        (modules '((guix build utils)))
-       (snippet
-        ;; We use our packaged mbedtls, so delete the included copy.
-        '(delete-file-recursively "mbedtls"))
+       (snippet '(begin
+                   ;; We use our packaged mbedtls, so delete the included copy.
+                   (delete-file-recursively "mbedtls")
+                   #t))
        (sha256
         (base32
          "0x2zfc8kc6c7rl4gwymwmg13w1c60biv6c6c9fvzpnl59bc9jgin"))))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index f12eedab43..b16ef29ea5 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -673,16 +673,17 @@ experience.")
                "0kwpbls9h1alxcmvxh5g9qb995fds5b2ngcr44w0ibazkyls2pdc"))
              (modules '((guix build utils)
                         (srfi srfi-19)))
-             (snippet
-              ;; Remove non-reproducible timestamp and use the date of the
-              ;; source file instead.
-              '(substitute* "common/version.c"
-                 (("__DATE__ \" \" __TIME__")
-                  (date->string
-                   (time-utc->date
-                    (make-time time-utc 0
-                               (stat:mtime (stat "awesome.c"))))
-                   "\"~c\""))))
+             (snippet '(begin
+                         ;; Remove non-reproducible timestamp and use the date
+                         ;; of the source file instead.
+                         (substitute* "common/version.c"
+                           (("__DATE__ \" \" __TIME__")
+                            (date->string
+                             (time-utc->date
+                              (make-time time-utc 0
+                                         (stat:mtime (stat "awesome.c"))))
+                             "\"~c\"")))
+                         #t))
              (patches (search-patches "awesome-reproducible-png.patch"))))
     (build-system cmake-build-system)
     (native-inputs `(("asciidoc" ,asciidoc)
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index ad264a24e8..f1a61329e8 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -184,7 +184,8 @@ and many other languages.")
               ;; setup.py tries to keep its own license the same as wxwidget's
               ;; license (which it expects under $WXWIN/docs).
               (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'")
-                ""))))))
+               ""))
+            #t))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 87d14e20a4..9ae0096e6a 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -90,11 +90,13 @@
                 "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
               (modules '((guix build utils)))
               (snippet
-               ;; Do not record a timestamp and file name in gzipped man
-               ;; pages (this is equivalent to 'gzip --no-name'.)
-               '(substitute* "setup.py"
-                  (("gzip\\.open\\(gzfile, 'w', 9\\)")
-                   "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")))))
+               '(begin
+                  ;; Do not record a timestamp and file name in gzipped man
+                  ;; pages (this is equivalent to 'gzip --no-name'.)
+                  (substitute* "setup.py"
+                    (("gzip\\.open\\(gzfile, 'w', 9\\)")
+                     "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))
+                  #t))))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2     ;incompatible with python 3
@@ -1274,7 +1276,9 @@ program for X11.  It was designed to be fast, tiny and scriptable in any languag
               (modules '((guix build utils)))
               (snippet
                ;; Drop bundled m4.
-               '(delete-file-recursively "m4"))))
+               '(begin
+                  (delete-file-recursively "m4")
+                  #t))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index d167269c24..b27382a82c 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -425,10 +425,12 @@ Resources file.")
     (modules '((guix build utils)))
     (snippet
      ;; Do not include timestamps in '.pcf.gz' files.
-     '(substitute* "Makefile.in"
-        (("^COMPRESS = (.*)$" _ rest)
-         (string-append "COMPRESS = " (string-trim-right rest)
-                        " --no-name\n"))))))
+     '(begin
+        (substitute* "Makefile.in"
+          (("^COMPRESS = (.*)$" _ rest)
+           (string-append "COMPRESS = " (string-trim-right rest)
+                          " --no-name\n")))
+        #t))))
 
 (define-syntax-rule (xorg-font-origin font version hash)
   "Expand to the 'origin' form for the given Xorg font package."