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