nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, stdenv
3, python
4, fetchurl
5, anki
6}:
7
8python.pkgs.buildPythonApplication rec {
9 pname = "mnemosyne";
10 version = "2.7.2";
11
12 src = fetchurl {
13 url = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
14 sha256 = "09yp9zc00xrc9dmjbsscnkb3hsv3yj46sxikc0r6s9cbghn3nypy";
15 };
16
17 nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ];
18
19 buildInputs = [ anki ];
20
21 propagatedBuildInputs = with python.pkgs; [
22 cheroot
23 cherrypy
24 googletrans
25 gtts
26 matplotlib
27 pyopengl
28 pyqt5
29 pyqtwebengine
30 webob
31 ];
32
33 prePatch = ''
34 substituteInPlace setup.py \
35 --replace '("", ["/usr/local/bin/mplayer"])' ""
36 '';
37
38 # No tests/ directory in tarball
39 doCheck = false;
40
41 postInstall = ''
42 mkdir -p $out/share/applications
43 mv mnemosyne.desktop $out/share/applications
44 '';
45
46 dontWrapQtApps = true;
47
48 makeWrapperArgs = [
49 "\${qtWrapperArgs[@]}"
50 ];
51
52 meta = {
53 homepage = "https://mnemosyne-proj.org/";
54 description = "Spaced-repetition software";
55 longDescription = ''
56 The Mnemosyne Project has two aspects:
57
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.
60
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.
64
65 ## Efficient learning
66
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.
71
72 ## Memory research
73
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 };
81}