]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - default.nix
Move nixpkgs import to libs
[perso/Immae/Config/Nix.git] / default.nix
index f509385d8c0d2fc77c4badc17785e53e39b16781..c32d23f569e6ed47d3058c435958f8ac79c46fd1 100644 (file)
@@ -1,7 +1,8 @@
-with import <nixpkgs> {};
+with import ./libs.nix;
+with nixpkgs_unstable;
 let
+  stable_nixpkgs = import <nixpkgs> {};
   mypkgs = {};
-  nixpkgs = import <nixpkgs> {};
   postHook =  ''
     header() {
       echo -ne "\033[1;36m"
@@ -17,31 +18,13 @@ let
     }
   '';
 
-  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:
+  mypkgs.ledger = (ledger.override { boost = boost166; }).overrideAttrs (_old:
     fetchedGithub ./fetched/ledger.json // {
       postInstall = "";
     }
   );
 
-  mypkgs.taskwarrior = nixpkgs.taskwarrior.overrideAttrs (old: rec {
+  mypkgs.taskwarrior = taskwarrior.overrideAttrs (old: rec {
     postInstall = ''${old.postInstall}
       mkdir -p "$out/share/vim/vimfiles/ftdetect"
       mkdir -p "$out/share/vim/vimfiles/syntax"
@@ -52,7 +35,7 @@ let
     '';
   });
 
-  mypkgs.vit = (nixpkgs.vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
+  mypkgs.vit = (vit.override { taskwarrior = mypkgs.taskwarrior; }).overrideAttrs (old:
     fetchedGithub ./fetched/vit.json // {
       buildInputs = old.buildInputs ++ [perlPackages.TryTiny perlPackages.TextCharWidth];
     }
@@ -65,7 +48,7 @@ let
     '';
   });
 
-  mypkgs.slrn = nixpkgs.slrn.overrideAttrs (old: rec {
+  mypkgs.slrn = slrn.overrideAttrs (old: rec {
     version = "1.0.3a";
     name = "slrn-${version}";
     src = fetchurl {
@@ -75,17 +58,17 @@ let
     configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
   });
 
-  mypkgs.ldapvi = nixpkgs.ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
+  mypkgs.ldapvi = ldapvi.overrideAttrs (old: fetchedGit ./fetched/ldapvi.json);
 
   nixos = import ./nixos_tools.nix {};
 
-  mypkgs.pass = (nixpkgs.pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
+  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 = (nixpkgs.profanity.override {
+  mypkgs.profanity = (profanity.override {
     notifySupport = true;
     inherit libnotify gpgme gdk_pixbuf;
     python = python3;
@@ -93,7 +76,7 @@ let
     configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
   });
 
-  mypkgs.weechat = nixpkgs.weechat.override {
+  mypkgs.weechat = weechat.override {
     configure = { availablePlugins, ... }: {
       plugins = with availablePlugins; [
          (python.withPackages (ps: with ps; [websocket_client emoji]))
@@ -102,7 +85,7 @@ let
     };
   };
 
-  buildPerlPackage = callPackage <nixpkgs/pkgs/development/perl-modules/generic> { };
+  buildPerlPackage = perlPackages.buildPerlPackage;
   mypkgs.note = buildPerlPackage rec {
     name = "note-1.3.26";
     src = fetchurl {
@@ -227,6 +210,57 @@ let
     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
 in
@@ -265,6 +299,9 @@ in
     inherit iotop iperf;
     inherit keybase;
     inherit bogofilter;
+    inherit mtr;
+    inherit nixops;
+    #inherit mastodon;
     # todo: lx* ?, unrar, unzip, zeromq?
     #inherit nextcloud-client;
     #inherit nixos;