Subject: [PATCH] gnu: anki: Fix mpv audio playback

From: Robert Smith <[email-masked]>
Date: Thu, 27 Feb 2020 21:09:09 +0100

* gnu/packages/patches/anki-mpv-args.patch: New file.
* gnu/packages/education.scm (anki): Adjust accordingly.
---
mpv now requires that the input-ipc-server argument be passed with an
equals sign and without any spaces.  This is a slightly out-of-date
version of anki, so presumably mpv used to be more lenient with
command line arguments.  mpv was also added to the PATH using
wrap-program to to ensure anki can find it at runtime.
---
 gnu/packages/education.scm               |  6 ++++-
 gnu/packages/patches/anki-mpv-args.patch | 30 ++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/anki-mpv-args.patch

diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 20fc9a3706..d8427f6eab 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -738,7 +738,8 @@ adjust the level of difficulty.")
        (uri (string-append "https://apps.ankiweb.net/downloads/archive/anki-"
                            version "-source.tgz"))
        (sha256
-        (base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))))
+        (base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))
+       (patches (search-patches "anki-mpv-args.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list (string-append "PREFIX=" %output))
@@ -779,6 +780,9 @@ adjust the level of difficulty.")
                            (wrap-program program
                              `("QTWEBENGINEPROCESS_PATH" =
                                (,qtwebengineprocess))
+                             `("PATH" prefix (,(string-append
+                                                (assoc-ref inputs "mpv")
+                                                "/bin")))
                              `("PYTHONPATH" = ,site-packages)))
                          (find-files bin ".")))
              #t)))))
diff --git a/gnu/packages/patches/anki-mpv-args.patch b/gnu/packages/patches/anki-mpv-args.patch
new file mode 100644
index 0000000000..a66632c0e0
--- /dev/null
+++ b/gnu/packages/patches/anki-mpv-args.patch
@@ -0,0 +1,30 @@
+From 0e2c723f2b920f96937725a12e3db13c14795117 Mon Sep 17 00:00:00 2001
+From: Robert Smith <[email-masked]>
+Date: Thu, 27 Feb 2020 20:07:08 +0100
+Subject: [PATCH] Fix mpv argument formatting
+
+---
+mpv now requires that the input-ipc-server argument be passed with an
+equals sign and without any spaces.  This is a slightly out-of-date
+version of anki, so presumably mpv used to be more lenient with
+command line arguments.
+---
+ anki/mpv.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/anki/mpv.py b/anki/mpv.py
+index f53d9d0..c6e7dd7 100644
+--- a/anki/mpv.py
++++ b/anki/mpv.py
+@@ -104,7 +104,7 @@ class MPVBase:
+         """
+         self.argv = [self.executable]
+         self.argv += self.default_argv
+-        self.argv += ["--input-ipc-server", self._sock_filename]
++        self.argv += ["--input-ipc-server=" + self._sock_filename]
+         if self.window_id is not None:
+             self.argv += ["--wid", str(self.window_id)]
+ 
+-- 
+2.25.0
+
-- 
2.25.1