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,11 +1,18 @@
{ pkgs, stdenv, fetchFromGitHub
, gcc7, pkg-config, makeWrapper
, glib-networking
, next-gtk-webkit
{ 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";
@ -17,17 +24,12 @@ stdenv.mkDerivation rec {
sha256 = "00iqv4xarabl98gdl1rzqkc5v0vfljx1nawsxqsx9x3a9mnxmgxi";
};
# 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 ] ++ (with lispPackages;
[ prove-asdf trivial-features ]);
nativeBuildInputs = [
sbcl
] ++ (with lispPackages; [
prove-asdf
trivial-features
]);
buildInputs = with lispPackages; [
alexandria
@ -58,7 +60,11 @@ stdenv.mkDerivation rec {
trivial-clipboard
unix-opts
];
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)" \
@ -71,13 +77,11 @@ stdenv.mkDerivation rec {
install -D -m0755 next $out/bin/next
'';
preFixup = ''
wrapProgram $out/bin/next \
--prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules"
'';
# Stripping destroys the generated SBCL image
dontStrip = true;
meta = with stdenv.lib; {
description = "Infinitely extensible web-browser (with Lisp development files)";
description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
homepage = https://next.atlas.engineer;
license = licenses.bsd3;
maintainers = [ maintainers.lewo ];

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-gtk-webkit = callPackage ../applications/networking/browsers/next-gtk-webkit { };
nfpm = callPackage ../tools/package-management/nfpm { };
nginx-config-formatter = callPackage ../tools/misc/nginx-config-formatter { };