summary refs log tree commit diff
path: root/pkgs/games/anki/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/anki/default.nix')
-rw-r--r--pkgs/games/anki/default.nix62
1 files changed, 42 insertions, 20 deletions
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index f99a8ddb4a8..ca18ca194da 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchurl, lame, mplayer, libpulseaudio, portaudio
-, python, pyqt4, pythonPackages
+{ stdenv, lib, fetchurl, substituteAll, lame, mplayer
+, libpulseaudio, python, pyqt4, qt4, pythonPackages
 # This little flag adds a huge number of dependencies, but we assume that
 # everyone wants Anki to draw plots with statistics by default.
 , plotsSupport ? true }:
@@ -18,37 +18,59 @@ stdenv.mkDerivation rec {
       sha256 = "1d5rf5gcw98m38wam6wh3hyh7qd78ws7zipm67xg744flqsjrzmr";
     };
 
-    pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy9 py.pyaudio ]
+    pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy9 py.pyaudio py.beautifulsoup py.httplib2 ]
               ++ lib.optional plotsSupport py.matplotlib;
 
     buildInputs = [ python py.wrapPython lame mplayer libpulseaudio ];
 
-    patchPhase = ''
-      substituteInPlace anki/sound.py --replace '["mplayer"]' '["${mplayer}/bin/mplayer"]'
-    '';
+    phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+    patches = [
+      (substituteAll {
+        src = ./fix-paths.patch;
+        inherit lame mplayer qt4;
+        qt4name = qt4.name;
+      })
+    ];
 
-    preConfigure = ''
-      substituteInPlace anki/anki \
-        --replace /usr/share/ $out/share/
+    postPatch = ''
+      substituteInPlace oldanki/lang.py --subst-var-by anki $out
+      substituteInPlace anki/lang.py --subst-var-by anki $out
 
-      substituteInPlace Makefile \
-        --replace PREFIX=/usr PREFIX=$out \
-        --replace /local/bin/ /bin/
+      # Remove unused starter. We'll create our own, minimalistic,
+      # starter.
+      rm anki/anki
 
-      sed -i '/xdg-mime/ d' Makefile
+      # Remove QT translation files. We'll use the standard QT ones.
+      rm "locale/"*.qm
     '';
 
-    preInstall = ''
+    installPhase = ''
+      pp=$out/lib/${python.libPrefix}/site-packages
+
       mkdir -p $out/bin
-      mkdir -p $out/share/pixmaps
       mkdir -p $out/share/applications
+      mkdir -p $out/share/doc/anki
       mkdir -p $out/share/man/man1
-    '';
+      mkdir -p $out/share/mime/packages
+      mkdir -p $out/share/pixmaps
+      mkdir -p $pp
+
+      cat > $out/bin/anki <<EOF
+      #!${python}/bin/python
+      import aqt
+      aqt.run()
+      EOF
+      chmod 755 $out/bin/anki
+
+      cp -v anki.desktop $out/share/applications/
+      cp -v README* LICENSE* $out/share/doc/anki/
+      cp -v anki.1 $out/share/man/man1/
+      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 thirdparty/send2trash $pp/
 
-    postInstall = ''
-      mkdir -p "$out/lib/${python.libPrefix}/site-packages"
-      ln -s "$out/share/anki/"* $out/lib/${python.libPrefix}/site-packages/
-      export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
       wrapPythonPrograms
     '';