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