summary refs log tree commit diff
path: root/pkgs/games/anki
diff options
context:
space:
mode:
authorPiotr Halama <ptrhlm0@gmail.com>2018-11-15 03:38:07 +0100
committerPiotr Halama <ptrhlm0@gmail.com>2018-11-15 23:17:31 +0100
commita30e30432da95d6eae8713b57ca5708d892a3263 (patch)
treed167c11e6220906a33d80ca8b98036e5fb35161d /pkgs/games/anki
parent61d41d7225e070b2be80e6f5fb13083352a42b43 (diff)
downloadnixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar.gz
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar.bz2
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar.lz
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar.xz
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.tar.zst
nixpkgs-a30e30432da95d6eae8713b57ca5708d892a3263.zip
anki: 2.0.52 -> 2.1.6-beta1
Diffstat (limited to 'pkgs/games/anki')
-rw-r--r--pkgs/games/anki/beautifulsoup.nix20
-rw-r--r--pkgs/games/anki/default.nix43
-rw-r--r--pkgs/games/anki/fix-paths.patch99
3 files changed, 18 insertions, 144 deletions
diff --git a/pkgs/games/anki/beautifulsoup.nix b/pkgs/games/anki/beautifulsoup.nix
deleted file mode 100644
index 35118e5aabd..00000000000
--- a/pkgs/games/anki/beautifulsoup.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ buildPythonPackage, isPy3k, pkgs }:
-
-buildPythonPackage rec {
-  name = "beautifulsoup-3.2.1";
-  disabled = isPy3k;
-
-  src = pkgs.fetchurl {
-    url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
-    sha256 = "1nshbcpdn0jpcj51x0spzjp519pkmqz0n0748j7dgpz70zlqbfpm";
-  };
-
-  # error: invalid command 'test'
-  doCheck = false;
-
-  meta = {
-    homepage = http://www.crummy.com/software/BeautifulSoup/;
-    license = "bsd";
-    description = "Undemanding HTML/XML parser";
-  };
-}
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index 8ac70fcd6f3..fb43640b2b1 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -4,14 +4,16 @@
 , lib
 , python
 , fetchurl
-, substituteAll
 , lame
 , mplayer
 , libpulseaudio
-, pyqt4
+, pyqt5
+, decorator
+, beautifulsoup4
 , sqlalchemy
 , pyaudio
-, httplib2
+, requests
+, markdown
 , matplotlib
 , pytest
 , glibcLocales
@@ -22,41 +24,35 @@
 , plotsSupport ? true
 }:
 
-let
-    # Development version of anki has bumped to beautifulsoup4
-    beautifulsoup = callPackage ./beautifulsoup.nix { };
-
-    qt4 = pyqt4.qt;
-
-in buildPythonApplication rec {
-    version = "2.0.52";
+buildPythonApplication rec {
+    version = "2.1.6-beta1";
     name = "anki-${version}";
 
     src = fetchurl {
       urls = [
-        "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
+        "https://apps.ankiweb.net/downloads/beta/${name}-source.tgz"
+        # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
         # "http://ankisrs.net/download/mirror/${name}.tgz"
         # "http://ankisrs.net/download/mirror/archive/${name}.tgz"
       ];
-      sha256 = "0yjyxgpk79rplz9z2r93kmlk09ari6xxfrz1cfm2yl9v8zfw1n6l";
+      sha256 = "0yqn8qjx9dyf754jljhyyrk8mahii188nz0yifl1lr3py9sxzbsf";
     };
 
-    propagatedBuildInputs = [ pyqt4 sqlalchemy pyaudio beautifulsoup httplib2 send2trash ]
+    propagatedBuildInputs = [ pyqt5 sqlalchemy
+      beautifulsoup4 send2trash pyaudio requests decorator markdown ]
                             ++ lib.optional plotsSupport matplotlib;
 
     checkInputs = [ pytest glibcLocales nose ];
 
     buildInputs = [ lame mplayer libpulseaudio  ];
 
+    makeWrapperArgs = [
+        ''--prefix PATH ':' "${lame}/bin:${mplayer}/bin"''
+    ];
+
     patches = [
       # Disable updated version check.
       ./no-version-check.patch
-
-      (substituteAll {
-        src = ./fix-paths.patch;
-        inherit lame mplayer qt4;
-        qt4name = qt4.name;
-      })
     ];
 
     buildPhase = ''
@@ -65,12 +61,9 @@ in buildPythonApplication rec {
     '';
 
     postPatch = ''
-      substituteInPlace oldanki/lang.py --subst-var-by anki $out
-      substituteInPlace anki/lang.py --subst-var-by anki $out
-
       # Remove unused starter. We'll create our own, minimalistic,
       # starter.
-      rm anki/anki
+      # rm anki/anki
 
       # Remove QT translation files. We'll use the standard QT ones.
       rm "locale/"*.qm
@@ -109,7 +102,7 @@ in buildPythonApplication rec {
       cp -v anki.xml $out/share/mime/packages/
       cp -v anki.{png,xpm} $out/share/pixmaps/
       cp -rv locale $out/share/
-      cp -rv anki aqt $pp/
+      cp -rv anki aqt web $pp/
 
       wrapPythonPrograms
     '';
diff --git a/pkgs/games/anki/fix-paths.patch b/pkgs/games/anki/fix-paths.patch
deleted file mode 100644
index 9b2fd53783e..00000000000
--- a/pkgs/games/anki/fix-paths.patch
+++ /dev/null
@@ -1,99 +0,0 @@
---- anki-2.0.46/anki/lang.py.orig	2017-08-06 15:30:10.781419237 +0200
-+++ anki-2.0.46/anki/lang.py	2017-08-06 15:31:33.023043036 +0200
-@@ -71,15 +71,7 @@
-     return localTranslation().ungettext(single, plural, n)
- 
- def langDir():
--    dir = os.path.join(os.path.dirname(
--        os.path.abspath(__file__)), "locale")
--    if not os.path.isdir(dir):
--        dir = os.path.join(os.path.dirname(sys.argv[0]), "locale")
--    if not os.path.isdir(dir):
--        dir = "/usr/share/anki/locale"
--    if not os.path.isdir(dir):
--        dir = "/usr/local/share/anki/bin/locale"
--    return dir
-+    return "@anki@/share/locale"
- 
- def setLang(lang, local=True):
-     trans = gettext.translation(
-diff -Nurp anki-2.0.33.orig/anki/sound.py anki-2.0.33/anki/sound.py
---- anki-2.0.33.orig/anki/sound.py	2015-12-27 11:23:02.334908723 +0100
-+++ anki-2.0.33/anki/sound.py	2015-12-27 11:34:11.863147265 +0100
-@@ -29,8 +29,9 @@ processingDst = u"rec.mp3"
- processingChain = []
- recFiles = []
- 
-+lameCmd = "@lame@/bin/lame"
- processingChain = [
--    ["lame", "rec.wav", processingDst, "--noreplaygain", "--quiet"],
-+    [lameCmd, "rec.wav", processingDst, "--noreplaygain", "--quiet"],
-     ]
- 
- # don't show box on windows
-@@ -44,13 +45,6 @@ if isWin:
- else:
-     si = None
- 
--if isMac:
--    # make sure lame, which is installed in /usr/local/bin, is in the path
--    os.environ['PATH'] += ":" + "/usr/local/bin"
--    dir = os.path.dirname(os.path.abspath(__file__))
--    dir = os.path.abspath(dir + "/../../../..")
--    os.environ['PATH'] += ":" + dir + "/audio"
--
- def retryWait(proc):
-     # osx throws interrupted system call errors frequently
-     while 1:
-@@ -62,13 +56,7 @@ def retryWait(proc):
- # Mplayer settings
- ##########################################################################
- 
--if isWin:
--    mplayerCmd = ["mplayer.exe", "-ao", "win32"]
--    dir = os.path.dirname(os.path.abspath(sys.argv[0]))
--    os.environ['PATH'] += ";" + dir
--    os.environ['PATH'] += ";" + dir + "\\..\\win\\top" # for testing
--else:
--    mplayerCmd = ["mplayer"]
-+mplayerCmd = ["@mplayer@/bin/mplayer"]
- mplayerCmd += ["-really-quiet", "-noautosub"]
- 
- # Mplayer in slave mode
-@@ -220,7 +208,7 @@ class _Recorder(object):
-         self.encode = encode
-         for c in processingChain:
-             #print c
--            if not self.encode and c[0] == 'lame':
-+            if not self.encode and c[0] == lameCmd:
-                 continue
-             try:
-                 ret = retryWait(subprocess.Popen(c, startupinfo=si))
-diff -Nurp anki-2.0.33.orig/aqt/__init__.py anki-2.0.33/aqt/__init__.py
---- anki-2.0.33.orig/aqt/__init__.py	2015-12-27 11:23:02.338908782 +0100
-+++ anki-2.0.33/aqt/__init__.py	2015-12-27 12:35:03.405565214 +0100
-@@ -107,7 +107,7 @@ def setupLang(pm, app, force=None):
-         app.setLayoutDirection(Qt.LeftToRight)
-     # qt
-     _qtrans = QTranslator()
--    if _qtrans.load("qt_" + lang, dir):
-+    if _qtrans.load("qt_" + lang, "@qt4@/share/@qt4name@/translations"):
-         app.installTranslator(_qtrans)
- 
- # App initialisation
-diff -Nurp anki-2.0.33.orig/oldanki/lang.py anki-2.0.33/oldanki/lang.py
---- anki-2.0.33.orig/oldanki/lang.py	2015-12-27 11:23:02.390909551 +0100
-+++ anki-2.0.33/oldanki/lang.py	2015-12-27 14:05:51.663920453 +0100
-@@ -32,11 +32,7 @@ def ngettext(single, plural, n):
-     return localTranslation().ungettext(single, plural, n)
- 
- def setLang(lang, local=True):
--    base = os.path.dirname(os.path.abspath(__file__))
--    localeDir = os.path.join(base, "locale")
--    if not os.path.exists(localeDir):
--        localeDir = os.path.join(
--            os.path.dirname(sys.argv[0]), "locale")
-+    localeDir = "@anki@/share/locale"
-     trans = gettext.translation('libanki', localeDir,
-                                 languages=[lang],
-                                 fallback=True)