Subject: [bug#36542] [PATCH 5/6] gnu: network-manager-openvpn: Patch hardcoded paths.

From: Jelle Licht <[email-masked]>
Date: Sun, 7 Jul 2019 21:28:47 +0200

* gnu/packages/gnome.scm (network-manager-openvpn)[arguments]: Add custom
'patch-path' phase to replace references to openvpn and modprobe.
[inputs]: Add kmod.
---
 gnu/packages/gnome.scm | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index df273d4dad..b68aed804f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -37,6 +37,7 @@
 ;;; Copyright © 2019 Marius Bakke <[email-masked]>
 ;;; Copyright © 2019 Florian Pelz <[email-masked]>
 ;;; Copyright © 2019 Giacomo Leidi <[email-masked]>
+;;; Copyright © 2019 Jelle Licht <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -5448,12 +5449,31 @@ services.")
                 "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")))
+     `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'patch-path
+           (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+             (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
+                                         "/sbin/openvpn"))
+                    (modprobe (string-append (assoc-ref inputs "kmod")
+                                             "/bin/modprobe"))
+                    (pretty-ovpn (string-append "\"" ovpn "\"")))
+               (for-each
+                (lambda (file)
+                  (substitute* file
+                    (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
+                    (("\"/usr/sbin/openvpn\"") pretty-ovpn)
+                    (("\"/sbin/openvpn\"") pretty-ovpn)
+                    (("/sbin/modprobe") modprobe)))
+                '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)))
     (inputs
      `(("gtk+" ,gtk+)
+       ("kmod" ,kmod)
        ("openvpn" ,openvpn)
        ("network-manager" ,network-manager)
        ("network-manager-applet" ,network-manager-applet) ;for libnma
-- 
2.22.0