View Single 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: