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