95 lines
2 KiB
Nix
95 lines
2 KiB
Nix
{ stdenv
|
|
, fetchFromGitHub
|
|
, lispPackages
|
|
, sbcl
|
|
, callPackage
|
|
}:
|
|
|
|
let
|
|
|
|
# This is the wrapped webkitgtk platform port that we hardcode into the Lisp Core.
|
|
# See https://github.com/atlas-engineer/next/tree/master/ports#next-platform-ports
|
|
next-gtk-webkit = callPackage ./next-gtk-webkit.nix {};
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "next";
|
|
version = "1.5.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "atlas-engineer";
|
|
repo = "next";
|
|
rev = version;
|
|
sha256 = "1gqkp185wcwaxr8py90hqk44nqjblrrdwvig19gizrbzr2gx2zhy";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
sbcl
|
|
] ++ (with lispPackages; [
|
|
prove-asdf
|
|
trivial-features
|
|
]);
|
|
|
|
buildInputs = with lispPackages; [
|
|
alexandria
|
|
bordeaux-threads
|
|
cl-annot
|
|
cl-ansi-text
|
|
cl-css
|
|
cl-json
|
|
cl-markup
|
|
cl-ppcre
|
|
cl-ppcre-unicode
|
|
cl-prevalence
|
|
closer-mop
|
|
dbus
|
|
dexador
|
|
ironclad
|
|
local-time
|
|
log4cl
|
|
lparallel
|
|
mk-string-metrics
|
|
parenscript
|
|
plump
|
|
quri
|
|
serapeum
|
|
sqlite
|
|
str
|
|
swank
|
|
trivia
|
|
trivial-clipboard
|
|
trivial-types
|
|
unix-opts
|
|
];
|
|
|
|
# This reference is unfortunately not detected by Nix
|
|
propagatedBuildInputs = [ next-gtk-webkit ];
|
|
|
|
prePatch = ''
|
|
substituteInPlace source/ports/gtk-webkit.lisp \
|
|
--replace "next-gtk-webkit" "${next-gtk-webkit}/bin/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
|
|
'';
|
|
|
|
# Stripping destroys the generated SBCL image
|
|
dontStrip = true;
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
|
|
homepage = "https://next.atlas.engineer";
|
|
license = licenses.bsd3;
|
|
maintainers = [ maintainers.lewo ];
|
|
platforms = [ "x86_64-linux" ];
|
|
};
|
|
}
|