summaryrefslogtreecommitdiffstats
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)
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 35118e5aabd2..000000000000
--- 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 8ac70fcd6f3e..fb43640b2b12 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 9b2fd53783e3..000000000000
--- 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)