From 130a48356b79f1a78b3d25b14ae07a32bb4437e5 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 7 Apr 2013 09:57:22 +0000 Subject: [PATCH] qt5/qt5jsbackend: new package Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/qt5/Config.in | 1 + package/qt5/qt5jsbackend/Config.in | 10 +++++ ...ackend-dont-import-bz2-python-module.patch | 29 +++++++++++++ .../qt5jsbackend-fix-uclibc.patch | 33 ++++++++++++++ package/qt5/qt5jsbackend/qt5jsbackend.mk | 43 +++++++++++++++++++ 5 files changed, 116 insertions(+) create mode 100644 package/qt5/qt5jsbackend/Config.in create mode 100644 package/qt5/qt5jsbackend/qt5jsbackend-dont-import-bz2-python-module.patch create mode 100644 package/qt5/qt5jsbackend/qt5jsbackend-fix-uclibc.patch create mode 100644 package/qt5/qt5jsbackend/qt5jsbackend.mk diff --git a/package/qt5/Config.in b/package/qt5/Config.in index 84efa89cad..e149706c8a 100644 --- a/package/qt5/Config.in +++ b/package/qt5/Config.in @@ -17,6 +17,7 @@ menuconfig BR2_PACKAGE_QT5 if BR2_PACKAGE_QT5 source "package/qt5/qt5base/Config.in" source "package/qt5/qt5imageformats/Config.in" +source "package/qt5/qt5jsbackend/Config.in" source "package/qt5/qt5script/Config.in" source "package/qt5/qt5svg/Config.in" source "package/qt5/qt5xmlpatterns/Config.in" diff --git a/package/qt5/qt5jsbackend/Config.in b/package/qt5/qt5jsbackend/Config.in new file mode 100644 index 0000000000..89d506771e --- /dev/null +++ b/package/qt5/qt5jsbackend/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_QT5JSBACKEND + bool "qt5jsbackend" + select BR2_PACKAGE_QT5BASE + help + Qt is a cross-platform application and UI framework for + developers using C++. + + This package corresponds to the qt5jsbackend module. + + http://qt-project.org diff --git a/package/qt5/qt5jsbackend/qt5jsbackend-dont-import-bz2-python-module.patch b/package/qt5/qt5jsbackend/qt5jsbackend-dont-import-bz2-python-module.patch new file mode 100644 index 0000000000..08f343e5ea --- /dev/null +++ b/package/qt5/qt5jsbackend/qt5jsbackend-dont-import-bz2-python-module.patch @@ -0,0 +1,29 @@ +Only import bz2 python module when needed + +The js2c.py script imports the bz2 module unconditionnally, which +would require us to build the bzip2 support in host-python. Since in +fact bzip2 support is not technically used when building this package, +we ensure that the bz2 module is only imported when needed. + +Signed-off-by: Thomas Petazzoni + +Index: b/src/3rdparty/v8/tools/js2c.py +=================================================================== +--- a/src/3rdparty/v8/tools/js2c.py ++++ b/src/3rdparty/v8/tools/js2c.py +@@ -33,7 +33,6 @@ + + import os, re, sys, string + import jsmin +-import bz2 + + + def ToCAsciiArray(lines): +@@ -344,6 +343,7 @@ + else: + raw_sources_declaration = RAW_SOURCES_COMPRESSION_DECLARATION + if env['COMPRESSION'] == 'bz2': ++ import bz2 + all_sources = bz2.compress("".join(all_sources)) + total_length = len(all_sources) + sources_data = ToCArray(all_sources) diff --git a/package/qt5/qt5jsbackend/qt5jsbackend-fix-uclibc.patch b/package/qt5/qt5jsbackend/qt5jsbackend-fix-uclibc.patch new file mode 100644 index 0000000000..50a6dbcacf --- /dev/null +++ b/package/qt5/qt5jsbackend/qt5jsbackend-fix-uclibc.patch @@ -0,0 +1,33 @@ +Fix build on uClibc + +Patch taken from https://code.google.com/p/v8/source/detail?r=12094. + +Review URL: https://chromiumcodereview.appspot.com/10784012 +Patch from Remi Duraffort . + +Signed-off-by: Thomas Petazzoni + +Index: qt5jsbackend-5.0.0/src/3rdparty/v8/src/platform-linux.cc +=================================================================== +--- qt5jsbackend-5.0.0.orig/src/3rdparty/v8/src/platform-linux.cc 2012-12-18 20:04:01.000000000 +0100 ++++ qt5jsbackend-5.0.0/src/3rdparty/v8/src/platform-linux.cc 2013-03-03 20:31:46.000000000 +0100 +@@ -1030,7 +1030,8 @@ + sample->fp = reinterpret_cast
(mcontext.gregs[REG_RBP]); + #elif V8_HOST_ARCH_ARM + // An undefined macro evaluates to 0, so this applies to Android's Bionic also. +-#if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3)) ++#if (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3) && \ ++ !defined(__UCLIBC__)) + sample->pc = reinterpret_cast
(mcontext.gregs[R15]); + sample->sp = reinterpret_cast
(mcontext.gregs[R13]); + sample->fp = reinterpret_cast
(mcontext.gregs[R11]); +@@ -1038,7 +1039,8 @@ + sample->pc = reinterpret_cast
(mcontext.arm_pc); + sample->sp = reinterpret_cast
(mcontext.arm_sp); + sample->fp = reinterpret_cast
(mcontext.arm_fp); +-#endif // (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3)) ++#endif // (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3) && ++ // !defined(__UCLIBC__)) + #elif V8_HOST_ARCH_MIPS + sample->pc = reinterpret_cast
(mcontext.pc); + sample->sp = reinterpret_cast
(mcontext.gregs[29]); diff --git a/package/qt5/qt5jsbackend/qt5jsbackend.mk b/package/qt5/qt5jsbackend/qt5jsbackend.mk new file mode 100644 index 0000000000..bc6a53af27 --- /dev/null +++ b/package/qt5/qt5jsbackend/qt5jsbackend.mk @@ -0,0 +1,43 @@ +############################################################# +# +# qt5jsbackend +# +############################################################# + +QT5JSBACKEND_VERSION = $(QT5_VERSION) +QT5JSBACKEND_SITE = http://releases.qt-project.org/qt5/$(QT5JSBACKEND_VERSION)/submodules_tar/ +QT5JSBACKEND_SOURCE = qtjsbackend-opensource-src-$(QT5JSBACKEND_VERSION).tar.xz +QT5JSBACKEND_DEPENDENCIES = qt5base +QT5JSBACKEND_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y) +QT5JSBACKEND_CONFIGURE_OPTS += -opensource -confirm-license +QT5JSBACKEND_LICENSE = LGPLv2.1 or GPLv3.0 +# Here we would like to get license files from qt5base, but qt5base +# may not be extracted at the time we get the legal-info for +# qt5script. +else +QT5JSBACKEND_LICENSE = Commercial license +QT5JSBACKEND_REDISTRIBUTE = NO +endif + +define QT5JSBACKEND_CONFIGURE_CMDS + (cd $(@D); $(HOST_DIR)/usr/bin/qmake) +endef + +define QT5JSBACKEND_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define QT5JSBACKEND_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install + $(QT5_LA_PRL_FILES_FIXUP) +endef + +ifeq ($(BR2_PREFER_STATIC_LIB),) +define QT5JSBACKEND_INSTALL_TARGET_CMDS + cp -dpf $(STAGING_DIR)/usr/lib/libQt5V8*.so.* $(TARGET_DIR)/usr/lib +endef +endif + +$(eval $(generic-package)) -- 2.30.2