anki: 2.0.52 -> 2.1.6-beta1
This commit is contained in:
parent
61d41d7225
commit
a30e30432d
@ -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";
|
|
||||||
};
|
|
||||||
}
|
|
@ -4,14 +4,16 @@
|
|||||||
, lib
|
, lib
|
||||||
, python
|
, python
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, substituteAll
|
|
||||||
, lame
|
, lame
|
||||||
, mplayer
|
, mplayer
|
||||||
, libpulseaudio
|
, libpulseaudio
|
||||||
, pyqt4
|
, pyqt5
|
||||||
|
, decorator
|
||||||
|
, beautifulsoup4
|
||||||
, sqlalchemy
|
, sqlalchemy
|
||||||
, pyaudio
|
, pyaudio
|
||||||
, httplib2
|
, requests
|
||||||
|
, markdown
|
||||||
, matplotlib
|
, matplotlib
|
||||||
, pytest
|
, pytest
|
||||||
, glibcLocales
|
, glibcLocales
|
||||||
@ -22,41 +24,35 @@
|
|||||||
, plotsSupport ? true
|
, plotsSupport ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
buildPythonApplication rec {
|
||||||
# Development version of anki has bumped to beautifulsoup4
|
version = "2.1.6-beta1";
|
||||||
beautifulsoup = callPackage ./beautifulsoup.nix { };
|
|
||||||
|
|
||||||
qt4 = pyqt4.qt;
|
|
||||||
|
|
||||||
in buildPythonApplication rec {
|
|
||||||
version = "2.0.52";
|
|
||||||
name = "anki-${version}";
|
name = "anki-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
urls = [
|
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/${name}.tgz"
|
||||||
# "http://ankisrs.net/download/mirror/archive/${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;
|
++ lib.optional plotsSupport matplotlib;
|
||||||
|
|
||||||
checkInputs = [ pytest glibcLocales nose ];
|
checkInputs = [ pytest glibcLocales nose ];
|
||||||
|
|
||||||
buildInputs = [ lame mplayer libpulseaudio ];
|
buildInputs = [ lame mplayer libpulseaudio ];
|
||||||
|
|
||||||
|
makeWrapperArgs = [
|
||||||
|
''--prefix PATH ':' "${lame}/bin:${mplayer}/bin"''
|
||||||
|
];
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# Disable updated version check.
|
# Disable updated version check.
|
||||||
./no-version-check.patch
|
./no-version-check.patch
|
||||||
|
|
||||||
(substituteAll {
|
|
||||||
src = ./fix-paths.patch;
|
|
||||||
inherit lame mplayer qt4;
|
|
||||||
qt4name = qt4.name;
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
@ -65,12 +61,9 @@ in buildPythonApplication rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
postPatch = ''
|
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,
|
# Remove unused starter. We'll create our own, minimalistic,
|
||||||
# starter.
|
# starter.
|
||||||
rm anki/anki
|
# rm anki/anki
|
||||||
|
|
||||||
# Remove QT translation files. We'll use the standard QT ones.
|
# Remove QT translation files. We'll use the standard QT ones.
|
||||||
rm "locale/"*.qm
|
rm "locale/"*.qm
|
||||||
@ -109,7 +102,7 @@ in buildPythonApplication rec {
|
|||||||
cp -v anki.xml $out/share/mime/packages/
|
cp -v anki.xml $out/share/mime/packages/
|
||||||
cp -v anki.{png,xpm} $out/share/pixmaps/
|
cp -v anki.{png,xpm} $out/share/pixmaps/
|
||||||
cp -rv locale $out/share/
|
cp -rv locale $out/share/
|
||||||
cp -rv anki aqt $pp/
|
cp -rv anki aqt web $pp/
|
||||||
|
|
||||||
wrapPythonPrograms
|
wrapPythonPrograms
|
||||||
'';
|
'';
|
||||||
|
@ -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)
|
|
@ -20133,7 +20133,7 @@ with pkgs;
|
|||||||
|
|
||||||
angband = callPackage ../games/angband { };
|
angband = callPackage ../games/angband { };
|
||||||
|
|
||||||
anki = python2Packages.callPackage ../games/anki { };
|
anki = python3Packages.callPackage ../games/anki { };
|
||||||
|
|
||||||
armagetronad = callPackage ../games/armagetronad { };
|
armagetronad = callPackage ../games/armagetronad { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user