From fb4e799d8848640724117bb61c33fad8a5c7e195 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Sat, 12 Nov 2022 09:02:44 -0700
Subject: [PATCH] Update netsurf and enable duktape for javascript

---
 recipes/netsurf/01_redox.patch | 106 ++++++++++++++++-----------------
 recipes/netsurf/recipe.sh      |   7 +--
 2 files changed, 56 insertions(+), 57 deletions(-)

diff --git a/recipes/netsurf/01_redox.patch b/recipes/netsurf/01_redox.patch
index 751ae2df3..521cc7680 100644
--- a/recipes/netsurf/01_redox.patch
+++ b/recipes/netsurf/01_redox.patch
@@ -1,6 +1,26 @@
+diff -ruwN source/buildsystem/makefiles/Makefile.top source-new/buildsystem/makefiles/Makefile.top
+--- source/buildsystem/makefiles/Makefile.top	2020-05-24 15:35:19.000000000 -0600
++++ source-new/buildsystem/makefiles/Makefile.top	2022-11-12 08:54:26.232793713 -0700
+@@ -407,12 +407,16 @@
+ 	$(Q)$(AR) $(ARFLAGS) $@ $(OBJECTS)
+ else
+ 	$(VQ)$(ECHO) $(ECHOFLAGS) "    LINK: $@"
++  ifeq ($(COMPONENT_FOR_BUILD),yes)
++	$(Q)$(BUILD_CC) -o $@ $(OBJECTS) $(LDFLAGS) $(SHAREDLDFLAGS)
++  else
+   ifeq ($(CXX_IN_BUILD),yes)
+ 	$(Q)$(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(SHAREDLDFLAGS)
+   else
+ 	$(Q)$(CC) -o $@ $(OBJECTS) $(LDFLAGS) $(SHAREDLDFLAGS)
+   endif
+ endif
++endif
+ 
+ ###############################################################################
+ # Autogenerated, implied rules
 diff -ruwN source/libnsfb/Makefile source-new/libnsfb/Makefile
---- source/libnsfb/Makefile	2017-10-16 04:09:35.000000000 -0600
-+++ source-new/libnsfb/Makefile	2018-12-29 08:29:56.855249826 -0700
+--- source/libnsfb/Makefile	2020-05-24 15:35:21.000000000 -0600
++++ source-new/libnsfb/Makefile	2022-11-12 08:53:23.376764307 -0700
 @@ -43,10 +43,10 @@
  NSFB_XCB_PKG_NAMES := xcb xcb-icccm xcb-image xcb-keysyms xcb-atom
  
@@ -13,13 +33,13 @@ diff -ruwN source/libnsfb/Makefile source-new/libnsfb/Makefile
 +#$(eval $(call pkg_config_package_available,NSFB_XCB_AVAILABLE,$(NSFB_XCB_PKG_NAMES)))
 +#$(eval $(call pkg_config_package_available,NSFB_WLD_AVAILABLE,wayland-client))
  
- # surfaces not detectable via pkg-config 
- NSFB_ABLE_AVAILABLE := no
+ # Flags and setup for each support library
+ ifeq ($(NSFB_SDL_AVAILABLE),yes)
 diff -ruwN source/libnsfb/src/plot.h source-new/libnsfb/src/plot.h
---- source/libnsfb/src/plot.h	2017-10-16 04:09:35.000000000 -0600
-+++ source-new/libnsfb/src/plot.h	2018-12-29 08:29:56.855249826 -0700
-@@ -36,7 +36,7 @@
-         #define NSFB_BE_BYTE_ORDER
+--- source/libnsfb/src/plot.h	2020-05-24 15:35:21.000000000 -0600
++++ source-new/libnsfb/src/plot.h	2022-11-12 08:53:23.376764307 -0700
+@@ -46,7 +46,7 @@
+         #error "Endian determination failed"
      #endif
  #else
 -    #include <endian.h>
@@ -27,23 +47,9 @@ diff -ruwN source/libnsfb/src/plot.h source-new/libnsfb/src/plot.h
      #if defined(__BYTE_ORDER__)
          #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
              #define NSFB_BE_BYTE_ORDER
-diff -ruwN source/netsurf/frontends/framebuffer/Makefile source-new/netsurf/frontends/framebuffer/Makefile
---- source/netsurf/frontends/framebuffer/Makefile	2017-10-16 04:09:36.000000000 -0600
-+++ source-new/netsurf/frontends/framebuffer/Makefile	2018-12-29 08:29:56.855249826 -0700
-@@ -35,8 +35,8 @@
- 
- # freetype is optional but does not use pkg-config
- ifeq ($(NETSURF_FB_FONTLIB),freetype)
--  CFLAGS += -DFB_USE_FREETYPE $(shell freetype-config --cflags)
--  LDFLAGS += $(shell freetype-config --libs)
-+  CFLAGS += -DFB_USE_FREETYPE $(shell $(PKG_CONFIG) --cflags freetype2)
-+  LDFLAGS += $(shell $(PKG_CONFIG) --libs freetype2)
- endif
- 
- 
 diff -ruwN source/netsurf/Makefile.config source-new/netsurf/Makefile.config
 --- source/netsurf/Makefile.config	1969-12-31 17:00:00.000000000 -0700
-+++ source-new/netsurf/Makefile.config	2018-12-29 08:29:56.855249826 -0700
++++ source-new/netsurf/Makefile.config	2022-11-12 08:53:23.376764307 -0700
 @@ -0,0 +1,28 @@
 +override NETSURF_HOMEPAGE := "https://www.redox-os.org/"
 +override NETSURF_FB_FRONTEND := sdl
@@ -57,7 +63,7 @@ diff -ruwN source/netsurf/Makefile.config source-new/netsurf/Makefile.config
 +override NETSURF_USE_LIBICONV_PLUG := NO
 +override NETSURF_USE_NSSVG := NO
 +override NETSURF_USE_RSVG := NO
-+override NETSURF_USE_DUKTAPE := NO
++override NETSURF_USE_DUKTAPE := YES
 +override NETSURF_USE_HARU_PDF := NO
 +override NETSURF_USE_VIDEO := NO
 +
@@ -73,33 +79,27 @@ diff -ruwN source/netsurf/Makefile.config source-new/netsurf/Makefile.config
 +override NETSURF_FB_FONT_MONOSPACE_BOLD := Mono/Fira/Bold.ttf
 +override NETSURF_FB_FONT_CURSIVE := Sans/Fira/Regular.ttf
 +override NETSURF_FB_FONT_FANTASY := Sans/Fira/Regular.ttf
-diff -ruwN source/netsurf/render/form.c source-new/netsurf/render/form.c
---- source/netsurf/render/form.c	2017-10-16 04:09:36.000000000 -0600
-+++ source-new/netsurf/render/form.c	2018-12-29 08:29:56.855249826 -0700
-@@ -1080,7 +1080,7 @@
- 	if (!item || !charset)
- 		return NULL;
- 
--	snprintf(cset, sizeof cset, "%s//TRANSLIT", charset);
-+	snprintf(cset, sizeof cset, "%s", charset);
- 
- 	err = utf8_to_enc(item, cset, 0, &ret);
- 	if (err == NSERROR_BAD_ENCODING) {
-@@ -1092,7 +1092,7 @@
- 			/* nope, try fallback charset (if any) */
- 			if (fallback) {
- 				snprintf(cset, sizeof cset, 
--						"%s//TRANSLIT", fallback);
-+						"%s", fallback);
- 				err = utf8_to_enc(item, cset, 0, &ret);
- 
- 				if (err == NSERROR_BAD_ENCODING) {
-@@ -1105,7 +1105,7 @@
+diff -ruwN source/netsurf/utils/config.h source-new/netsurf/utils/config.h
+--- source/netsurf/utils/config.h	2020-05-24 15:35:23.000000000 -0600
++++ source-new/netsurf/utils/config.h	2022-11-12 09:00:03.996951825 -0700
+@@ -63,7 +63,8 @@
+      defined(__BEOS__) ||     \
+      defined(__amigaos4__) || \
+      defined(__AMIGA__) ||    \
+-     defined(__MINT__))
++     defined(__MINT__) ||    \
++     defined(__redox__))
+ #undef HAVE_STRPTIME
+ #undef HAVE_STRFTIME
+ #else
+diff -ruwN source/nsgenbind/Makefile source-new/nsgenbind/Makefile
+--- source/nsgenbind/Makefile	2020-05-24 15:35:23.000000000 -0600
++++ source-new/nsgenbind/Makefile	2022-11-12 08:53:43.392773663 -0700
+@@ -10,6 +10,7 @@
+ COMPONENT_TYPE := binary
+ # Component version
+ COMPONENT_VERSION := 0.8
++COMPONENT_FOR_BUILD := yes
  
- 			if (err == NSERROR_BAD_ENCODING) {
- 				/* that also failed, use 8859-1 */
--				err = utf8_to_enc(item, "ISO-8859-1//TRANSLIT",
-+				err = utf8_to_enc(item, "ISO-8859-1",
- 						0, &ret);
- 				if (err == NSERROR_BAD_ENCODING) {
- 					/* and without transliteration */
+ # Tooling
+ PREFIX ?= /opt/netsurf
diff --git a/recipes/netsurf/recipe.sh b/recipes/netsurf/recipe.sh
index 7813ab5aa..6cc42ec82 100644
--- a/recipes/netsurf/recipe.sh
+++ b/recipes/netsurf/recipe.sh
@@ -1,4 +1,4 @@
-VERSION=3.7
+VERSION=3.10
 TAR=http://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-$VERSION.tar.gz
 BUILD_DEPENDS=(curl expat libjpeg libpng nghttp2 openssl sdl zlib freetype liborbital libiconv)
 DEPENDS="ca-certificates orbital"
@@ -9,10 +9,9 @@ function recipe_version {
 }
 
 function recipe_build {
-    sysroot="$(realpath ../sysroot)"
     export TARGET="framebuffer"
-    export CFLAGS="-I$sysroot/include -I${PWD}/inst-${TARGET}/include"
-    export LDFLAGS="-L$sysroot/lib -L${PWD}/inst-${TARGET}/lib -static -Wl,--allow-multiple-definition -Wl,-Bstatic"
+    export CFLAGS="-I${COOKBOOK_SYSROOT}/include -I${PWD}/inst-${TARGET}/include"
+    export LDFLAGS="-L${COOKBOOK_SYSROOT}/lib -L${PWD}/inst-${TARGET}/lib -static -Wl,--allow-multiple-definition -Wl,-Bstatic"
     # nghttp2 is not linked for some reason
     export LDFLAGS="${LDFLAGS} -lcurl -lnghttp2"
     "$REDOX_MAKE" V=1 -j"$($NPROC)"
-- 
GitLab