summaryrefslogtreecommitdiffstats
path: root/pkgs/games/anki
diff options
context:
space:
mode:
authorAlexey Lebedeff <binarin@binarin.ru>2018-12-01 11:05:28 +0100
committerAlexey Lebedeff <binarin@binarin.ru>2018-12-01 11:05:28 +0100
commit19bffeee70043b7e9f8f7287b632078c05996d35 (patch)
treee60b6bbee5f7f53d9b9d4f6a2a13c2a839bcaf78 /pkgs/games/anki
parent8d61b9d079de1460d9e1e73f73174bea30fd324d (diff)
anki: Use `fetchpatch` for python compatibilty patch
Diffstat (limited to 'pkgs/games/anki')
-rw-r--r--pkgs/games/anki/default.nix12
-rw-r--r--pkgs/games/anki/python-3.7-compat.patch23
2 files changed, 11 insertions, 24 deletions
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index c73afdd03934..3f837886116c 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -4,6 +4,7 @@
, lib
, python
, fetchurl
+, fetchpatch
, lame
, mplayer
, libpulseaudio
@@ -53,7 +54,16 @@ buildPythonApplication rec {
patches = [
# Disable updated version check.
./no-version-check.patch
- ./python-3.7-compat.patch
+
+ # This is needed to fix python 3.7 compatibilty, where the
+ # behaviour of `re.escape()` was changed in a way that it no
+ # longer escapes `%`. This patch detects this difference at
+ # runtime and makes anki work with any python version.
+ # Upstream PR: https://github.com/dae/anki/pull/266
+ (fetchpatch {
+ url = "https://github.com/dae/anki/commit/3d69aa9ce454a151ba75deafd7de117af2c7307d.patch";
+ sha256 = "0kf9gajhy0wcajp24xfia71z6gn1mc4vl37svvq4sqbhj3gigd0h";
+ })
];
buildPhase = ''
diff --git a/pkgs/games/anki/python-3.7-compat.patch b/pkgs/games/anki/python-3.7-compat.patch
deleted file mode 100644
index 8545b39d08cb..000000000000
--- a/pkgs/games/anki/python-3.7-compat.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-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