about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/next/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/browsers/next/default.nix')
-rw-r--r--pkgs/applications/networking/browsers/next/default.nix80
1 files changed, 80 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/next/default.nix b/pkgs/applications/networking/browsers/next/default.nix
new file mode 100644
index 000000000000..2b2e173342c5
--- /dev/null
+++ b/pkgs/applications/networking/browsers/next/default.nix
@@ -0,0 +1,80 @@
+{ pkgs, stdenv, fetchFromGitHub
+, gcc7, pkg-config, makeWrapper
+, glib-networking
+, next-gtk-webkit
+, lispPackages
+, sbcl
+}:
+
+stdenv.mkDerivation rec {
+    pname = "next";
+    version = "1.3.1";
+
+    src = fetchFromGitHub {
+      owner = "atlas-engineer";
+      repo = "next";
+      rev = version;
+      sha256 = "01fn1f080ydk0wj1bwkyakqz93bdq9xb5x8qz820jpl9id17bqgj";
+    };
+
+    # Stripping destroys the generated SBCL image
+    dontStrip = true;
+
+    prePatch = ''
+      substituteInPlace source/ports/gtk-webkit.lisp \
+        --replace "next-gtk-webkit" "${next-gtk-webkit}/bin/next-gtk-webkit"
+    '';
+
+    nativeBuildInputs = [ sbcl makeWrapper ];
+    buildInputs = with lispPackages; [
+      trivial-features
+      trivial-garbage
+      alexandria
+      bordeaux-threads
+      cl-json
+      cl-markup
+      cl-ppcre
+      cl-ppcre-unicode
+      closer-mop
+      dexador
+      ironclad
+      lparallel
+      parenscript
+      quri
+      cl-css
+      log4cl
+      mk-string-metrics
+      sqlite
+      str
+      swank
+      trivia
+      trivial-clipboard
+      unix-opts
+      dbus
+    ];
+    propagatedBuildInputs = [ next-gtk-webkit ];
+
+    buildPhase = ''
+      common-lisp.sh --eval "(require :asdf)" \
+                     --eval "(asdf:load-asd (truename \"next.asd\") :name \"next\")" \
+                     --eval '(asdf:make :next)' \
+                     --quit
+    '';
+
+    installPhase = ''
+      install -D -m0755 next $out/bin/next
+    '';
+
+    preFixup = ''
+      wrapProgram $out/bin/next \
+        --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Infinitely extensible web-browser (with Lisp development files)";
+      homepage = https://next.atlas.engineer;
+      license = licenses.bsd3;
+      maintainers = [ maintainers.lewo ];
+      platforms = [ "x86_64-linux" ];
+    };
+  }