Reply
Thread Tools
Posts: 804 | Thanked: 1,598 times | Joined on Feb 2010 @ Gdynia, Poland
#31
Originally Posted by marmistrz View Post
Wait...

gtkmozembed is deprecated! This means we need extra work to adapt it to the current situation. Besides, there must've been a reason to deprecate it.
Maybe because it was not used anymore? I think Crapdroid has different "binding" with it, maybe only Fremantle and Harmattan used it and while they haven't been updated for ages, they dropped it? This are just speculations :P

Originally Posted by marmistrz View Post
Moreover, if we decide to update the engine yearly, it means that the work has to be done yearly!
If the work will be done in a proper way once, the annual maintenance wouldn't be that hard.

Originally Posted by marmistrz View Post
Wouldn't it be better to redo the UI of Sailfish Browser in Qt5 and simply upgrade all the Embedlite libraries whenever needed? This would also mean being able to use any Sailfish Browser functionality provided the UI is redone.
I vote a strong NO. Don't get me wrong I'm a big fan of Qt in general, but as long as we're still taking about GTK+Qt4 operaing system, I don't want to have another set of libraries loaded in RAM to open simple web page... I prefer to have more RAM and power for the webpage itself and GTK is sitting in the ram anyway on startup, so why load another stuff just to check the news or other silly stuff online? I would vote for consistency here (system components use GTK, so let's keep it up like it unless the lead of the team decides to change it altogether).

Just my useless 2 cents, I'm not even too active here lately, so if the active devs team has different oppinion, you don't even have to argue with me (in other words = if the person who will do it will do it in Qt5, but it will still work, I will be happy that it is done at all, after all it's their decision as they are the ones that put their precious time into it)
 

The Following 16 Users Say Thank You to misiak For This Useful Post:
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#32
I say we should stick with GTK too.
 

The Following 15 Users Say Thank You to jonwil For This Useful Post:
Posts: 3,328 | Thanked: 4,476 times | Joined on May 2011 @ Poland
#33
And what if we're to rewrite the UI? We might not be able to use the present microb ui in case of a big incompatibility. Is there anyone who knows gtk there?
__________________
If you want to support my work, you can donate by PayPal or Flattr

Projects no longer actively developed: here
 

The Following 2 Users Say Thank You to marmistrz For This Useful Post:
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#34
Assuming we remain ABI compatible with the current tablet-browser-daemon/browser-neteal dbus interface, we should have no problems keeping the current GTK UI working.
 

The Following 8 Users Say Thank You to jonwil For This Useful Post:
Posts: 1,203 | Thanked: 3,027 times | Joined on Dec 2010
#35
managed a quick scan through the maemo removal patch.

a lot of the changes refer to qt, both maemo and harmattan. theres a patch that is linked to maemo bugtracker for flash player bug. some are "if using gtk or maemo" checks reverted to gtk only, which we are still using.

biggest things i can see is a renderer and libconic. the content of the first refers to being able to write directly to image memory so would seem pretty important to me. second, internet connectivity.

the only issue i see with using stock ui at the moment are the dialogs i seem to remember that are in microb-engine. last time i checked (firefox8/9 time), the patches needed adapting to fit but it was still reasonably clear where to put them. as a ui element, i'd rather just have them as part of the actual ui and listen for signal to use them. that way it would make maintenance easier. it also might solve the random issue with dialogs not responding.

even libconic related stuff could technically be seperated out.
 

The Following 11 Users Say Thank You to Android_808 For This Useful Post:
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#36
Seems like one would need to dig a lot on b.m.o to find all the "remove xyz" and "change xyz" and "do xyz" bugs/patches (including those that relate to gtkmozembed) that would need to be forward ported or otherwise handled.

But, assuming we can track all those down and we can triage all the "local" patches in the Maemo source tree (the ones in microb-engine_20100401-1.9.2-5.2+0m5.diff.gz that get applied as part of the build process through quilt or whatever it is) I think we might actually be able to pull this "update gecko to something recent" effort off
 

The Following 9 Users Say Thank You to jonwil For This Useful Post:
Posts: 1,203 | Thanked: 3,027 times | Joined on Dec 2010
#37
if i get a chance later i'll try to pull latest embedlite and build with gtk2 to see how far we get.

edit: pulling repo now.

Last edited by Android_808; 2014-11-08 at 15:52.
 

The Following 6 Users Say Thank You to Android_808 For This Useful Post:
Posts: 1,203 | Thanked: 3,027 times | Joined on Dec 2010
#38
Fails during early configure stage due to our gtk version. Needs 2.18+, we have 2.14.7.

debian/rules (nearly identical to those for microbe's embedlite build, just changed bold text):
Code:
#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

ifneq (,$(findstring Maemo 5,$(shell cat /etc/issue)))
	export PYTHON=/usr/bin/python2.7
endif

package=xulrunner
prefix=usr

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g
configopts =

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

NJOBS:=-j4
ifneq (,$(findstring parallel,$(DEB_BUILD_OPTIONS)))
	PARALLEL_JOBS := $(shell echo $(DEB_BUILD_OPTIONS) | \
	sed -e 's/.*parallel=\([0-9]\+\).*/\1/')
ifeq ($(DEB_BUILD_OPTIONS),$(PARALLEL_JOBS))
	PARALLEL_JOBS := $(shell if [ -f /proc/cpuinfo ]; \
	then echo `cat /proc/cpuinfo | grep '^processor.*:' | wc -l`; \
	else echo 1; fi)
endif
NJOBS:=-j$(PARALLEL_JOBS)
endif

ifneq (,$(findstring CodeSourcery,$(shell gcc --version)))
GCCENV:=.cs
endif

MAKEFLAGS += $(NJOBS)
DEST_OBJ_DIR=objdir-$(DEB_HOST_ARCH)
ifneq (,$(findstring cs2009q3-hard-67-sb16,$(shell gcc --version)))
MOZCONFIG_FILE=mozconfig.qtN9-qt
else
ifneq (,$(findstring Maemo 5,$(shell cat /etc/issue)))
MOZCONFIG_FILE=mozconfig.N900-gtk
else
MOZCONFIG_FILE=mozconfig.qtdesktop
endif
endif
GREVERSION=$(shell cat $(CURDIR)/config/milestone.txt | sed '/^\#/d' | sed '/^$$/d')

configure: configure-$(DEB_HOST_ARCH)-stamp
configure-$(DEB_HOST_ARCH)-stamp:
ifneq (,$(findstring Maemo 5,$(shell cat /etc/issue)))
	QUILT_PATCHES=debian/patches/fremantle quilt push -a
endif
	dh_testdir
	cp $(CURDIR)/embedding/embedlite/config/$(MOZCONFIG_FILE) $(CURDIR)/$(MOZCONFIG_FILE)
ifneq (,$(findstring cs2009q3-hard-67-sb16,$(shell gcc --version)))
endif
ifneq (,$(findstring $(DEB_HOST_ARCH),arm armel))
	echo "ac_add_options --with-gl-provider=EGL" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "ac_add_options --disable-webrtc" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "ac_add_options --with-arm-kuser" >> $(CURDIR)/$(MOZCONFIG_FILE)
ifneq (,$(findstring thumb,$(DEB_BUILD_OPTIONS)))
	echo "ac_add_options --with-thumb=yes" >> $(CURDIR)/$(MOZCONFIG_FILE)
else
	echo "ac_add_options --with-thumb=toolchain-default" >> $(CURDIR)/$(MOZCONFIG_FILE)
endif
	echo "ac_add_options --with-float-abi=toolchain-default" >> $(CURDIR)/$(MOZCONFIG_FILE)
endif
	echo "ac_add_options --prefix=/$(prefix)" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "ac_add_options --disable-tests" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "ac_add_options --disable-valgrind" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "ac_add_options --disable-profiling" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "mk_add_options MOZ_OBJDIR=\"$(DEST_OBJ_DIR)\"" >> $(CURDIR)/$(MOZCONFIG_FILE)
	echo "mk_add_options MOZ_MAKE_FLAGS=\"$(NJOBS)\"" >> $(CURDIR)/$(MOZCONFIG_FILE)
	MOZCONFIG=$(CURDIR)/$(MOZCONFIG_FILE) $(MAKE) -f client.mk configure

	touch configure-$(DEB_HOST_ARCH)-stamp

build: build-$(DEB_HOST_ARCH)-stamp
build-$(DEB_HOST_ARCH)-stamp: configure-$(DEB_HOST_ARCH)-stamp
	dh_testdir
	MOZCONFIG=$(CURDIR)/$(MOZCONFIG_FILE) $(MAKE) -f client.mk build_all

	touch build-$(DEB_HOST_ARCH)-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-$(DEB_HOST_ARCH)-stamp
	rm -f configure-$(DEB_HOST_ARCH)-stamp
#	$(MAKE) distclean
	rm -rf $(DEST_OBJ_DIR)
ifneq (,$(findstring Maemo 5,$(shell cat /etc/issue)))
	QUILT_PATCHES=debian/patches/fremantle quilt pop -a || true
endif
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs -s

        # Add here commands to install the package into debian/tmp
	cat $(CURDIR)/debian/xulrunner.install.in | sed 's/%GRE_VERSION%/$(GREVERSION)/g' > $(CURDIR)/debian/xulrunner.install
	cat $(CURDIR)/debian/xulrunner-dev.install.in | sed 's/%GRE_VERSION%/$(GREVERSION)/g' > $(CURDIR)/debian/xulrunner-dev.install
#       make -C $(CURDIR)/$(DEST_OBJ_DIR) install/package does not work on some environments due to missing recent python, let's do it manually
	$(MAKE) -C $(CURDIR)/$(DEST_OBJ_DIR)/xulrunner/installer libxul.pc libxul-embedding.pc mozilla-nspr.pc mozilla-js.pc mozilla-nss.pc mozilla-plugin.pc
	install -d $(CURDIR)/debian/tmp/$(prefix)/bin
	install -d $(CURDIR)/debian/tmp/$(prefix)/include
	install -d $(CURDIR)/debian/tmp/$(prefix)/lib/pkgconfig
	install -d $(CURDIR)/debian/tmp/$(prefix)/share/idl
	install -d $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)
	install -m 0664 $(CURDIR)/$(DEST_OBJ_DIR)/dist/bin/xulrunner  $(CURDIR)/debian/tmp/$(prefix)/bin
	cp -rfL $(CURDIR)/$(DEST_OBJ_DIR)/xulrunner/installer/*.pc $(CURDIR)/debian/tmp/$(prefix)/lib/pkgconfig
	cp -rfL $(CURDIR)/$(DEST_OBJ_DIR)/dist/bin $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-$(GREVERSION)
	cp -rfL $(CURDIR)/$(DEST_OBJ_DIR)/dist/include $(CURDIR)/debian/tmp/$(prefix)/include/xulrunner-$(GREVERSION)
	cp -rfL $(CURDIR)/$(DEST_OBJ_DIR)/dist/idl $(CURDIR)/debian/tmp/$(prefix)/share/idl/xulrunner-$(GREVERSION)
	ln -s /$(prefix)/include/xulrunner-$(GREVERSION) $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/include
	ln -s /$(prefix)/share/idl/xulrunner-$(GREVERSION) $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/idl
	ln -s /$(prefix)/lib/xulrunner-$(GREVERSION) $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/bin
	cp -rfL $(CURDIR)/$(DEST_OBJ_DIR)/dist/sdk $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/sdk
	rm -f $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/sdk/lib/libxul.so
	ln -s sdk/lib $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/lib
	ln -s /$(prefix)/lib/xulrunner-$(GREVERSION)/libxul.so $(CURDIR)/debian/tmp/$(prefix)/lib/xulrunner-devel-$(GREVERSION)/sdk/lib/libxul.so
	dh_install --sourcedir=debian/tmp

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_link
	dh_compress
	dh_fixperms
	dh_strip --dbg-package=$(package)-dbg
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
ifneq (,$(findstring Maemo 5,$(shell cat /etc/issue)))
	maemo-optify
endif
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
gecko-dev/embedding/embedlite/config/mozconfig.N900-gtk:
Code:
export ac_cv_have_usable_wchar_option_v2="no"
ac_add_options --enable-application=xulrunner
#ac_add_options --enable-update-channel=nightly
#ac_add_options --enable-update-packaging
ac_add_options --enable-logging
#ac_add_options --enable-default-toolkit=cairo-qt
ac_add_options --enable-mobile-optimize
ac_add_options --enable-skia

export MOZ_DEBUG_SYMBOLS=1
ac_add_options --enable-debug-symbols="-ggdb"
export MOZILLA_OFFICIAL=1
mk_add_options PROFILE_GEN_SCRIPT=@TOPSRCDIR@/build/profile_pageloader.pl

export CXXFLAGS="-mthumb -mtune=cortex-a8 -mcpu=cortex-a8 -fpermissive -DUSE_ANDROID_OMTC_HACKS=1"
export CFLAGS="-mthumb -mtune=cortex-a8 -mcpu=cortex-a8"

ac_add_options --enable-optimize="-O2 -Wno-psabi"
ac_add_options --disable-jemalloc
ac_add_options --enable-gstreamer

mk_add_options MOZ_MAKE_FLAGS="-j4"
mk_add_options MOZ_OBJDIR="@TOPSRCDIR@/obj-build-n900-gtk"
ac_add_options --with-fpu=neon

ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --enable-system-pixman

ac_add_options --disable-elf-hack

ac_add_options --enable-libjpeg-turbo

ac_add_options --enable-profile-guided-optimization
#ac_add_options --enable-valgrind
#ac_add_options --enable-profiling

ac_add_options --disable-accessibility
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-jsd
ac_add_options --disable-printing
ac_add_options --disable-tests
ac_add_options --disable-dbus
ac_add_options --disable-necko-wifi
ac_add_options --disable-updater
ac_add_options --disable-gamepad
ac_add_options --disable-pulseaudio

#ac_add_options --enable-debug

#fails to compile with this enabled, might raise a bug
#ac_add_options --with-maemo-version=5
Updated gst-fix-missing-functions.patch:
Code:
Index: mozilla-central/dom/media/gstreamer/GStreamerFormatHelper.cpp
===================================================================
--- mozilla-central.orig/dom/media/gstreamer/GStreamerFormatHelper.cpp	2013-11-19 02:04:40.000000000 +0200
+++ mozilla-central/dom/media/gstreamer/GStreamerFormatHelper.cpp	2013-11-19 02:04:54.000000000 +0200
@@ -292,25 +292,10 @@
 GList* GStreamerFormatHelper::GetFactories() {
   NS_ASSERTION(sLoadOK, "GStreamer library not linked");
 
-#if GST_VERSION_MAJOR >= 1
-  uint32_t cookie = gst_registry_get_feature_list_cookie(gst_registry_get());
-#else
-  uint32_t cookie = gst_default_registry_get_feature_list_cookie();
-#endif
-  if (cookie != mCookie) {
-    g_list_free(mFactories);
-#if GST_VERSION_MAJOR >= 1
-    mFactories =
-      gst_registry_feature_filter(gst_registry_get(),
-                                  (GstPluginFeatureFilter)FactoryFilter,
-                                  false, nullptr);
-#else
-    mFactories =
-      gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter,
-                                          false, nullptr);
-#endif
-    mCookie = cookie;
-  }
+  g_list_free(mFactories);
+  mFactories =
+    gst_default_registry_feature_filter((GstPluginFeatureFilter)FactoryFilter,
+                                         false, nullptr);
 
   return mFactories;
 }

 
Index: mozilla-central/dom/media/gstreamer/GStreamerFunctionList.h
===================================================================
--- mozilla-central.orig/dom/media/gstreamer/GStreamerFunctionList.h	2013-11-19 02:04:29.000000000 +0200
+++ mozilla-central/dom/media/gstreamer/GStreamerFunctionList.h	2013-11-19 02:04:54.000000000 +0200
@@ -50,6 +50,7 @@
 GST_FUNC(LIBGSTREAMER, gst_init_check)
 GST_FUNC(LIBGSTREAMER, gst_iterator_next)
 GST_FUNC(LIBGSTREAMER, gst_message_parse_error)
+GST_FUNC(LIBGSTREAMER, gst_message_get_type)
 GST_FUNC(LIBGSTREAMER, gst_message_type_get_name)
 GST_FUNC(LIBGSTREAMER, gst_mini_object_ref)
 GST_FUNC(LIBGSTREAMER, gst_mini_object_unref)
@@ -63,7 +64,6 @@
 GST_FUNC(LIBGSTREAMER, gst_pipeline_get_type)
 GST_FUNC(LIBGSTREAMER, gst_plugin_feature_get_rank)
 GST_FUNC(LIBGSTREAMER, gst_registry_feature_filter)
-GST_FUNC(LIBGSTREAMER, gst_registry_get_feature_list_cookie)
 GST_FUNC(LIBGSTREAMER, gst_segment_init)
 GST_FUNC(LIBGSTREAMER, gst_segment_to_stream_time)
 GST_FUNC(LIBGSTREAMER, gst_static_caps_get)
As for dependency/ debian/control I only have what was installed last time I tried it. Did not edit current control file. The one from last time I tried was:
Code:
Source: xulrunner
Section: libs
Priority: extra
Maintainer: unknown <tmeshkova@github.com>
Build-Depends: debhelper (>= 5),
 autoconf2.13,
 python,
 unzip,
 zip,
 libpango1.0-dev,
 libdbus-1-dev,
 libdbus-glib-1-dev,
 libasound2-dev,
 libgstreamer0.10-dev,
 libgstreamer-plugins-base0.10-dev,
 libx11-dev,
 libxt-dev,
 quilt,
 python2.7,
 libidl-dev,
 libgtk2.0-dev,
 libosso-gnomevfs2-dev | libgnomevfs2-dev,
 sharutils,
 libcairo2-dev,
 liblocation-dev,
 libhildonmime-dev,
 libosso-dev,
 libxdamage-dev,
 libxcomposite-dev,
 libgl1-mesa-dev | opengles-sgx-img-common-dev | libgl-dev,
 libconic0-dev,
 libhildonfm2-dev,
 libglib2.0-dev
Homepage: https://wiki.mozilla.org/Embedding/IPCLiteAPI

Package: xulrunner
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>

Package: xulrunner-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, xulrunner (= ${Source-Version})
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>

Package: xulrunner-dbg
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, xulrunner (= ${Source-Version})
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>
 

The Following 11 Users Say Thank You to Android_808 For This Useful Post:
Posts: 567 | Thanked: 2,965 times | Joined on Oct 2009
#39
Lets start building a list of all the bugzilla.mozilla.org bugs that are relavent. This is what I have found so far, anyone else with more knowledge of Gecko (or bugzilla) than me got any others to add to the list?
https://bugzilla.mozilla.org/show_bug.cgi?id=648156
https://bugzilla.mozilla.org/show_bug.cgi?id=906072
https://bugzilla.mozilla.org/show_bug.cgi?id=1080529
https://bugzilla.mozilla.org/show_bug.cgi?id=653201

Lets focus on the goal of getting a modern Gecko to work on Maemo and then on getting it to work as a replacement for the system browser engine (including talking to all the users of and plugins for the browser engine on a stock Fremantle system)

As for the configuration/packaging stuff, we should reference the actual files used for Fremantle as a guide to what settings we want for it.

Last edited by jonwil; 2014-11-09 at 02:11.
 

The Following 11 Users Say Thank You to jonwil For This Useful Post:
Posts: 1,203 | Thanked: 3,027 times | Joined on Dec 2010
#40
 

The Following 6 Users Say Thank You to Android_808 For This Useful Post:
Reply

Tags
maemo 5, microb


 
Forum Jump


All times are GMT. The time now is 06:50.