evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / au / auto-multiple-choice / package.nix
blob96fd8e8c5f490a43219b53a11de40ca342e89c6d
1 { lib
2 , stdenv
3 , fetchurl
4 , perlPackages
5 , makeWrapper
6 , wrapGAppsHook3
7 , cairo
8 , dblatex
9 , gnumake
10 , gobject-introspection
11 , graphicsmagick
12 , gsettings-desktop-schemas
13 , gtk3
14 , hicolor-icon-theme
15 , libnotify
16 , librsvg
17 , libxslt
18 , netpbm
19 , opencv
20 , pango
21 , perl
22 , pkg-config
23 , poppler
25 stdenv.mkDerivation (finalAttrs: rec {
26   pname = "auto-multiple-choice";
27   version = "1.6.0";
28   src = fetchurl {
29     url = "https://download.auto-multiple-choice.net/${pname}_${version}_dist.tar.gz";
30     # before 1.6.0, the URL pattern used "precomp" instead of "dist".    ^^^^
31     sha256 = "sha256-I9Xw1BN8ZSQhi5F1R3axHBKE6tnaCNk8k5tts6LoMjY=";
32   };
34   # There's only the Makefile
35   dontConfigure = true;
37   makeFlags = [
38     "PERLPATH=${perl}/bin/perl"
39     # We *need* to set DESTDIR as empty and use absolute paths below,
40     # because the Makefile ignores PREFIX and MODSDIR is required to
41     # be an absolute path to not trigger "portable distribution" check
42     # in auto-multiple-choice.in.
43     "DESTDIR="
44     # Set variables from Makefile.conf to absolute paths
45     "BINDIR=${placeholder "out"}/bin"
46     "PERLDIR=${placeholder "out"}/share/perl5"
47     "MODSDIR=${placeholder "out"}/lib"
48     "TEXDIR=${placeholder "out"}/tex/latex/" # what texlive.combine expects
49     "TEXDOCDIR=${placeholder "out"}/share/doc/texmf/" # TODO where to put this?
50     "MAN1DIR=${placeholder "out"}/share/man/man1"
51     "DESKTOPDIR=${placeholder "out"}/share/applications"
52     "METAINFODIR=${placeholder "out"}/share/metainfo"
53     "ICONSDIR=${placeholder "out"}/share/auto-multiple-choice/icons"
54     "CSSDIR=${placeholder "out"}/share/auto-multiple-choice/gtk"
55     "APPICONDIR=${placeholder "out"}/share/icons/hicolor"
56     "LOCALEDIR=${placeholder "out"}/share/locale"
57     "MODELSDIR=${placeholder "out"}/share/auto-multiple-choice/models"
58     "DOCDIR=${placeholder "out"}/share/doc/auto-multiple-choice"
59     "SHARED_MIMEINFO_DIR=${placeholder "out"}/share/mime/packages"
60     "LANG_GTKSOURCEVIEW_DIR=${placeholder "out"}/share/gtksourceview-4/language-specs"
61     # Pretend to be redhat so `install` doesn't try to chown/chgrp.
62     "SYSTEM_TYPE=rpm"
63     "GCC=${stdenv.cc.targetPrefix}cc"
64     "GCC_PP=${stdenv.cc.targetPrefix}c++"
65   ];
67   preFixup = ''
68     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
69   '';
71   postFixup = ''
72     wrapProgram $out/bin/auto-multiple-choice \
73     ''${makeWrapperArgs[@]} \
74     --prefix PERL5LIB : "${with perlPackages; makeFullPerlPath [
75       ArchiveZip
76       DBDSQLite
77       Cairo
78       CairoGObject
79       DBI
80       Glib
81       GlibObjectIntrospection
82       Gtk3
83       LocaleGettext
84       OpenOfficeOODoc
85       PerlMagick
86       TextCSV
87       XMLParser
88       XMLSimple
89       XMLWriter
90     ]}:"$out/share/perl5 \
91     --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
92     --prefix PATH : "$out/bin" \
93     --set TEXINPUTS ":.:$out/tex/latex"
94   '';
96   nativeBuildInputs = [
97     pkg-config
98     makeWrapper
99     wrapGAppsHook3
100     gobject-introspection
101   ];
103   buildInputs = [
104     cairo
105     cairo.dev
106     dblatex
107     gnumake
108     graphicsmagick
109     gsettings-desktop-schemas
110     gtk3
111     hicolor-icon-theme
112     libnotify
113     librsvg
114     libxslt
115     netpbm
116     opencv
117     pango
118     poppler
119   ] ++ (with perlPackages; [
120     perl
121     ArchiveZip
122     Cairo
123     CairoGObject
124     DBDSQLite
125     DBI
126     Glib
127     GlibObjectIntrospection
128     Gtk3
129     LocaleGettext
130     PerlMagick
131     TextCSV
132     XMLParser
133     XMLSimple
134     XMLWriter
135   ]);
137   passthru = {
138     tlType = "run";
139     pkgs = [ finalAttrs.finalPackage ];
140   };
142   meta = with lib; {
143     description = "Create and manage multiple choice questionnaires with automated marking";
144     mainProgram = "auto-multiple-choice";
145     longDescription = ''
146       Create, manage and mark multiple-choice questionnaires.
147       auto-multiple-choice features automated or manual formatting with
148       LaTeX, shuffling of questions and answers and automated marking using
149       Optical Mark Recognition.
151       Questionnaires can be created using either a very simple text syntax,
152       AMC-TXT, or LaTeX. In the latter case, your TeXLive installation must
153       be combined with this package.  This can be done in configuration.nix
154       as follows:
156       <screen>
157       …
158       environment.systemPackages = with pkgs; [
159         auto-multiple-choice
160         (texlive.combine {
161           inherit (pkgs.texlive) scheme-full;
162           inherit auto-multiple-choice;
163         })
164       ];
165       </screen>
167       For usage instructions, see documentation at the project's homepage.
168     '';
169     homepage = "https://www.auto-multiple-choice.net/";
170     changelog = "https://gitlab.com/jojo_boulix/auto-multiple-choice/-/blob/master/ChangeLog";
171     license = licenses.gpl2Plus;
172     maintainers = [ maintainers.thblt ];
173     platforms = platforms.all;
174   };