]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - default.nix
Use more up to date version of yarn2nix
[perso/Immae/Config/Nix.git] / default.nix
1 with import ./libs.nix;
2 with import <nixpkgs> {};
3 let
4 mypkgs = {};
5
6 mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old:
7 fetchedGithub ./fetched/ledger.json // {
8 postInstall = "";
9 }
10 );
11
12 mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec {
13 postInstall = ''${old.postInstall}
14 mkdir -p "$out/share/vim/vimfiles/ftdetect"
15 mkdir -p "$out/share/vim/vimfiles/syntax"
16 ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/"
17 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/"
18 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/"
19 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/"
20 '';
21 });
22
23 mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
24 fetchedGithub ./fetched/vit.json // {
25 buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
26 }
27 );
28
29 mypkgs.weboob = pythonPackages.weboob.overrideAttrs (old: rec {
30 postInstall = ''${old.postInstall or ""}
31 mkdir -p $out/share/bash-completion/completions/
32 cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
33 '';
34 });
35
36 mypkgs.slrn = slrn.overrideAttrs (old: rec {
37 version = "1.0.3a";
38 name = "slrn-${version}";
39 src = fetchurl {
40 url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
41 sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
42 };
43 configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
44 });
45
46 mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
47
48 nixos = import ./nixos_tools.nix {};
49
50 mypkgs.pass = (pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
51 fetchedGit ./fetched/pass.json // {
52 patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ];
53 }
54 );
55
56 mypkgs.profanity = (profanity.override {
57 notifySupport = true;
58 inherit libnotify gpgme gdk_pixbuf;
59 python = python3;
60 }).overrideAttrs (old: rec {
61 configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
62 });
63
64 mypkgs.weechat = nixpkgs_unstable.weechat.override {
65 configure = { availablePlugins, ... }: {
66 plugins = with availablePlugins; [
67 (python.withPackages (ps: with ps; [websocket_client emoji]))
68 perl
69 ];
70 };
71 };
72
73 buildPerlPackage = perlPackages.buildPerlPackage;
74 mypkgs.note = buildPerlPackage rec {
75 name = "note-1.3.26";
76 src = fetchurl {
77 url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
78 sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq";
79 };
80 outputs = ["out" "man"];
81 propagatedBuildInputs = [ perlPackages.YAML ];
82 meta = with stdenv.lib; {
83 description = "A perl script for maintaining notes";
84 homepage = http://www.daemon.de/NOTE;
85 license = licenses.gpl3;
86 maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ];
87 platforms = platforms.unix;
88 };
89 };
90
91 mypkgs.terminal_velocity = with python2Packages; buildPythonApplication rec {
92 pname = "terminal-velocity-git";
93 version = "0.2.0";
94
95 patches = [
96 # FIXME: update this patch when version changes
97 ./patches/terminal_velocity_fix_build.patch
98 ./patches/terminal_velocity_sort_found_notes.patch
99 ];
100
101 propagatedBuildInputs = [ chardet urwid nixpkgs_unstable.python2Packages.sh pyyaml ];
102 buildInputs = [ m2r restructuredtext_lint pygments ];
103
104 src = fetchPypi {
105 inherit pname version;
106 sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9";
107 };
108 };
109
110 mypkgs.mtop = buildPerlPackage rec {
111 name = "mtop-${version}";
112 version = "0.6.6";
113 src = fetchurl {
114 url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz";
115 sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf";
116 };
117 outputs = ["out"];
118 buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ];
119
120 postInstall = ''
121 cd "$out"
122 preConfigure || true
123 '';
124 meta = with stdenv.lib; {
125 description = "MySQL top (monitor and examine slow queries)";
126 homepage = http://mtop.sourceforge.net/;
127 license = licenses.gpl3;
128 maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ];
129 platforms = platforms.unix;
130 };
131 };
132
133 mypkgs.tiv = buildPerlPackage rec {
134 name = "tiv-${version}";
135 version = "2015";
136 src = fetchurl {
137 url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz";
138 sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90";
139 };
140 outputs = ["out"];
141 buildInputs = [ perlPackages.PerlMagick ];
142 perlPreHookScript = ./hooks/tiv_builder.sh;
143 perlPreHook = ''
144 source ${perlPreHookScript}
145 '';
146 installPhase = ''
147 install -Dm755 tiv "$out/bin/tiv"
148 '';
149 };
150
151 mypkgs.cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec {
152 configureFlags = [
153 "--with-etc-dir=/etc/cnagios"
154 "--with-var-dir=/var/lib/naemon"
155 "--with-nagios-data=4"
156 ];
157
158 prePatch = ''
159 sed -i -e "s/-lcurses/-lncurses/" Makefile.in
160 '';
161 installPhase = ''
162 install -dm755 $out/share/doc/cnagios
163 install -Dm644 cnagiosrc $out/share/doc/cnagios/
164 install -Dm644 cnagios.help $out/share/doc/cnagios/
165 install -Dm644 cnagios.pl $out/share/doc/cnagios/
166 install -dm755 $out/bin
167 install -Dm755 cnagios $out/bin/
168 '';
169 propagatedBuildInputs = [ perl ncurses ];
170 });
171
172 mypkgs.nagios-cli = python2Packages.buildPythonApplication (fetchedGithub ./fetched/nagios-cli.json);
173
174 mypkgs.pg_activity = with python2Packages; buildPythonApplication (fetchedGithub ./fetched/pg_activity.json // rec {
175 propagatedBuildInputs = [ psycopg2 psutil ];
176 });
177
178 mypkgs.pgloader = stdenv.mkDerivation (fetchedGithub ./fetched/pgloader.json // rec {
179 buildInputs = [ sbcl cacert sqlite freetds libzip curl git openssl makeWrapper ];
180 LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
181 buildPhase = ''
182 export PATH=$PATH:$out/bin
183 export HOME=$TMPDIR
184 make pgloader
185 '';
186 dontStrip = true;
187 enableParallelBuilding = false;
188 installPhase = ''
189 install -Dm755 build/bin/pgloader "$out/bin/pgloader"
190 wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
191 '';
192 });
193
194 mypkgs.pelican = python3Packages.pelican.overrideAttrs(old: fetchedGithub ./fetched/pelican.json // rec {
195 propagatedBuildInputs = old.propagatedBuildInputs ++ [ python3Packages.pyyaml ];
196 });
197
198 mypkgs.elinks = elinks.overrideAttrs (old:
199 fetchedGithub ./fetched/elinks.json // rec {
200 preConfigure = ''sh autogen.sh'';
201 buildInputs = old.buildInputs ++ [ gettext automake autoconf ];
202 configureFlags = [
203 "--disable-smb" "--without-x" "--enable-cgi"
204 "--enable-leds" "--enable-256-colors"
205 "--enable-html-highlight" "--with-zlib"
206 ];
207 patches = [];
208 }
209 );
210
211 mypkgs.neomutt = neomutt.overrideAttrs (old:
212 rec {
213 buildInputs = old.buildInputs ++ [ gdbm ];
214 configureFlags = old.configureFlags ++ [ "--gdbm" ];
215 }
216 );
217
218 # mypkgs.nagnu = stdenv.mkDerivation (fetchedGithub ./fetched/nagnu.json // rec {
219 # buildInputs = [ ncurses curl ];
220 # installPhase = ''
221 # mkdir -p $out/bin
222 # cp nagnu $out/bin
223 # mkdir -p $out/share/doc/nagnu
224 # cp nagnu.conf.sample $out/share/doc/nagnu
225 # mkdir -p $out/share/man/man8
226 # cp docs/nagnu.8 $out/share/man/man8
227 # '';
228 # });
229
230 mypkgs.goaccess = goaccess.overrideAttrs(old: rec {
231 name = "goaccess-${version}";
232 version = "1.3";
233 src = fetchurl {
234 url = "https://tar.goaccess.io/${name}.tar.gz";
235 sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc";
236 };
237 configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ];
238 buildInputs = old.buildInputs ++ [ tokyocabinet bzip2 ];
239 });
240
241 mypkgs.mutt-ics = with python3Packages; buildPythonApplication (fetchedGithub ./fetched/mutt-ics.json // rec {
242 propagatedBuildInputs = [ icalendar ];
243 });
244
245 mypkgs.telegram-cli = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-cli.json // rec {
246 patches = [
247 ./patches/telegram-cli.patch
248 ];
249 buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
250 preBuild = ''
251 sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
252 '';
253 installPhase = ''
254 mkdir -p $out
255 install -Dm755 bin/telegram-cli $out/bin/telegram-cli
256 install -Dm644 tg-server.pub $out/etc/server.pub
257 install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
258 '';
259 });
260
261 mypkgs.telegram-history-dump = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-history-dump.json // rec {
262 installPhase = ''
263 mkdir -p $out/lib $out/bin
264 cp -a $src $out/lib/telegram-history-dump
265 ln -s $out/lib/telegram-history-dump/telegram-history-dump.rb $out/bin/telegram-history-dump
266 '';
267 buildInputs = [ ruby ];
268 });
269
270 mypkgs.muttprint = stdenv.mkDerivation rec {
271 name = "muttprint-${version}";
272 version = "0.73";
273 src = fetchurl {
274 url = "http://downloads.sf.net/muttprint/${name}.tar.gz";
275 sha256 = "1dny4niyibfgazwlzfcnb37jy6k140rs6baaj629z12rmahfdavw";
276 };
277 patches = [
278 ./patches/muttprint_0.73-4.diff.gz
279 ./patches/muttprint_regex.patch
280 ./patches/muttprint_two_edge.patch
281 ];
282 preConfigure = ''
283 aclocal
284 automake --add-missing --copy
285 autoconf
286 '';
287 preBuild = ''
288 cd pics
289 convert -flop BabyTuX.eps BabyTuX.eps
290 for i in BabyTuX_color.eps BabyTuX.eps Debian_color.eps \
291 Debian.eps Gentoo.eps Gentoo_color.eps ; do
292 convert $i $(basename $i .eps).png
293 done
294 convert penguin.eps penguin.jpg
295 cd ..
296 '';
297 postInstall = ''
298 perlFlags=
299 for i in $(IFS=:; echo $PERL5LIB); do
300 perlFlags="$perlFlags -I$i"
301 done
302
303 sed -i "$out/bin/muttprint" -e "s|^#\!\(.*[ /]perl.*\)$|#\!\1$perlFlags|"
304
305 wrapProgram $out/bin/muttprint \
306 --prefix PATH : ${lib.makeBinPath [ psutils dialog
307 (texlive.combine { inherit (texlive) scheme-basic utopia fancyvrb lastpage marvosym ucs cm-super; }) ]}
308 '';
309 buildInputs = [ makeWrapper automake autoconf imagemagick ghostscript perl ] ++
310 (with perlPackages; [ TimeDate FileWhich TextIconv ]);
311 };
312
313 mypkgs.yarn2nix = yarn2nixPackage.yarn2nix;
314 # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
315 # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
316 in
317 mypkgs // {
318 inherit nix-prefetch-scripts;
319 inherit nix-generate-from-cpan;
320 inherit timewarrior;
321 inherit sc-im;
322 inherit pal;
323 inherit pdftk;
324 inherit googler;
325 inherit jrnl;
326 inherit apg;
327 inherit newsboat;
328 inherit vcsh;
329 inherit xmr-stak;
330 inherit urlwatch;
331 inherit ranger;
332 inherit irssi;
333 inherit abook khard khal;
334 inherit graphicsmagick;
335 inherit youtube-dl;
336 inherit ncmpc ncmpcpp;
337 inherit cadaver;
338 inherit mairix notmuch;
339 inherit ctags;
340 inherit s3cmd;
341 inherit solc; # solidity
342 inherit rtorrent;
343 inherit strace;
344 inherit vdirsyncer;
345 inherit w3m lynx links;
346 inherit gitRepo;
347 inherit valgrind;
348 inherit iotop iperf;
349 inherit keybase;
350 inherit bogofilter;
351 inherit mtr;
352 inherit nixops;
353 inherit urlview;
354 inherit rr;
355 inherit nix-zsh-completions;
356 stgit = gitAndTools.stgit;
357 # todo: lx* ?, unrar, unzip, zeromq?
358 #inherit nextcloud-client;
359 #inherit nixos;
360 } // (with nixpkgs_unstable; {
361 inherit googler;
362 inherit khal;
363 inherit newsboat;
364 inherit xmr-stak;
365 inherit urlwatch;
366 inherit graphicsmagick;
367 inherit ncmpc;
368 inherit solc;
369 inherit w3m lynx links;
370 inherit valgrind;
371 inherit ranger;
372 inherit strace;
373 inherit notmuch;
374 stgit = gitAndTools.stgit;
375 inherit bundix;
376 bower2nix = nodePackages.bower2nix;
377 })