The big webkitgtk bump
v2 cover The big webkitgtk bump
Second take at the webkit/midori bump...
There's support for libgtk2 & libgtk3, though libgtk2 is always needed for the plugin system.
GL* support was only tested via mesa software renderer.
Wayland support wasn't enabled because it still needs gtk2 (plugins) - this could possibly be patched away.
Multimedia support is automatic via detection of gst1-plugins-base, ideally this should be an option but right now opencv+gst generate a dependency loop if gstreamer1 is selected. Also codecs will need to be catered by the user via the appropiate gst selects.
MIPS support was disabled pending libatomic support for __sync_fetch_and_add_8 which is handled there for some 32-bit architectures.
Update for v2: MIPS(eb) SIGBUSes, so disabled in general, kept the libatomic tweak for reference. MIPSel untested.
Possible TODOs:
Wayland in a proper way, granite support, gcr support, more arch testing/support.
v2:
* Needs NPTL [Gustavo]
It uses pthread_getattr_np()
* Handle libatomic [Gustavo]
Needed for i386, mips & mipsel at least.
* Deprecate libgail, no longer used by any package [Gustavo]
v1:
* Bump webkitgtk to version 2.4.x in a versioned package. This is because midori can't use 2.6.x or 2.8.x and this way we can have another webkitgtk package in parallel for other uses. The series is still security-supported upstream.
* Bump midori to version 0.5.9.
No effort was made to enable support for the old webkit 1.x. series, it may be possible to do so but it makes no sense.
* Deprecate old webkit package.
Security bugs, build issues, general instability.
Gustavo Zacarias (5):
gcc-final: install libatomic
webkitgtk24: new package
midori: bump to version 0.5.9
webkit: mark as deprecated
libgail: mark as deprecated
package/Config.in | 1 + package/gcc/gcc-final/gcc-final.mk | 9 +++ package/libgail/Config.in | 2 + package/midori/0001-disable-libnotify.patch | 43 +++++++++++ package/midori/Config.in | 39 +++++++--- package/midori/midori.hash | 2 + package/midori/midori.mk | 57 +++++++------- package/webkit/Config.in | 3 + package/webkitgtk24/0001-fix-bug-137640.patch | 17 +++++ package/webkitgtk24/Config.in | 56 ++++++++++++++ package/webkitgtk24/webkitgtk24.hash | 2 + package/webkitgtk24/webkitgtk24.mk | 102 ++++++++++++++++++++++++++ 12 files changed, 294 insertions(+), 39 deletions(-) create mode 100644 package/midori/0001-disable-libnotify.patch create mode 100644 package/midori/midori.hash create mode 100644 package/webkitgtk24/0001-fix-bug-137640.patch create mode 100644 package/webkitgtk24/Config.in create mode 100644 package/webkitgtk24/webkitgtk24.hash create mode 100644 package/webkitgtk24/webkitgtk24.mk
Signature · 1 line
2.0.5
PATCH v2 1/5 gcc-final: install libatomic
It's required in some 32-bit architectures for the extended (64-bit) atomic operations, like __sync_add_and_fetch_8.
These arches are at least: i386, mips & mipsel.
Target size growth is ~15 KiB for ARM.
--- package/gcc/gcc-final/gcc-final.mk | 9 +++++++++ 1 file changed, 9 insertions(+)
package/gcc/gcc-final/gcc-final.mk +9 -0
@@ -118,6 +118,15 @@ endef HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBGCC +define HOST_GCC_FINAL_INSTALL_LIBATOMIC + -cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libatomic* \ + $(STAGING_DIR)/lib/ + -cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libatomic* \ + $(TARGET_DIR)/lib/ +endef + +HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBATOMIC + # Handle the installation of libraries in /usr/lib HOST_GCC_FINAL_USR_LIBS =
Signature · 1 line
2.0.5
PATCH v2 1/5 gcc-final: install libatomic
Dear Gustavo Zacarias,
Quoted 7 lines · Gustavo Zacarias
It's required in some 32-bit architectures for the extended (64-bit) atomic operations, like
__sync_add_and_fetch_8.
These arches are at least: i386, mips & mipsel.Target size growth is ~15 KiB for ARM.
Signed-off-by Gustavo Zacarias <[email protected]>
What is your proposal to handle libatomic for the external toolchain case?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/5 gcc-final: install libatomic
Quoted 2 lines · Thomas Petazzoni
What is your proposal to handle libatomic for the external toolchain case?
Actually it's already copied into staging, so i did't see any breakage at build time, but yes, runtime is a different story. Adding libatomic.so.* to LIB_EXTERNAL_LIBS in toolchain/toolchain-external/toolchain-external.mk is enough. I'll send a patch if this is the proper course of action, otherwise exclude webkit/midori for some external toolchains. Regards.
PATCH v2 1/5 gcc-final: install libatomic
Dear Gustavo Zacarias,
Quoted 6 lines · Gustavo Zacarias
Actually it's already copied into staging, so i did't see any breakage at build time, but yes, runtime is a different story. Adding libatomic.so.* to
LIB_EXTERNAL_LIBSintoolchain/toolchain-external/toolchain-external.mkis enough. I'll send a patch if this is the proper course of action, otherwise exclude webkit/midori for some external toolchains.
Is libatomic going to be provided by all toolchains on all architectures?
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/5 gcc-final: install libatomic
Quoted 2 lines · Thomas Petazzoni
Is libatomic going to be provided by all toolchains on all architectures?
It doesn't matter, if the file isn't available it won't error out (tested on blackfin external toolchain).
Regards.
PATCH v2 2/5 webkitgtk24: new package
In reply to Gustavo ZacariasAdd new webkitgtk24 package.
The difference with the legacy webkit package is that this one uses the new webkit2 API, and optionally the webkit1 API.
It's versioned because the latest release of midori can't use the newer 2.6.x or 2.8.x webkitgtk versions yet.
This paves the way for a newer webkit26 or webkit28 package that can live side-by-side with this one for other uses.
Some loose checks (like !xorg7) are in place for possible/future wayland support.
Right now wayland requires gtk2, hence xorg, but it might be possible to patch that out with some work (it seems to be done for version 2.6.x, though the build system changed to cmake so it might not be a straighfoward patch).
Choices had to be made in the GL-area, right now the preference order is libGL (full OpenGL), then GLES, then nothing (obviously). And when gtk3 is around it's also preferred as well.
--- package/Config.in | 1 + package/webkitgtk24/0001-fix-bug-137640.patch | 17 +++++ package/webkitgtk24/Config.in | 56 ++++++++++++++ package/webkitgtk24/webkitgtk24.hash | 2 + package/webkitgtk24/webkitgtk24.mk | 102 ++++++++++++++++++++++++++ 5 files changed, 178 insertions(+) create mode 100644 package/webkitgtk24/0001-fix-bug-137640.patch create mode 100644 package/webkitgtk24/Config.in create mode 100644 package/webkitgtk24/webkitgtk24.hash create mode 100644 package/webkitgtk24/webkitgtk24.mk
package/Config.in +1 -0
@@ -769,6 +769,7 @@ menu "Graphics" source "package/tiff/Config.in" source "package/wayland/Config.in" source "package/webkit/Config.in" + source "package/webkitgtk24/Config.in" source "package/webp/Config.in" source "package/zxing/Config.in" endmenu
package/webkitgtk24/0001-fix-bug-137640.patch new file +17 -0
@@ -0,0 +1,17 @@ +Fix for bug #137640 - build breaks without accelerated compositing. +See: https://bugs.webkit.org/show_bug.cgi?id=137640 + +Singed-off-by: Gustavo Zacarias <[email protected]> + +diff -urN webkitgtk-2.4.6.orig/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp webkitgtk-2.4.6/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp +--- webkitgtk-2.4.6.orig/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp 2014-09-26 11:40:45.000000000 +0400 ++++ webkitgtk-2.4.6/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp 2014-10-11 20:43:16.687116807 +0400 +@@ -110,7 +110,7 @@ + WebCore::memoryCache()->setDeadDecodedDataDeletionInterval(deadDecodedDataDeletionInterval); + WebCore::pageCache()->setCapacity(pageCacheCapacity); + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && USE(ACCELERATED_COMPOSITING) + WebCore::pageCache()->setShouldClearBackingStores(true); + #endif +
package/webkitgtk24/Config.in new file +56 -0
56 lines not on this page · raw message
package/webkitgtk24/webkitgtk24.hash new file +2 -0
@@ -0,0 +1,2 @@ +# From http://www.webkitgtk.org/releases/webkitgtk-2.4.8.tar.xz.sha1 +sha1 44c6bbe52108297126830525619c1df047886a6f webkitgtk-2.4.8.tar.xz
package/webkitgtk24/webkitgtk24.mk new file +102 -0
102 lines not on this page · raw message
Signature · 1 line
2.0.5
PATCH v2 3/5 midori: bump to version 0.5.9
In reply to Gustavo ZacariasBump to version 0.5.9 which uses the new webkit2 API (gtk3) or alternatively fallback to webkit1 compatibility API (gtk2). The old webkit is completely unsupported now, it makes no sense because of instability and security issues.
--- package/midori/0001-disable-libnotify.patch | 43 ++++++++++++++++++++++ package/midori/Config.in | 39 ++++++++++++++------ package/midori/midori.hash | 2 + package/midori/midori.mk | 57 +++++++++++++++-------------- 4 files changed, 102 insertions(+), 39 deletions(-) create mode 100644 package/midori/0001-disable-libnotify.patch create mode 100644 package/midori/midori.hash
package/midori/0001-disable-libnotify.patch new file +43 -0
@@ -0,0 +1,43 @@ +Disable libnotify support, we've got no package and it's not very useful +in embedded targets anyway. +The webmedia extension requires libnotify as well. + +Signed-off-by: Gustavo Zacarias <[email protected]> + +diff -Nura midori-0.5.9.orig/CMakeLists.txt midori-0.5.9/CMakeLists.txt +--- midori-0.5.9.orig/CMakeLists.txt 2015-03-30 15:57:29.554632932 -0300 ++++ midori-0.5.9/CMakeLists.txt 2015-03-30 15:57:35.299830192 -0300 +@@ -143,16 +143,7 @@ + endif () + endif () + +-if (WIN32) +- add_definitions("-DLIBNOTIFY_VERSION=\"No\"") +-else () +- pkg_check_modules(NOTIFY REQUIRED libnotify) +- add_definitions("-DLIBNOTIFY_VERSION=\"${NOTIFY_VERSION}\"") +- add_definitions("-DHAVE_LIBNOTIFY") +- set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${NOTIFY_INCLUDE_DIRS}") +- set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${NOTIFY_LIBRARIES}") +- set(PKGS ${PKGS} libnotify) +-endif () ++add_definitions("-DLIBNOTIFY_VERSION=\"No\"") + + option(USE_GTK3 "Use GTK+3" OFF) + option(HALF_BRO_INCOM_WEBKIT2 "Serve as a guniea pig" OFF) +diff -Nura midori-0.5.9.orig/extensions/CMakeLists.txt midori-0.5.9/extensions/CMakeLists.txt +--- midori-0.5.9.orig/extensions/CMakeLists.txt 2015-03-30 15:57:29.544632589 -0300 ++++ midori-0.5.9/extensions/CMakeLists.txt 2015-03-30 15:57:51.777395949 -0300 +@@ -24,11 +24,7 @@ + ) + endif () + +-# FIXME: re-enable webmedia extension +-# once we have working notifications on win +-if (WIN32) +- list(REMOVE_ITEM EXTENSIONS "webmedia-now-playing.vala") +-endif() ++list(REMOVE_ITEM EXTENSIONS "webmedia-now-playing.vala") + + foreach(UNIT_SRC ${EXTENSIONS}) + string(FIND ${UNIT_SRC} ".c" UNIT_EXTENSION)
package/midori/Config.in +27 -12
@@ -1,20 +1,35 @@ +comment "midori needs libgtk2 and a toolchain w/ C++, wchar, NPTL" + depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ + !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_LIBGTK2 + config BR2_PACKAGE_MIDORI bool "midori" - select BR2_PACKAGE_WEBKIT - select BR2_PACKAGE_LIBSEXY + select BR2_PACKAGE_LIBSOUP + select BR2_PACKAGE_LIBSOUP_GNOME + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_WEBKITGTK24 select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE - depends on BR2_PACKAGE_LIBGTK2 - depends on BR2_INSTALL_LIBSTDCPP # webkit - depends on BR2_TOOLCHAIN_HAS_THREADS # webkit -> enchant -> libglib2 - depends on BR2_USE_WCHAR # webkit - depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS + depends on (BR2_PACKAGE_LIBGTK2 && BR2_PACKAGE_XORG7) + depends on BR2_INSTALL_LIBSTDCPP # webkitgtk24 + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # webkitgtk24 + depends on BR2_USE_WCHAR # webkitgtk24 + depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS help Midori is a lightweight web browser based on WebKit - http://software.twotoasts.de/?page=midori + http://www.midori-browser.org/ -comment "midori needs libgtk2 and a toolchain w/ C++, wchar, threads" - depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ - !BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_LIBGTK2 +if BR2_PACKAGE_MIDORI + +config BR2_PACKAGE_MIDORI_HTTPS + bool "HTTPS support" + select BR2_PACKAGE_CA_CERTIFICATES # runtime + select BR2_PACKAGE_GLIB_NETWORKING + select BR2_PACKAGE_GNUTLS # for glib-networking + help + Enable HTTPS protocol support + +endif
package/midori/midori.hash new file +2 -0
@@ -0,0 +1,2 @@ +# From download link @ http://midori-browser.org/download/source/ +sha1 475614dcc89a214a3c2fdc2aaefc817a5fa0ca03 midori_0.5.9_all_.tar.bz2
package/midori/midori.mk +30 -27
74 lines not on this page · raw message
Signature · 1 line
2.0.5
PATCH v2 4/5 webkit: mark as deprecated
In reply to Gustavo ZacariasMark webkit as deprecated now that midori has been updated to use webkitgtk24.
It has multiple CVEs under it's belt and is no longer maintained upstream.
--- package/webkit/Config.in | 3 +++ 1 file changed, 3 insertions(+)
package/webkit/Config.in +3 -0
@@ -5,11 +5,13 @@ config BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS default y if BR2_i386 || BR2_mips || BR2_mipsel || \ BR2_sparc || BR2_x86_64 depends on BR2_USE_MMU # libgail -> pango -> libglib2 + depends on BR2_DEPRECATED_SINCE_2015_05 # disabled on powerpc due to bug https://bugs.webkit.org/show_bug.cgi?id=113638 config BR2_PACKAGE_WEBKIT bool "webkit" + depends on BR2_DEPRECATED_SINCE_2015_05 depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR # enchant -> libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # enchant -> libglib2; icu
@@ -43,6 +45,7 @@ config BR2_PACKAGE_WEBKIT http://webkit.org/ comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads" + depends on BR2_DEPRECATED_SINCE_2015_05 depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS depends on BR2_ARCH_HAS_ATOMICS # cairo depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
Signature · 1 line
2.0.5
PATCH v2 5/5 libgail: mark as deprecated
In reply to Gustavo ZacariasMark libgail as deprecated now that midori has been updated to use webkitgtk24 and the only package that uses it (webkit) has been deprecated.
--- package/libgail/Config.in | 2 ++ 1 file changed, 2 insertions(+)
package/libgail/Config.in +2 -0
@@ -6,6 +6,7 @@ config BR2_PACKAGE_LIBGAIL depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype depends on BR2_ARCH_HAS_ATOMICS # pango -> cairo depends on BR2_PACKAGE_LIBGTK2 + depends on BR2_DEPRECATED_SINCE_2015_05 select BR2_PACKAGE_PANGO help GAIL provides accessibility support for gtk+ and
@@ -27,3 +28,4 @@ comment "libgail needs a toolchain w/ C++, wchar, threads" depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU depends on BR2_ARCH_HAS_ATOMICS + depends on BR2_DEPRECATED_SINCE_2015_05
Signature · 1 line
2.0.5