Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,8 @@
require core-image-sato.bb
DESCRIPTION = "Image with Sato for development work. It includes everything \
within core-image-sato plus a native toolchain, application development and \
testing libraries, profiling and debug symbols."
HOMEPAGE = "https://www.yoctoproject.org/"
IMAGE_FEATURES += "dev-pkgs"
@@ -0,0 +1,15 @@
require core-image-sato.bb
DESCRIPTION = "Image with Sato support that includes everything within \
core-image-sato plus meta-toolchain, development headers and libraries to \
form a standalone SDK."
HOMEPAGE = "https://www.yoctoproject.org/"
IMAGE_FEATURES += "dev-pkgs tools-sdk \
tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks ssh-server-openssh"
IMAGE_INSTALL += "kernel-devsrc"
# Compiling stuff, specifically SystemTap probes, can require lots of memory
# See https://bugzilla.yoctoproject.org/show_bug.cgi?id=14673
QB_MEM = "-m 768"
@@ -0,0 +1,17 @@
DESCRIPTION = "Image with Sato, a mobile environment and visual style for \
mobile devices. The image supports X11 with a Sato theme, Pimlico \
applications, and contains terminal, editor, and file manager."
HOMEPAGE = "https://www.yoctoproject.org/"
IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear hwcodecs"
LICENSE = "MIT"
inherit core-image
TOOLCHAIN_HOST_TASK:append = " nativesdk-intltool nativesdk-glib-2.0"
TOOLCHAIN_HOST_TASK:remove:task-populate-sdk-ext = " nativesdk-intltool nativesdk-glib-2.0"
QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}'
QB_MEM:qemuarmv5 = "-m 256"
QB_MEM:qemumips = "-m 256"
@@ -0,0 +1,29 @@
SUMMARY = "Simple GTK+ Text Editor"
DESCRIPTION = "L3afpad is a simple GTK+ text editor that emphasizes simplicity. As development \
focuses on keeping weight down to a minimum, only the most essential features \
are implemented in the editor. L3afpad is simple to use, is easily compiled, \
requires few libraries, and starts up quickly."
HOMEPAGE = "https://github.com/stevenhoneyman/l3afpad"
# Note that COPYING seems to mistakenly contain LGPL-2.1.
# The source code is marked GPL-2.0-or-later and COPYING used to contain
# that as well.
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://src/l3afpad.h;endline=20;md5=8848fd645cd45115d8cb47ca5c42a50e \
file://src/utils.c;endline=20;md5=ae4792f69d3bb7b7ba91d582ba9b1a05"
DEPENDS = "gtk+3 intltool-native gettext-native"
PV = "0.8.18.1.11+git${SRCPV}"
SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git;branch=master;protocol=https"
SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
S = "${WORKDIR}/git"
inherit autotools pkgconfig features_check mime-xdg
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
EXTRA_OECONF = "--disable-emacs --disable-print"
FILES:${PN} += "${datadir}/icons"
@@ -0,0 +1,24 @@
From 989ae1f3651686c1f1046fe1c1596d564c3f452d Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Mon, 13 Dec 2021 14:33:01 +0100
Subject: [PATCH] CMakeLists.txt: do not run cross-binary
Upstream-Status: Inappropriate [issue reported at https://github.com/yusiwen/libptytty/issues/2]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c1ad6c0..3bd4d97 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -271,7 +271,7 @@ if(NOT HAVE_UNIX_FDPASS)
message(FATAL_ERROR "libptytty requires unix-compliant filehandle passing ability")
endif()
-check_c_source_runs(
+check_c_source_compiles(
"
#include <grp.h>
#include <sys/stat.h>
@@ -0,0 +1,13 @@
SUMMARY = " OS independent and secure pty/tty and utmp/wtmp/lastlog handling"
HOMEPAGE = "http://software.schmorp.de/pkg/libptytty.html"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
SRC_URI = "http://dist.schmorp.de/libptytty/libptytty-${PV}.tar.gz \
file://0001-CMakeLists.txt-do-not-run-cross-binary.patch \
"
SRC_URI[sha256sum] = "8033ed3aadf28759660d4f11f2d7b030acf2a6890cb0f7926fb0cfa6739d31f7"
inherit cmake
EXTRA_OECMAKE:append:libc-musl = " -DWTMP_SUPPORT=OFF"
@@ -0,0 +1,39 @@
Upstream-Status: Inappropriate [configuration]
---
appearance/mb-appearance.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/appearance/mb-appearance.c b/appearance/mb-appearance.c
index 6af8376..71fd57b 100644
--- a/appearance/mb-appearance.c
+++ b/appearance/mb-appearance.c
@@ -317,11 +317,13 @@ on_gconf_value_changed (GConfClient* client, const gchar* key, GConfValue* value
gtk_font_button_set_font_name (GTK_FONT_BUTTON (font_button),
gconf_value_get_string (value));
} else if (strcmp (key, HANDED_KEY) == 0) {
+#if 0
GEnumValue *e;
e = g_enum_get_value_by_name (g_type_class_ref (GTK_TYPE_CORNER_TYPE),
gconf_value_get_string (value));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (handed_check),
e->value == GTK_CORNER_TOP_RIGHT);
+#endif
}
}
@@ -408,10 +410,12 @@ main (int argc, char **argv) {
/* Left/Right Handed */
+#if 0
handed_check = gtk_check_button_new_with_mnemonic (_("_Left-handed"));
frame = new_frame (_("Orientation"),handed_check);
gtk_box_pack_start (GTK_BOX (box), frame, TRUE, TRUE, 0);
g_signal_connect (handed_check, "toggled", G_CALLBACK (on_handed_set), NULL);
+#endif
gconf_client_add_dir (gconf, INTERFACE_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
g_signal_connect (gconf, "value-changed", G_CALLBACK (on_gconf_value_changed), NULL);
--
2.8.1
@@ -0,0 +1,23 @@
SUMMARY = "Matchbox GTK+ theme configuration application"
HOMEPAGE = "http://matchbox-project.org"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://appearance/mb-appearance.c;endline=25;md5=f49d7ae8b8634a94315410cd2e055bdf"
DEPENDS = "gconf gtk+3"
RDEPENDS:${PN} = "settings-daemon"
SRCREV = "7182e603357250952aa24d90f6d89345f93da7ce"
SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https \
file://no-handed.patch"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
PV = "0.2+git${SRCPV}"
S = "${WORKDIR}/git"
inherit autotools pkgconfig features_check
# The settings-daemon requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
@@ -0,0 +1,5 @@
[Desktop Entry]
Name=All
Icon=mbfolder.png
Type=Directory
Match=meta-all
@@ -0,0 +1,6 @@
[Desktop Entry]
Name=Applications
Comment=Applications
Icon=gnome-applications.png
Type=Directory
Match=AudioVideo;Audio;Video;Graphics;Network;Office;Utility;System;Development;meta-fallback;
@@ -0,0 +1,9 @@
[Desktop Entry]
Name=Games
Name[de]=Spiele
Comment=Games of all kind
Comment[de]=Spiele aller Art
Icon=mbfolder.png
Type=Directory
Match=Game
@@ -0,0 +1,4 @@
Applications
Games
Settings
All
@@ -0,0 +1,8 @@
[Desktop Entry]
Name=Settings
Name[de]=Einstellungen
Comment=Settings for your handheld computer
Comment[de]=Einstellungen für Ihren Handheld-Computer
Icon=mbfolder.png
Type=Directory
Match=Settings
@@ -0,0 +1,33 @@
SUMMARY = "Matchbox Window Manager Desktop"
DESCRIPTION = "A lightweight windows manager for embedded systems. It uses the desktop background to provide an application launcher and allows modules to be loaded for additional functionality."
HOMEPAGE = "http://matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/desktop.c;endline=20;md5=2e488557570c7dee53bfd0567e4273a9 \
file://src/main.c;endline=19;md5=5d2234b35efa927ab3ae36ebac52ba59"
DEPENDS = "gtk+3 startup-notification dbus"
SECTION = "x11/wm"
SRCREV = "0fd6a0c3f3b7bbf4f4b46190d71f7aef35d6bbfd"
SRC_URI = "git://git.yoctoproject.org/${BPN}-2;branch=master;protocol=https \
file://vfolders/ \
"
EXTRA_OECONF = "--enable-startup-notification --with-dbus"
S = "${WORKDIR}/git"
inherit autotools pkgconfig features_check
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
do_install:append() {
install -d ${D}${datadir}/matchbox/vfolders/
install -m 0644 ${WORKDIR}/vfolders/* ${D}${datadir}/matchbox/vfolders/
}
FILES:${PN} += "${datadir}/matchbox/vfolders/"
@@ -0,0 +1,33 @@
From 38da4cd575edb7463cfff241afff64c2f66ea09a Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 12 Apr 2016 09:40:37 +0300
Subject: [PATCH] desktop file: Hide the keyboard from app list
matchbox-keyboard is not a normal app and there's no need to start
it via the desktop app grid when using Sato desktop:
* when there's no hardware keyboard, the panel applet can be used to
show/hide the daemonized matchbox-keyboard
* when there is a hardware keyboard, matchbox-keyboard can still be
started for debug purposes from command line or the applet can be
enabled by editing /etc/formfactor/machconfig
So hide the keyboard from the desktop app list.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
matchbox-keyboard.desktop | 1 +
1 file changed, 1 insertion(+)
diff --git a/matchbox-keyboard.desktop b/matchbox-keyboard.desktop
index c092bfe..613d349 100644
--- a/matchbox-keyboard.desktop
+++ b/matchbox-keyboard.desktop
@@ -6,3 +6,4 @@ Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True
+NoDisplay=true
--
2.1.4
@@ -0,0 +1,21 @@
#!/bin/sh
. /etc/formfactor/config
CMD=""
if [ "$HAVE_KEYBOARD" = "0" ]; then
CMD="matchbox-keyboard -d"
elif [ "$DISPLAY_CAN_ROTATE" = "1" ]; then
if [ "$HAVE_KEYBOARD_PORTRAIT" = "1" -a "$HAVE_KEYBOARD_LANDSCAPE" = "0" ]; then
CMD="matchbox-keyboard -d -o landscape"
elif [ "$HAVE_KEYBOARD_LANDSCAPE" = "1" -a "$HAVE_KEYBOARD_PORTRAIT" = "0" ]; then
CMD="matchbox-keyboard -d -o portrait"
fi
fi
if [ "$CMD" ]; then
# Delay to make sure the window manager is active
# by waiting for the desktop to say its finished loading
dbus-wait org.matchbox_project.desktop Loaded && $CMD &
fi
@@ -0,0 +1,60 @@
SUMMARY = "Matchbox virtual keyboard for X11"
DESCRIPTION = "An on screen 'virtual' or 'software' keyboard."
HOMEPAGE = "http://matchbox-project.org"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
SECTION = "x11"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://src/matchbox-keyboard.h;endline=17;md5=9d6586c69e4a926f3cb0b4425f24ba3c \
file://applet/applet.c;endline=18;md5=4a0f721724746b14d95b51ddd42b95e7"
DEPENDS = "libfakekey expat libxft"
#SRCREV for 0.1.1
SRCREV = "630d89068dc0a1e9199306d405cb32f892dfa4d3"
SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1;protocol=https \
file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \
file://80matchboxkeyboard.sh"
S = "${WORKDIR}/git"
inherit autotools pkgconfig gettext gtk-immodules-cache features_check
# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF = "--disable-cairo"
PACKAGECONFIG ??= "gtk3-im applet"
PACKAGECONFIG[applet] = "--enable-applet,--disable-applet,matchbox-panel-2"
PACKAGECONFIG[gtk2-im] = "--enable-gtk-im,--disable-gtk-im,gtk+"
PACKAGECONFIG[gtk3-im] = "--enable-gtk3-im,--disable-gtk3-im,gtk+3"
PACKAGES += "${PN}-im ${PN}-applet"
FILES:${PN} = "${bindir}/ \
${sysconfdir} \
${datadir}/applications \
${datadir}/pixmaps \
${datadir}/matchbox-keyboard"
FILES:${PN}-im = "${libdir}/gtk-2.0/*/immodules/*.so \
${libdir}/gtk-3.0/*/immodules/*.so"
FILES:${PN}-applet = "${libdir}/matchbox-panel/*.so"
do_install:append () {
install -d ${D}/${sysconfdir}/X11/Xsession.d/
install -m 755 ${WORKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
rm -f ${D}${libdir}/gtk-3.0/*/immodules/*.la
rm -f ${D}${libdir}/matchbox-panel/*.la
}
GTKIMMODULES_PACKAGES = "${PN}-im"
RDEPENDS:${PN} = "formfactor dbus-wait"
RRECOMMENDS:${PN} = "${PN}-applet"
@@ -0,0 +1,34 @@
From f83a9179696b2d060ee4860733dafbf38bbd4b87 Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Wed, 28 Sep 2016 15:05:41 +0300
Subject: [PATCH] applets/systray: Allow icons to be smaller
Don't expand/fill the systray items, align them in the center of the
systray panel. This makes sure the icons are drawn at the size they
expect.
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Upstream-Status: Submitted
---
applets/systray/systray.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/applets/systray/systray.c b/applets/systray/systray.c
index 39698a8..94a5753 100644
--- a/applets/systray/systray.c
+++ b/applets/systray/systray.c
@@ -29,8 +29,9 @@ on_realize (GtkWidget *widget, gpointer user_data)
tray = (GtkWidget *)na_tray_new_for_screen (screen, orientation);
gtk_widget_show (tray);
-
- gtk_container_add (GTK_CONTAINER (widget), tray);
+ gtk_widget_set_valign (tray, GTK_ALIGN_CENTER);
+ gtk_widget_set_halign (tray, GTK_ALIGN_CENTER);
+ gtk_box_pack_start (GTK_BOX (widget), tray, FALSE, FALSE, 0);
}
G_MODULE_EXPORT GtkWidget *
--
2.1.4
@@ -0,0 +1,39 @@
SUMMARY = "Simple GTK+ based panel for handheld devices"
DESCRIPTION = "A flexible always present 'window bar' for holding application \
launchers and small 'applet' style applications"
HOMEPAGE = "http://matchbox-project.org"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://matchbox-panel/mb-panel.h;endline=10;md5=f007add2f09d6a1920ee5a28645e9ce1 \
file://applets/startup/startup.c;endline=22;md5=9ee7a4192e53cc00041ef445d4ff6909"
DEPENDS = "gtk+3 startup-notification dbus dbus-glib dbus-glib-native"
DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}"
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
SRCREV = "39fdbc40888c1c75cd7bfd9fd341e6ad58487fce"
RPROVIDES:${PN} = "matchbox-panel"
RREPLACES:${PN} = "matchbox-panel"
RCONFLICTS:${PN} = "matchbox-panel"
SRC_URI = "git://git.yoctoproject.org/${BPN};protocol=https;branch=master \
file://0001-applets-systray-Allow-icons-to-be-smaller.patch \
"
EXTRA_OECONF = "--enable-startup-notification --enable-dbus"
EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}"
S = "${WORKDIR}/git"
FILES:${PN} += "${libdir}/matchbox-panel/*.so \
${datadir}/matchbox-panel/brightness/*.png \
${datadir}/matchbox-panel/startup/*.png \
${datadir}/icons/"
FILES:${PN}-dev += "${libdir}/matchbox-panel/*.la"
inherit autotools pkgconfig features_check gettext
@@ -0,0 +1,7 @@
[X-GNOME-Metatheme]
Encoding=UTF-8
Type=X-GNOME-Metatheme
Name=Sato
GtkTheme=Adwaita
IconTheme=Sato
MatchboxTheme=Sato
@@ -0,0 +1,30 @@
#!/bin/sh
. /etc/formfactor/config
if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
SHOWCURSOR="no"
else
SHOWCURSOR="yes"
fi
if [ "$HAVE_KEYBOARD" = "1" ]; then
KEYBOARD_APPLET=""
else
KEYBOARD_APPLET="keyboard"
fi
matchbox-desktop &
# Lines containing feature-[foo] are removed at build time if the machine
# doesn't have the feature "foo".
START_APPLETS=showdesktop,windowselector
END_APPLETS=$KEYBOARD_APPLET,systray,startup-notify,notify
END_APPLETS=battery,$END_APPLETS # feature-acpi
END_APPLETS=clock,$END_APPLETS
END_APPLETS=openmoko-panel-gsm,$END_APPLETS # feature-phone
matchbox-panel --start-applets $START_APPLETS --end-applets $END_APPLETS &
exec matchbox-window-manager -theme Sato -use_cursor $SHOWCURSOR $@
@@ -0,0 +1,56 @@
SUMMARY = "Custom Matchbox session files for the Sato environment"
HOMEPAGE = "http://www.matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://session;endline=3;md5=f8a5c5b9c279e52dc094d10e11c2be63"
SECTION = "x11"
RDEPENDS:${PN} = "formfactor matchbox-theme-sato matchbox-panel-2 matchbox-desktop matchbox-session gconf"
PR = "r30"
# This package is architecture specific because the session script is modified
# based on the machine architecture.
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit features_check
# The matchbox-theme-sato requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "file://session \
file://index.theme"
S = "${WORKDIR}"
FILES:${PN} += "${datadir}/themes/Sato/index.theme"
do_install() {
# This is the set of machine features that the script has markers for
FEATURES="acpi phone"
SCRIPT="${S}/sedder"
rm -f $SCRIPT
touch $SCRIPT
for FEAT in $FEATURES; do
if echo ${MACHINE_FEATURES} | awk "/$FEAT/ {exit 1}"; then
echo "/feature-$FEAT/d" >> $SCRIPT
fi
done
install -D ${S}/index.theme ${D}/${datadir}/themes/Sato/index.theme
install -d ${D}/${sysconfdir}/matchbox
sed -f "$SCRIPT" ${S}/session > ${D}/${sysconfdir}/matchbox/session
chmod +x ${D}/${sysconfdir}/matchbox/session
}
PACKAGE_WRITE_DEPS += "gconf-native"
pkg_postinst:${PN} () {
set_value() {
#type, name, value
gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type $1 --set /desktop/poky/interface/$2 "$3"
}
set_value string theme Adwaita
set_value string matchbox_theme Sato
set_value string icon_theme Sato
set_value bool touchscreen true
set_value string font_name "Sans 9"
}
@@ -0,0 +1,21 @@
SUMMARY = "Lightweight GTK+ terminal application"
HOMEPAGE = "http://www.matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://main.c;endline=20;md5=7d9d802a36298b5c74440a880e2f4817"
DEPENDS = "gtk+3 vte"
SECTION = "x11/utils"
SRCREV = "99e6eb7db1b5fef110973d96194eec992a2515a2"
SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
PV = "0.2+git${SRCPV}"
S = "${WORKDIR}/git"
inherit autotools pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
@@ -0,0 +1,16 @@
SUMMARY = "Matchbox window manager Sato themes"
HOMEPAGE = "http://www.matchbox-project.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "CC-BY-SA-3.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4"
DEPENDS = "matchbox-wm"
SECTION = "x11/wm"
inherit autotools pkgconfig features_check
FILES:${PN} += "${datadir}/themes"
# The matchbox-wm requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
@@ -0,0 +1,8 @@
require matchbox-theme-sato.inc
# SRCREV tagged 0.2
SRCREV = "df085ba9cdaeaf2956890b0e29d7ea1779bf6c78"
SRC_URI = "git://git.yoctoproject.org/matchbox-sato;branch=master;protocol=https"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
@@ -0,0 +1,63 @@
#
# Copyright (C) 2007-2008 OpenedHand Ltd.
#
SUMMARY = "Sato desktop"
DESCRIPTION = "Packagegroups provide a convenient mechanism of bundling a collection of packages."
HOMEPAGE = "https://www.yoctoproject.org/"
PR = "r33"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
PACKAGES = "${PN} ${PN}-base ${PN}-apps ${PN}-games"
RDEPENDS:${PN} = "\
${PN}-base \
${PN}-apps \
${PN}-games \
"
NETWORK_MANAGER ?= "connman-gnome"
SUMMARY:${PN}-base = "Sato desktop - base packages"
RDEPENDS:${PN}-base = "\
matchbox-desktop \
matchbox-session-sato \
matchbox-keyboard \
matchbox-keyboard-applet \
matchbox-keyboard-im \
matchbox-config-gtk \
xcursor-transparent-theme \
sato-icon-theme \
settings-daemon \
shutdown-desktop \
${NETWORK_MANAGER} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'udev-extraconf', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio-server pulseaudio-client-conf-sato pulseaudio-misc', '', d)} \
"
FILEMANAGER ?= "pcmanfm"
WEB ?= ""
#WEB = "epiphany"
GSTEXAMPLES ?= "gst-examples"
GSTEXAMPLES:riscv64 = ""
SUMMARY:${PN}-apps = "Sato desktop - applications"
RDEPENDS:${PN}-apps = "\
l3afpad \
matchbox-terminal \
sato-screenshot \
${FILEMANAGER} \
${GSTEXAMPLES} \
${WEB} \
"
SUMMARY:${PN}-games = "Sato desktop - games"
RDEPENDS:${PN}-games = "\
puzzles \
"
Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1,15 @@
Disable the desktop preferences launcher as we don't use the pcmanfm desktop in
Sato.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/data/pcmanfm-desktop-pref.desktop b/data/pcmanfm-desktop-pref.desktop
index ccf8abb..3f6fc1c 100644
--- a/data/pcmanfm-desktop-pref.desktop.in
+++ b/data/pcmanfm-desktop-pref.desktop.in
@@ -7,3 +7,4 @@ Exec=pcmanfm --desktop-pref
StartupNotify=true
Terminal=false
NotShowIn=GNOME;XFCE;KDE;MATE;
+NoDisplay=true
@@ -0,0 +1,40 @@
SUMMARY = "Fast lightweight tabbed filemanager"
DESCRIPTION = "A free file manager application and the standard file manager of LXDE."
HOMEPAGE = "http://pcmanfm.sourceforge.net/"
LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://src/pcmanfm.h;endline=22;md5=417b3855771a3a87f8ad753d994491f0 \
file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
SECTION = "x11"
DEPENDS = "gtk+3 startup-notification libfm intltool-native gettext-native glib-2.0-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/pcmanfm-${PV}.tar.xz \
file://gnome-fs-directory.png \
file://gnome-fs-regular.png \
file://gnome-mime-text-plain.png \
file://emblem-symbolic-link.png \
file://no-desktop.patch"
SRC_URI[sha256sum] = "14cb7b247493c4cce65fbb5902611e3ad00a7a870fbc1e50adc50428c5140cf7"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/pcmanfm/files/PCManFM%20%2B%20Libfm%20%28tarball%20release%29/PCManFM/"
inherit autotools pkgconfig features_check mime-xdg
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF = "--with-gtk=3"
do_install:append () {
install -d ${D}/${datadir}
install -d ${D}/${datadir}/pixmaps/
install -m 0644 ${WORKDIR}/*.png ${D}/${datadir}/pixmaps
}
FILES:${PN} += "${libdir}/pcmanfm"
RRECOMMENDS:${PN} += "adwaita-icon-theme"
@@ -0,0 +1,7 @@
# We rely on PulseAudio's autospawn feature to automatically start the daemon
# in Sato. The graphical session in Sato runs under root, however, and
# PulseAudio disables autospawning for root by default. In a normal setup it's
# not desirable to autospawn for root, because it can easily interfere with
# other users' PulseAudio instances, but in Sato there are no other users, so
# it's OK to enable this in Sato.
allow-autospawn-for-root = yes
@@ -0,0 +1,17 @@
SUMMARY = "/etc/pulse/client.conf tailored for Sato"
SECTION = "multimedia"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://50-sato.conf"
S = "${WORKDIR}"
inherit allarch
do_install() {
install -d ${D}${sysconfdir}/pulse/client.conf.d
install -m 0644 ${S}/50-sato.conf ${D}${sysconfdir}/pulse/client.conf.d/50-sato.conf
}
FILES:${PN} = "${sysconfdir}/pulse/client.conf.d/50-sato.conf"
CONFFILES:${PN} = "${sysconfdir}/pulse/client.conf.d/50-sato.conf"
@@ -0,0 +1,49 @@
SUMMARY = "Simon Tatham's Portable Puzzle Collection"
DESCRIPTION = "Collection of small computer programs which implement one-player puzzle games."
HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE;md5=92d2b7a2fc96b5f7f17101df7db1fefa"
# gtk support includes a bunch of x11 headers
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main;protocol=https"
UPSTREAM_CHECK_COMMITS = "1"
SRCREV = "b6c842a28cf6597df063fcff35079c3e3982381e"
PE = "2"
PV = "0.0+git${SRCPV}"
S = "${WORKDIR}/git"
inherit cmake features_check pkgconfig
DEPENDS += "gtk+3"
do_install:append () {
# net conflicts with Samba, so rename it
mv ${D}${bindir}/net ${D}${bindir}/puzzles-net
rm ${D}/${datadir}/applications/net.desktop
# Create desktop shortcuts
install -d ${D}/${datadir}/applications/
cd ${D}/${prefix}/bin
for prog in *; do
if [ -x $prog ]; then
# Convert prog to Title Case
title=$(echo $prog | sed 's/puzzles-//' | sed 's/\(^\| \)./\U&/g')
echo "making ${D}/${datadir}/applications/$prog.desktop"
cat <<STOP > ${D}/${datadir}/applications/$prog.desktop
[Desktop Entry]
Name=$title
Exec=${bindir}/$prog
Icon=applications-games
Terminal=false
Type=Application
Categories=Game;
StartupNotify=true
STOP
fi
done
}
@@ -0,0 +1,58 @@
SECTION = "x11/utils"
SUMMARY = "rxvt terminal clone supporting unicode"
DESCRIPTION = "rxvt-unicode is a clone of the well known \
terminal emulator rxvt, modified to store text in Unicode \
(either UCS-2 or UCS-4) and to use locale-correct input and \
output. It also supports mixing multiple fonts at the \
same time, including Xft fonts."
HOMEPAGE = "https://rxvt.org/"
DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf libxmu libptytty"
SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
file://xwc.patch \
file://rxvt.desktop \
file://rxvt.png"
inherit autotools pkgconfig update-alternatives
PROVIDES = "virtual/x-terminal-emulator"
ALTERNATIVE:${PN} = "x-terminal-emulator"
ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/rxvt"
CFLAGS:append = " -fpermissive"
EXTRA_OECONF = "--enable-xim \
--with-term=rxvt --enable-keepscrolling \
--enable-xft --with-name=rxvt --enable-frills \
--enable-swapscreen --enable-transparency \
--with-codesets=eu --enable-pointer-blank \
--enable-text-blink --enable-rxvt-scroll \
--enable-combining --disable-perl \
--with-x=${STAGING_DIR_HOST}${prefix}"
PACKAGECONFIG ??= ""
PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification,"
do_configure:prepend () {
if [ ! -e ${S}/acinclude.m4 ]; then
cp ${S}/aclocal.m4 ${S}/acinclude.m4
fi
}
do_compile:prepend () {
echo '#define UTMP_FILE "${localstatedir}/run/utmp"' >> config.h
echo '#define WTMP_FILE "${localstatedir}/log/wtmp"' >> config.h
echo '#define LASTLOG_FILE "${localstatedir}/log/lastlog"' >> config.h
echo '#define HAVE_XLOCALE 1' >> config.h
}
do_install:append () {
install -d ${D}/${datadir}
install -d ${D}/${datadir}/applications
install -d ${D}/${datadir}/pixmaps/
install -m 0644 ${WORKDIR}/rxvt.png ${D}/${datadir}/pixmaps
install -m 0644 ${WORKDIR}/rxvt.desktop ${D}/${datadir}/applications
}
FILES:${PN} += "${datadir}/applications/rxvt.desktop ${datadir}/pixmaps/rxvt.png"
@@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.0
Name=Terminal
Comment=A unicode capable rxvt clone
Exec=rxvt
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Utility;TerminalEmulator;
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1,26 @@
Upstream-Status: Pending
diff -ruN rxvt-unicode-9.10-orig//src/screen.C rxvt-unicode-9.10/src/screen.C
--- rxvt-unicode-9.10-orig//src/screen.C 2011-04-19 13:34:01.327664984 +0800
+++ rxvt-unicode-9.10/src/screen.C 2011-04-19 13:34:47.037665001 +0800
@@ -3152,7 +3152,7 @@
return false;
}
-#if 0
+#if HAVE_XWC
XTextProperty ct;
if (XwcTextListToTextProperty (dpy, &selection.text, 1, XStringStyle, &ct) >= 0)
@@ -3734,9 +3734,11 @@
}
else
#endif
+#ifdef HAVE_XWC
if (XwcTextListToTextProperty (dpy, &cl, 1, (XICCEncodingStyle) style, &ct) >= 0)
freect = 1;
else
+#endif
{
/* if we failed to convert then send it raw */
ct.value = (unsigned char *)cl;
@@ -0,0 +1,8 @@
require rxvt-unicode.inc
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://src/main.C;beginline=1;endline=31;md5=d3600d7ee1062667fcd1193fbe6485f6"
SRC_URI[sha256sum] = "aaa13fcbc149fe0f3f391f933279580f74a96fd312d6ed06b8ff03c2d46672e8"
@@ -0,0 +1,29 @@
HOMEPAGE = "http://tango.freedesktop.org/"
SUMMARY = "Enables backwards compatibility with current desktop icon themes"
DESCRIPTION = "A Perl script used for maintaining backwards \
compatibility with current desktop icon themes, while migrating to the \
names specified in the Icon Naming Specification. The Icon Naming \
Utilities map the icon names used by the GNOME and KDE desktops to the \
icon names proposed in the Icon Naming Specification, and generate the \
icon files appropriate to the desktop environment you use. The Icon \
Naming Specification provides a standard list of common icon contexts \
and names that can be used to make icon themes work in a desktop \
environment or application that implements the naming specification. "
LICENSE = "GPL-2.0-only"
DEPENDS = "libxml-simple-perl-native"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://tango.freedesktop.org/releases/icon-naming-utils-${PV}.tar.gz"
SRC_URI[sha256sum] = "044ab2199ed8c6a55ce36fd4fcd8b8021a5e21f5bab028c0a7cdcf52a5902e1c"
inherit autotools allarch perlnative
do_configure:append() {
# Make sure we use our nativeperl wrapper.
sed -i -e "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/icon-name-mapping.pl.in
}
FILES:${PN} += "${datadir}/dtds"
BBCLASSEXTEND = "native"
@@ -0,0 +1,29 @@
SUMMARY = "Sato icon theme"
HOMEPAGE = "https://www.yoctoproject.org/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "CC-BY-SA-3.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=56a830bbe6e4697fe6cbbae01bb7c2b2"
SECTION = "x11"
DEPENDS = "icon-naming-utils-native libxml-simple-perl-native"
SRC_URI = "git://git.yoctoproject.org/sato-icon-theme.git;protocol=https;branch=master"
SRCREV = "d23f04ecb0328f655bf195df8eb04c1b734d53a9"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
inherit autotools pkgconfig allarch gtk-icon-cache perlnative
# The configure script uses pkg-config to find native binaries to execute, so
# tell it to use our pkg-config-native wrapper.
export PKG_CONFIG = "pkg-config-native"
FILES:${PN} += "${datadir}/icons/Sato"
do_install:append() {
find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s preferences-system.png {}/apps/preferences-desktop.png \;
find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s file-manager.png {}/apps/system-file-manager.png \;
find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s ../apps/terminal.png {}/places/computer.png \;
}
@@ -0,0 +1,28 @@
SUMMARY = "Ultra-simple screen capture utility, aimed at handheld devices"
HOMEPAGE = "http://www.o-hand.com"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "GPL-2.0-only & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://main.c;endline=9;md5=023e14d6404d0a961eb97cbd011fc141 \
file://screenshot-ui.h;endline=9;md5=638d9ffa83e9325a36df224166ed6ad0"
DEPENDS = "matchbox-panel-2 gtk+3"
# SRCREV tagged 0.3
SRCREV = "9250fa5a012d84ff45984e8c4345ee7635227756"
SRC_URI = "git://git.yoctoproject.org/screenshot;branch=master;protocol=https"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
inherit autotools pkgconfig features_check
FILES:${PN} += "${libdir}/matchbox-panel/*.so"
do_install:append () {
rm -f ${D}${libdir}/matchbox-panel/*.la
}
# The matchbox-panel-2 requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
@@ -0,0 +1 @@
/usr/bin/settings-daemon &
@@ -0,0 +1,49 @@
Upstream-Status: Pending
Index: settings-daemon/settings-daemon.c
===================================================================
--- settings-daemon.orig/settings-daemon.c 2009-05-22 14:57:05.000000000 +0100
+++ settings-daemon/settings-daemon.c 2009-05-22 14:58:22.000000000 +0100
@@ -187,6 +187,10 @@
GCONF_VALUE_STRING, translate_string_string },
{ "/desktop/poky/interface/gtk_color_scheme", "Gtk/ColorScheme",
GCONF_VALUE_STRING, translate_string_string },
+ { "/desktop/gnome/sound/theme_name", "Net/SoundThemeName",
+ GCONF_VALUE_STRING, translate_string_string },
+ { "/desktop/gnome/sound/event_sounds", "Net/EnableEventSounds" ,
+ GCONF_VALUE_BOOL, translate_bool_int },
};
static const TranslationEntry*
Index: settings-daemon/settings-daemon.schemas
===================================================================
--- settings-daemon.orig/settings-daemon.schemas 2009-05-22 15:49:17.000000000 +0100
+++ settings-daemon/settings-daemon.schemas 2009-05-22 15:51:31.000000000 +0100
@@ -196,6 +196,27 @@
</locale>
</schema>
+ <schema>
+ <key>/schemas/desktop/gnome/sound/theme_name</key>
+ <applyto>/desktop/gnome/sound/theme_name</applyto>
+ <owner>gnome</owner>
+ <type>string</type>
+ <default>freedesktop</default>
+ <locale name="C">
+ <short>Sound Theme Name</short>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/gnome/sound/event_sounds</key>
+ <applyto>/desktop/gnome/sound/event_sounds</applyto>
+ <owner>gnome</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Enable Sound Events</short>
+ </locale>
+ </schema>
</schemalist>
</gconfschemafile>
@@ -0,0 +1,30 @@
SUMMARY = "Provides a bridge between gconf and xsettings"
HOMEPAGE = "https://git.yoctoproject.org/cgit/cgit.cgi/xsettings-daemon/"
BUGTRACKER = "http://bugzilla.yoctoproject.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://xsettings-manager.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
DEPENDS = "gconf glib-2.0 gtk+3"
SECTION = "x11"
# SRCREV tagged 0.0.2
SRCREV = "b2e5da502f8c5ff75e9e6da771372ef8e40fd9a2"
SRC_URI = "git://git.yoctoproject.org/xsettings-daemon;branch=master;protocol=https \
file://addsoundkeys.patch \
file://70settings-daemon.sh \
"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
S = "${WORKDIR}/git"
inherit autotools pkgconfig gconf features_check
FILES:${PN} = "${bindir}/* ${sysconfdir}"
# Requires gdk-x11-2.0 which is provided by gtk when x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
do_install:append () {
install -d ${D}/${sysconfdir}/X11/Xsession.d
install -m 755 ${WORKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/
}
@@ -0,0 +1,24 @@
SUMMARY = "Provides an icon to shut down the system cleanly"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://shutdown.desktop"
PR = "r1"
S = "${WORKDIR}"
do_install() {
install -d ${D}${datadir}/applications
install -m 0644 shutdown.desktop ${D}${datadir}/applications/
sed -i ${D}${datadir}/applications/shutdown.desktop -e 's#^Exec=\(.*\)#Exec=${base_sbindir}/\1#'
}
pkg_postinst:${PN} () {
grep -q qemuarm $D${sysconfdir}/hostname && \
sed -i $D${datadir}/applications/shutdown.desktop -e 's#^Exec=\(.*\)/halt#Exec=\1/reboot#' \
|| true
}
inherit allarch
@@ -0,0 +1,10 @@
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Shutdown
Comment=Close down the machine safely
Exec=poweroff
Icon=system-shutdown
Terminal=false
Categories=Utility;
StartupNotify=true
@@ -0,0 +1,18 @@
SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit."
HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe"
BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc"
DEPENDS = "virtual/egl libxkbcommon"
inherit cmake features_check pkgconfig
REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
SRC_URI[sha256sum] = "b1d0cdcf0f8dbb494e65b0f7913e357106da9a0d57f4fbb7b9d1238a6dbe9ade"
# This is a tweak of upstream-version-is-even needed because
# ipstream directory contains tarballs for other components as well.
UPSTREAM_CHECK_REGEX = "libwpe-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar"
@@ -0,0 +1,29 @@
From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 27 Oct 2015 16:02:19 +0200
Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
from pkg-config with PKG_CONFIG_SYSROOT_DIR
See discussion at https://bugs.webkit.org/show_bug.cgi?id=232933 for
reasons why this is not approproiate for upstream submission.
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
Source/cmake/FindGI.cmake | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
index af039cbb..b3e810cd 100644
--- a/Source/cmake/FindGI.cmake
+++ b/Source/cmake/FindGI.cmake
@@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND)
endif ()
endif ()
+set(_GI_SCANNER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_SCANNER_EXE}")
+set(_GI_COMPILER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_COMPILER_EXE}")
+
find_program(GI_SCANNER_EXE NAMES ${_GI_SCANNER_EXE} g-ir-scanner)
find_program(GI_COMPILER_EXE NAMES ${_GI_COMPILER_EXE} g-ir-compiler)
@@ -0,0 +1,28 @@
From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Mon, 26 Jun 2023 14:30:02 +0200
Subject: [PATCH] Source/JavaScriptCore/CMakeLists.txt: ensure reproducibility
of __TIMESTAMP__
__TIMESTAMP__ refers to mtime of the file that contains it, which is unstable
and breaks binary reproducibility when the file is generated at build time. To ensure
this does not happen, mtime should be set from the original file.
Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/15293]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
Source/JavaScriptCore/CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
index 43dc22ff..c2e3b1cd 100644
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -159,6 +159,7 @@ add_custom_command(
OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in
COMMAND ${PERL_EXECUTABLE} -pe s/CACHED_TYPES_CKSUM/__TIMESTAMP__/ ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
+ COMMAND touch -r ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
VERBATIM
)
@@ -0,0 +1,310 @@
From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
From: Adrian Perez de Castro <aperez@igalia.com>
Date: Thu, 2 Jun 2022 11:19:06 +0300
Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
unused https://bugs.webkit.org/show_bug.cgi?id=241182
Reviewed by NOBODY (OOPS!).
Move the NEON fast path for the SVG lighting filter effects into
FELightingSoftwareApplier, and arrange to actually use them by
forwarding calls to applyPlatformGeneric() into applyPlatformNeon().
Some changes were needed to adapt platformApplyNeon() to the current
state of filters after r286140. This was not detected because the code
bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does
not get used much these days: CPU(ARM_THUMB2) is more common. It should
be possible to use the NEON fast paths also in Thumb mode, but that is
left for a follow-up fix.
* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker):
(WebCore::FELightingSoftwareApplier::getPowerCoefficients):
(WebCore::FELighting::platformApplyNeonWorker): Deleted.
(WebCore::FELighting::getPowerCoefficients): Deleted.
* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:
(WebCore::FELightingSoftwareApplier::applyPlatformNeon):
(WebCore::FELighting::platformApplyNeon): Deleted.
* Source/WebCore/platform/graphics/filters/DistantLightSource.h:
* Source/WebCore/platform/graphics/filters/FELighting.h:
* Source/WebCore/platform/graphics/filters/PointLightSource.h:
* Source/WebCore/platform/graphics/filters/SpotLightSource.h:
* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../cpu/arm/filters/FELightingNEON.cpp | 4 +-
.../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
.../graphics/filters/DistantLightSource.h | 4 ++
.../platform/graphics/filters/FELighting.h | 7 ---
.../graphics/filters/PointLightSource.h | 4 ++
.../graphics/filters/SpotLightSource.h | 4 ++
.../software/FELightingSoftwareApplier.h | 16 ++++++
7 files changed, 56 insertions(+), 35 deletions(-)
diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
index f6ff8c20..42a97ffc 100644
--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon()
return s_FELightingConstantsForNeon;
}
-void FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
+void FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
{
neonDrawLighting(parameters);
}
@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL
"b .lightStrengthCalculated" NL
); // NOLINT
-int FELighting::getPowerCoefficients(float exponent)
+int FELightingSoftwareApplier::getPowerCoefficients(float exponent)
{
// Calling a powf function from the assembly code would require to save
// and reload a lot of NEON registers. Since the base is in range [0..1]
diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
index b17c603d..e4629cda 100644
--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
@@ -24,14 +24,15 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef FELightingNEON_h
-#define FELightingNEON_h
+#pragma once
#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
-#include "FELighting.h"
+#include "FELightingSoftwareApplier.h"
+#include "ImageBuffer.h"
#include "PointLightSource.h"
#include "SpotLightSource.h"
+#include <wtf/ObjectIdentifier.h>
#include <wtf/ParallelJobs.h>
namespace WebCore {
@@ -93,14 +94,14 @@ extern "C" {
void neonDrawLighting(FELightingPaintingDataForNeon*);
}
-inline void FELighting::platformApplyNeon(const LightingData& data, const LightSource::PaintingData& paintingData)
+inline void FELightingSoftwareApplier::applyPlatformNeon(const FELightingSoftwareApplier::LightingData& data, const LightSource::PaintingData& paintingData)
{
- alignas(16) FELightingFloatArgumentsForNeon floatArguments;
- FELightingPaintingDataForNeon neonData = {
+ WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments;
+ WebCore::FELightingPaintingDataForNeon neonData = {
data.pixels->data(),
1,
- data.widthDecreasedByOne - 1,
- data.heightDecreasedByOne - 1,
+ data.width - 2,
+ data.height - 2,
0,
0,
0,
@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
// Set light source arguments.
floatArguments.constOne = 1;
- auto color = m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
+ auto color = data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
floatArguments.colorRed = color.red;
floatArguments.colorGreen = color.green;
floatArguments.colorBlue = color.blue;
floatArguments.padding4 = 0;
- if (m_lightSource->type() == LS_POINT) {
+ if (data.lightSource->type() == LS_POINT) {
neonData.flags |= FLAG_POINT_LIGHT;
- PointLightSource& pointLightSource = static_cast<PointLightSource&>(m_lightSource.get());
+ const auto& pointLightSource = *static_cast<const PointLightSource*>(data.lightSource);
floatArguments.lightX = pointLightSource.position().x();
floatArguments.lightY = pointLightSource.position().y();
floatArguments.lightZ = pointLightSource.position().z();
floatArguments.padding2 = 0;
- } else if (m_lightSource->type() == LS_SPOT) {
+ } else if (data.lightSource->type() == LS_SPOT) {
neonData.flags |= FLAG_SPOT_LIGHT;
- SpotLightSource& spotLightSource = static_cast<SpotLightSource&>(m_lightSource.get());
+ const auto& spotLightSource = *static_cast<const SpotLightSource*>(data.lightSource);
floatArguments.lightX = spotLightSource.position().x();
floatArguments.lightY = spotLightSource.position().y();
floatArguments.lightZ = spotLightSource.position().z();
@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
if (spotLightSource.specularExponent() == 1)
neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
} else {
- ASSERT(m_lightSource->type() == LS_DISTANT);
+ ASSERT(data.lightSource->type() == LS_DISTANT);
floatArguments.lightX = paintingData.initialLightingData.lightVector.x();
floatArguments.lightY = paintingData.initialLightingData.lightVector.y();
floatArguments.lightZ = paintingData.initialLightingData.lightVector.z();
@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
// Set lighting arguments.
floatArguments.surfaceScale = data.surfaceScale;
floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4;
- if (m_lightingType == FELighting::DiffuseLighting)
- floatArguments.diffuseConstant = m_diffuseConstant;
+ if (data.filterType == FilterEffect::Type::FEDiffuseLighting)
+ floatArguments.diffuseConstant = data.diffuseConstant;
else {
neonData.flags |= FLAG_SPECULAR_LIGHT;
- floatArguments.diffuseConstant = m_specularConstant;
- neonData.specularExponent = getPowerCoefficients(m_specularExponent);
- if (m_specularExponent == 1)
+ floatArguments.diffuseConstant = data.specularConstant;
+ neonData.specularExponent = getPowerCoefficients(data.specularExponent);
+ if (data.specularExponent == 1)
neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1;
}
if (floatArguments.diffuseConstant == 1)
neonData.flags |= FLAG_DIFFUSE_CONST_IS_1;
- int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * (data.heightDecreasedByOne - 1)) / s_minimalRectDimension;
+ static constexpr int minimalRectDimension = 100 * 100; // Empirical data limit for parallel jobs
+ int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / minimalRectDimension;
if (optimalThreadNumber > 1) {
// Initialize parallel jobs
- ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, optimalThreadNumber);
+ ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, optimalThreadNumber);
// Fill the parameter array
int job = parallelJobs.numberOfJobs();
if (job > 1) {
int yStart = 1;
- int yStep = (data.heightDecreasedByOne - 1) / job;
+ int yStep = (data.height - 2) / job;
for (--job; job >= 0; --job) {
FELightingPaintingDataForNeon& params = parallelJobs.parameter(job);
params = neonData;
params.yStart = yStart;
- params.pixels += (yStart - 1) * (data.widthDecreasedByOne + 1) * 4;
+ params.pixels += (yStart - 1) * data.width * 4;
if (job > 0) {
params.absoluteHeight = yStep;
yStart += yStep;
} else
- params.absoluteHeight = data.heightDecreasedByOne - yStart;
+ params.absoluteHeight = (data.height - 1) - yStart;
}
parallelJobs.execute();
return;
@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
} // namespace WebCore
#endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE)
-
-#endif // FELightingNEON_h
diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
index 70c6512f..b032c82e 100644
--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
@@ -26,6 +26,10 @@
#include <wtf/ArgumentCoder.h>
#include <wtf/Ref.h>
+namespace WTF {
+class TextStream;
+} // namespace WTF
+
namespace WebCore {
class DistantLightSource : public LightSource {
diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
index 53beb596..e78a9354 100644
--- a/Source/WebCore/platform/graphics/filters/FELighting.h
+++ b/Source/WebCore/platform/graphics/filters/FELighting.h
@@ -35,8 +35,6 @@
namespace WebCore {
-struct FELightingPaintingDataForNeon;
-
class FELighting : public FilterEffect {
public:
const Color& lightingColor() const { return m_lightingColor; }
@@ -64,11 +62,6 @@ protected:
std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
- static int getPowerCoefficients(float exponent);
- inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
-#endif
-
Color m_lightingColor;
float m_surfaceScale;
float m_diffuseConstant;
diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
index 3a5723f0..675d63f5 100644
--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
@@ -26,6 +26,10 @@
#include "LightSource.h"
#include <wtf/Ref.h>
+namespace WTF {
+class TextStream;
+} // namespace WTF
+
namespace WebCore {
class PointLightSource : public LightSource {
diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
index 684626f7..dea58389 100644
--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
@@ -26,6 +26,10 @@
#include "LightSource.h"
#include <wtf/Ref.h>
+namespace WTF {
+class TextStream;
+} // namespace WTF
+
namespace WebCore {
class SpotLightSource : public LightSource {
diff --git a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
index c974d921..e2896660 100644
--- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
@@ -36,6 +36,7 @@
namespace WebCore {
class FELighting;
+struct FELightingPaintingDataForNeon;
class FELightingSoftwareApplier final : public FilterEffectConcreteApplier<FELighting> {
WTF_MAKE_FAST_ALLOCATED;
@@ -132,8 +133,23 @@ private:
static void applyPlatformGenericPaint(const LightingData&, const LightSource::PaintingData&, int startY, int endY);
static void applyPlatformGenericWorker(ApplyParameters*);
+
+#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
+ static int getPowerCoefficients(float exponent);
+ static void platformApplyNeonWorker(FELightingPaintingDataForNeon*);
+ inline static void applyPlatformNeon(const LightingData&, const LightSource::PaintingData&);
+
+ inline static void applyPlatformGeneric(const LightingData& data, const LightSource::PaintingData& paintingData)
+ {
+ applyPlatformNeon(data, paintingData);
+ }
+#else
static void applyPlatformGeneric(const LightingData&, const LightSource::PaintingData&);
+#endif
+
static void applyPlatform(const LightingData&);
};
} // namespace WebCore
+
+#include "FELightingNEON.h"
@@ -0,0 +1,41 @@
From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001
From: Diego Pino Garcia <dpino@igalia.com>
Date: Mon, 22 May 2023 19:58:50 -0700
Subject: [PATCH] [GLIB] Fix build error after 264196@main
https://bugs.webkit.org/show_bug.cgi?id=256917
Reviewed by Michael Catanzaro.
Variable BWRAP_EXECUTABLE is only defined when BUBBLEWRAP_SANDBOX is
enabled.
* Source/WTF/wtf/glib/Sandbox.cpp:
(WTF::isInsideUnsupportedContainer):
Canonical link: https://commits.webkit.org/264395@main
Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/4977290ab4ab35258a6da9b13795c9b0f7894bf4]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
Source/WTF/wtf/glib/Sandbox.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Source/WTF/wtf/glib/Sandbox.cpp b/Source/WTF/wtf/glib/Sandbox.cpp
index 7d84e830ab33e..9b07bb8cb5a9b 100644
--- a/Source/WTF/wtf/glib/Sandbox.cpp
+++ b/Source/WTF/wtf/glib/Sandbox.cpp
@@ -36,6 +36,7 @@ bool isInsideFlatpak()
return returnValue;
}
+#if ENABLE(BUBBLEWRAP_SANDBOX)
bool isInsideUnsupportedContainer()
{
static bool inContainer = g_file_test("/run/.containerenv", G_FILE_TEST_EXISTS);
@@ -64,6 +65,7 @@ bool isInsideUnsupportedContainer()
return inContainer && !supportedContainer;
}
+#endif
bool isInsideSnap()
{
@@ -0,0 +1,33 @@
Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display
This ensures that there is a compile time check for glx support in gstreamer as
runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from
gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined
therefore make this check consistent to fix build with some platforms which use pvr gl drivers
where this problem appear at compile time.
/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'?
68 | return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| gst_gl_display_egl_new_with_egl_display
This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore
this patch wont be needed when upgrading to 2.42+
[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf
Upstream-Status: Inappropriate [GLX support is gone in 2.41+]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-02-20 01:22:18.917743700 -0800
+++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-07-08 08:45:09.739177065 -0700
@@ -63,7 +63,7 @@
if (glPlatform == GST_GL_PLATFORM_EGL)
return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay()));
#endif
-#if USE(GLX)
+#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX
if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX)
return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
#endif
@@ -0,0 +1,22 @@
Injection a year based on the current date isn't reproducible. Hack this
to a specific year for now for reproducibilty and to avoid autobuilder failures.
The correct fix would be to use SOURCE_DATE_EPOCH from the environment and
then this could be submitted upstream, sadly my ruby isn't up to that.
Upstream-Status: Pending [could be reworked]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
===================================================================
--- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
+++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
@@ -25,7 +25,7 @@ require 'date'
require 'digest'
$LICENSE = <<-EOF
-Copyright (C) #{Date.today.year} Apple Inc. All rights reserved.
+Copyright (C) 2021 Apple Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -0,0 +1,166 @@
SUMMARY = "WebKit web rendering engine for the GTK+ platform"
HOMEPAGE = "https://www.webkitgtk.org/"
BUGTRACKER = "https://bugs.webkit.org/"
LICENSE = "BSD-2-Clause & LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
"
SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
file://reproducibility.patch \
file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \
file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \
file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
"
SRC_URI[sha256sum] = "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000"
inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
CVE_PRODUCT = "webkitgtk webkitgtk\+"
DEPENDS += " \
ruby-native \
gperf-native \
unifdef-native \
cairo \
harfbuzz \
jpeg \
atk \
libwebp \
gtk+3 \
libxslt \
libtasn1 \
libnotify \
gstreamer1.0 \
gstreamer1.0-plugins-base \
glib-2.0-native \
gettext-native \
"
PACKAGECONFIG_SOUP ?= "soup3"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \
enchant \
libsecret \
${PACKAGECONFIG_SOUP} \
"
PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native"
PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF"
PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt"
PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl"
PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl"
PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF"
PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret"
PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2"
PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd"
PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,,"
PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms"
PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3"
PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
EXTRA_OECMAKE = " \
-DPORT=GTK \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \
-DENABLE_MINIBROWSER=ON \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-DENABLE_GAMEPAD=OFF \
"
# Javascript JIT is not supported on ARC
EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
# By default 25-bit "medium" calls are used on ARC
# which is not enough for binaries larger than 32 MiB
CFLAGS:append:arc = " -mlong-calls"
CXXFLAGS:append:arc = " -mlong-calls"
# Needed for non-mesa graphics stacks when x11 is disabled
CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
# Javascript JIT is not supported on powerpc
EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF "
# ARM JIT code does not build on ARMv4/5/6 anymore
EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF "
EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF "
EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF "
# JIT and gold linker does not work on RISCV
EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF"
# JIT not supported on MIPS either
EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
# JIT not supported on X32
# An attempt was made to upstream JIT support for x32 in
# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as
# unresolved due to limited X32 adoption.
EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF "
SECURITY_CFLAGS:remove:aarch64 = "-fpie"
SECURITY_CFLAGS:append:aarch64 = " -fPIE"
FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so"
RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
# http://errors.yoctoproject.org/Errors/Details/20370/
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
ARM_INSTRUCTION_SET:armv6 = "arm"
# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
# https://bugs.webkit.org/show_bug.cgi?id=159880
# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
ARM_INSTRUCTION_SET:armv7a = "thumb"
ARM_INSTRUCTION_SET:armv7r = "thumb"
ARM_INSTRUCTION_SET:armv7ve = "thumb"
# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86
COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}"
# introspection inside qemu-arm hangs forever on musl/arm builds
# therefore disable GI_DATA
GI_DATA_ENABLED:libc-musl:armv7a = "False"
GI_DATA_ENABLED:libc-musl:armv7ve = "False"
# Can't be built with ccache
CCACHE_DISABLE = "1"
PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
src_package_preprocess () {
# Trim build paths from comments in generated sources to ensure reproducibility
sed -i -e "s,${WORKDIR},,g" \
${B}/JavaScriptCore/DerivedSources/*.h \
${B}/JavaScriptCore/DerivedSources/yarr/*.h \
${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
${B}/WebCore/DerivedSources/*.cpp \
${B}/WebKitGTK/DerivedSources/webkit/*.cpp
}
@@ -0,0 +1,24 @@
SUMMARY = "WPE's backend based on a freedesktop.org stack."
HOMEPAGE = "https://github.com/Igalia/WPEBackend-fdo"
BUGTRACKER = "https://github.com/Igalia/WPEBackend-fdo/issues"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=1f62cef2e3645e3e74eb05fd389d7a66"
DEPENDS = "glib-2.0 libxkbcommon wayland virtual/egl libwpe libepoxy"
DEPENDS:append:class-target = " wayland-native"
inherit meson features_check pkgconfig
REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
SRC_URI[sha256sum] = "93c9766ae9864eeaeaee2b0a74f22cbca08df42c1a1bdb55b086f2528e380d38"
# Especially helps compiling with clang which enable this as error when
# using c++11
CXXFLAGS += "-Wno-c++11-narrowing"
# This is a tweak of upstream-version-is-even needed because
# ipstream directory contains tarballs for other components as well.
UPSTREAM_CHECK_REGEX = "wpebackend-fdo-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar"