X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=default.nix;h=1f43cdd93883294eb3e4b67df4a1d66b7b98fd72;hp=0c7cd7bc5fe200b1e29aba1cb9ab07b519a4f86d;hb=ce95026934c4ea8c647365f68eb195459fcdff08;hpb=55fd3780b5c40664233cd3f9b8cf280bd530fdd1 diff --git a/default.nix b/default.nix index 0c7cd7b..1f43cdd 100644 --- a/default.nix +++ b/default.nix @@ -1,603 +1,11 @@ -with import ./libs.nix; -with import {}; +{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs {} }: let - mypkgs = {}; - - mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old: - fetchedGithub ./fetched/ledger.json // { - postInstall = ""; - } - ); - - mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec { - postInstall = ''${old.postInstall} - mkdir -p "$out/share/vim/vimfiles/ftdetect" - mkdir -p "$out/share/vim/vimfiles/syntax" - ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/" - ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/" - ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/" - ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/" - ''; - }); - - mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old: - fetchedGithub ./fetched/vit.json // { - buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth]; - } - ); - - mypkgs.weboob = pythonPackages.weboob.overrideAttrs (old: rec { - postInstall = ''${old.postInstall or ""} - mkdir -p $out/share/bash-completion/completions/ - cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob - ''; - }); - - mypkgs.slrn = slrn.overrideAttrs (old: rec { - version = "1.0.3a"; - name = "slrn-${version}"; - src = fetchurl { - url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2"; - sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v"; - }; - configureFlags = old.configureFlags ++ [ "--with-slrnpull" ]; - }); - - mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json); - - nixos = import ./nixos_tools.nix {}; - - mypkgs.pass = (pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old: - fetchedGit ./fetched/pass.json // { - patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ]; - } - ); - - mypkgs.profanity = (profanity.override { - notifySupport = true; - inherit libnotify gpgme gdk_pixbuf; - python = python3; - }).overrideAttrs (old: rec { - configureFlags = old.configureFlags ++ [ "--enable-plugins" ]; - }); - - mypkgs.weechat = nixpkgs_unstable.weechat.override { - configure = { availablePlugins, ... }: { - plugins = with availablePlugins; [ - (python.withPackages (ps: with ps; [websocket_client emoji])) - perl - ruby - ]; - }; - }; - - buildPerlPackage = perlPackages.buildPerlPackage; - mypkgs.note = buildPerlPackage rec { - name = "note-1.3.26"; - src = fetchurl { - url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz"; - sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq"; - }; - outputs = ["out" "man"]; - propagatedBuildInputs = [ perlPackages.YAML ]; - meta = with stdenv.lib; { - description = "A perl script for maintaining notes"; - homepage = http://www.daemon.de/NOTE; - license = licenses.gpl3; - maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ]; - platforms = platforms.unix; - }; - }; - - mypkgs.terminal-velocity = with python2Packages; buildPythonApplication rec { - pname = "terminal-velocity-git"; - version = "0.2.0"; - - patches = [ - # FIXME: update this patch when version changes - ./patches/terminal_velocity_fix_build.patch - ./patches/terminal_velocity_sort_found_notes.patch - ]; - - propagatedBuildInputs = [ chardet urwid nixpkgs_unstable.python2Packages.sh pyyaml ]; - buildInputs = [ m2r restructuredtext_lint pygments ]; - - postInstall = '' - rm $out/bin/terminal_velocity - ''; - src = fetchPypi { - inherit pname version; - sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9"; - }; - }; - - mypkgs.mtop = buildPerlPackage rec { - name = "mtop-${version}"; - version = "0.6.6"; - src = fetchurl { - url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz"; - sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf"; - }; - outputs = ["out"]; - buildInputs = [ perlPackages.DBI perlPackages.DBDmysql perlPackages.Curses ]; - - postInstall = '' - cd "$out" - preConfigure || true - ''; - meta = with stdenv.lib; { - description = "MySQL top (monitor and examine slow queries)"; - homepage = http://mtop.sourceforge.net/; - license = licenses.gpl3; - maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ]; - platforms = platforms.unix; - }; - }; - - mypkgs.tiv = buildPerlPackage rec { - name = "tiv-${version}"; - version = "2015"; - src = fetchurl { - url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz"; - sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90"; - }; - outputs = ["out"]; - buildInputs = [ perlPackages.PerlMagick ]; - perlPreHookScript = ./hooks/tiv_builder.sh; - perlPreHook = '' - source ${perlPreHookScript} - ''; - installPhase = '' - install -Dm755 tiv "$out/bin/tiv" - ''; - }; - - mypkgs.cnagios = stdenv.mkDerivation (fetchedGithub ./fetched/cnagios.json // rec { - configureFlags = [ - "--with-etc-dir=/etc/cnagios" - "--with-var-dir=/var/lib/naemon" - "--with-nagios-data=4" - ]; - - prePatch = '' - sed -i -e "s/-lcurses/-lncurses/" Makefile.in - ''; - installPhase = '' - install -dm755 $out/share/doc/cnagios - install -Dm644 cnagiosrc $out/share/doc/cnagios/ - install -Dm644 cnagios.help $out/share/doc/cnagios/ - install -Dm644 cnagios.pl $out/share/doc/cnagios/ - install -dm755 $out/bin - install -Dm755 cnagios $out/bin/ - ''; - propagatedBuildInputs = [ perl ncurses ]; - }); - - mypkgs.nagios-cli = python2Packages.buildPythonApplication (fetchedGithub ./fetched/nagios-cli.json); - - mypkgs.pg_activity = with python2Packages; buildPythonApplication (fetchedGithub ./fetched/pg_activity.json // rec { - propagatedBuildInputs = [ psycopg2 psutil ]; - }); - - mypkgs.pgloader = stdenv.mkDerivation (fetchedGithub ./fetched/pgloader.json // rec { - buildInputs = [ sbcl cacert sqlite freetds libzip curl git openssl makeWrapper ]; - LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ]; - buildPhase = '' - export PATH=$PATH:$out/bin - export HOME=$TMPDIR - make pgloader - ''; - dontStrip = true; - enableParallelBuilding = false; - installPhase = '' - install -Dm755 build/bin/pgloader "$out/bin/pgloader" - wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}" - ''; - }); - - mypkgs.pelican = python3Packages.pelican.overrideAttrs(old: fetchedGithub ./fetched/pelican.json // rec { - propagatedBuildInputs = old.propagatedBuildInputs ++ [ python3Packages.pyyaml ]; - }); - - mypkgs.elinks = elinks.overrideAttrs (old: - fetchedGithub ./fetched/elinks.json // rec { - preConfigure = ''sh autogen.sh''; - buildInputs = old.buildInputs ++ [ gettext automake autoconf ]; - configureFlags = [ - "--disable-smb" "--without-x" "--enable-cgi" - "--enable-leds" "--enable-256-colors" - "--enable-html-highlight" "--with-zlib" - ]; - patches = []; - } - ); - - mypkgs.neomutt = neomutt.overrideAttrs (old: - rec { - buildInputs = old.buildInputs ++ [ gdbm ]; - configureFlags = old.configureFlags ++ [ "--gdbm" ]; - } - ); - - # mypkgs.nagnu = stdenv.mkDerivation (fetchedGithub ./fetched/nagnu.json // rec { - # buildInputs = [ ncurses curl ]; - # installPhase = '' - # mkdir -p $out/bin - # cp nagnu $out/bin - # mkdir -p $out/share/doc/nagnu - # cp nagnu.conf.sample $out/share/doc/nagnu - # mkdir -p $out/share/man/man8 - # cp docs/nagnu.8 $out/share/man/man8 - # ''; - # }); - - mypkgs.goaccess = goaccess.overrideAttrs(old: rec { - name = "goaccess-${version}"; - version = "1.3"; - src = fetchurl { - url = "https://tar.goaccess.io/${name}.tar.gz"; - sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc"; - }; - configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ]; - buildInputs = old.buildInputs ++ [ tokyocabinet bzip2 ]; - }); - - mypkgs.mutt-ics = with python3Packages; buildPythonApplication (fetchedGithub ./fetched/mutt-ics.json // rec { - propagatedBuildInputs = [ icalendar ]; - }); - - mypkgs.telegram-cli = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-cli.json // rec { - patches = [ - ./patches/telegram-cli.patch - ]; - buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ]; - preBuild = '' - sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c - ''; - installPhase = '' - mkdir -p $out - install -Dm755 bin/telegram-cli $out/bin/telegram-cli - install -Dm644 tg-server.pub $out/etc/server.pub - install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8 - ''; - }); - - mypkgs.telegram-history-dump = stdenv.mkDerivation (fetchedGithub ./fetched/telegram-history-dump.json // rec { - installPhase = '' - mkdir -p $out/lib $out/bin - cp -a $src $out/lib/telegram-history-dump - ln -s $out/lib/telegram-history-dump/telegram-history-dump.rb $out/bin/telegram-history-dump - ''; - buildInputs = [ ruby ]; - }); - - mypkgs.muttprint = stdenv.mkDerivation rec { - name = "muttprint-${version}"; - version = "0.73"; - src = fetchurl { - url = "http://downloads.sf.net/muttprint/${name}.tar.gz"; - sha256 = "1dny4niyibfgazwlzfcnb37jy6k140rs6baaj629z12rmahfdavw"; - }; - patches = [ - ./patches/muttprint_0.73-4.diff.gz - ./patches/muttprint_regex.patch - ./patches/muttprint_two_edge.patch - ]; - preConfigure = '' - aclocal - automake --add-missing --copy - autoconf - ''; - preBuild = '' - cd pics - convert -flop BabyTuX.eps BabyTuX.eps - for i in BabyTuX_color.eps BabyTuX.eps Debian_color.eps \ - Debian.eps Gentoo.eps Gentoo_color.eps ; do - convert $i $(basename $i .eps).png - done - convert penguin.eps penguin.jpg - cd .. - ''; - postInstall = '' - perlFlags= - for i in $(IFS=:; echo $PERL5LIB); do - perlFlags="$perlFlags -I$i" - done - - sed -i "$out/bin/muttprint" -e "s|^#\!\(.*[ /]perl.*\)$|#\!\1$perlFlags|" - sed -i "$out/bin/muttprint" -e "s|ENV{HOME}/.muttprintrc|ENV{XDG_CONFIG_HOME}/muttprint/muttprintrc|" - - wrapProgram $out/bin/muttprint \ - --prefix PATH : ${lib.makeBinPath [ psutils dialog - (texlive.combine { inherit (texlive) scheme-basic utopia fancyvrb lastpage marvosym ucs cm-super; }) ]} - ''; - buildInputs = [ makeWrapper automake autoconf imagemagick ghostscript perl ] ++ - (with perlPackages; [ TimeDate FileWhich TextIconv ]); - }; - - mypkgs.yarn2nix = yarn2nixPackage.yarn2nix; - - mypkgs.cardano = let - daedalusOrig = (import (fetchedGithub ./fetched/daedalus.json).src {}).daedalus; - cfg = stdenv.mkDerivation rec { - name = "launcher-config-custom"; - src = daedalusOrig.cfg; - installPhase = '' - cp -a $src $out - chmod -R u+w $out - cd $out/etc - sed -e "/^walletPath/d" -e "/^walletArgs/d" launcher-config.yaml > launcher-config-server-only.yaml - ''; - }; - daedalus = stdenv.mkDerivation rec { - name = "daedalus-custom"; - src = daedalusOrig; - installPhase = '' - cp -a $src $out - chmod -R u+w $out - cd $out/bin - sed -i -e "s@${builtins.storeDir}/[0-9a-z]*-daedalus-config@${cfg}/etc@" daedalus - sed -e "s@${cfg}/etc/launcher-config.yaml@${cfg}/etc/launcher-config-server-only.yaml@" daedalus > daedalus-server-only - chmod a+x daedalus-server-only - ''; - }; - in - daedalus; - - mypkgs.sia = stdenv.mkDerivation rec { - version = "v1.3.7"; - name = "Sia-${version}"; - src = fetchzip { - url = "https://sia.tech/static/releases/${name}-linux-amd64.zip"; - sha256 = "1ljzwrlkx4hc16r8siiyakn039afipp95dyr83c8yfq3r3bfasqd"; - }; - phases = "installPhase"; - installPhase = '' - mkdir -p $out/share/doc - mkdir -p $out/bin - mkdir -p $out/share/sia - cp -a $src/doc $out/share/doc/sia - cp -a $src/LICENSE $src/README.md $out/share/sia - cp -a $src/{siac,siad} $out/bin - cp -a $src/{siac,siad}.sig $out/share/sia/ - ''; - }; - - mypkgs.iota-cli-app = let - nodeEnv = pkgs.callPackage "${nodePackages.node2nix}/lib/node_modules/node2nix/nix/node-env.nix" { - nodejs = nodejs-8_x; - }; - # built using node2nix -8 -l package-lock.json - # and changing "./." to "src" - packageEnv = import ./fetched/iota-cli-app-node-packages.nix { - src = stdenv.mkDerivation (fetchedGithub ./fetched/iota-cli-app.json // { - phases = "installPhase"; - installPhase = '' - cp -a $src $out - chmod u+w -R $out - cd $out - sed -i -e "s@host: 'http://localhost',@host: 'https://iri.trytes.eu',@" index.js - sed -i -e "s@port: 14265@port: 443@" index.js - ''; - }); - inherit (pkgs) fetchurl fetchgit; - inherit nodeEnv; - }; - in - packageEnv.package; - - mypkgs.duply = stdenv.mkDerivation rec { - name = "duply-${version}"; - version = "2.1"; - - src = fetchurl { - url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz"; - sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8"; - }; - - buildInputs = [ txt2man makeWrapper ]; - - postPatch = "patchShebangs ."; - - installPhase = '' - mkdir -p "$out/bin" - mkdir -p "$out/share/man/man1" - install -vD duply "$out/bin" - sed -i $out/bin/duply -e "1a \ - export PATH='${stdenv.lib.makeBinPath [ coreutils python2 duplicity gawk gnupg1 bash gnugrep txt2man which ]}' - " -e "1a \ - export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*) - " - "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1" - ''; - - meta = with stdenv.lib; { - description = "Shell front end for the duplicity backup tool"; - longDescription = '' - Duply is a shell front end for the duplicity backup tool - http://duplicity.nongnu.org/. It greatly simplifies it's usage by - implementing backup job profiles, batch commands and more. Who says - secure backups on non-trusted spaces are no child's play? - ''; - homepage = http://duply.net/; - license = licenses.gpl2; - maintainers = [ maintainers.bjornfor ]; - platforms = stdenv.lib.platforms.unix; - }; - }; - - mypkgs.boinctui = stdenv.mkDerivation rec { - name = "boinctui-${version}"; - version = "2.5.0"; - src = fetchurl { - url = "http://sourceforge.net/projects/boinctui/files/boinctui_${version}.tar.gz"; - sha256 = "16zxp8r4z6pllacdacg681y56cg2phnn3pm5gwszbsi93cix2g8p"; - }; - - configureFlags = [ "--without-gnutls" ]; - preConfigure = '' - autoconf - ''; - - preBuild = '' - sed -i -e 's/"HOME"/"XDG_CONFIG_HOME"/' src/cfg.cpp - sed -i -e 's@\.boinctui\.cfg@boinctui/boinctui.cfg@' src/mainprog.cpp - ''; - buildInputs = [ expat openssl autoconf ncurses ]; - }; - - mypkgs.sc-im = sc-im.overrideAttrs (old: { - buildPhase = '' - cd src - sed -i Makefile -e 's@\...name.info@.local/state/$(name)info@' - cd .. - '' + old.buildPhase; - }); - - mypkgs.notmuch-vim = stdenv.mkDerivation rec { - name = "notmuch-vim-${version}"; - version = nixpkgs_unstable.notmuch.version; - outputs = [ "out" ]; - src = nixpkgs_unstable.notmuch.src; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - make -C vim DESTDIR=$out prefix="/share/vim/vimfiles" install - ''; - }; - - mypkgs.notmuch-python2 = stdenv.mkDerivation rec { - name = "notmuch-python2-${version}"; - version = nixpkgs_unstable.notmuch.version; - outputs = [ "out" ]; - buildInputs = [ python2Packages.sphinx python2Packages.python ]; - src = nixpkgs_unstable.notmuch.src; - phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; - buildPhase = '' - cd bindings/python - python setup.py build - ''; - installPhase = '' - python setup.py install --prefix=$out --optimize=1 - ''; - }; - - mypkgs.notmuch-python3 = stdenv.mkDerivation rec { - name = "notmuch-python3-${version}"; - version = nixpkgs_unstable.notmuch.version; - outputs = [ "out" ]; - buildInputs = [ nixpkgs_unstable.python3Packages.sphinx nixpkgs_unstable.python3Packages.python ]; - src = nixpkgs_unstable.notmuch.src; - phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ]; - buildPhase = '' - cd bindings/python - python setup.py build - ''; - installPhase = '' - python setup.py install --prefix=$out --optimize=1 - ''; - }; - - mypkgs.telegramircd = with python3Packages; let - telethon = buildPythonPackage rec { - pname = "Telethon-sync"; - version = "1.1.1"; - - src = fetchPypi { - inherit pname version; - sha256 = - "01z8fzqn0qs5pxhvzq891r3mwffq1ga3f8xvm7qdn6kvmxjni9fy"; - }; - - propagatedBuildInputs = with self; [ - rsa pyaes async_generator - ]; - doCheck = false; - - meta = with lib; { - homepage = https://github.com/LonamiWebs/Telethon; - description = "Full-featured Telegram client library for Python 3"; - license = licenses.mit; - }; - }; - in - buildPythonApplication rec { - format = "other"; - pname = "telegramircd"; - version = "master"; - propagatedBuildInputs = [ telethon aiohttp ConfigArgParse openssl ]; - src = (fetchedGithub ./fetched/telegramircd.json).src; - LD_LIBRARY_PATH = "${openssl.out}/lib"; - installPhase = '' - install -D $src/telegramircd.py $out/bin/telegramircd - wrapProgram "$out/bin/telegramircd" \ - --prefix LD_LIBRARY_PATH : "${openssl.out}/lib" - install -Dm644 "$src/config" -t "$out/etc/telegramircd/" - ''; - }; -# https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh -# https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks + mypkgs = pkgs.callPackage ./pkgs {}; in - mypkgs // { - inherit nix-prefetch-scripts; - inherit nix-generate-from-cpan; - inherit timewarrior; - inherit pal; - inherit pdftk; - inherit googler; - inherit jrnl; - inherit apg; - inherit newsboat; - inherit vcsh; - inherit xmr-stak; - inherit urlwatch; - inherit ranger; - inherit irssi; - inherit abook khard khal; - inherit graphicsmagick; - inherit youtube-dl; - inherit ncmpc ncmpcpp; - inherit cadaver; - inherit mairix notmuch; - inherit ctags; - inherit s3cmd; - inherit solc; # solidity - inherit rtorrent; - inherit strace; - inherit vdirsyncer; - inherit w3m lynx links; - inherit gitRepo; - inherit valgrind; - inherit iotop iperf; - inherit keybase; - inherit bogofilter; - inherit mtr; - inherit nixops; - inherit urlview; - inherit rr; - inherit nix-zsh-completions; - inherit browsh; - inherit monero; - inherit nextcloud-client; - inherit feh imagemagick; - stgit = gitAndTools.stgit; - # todo: lx* ?, unrar, unzip, zeromq? - #inherit nextcloud-client; - #inherit nixos; - } // (with nixpkgs_unstable; { - inherit googler; - inherit khal; - inherit newsboat; - inherit xmr-stak; - inherit urlwatch; - inherit graphicsmagick; - inherit ncmpc; - inherit solc; - inherit w3m lynx links; - inherit valgrind; - inherit ranger; - inherit strace; - inherit notmuch notmuch-mutt; - stgit = gitAndTools.stgit; - inherit bundix; - bower2nix = nodePackages.bower2nix; - }) +{ + lib = pkgs.callPackage ./lib {}; + modules = import ./modules; + overlays = import ./overlays; + pkgs = mypkgs; + environments = pkgs.callPackage ./environments {}; +} // mypkgs