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 -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