]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - default.nix
Start splitting nix environment to smaller files
[perso/Immae/Config/Nix.git] / default.nix
1 with import <nixpkgs> {};
2 with import ./libs.nix { nixpkgs = import <nixpkgs> {}; };
3 let
4 mypkgs = {};
5
6 mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec {
7 postInstall = ''${old.postInstall}
8 mkdir -p "$out/share/vim/vimfiles/ftdetect"
9 mkdir -p "$out/share/vim/vimfiles/syntax"
10 ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/"
11 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/"
12 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/"
13 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/"
14 '';
15 });
16
17 mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
18 fetchedGithub ./fetched/vit.json // {
19 buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
20 }
21 );
22
23 mypkgs.weboob = (pythonPackages.weboob.overridePythonAttrs {
24 setupPyBuildFlags = [ "--no-qt" "--xdg" ];
25 }).overrideAttrs (old: rec {
26 version = "1.5";
27 src = fetchurl {
28 url = "https://git.weboob.org/weboob/weboob/-/archive/${version}/${old.pname}-${version}.tar.gz";
29 sha256 = "0l6q5nm5g0zn6gmf809059kddrbds27wgygxsfkqja9blks5vq7z";
30 };
31 postInstall = ''${old.postInstall or ""}
32 mkdir -p $out/share/bash-completion/completions/
33 cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
34 '';
35 });
36
37 mypkgs.slrn = slrn.overrideAttrs (old: rec {
38 version = "1.0.3a";
39 name = "slrn-${version}";
40 src = fetchurl {
41 url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
42 sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
43 };
44 configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
45 });
46
47 mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
48
49 nixos = import ./nixos_tools.nix {};
50
51 mypkgs.pass = (pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
52 fetchedGit ./fetched/pass.json // {
53 patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ];
54 }
55 );
56
57 mypkgs.profanity = (profanity.override {
58 notifySupport = true;
59 inherit libnotify gpgme gdk_pixbuf;
60 python = python3;
61 }).overrideAttrs (old: rec {
62 configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
63 });
64
65 mypkgs.weechat = weechat.override {
66 configure = { availablePlugins, ... }: {
67 plugins = with availablePlugins; [
68 # Make sure websocket_client is not 0.55.0, it provokes
69 # regular crashes
70 (python.withPackages (ps: with ps; [websocket_client emoji]))
71 perl
72 ruby
73 ];
74 };
75 };
76
77 mypkgs.mtop = callPackage ./pkgs/mtop {};
78 mypkgs.note = callPackage ./pkgs/note {};
79 mypkgs.terminal-velocity = callPackage ./pkgs/terminal-velocity {};
80 mypkgs.tiv = callPackage ./pkgs/tiv {};
81
82 mypkgs.cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec {
83 configureFlags = [
84 "--with-etc-dir=/etc/cnagios"
85 "--with-var-dir=/var/lib/naemon"
86 "--with-status-file=/var/lib/naemon/status.dat"
87 "--with-nagios-data=4"
88 ];
89
90 prePatch = ''
91 sed -i -e "s/-lcurses/-lncurses/" Makefile.in
92 '';
93 installPhase = ''
94 install -dm755 $out/share/doc/cnagios
95 install -Dm644 cnagiosrc $out/share/doc/cnagios/
96 install -Dm644 cnagios.help $out/share/doc/cnagios/
97 install -Dm644 cnagios.pl $out/share/doc/cnagios/
98 install -dm755 $out/bin
99 install -Dm755 cnagios $out/bin/
100 '';
101 propagatedBuildInputs = [ perl ncurses ];
102 });
103
104 mypkgs.nagios-cli = python2Packages.buildPythonApplication (fetchedGithub ./fetched/nagios-cli.json);
105
106 mypkgs.pg_activity = with python2Packages; buildPythonApplication (fetchedGithub ./fetched/pg_activity.json // rec {
107 propagatedBuildInputs = [ psycopg2 psutil ];
108 });
109
110 mypkgs.pgloader = stdenv.mkDerivation (fetchedGithub ./fetched/pgloader.json // rec {
111 buildInputs = [ sbcl cacert sqlite freetds libzip curl git openssl makeWrapper ];
112 LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
113 buildPhase = ''
114 export PATH=$PATH:$out/bin
115 export HOME=$TMPDIR
116 make pgloader
117 '';
118 dontStrip = true;
119 enableParallelBuilding = false;
120 installPhase = ''
121 install -Dm755 build/bin/pgloader "$out/bin/pgloader"
122 wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
123 '';
124 });
125
126 mypkgs.pelican = python3Packages.pelican.overrideAttrs(old: fetchedGithub ./fetched/pelican.json // rec {
127 propagatedBuildInputs = old.propagatedBuildInputs ++ [ python3Packages.pyyaml ];
128 });
129
130 mypkgs.elinks = elinks.overrideAttrs (old:
131 fetchedGithub ./fetched/elinks.json // rec {
132 preConfigure = ''sh autogen.sh'';
133 buildInputs = old.buildInputs ++ [ gettext automake autoconf ];
134 configureFlags = [
135 "--disable-smb" "--without-x" "--enable-cgi"
136 "--enable-leds" "--enable-256-colors"
137 "--enable-html-highlight" "--with-zlib"
138 ];
139 patches = [];
140 }
141 );
142
143 mypkgs.neomutt = neomutt.overrideAttrs (old:
144 rec {
145 buildInputs = old.buildInputs ++ [ gdbm ];
146 configureFlags = old.configureFlags ++ [ "--gdbm" ];
147 }
148 );
149
150 # mypkgs.nagnu = stdenv.mkDerivation (fetchedGithub ./fetched/nagnu.json // rec {
151 # buildInputs = [ ncurses curl ];
152 # installPhase = ''
153 # mkdir -p $out/bin
154 # cp nagnu $out/bin
155 # mkdir -p $out/share/doc/nagnu
156 # cp nagnu.conf.sample $out/share/doc/nagnu
157 # mkdir -p $out/share/man/man8
158 # cp docs/nagnu.8 $out/share/man/man8
159 # '';
160 # });
161
162 mypkgs.goaccess = goaccess.overrideAttrs(old: rec {
163 name = "goaccess-${version}";
164 version = "1.3";
165 src = fetchurl {
166 url = "https://tar.goaccess.io/${name}.tar.gz";
167 sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc";
168 };
169 configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ];
170 buildInputs = old.buildInputs ++ [ tokyocabinet bzip2 ];
171 });
172
173 mypkgs.mutt-ics = with python3Packages; buildPythonApplication (fetchedGithub ./fetched/mutt-ics.json // rec {
174 propagatedBuildInputs = [ icalendar ];
175 });
176
177 mypkgs.telegram-cli = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-cli.json // rec {
178 patches = [
179 ./patches/telegram-cli.patch
180 ];
181 buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
182 preBuild = ''
183 sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
184 '';
185 installPhase = ''
186 mkdir -p $out
187 install -Dm755 bin/telegram-cli $out/bin/telegram-cli
188 install -Dm644 tg-server.pub $out/etc/server.pub
189 install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
190 '';
191 });
192
193 mypkgs.telegram-history-dump = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-history-dump.json // rec {
194 installPhase = ''
195 mkdir -p $out/lib $out/bin
196 cp -a $src $out/lib/telegram-history-dump
197 ln -s $out/lib/telegram-history-dump/telegram-history-dump.rb $out/bin/telegram-history-dump
198 '';
199 buildInputs = [ ruby ];
200 });
201
202 mypkgs.muttprint = stdenv.mkDerivation rec {
203 name = "muttprint-${version}";
204 version = "0.73";
205 src = fetchurl {
206 url = "http://downloads.sf.net/muttprint/${name}.tar.gz";
207 sha256 = "1dny4niyibfgazwlzfcnb37jy6k140rs6baaj629z12rmahfdavw";
208 };
209 patches = [
210 ./patches/muttprint_0.73-4.diff.gz
211 ./patches/muttprint_regex.patch
212 ./patches/muttprint_two_edge.patch
213 ];
214 preConfigure = ''
215 aclocal
216 automake --add-missing --copy
217 autoconf
218 '';
219 preBuild = ''
220 cd pics
221 convert -flop BabyTuX.eps BabyTuX.eps
222 for i in BabyTuX_color.eps BabyTuX.eps Debian_color.eps \
223 Debian.eps Gentoo.eps Gentoo_color.eps ; do
224 convert $i $(basename $i .eps).png
225 done
226 convert penguin.eps penguin.jpg
227 cd ..
228 '';
229 postInstall = ''
230 perlFlags=
231 for i in $(IFS=:; echo $PERL5LIB); do
232 perlFlags="$perlFlags -I$i"
233 done
234
235 sed -i "$out/bin/muttprint" -e "s|^#\!\(.*[ /]perl.*\)$|#\!\1$perlFlags|"
236 sed -i "$out/bin/muttprint" -e "s|ENV{HOME}/.muttprintrc|ENV{XDG_CONFIG_HOME}/muttprint/muttprintrc|"
237
238 wrapProgram $out/bin/muttprint \
239 --prefix PATH : ${lib.makeBinPath [ psutils dialog
240 (texlive.combine { inherit (texlive) scheme-basic utopia fancyvrb lastpage marvosym ucs cm-super; }) ]}
241 '';
242 buildInputs = [ makeWrapper automake autoconf imagemagick ghostscript perl ] ++
243 (with perlPackages; [ TimeDate FileWhich TextIconv ]);
244 };
245
246 mypkgs.yarn2nix = yarn2nixPackage.yarn2nix;
247
248 mypkgs.cardano = let
249 daedalusOrig = (import (fetchedGithub ./fetched/daedalus.json).src {}).daedalus;
250 cfg = stdenv.mkDerivation rec {
251 name = "launcher-config-custom";
252 src = daedalusOrig.cfg;
253 installPhase = ''
254 cp -a $src $out
255 chmod -R u+w $out
256 cd $out/etc
257 sed -e "/^walletPath/d" -e "/^walletArgs/d" launcher-config.yaml > launcher-config-server-only.yaml
258 '';
259 };
260 daedalus = stdenv.mkDerivation rec {
261 name = "daedalus-custom";
262 src = daedalusOrig;
263 installPhase = ''
264 cp -a $src $out
265 chmod -R u+w $out
266 cd $out/bin
267 sed -i -e "s@${builtins.storeDir}/[0-9a-z]*-daedalus-config@${cfg}/etc@" daedalus
268 sed -e "s@${cfg}/etc/launcher-config.yaml@${cfg}/etc/launcher-config-server-only.yaml@" daedalus > daedalus-server-only
269 chmod a+x daedalus-server-only
270 '';
271 };
272 in
273 daedalus;
274
275 mypkgs.sia = stdenv.mkDerivation rec {
276 version = "v1.3.7";
277 name = "Sia-${version}";
278 src = fetchzip {
279 url = "https://sia.tech/static/releases/${name}-linux-amd64.zip";
280 sha256 = "1ljzwrlkx4hc16r8siiyakn039afipp95dyr83c8yfq3r3bfasqd";
281 };
282 phases = "installPhase";
283 installPhase = ''
284 mkdir -p $out/share/doc
285 mkdir -p $out/bin
286 mkdir -p $out/share/sia
287 cp -a $src/doc $out/share/doc/sia
288 cp -a $src/LICENSE $src/README.md $out/share/sia
289 cp -a $src/{siac,siad} $out/bin
290 cp -a $src/{siac,siad}.sig $out/share/sia/
291 '';
292 };
293
294 mypkgs.iota-cli-app = let
295 nodeEnv = pkgs.callPackage "${nodePackages.node2nix}/lib/node_modules/node2nix/nix/node-env.nix" {
296 nodejs = nodejs-8_x;
297 };
298 # built using node2nix -8 -l package-lock.json
299 # and changing "./." to "src"
300 packageEnv = import ./fetched/iota-cli-app-node-packages.nix {
301 src = stdenv.mkDerivation (fetchedGithub ./fetched/iota-cli-app.json // {
302 phases = "installPhase";
303 installPhase = ''
304 cp -a $src $out
305 chmod u+w -R $out
306 cd $out
307 sed -i -e "s@host: 'http://localhost',@host: 'https://iri.trytes.eu',@" index.js
308 sed -i -e "s@port: 14265@port: 443@" index.js
309 '';
310 });
311 inherit (pkgs) fetchurl fetchgit;
312 inherit nodeEnv;
313 };
314 in
315 packageEnv.package;
316
317 mypkgs.duply = stdenv.mkDerivation rec {
318 name = "duply-${version}";
319 version = "2.1";
320
321 src = fetchurl {
322 url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz";
323 sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8";
324 };
325
326 buildInputs = [ txt2man makeWrapper ];
327
328 postPatch = "patchShebangs .";
329
330 installPhase = ''
331 mkdir -p "$out/bin"
332 mkdir -p "$out/share/man/man1"
333 install -vD duply "$out/bin"
334 sed -i $out/bin/duply -e "1a \
335 export PATH='${stdenv.lib.makeBinPath [ coreutils python2 duplicity gawk gnupg1 bash gnugrep txt2man which ]}'
336 " -e "1a \
337 export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*)
338 "
339 "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1"
340 '';
341
342 meta = with stdenv.lib; {
343 description = "Shell front end for the duplicity backup tool";
344 longDescription = ''
345 Duply is a shell front end for the duplicity backup tool
346 http://duplicity.nongnu.org/. It greatly simplifies it's usage by
347 implementing backup job profiles, batch commands and more. Who says
348 secure backups on non-trusted spaces are no child's play?
349 '';
350 homepage = http://duply.net/;
351 license = licenses.gpl2;
352 maintainers = [ maintainers.bjornfor ];
353 platforms = stdenv.lib.platforms.unix;
354 };
355 };
356
357 mypkgs.boinctui = stdenv.mkDerivation rec {
358 name = "boinctui-${version}";
359 version = "2.5.0";
360 src = fetchurl {
361 url = "http://sourceforge.net/projects/boinctui/files/boinctui_${version}.tar.gz";
362 sha256 = "16zxp8r4z6pllacdacg681y56cg2phnn3pm5gwszbsi93cix2g8p";
363 };
364
365 configureFlags = [ "--without-gnutls" ];
366 preConfigure = ''
367 autoconf
368 '';
369
370 preBuild = ''
371 sed -i -e 's/"HOME"/"XDG_CONFIG_HOME"/' src/cfg.cpp
372 sed -i -e 's@\.boinctui\.cfg@boinctui/boinctui.cfg@' src/mainprog.cpp
373 '';
374 buildInputs = [ expat openssl autoconf ncurses ];
375 };
376
377 mypkgs.sc-im = sc-im.overrideAttrs (old: {
378 buildPhase = ''
379 cd src
380 sed -i Makefile -e 's@\...name.info@.local/state/$(name)info@'
381 cd ..
382 '' + old.buildPhase;
383 });
384
385 mypkgs.notmuch-vim = stdenv.mkDerivation rec {
386 name = "notmuch-vim-${version}";
387 version = notmuch.version;
388 outputs = [ "out" ];
389 src = notmuch.src;
390 phases = [ "unpackPhase" "installPhase" ];
391 installPhase = ''
392 make -C vim DESTDIR=$out prefix="/share/vim/vimfiles" install
393 '';
394 };
395
396 mypkgs.notmuch-python2 = stdenv.mkDerivation rec {
397 name = "notmuch-python2-${version}";
398 version = notmuch.version;
399 outputs = [ "out" ];
400 buildInputs = [ python2Packages.sphinx python2Packages.python ];
401 src = notmuch.src;
402 phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
403 buildPhase = ''
404 cd bindings/python
405 python setup.py build
406 '';
407 installPhase = ''
408 python setup.py install --prefix=$out --optimize=1
409 '';
410 };
411
412 mypkgs.notmuch-python3 = stdenv.mkDerivation rec {
413 name = "notmuch-python3-${version}";
414 version = notmuch.version;
415 outputs = [ "out" ];
416 buildInputs = [ python3Packages.sphinx python3Packages.python ];
417 src = notmuch.src;
418 phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
419 buildPhase = ''
420 cd bindings/python
421 python setup.py build
422 '';
423 installPhase = ''
424 python setup.py install --prefix=$out --optimize=1
425 '';
426 };
427
428 mypkgs.telegramircd = with python3Packages; let
429 telethon = buildPythonPackage rec {
430 pname = "Telethon-sync";
431 version = "1.1.1";
432
433 src = fetchPypi {
434 inherit pname version;
435 sha256 =
436 "01z8fzqn0qs5pxhvzq891r3mwffq1ga3f8xvm7qdn6kvmxjni9fy";
437 };
438
439 propagatedBuildInputs = with self; [
440 rsa pyaes async_generator
441 ];
442 doCheck = false;
443
444 meta = with lib; {
445 homepage = https://github.com/LonamiWebs/Telethon;
446 description = "Full-featured Telegram client library for Python 3";
447 license = licenses.mit;
448 };
449 };
450 in
451 buildPythonApplication rec {
452 format = "other";
453 pname = "telegramircd";
454 version = "master";
455 propagatedBuildInputs = [ telethon aiohttp ConfigArgParse openssl ];
456 src = (fetchedGithub ./fetched/telegramircd.json).src;
457 LD_LIBRARY_PATH = "${openssl.out}/lib";
458 installPhase = ''
459 install -D $src/telegramircd.py $out/bin/telegramircd
460 wrapProgram "$out/bin/telegramircd" \
461 --prefix LD_LIBRARY_PATH : "${openssl.out}/lib"
462 install -Dm644 "$src/config" -t "$out/etc/telegramircd/"
463 '';
464 };
465
466 mypkgs.lesspipe = lesspipe.overrideAttrs(old: {
467 configureFlags = (old.configureFlags or []) ++ [ "--yes" ];
468 });
469
470 mypkgs.genius = stdenv.mkDerivation rec {
471 name = "genius-${version}";
472 version = "1.0.24";
473 src = fetchurl {
474 url = "https://download.gnome.org/sources/genius/1.0/${name}.tar.xz";
475 sha256 = "772f95f6ae4716d39bb180cd50e8b6b9b074107bee0cd083b825e1e6e55916b6";
476 };
477 buildInputs = [
478 mpfr glib hicolor-icon-theme gtk2 intltool gnome-doc-utils python3 gnome2.gtksourceview
479 autoconf automake libtool ncurses readline pkg-config
480 ];
481 preConfigure = ''
482 autoreconf -fi
483 '';
484 preBuild = ''
485 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
486 '';
487 };
488
489 mypkgs.unicode = let
490 version = "12.0";
491 version-full = "${version}.0";
492 files = {
493 emoji-data = fetchurl {
494 url = "http://www.unicode.org/Public/emoji/${version}/emoji-data.txt";
495 sha256 = "03sf7h1d6kb9m5s02lif88jsi5kjszpkfvcymaqxj8ds70ar9pgv";
496 };
497 emoji-sequences = fetchurl {
498 url = "http://www.unicode.org/Public/emoji/${version}/emoji-sequences.txt";
499 sha256 = "1hghki2rn3n7m4lwpwi2a5wrsf2nij4bxga9ldabx4g0g2k23svs";
500 };
501 emoji-test = fetchurl {
502 url = "http://www.unicode.org/Public/emoji/${version}/emoji-test.txt";
503 sha256 = "1dqd0fh999mh6naj816ni113m9dimfy3ih9nffjq2lrv9mmlgdck";
504 };
505 emoji-variation-sequences = fetchurl {
506 url = "http://www.unicode.org/Public/emoji/${version}/emoji-variation-sequences.txt";
507 sha256 = "1cccwx5bl79w4c19vi5dhjqxrph92s8hihp9y8s2cqvdzmgbln7a";
508 };
509 emoji-zwj-sequences = fetchurl {
510 url = "http://www.unicode.org/Public/emoji/${version}/emoji-zwj-sequences.txt";
511 sha256 = "1l791nbijmmhwa7kmvfn8gp26ban512l6mgqpz1mnbq3xm19181n";
512 };
513 };
514 zippedFiles = {
515 UCD = fetchurl {
516 url = "http://www.unicode.org/Public/zipped/${version-full}/UCD.zip";
517 sha256 = "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh";
518 };
519 Unihan = fetchurl {
520 url = "http://www.unicode.org/Public/zipped/${version-full}/Unihan.zip";
521 sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
522 };
523 };
524 in
525 pkgs.runCommand "unicode" {
526 buildInputs = [ libarchive ];
527 } ''
528 mkdir -p $out/share/unicode
529 ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: "install -Dm644 ${u} $out/share/unicode/emoji/${n}.txt") files)}
530 ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: ''
531 install -Dm644 ${u} $out/share/unicode/${n}.zip
532 bsdtar -C "$out/share/unicode" -x -f "$out/share/unicode/${n}.zip"
533 '') zippedFiles)}
534 '';
535
536 mypkgs.dwm = dwm.overrideAttrs(old: rec {
537 postPatch = ''
538 cp ${./patches/dwm_config.h} ./config.h
539 '';
540 });
541
542 mypkgs.nixops = nixops.overrideAttrs (old: {
543 preConfigure = (old.preConfigure or "") + ''
544 sed -i -e "/'keyFile'/s/'path'/'string'/" nixops/backends/__init__.py
545 '';
546 });
547 mypkgs.flrn = let
548 slang = stdenv.mkDerivation rec {
549 name = "slang-debian-patched-${version}";
550 version = "1.4.9";
551 src = fetchurl {
552 url = "ftp://space.mit.edu/pub/davis/slang/v1.4/slang-1.4.9.tar.gz";
553 sha256 = "1y2mg0whqh4b3acd0k17i4biz55bimxg8aaxhmwd165cvspxns9r";
554 };
555 debianPatches = fetchurl {
556 url = "http://archive.debian.org/debian-archive/debian-amd64/pool/main/s/slang/slang_1.4.9dbs-8.diff.gz";
557 sha256 = "0xdq14k5ynqfwpmis1rcggs7m4n921i3bs27icbmbhfg5gb2hap2";
558 };
559 preConfigure = ''
560 cp $debianPatches ./slang.diff.gz
561 gunzip slang.diff.gz
562 patch -p1 < slang.diff
563 for i in debian/patches/*; do
564 patch -p1 < $i
565 done
566 makeFlagsArray=(CFLAGS=" -g -O2 -fno-strength-reduce -DUTF8 -D_REENTRANT -D_XOPEN_SOURCE=500")
567 '';
568 postBuild = ''
569 sed -i "1i#ifndef UTF8\n#define UTF8\n#endif" src/slang.h
570 '';
571 };
572 in
573 stdenv.mkDerivation (fetchedGithub ./fetched/flrn.json // rec {
574 buildInputs = [ libetpan openssl autoconf groff slang yacc ];
575 preConfigure = ''
576 sed -i -e "s/test -e configure/false/" configure.in
577 autoconf
578 sed -i -e '/define CHECK_MAIL/d' src/flrn_config.h
579 sed -i -e '/DEFAULT_DIR_FILE/s@".flrn"@".config/flrn"@' src/flrn_config.h
580 sed -i -e '/DEFAULT_CONFIG_FILE/s@".flrnrc"@"flrnrc"@' src/flrn_config.h
581 sed -i -e '/DEFAULT_FLNEWS_FILE/s@".flnewsrc"@"flnewsrc"@' src/flrn_config.h
582 sed -i -e '/flrn_char chaine/s@18@20@' src/flrn_command.c
583 '';
584 });
585 # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
586 # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
587 in
588 mypkgs // {
589 inherit nix-prefetch-scripts;
590 inherit nix-generate-from-cpan;
591 inherit timewarrior;
592 inherit pal;
593 inherit pdftk;
594 inherit googler;
595 inherit jrnl;
596 inherit apg pwgen;
597 inherit newsboat;
598 inherit vcsh;
599 inherit xmr-stak;
600 inherit urlwatch;
601 inherit ranger;
602 inherit irssi;
603 inherit abook khard khal;
604 inherit graphicsmagick;
605 inherit youtube-dl;
606 inherit ncmpc ncmpcpp;
607 inherit cadaver;
608 inherit mairix notmuch;
609 inherit ctags;
610 inherit s3cmd;
611 inherit solc; # solidity
612 inherit rtorrent;
613 inherit strace;
614 inherit vdirsyncer;
615 inherit w3m lynx links;
616 inherit gitRepo;
617 inherit valgrind;
618 inherit iotop iperf;
619 inherit keybase;
620 inherit bogofilter;
621 inherit mtr;
622 inherit urlview;
623 inherit rr;
624 inherit nix-zsh-completions;
625 inherit browsh;
626 inherit monero;
627 inherit nextcloud-client;
628 inherit feh imagemagick;
629 inherit lftp;
630 stgit = gitAndTools.stgit;
631 inherit bundix;
632 bower2nix = nodePackages.bower2nix;
633 inherit firefox;
634 inherit jq;
635 inherit lzo unzip bzip2 p7zip xz;
636 # unrar is unfree
637 inherit tig;
638 #inherit nixos;
639 inherit emacs26-nox;
640 inherit highlight sourceHighlight;
641 pygmentize = python3Packages.pygments;
642 inherit iftop htop;
643 inherit fetchmail;
644 inherit bc;
645 inherit cpulimit;
646 inherit dmenu st;
647 inherit poppler_utils;
648 inherit tmux;
649 inherit netcat-gnu;
650 inherit ledger;
651 inherit ffmpeg libxslt;
652 }