]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - default.nix
Add statistics for aten website
[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 mastodon = stdenv.mkDerivation (fetchedGithub ./fetched/mastodon.json // rec {
256 buildPhase = ''
257 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
258 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
259
260 bundle install --deployment --without development test
261 yarn install --pure-lockfile
262 '';
263 installPhase = ''
264 cp -a . $out
265 '';
266 propagatedBuildInputs = [
267 zlib icu libchardet git bundler yarn
268 protobuf protobufc libidn libpqxx nodejs
269 imagemagick ffmpeg libxml2 libxslt pkgconfig
270 autoconf bison libyaml readline ncurses libffi gdbm
271 jemalloc which postgresql python3 cacert
272 ];
273 });
274 # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
275 # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
276 in
277 mypkgs // {
278 inherit nix-prefetch-scripts;
279 inherit nix-generate-from-cpan;
280 inherit timewarrior;
281 inherit sc-im;
282 inherit pal;
283 inherit pdftk;
284 inherit googler;
285 inherit jrnl;
286 inherit apg;
287 inherit newsboat;
288 inherit vcsh;
289 inherit xmr-stak;
290 inherit urlwatch;
291 inherit ranger;
292 inherit irssi;
293 inherit abook khard khal;
294 inherit graphicsmagick;
295 inherit youtube-dl;
296 inherit ncmpc;
297 inherit cadaver;
298 inherit mairix notmuch;
299 inherit ctags;
300 inherit s3cmd;
301 inherit solc; # solidity
302 inherit rtorrent;
303 inherit strace;
304 inherit vdirsyncer;
305 inherit w3m lynx links;
306 inherit gitRepo;
307 inherit valgrind;
308 inherit iotop iperf;
309 inherit keybase;
310 inherit bogofilter;
311 inherit mtr;
312 inherit nixops;
313 stgit = gitAndTools.stgit;
314 #inherit mastodon;
315 # todo: lx* ?, unrar, unzip, zeromq?
316 #inherit nextcloud-client;
317 #inherit nixos;
318 } // (with nixpkgs_unstable; {
319 inherit googler;
320 inherit khal;
321 inherit newsboat;
322 inherit xmr-stak;
323 inherit urlwatch;
324 inherit graphicsmagick;
325 inherit ncmpc;
326 inherit solc;
327 inherit w3m lynx links;
328 inherit valgrind;
329 inherit ranger;
330 inherit strace;
331 inherit notmuch;
332 stgit = gitAndTools.stgit;
333 })