nixpkgs/pkgs/applications/networking/browsers/next/default.nix
worldofpeace 417d6354c8 next: Fix #74258
Next had a few issues with its packaging:
* the platform port was exposed in all-packages
  And this is not useful for outside users.
  It's now a local attribute in the next package.

* the platform port wasn't wrapped correctly
  It appears that the lisp core was being wrapped,
  when instead the actual gtk application that's
  called within the lisp core had to be wrapped.

* codestyle/indentation
2019-11-26 11:41:50 -05:00

90 lines
1.8 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.3.4";
src = fetchFromGitHub {
owner = "atlas-engineer";
repo = "next";
rev = version;
sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi";
};
nativeBuildInputs = [
sbcl
] ++ (with lispPackages; [
prove-asdf
trivial-features
]);
buildInputs = with lispPackages; [
alexandria
bordeaux-threads
cl-annot
cl-ansi-text
cl-css
cl-hooks
cl-json
cl-markup
cl-ppcre
cl-ppcre-unicode
cl-prevalence
closer-mop
dbus
dexador
ironclad
local-time
log4cl
lparallel
mk-string-metrics
parenscript
quri
sqlite
str
swank
trivia
trivial-clipboard
unix-opts
];
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" ];
};
}