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