]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - default.nix
Use more up to date version of yarn2nix
[perso/Immae/Config/Nix.git] / default.nix
index d8280272a0a5499b2040de76118c3a134dc36720..d003e908fe21301c13a13c674bee07909e1ab4dc 100644 (file)
@@ -1,23 +1,16 @@
+with import ./libs.nix;
 with import <nixpkgs> {};
 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;
-    };
+  mypkgs = {};
 
-  ledger = (nixpkgs.ledger.override { boost = boost166; }).overrideAttrs (oldAttrs:
+  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/"
@@ -27,43 +20,358 @@ 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 ""}
+  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
     '';
   });
 
-  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" ];
+  });
+
+  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
+        ];
+    };
+  };
+
+  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 ];
+
+    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
+      '';
   });
 
-  ldapvi = nixpkgs.ldapvi.overrideAttrs (oldAttrs: rec {
-    name = "ldapvi-${version}";
-    version = "f1d42ba-master";
-    src = fetchgit (lib.importJSON ./ldapvi.json);
+  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 ];
   });
 
-  #weechat = callPackage nixpkgs.weechat { guileSupport = false; luaSupport = false; rubySupport = false; tclSupport = false; };
+  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|"
+
+      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;
+# 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 nix-generate-from-cpan;
+    inherit timewarrior;
     inherit sc-im;
-    inherit ldapvi;
-  }
+    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;
+    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;
+    stgit = gitAndTools.stgit;
+    inherit bundix;
+    bower2nix = nodePackages.bower2nix;
+  })