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>