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
This commit is contained in:
worldofpeace 2019-11-26 08:25:12 -05:00
parent e716e86bed
commit 417d6354c8
4 changed files with 127 additions and 100 deletions

View File

@ -1,25 +0,0 @@
{ stdenv, gcc7, pkg-config
, next
, webkitgtk, gsettings-desktop-schemas
}:
stdenv.mkDerivation rec {
pname = "next-gtk-webkit";
inherit (next) src version;
makeFlags = [ "gtk-webkit" "PREFIX=$(out)" ];
installTargets = "install-gtk-webkit";
nativeBuildInputs = [ gcc7 pkg-config ];
buildInputs = [
webkitgtk
gsettings-desktop-schemas
];
meta = with stdenv.lib; {
description = "Infinitely extensible web-browser (user interface only)";
homepage = https://next.atlas.engineer;
license = licenses.bsd3;
maintainers = [ maintainers.lewo ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -1,86 +1,90 @@
{ pkgs, stdenv, fetchFromGitHub { stdenv
, gcc7, pkg-config, makeWrapper , fetchFromGitHub
, glib-networking
, next-gtk-webkit
, lispPackages , lispPackages
, sbcl , 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 { stdenv.mkDerivation rec {
pname = "next"; pname = "next";
version = "1.3.4"; version = "1.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "atlas-engineer"; owner = "atlas-engineer";
repo = "next"; repo = "next";
rev = version; rev = version;
sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi"; sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi";
}; };
# Stripping destroys the generated SBCL image nativeBuildInputs = [
dontStrip = true; sbcl
] ++ (with lispPackages; [
prove-asdf
trivial-features
]);
prePatch = '' buildInputs = with lispPackages; [
substituteInPlace source/ports/gtk-webkit.lisp \ alexandria
--replace "next-gtk-webkit" "${next-gtk-webkit}/bin/next-gtk-webkit" 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
];
nativeBuildInputs = prePatch = ''
[ sbcl makeWrapper ] ++ (with lispPackages; substituteInPlace source/ports/gtk-webkit.lisp \
[ prove-asdf trivial-features ]); --replace "next-gtk-webkit" "${next-gtk-webkit}/bin/next-gtk-webkit"
'';
buildInputs = with lispPackages; [ buildPhase = ''
alexandria common-lisp.sh --eval "(require :asdf)" \
bordeaux-threads --eval "(asdf:load-asd (truename \"next.asd\") :name \"next\")" \
cl-annot --eval '(asdf:make :next)' \
cl-ansi-text --quit
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
];
propagatedBuildInputs = [ next-gtk-webkit ];
buildPhase = '' installPhase = ''
common-lisp.sh --eval "(require :asdf)" \ install -D -m0755 next $out/bin/next
--eval "(asdf:load-asd (truename \"next.asd\") :name \"next\")" \ '';
--eval '(asdf:make :next)' \
--quit
'';
installPhase = '' # Stripping destroys the generated SBCL image
install -D -m0755 next $out/bin/next dontStrip = true;
'';
preFixup = '' meta = with stdenv.lib; {
wrapProgram $out/bin/next \ description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
--prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" homepage = https://next.atlas.engineer;
''; license = licenses.bsd3;
maintainers = [ maintainers.lewo ];
meta = with stdenv.lib; { platforms = [ "x86_64-linux" ];
description = "Infinitely extensible web-browser (with Lisp development files)"; };
homepage = https://next.atlas.engineer; }
license = licenses.bsd3;
maintainers = [ maintainers.lewo ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -0,0 +1,50 @@
# https://github.com/atlas-engineer/next/tree/master/ports/gtk-webkit
{ stdenv
, pkg-config
, next
, webkitgtk
, gtk3
, glib
, gsettings-desktop-schemas
, glib-networking
, gst_all_1
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "next-gtk-webkit";
inherit (next) src version;
nativeBuildInputs = [
pkg-config
wrapGAppsHook
];
buildInputs = [
glib
glib-networking
gsettings-desktop-schemas
gtk3
webkitgtk
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
];
makeFlags = [
"gtk-webkit"
"PREFIX=${placeholder "out"}"
];
installTargets = [
"install-gtk-webkit"
];
meta = with stdenv.lib; {
description = "Infinitely extensible web-browser (user interface only)";
homepage = https://next.atlas.engineer;
license = licenses.bsd3;
maintainers = [ maintainers.lewo ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -4559,8 +4559,6 @@ in
next = callPackage ../applications/networking/browsers/next { }; next = callPackage ../applications/networking/browsers/next { };
next-gtk-webkit = callPackage ../applications/networking/browsers/next-gtk-webkit { };
nfpm = callPackage ../tools/package-management/nfpm { }; nfpm = callPackage ../tools/package-management/nfpm { };
nginx-config-formatter = callPackage ../tools/misc/nginx-config-formatter { }; nginx-config-formatter = callPackage ../tools/misc/nginx-config-formatter { };