guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

16/17: gnu: netsurf: Use unbundled source.


From: Eric Bavier
Subject: 16/17: gnu: netsurf: Use unbundled source.
Date: Mon, 13 Feb 2017 23:37:18 -0500 (EST)

bavier pushed a commit to branch master
in repository guix.

commit 710806b57b07500e1060fd32c1719b8ce8efbbe7
Author: Eric Bavier <address@hidden>
Date:   Sun Feb 12 12:52:21 2017 -0600

    gnu: netsurf: Use unbundled source.
    
    * gnu/packages/patches/netsurf-system-utf8proc.patch: New patch.
    * gnu/local.mk (dist_patch_DATA): Add it.
    * gnu/packages/web.scm (netsurf)[source]: Use it.  Change to unbundled 
source
    tarball.
    [native-inputs]: Add netsurf-buildsystem, nsgenbind.  Remove flex, bison.
    [inputs]: Add utf8proc, libcss, libdom, libnsbmp, libnsgif, libnspsl,
    libnsutils, libsvgtiny.  Remove expat, gperf.
    [arguments]: Adjust #:make-flags for netsurf-buildsystem.  Delete configure
    phase.  Adjust source directories.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/patches/netsurf-system-utf8proc.patch | 64 ++++++++++++++++++++++
 gnu/packages/web.scm                               | 54 +++++++++---------
 3 files changed, 93 insertions(+), 26 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 20fe3a2..0e79b67 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -772,6 +772,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/net-tools-bitrot.patch                  \
   %D%/packages/patches/netcdf-date-time.patch                  \
   %D%/packages/patches/netcdf-tst_h_par.patch                  \
+  %D%/packages/patches/netsurf-system-utf8proc.patch           \
   %D%/packages/patches/ngircd-handle-zombies.patch             \
   %D%/packages/patches/ngircd-no-dns-in-tests.patch            \
   %D%/packages/patches/ninja-tests.patch                       \
diff --git a/gnu/packages/patches/netsurf-system-utf8proc.patch 
b/gnu/packages/patches/netsurf-system-utf8proc.patch
new file mode 100644
index 0000000..254bf52
--- /dev/null
+++ b/gnu/packages/patches/netsurf-system-utf8proc.patch
@@ -0,0 +1,64 @@
+Use upstream utf8proc package, as suggested in
+http://source.netsurf-browser.org/libutf8proc.git/commit/?id=770e329cceaf0620c7b482589a9b17ed1d19c16d
+
+Work around upstream's lack of a pkg-config file and update API.
+
+--- netsurf-3.6/Makefile
++++ netsurf-3.6/Makefile
+@@ -527,10 +527,9 @@
+ $(eval $(call pkg_config_find_and_add,libcss,CSS))
+ $(eval $(call pkg_config_find_and_add,libdom,DOM))
+ $(eval $(call pkg_config_find_and_add,libnsutils,nsutils))
+-$(eval $(call pkg_config_find_and_add,libutf8proc,utf8proc))
+ 
+ # Common libraries without pkg-config support
+-LDFLAGS += -lz
++LDFLAGS += -lz -lutf8proc
+ 
+ # Optional libraries with pkgconfig
+ 
+--- netsurf-3.6/utils/idna.c
++++ netsurf-3.6/utils/idna.c
+@@ -26,7 +26,7 @@
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <libutf8proc/utf8proc.h>
++#include <utf8proc.h>
+ 
+ #include "utils/errors.h"
+ #include "utils/idna.h"
+@@ -250,7 +250,7 @@
+               return NSERROR_NOMEM;
+       }
+ 
+-      nfc_size = utf8proc_normalise(nfc_label, nfc_size,
++      nfc_size = utf8proc_normalize_utf32(nfc_label, nfc_size,
+               UTF8PROC_STABLE | UTF8PROC_COMPOSE);
+       if (nfc_size < 0) {
+               return NSERROR_NOMEM;
+@@ -565,7 +565,7 @@
+       }
+ 
+       /* Perform NFC normalisation */
+-      ucs4_len = utf8proc_normalise(ucs4, u_ucs4_len,
++      ucs4_len = utf8proc_normalize_utf32(ucs4, u_ucs4_len,
+               UTF8PROC_STABLE | UTF8PROC_COMPOSE);
+       if (ucs4_len < 0) {
+               free(ucs4);
+--- netsurf-3.6/test/Makefile
++++ netsurf-3.6/test/Makefile
+@@ -112,11 +112,11 @@
+               -D_XOPEN_SOURCE=600 \
+               -Itest -Iinclude -Icontent/handlers -Ifrontends -I. -I.. \
+               -Dnsgtk \
+-              $(shell pkg-config --cflags libcurl libparserutils libwapcaplet 
libdom libnsutils libutf8proc libidn) \
++              $(shell pkg-config --cflags libcurl libparserutils libwapcaplet 
libdom libnsutils libidn) \
+               $(LIB_CFLAGS) \
+               $(COV_CFLAGS)
+ 
+-TESTLDFLAGS := $(shell pkg-config --libs libcurl libparserutils libwapcaplet 
libdom libnsutils libutf8proc libidn) -lz \
++TESTLDFLAGS := $(shell pkg-config --libs libcurl libparserutils libwapcaplet 
libdom libnsutils libidn) -lz -lutf8proc \
+               $(LIB_LDFLAGS)\
+               $(COV_LDFLAGS)
+ 
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 7d8cd29..1584b93 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4071,32 +4071,41 @@ w3c webidl files and a binding configuration file.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://download.netsurf-browser.org/";
-                           "netsurf/releases/source-full/netsurf-all-"
-                           version ".tar.gz"))
+       (uri (string-append "http://download.netsurf-browser.org/netsurf/";
+                           "releases/source/netsurf-" version "-src.tar.gz"))
        (sha256
         (base32
-         "1cgq9n4nvkpih93sfpdadv3666ycsx9bnp8kwalbs8h232mr7ppx"))))
+         "174sjx0566agckwmlj4w2cip5qbxdiafyhlp185a1qprxx84pbjr"))
+       (patches (search-patches "netsurf-system-utf8proc.patch"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("netsurf-buildsystem" ,netsurf-buildsystem)
+       ("nsgenbind" ,nsgenbind)
        ("perl" ,perl)
        ("perl-html-parser" ,perl-html-parser)
-       ("flex" ,flex)
-       ("bison" ,bison)))
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("gperf" ,gperf)
-       ("curl" ,curl)
+     `(("curl" ,curl)
+       ("gtk+" ,gtk+-2)
        ("openssl" ,openssl)
+       ("utf8proc" ,utf8proc)
        ("libpng" ,libpng)
        ("libjpeg" ,libjpeg)
-       ("expat" ,expat)))
+       ("libcss" ,libcss)
+       ("libdom" ,libdom)
+       ("libnsbmp" ,libnsbmp)
+       ("libnsgif" ,libnsgif)
+       ("libnspsl" ,libnspsl)
+       ("libnsutils" ,libnsutils)
+       ("libsvgtiny" ,libsvgtiny)))
     (arguments
      `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
-                      ,(string-append "PREFIX=" %output))
-       #:parallel-build? #f         ;parallel builds not supported
-       #:tests? #f                  ;no way to easily run from release tarball
+                      ,(string-append "PREFIX=" %output)
+                      ,(string-append "NSSHARED="
+                                      (assoc-ref %build-inputs
+                                                 "netsurf-buildsystem")
+                                      "/share/netsurf-buildsystem"))
+       #:tests? #f
        #:modules ((ice-9 rdelim)
                   (ice-9 match)
                   (srfi srfi-1)
@@ -4104,18 +4113,11 @@ w3c webidl files and a binding configuration file.")
                   ,@%glib-or-gtk-build-system-modules)
        #:phases
        (modify-phases %standard-phases
-         (replace 'configure
-           (lambda _
-             (call-with-output-file "netsurf/Makefile.config"
-               (lambda (port)
-                 (format port "~
-                         NETSURF_GTK_RESOURCES := $(PREFIX)/share/netsurf/~@
-                         ")))
-             #t))
+         (delete 'configure)
          (add-after 'build 'adjust-welcome
            (lambda _
              ;; First, fix some unended tags and simple substitutions
-             (substitute* "netsurf/frontends/gtk/res/welcome.html"
+             (substitute* "frontends/gtk/res/welcome.html"
                (("<(img|input)([^>]*)>" _ tag contents)
                 (string-append "<" tag contents " />"))
                (("Licence") "License") ;prefer GNU spelling
@@ -4126,7 +4128,7 @@ w3c webidl files and a binding configuration file.")
                (("Google Search") "DuckDuckGo Search")
                (("name=\"btnG\"") ""))
              ;; Remove default links so it doesn't seem we're endorsing them
-             (with-atomic-file-replacement 
"netsurf/frontends/gtk/res/welcome.html"
+             (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
                (lambda (in out)
                  ;; Leave the DOCTYPE header as is
                  (display (read-line in 'concat) out)
@@ -4148,13 +4150,13 @@ w3c webidl files and a binding configuration file.")
                     (desktop (string-append out "/share/applications/"
                                             "netsurf.desktop")))
                (mkdir-p (dirname desktop))
-               (copy-file "netsurf/frontends/gtk/res/netsurf-gtk.desktop"
+               (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
                           desktop)
                (substitute* desktop
                  (("netsurf-gtk") (string-append out "/bin/netsurf"))
                  (("netsurf.png") (string-append out "/share/netsurf/"
                                                  "netsurf.xpm")))
-               (install-file "netsurf/Docs/netsurf-gtk.1"
+               (install-file "Docs/netsurf-gtk.1"
                              (string-append out "/share/man/man1/"))
                #t))))))
     (home-page "http://www.netsurf-browser.org";)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]