]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - default.nix
Add stgit progam
[perso/Immae/Config/Nix.git] / default.nix
1 with import ./libs.nix;
2 with nixpkgs_unstable;
3 let
4 stable_nixpkgs = import <nixpkgs> {};
5 mypkgs = {};
6 postHook = ''
7 header() {
8 echo -ne "\033[1;36m"
9 echo -n "$1"
10 echo -e "\033[0m"
11 }
12
13 echoCmd() {
14 printf "\033[1;34m%s:\033[0m" "$1"
15 shift
16 printf ' %q' "$@"
17 echo
18 }
19 '';
20
21 mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old:
22 fetchedGithub ./fetched/ledger.json // {
23 postInstall = "";
24 }
25 );
26
27 mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec {
28 postInstall = ''${old.postInstall}
29 mkdir -p "$out/share/vim/vimfiles/ftdetect"
30 mkdir -p "$out/share/vim/vimfiles/syntax"
31 ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/"
32 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/"
33 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/"
34 ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/"
35 '';
36 });
37
38 mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
39 fetchedGithub ./fetched/vit.json // {
40 buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
41 }
42 );
43
44 mypkgs.weboob = pythonPackages.weboob.overrideAttrs (old: rec {
45 postInstall = ''${old.postInstall or ""}
46 mkdir -p $out/share/bash-completion/completions/
47 cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
48 '';
49 });
50
51 mypkgs.slrn = slrn.overrideAttrs (old: rec {
52 version = "1.0.3a";
53 name = "slrn-${version}";
54 src = fetchurl {
55 url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
56 sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
57 };
58 configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
59 });
60
61 mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
62
63 nixos = import ./nixos_tools.nix {};
64
65 mypkgs.pass = (pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
66 fetchedGit ./fetched/pass.json // {
67 patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ];
68 }
69 );
70
71 mypkgs.profanity = (profanity.override {
72 notifySupport = true;
73 inherit libnotify gpgme gdk_pixbuf;
74 python = python3;
75 }).overrideAttrs (old: rec {
76 configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
77 });
78
79 mypkgs.weechat = weechat.override {
80 configure = { availablePlugins, ... }: {
81 plugins = with availablePlugins; [
82 (python.withPackages (ps: with ps; [websocket_client emoji]))
83 perl
84 ];
85 };
86 };
87
88 buildPerlPackage = perlPackages.buildPerlPackage;
89 mypkgs.note = buildPerlPackage rec {
90 name = "note-1.3.26";
91 src = fetchurl {
92 url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
93 sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq";
94 };
95 outputs = ["out" "man"];
96 propragatedBuildInputs = [ perlPackages.YAML ];
97 meta = with stdenv.lib; {
98 description = "A perl script for maintaining notes";
99 homepage = http://www.daemon.de/NOTE;
100 license = licenses.gpl3;
101 maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ];
102 platforms = platforms.unix;
103 };
104 };
105
106 mypkgs.terminal_velocity = with python2Packages; buildPythonApplication rec {
107 pname = "terminal-velocity-git";
108 version = "0.2.0";
109
110 patches = [
111 # FIXME: update this patch when version changes
112 ./patches/terminal_velocity_fix_build.patch
113 ./patches/terminal_velocity_sort_found_notes.patch
114 ];
115
116 propagatedBuildInputs = [ chardet urwid sh pyyaml ];
117 buildInputs = [ m2r restructuredtext_lint pygments ];
118
119 src = fetchPypi {
120 inherit pname version;
121 sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9";
122 };
123 };
124
125 mypkgs.mtop = buildPerlPackage rec {
126 name = "mtop-${version}";
127 version = "0.6.6";
128 src = fetchurl {
129 url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz";
130 sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf";
131 };
132 outputs = ["out"];
133 buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ];
134
135 postInstall = ''
136 cd "$out"
137 preConfigure || true
138 '';
139 meta = with stdenv.lib; {
140 description = "MySQL top (monitor and examine slow queries)";
141 homepage = http://mtop.sourceforge.net/;
142 license = licenses.gpl3;
143 maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ];
144 platforms = platforms.unix;
145 };
146 };
147
148 mypkgs.tiv = buildPerlPackage rec {
149 name = "tiv-${version}";
150 version = "2015";
151 src = fetchurl {
152 url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz";
153 sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90";
154 };
155 outputs = ["out"];
156 buildInputs = [ perlPackages.PerlMagick ];
157 perlPreHookScript = ./hooks/tiv_builder.sh;
158 perlPreHook = ''
159 source ${perlPreHookScript}
160 '';
161 installPhase = ''
162 install -Dm755 tiv "$out/bin/tiv"
163 '';
164 };
165
166 mypkgs.cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec {
167 configureFlags = [
168 "--with-etc-dir=/etc/cnagios"
169 "--with-var-dir=/var/lib/naemon"
170 "--with-nagios-data=4"
171 ];
172
173 prePatch = ''
174 sed -i -e "s/-lcurses/-lncurses/" Makefile.in
175 '';
176 installPhase = ''
177 install -dm755 $out/share/doc/cnagios
178 install -Dm644 cnagiosrc $out/share/doc/cnagios/
179 install -Dm644 cnagios.help $out/share/doc/cnagios/
180 install -Dm644 cnagios.pl $out/share/doc/cnagios/
181 install -dm755 $out/bin
182 install -Dm755 cnagios $out/bin/
183 '';
184 propagatedBuildInputs = [ perl ncurses ];
185 });
186
187 mypkgs.nagios-cli = python2Packages.buildPythonApplication (fetchedGithub ./fetched/nagios-cli.json);
188
189 mypkgs.pg_activity = with python2Packages; buildPythonApplication (fetchedGithub ./fetched/pg_activity.json // rec {
190 propagatedBuildInputs = [ psycopg2 psutil ];
191 });
192
193 mypkgs.pgloader = stdenv.mkDerivation (fetchedGithub ./fetched/pgloader.json // rec {
194 buildInputs = [ sbcl cacert sqlite freetds libzip curl git openssl makeWrapper ];
195 LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
196 buildPhase = ''
197 export PATH=$PATH:$out/bin
198 export HOME=$TMPDIR
199 make pgloader
200 '';
201 dontStrip = true;
202 enableParallelBuilding = false;
203 installPhase = ''
204 install -Dm755 build/bin/pgloader "$out/bin/pgloader"
205 wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
206 '';
207 });
208
209 mypkgs.pelican = python3Packages.pelican.overrideAttrs(old: fetchedGithub ./fetched/pelican.json // rec {
210 propagatedBuildInputs = old.propagatedBuildInputs ++ [ python3Packages.pyyaml ];
211 });
212
213 mypkgs.elinks = elinks.overrideAttrs (old:
214 fetchedGithub ./fetched/elinks.json // rec {
215 preConfigure = ''sh autogen.sh'';
216 buildInputs = old.buildInputs ++ [ gettext automake autoconf ];
217 configureFlags = [
218 "--disable-smb" "--without-x" "--enable-cgi"
219 "--enable-leds" "--enable-256-colors"
220 "--enable-html-highlight" "--with-zlib"
221 ];
222 patches = [];
223 }
224 );
225
226 mypkgs.neomutt = neomutt.overrideAttrs (old:
227 rec {
228 buildInputs = old.buildInputs ++ [ gdbm ];
229 configureFlags = old.configureFlags ++ [ "--gdbm" ];
230 }
231 );
232
233 # mypkgs.nagnu = stdenv.mkDerivation (fetchedGithub ./fetched/nagnu.json // rec {
234 # buildInputs = [ ncurses curl ];
235 # installPhase = ''
236 # mkdir -p $out/bin
237 # cp nagnu $out/bin
238 # mkdir -p $out/share/doc/nagnu
239 # cp nagnu.conf.sample $out/share/doc/nagnu
240 # mkdir -p $out/share/man/man8
241 # cp docs/nagnu.8 $out/share/man/man8
242 # '';
243 # });
244
245 mastodon = stdenv.mkDerivation (fetchedGithub ./fetched/mastodon.json // rec {
246 buildPhase = ''
247 export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
248 export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
249
250 bundle install --deployment --without development test
251 yarn install --pure-lockfile
252 '';
253 installPhase = ''
254 cp -a . $out
255 '';
256 propagatedBuildInputs = [
257 zlib icu libchardet git bundler yarn
258 protobuf protobufc libidn libpqxx nodejs
259 imagemagick ffmpeg libxml2 libxslt pkgconfig
260 autoconf bison libyaml readline ncurses libffi gdbm
261 jemalloc which postgresql python3 cacert
262 ];
263 });
264 # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
265 # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
266 in
267 mypkgs // {
268 inherit nix-prefetch-scripts;
269 inherit nix-generate-from-cpan;
270 inherit timewarrior;
271 inherit sc-im;
272 inherit pal;
273 inherit duplicity duply;
274 inherit pdftk;
275 inherit googler;
276 inherit jrnl;
277 inherit apg;
278 inherit newsboat;
279 inherit vcsh;
280 inherit xmr-stak;
281 inherit urlwatch;
282 inherit ranger;
283 inherit irssi;
284 inherit abook khard khal;
285 inherit graphicsmagick;
286 inherit youtube-dl;
287 inherit ncmpc;
288 inherit cadaver;
289 inherit mairix notmuch;
290 inherit ctags;
291 inherit s3cmd;
292 inherit solc; # solidity
293 inherit rtorrent;
294 inherit strace;
295 inherit vdirsyncer;
296 inherit w3m lynx links;
297 inherit gitRepo;
298 inherit valgrind;
299 inherit iotop iperf;
300 inherit keybase;
301 inherit bogofilter;
302 inherit mtr;
303 inherit nixops;
304 stgit = gitAndTools.stgit;
305 #inherit mastodon;
306 # todo: lx* ?, unrar, unzip, zeromq?
307 #inherit nextcloud-client;
308 #inherit nixos;
309 }