Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2021 16:26:58 GMT
From:      Neel Chauhan <nc@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: c7d712568cc4 - main - www/netsurf: Fix preferences dialog bug and fix build warnings
Message-ID:  <202104061626.136GQwsv059267@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c7d712568cc4dbe35df64f48f576498361160333

commit c7d712568cc4dbe35df64f48f576498361160333
Author:     Neel Chauhan <nc@FreeBSD.org>
AuthorDate: 2021-04-06 16:23:54 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2021-04-06 16:26:55 +0000

    www/netsurf: Fix preferences dialog bug and fix build warnings
    
    PR:             254702
    Submitted by:   waitman AT waitman DOT net
---
 www/netsurf/Makefile                               | 39 +++++-----
 www/netsurf/files/Makefile.config                  |  2 +-
 www/netsurf/files/buildui.pl                       | 82 ++++++++++++++++++++++
 www/netsurf/files/patch-Makefile                   | 50 ++++++++++++-
 .../files/patch-frontends_gtk_Makefile.defaults    |  8 ++-
 .../files/patch-frontends_gtk_preferences.c        | 33 +++++++++
 www/netsurf/files/patch-frontends_gtk_resources.c  | 22 ++++++
 www/netsurf/pkg-plist                              |  5 ++
 8 files changed, 218 insertions(+), 23 deletions(-)

diff --git a/www/netsurf/Makefile b/www/netsurf/Makefile
index d773d30dbb4a..1a875df95350 100644
--- a/www/netsurf/Makefile
+++ b/www/netsurf/Makefile
@@ -29,14 +29,15 @@ LIB_DEPENDS=	libcurl.so:ftp/curl \
 		libwapcaplet.so:textproc/libwapcaplet \
 		libhubbub.so:www/libhubbub \
 		libexpat.so:textproc/expat2 \
-		libnspsl.so:dns/libnspsl
+		libnspsl.so:dns/libnspsl \
+		libwebp.so:graphics/webp
 RUN_DEPENDS=	duk:lang/duktape \
 		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
 
-USES=		bison desktop-file-utils gettext-runtime gmake gnome iconv jpeg \
-		localbase pkgconfig shebangfix ssl
+USES=		bison desktop-file-utils gmake gnome jpeg \
+		localbase pkgconfig shebangfix ssl iconv:translit
 ALL_TARGET=	#empty
-LDFLAGS+=	-L${OPENSSLLIB} -lssl -lcrypto ${ICONV_LIB}
+LDFLAGS+=	-L${OPENSSLLIB} -lssl -lcrypto
 CFLAGS+=	-I${OPENSSLINC}
 MAKE_ARGS=	HOST_CC="${CC}" CC="${CC}" CCOPT="" HOST="${OPSYS}" \
 		TARGET="gtk3" \
@@ -47,30 +48,18 @@ USE_GNOME=	glib20 gtk30 cairo librsvg2
 WRKSRC=		${WRKDIR}/${DISTNAME:S/-src//}
 
 SHEBANG_FILES=	utils/split-messages.pl
-perl_CMD=	${SETENV} perl
+perl_CMD=	${PERL}
 
-OPTIONS_DEFINE=		GSTREAMER
-OPTIONS_EXCLUDE=	GSTREAMER
-GSTREAMER_USE=		GSTREAMER=yes, good
+NLS_USES=		gettext
+NLS_CONFIGURE_ENABLE=	nls
 
 post-patch:
 	@${REINPLACE_CMD} '/CFLAGS/d' \
 		${WRKSRC}//Makefile.defaults
-	@${REINPLACE_CMD} 's| -O2||' \
-		${WRKSRC}/frontends/gtk/Makefile.defaults
-	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|' \
-		${WRKSRC}/frontends/gtk/gui.c
+	@${CP} ${FILESDIR}/buildui.pl ${WRKSRC}/utils/
 
 do-configure:
 	@${CP} ${FILESDIR}/Makefile.config  ${WRKSRC}
-.if empty(ICONV_LIB)
-	@${REINPLACE_CMD} '/NETSURF_USE_LIBICONV_PLUG/ s|NO|YES|' \
-		${WRKSRC}/Makefile.config
-.endif
-
-do-configure-GSTREAMER-on:
-	@${REINPLACE_CMD} '/NETSURF_USE_VIDEO/ s|NO|YES|' \
-		${WRKSRC}/Makefile.config
 
 post-install:
 	cd ${STAGEDIR}${PREFIX}/bin && ${LN} -sf netsurf-gtk3 \
@@ -78,6 +67,16 @@ post-install:
 .for d in applications pixmaps
 	${MKDIR} ${STAGEDIR}${PREFIX}/share/${d}
 .endfor
+	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/deoptions.gtk3.ui \
+		${STAGEDIR}${PREFIX}/share/netsurf
+	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/enoptions.gtk3.ui \
+		${STAGEDIR}${PREFIX}/share/netsurf
+	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/froptions.gtk3.ui \
+		${STAGEDIR}${PREFIX}/share/netsurf
+	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/itoptions.gtk3.ui \
+		${STAGEDIR}${PREFIX}/share/netsurf
+	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/nloptions.gtk3.ui \
+		${STAGEDIR}${PREFIX}/share/netsurf
 	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/netsurf-gtk.desktop \
 		${STAGEDIR}${PREFIX}/share/applications
 	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/netsurf.xpm \
diff --git a/www/netsurf/files/Makefile.config b/www/netsurf/files/Makefile.config
index 60c2e1328a0c..cd7852143c08 100644
--- a/www/netsurf/files/Makefile.config
+++ b/www/netsurf/files/Makefile.config
@@ -1,4 +1,4 @@
-NETSURF_USE_LIBICONV_PLUG=NO
+NETSURF_USE_LIBICONV_PLUG=YES
 NETSURF_USE_NSSVG=NO
 NETSURF_USE_RSVG=YES
 NETSURF_USE_VIDEO=NO
diff --git a/www/netsurf/files/buildui.pl b/www/netsurf/files/buildui.pl
new file mode 100644
index 000000000000..17aab0711c6b
--- /dev/null
+++ b/www/netsurf/files/buildui.pl
@@ -0,0 +1,82 @@
+#!
+#
+# Create ui files for each language listed in FatMessages
+
+my $inputfn = $ARGV[0]; 		# path to FatMessages
+my $templatefn = $ARGV[1];	# path to UI Template
+my $output = $ARGV[2];		# output path
+my $stub = $ARGV[3];		# filename stub. like options.gtk3.ui will become enoptions.gtk3.ui
+
+if (length($stub)<3) {
+	print "invalid stub.\n";
+	exit;
+}
+
+my $template;
+my %langs = {'en'=>1};
+my %trans;
+$trans{'en'}{'foo'}='bar';
+
+open(my $fh, '<', $templatefn) or die "cannot open template file $templatefn";
+{
+	local $/;
+	$template = <$fh>;
+}
+close($fh);
+
+$template =~ s/translatable="yes"/translatable="no"/g;
+
+open(my $input, '<', $inputfn) or die "cannot open FatMessages file $inputfn";
+
+while (<$input>)
+{
+	# skip comment and empty lines
+	/^#/    && next;
+	/^\s*$/ && next;
+
+	# only parsing things that look like message lines:
+	if( /^([a-z]{2}).([^.]+).([^:]+):(.*)/ )
+	{
+		my( $lang, $plat, $key, $val ) = ( $1, $2, $3, $4 );
+		if ($plat == 'gtk')
+		{
+			$val =~ s|<.+?>||g; #remove HTML
+			$langs{$lang}=1;
+			$trans{$lang}{$key}=$val;
+		}
+	}
+
+}
+
+# load up langs hash with copy of the template for each lang
+
+foreach $key (keys %langs)
+{
+	if (length($key)==2)
+	{
+		$langs{$key} = $template
+	}
+}
+
+# iterate through each and key replace with translated text
+
+foreach my $tran (keys %trans)
+{
+	foreach my $key (keys %{$trans{$tran}})
+	{
+		$langs{$tran} =~ s/\>$key\</\>$trans{$tran}{$key}\</g;
+	}
+}
+
+# save the ui file for each language
+
+foreach $key (keys %langs)
+{
+	if (length($key)==2)
+	{
+		open (OFN, '>', $output.'/'.$key.$stub) or die "cannot open output file ".$output.'/'.$key.$stub;
+		print OFN $langs{$key};
+		close (OFN);
+	}
+}
+
diff --git a/www/netsurf/files/patch-Makefile b/www/netsurf/files/patch-Makefile
index 2ce2a9a724f5..e976dd322efd 100644
--- a/www/netsurf/files/patch-Makefile
+++ b/www/netsurf/files/patch-Makefile
@@ -1,6 +1,23 @@
 --- Makefile.orig	2020-05-24 20:55:29 UTC
 +++ Makefile
-@@ -547,7 +547,6 @@ ifeq ($(HOST),mint)
+@@ -484,16 +484,6 @@ ifneq ($(CC_MAJOR),2)
+   COMMON_WARNFLAGS += -Wno-unused-parameter
+ endif
+ 
+-# deal with lots of unwanted warnings from javascript
+-ifeq ($(call cc_ver_ge,4,6),1)
+-  COMMON_WARNFLAGS += -Wno-unused-but-set-variable
+-endif
+-
+-# Implicit fallthrough warnings suppressed by comment
+-ifeq ($(call cc_ver_ge,7,1),1)
+-  COMMON_WARNFLAGS += -Wimplicit-fallthrough=3
+-endif
+-
+ # deal with chaging warning flags for different platforms
+ ifeq ($(HOST),OpenBSD)
+   # OpenBSD headers are not compatible with redundant declaration warning
+@@ -547,7 +537,6 @@ ifeq ($(HOST),mint)
  else
      $(eval $(call pkg_config_find_and_add_enabled,CURL,libcurl,Curl))
  endif
@@ -8,3 +25,34 @@
  
  $(eval $(call pkg_config_find_and_add_enabled,UTF8PROC,libutf8proc,utf8))
  $(eval $(call pkg_config_find_and_add_enabled,WEBP,libwebp,WEBP))
+@@ -680,14 +669,21 @@ $$(MESSAGES_TARGET)/$(1)/Messages: resources/FatMessag
+ 	$$(Q)$$(SPLIT_MESSAGES) -l $(1) -p $$(MESSAGES_FILTER) -f messages -o $$@ -z $$<
+ 
+ CLEAN_MESSAGES += $$(MESSAGES_TARGET)/$(1)/Messages
++CLEAN_MESSAGES += $$(MESSAGES_TARGET)/$(1)options.gtk3.ui
+ MESSAGES += $$(MESSAGES_TARGET)/$(1)/Messages
+ 
+ endef
+ 
++buildui: 
++	@echo "BUILDUI: options ui for each language in resources/FatMessages"
++	@$(PERL) utils/buildui.pl resources/FatMessages frontends/gtk/res/options.gtk3.ui $(MESSAGES_TARGET) options.gtk3.ui
++
+ # generate the message file rules
+ $(eval $(foreach LANG,$(MESSAGES_LANGUAGES), \
+ 	$(call split_messages,$(LANG))))
+ 
++MESSAGES += buildui
++
+ clean-messages:
+ 	$(VQ)echo "   CLEAN: $(CLEAN_MESSAGES)"
+ 	$(Q)$(RM) $(CLEAN_MESSAGES)
+@@ -710,7 +706,7 @@ OBJECTS := $(sort $(addprefix $(OBJROOT)/,$(subst /,_,
+ # Include directory flags
+ IFLAGS = $(addprefix -I,$(INCLUDE_DIRS))
+ 
+-$(EXETARGET): $(OBJECTS) $(RESOURCES) $(MESSAGES)
++$(EXETARGET): $(OBJECTS) $(RESOURCES) $(MESSAGES) 
+ 	$(VQ)echo "    LINK: $(EXETARGET)"
+ ifneq ($(TARGET)$(SUBTARGET),riscos-elf)
+ 	$(Q)$(CC) -o $(EXETARGET) $(OBJECTS) $(LDFLAGS)
diff --git a/www/netsurf/files/patch-frontends_gtk_Makefile.defaults b/www/netsurf/files/patch-frontends_gtk_Makefile.defaults
index 0db9fd17a985..0b7f7cacbeae 100644
--- a/www/netsurf/files/patch-frontends_gtk_Makefile.defaults
+++ b/www/netsurf/files/patch-frontends_gtk_Makefile.defaults
@@ -1,4 +1,4 @@
---- frontends/gtk/Makefile.defaults.orig	2016-11-19 13:37:41 UTC
+--- frontends/gtk/Makefile.defaults.orig	2020-05-24 20:55:29 UTC
 +++ frontends/gtk/Makefile.defaults
 @@ -4,7 +4,7 @@
  
@@ -9,3 +9,9 @@
  
  # Where to install the netsurf binary
  NETSURF_GTK_BIN := $(PREFIX)/bin/
+@@ -39,4 +39,4 @@ NETSURF_FS_BACKING_STORE := YES
+ NETSURF_GTK_MAJOR ?= 2
+ 
+ # Optimisation levels
+-CFLAGS += -O2
++CFLAGS +=
diff --git a/www/netsurf/files/patch-frontends_gtk_preferences.c b/www/netsurf/files/patch-frontends_gtk_preferences.c
new file mode 100644
index 000000000000..337e1bf73f03
--- /dev/null
+++ b/www/netsurf/files/patch-frontends_gtk_preferences.c
@@ -0,0 +1,33 @@
+--- frontends/gtk/preferences.c.orig	2021-04-01 17:51:28 UTC
++++ frontends/gtk/preferences.c
+@@ -962,11 +962,26 @@ GtkWidget* nsgtk_preferences(struct browser_window *bw
+ 		return GTK_WIDGET(priv->dialog);
+ 	}
+ 
+-	res = nsgtk_builder_new_from_resname("options", &preferences_builder);
+-	if (res != NSERROR_OK) {
+-		NSLOG(netsurf, INFO, "Preferences UI builder init failed");
+-		return NULL;
++	const char *client_lang;
++	char ui_lang[10] = "en";
++        client_lang = getenv("LANG");
++	
++	if (strlen(client_lang)>1)
++	{
++		strncpy(ui_lang,client_lang,2);
+ 	}
++
++	strcat(ui_lang,"options");
++	
++	res = nsgtk_builder_new_from_resname(ui_lang, &preferences_builder);
++        if (res != NSERROR_OK) {
++                //LANG not found, so fall back to english i guess
++                res = nsgtk_builder_new_from_resname("enoption", &preferences_builder);
++        }
++        if (res != NSERROR_OK) {
++                NSLOG(netsurf, INFO, "Preferences UI builder init failed");
++                return NULL;
++        }
+ 
+ 	priv->dialog = gtk_builder_get_object(preferences_builder,
+ 					       "dialogPreferences");
diff --git a/www/netsurf/files/patch-frontends_gtk_resources.c b/www/netsurf/files/patch-frontends_gtk_resources.c
new file mode 100644
index 000000000000..dc812f85081a
--- /dev/null
+++ b/www/netsurf/files/patch-frontends_gtk_resources.c
@@ -0,0 +1,22 @@
+--- frontends/gtk/resources.c.orig	2021-04-01 19:00:43 UTC
++++ frontends/gtk/resources.c
+@@ -82,6 +82,11 @@ static struct nsgtk_resource_s ui_resource[] = {
+ 	RES_ENTRY("globalhistory"),
+ 	RES_ENTRY("localhistory"),
+ 	RES_ENTRY("options"),
++	RES_ENTRY("deoptions"),
++	RES_ENTRY("enoptions"),
++	RES_ENTRY("froptions"),
++	RES_ENTRY("itoptions"),
++	RES_ENTRY("nloptions"),
+ 	RES_ENTRY("hotlist"),
+ 	RES_ENTRY("cookies"),
+ 	RES_ENTRY("viewdata"),
+@@ -552,6 +557,7 @@ nsgtk_builder_new_from_resname(const char *resname, Gt
+ 			      error->message);
+ 			g_error_free(error);
+ 			g_object_unref(G_OBJECT(new_builder));
++			
+ 			return NSERROR_INIT_FAILED;
+ 		}
+ 	} else {
diff --git a/www/netsurf/pkg-plist b/www/netsurf/pkg-plist
index 5b73aae723c5..53d10f0688f5 100644
--- a/www/netsurf/pkg-plist
+++ b/www/netsurf/pkg-plist
@@ -47,6 +47,11 @@ share/applications/netsurf-gtk.desktop
 %%DATADIR%%/nl/licence.html
 %%DATADIR%%/nl/welcome.html
 %%DATADIR%%/options.gtk3.ui
+%%DATADIR%%/deoptions.gtk3.ui
+%%DATADIR%%/enoptions.gtk3.ui
+%%DATADIR%%/froptions.gtk3.ui
+%%DATADIR%%/itoptions.gtk3.ui
+%%DATADIR%%/nloptions.gtk3.ui
 %%DATADIR%%/pageinfo.gtk3.ui
 %%DATADIR%%/password.gtk3.ui
 %%DATADIR%%/quirks.css



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104061626.136GQwsv059267>