Subject: [bug#30329] [PATCH] gnu: emacs: Build with xwidgets support.

From: Alex Vong <[email-masked]>
Date: Sat, 03 Feb 2018 05:48:12 +0800

Hi,

This patch adds xwidgets support to Emcas. So Emacs can now display GTK
widgets. In particular, it can display webpages using webkitgtk.

Also, I use webkitgtk-2.4 instead of webkitgtk, because xwidgets
requires libwebkitgtk-3.0 instead of libwebkitgtk-4.0 to
build.

Moroever, the size of the closure of Emacs increases from 880.2 MiB -->
1232.4 MiB after adding the inputs.

>From ae89b2e42689d2ae54d5785238daa5800ad94241 Mon Sep 17 00:00:00 2001
From: Alex Vong <[email-masked]>
Date: Sat, 3 Feb 2018 05:05:17 +0800
Subject: [PATCH] gnu: emacs: Build with xwidgets support.

* gnu/packages/emacs.scm (emacs) [arguments]: Add '--with-xwidgets'
to #:configure-flags.
[inputs]: Add glib-networking, gsettings-desktop-schemas, libxcomposite,
webkitgtk-2.4.
---
 gnu/packages/emacs.scm | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 9be92edc1..a56aec440 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016, 2017 ng0 <[email-masked]>
 ;;; Copyright © 2016 Alex Griffin <[email-masked]>
 ;;; Copyright © 2016, 2017 Nicolas Goaziou <[email-masked]>
-;;; Copyright © 2016, 2017 Alex Vong <[email-masked]>
+;;; Copyright © 2016, 2017, 2018 Alex Vong <[email-masked]>
 ;;; Copyright © 2016, 2017, 2018 Arun Isaac <[email-masked]>
 ;;; Copyright © 2017 Christopher Baines <[email-masked]>
 ;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
@@ -81,6 +81,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages w3m)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages wget)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -151,7 +152,9 @@
                      " ")))))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       '("--with-xwidgets")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-/bin/pwd
            (lambda _
@@ -204,7 +207,13 @@
 
        ;; multilingualization support
        ("libotf" ,libotf)
-       ("m17n-lib" ,m17n-lib)))
+       ("m17n-lib" ,m17n-lib)
+
+       ;; xwidgets support
+       ("glib-networking" ,glib-networking) ; required for browsing https pages
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libxcomposite" ,libxcomposite)
+       ("webkitgtk" ,webkitgtk-2.4))) ; libwebkitgtk-3.0 is required
     (native-inputs
      `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
        ("pkg-config" ,pkg-config)
-- 
2.16.1

Cheers,
Alex