]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - default.nix
Upgrade syden peertube to flake
[perso/Immae/Config/Nix.git] / default.nix
index 9f14e5a33ce47a347e190ce38fec8731f886e2ec..1f43cdd93883294eb3e4b67df4a1d66b7b98fd72 100644 (file)
-with import <nixpkgs> {};
+{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs {} }:
 let
-  mypkgs = {};
-  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 = (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 = 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 ];
-  });
-
-  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
-  #     '';
-  # });
-
-  mastodon = stdenv.mkDerivation (fetchedGithub ./fetched/mastodon.json // rec {
-    buildPhase = ''
-      export GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt
-      export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
-
-      bundle install --deployment --without development test
-      yarn install --pure-lockfile
-    '';
-    installPhase = ''
-      cp -a . $out
-    '';
-    propagatedBuildInputs = [
-      zlib icu libchardet git bundler yarn
-      protobuf protobufc libidn libpqxx nodejs
-      imagemagick ffmpeg libxml2 libxslt pkgconfig
-      autoconf bison libyaml readline ncurses libffi gdbm
-      jemalloc which postgresql python3
-    ];
-  });
-# 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 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;
-    inherit mtr;
-    #inherit mastodon;
-    # todo: lx* ?, unrar, unzip, zeromq?
-    #inherit nextcloud-client;
-    #inherit nixos;
-  }
+{
+  lib = pkgs.callPackage ./lib {};
+  modules = import ./modules;
+  overlays = import ./overlays;
+  pkgs = mypkgs;
+  environments = pkgs.callPackage ./environments {};
+} // mypkgs