summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-10-09 00:09:04 +0200
committerLudovic Courtès <ludo@gnu.org>2013-10-09 00:11:34 +0200
commit01eafd38fbeb49d8167d99569eb624ab404bbeb2 (patch)
treecfbde1f3b011ee586bf4ce45b7f83d10fc28e2f4
parentac10e0e17e366d354ad8b3f91e03c1bdeddc7632 (diff)
downloadguix-01eafd38fbeb49d8167d99569eb624ab404bbeb2.tar.gz
gnu: Use the 'patches' field of <origin>.
* gnu/packages/apr.scm,
  gnu/packages/autotools.scm,
  gnu/packages/avahi.scm,
  gnu/packages/cdrom.scm,
  gnu/packages/cmake.scm,
  gnu/packages/cpio.scm,
  gnu/packages/cross-base.scm,
  gnu/packages/emacs.scm,
  gnu/packages/flex.scm,
  gnu/packages/fontutils.scm,
  gnu/packages/glib.scm,
  gnu/packages/grub.scm,
  gnu/packages/guile.scm,
  gnu/packages/idutils.scm,
  gnu/packages/libevent.scm,
  gnu/packages/linux.scm,
  gnu/packages/mail.scm,
  gnu/packages/make-bootstrap.scm,
  gnu/packages/mp3.scm,
  gnu/packages/oggvorbis.scm,
  gnu/packages/pdf.scm,
  gnu/packages/plotutils.scm,
  gnu/packages/qemu.scm,
  gnu/packages/recutils.scm,
  gnu/packages/rush.scm,
  gnu/packages/scheme.scm,
  gnu/packages/system.scm,
  gnu/packages/tcsh.scm,
  gnu/packages/valgrind.scm,
  gnu/packages/vpn.scm,
  gnu/packages/w3m: Use the 'patches' field of <origin> instead of
  adding a patch as input plus using #:patches.
-rw-r--r--gnu/packages/apr.scm13
-rw-r--r--gnu/packages/autotools.scm11
-rw-r--r--gnu/packages/avahi.scm11
-rw-r--r--gnu/packages/cdrom.scm7
-rw-r--r--gnu/packages/cmake.scm7
-rw-r--r--gnu/packages/cpio.scm21
-rw-r--r--gnu/packages/cross-base.scm9
-rw-r--r--gnu/packages/emacs.scm9
-rw-r--r--gnu/packages/flex.scm8
-rw-r--r--gnu/packages/fontutils.scm8
-rw-r--r--gnu/packages/glib.scm26
-rw-r--r--gnu/packages/grub.scm10
-rw-r--r--gnu/packages/guile.scm15
-rw-r--r--gnu/packages/idutils.scm23
-rw-r--r--gnu/packages/libevent.scm9
-rw-r--r--gnu/packages/linux.scm9
-rw-r--r--gnu/packages/mail.scm9
-rw-r--r--gnu/packages/make-bootstrap.scm49
-rw-r--r--gnu/packages/mp3.scm12
-rw-r--r--gnu/packages/oggvorbis.scm12
-rw-r--r--gnu/packages/pdf.scm9
-rw-r--r--gnu/packages/plotutils.scm8
-rw-r--r--gnu/packages/qemu.scm8
-rw-r--r--gnu/packages/recutils.scm9
-rw-r--r--gnu/packages/rush.scm7
-rw-r--r--gnu/packages/scheme.scm21
-rw-r--r--gnu/packages/system.scm24
-rw-r--r--gnu/packages/tcsh.scm12
-rw-r--r--gnu/packages/valgrind.scm11
-rw-r--r--gnu/packages/vpn.scm9
-rw-r--r--gnu/packages/w3m.scm28
31 files changed, 169 insertions, 255 deletions
diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm
index 01a4e6c2ba..cfb3b6acd5 100644
--- a/gnu/packages/apr.scm
+++ b/gnu/packages/apr.scm
@@ -35,16 +35,13 @@
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0884csfk3f530yscak0jlr6w929s3ys0n7fpwdg3dii1sgwd5f31"))))
+               "0884csfk3f530yscak0jlr6w929s3ys0n7fpwdg3dii1sgwd5f31"))
+             (patches
+              (list (search-patch "apr-skip-getservbyname-test.patch")))
+             (patch-flags '("-p0"))))
     (build-system gnu-build-system)
-    (arguments
-      `(#:patches (list (assoc-ref %build-inputs
-                                   "patch/skip-test"))
-        #:patch-flags '("-p0")))
     (inputs `(("perl" ,perl)
-              ("libtool" ,libtool)
-              ("patch/skip-test"
-               ,(search-patch "apr-skip-getservbyname-test.patch"))))
+              ("libtool" ,libtool)))
     (home-page "http://apr.apache.org/")
     (synopsis "The Apache Portable Runtime Library")
     (description
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index d32de8dcbd..580e43eff3 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -141,20 +141,19 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0nc0zqq8j336kamizzd86wb19vhbwywv5avcjh3cyx230xfqy671"))))
+               "0nc0zqq8j336kamizzd86wb19vhbwywv5avcjh3cyx230xfqy671"))
+             (patches
+              (list (search-patch "automake-skip-amhello-tests.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("autoconf" ,autoconf-wrapper)
-       ("perl" ,perl)
-       ("patch/skip-amhello"
-        ,(search-patch "automake-skip-amhello-tests.patch"))))
+       ("perl" ,perl)))
     (native-search-paths
      (list (search-path-specification
             (variable "ACLOCAL_PATH")
             (directories '("share/aclocal")))))
     (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/skip-amhello"))
-       #:modules ((guix build gnu-build-system)
+     '(#:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (srfi srfi-1)
                   (srfi srfi-26)
diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm
index 14073b32a0..2d2a4a43c1 100644
--- a/gnu/packages/avahi.scm
+++ b/gnu/packages/avahi.scm
@@ -39,7 +39,8 @@
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))))
+               "0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))
+             (patches (list (search-patch "avahi-localstatedir.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--with-distro=none"
@@ -50,8 +51,7 @@
                            "--disable-xmltoman"
                            "--enable-tests"
                            "--disable-qt3" "--disable-qt4"
-                           "--disable-gtk" "--disable-gtk3")
-       #:patches (list (assoc-ref %build-inputs "patch/localstatedir"))))
+                           "--disable-gtk" "--disable-gtk3")))
     (inputs
      `(("expat" ,expat)
        ("glib" ,glib)
@@ -59,10 +59,7 @@
        ("libdaemon" ,libdaemon)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
-       ("gdbm" ,gdbm)
-
-       ("patch/localstatedir"
-        ,(search-patch "avahi-localstatedir.patch"))))
+       ("gdbm" ,gdbm)))
     (synopsis "Avahi, an mDNS/DNS-SD implementation")
     (description
      "Avahi is a system which facilitates service discovery on a local
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 08c92fb014..40480fa704 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -129,14 +129,13 @@ filesystems.")
                                  version ".src.tgz"))
              (sha256
               (base32
-               "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))))
+               "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80"))
+             (patches (list (search-patch "cdparanoia-fpic.patch")))))
     (build-system gnu-build-system)
     (inputs
-     `(("patch/fpic" ,(search-patch "cdparanoia-fpic.patch"))
-       ("patchelf" ,patchelf)))
+     `(("patchelf" ,patchelf)))
     (arguments
      `(#:tests? #f ; there is no check target
-       #:patches (list (assoc-ref %build-inputs "patch/fpic"))
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (guix build rpath)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 734f55f330..0717529fcd 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -36,11 +36,11 @@
                     (string-index version #\. (+ 1 (string-index version #\.))))
                    "/cmake-" version ".tar.gz"))
              (sha256
-              (base32 "1c8fj6i2x9sb39wc9av2ighj415mw33cxfrlfpafcvm0knrlylnf"))))
+              (base32 "1c8fj6i2x9sb39wc9av2ighj415mw33cxfrlfpafcvm0knrlylnf"))
+             (patches (list (search-patch "cmake-fix-tests.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
-       #:patches (list (assoc-ref %build-inputs "fix-tests"))
        #:patch-flags '("-p0")
        #:phases (alist-replace
                  'configure
@@ -66,8 +66,7 @@
                              (string-append "--prefix=" out)))))
                  %standard-phases)))
     (inputs
-     `(("file" ,file)
-       ("fix-tests" ,(search-patch "cmake-fix-tests.patch"))))
+     `(("file" ,file)))
     (home-page "http://www.cmake.org/")
     (synopsis "A cross-platform, open-source build system")
     (description
diff --git a/gnu/packages/cpio.scm b/gnu/packages/cpio.scm
index 8512499b7b..43d5a1e623 100644
--- a/gnu/packages/cpio.scm
+++ b/gnu/packages/cpio.scm
@@ -27,20 +27,15 @@
   (package
     (name "cpio")
     (version "2.11")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/cpio/cpio-"
-                          version ".tar.bz2"))
-      (sha256
-       (base32
-        "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))))
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/cpio/cpio-"
+                                 version ".tar.bz2"))
+             (sha256
+              (base32
+               "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))
+             (patches (list (search-patch "cpio-gets-undeclared.patch")))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:patches (list (assoc-ref %build-inputs
-                                  "patch/gets"))))
-    (inputs
-     `(("patch/gets" ,(search-patch "cpio-gets-undeclared.patch"))))
     (home-page "https://www.gnu.org/software/cpio/")
     (synopsis "Manage cpio and tar file archives")
     (description
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 28224a1c40..0731103bfa 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -74,6 +74,9 @@ GCC that does not target a libc; otherwise, target that libc."
     (name (string-append "gcc-cross-"
                          (if libc "" "sans-libc-")
                          target))
+    (source (origin (inherit (package-source gcc-4.7))
+              (patches
+               (list (search-patch "gcc-cross-environment-variables.patch")))))
     (arguments
      `(#:implicit-inputs? #f
        #:modules ((guix build gnu-build-system)
@@ -81,7 +84,6 @@ GCC that does not target a libc; otherwise, target that libc."
                   (ice-9 regex)
                   (srfi srfi-1)
                   (srfi srfi-26))
-       #:patches (list (assoc-ref %build-inputs "patch/cross-env-vars"))
 
        ,@(substitute-keyword-arguments (package-arguments gcc-4.7)
            ((#:configure-flags flags)
@@ -177,10 +179,7 @@ GCC that does not target a libc; otherwise, target that libc."
             #f))))
 
     (native-inputs
-     `(("patch/cross-env-vars"
-        ,(search-patch "gcc-cross-environment-variables.patch"))
-
-       ("binutils-cross" ,xbinutils)
+     `(("binutils-cross" ,xbinutils)
 
        ;; Call it differently so that the builder can check whether the "libc"
        ;; input is #f.
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 8554cc3f01..53ec9a04b7 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -48,14 +48,14 @@
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))))
+               "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))
+             (patches (list (search-patch "emacs-configure-sh.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
        (list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
                             "/lib")
              "--with-gif=no")                     ; XXX: add libungif
-       #:patches (list (assoc-ref %build-inputs "patch/epaths"))
        #:phases (alist-cons-before
                  'configure 'fix-/bin/pwd
                  (lambda _
@@ -85,10 +85,7 @@
 
        ("libXpm" ,libxpm)
        ("libxml2" ,libxml2)
-       ("dbus" ,dbus)
-
-       ("patch/epaths" ,(search-patch "emacs-configure-sh.patch"))
-       ))
+       ("dbus" ,dbus)))
     (home-page "http://www.gnu.org/software/emacs/")
     (synopsis "The extensible, customizable, self-documenting text editor")
     (description
diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm
index 3dc7372acb..9318331f60 100644
--- a/gnu/packages/flex.scm
+++ b/gnu/packages/flex.scm
@@ -38,10 +38,9 @@
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp"))))
+               "0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp"))
+             (patches (list (search-patch "flex-bison-tests.patch")))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/bison-tests"))))
     (inputs
      (let ((bison-for-tests
             ;; Work around an incompatibility with Bison 3.0:
@@ -59,8 +58,7 @@
               ;; Unlike Bison 3.0, this version did not need Flex for its
               ;; tests, so it allows us to break the cycle.
               (inputs (alist-delete "flex" (package-inputs bison))))))
-       `(("patch/bison-tests" ,(search-patch "flex-bison-tests.patch"))
-         ("bison" ,bison-for-tests)
+       `(("bison" ,bison-for-tests)
          ("indent" ,indent))))
     (propagated-inputs `(("m4" ,m4)))
     (home-page "http://flex.sourceforge.net/")
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index ac0dbdf9d5..fc9fb6accd 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -141,12 +141,10 @@ X11-system or any other graphical user interface. ")
                    (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
                    ".tar.gz"))
             (sha256 (base32
-                     "0fjiwvic8mdxpkyccfp7zh26y9xnvkp0skqbyfkrjiacd191k82r"))))
+                     "0fjiwvic8mdxpkyccfp7zh26y9xnvkp0skqbyfkrjiacd191k82r"))
+            (patches (list (search-patch "teckit-cstdio.patch")))))
    (build-system gnu-build-system)
-   (inputs `(("patch/teckit" ,(search-patch "teckit-cstdio.patch"))
-             ("zlib" ,zlib)))
-   (arguments
-    `(#:patches (list (assoc-ref %build-inputs "patch/teckit"))))
+   (inputs `(("zlib" ,zlib)))
    (synopsis "TECkit, a toolkit for encoding conversions")
    (description
     "TECkit is a low-level toolkit intended to be used by other applications
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 0d0f186aee..2fbc46892b 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -64,7 +64,8 @@
                              version ".tar.gz"))
              (sha256
               (base32
-               "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))))
+               "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))
+             (patches (list (search-patch "dbus-localstatedir.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list ;; Install the system bus socket under /var.
@@ -74,13 +75,10 @@
                                ;; config.
                                ;; "--sysconfdir=/etc"
 
-                               "--with-session-socket-dir=/tmp")
-       #:patches (list (assoc-ref %build-inputs "patch/localstatedir"))))
+                               "--with-session-socket-dir=/tmp")))
     (inputs
      `(("expat" ,expat)
        ("pkg-config" ,pkg-config)
-       ("patch/localstatedir"
-        ,(search-patch "dbus-localstatedir.patch"))
 
        ;; Add a dependency on libx11 so that 'dbus-launch' has support for
        ;; '--autolaunch'.
@@ -116,7 +114,10 @@ shared NFS home directories.")
                                 name "/" (string-take version 4) "/"
                                 name "-" version ".tar.xz"))
             (sha256
-             (base32 "0cpzqadqk6z6bmb79p04pykxc8x57rvshh33414cnk41bvgaf4vm"))))
+             (base32 "0cpzqadqk6z6bmb79p04pykxc8x57rvshh33414cnk41bvgaf4vm"))
+            (patches (list (search-patch "glib-tests-homedir.patch")
+                           (search-patch "glib-tests-desktop.patch")
+                           (search-patch "glib-tests-prlimit.patch")))))
    (build-system gnu-build-system)
    (outputs '("out"                        ; everything
               "doc"))                      ; 20 MiB of GTK-Doc reference
@@ -131,18 +132,9 @@ shared NFS home directories.")
       ("dbus" ,dbus)                              ; for GDBus tests
       ("bash" ,bash)
       ("tzdata" ,tzdata)                          ; for tests/gdatetime.c
-
-      ("patch/tests-homedir"
-       ,(search-patch "glib-tests-homedir.patch"))
-      ("patch/tests-desktop"
-       ,(search-patch "glib-tests-desktop.patch"))
-      ("patch/tests-prlimit"
-       ,(search-patch "glib-tests-prlimit.patch"))))
+      ))
    (arguments
-    '(#:patches (list (assoc-ref %build-inputs "patch/tests-homedir")
-                      (assoc-ref %build-inputs "patch/tests-desktop")
-                      (assoc-ref %build-inputs "patch/tests-prlimit"))
-      #:phases (alist-cons-before
+    '(#:phases (alist-cons-before
                 'build 'pre-build
                 (lambda* (#:key inputs outputs #:allow-other-keys)
                   ;; For tests/gdatetime.c.
diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 8c981bf88d..7ac5822395 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -67,11 +67,11 @@
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq"))))
+               "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq"))
+             (patches (list (search-patch "grub-gets-undeclared.patch")))))
     (build-system gnu-build-system)
     (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/gets"))
-       #:configure-flags '("--disable-werror")
+     '(#:configure-flags '("--disable-werror")
        #:phases (alist-cons-before
                  'patch-source-shebangs 'patch-stuff
                  (lambda _
@@ -87,9 +87,7 @@
        ("gettext" ,gnu:gettext)
        ("freetype" ,freetype)
        ;; ("libusb" ,libusb)
-       ("ncurses" ,ncurses)
-
-       ("patch/gets" ,(search-patch "grub-gets-undeclared.patch"))))
+       ("ncurses" ,ncurses)))
     (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c580e0c324..dfad70884c 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -53,10 +53,10 @@
                                 ".tar.gz"))
             (sha256
              (base32
-              "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))))
+              "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))
+            (patches (list (search-patch "guile-1.8-cpp-4.5.patch")))))
    (build-system gnu-build-system)
    (arguments '(#:configure-flags '("--disable-error-on-warning")
-                #:patches (list (assoc-ref %build-inputs "patch/snarf"))
 
                 ;; Insert a phase before `configure' to patch things up.
                 #:phases (alist-cons-before
@@ -77,8 +77,7 @@
                              (substitute* "ice-9/popen.scm"
                                (("/bin/sh") (which "sh"))))
                            %standard-phases)))
-   (inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch"))
-             ("gawk" ,gawk)
+   (inputs `(("gawk" ,gawk)
              ("readline" ,readline)))
 
    ;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be
@@ -281,13 +280,11 @@ menu.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))))
+               "0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))
+             (patches (list (search-patch "mcron-install.patch")))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/install"))))
     (inputs
-     `(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)
-       ("patch/install" ,(search-patch "mcron-install.patch"))))
+     `(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)))
     (home-page "http://www.gnu.org/software/mcron/")
     (synopsis "Run jobs at scheduled times")
     (description
diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm
index 728bdeb51a..16ccd48854 100644
--- a/gnu/packages/idutils.scm
+++ b/gnu/packages/idutils.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,20 +27,19 @@
   (package
     (name "idutils")
     (version "4.6")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/idutils/idutils-"
-                          version ".tar.xz"))
-      (sha256
-       (base32
-        "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))))
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/idutils/idutils-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))
+             (patches (list
+                       (search-patch "diffutils-gets-undeclared.patch")))))
     (build-system gnu-build-system)
     (inputs `(;; TODO: Add Emacs as an input for byte-compilation.
               ;; ("emacs" ,emacs)
-              ("patch/gets"
-               ,(search-patch "diffutils-gets-undeclared.patch"))))
-    (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
+              ))
     (home-page "http://www.gnu.org/software/idutils/")
     (synopsis "Identifier database utilities")
     (description
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 8f2d5dad46..dce1ac1a69 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -37,16 +37,13 @@
                    "-stable.tar.gz"))
              (sha256
               (base32
-               "1xblymln9vihdmf1aqkp8chwvnhpdch3786bh30bj75slnl31992"))))
+               "1xblymln9vihdmf1aqkp8chwvnhpdch3786bh30bj75slnl31992"))
+             (patches (list (search-patch "libevent-dns-tests.patch")))))
     (build-system gnu-build-system)
     (inputs
-     `(("patch/dns-tests" ,(search-patch "libevent-dns-tests.patch"))
-
-       ;; Dependencies used for the tests and for `event_rpcgen.py'.
+     `(;; Dependencies used for the tests and for `event_rpcgen.py'.
        ("which" ,which)
        ("python" ,python-wrapper)))
-    (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/dns-tests"))))
     (home-page "http://libevent.org/")
     (synopsis
      "libevent, an event notification library")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e21a019f08..2481fc3628 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -333,13 +333,12 @@ providing the system administrator with some help in common tasks.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))))
+               "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))
+             (patches (list (search-patch "procps-make-3.82.patch")))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)
-              ("patch/make-3.82" ,(search-patch "procps-make-3.82.patch"))))
+    (inputs `(("ncurses" ,ncurses)))
     (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/make-3.82"))
-       #:phases (alist-replace
+     '(#:phases (alist-replace
                  'configure
                  (lambda* (#:key outputs #:allow-other-keys)
                    ;; No `configure', just a single Makefile.
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bfbbc4e3ea..ce41b087e8 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -49,12 +49,11 @@
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))))
+               "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))
+             (patches (list (search-patch "m4-gets-undeclared.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(;; TODO: Add `--with-sql'.
-       #:patches (list (assoc-ref %build-inputs
-                                  "patch/gets-undeclared"))
        #:phases (alist-cons-before
                  'build 'pre-build
                  (lambda _
@@ -83,9 +82,7 @@
        ("readline" ,readline)
        ("linux-pam" ,linux-pam)
        ("libtool" ,libtool)
-       ("gdbm" ,gdbm)
-       ("patch/gets-undeclared"
-        ,(search-patch "m4-gets-undeclared.patch"))))
+       ("gdbm" ,gdbm)))
     (home-page "http://www.gnu.org/software/mailutils/")
     (synopsis "Utilities and library for reading and serving mail")
     (description
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index ce270bd5c1..5dc7387e92 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -54,19 +54,17 @@
   "Return a libc deriving from BASE whose `system' and `popen' functions looks
 for `sh' in $PATH, and without nscd, and with static NSS modules."
   (package (inherit base)
+    (source (origin (inherit (package-source base))
+              (patches (cons (search-patch "glibc-bootstrap-system.patch")
+                             (origin-patches (package-source base))))))
     (arguments
      (substitute-keyword-arguments (package-arguments base)
-       ((#:patches patches)
-        `(cons (assoc-ref %build-inputs "patch/system") ,patches))
        ((#:configure-flags flags)
         ;; Arrange so that getaddrinfo & co. do not contact the nscd,
         ;; and can use statically-linked NSS modules.
         `(cons* "--disable-nscd" "--disable-build-nscd"
                 "--enable-static-nss"
-                ,flags))))
-    (inputs
-     `(("patch/system" ,(search-patch "glibc-bootstrap-system.patch"))
-       ,@(package-inputs base)))))
+                ,flags))))))
 
 (define (package-with-relocatable-glibc p)
   "Return a variant of P that uses the libc as defined by
@@ -154,10 +152,12 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                                 "xz_LDADD = -all-static")))
                            %standard-phases)))))
         (gawk (package (inherit gawk)
+                (source (origin (inherit (package-source gawk))
+                          (patches (cons (search-patch "gawk-shell.patch")
+                                         (origin-patches
+                                          (package-source gawk))))))
                 (arguments
-                 `(#:patches (list (assoc-ref %build-inputs "patch/sh"))
-
-                   ;; Starting from gawk 4.1.0, some of the tests for the
+                 `(;; Starting from gawk 4.1.0, some of the tests for the
                    ;; plug-in mechanism just fail on static builds:
                    ;;
                    ;; ./fts.awk:1: error: can't open shared library `filefuncs' for reading (No such file or directory)
@@ -173,10 +173,9 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                             (substitute* "configure"
                               (("-export-dynamic") "")))
                           ,phases)))))
-                (inputs `(("patch/sh" ,(search-patch "gawk-shell.patch"))
-                          ,@(if (%current-target-system)
-                                `(("bash" ,%bash-static))
-                                '())))))
+                (inputs (if (%current-target-system)
+                            `(("bash" ,%bash-static))
+                            '()))))
         (finalize (compose static-package
                            package-with-relocatable-glibc)))
     `(,@(map (match-lambda
@@ -452,17 +451,16 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
   ;; A statically-linked Guile that is relocatable--i.e., it can search
   ;; .scm and .go files relative to its installation directory, rather
   ;; than in hard-coded configure-time paths.
-  (let* ((guile (package (inherit guile-2.0)
+  (let* ((patches* (cons* (search-patch "guile-relocatable.patch")
+                          (search-patch "guile-default-utf8.patch")
+                          (search-patch "guile-linux-syscalls.patch")
+                          (origin-patches (package-source guile-2.0))))
+         (source*  (origin (inherit (package-source guile-2.0))
+                     (patches patches*)))
+         (guile (package (inherit guile-2.0)
                   (name (string-append (package-name guile-2.0) "-static"))
+                  (source source*)
                   (synopsis "Statically-linked and relocatable Guile")
-                  (inputs
-                   `(("patch/relocatable"
-                      ,(search-patch "guile-relocatable.patch"))
-                     ("patch/utf8"
-                      ,(search-patch "guile-default-utf8.patch"))
-                     ("patch/syscalls"
-                      ,(search-patch "guile-linux-syscalls.patch"))
-                     ,@(package-inputs guile-2.0)))
                   (propagated-inputs
                    `(("bdw-gc" ,libgc)
                      ,@(alist-delete "bdw-gc"
@@ -492,13 +490,6 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
                                                    " -ldl\n"))))
                                %standard-phases)
 
-                     ;; Allow Guile to be relocated, as is needed during
-                     ;; bootstrap.
-                     #:patches
-                     (list (assoc-ref %build-inputs "patch/relocatable")
-                           (assoc-ref %build-inputs "patch/utf8")
-                           (assoc-ref %build-inputs "patch/syscalls"))
-
                      ;; There are uses of `dynamic-link' in
                      ;; {foreign,coverage}.test that don't fly here.
                      #:tests? #f)))))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 2d103b9d8d..b604a36291 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -239,7 +239,10 @@ use with CD-recording software).")
                                 version ".tar.gz"))
             (sha256
              (base32
-              "130rsb2ly0l6hz728m9qr605ir4073xfl2acvf83id63kxfzjn3x"))))
+              "130rsb2ly0l6hz728m9qr605ir4073xfl2acvf83id63kxfzjn3x"))
+            (patches
+             ;; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713684
+             (list (search-patch "ripperx-libm.patch")))))
    (build-system gnu-build-system)
    (propagated-inputs
     `(("gs-fonts" ,gs-fonts)
@@ -248,15 +251,10 @@ use with CD-recording software).")
       ("lame" ,lame)
       ("vorbis-tools" ,vorbis-tools)))
    (inputs
-    `(("patch/libm" ,(search-patch "ripperx-libm.patch"))
-      ("glib" ,glib)
+    `(("glib" ,glib)
       ("gtk+" ,gtk+-2)
       ("id3lib" ,id3lib)
       ("pkg-config" ,pkg-config)))
-   (arguments
-    `(#:patches
-      ;; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713684
-      (list (assoc-ref %build-inputs "patch/libm"))))
    (synopsis "GTK program to rip and encode CD audio tracks")
    (description
     "RipperX is a GTK program to rip CD audio tracks and encode them to the
diff --git a/gnu/packages/oggvorbis.scm b/gnu/packages/oggvorbis.scm
index 522b87f86a..cd9e60862e 100644
--- a/gnu/packages/oggvorbis.scm
+++ b/gnu/packages/oggvorbis.scm
@@ -168,16 +168,14 @@ OpenBSD's sndio.")
                                 version ".tar.gz"))
             (sha256
              (base32
-              "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn"))))
+              "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn"))
+            (patches
+             (list (search-patch "flac-fix-memcmp-not-declared.patch")))))
    (build-system gnu-build-system)
    (arguments
-    `(#:parallel-tests? #f
-      #:patches (list (assoc-ref %build-inputs
-                                 "patch/memcmp"))))
+    `(#:parallel-tests? #f))
    ;; FIXME: configure also looks for xmms, input could be added once it exists
-   (inputs `(("libogg" ,libogg)
-             ("patch/memcmp"
-                 ,(search-patch "flac-fix-memcmp-not-declared.patch"))))
+   (inputs `(("libogg" ,libogg)))
    (synopsis "flac free lossless audio codec")
    (description
 "FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 820a879288..2dd3c9e32c 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -79,7 +79,8 @@
             (uri (string-append "ftp://ftp.foolabs.com/pub/xpdf/xpdf-"
                                 version ".tar.gz"))
             (sha256 (base32
-                     "1jnfzdqc54wa73lw28kjv0m7120mksb0zkcn81jdlvijyvc67kq2"))))
+                     "1jnfzdqc54wa73lw28kjv0m7120mksb0zkcn81jdlvijyvc67kq2"))
+            (patches (list (search-patch "xpdf-constchar.patch")))))
    (build-system gnu-build-system)
    (inputs `(("freetype" ,freetype)
              ("gs-fonts" ,gs-fonts)
@@ -90,13 +91,9 @@
              ("libxp" ,libxp)
              ("libxpm" ,libxpm)
              ("libxt" ,libxt)
-             ("zlib" ,zlib)
-             ("patch/constchar"
-                 ,(search-patch "xpdf-constchar.patch"))))
+             ("zlib" ,zlib)))
    (arguments
     `(#:tests? #f ; there is no check target
-      #:patches (list (assoc-ref %build-inputs
-                                 "patch/constchar"))
       #:phases
        (alist-replace
         'install
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index a3c43d79ba..0b12665a61 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -35,15 +35,13 @@
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))))
+               "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))
+             (patches (list (search-patch "plotutils-libpng-jmpbuf.patch")))))
     (build-system gnu-build-system)
-    (arguments '(#:patches (list (assoc-ref %build-inputs "patch/jmpbuf"))))
     (inputs `(("libpng" ,libpng)
               ("libx11" ,libx11)
               ("libxt" ,libxt)
-              ("libxaw" ,libxaw)
-              ("patch/jmpbuf"
-               ,(search-patch "plotutils-libpng-jmpbuf.patch"))))
+              ("libxaw" ,libxaw)))
     (home-page
      "http://www.gnu.org/software/plotutils/")
     (synopsis "Plotting utilities and library")
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 6330fabcf9..791aa715c8 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -134,9 +134,5 @@ server and embedded PowerPC, and S390 guests.")
   ;; the store, and another one for exchanges with the host.
   (package (inherit qemu)
     (name "qemu-with-multiple-smb-shares")
-    (inputs `(,@(package-inputs qemu)
-              ("patch/smb-shares"
-               ,(search-patch "qemu-multiple-smb-shares.patch"))))
-    (arguments
-     `(#:patches (list (assoc-ref %build-inputs "patch/smb-shares"))
-       ,@(package-arguments qemu)))))
+    (source (origin (inherit (package-source qemu))
+              (patches (search-patch "qemu-multiple-smb-shares.patch"))))))
diff --git a/gnu/packages/recutils.scm b/gnu/packages/recutils.scm
index 7b4828995e..2182d7385c 100644
--- a/gnu/packages/recutils.scm
+++ b/gnu/packages/recutils.scm
@@ -36,16 +36,15 @@
                                 version ".tar.gz"))
             (sha256
              (base32
-              "1v2xzwwwhc5j5kmvg4sv6baxjpsfqh8ln7ilv4mgb1408rs7xmky"))))
+              "1v2xzwwwhc5j5kmvg4sv6baxjpsfqh8ln7ilv4mgb1408rs7xmky"))
+            (patches
+             (list (search-patch "diffutils-gets-undeclared.patch")))))
    (build-system gnu-build-system)
    (inputs `(;; TODO: Enable optional deps when they're packaged.
              ;; ("curl" ,(nixpkgs-derivation "curl"))
              ("emacs" ,emacs)
              ("check" ,check)
-             ("bc" ,bc)
-             ("patch/gets"
-              ,(search-patch "diffutils-gets-undeclared.patch"))))
-   (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
+             ("bc" ,bc)))
    (synopsis "Manipulate plain text files as databases")
    (description
     "GNU recutils is a set of tools and libraries to access human-editable,
diff --git a/gnu/packages/rush.scm b/gnu/packages/rush.scm
index a7f1ec4440..20f0e5cae7 100644
--- a/gnu/packages/rush.scm
+++ b/gnu/packages/rush.scm
@@ -35,12 +35,9 @@
                    ".tar.gz"))
              (sha256
               (base32
-               "0fh0gbbp0iiq3wbkf503xb40r8ljk42vyj9bnlflbz82d6ipy1rm"))))
+               "0fh0gbbp0iiq3wbkf503xb40r8ljk42vyj9bnlflbz82d6ipy1rm"))
+             (patches (list (search-patch "cpio-gets-undeclared.patch")))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/gets-undeclared"))))
-    (inputs `(("patch/gets-undeclared"
-               ,(search-patch "cpio-gets-undeclared.patch"))))
     (home-page "http://www.gnu.org/software/rush/")
     (synopsis "Restricted user (login) shell")
     (description
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 0608c41a2f..122262487b 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -125,11 +125,11 @@ development cycle.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1fck2h48f0bvh8fl437cagmp0syfxy9lqacy1zwsis20fc76jvzi"))))
+               "1fck2h48f0bvh8fl437cagmp0syfxy9lqacy1zwsis20fc76jvzi"))
+             (patches (list (search-patch "bigloo-gc-shebangs.patch")))))
     (build-system gnu-build-system)
     (arguments
-     `(#:patches (list (assoc-ref %build-inputs "patch/shebangs"))
-       #:test-target "test"
+     `(#:test-target "test"
        #:phases (alist-replace
                  'configure
                  (lambda* (#:key outputs #:allow-other-keys)
@@ -178,7 +178,6 @@ development cycle.")
                   %standard-phases))))
     (inputs
      `(("emacs" ,emacs)
-       ("patch/shebangs" ,(search-patch "bigloo-gc-shebangs.patch"))
 
        ;; Optional APIs for which Bigloo has bindings.
        ("avahi" ,avahi)
@@ -211,7 +210,8 @@ between Scheme and C# programs.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1v2r4ga58kk1sx0frn8qa8ccmjpic9csqzpk499wc95y9c4b1wy3"))))
+               "1v2r4ga58kk1sx0frn8qa8ccmjpic9csqzpk499wc95y9c4b1wy3"))
+             (patches (list (search-patch "hop-bigloo-4.0b.patch")))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -251,7 +251,6 @@ between Scheme and C# programs.")
                                         "\\.so$")))))
          %standard-phases))
        #:tests? #f                                ; no test suite
-       #:patches (list (assoc-ref %build-inputs "patch/bigloo-4.0b"))
        #:modules ((guix build gnu-build-system)
                   (guix build utils)
                   (ice-9 popen)
@@ -260,10 +259,7 @@ between Scheme and C# programs.")
                   (srfi srfi-1))))
     (inputs `(("bigloo" ,bigloo)
               ("which" ,which)
-              ("patchelf" ,patchelf)
-
-              ("patch/bigloo-4.0b"
-               ,(search-patch "hop-bigloo-4.0b.patch"))))
+              ("patchelf" ,patchelf)))
     (home-page "http://hop.inria.fr/")
     (synopsis "A multi-tier programming language for the Web 2.0")
     (description
@@ -324,10 +320,9 @@ language standard, and includes many enhancements and extensions.")
                                  "/scheme48-" version ".tgz"))
              (sha256
               (base32
-               "0rw2lz5xgld0klvld292ds6hvfk5l12vskzgf1hhwjdpa38r3fnw"))))
+               "0rw2lz5xgld0klvld292ds6hvfk5l12vskzgf1hhwjdpa38r3fnw"))
+             (patches (list (search-patch "scheme48-tests.patch")))))
     (build-system gnu-build-system)
-    (arguments `(#:patches (list (assoc-ref %build-inputs "patch/tests"))))
-    (inputs `(("patch/tests" ,(search-patch "scheme48-tests.patch"))))
     (home-page "http://s48.org/")
     (synopsis "Scheme implementation using a bytecode interpreter")
     (description
diff --git a/gnu/packages/system.scm b/gnu/packages/system.scm
index 3115714b08..6f710fd4d4 100644
--- a/gnu/packages/system.scm
+++ b/gnu/packages/system.scm
@@ -143,22 +143,20 @@ it can replace the inetd utility!")
   (package
     (name "inetutils")
     (version "1.9.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/inetutils/inetutils-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "0azzg6njgq79byl6960kb0wihfhhzf49snslhxgvi30ribgfpa82"))))
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/inetutils/inetutils-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "0azzg6njgq79byl6960kb0wihfhhzf49snslhxgvi30ribgfpa82"))
+             (patches
+              (list (search-patch "diffutils-gets-undeclared.patch")))))
     (build-system gnu-build-system)
-    (arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))
-
-                 ;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
+    (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
                  ;; which is currently missing.
                  #:tests? #f))
-    (inputs `(("patch/gets" ,(search-patch "diffutils-gets-undeclared.patch"))
-              ("ncurses" ,ncurses)))
+    (inputs `(("ncurses" ,ncurses)))
     (home-page "http://www.gnu.org/software/inetutils/")
     (synopsis "Basic networking utilities")
     (description
diff --git a/gnu/packages/tcsh.scm b/gnu/packages/tcsh.scm
index 2e195bd489..e1531874c0 100644
--- a/gnu/packages/tcsh.scm
+++ b/gnu/packages/tcsh.scm
@@ -35,14 +35,14 @@
              (uri (string-append "ftp://ftp.astron.com/pub/tcsh/tcsh-"
                                  version ".tar.gz"))
              (sha256
-              (base32 "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q"))))
+              (base32 "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q"))
+             (patches (list (search-patch "tcsh-fix-autotest.patch")))
+             (patch-flags '("-p0"))))
     (build-system gnu-build-system)
     (inputs
      `(("autoconf" ,autoconf)
        ("coreutils" ,coreutils)
-       ("ncurses" ,ncurses)
-       ("patch/skip-tests"
-        ,(search-patch "tcsh-fix-autotest.patch"))))
+       ("ncurses" ,ncurses)))
     (arguments
      `(#:phases
        (alist-replace
@@ -69,9 +69,7 @@
                  (bin (string-append out "/bin")))
            (with-directory-excursion bin
              (symlink "tcsh" "csh"))))
-         %standard-phases))
-        #:patches (list (assoc-ref %build-inputs "patch/skip-tests"))
-        #:patch-flags '("-p0")))
+         %standard-phases))))
     (home-page "http://www.tcsh.org/")
     (synopsis "A Unix shell based on csh")
     (description
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index 949f7d9a30..8eb5a48190 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -35,11 +35,11 @@
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "1nsqk70ry3221sd62s4f0njcrncppszs4xxjcak13lxyfq2y0fs7"))))
+               "1nsqk70ry3221sd62s4f0njcrncppszs4xxjcak13lxyfq2y0fs7"))
+             (patches (list (search-patch "valgrind-glibc.patch")))))
     (build-system gnu-build-system)
     (arguments
-     '(#:patches (list (assoc-ref %build-inputs "patch/glibc-2.17"))
-       #:phases (alist-cons-after
+     '(#:phases (alist-cons-after
                  'install 'patch-suppression-files
                  (lambda* (#:key outputs #:allow-other-keys)
                    ;; Don't assume the FHS.
@@ -52,10 +52,7 @@
                      #t))
                  %standard-phases)))
     (inputs `(;; GDB is needed to provide a sane default for `--db-command'.
-              ("gdb" ,gdb)
-
-              ("patch/glibc-2.17"
-               ,(search-patch "valgrind-glibc.patch"))))
+              ("gdb" ,gdb)))
     (native-inputs `(("perl" ,perl)))
     (home-page "http://www.valgrind.org/")
     (synopsis "Debugging and profiling tool suite")
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 4cd90cd7f2..0b733550be 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -41,16 +41,13 @@
             (uri (string-append "http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-"
                                 version ".tar.gz"))
             (sha256 (base32
-                     "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6"))))
+                     "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6"))
+            (patches (list (search-patch "vpnc-script.patch")))))
    (build-system gnu-build-system)
    (inputs `(("libgcrypt" ,libgcrypt)
-             ("perl" ,perl)
-             ("patch/script"
-                 ,(search-patch "vpnc-script.patch"))))
+             ("perl" ,perl)))
    (arguments
     `(#:tests? #f ; there is no check target
-      #:patches (list (assoc-ref %build-inputs
-                                 "patch/script"))
       #:phases
       (alist-replace
        'configure
diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm
index 9199cbd488..b5122d4f23 100644
--- a/gnu/packages/w3m.scm
+++ b/gnu/packages/w3m.scm
@@ -35,14 +35,17 @@
   (package
     (name "w3m")
     (version "0.5.3")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://sourceforge/w3m/w3m-"
-                          version ".tar.gz"))
-      (sha256
-       (base32
-        "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579"))))
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://sourceforge/w3m/w3m-"
+                                 version ".tar.gz"))
+             (sha256
+              (base32
+               "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579"))
+
+             ;; cf. https://bugs.archlinux.org/task/33397
+             (patches (list (search-patch "w3m-fix-compile.patch")))
+             (patch-flags '("-p0"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f  ; no check target
                  #:phases (alist-cons-before
@@ -56,11 +59,7 @@
                              (substitute* '("scripts/w3mmail.cgi.in"
                                             "scripts/dirlist.cgi.in")
                                (("@PERL@") (which "perl"))))
-                           %standard-phases)
-                 ;; cf. https://bugs.archlinux.org/task/33397
-                 #:patches (list (assoc-ref %build-inputs
-                                            "patch/fix-compile"))
-                 #:patch-flags '("-p0")))
+                           %standard-phases)))
     (inputs
      `(("gettext" ,guix:gettext)
        ("libgc" ,libgc)
@@ -68,8 +67,7 @@
        ("openssl" ,openssl)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)
-       ("patch/fix-compile" ,(search-patch "w3m-fix-compile.patch"))))
+       ("zlib" ,zlib)))
     (home-page "http://w3m.sourceforge.net/")
     (synopsis "w3m, a text-mode web browser")
     (description