aboutsummaryrefslogblamecommitdiff
path: root/default.nix
blob: f509385d8c0d2fc77c4badc17785e53e39b16781 (plain) (tree)
1
2
3
4

                         
              
                                














                                        








                                            








                                            
                                                                                      




                                            
                                                                    
                                      








                                                                                                          
                                                                                               
                                         
                                                                                         


     
                                                                 
                                            




                                                                                   
                                                      





                                                                           
                                                                 

     
                                                                                       


                                      
                                                                                           
                                       
                                                                      

     
 
                                                  


                                       

                                                                  

     
                                             







                                                                      
                                                                                     
                                      





                                                                      
                                                   








                                                                                              
                                                                               
















                                                                      
 
                                      





















                                                                                                      
                                     
















                                                                              
                                                                                     



















                                                         
                                                                                                       
 
                                                                                                                      

                                                
 
                                                                                       














                                                                                            
                                                                                                           


                                                                                    

                                                                           
  
             
                                 
                                   
                        
                  









                            
                   
                  


                             











                            


                        

                                        
                   
   
with import <nixpkgs> {};
let
  mypkgs = {};
  nixpkgs = import <nixpkgs> {};
  postHook =  ''
    header() {
      echo -ne "\033[1;36m"
      echo -n "$1"
      echo -e "\033[0m"
    }

    echoCmd() {
      printf "\033[1;34m%s:\033[0m" "$1"
      shift
      printf ' %q' "$@"
      echo
    }
  '';

  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;
    };

  mypkgs.ledger = (nixpkgs.ledger.override { boost = boost166; }).overrideAttrs (_old:
    fetchedGithub ./fetched/ledger.json // {
      postInstall = "";
    }
  );

  mypkgs.taskwarrior = nixpkgs.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 = (nixpkgs.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 = nixpkgs.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 = nixpkgs.ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);

  nixos = import ./nixos_tools.nix {};

  mypkgs.pass = (nixpkgs.pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
    fetchedGit ./fetched/pass.json // {
      patches = old.patches ++ [ ./patches/pass-fix-pass-init.patch ];
    }
  );

  mypkgs.profanity = (nixpkgs.profanity.override {
    notifySupport = true;
    inherit libnotify gpgme gdk_pixbuf;
    python = python3;
  }).overrideAttrs (old: rec {
    configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
  });

  mypkgs.weechat = nixpkgs.weechat.override {
    configure = { availablePlugins, ... }: {
      plugins = with availablePlugins; [
         (python.withPackages (ps: with ps; [websocket_client emoji]))
         perl
        ];
    };
  };

  buildPerlPackage = callPackage <nixpkgs/pkgs/development/perl-modules/generic> { };
  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"];
    propragatedBuildInputs = [ 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 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 ];
  });

# 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 nix-generate-from-cpan;
    inherit timewarrior;
    inherit sc-im;
    inherit pal;
    inherit duplicity duply;
    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;
    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;
    # todo: lx* ?, unrar, unzip, zeromq?
    #inherit nextcloud-client;
    #inherit nixos;
  }