diff --git a/.gitmodules b/.gitmodules index 5ed2017..0103110 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,20 +1,20 @@ [submodule "base-image/meta-openembedded"] path = base-image/meta-openembedded url = git://git.openembedded.org/meta-openembedded - branch = sumo + branch = dunfell [submodule "base-image/poky"] path = base-image/poky url = git://git.yoctoproject.org/poky - branch = sumo + branch = dunfell [submodule "base-image/meta-raspberrypi"] path = base-image/meta-raspberrypi url = git://git.yoctoproject.org/meta-raspberrypi - branch = sumo -[submodule "base-image/meta-gstreamer1.0"] - path = base-image/meta-gstreamer1.0 - url = https://github.com/OSSystems/meta-gstreamer1.0 - branch = sumo + branch = dunfell +[submodule "base-image/meta-qt5"] + path = base-image/meta-qt5 + url = https://github.com/meta-qt5/meta-qt5.git + branch = dunfell [submodule "base-image/meta-webkit"] path = base-image/meta-webkit url = https://github.com/Igalia/meta-webkit - branch = sumo + branch = master diff --git a/base-image/meta-gstreamer1.0 b/base-image/meta-gstreamer1.0 deleted file mode 160000 index 59dfad7..0000000 --- a/base-image/meta-gstreamer1.0 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 59dfad71768cf53f7863cbe53432cbb77a25a6ee diff --git a/base-image/meta-openembedded b/base-image/meta-openembedded index 8760fac..8a72d29 160000 --- a/base-image/meta-openembedded +++ b/base-image/meta-openembedded @@ -1 +1 @@ -Subproject commit 8760facba1bceb299b3613b8955621ddaa3d4c3f +Subproject commit 8a72d29e0876830ffd96b85d7d0308302eb07a5d diff --git a/base-image/meta-qt5 b/base-image/meta-qt5 new file mode 160000 index 0000000..fdd1951 --- /dev/null +++ b/base-image/meta-qt5 @@ -0,0 +1 @@ +Subproject commit fdd19517e17240b0b61765bd02fc483a1bde986f diff --git a/base-image/meta-raspberrypi b/base-image/meta-raspberrypi index 2d40b00..ac71747 160000 --- a/base-image/meta-raspberrypi +++ b/base-image/meta-raspberrypi @@ -1 +1 @@ -Subproject commit 2d40b000021bc8a9ef7f329ed0ad410f8d227b97 +Subproject commit ac717473e89b835da2eb418b0507644d71aa61c2 diff --git a/base-image/meta-resin-wpe/conf/layer.conf b/base-image/meta-resin-wpe/conf/layer.conf index d69daaa..c56a3bf 100644 --- a/base-image/meta-resin-wpe/conf/layer.conf +++ b/base-image/meta-resin-wpe/conf/layer.conf @@ -7,4 +7,4 @@ BBFILE_COLLECTIONS += "resin-wpe" BBFILE_PATTERN_resin-wpe := "^${LAYERDIR}/" BBFILE_PRIORITY_resin-wpe = "99" -LAYERSERIES_COMPAT_resin-wpe = "sumo" +LAYERSERIES_COMPAT_resin-wpe = "sumo thud warrior dunfell" diff --git a/base-image/meta-resin-wpe/conf/samples/bblayers.conf.sample b/base-image/meta-resin-wpe/conf/samples/bblayers.conf.sample index 096d7e3..f262e8e 100644 --- a/base-image/meta-resin-wpe/conf/samples/bblayers.conf.sample +++ b/base-image/meta-resin-wpe/conf/samples/bblayers.conf.sample @@ -12,7 +12,7 @@ BBLAYERS ?= " \ ${TOPDIR}/../meta-raspberrypi \ ${TOPDIR}/../meta-webkit \ ${TOPDIR}/../meta-resin-wpe \ - ${TOPDIR}/../meta-gstreamer1.0 \ + ${TOPDIR}/../meta-qt5 \ ${TOPDIR}/../meta-openembedded/meta-oe \ ${TOPDIR}/../meta-openembedded/meta-python \ " diff --git a/base-image/meta-resin-wpe/conf/samples/local.conf.sample b/base-image/meta-resin-wpe/conf/samples/local.conf.sample index e2ba7ab..d768cb7 100644 --- a/base-image/meta-resin-wpe/conf/samples/local.conf.sample +++ b/base-image/meta-resin-wpe/conf/samples/local.conf.sample @@ -32,6 +32,7 @@ DISTRO_FEATURES_append = " opengl wayland" IMAGE_FEATURES_append = " hwcodecs" # Use proprietary Broadcom OpenGL drivers and wpebackend-rdk +MACHINE_FEATURES_remove = "vc4graphics" PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-rdk" PACKAGECONFIG_pn-wpebackend-rdk = "rpi" @@ -39,11 +40,13 @@ PACKAGECONFIG_pn-wpebackend-rdk = "rpi" IMAGE_INSTALL_append = " gstreamer1.0-omx" LICENSE_FLAGS_WHITELIST_append = " commercial" -# Enable accelerated 2D HTML5 canvas +# Enable accelerated 2D HTML5 canvas (cannot specify both glesv2 and opengl for cairo) PACKAGECONFIG_append_pn-cairo = " glesv2 egl" +PACKAGECONFIG_remove_pn-cairo = " opengl" PACKAGECONFIG_append_pn-wpewebkit = " 2dcanvas" # Specify versions -PREFERRED_VERSION_cog = "0.2.%" -PREFERRED_VERSION_libwpe = "1.0.%" -PREFERRED_VERSION_wpewebkit = "2.22.%" +PREFERRED_VERSION_cog = "0.6.%" +PREFERRED_VERSION_libwpe = "1.6.%" +PREFERRED_VERSION_wpewebkit = "2.28.%" + diff --git a/base-image/meta-resin-wpe/recipes-browser/cog/cog.inc b/base-image/meta-resin-wpe/recipes-browser/cog/cog.inc new file mode 100644 index 0000000..22193b9 --- /dev/null +++ b/base-image/meta-resin-wpe/recipes-browser/cog/cog.inc @@ -0,0 +1,49 @@ +SUMMARY = "Cog is a small launcher designed for the WebKit WPE port. \ + But it also allows to use the WebKit GTK port instead. \ + Cog is small: provides no user interface, and is suitable \ + to be used as a Web application container. Cog may be \ + presented fullscreen depending on the WPE backend being used. \ + " +HOMEPAGE = "https://github.com/Igalia/cog" +BUGTRACKER = "https://github.com/Igalia/cog/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=bf1229cd7425b302d60cdb641b0ce5fb" + +# Depend on wpewebkit unless the webkitgtk packageconfig option is selected. +DEPENDS = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'webkitgtk', 'webkitgtk', 'wpewebkit', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'fdo', 'wayland', '', d)} \ + libsoup-2.4 glib-2.0 wayland-native wayland-protocols \ + " + +DEPENDS_append_class-target = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'fdo', 'wayland-native', '', d)} \ + " + +# At run-time cog package should depend on virtual/wpebackend unless webkitgtk+ is enabled. +RDEPENDS_${PN} += "\ + ${@bb.utils.contains('PACKAGECONFIG', 'webkitgtk', '', 'virtual/wpebackend', d)} \ + xkeyboard-config \ + " + +inherit cmake + +# Cog can work with any wpebackend. +# But for using wpebackend-fdo this has to be enabled at build time. +PREFERRED_PROVIDER_virtual/wpebackend ?= "wpebackend-fdo" +PACKAGECONFIG ?= " ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/wpebackend', 'wpebackend-fdo', 'fdo', '', d)} " + +# libcogplatform*.so are plugins that should go on the main package (not on -dev) +# https://github.com/Igalia/cog/commit/758ed08555e8152a2becd2178d1f3a4ce6e67af9 +# Also libWPEBackend-default.so should go into the main package. +FILES_SOLIBSDEV = "${libdir}/libcogcore*.so" +FILES_${PN} += "${libdir}/libcogplatform*.so" +INSANE_SKIP_${PN} = "dev-so" + +# Use WebKitGTK+ instead of WPEWebKit +PACKAGECONFIG[webkitgtk] = "-DCOG_USE_WEBKITGTK=ON,-DCOG_USE_WEBKITGTK=OFF" +# Expose remote control interface on system bus. +PACKAGECONFIG[dbus] = "-DCOG_DBUS_SYSTEM_BUS=ON,-DCOG_DBUS_SYSTEM_BUS=OFF" +# Use wpebackend-fdo. +PACKAGECONFIG[fdo] = "-DCOG_PLATFORM_FDO=ON,-DCOG_PLATFORM_FDO=OFF,wpebackend-fdo" +PACKAGECONFIG[drm] = "-DCOG_PLATFORM_DRM=ON,-DCOG_PLATFORM_DRM=OFF,wpebackend-fdo libdrm virtual/libgbm libinput" diff --git a/base-image/meta-resin-wpe/recipes-browser/cog/cog_0.6.0.bb b/base-image/meta-resin-wpe/recipes-browser/cog/cog_0.6.0.bb new file mode 100644 index 0000000..1e1594d --- /dev/null +++ b/base-image/meta-resin-wpe/recipes-browser/cog/cog_0.6.0.bb @@ -0,0 +1,8 @@ +require cog.inc + +SRC_URI = "https://github.com/Igalia/cog/releases/download/v${PV}/cog-${PV}.tar.xz" + +SRC_URI[md5sum] = "a97df4f0e2d25f4da7cd9bb55294d30e" +SRC_URI[sha256sum] = "208f58e0533b269400875237a95e994c93da7234a29fd1c904e756b88963e35d" + +RDEPENDS_${PN} += "wpewebkit (>= 2.24)" diff --git a/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit.inc b/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit.inc new file mode 100644 index 0000000..f7accb4 --- /dev/null +++ b/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit.inc @@ -0,0 +1,109 @@ +SUMMARY = "WPE WebKit port pairs the WebKit engine with OpenGL-ES (OpenGL for Embedded Systems), \ + allowing embedders to create simple and performant systems based on Web platform technologies. \ + It is designed with hardware acceleration in mind, relying on EGL, and OpenGL ES." +HOMEPAGE = "https://trac.webkit.org/wiki/WPE" +BUGTRACKER = "https://bugs.webkit.org/" +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 " + +DEPENDS = " \ + bison-native gperf-native harfbuzz-native libxml2-native ccache-native ninja-native ruby-native cairo \ + fontconfig freetype glib-2.0 gnutls harfbuzz icu jpeg pcre sqlite3 zlib libpng \ + libsoup-2.4 libwebp libxml2 libxslt virtual/egl virtual/libgles2 libepoxy libgcrypt \ +" + +inherit cmake pkgconfig perlnative python3native +inherit ${@'cmake_qt5' if 'qt5-layer' in d.getVar('BBFILE_COLLECTIONS').split() else ''} + +CCACHE_DISABLE[unexport] = "1" + +PACKAGECONFIG ??= "fetchapi indexeddb mediasource video webaudio webcrypto woff2 gst_gl remote-inspector openjpeg unified-builds" + +# WPE features +PACKAGECONFIG[accessibility] = "-DENABLE_ACCESSIBILITY=ON,-DENABLE_ACCESSIBILITY=OFF,atk at-spi2-atk" +PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,bubblewrap xdg-dbus-proxy bubblewrap-native xdg-dbus-proxy-native libseccomp" +PACKAGECONFIG[developer-mode] = "-DDEVELOPER_MODE=ON,-DDEVELOPER_MODE=OFF,wayland-native wayland-protocols wpebackend-fdo" +PACKAGECONFIG[deviceorientation] = "-DENABLE_DEVICE_ORIENTATION=ON,-DENABLE_DEVICE_ORIENTATION=OFF," +PACKAGECONFIG[encryptedmedia] = "-DENABLE_ENCRYPTED_MEDIA=ON,-DENABLE_ENCRYPTED_MEDIA=OFF,libgcrypt" +PACKAGECONFIG[fetchapi] = "-DENABLE_FETCH_API=ON,-DENABLE_FETCH_API=OFF," +PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF," +PACKAGECONFIG[geolocation] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" +PACKAGECONFIG[gst_gl] = "-DUSE_GSTREAMER_GL=ON,-DUSE_GSTREAMER_GL=OFF,gstreamer1.0-plugins-base" +PACKAGECONFIG[indexeddb] = "-DENABLE_INDEXED_DATABASE=ON,-DENABLE_INDEXED_DATABASE=OFF," +PACKAGECONFIG[mediasource] = "-DENABLE_MEDIA_SOURCE=ON,-DENABLE_MEDIA_SOURCE=OFF,gstreamer1.0 gstreamer1.0-plugins-good" +PACKAGECONFIG[service-worker] = "-DENABLE_SERVICE_WORKER=ON,-DENABLE_SERVICE_WORKER=OFF," +PACKAGECONFIG[video] = "-DENABLE_VIDEO=ON -DENABLE_VIDEO_TRACK=ON,-DENABLE_VIDEO=OFF -DENABLE_VIDEO_TRACK=OFF,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[webaudio] = "-DENABLE_WEB_AUDIO=ON,-DENABLE_WEB_AUDIO=OFF,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good" +PACKAGECONFIG[webcrypto] = "-DENABLE_WEB_CRYPTO=ON,-DENABLE_WEB_CRYPTO=OFF,libgcrypt libtasn1" +PACKAGECONFIG[webgl2] = "-DENABLE_WEBGL2=ON,-DENABLE_WEBGL2=OFF," +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" +# 2dcanvas requires cairo with opengl support. Try by setting in local.conf: PACKAGECONFIG_append_pn-cairo = " glesv2" +PACKAGECONFIG[2dcanvas] = "-DENABLE_ACCELERATED_2D_CANVAS=ON,-DENABLE_ACCELERATED_2D_CANVAS=OFF," +PACKAGECONFIG[remote-inspector] = "-DENABLE_REMOTE_INSPECTOR=ON,-DENABLE_REMOTE_INSPECTOR=OFF," +PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF,libvpx libevent libopus" +PACKAGECONFIG[qtwpe] = "-DENABLE_WPE_QT_API=ON,-DENABLE_WPE_QT_API=OFF,qtbase-native qtbase qtdeclarative qtquickcontrols2 libepoxy wpebackend-fdo" +PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" +PACKAGECONFIG[unified-builds] = "-DENABLE_UNIFIED_BUILDS=ON,-DENABLE_UNIFIED_BUILDS=OFF," + + +EXTRA_OECMAKE = " -DPORT=WPE -DCMAKE_BUILD_TYPE=Release -G Ninja" + +# If SSE code compiles, assume it runs successfully (it can't actually run +# because of cross compiling) +EXTRA_OECMAKE_append_x86 = " -DHAVE_SSE2_EXTENSIONS_EXITCODE=0" +# mips/gold does not yet implement +# error: .gnu.hash is incompatible with the MIPS ABI +EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " + +LDFLAGS_append_riscv64 = " -pthread" + +FULL_OPTIMIZATION_remove = "-g" + +LEAD_SONAME = "libWPEWebKit.so" +PACKAGES =+ "${PN}-web-inspector-plugin ${PN}-qtwpe-qml-plugin" +FILES_${PN} += "${libdir}/wpe-webkit*/injected-bundle/libWPEInjectedBundle.so" +FILES_${PN}-web-inspector-plugin += "${libdir}/libWPEWebInspectorResources.so ${libdir}/wpe-webkit-*/libWPEWebInspectorResources.so" +INSANE_SKIP_${PN}-web-inspector-plugin = "dev-so" + +FILES_${PN}-qtwpe-qml-plugin += "${libdir}/qt5/qml/org/wpewebkit/qtwpe/*" +INSANE_SKIP_${PN}-qtwpe-qml-plugin = "dev-so" + +# JSC JIT on ARMv7 is better supported with Thumb2 instruction set. +ARM_INSTRUCTION_SET_armv7a = "thumb" +ARM_INSTRUCTION_SET_armv7r = "thumb" +ARM_INSTRUCTION_SET_armv7m = "thumb" +ARM_INSTRUCTION_SET_armv7ve = "thumb" + +# Extra runtime depends +RDEPENDS_${PN} += " \ + virtual/wpebackend \ + ${@bb.utils.contains('PACKAGECONFIG', 'mediasource', 'gstreamer1.0-plugins-good-isomp4', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'webaudio', 'gstreamer1.0-plugins-good-wavparse', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gst_gl', 'gstreamer1.0-plugins-base-opengl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'video', 'gstreamer1.0-plugins-base-app \ + gstreamer1.0-plugins-base-playback \ + gstreamer1.0-plugins-base-audioconvert \ + gstreamer1.0-plugins-base-audioresample \ + gstreamer1.0-plugins-base-gio \ + gstreamer1.0-plugins-base-videoconvert \ + gstreamer1.0-plugins-base-videoscale \ + gstreamer1.0-plugins-base-volume \ + gstreamer1.0-plugins-base-typefindfunctions \ + gstreamer1.0-plugins-good-audiofx \ + gstreamer1.0-plugins-good-audioparsers \ + gstreamer1.0-plugins-good-autodetect \ + gstreamer1.0-plugins-good-avi \ + gstreamer1.0-plugins-good-deinterlace \ + gstreamer1.0-plugins-good-interleave \ + ', '', d)} \ +" + +# Extra runtime recommends +RRECOMMENDS_${PN} += " \ + ca-certificates \ + shared-mime-info \ + ttf-bitstream-vera \ + ${PN}-web-inspector-plugin \ + ${PN}-qtwpe-qml-plugin \ + ${@bb.utils.contains('PACKAGECONFIG', 'video', 'gstreamer1.0-plugins-base-meta gstreamer1.0-plugins-good-meta gstreamer1.0-plugins-bad-meta', '', d)} \ +" diff --git a/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit_2.28.2.bb b/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit_2.28.2.bb new file mode 100644 index 0000000..63c753f --- /dev/null +++ b/base-image/meta-resin-wpe/recipes-browser/wpewebkit/wpewebkit_2.28.2.bb @@ -0,0 +1,12 @@ +require wpewebkit.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +SRC_URI = "\ + https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz \ +" +SRC_URI[md5sum] = "c1f17d4b031e9462692443e3c089789c" +SRC_URI[sha256sum] = "6929d28744702ead3574484ca02645c457a6fdcd6b43ccc9766d98dc3664e8dc" + +DEPENDS += " libwpe" +RCONFLICTS_${PN} = "libwpe (< 1.2) wpebackend-fdo (< 1.2)" + diff --git a/base-image/meta-resin-wpe/recipes-support/gnutls/gnutls_%.bbappend b/base-image/meta-resin-wpe/recipes-support/gnutls/gnutls_%.bbappend new file mode 100644 index 0000000..9a4251f --- /dev/null +++ b/base-image/meta-resin-wpe/recipes-support/gnutls/gnutls_%.bbappend @@ -0,0 +1,2 @@ +# We need to build GnuTLS with "system trust" +EXTRA_OECONF += " --with-default-trust-store-dir=/etc/ssl/certs" diff --git a/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/files/0001-platform-make-gstreamer-audio-sink-configurable.patch b/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/files/0001-platform-make-gstreamer-audio-sink-configurable.patch deleted file mode 100644 index 4613c1b..0000000 --- a/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/files/0001-platform-make-gstreamer-audio-sink-configurable.patch +++ /dev/null @@ -1,97 +0,0 @@ -From b2485ab61e183a99e1b13fc1fea6dc862c656625 Mon Sep 17 00:00:00 2001 -From: Petros Angelatos -Date: Sun, 20 May 2018 22:54:59 -0700 -Subject: [PATCH] platform: make gstreamer audio sink configurable - -On the RaspberryPi autoaudiosink will always select omxhdmiaudiosink if -an HDMI cable is connected but some users might want to output the audio -on the 3.5mm Jack or some other alsa sound card. - -Introduce the WPE_GSTREAMER_AUDIO_SINK environment variable that can -override the default audio sink. - -Signed-off-by: Petros Angelatos ---- - .../audio/gstreamer/AudioDestinationGStreamer.cpp | 10 +++++++--- - .../audio/gstreamer/AudioSourceProviderGStreamer.cpp | 7 ++++++- - .../graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp | 8 ++++++-- - 3 files changed, 19 insertions(+), 6 deletions(-) - -diff --git a/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp b/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp -index 5bf8fda6b29..3b11744b276 100644 ---- a/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp -+++ b/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp -@@ -95,10 +95,14 @@ AudioDestinationGStreamer::AudioDestinationGStreamer(AudioIOCallback& callback, - "provider", &m_callback, - "frames", framesToPull, nullptr)); - -- GRefPtr audioSink = gst_element_factory_make("autoaudiosink", nullptr); -+ const char* audioSinkName = getenv("WPE_GSTREAMER_AUDIO_SINK"); -+ if (!audioSinkName) { -+ audioSinkName = "autoaudiosink"; -+ } -+ GRefPtr audioSink = gst_element_factory_make(audioSinkName, nullptr); - m_audioSinkAvailable = audioSink; - if (!audioSink) { -- LOG_ERROR("Failed to create GStreamer autoaudiosink element"); -+ LOG_ERROR("Failed to create GStreamer %s element", audioSinkName); - return; - } - -@@ -109,7 +113,7 @@ AudioDestinationGStreamer::AudioDestinationGStreamer(AudioIOCallback& callback, - // audiosink was loaded correctly. - GstStateChangeReturn stateChangeReturn = gst_element_set_state(audioSink.get(), GST_STATE_READY); - if (stateChangeReturn == GST_STATE_CHANGE_FAILURE) { -- LOG_ERROR("Failed to change autoaudiosink element state"); -+ LOG_ERROR("Failed to change %s element state", audioSinkName); - gst_element_set_state(audioSink.get(), GST_STATE_NULL); - m_audioSinkAvailable = false; - return; -diff --git a/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp b/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp -index 01882e1edf9..3b39c3668f9 100644 ---- a/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp -+++ b/Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp -@@ -116,6 +116,11 @@ void AudioSourceProviderGStreamer::configureAudioBin(GstElement* audioBin, GstEl - { - m_audioSinkBin = audioBin; - -+ const char* audioSinkName = getenv("WPE_GSTREAMER_AUDIO_SINK"); -+ if (!audioSinkName) { -+ audioSinkName = "autoaudiosink"; -+ } -+ - GstElement* audioTee = gst_element_factory_make("tee", "audioTee"); - GstElement* audioQueue = gst_element_factory_make("queue", nullptr); - GstElement* audioConvert = gst_element_factory_make("audioconvert", nullptr); -@@ -123,7 +128,7 @@ void AudioSourceProviderGStreamer::configureAudioBin(GstElement* audioBin, GstEl - GstElement* audioResample = gst_element_factory_make("audioresample", nullptr); - GstElement* audioResample2 = gst_element_factory_make("audioresample", nullptr); - GstElement* volumeElement = gst_element_factory_make("volume", "volume"); -- GstElement* audioSink = gst_element_factory_make("autoaudiosink", nullptr); -+ GstElement* audioSink = gst_element_factory_make(audioSinkName, nullptr); - - gst_bin_add_many(GST_BIN(m_audioSinkBin.get()), audioTee, audioQueue, audioConvert, audioResample, volumeElement, audioConvert2, audioResample2, audioSink, nullptr); - -diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -index 2994862b63b..187b52148f8 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -@@ -2250,9 +2250,13 @@ void MediaPlayerPrivateGStreamer::setPreload(MediaPlayer::Preload preload) - - GstElement* MediaPlayerPrivateGStreamer::createAudioSink() - { -- m_autoAudioSink = gst_element_factory_make("autoaudiosink", nullptr); -+ const char* audioSinkName = getenv("WPE_GSTREAMER_AUDIO_SINK"); -+ if (!audioSinkName) { -+ audioSinkName = "autoaudiosink"; -+ } -+ m_autoAudioSink = gst_element_factory_make(audioSinkName, nullptr); - if (!m_autoAudioSink) { -- GST_WARNING("GStreamer's autoaudiosink not found. Please check your gst-plugins-good installation"); -+ GST_WARNING("GStreamer's %s not found. Please check your plugins installation", audioSinkName); - return nullptr; - } - --- -2.17.0 - diff --git a/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/wpewebkit_2.22.5.bbappend b/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/wpewebkit_2.22.5.bbappend deleted file mode 100644 index a7c7b7d..0000000 --- a/base-image/meta-resin-wpe/recipes-webkit/wpewebkit/wpewebkit_2.22.5.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -FILESEXTRAPATHS_append := ":${THISDIR}/files" - -SRC_URI_append = " \ - file://0001-platform-make-gstreamer-audio-sink-configurable.patch \ -" diff --git a/base-image/meta-webkit b/base-image/meta-webkit index 0fd8a2e..f940cc1 160000 --- a/base-image/meta-webkit +++ b/base-image/meta-webkit @@ -1 +1 @@ -Subproject commit 0fd8a2eeb86b97799b22f5e5be03bd8132d8eeda +Subproject commit f940cc145e5c1c25b39c42afa8e02ef55ef56e50 diff --git a/base-image/poky b/base-image/poky index 5ddf7ff..0fc9d32 160000 --- a/base-image/poky +++ b/base-image/poky @@ -1 +1 @@ -Subproject commit 5ddf7fff992b065ee512878d2fe65f3e35d818cf +Subproject commit 0fc9d32ae11ebb53aa33342f50887c1e692a1f32 diff --git a/wpe-init b/wpe-init index 54cf5aa..6f37413 100755 --- a/wpe-init +++ b/wpe-init @@ -12,18 +12,11 @@ if [ -f /sys/class/backlight/rpi_backlight/brightness ]; then echo $RPI_BACKLIGHT > /sys/class/backlight/rpi_backlight/brightness fi -# Writable directories. See documentation here: -# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html -export HOME=/tmp/balena -mkdir -p /tmp/balena/xdg_runtime -chmod 0700 /tmp/balena/xdg_runtime -export XDG_RUNTIME_DIR=/tmp/balena/xdg_runtime - # Enable touch screen export WPE_BCMRPI_TOUCH=1 # Start browser -cog $WPE_URL & +cog --cookie-store=always $WPE_URL & # Start Tohora ./tohora 8080 cog