Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / mnemosyne / default.nix
blob33392d6ca05dd02f7adf2e95883ffb425e9db46f
1 { lib
2 , stdenv
3 , python
4 , fetchurl
5 , anki
6 }:
8 python.pkgs.buildPythonApplication rec {
9   pname = "mnemosyne";
10   version = "2.7.2";
12   src = fetchurl {
13     url    = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
14     sha256 = "09yp9zc00xrc9dmjbsscnkb3hsv3yj46sxikc0r6s9cbghn3nypy";
15   };
17   nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ];
19   buildInputs = [ anki ];
21   propagatedBuildInputs = with python.pkgs; [
22     cheroot
23     cherrypy
24     googletrans
25     gtts
26     matplotlib
27     pyopengl
28     pyqt5
29     pyqtwebengine
30     webob
31   ];
33   prePatch = ''
34     substituteInPlace setup.py \
35       --replace '("", ["/usr/local/bin/mplayer"])' ""
36   '';
38   # No tests/ directory in tarball
39   doCheck = false;
41   postInstall = ''
42     mkdir -p $out/share/applications
43     mv mnemosyne.desktop $out/share/applications
44   '';
46   dontWrapQtApps = true;
48   makeWrapperArgs = [
49     "\${qtWrapperArgs[@]}"
50   ];
52   meta = {
53     homepage = "https://mnemosyne-proj.org/";
54     description = "Spaced-repetition software";
55     longDescription = ''
56       The Mnemosyne Project has two aspects:
58         * It's a free flash-card tool which optimizes your learning process.
59         * It's a research project into the nature of long-term memory.
61       We strive to provide a clear, uncluttered piece of software, easy to use
62       and to understand for newbies, but still infinitely customisable through
63       plugins and scripts for power users.
65       ## Efficient learning
67       Mnemosyne uses a sophisticated algorithm to schedule the best time for
68       a card to come up for review. Difficult cards that you tend to forget
69       quickly will be scheduled more often, while Mnemosyne won't waste your
70       time on things you remember well.
72       ## Memory research
74       If you want, anonymous statistics on your learning process can be
75       uploaded to a central server for analysis. This data will be valuable to
76       study the behaviour of our memory over a very long time period. The
77       results will be used to improve the scheduling algorithms behind the
78       software even further.
79     '';
80   };