]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - default.nix
Upgrade packages to 19.03
[perso/Immae/Config/Nix.git] / default.nix
index 4592eefe2bcff94d6518aa6f72075c0e3c7c8afa..ad9bca7f2a6876ac98063d529db8dffdd513687d 100644 (file)
@@ -1,32 +1,16 @@
-with import <nixpkgs> {};
+with import ./libs.nix;
+with import <immaeNixpkgsNext> {};
 let
-  nixpkgs = import <nixpkgs> {};
-  fetchedGithub = path:
-    let
-      json = lib.importJSON path;
-    in rec {
-      version = json.tag;
-      name = "${json.meta.name}-${version}";
-      src = fetchFromGitHub json.github;
-    };
-
-  fetchedGit = path:
-    let
-      json = lib.importJSON path;
-    in rec {
-      version = json.tag;
-      name = "${json.meta.name}-${version}";
-      src = fetchgit json.git;
-    };
-
-  ledger = (nixpkgs.ledger.override { boost = boost166; }).overrideAttrs (oldAttrs:
+  mypkgs = {};
+
+  mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old:
     fetchedGithub ./fetched/ledger.json // {
       postInstall = "";
     }
   );
 
-  taskwarrior = nixpkgs.taskwarrior.overrideAttrs (oldAttrs: rec {
-    postInstall = ''${oldAttrs.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/"
@@ -36,78 +20,582 @@ let
     '';
   });
 
-  vit = (nixpkgs.vit.override { inherit taskwarrior; }).overrideAttrs (oldAttrs:
+  mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
     fetchedGithub ./fetched/vit.json // {
-      buildInputs = oldAttrs.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
+      buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
     }
   );
 
-  weboob = pythonPackages.weboob.overrideAttrs (oldAttrs: rec {
-    postInstall = ''${oldAttrs.postInstall or ""}
-      mkdir -p $out/share/bash-completion/completions/
-      cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
-    '';
+  mypkgs.weboob = (pythonPackages.weboob.overridePythonAttrs {
+      setupPyBuildFlags = [ "--no-qt" "--xdg" ];
+    }).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
+      '';
   });
 
-  slrn = nixpkgs.slrn.overrideAttrs (oldAttrs: rec {
+  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 = oldAttrs.configureFlags ++ [ "--with-slrnpull" ];
+    configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
   });
 
-  ldapvi = nixpkgs.ldapvi.overrideAttrs (oldAttrs: fetchedGit ./fetched/ldapvi.json);
+  mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
 
   nixos = import ./nixos_tools.nix {};
 
-  pass = nixpkgs.pass.overrideAttrs (oldAttrs:
+  mypkgs.pass = (pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
     fetchedGit ./fetched/pass.json // {
-      patches = oldAttrs.patches ++ [ ./patches/pass-fix-pass-init.patch ];
+      patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ];
     }
   );
 
-  profanity = (nixpkgs.profanity.override {
+  mypkgs.profanity = (profanity.override {
     notifySupport = true;
     inherit libnotify gpgme gdk_pixbuf;
     python = python3;
-  }).overrideAttrs (oldAttrs: rec {
-    configureFlags = oldAttrs.configureFlags ++ [ "--enable-plugins" ];
+  }).overrideAttrs (old: rec {
+    configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
   });
 
-  weechat = nixpkgs.weechat.override {
+  mypkgs.weechat = (wrapWeechat (
+    weechat-unwrapped.overrideAttrs (old: rec {
+      version = "2.3";
+      name = "weechat-${version}";
+      src = fetchurl {
+        url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
+        sha256 = "0mi4pfnyny0vqc35r0scn6yy21y790a5iwq8ms7kch7b7z11jn9w";
+      };
+      patches = [];
+    })
+  ) {}).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 python3Packages; buildPythonApplication rec {
+    pname = "terminal-velocity-git";
+    version = "0.2.0";
+
+    patches = [
+      ./patches/terminal_velocity_sort_found_notes.patch
+      ./patches/terminal_velocity_python3_support.patch
+      # FIXME: update this patch when version changes
+      ./patches/terminal_velocity_fix_build.patch
+    ];
+
+    propagatedBuildInputs = [ chardet urwid (sh.overridePythonAttrs { doCheck = false; }) pyyaml ];
+    buildInputs = [ m2r (restructuredtext_lint.overridePythonAttrs { doCheck = false; }) 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 = notmuch.version;
+    outputs = [ "out" ];
+    src = 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 = notmuch.version;
+    outputs = [ "out" ];
+    buildInputs = [ python2Packages.sphinx python2Packages.python ];
+    src = 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 = notmuch.version;
+    outputs = [ "out" ];
+    buildInputs = [ python3Packages.sphinx python3Packages.python ];
+    src = 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
 in
-  {
+  mypkgs // {
     inherit nix-prefetch-scripts;
-    inherit ledger;
-    inherit taskwarrior vit timewarrior;
-    inherit weboob;
-    inherit slrn;
-    inherit sc-im;
-    inherit ldapvi;
+    inherit nix-generate-from-cpan;
+    inherit timewarrior;
     inherit pal;
-    inherit duplicity duply;
     inherit pdftk;
     inherit googler;
     inherit jrnl;
-    inherit apg;
+    inherit apg pwgen;
     inherit newsboat;
     inherit vcsh;
     inherit xmr-stak;
     inherit urlwatch;
-    inherit pass;
     inherit ranger;
-    inherit profanity;
-    inherit weechat;
+    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;
+    inherit lftp;
+    stgit = gitAndTools.stgit;
+    inherit bundix;
+    bower2nix = nodePackages.bower2nix;
+    # todo: unrar, unzip
     #inherit nixos;
   }