GNU bug report logs - #39814
[PATCH] gnu: anki: Fix mpv audio playback

Previous Next

Package: guix-patches;

Reported by: Robert Smith <robertsmith <at> posteo.net>

Date: Thu, 27 Feb 2020 20:10:01 UTC

Severity: normal

Tags: patch

Done: Jakub Kądziołka <kuba <at> kadziolka.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39814 in the body.
You can then email your comments to 39814 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#39814; Package guix-patches. (Thu, 27 Feb 2020 20:10:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Robert Smith <robertsmith <at> posteo.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 27 Feb 2020 20:10:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Robert Smith <robertsmith <at> posteo.net>
To: guix-patches <at> gnu.org
Cc: Robert Smith <robertsmith <at> posteo.net>
Subject: [PATCH] gnu: anki: Fix mpv audio playback
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 <robertsmith <at> posteo.net>
+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





Information forwarded to guix-patches <at> gnu.org:
bug#39814; Package guix-patches. (Sun, 01 Mar 2020 21:20:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: Robert Smith <robertsmith <at> posteo.net>
Cc: guix-patches <at> gnu.org
Subject: Re: [PATCH] gnu: anki: Fix mpv audio playback
Date: Sun, 1 Mar 2020 22:20:08 +0100
[Message part 1 (text/plain, inline)]
On Thu, Feb 27, 2020 at 09:09:09PM +0100, Robert Smith wrote:
> * gnu/packages/patches/anki-mpv-args.patch: New file.
> * gnu/packages/education.scm (anki): Adjust accordingly.
Please add the new file to gnu/local.mk

> @@ -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)))))
Please mention this in the commit message.

> 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 <robertsmith <at> posteo.net>
> +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(-)
I don't know how I feel about this header for the patch.

> +--- 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)]
It seems that this is not the only place that should be modified,
considering the upstream commit that fixes the same issue:
https://github.com/ankitects/anki/commit/ccd715013609133c55e83924734efa78abc03326
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#39814; Package guix-patches. (Fri, 06 Mar 2020 16:01:01 GMT) Full text and rfc822 format available.

Message #11 received at 39814 <at> debbugs.gnu.org (full text, mbox):

From: Robert Smith <robertsmith <at> posteo.net>
To: kuba <at> kadziolka.net
Cc: 39814 <at> debbugs.gnu.org, Robert Smith <robertsmith <at> posteo.net>
Subject: [PATCH v2] gnu: anki: Fix mpv audio playback
Date: Fri,  6 Mar 2020 17:00:19 +0100
* gnu/packages/patches/anki-mpv-args.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/education.scm (anki): Adjust accordingly, wrap anki's
  PATH to include mpv executable.
---
Thanks for the feedback Jakub, I've rewritten the patch based on the
upstream commit and modified the commit message.
---
 gnu/local.mk                             |  1 +
 gnu/packages/education.scm               |  6 +++-
 gnu/packages/patches/anki-mpv-args.patch | 42 ++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/anki-mpv-args.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 857345cfad..bd4796d41d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -716,6 +716,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/akonadi-timestamps.patch		\
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch	\
   %D%/packages/patches/amule-crypto-6.patch			\
+  %D%/packages/patches/anki-mpv-args.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
   %D%/packages/patches/antlr3-3_3-fix-java8-compilation.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..21b9bd0aba
--- /dev/null
+++ b/gnu/packages/patches/anki-mpv-args.patch
@@ -0,0 +1,42 @@
+Modified from upstream commit:
+https://github.com/ankitects/anki/commit/ccd715013609133c55e83924734efa78abc03326
+Fixes mpv argument syntax (support for old syntax removed in mpv 0.31):
+https://anki.tenderapp.com/discussions/ankidesktop/38186-mpvprocesserror-unable-to-start-process
+Necessary because we are currently unable to upgrade anki to the
+latest version in guix (NPM dependencies currently unpackaged).
+---
+ anki/mpv.py   | 4 ++--
+ anki/sound.py | 1 -
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/anki/mpv.py b/anki/mpv.py
+index f53d9d0..563fddc 100644
+--- a/anki/mpv.py
++++ b/anki/mpv.py
+@@ -104,9 +104,9 @@ 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)]
++            self.argv += ["--wid="+str(self.window_id)]
+ 
+     def _start_process(self):
+         """Start the mpv process.
+diff --git a/anki/sound.py b/anki/sound.py
+index aa3431b..a5fce44 100644
+--- a/anki/sound.py
++++ b/anki/sound.py
+@@ -124,7 +124,6 @@ class MpvManager(MPV):
+ def setMpvConfigBase(base):
+     mpvConfPath = os.path.join(base, "mpv.conf")
+     MpvManager.default_argv += [
+-        "--no-config",
+         "--include="+mpvConfPath,
+     ]
+ 
+-- 
+2.25.1
+
-- 
2.25.1





Reply sent to Jakub Kądziołka <kuba <at> kadziolka.net>:
You have taken responsibility. (Sat, 07 Mar 2020 16:30:02 GMT) Full text and rfc822 format available.

Notification sent to Robert Smith <robertsmith <at> posteo.net>:
bug acknowledged by developer. (Sat, 07 Mar 2020 16:30:02 GMT) Full text and rfc822 format available.

Message #16 received at 39814-done <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: Robert Smith <robertsmith <at> posteo.net>
Cc: 39814-done <at> debbugs.gnu.org
Subject: Re: [PATCH v2] gnu: anki: Fix mpv audio playback
Date: Sat, 7 Mar 2020 17:30:39 +0100
[Message part 1 (text/plain, inline)]
On Fri, Mar 06, 2020 at 05:00:19PM +0100, Robert Smith wrote:
> * gnu/packages/patches/anki-mpv-args.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
> * gnu/packages/education.scm (anki): Adjust accordingly, wrap anki's
>   PATH to include mpv executable.
> ---
> Thanks for the feedback Jakub, I've rewritten the patch based on the
> upstream commit and modified the commit message.

Thanks! The revised patch LGTM, and it indeed helps with audio playback
in anki, so I've pushed it to master as 880a316591650a06c18aeaef1703800784d2c196
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 05 Apr 2020 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 20 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.