summaryrefslogtreecommitdiffstats
path: root/pkgs/games/anki
diff options
context:
space:
mode:
authorAlexey Lebedeff <binarin@binarin.ru>2018-11-30 10:55:09 +0100
committerAlexey Lebedeff <binarin@binarin.ru>2018-11-30 10:55:09 +0100
commit8d61b9d079de1460d9e1e73f73174bea30fd324d (patch)
tree949bd045b7c1d81e86f1a1afe6f2636367fef316 /pkgs/games/anki
parent76c7a8bac083522ea10ba43f699421ca64007708 (diff)
anki: 2.1.6-beta1 -> 2.1.6-beta2, fix python 3.7
With recent switch to python 3.7 this was no longer building. Upstream PR with the same patch: https://github.com/dae/anki/pull/266
Diffstat (limited to 'pkgs/games/anki')
-rw-r--r--pkgs/games/anki/default.nix5
-rw-r--r--pkgs/games/anki/python-3.7-compat.patch23
2 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index fb43640b2b12..c73afdd03934 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -25,7 +25,7 @@
}:
buildPythonApplication rec {
- version = "2.1.6-beta1";
+ version = "2.1.6-beta2";
name = "anki-${version}";
src = fetchurl {
@@ -35,7 +35,7 @@ buildPythonApplication rec {
# "http://ankisrs.net/download/mirror/${name}.tgz"
# "http://ankisrs.net/download/mirror/archive/${name}.tgz"
];
- sha256 = "0yqn8qjx9dyf754jljhyyrk8mahii188nz0yifl1lr3py9sxzbsf";
+ sha256 = "0h71s1j1269x0b8481z8xf019caqglcjs32xlpzk72087ps169fa";
};
propagatedBuildInputs = [ pyqt5 sqlalchemy
@@ -53,6 +53,7 @@ buildPythonApplication rec {
patches = [
# Disable updated version check.
./no-version-check.patch
+ ./python-3.7-compat.patch
];
buildPhase = ''
diff --git a/pkgs/games/anki/python-3.7-compat.patch b/pkgs/games/anki/python-3.7-compat.patch
new file mode 100644
index 000000000000..8545b39d08cb
--- /dev/null
+++ b/pkgs/games/anki/python-3.7-compat.patch
@@ -0,0 +1,23 @@
+commit 3d69aa9ce454a151ba75deafd7de117af2c7307d
+Author: Alexey Lebedeff <binarin@binarin.ru>
+Date: Fri Nov 30 10:44:39 2018 +0100
+
+ Fix searching for python 3.7
+
+ 3.7 introduced a change to `re.escape()`, which no longer escapes
+ `%`. By using `re.escape("%")` instead of a literal, we can detect
+ a proper form at runtime.
+
+diff --git a/anki/find.py b/anki/find.py
+index 48d0dd1..213216d 100644
+--- a/anki/find.py
++++ b/anki/find.py
+@@ -440,7 +440,7 @@ select distinct(n.id) from cards c, notes n where c.nid=n.id and """+preds
+ # nothing has that field
+ return
+ # gather nids
+- regex = re.escape(val).replace("_", ".").replace("\\%", ".*")
++ regex = re.escape(val).replace("_", ".").replace(re.escape('%'), ".*")
+ nids = []
+ for (id,mid,flds) in self.col.db.execute("""
+ select id, mid, flds from notes