diff options
Diffstat (limited to 'meta/recipes-graphics')
319 files changed, 4337 insertions, 7616 deletions
diff --git a/meta/recipes-graphics/builder/builder_0.1.bb b/meta/recipes-graphics/builder/builder_0.1.bb index 0a64c31ab3..7719b783c2 100644 --- a/meta/recipes-graphics/builder/builder_0.1.bb +++ b/meta/recipes-graphics/builder/builder_0.1.bb @@ -1,23 +1,23 @@ SUMMARY = "New user to do specific job" DESCRIPTION = "This recipe create a new user named ${PN}, who is used for specific jobs like building. The task can be auto started via mini X" SECTION = "x11" -PR = "r6" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://builder_session.sh;endline=5;md5=84796c3c41785d86100fdabcbdade00e" SRC_URI = "file://builder_session.sh \ " -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" -RDEPENDS_${PN} = "mini-x-session" +RDEPENDS:${PN} = "mini-x-session" inherit useradd # builder user password is "builder" BUILDER_PASSWORD ?= ".gLibiNXn0P12" USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --create-home \ +USERADD_PARAM:${PN} = "--system --create-home \ --groups video,tty,audio \ --password ${BUILDER_PASSWORD} \ --user-group builder" @@ -29,3 +29,4 @@ do_install () { chown builder.builder ${D}${sysconfdir}/mini_x/session.d/builder_session.sh } +CVE_STATUS[CVE-2008-4178] = "cpe-incorrect: This CVE is for an unrelated builder" diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch deleted file mode 100644 index 4252a5663b..0000000000 --- a/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch +++ /dev/null @@ -1,34 +0,0 @@ -CVE: CVE-2018-19876 -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos <cgarcia@igalia.com> -Date: Mon, 19 Nov 2018 12:33:07 +0100 -Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in - cairo_ft_apply_variations - -Fixes a crash when using freetype >= 2.9 ---- - src/cairo-ft-font.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c -index 325dd61b4..981973f78 100644 ---- a/src/cairo-ft-font.c -+++ b/src/cairo-ft-font.c -@@ -2393,7 +2393,11 @@ skip: - done: - free (coords); - free (current_coords); -+#if HAVE_FT_DONE_MM_VAR -+ FT_Done_MM_Var (face->glyph->library, ft_mm_var); -+#else - free (ft_mm_var); -+#endif - } - } - --- -2.11.0 - diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch deleted file mode 100644 index 5232cf70c6..0000000000 --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch +++ /dev/null @@ -1,19 +0,0 @@ -There is a potential infinite-loop in function _arc_error_normalized(). - -CVE: CVE-2019-6461 -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/src/cairo-arc.c b/src/cairo-arc.c -index 390397bae..f9249dbeb 100644 ---- a/src/cairo-arc.c -+++ b/src/cairo-arc.c -@@ -99,7 +99,7 @@ _arc_max_angle_for_tolerance_normalized (double tolerance) - do { - angle = M_PI / i++; - error = _arc_error_normalized (angle); -- } while (error > tolerance); -+ } while (error > tolerance && error > __DBL_EPSILON__); - - return angle; - } diff --git a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch deleted file mode 100644 index 4e4598c5b5..0000000000 --- a/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch +++ /dev/null @@ -1,20 +0,0 @@ -There is an assertion in function _cairo_arc_in_direction(). - -CVE: CVE-2019-6462 -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/src/cairo-arc.c b/src/cairo-arc.c -index 390397bae..1bde774a4 100644 ---- a/src/cairo-arc.c -+++ b/src/cairo-arc.c -@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t *cr, - if (cairo_status (cr)) - return; - -- assert (angle_max >= angle_min); -+ if (angle_max < angle_min) -+ return; - - if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) { - angle_max = fmod (angle_max - angle_min, 2 * M_PI); diff --git a/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff b/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff index 7aaad2eedd..6c761bf2a7 100644 --- a/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff +++ b/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff @@ -3,7 +3,7 @@ Cairo: Fix Denial-of-Service Attack due to Logical Problem in Program https://bugs.freedesktop.org/show_bug.cgi?id=100763 CVE: CVE-2017-7475 -Upstream-Status: Submitted +Upstream-Status: Submitted [https://gitlab.freedesktop.org/cairo/cairo/-/issues/80] Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.16.0.bb deleted file mode 100644 index e3de3f6164..0000000000 --- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb +++ /dev/null @@ -1,90 +0,0 @@ -SUMMARY = "The Cairo 2D vector graphics library" -DESCRIPTION = "Cairo is a multi-platform library providing anti-aliased \ -vector-based rendering for multiple target backends. Paths consist \ -of line segments and cubic splines and can be rendered at any width \ -with various join and cap styles. All colors may be specified with \ -optional translucence (opacity/alpha) and combined using the \ -extended Porter/Duff compositing algebra as found in the X Render \ -Extension." -HOMEPAGE = "http://cairographics.org" -BUGTRACKER = "http://bugs.freedesktop.org" -SECTION = "libs" - -LICENSE = "(MPL-1.1 | LGPLv2.1) & GPLv3+" -LICENSE_${PN} = "MPL-1.1 | LGPLv2.1" -LICENSE_${PN}-dev = "MPL-1.1 | LGPLv2.1" -LICENSE_${PN}-doc = "MPL-1.1 | LGPLv2.1" -LICENSE_${PN}-gobject = "MPL-1.1 | LGPLv2.1" -LICENSE_${PN}-script-interpreter = "MPL-1.1 | LGPLv2.1" -LICENSE_${PN}-perf-utils = "GPLv3+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77" - -DEPENDS = "fontconfig glib-2.0 libpng pixman zlib" - -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \ - file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \ - file://CVE-2018-19876.patch \ - file://CVE-2019-6461.patch \ - file://CVE-2019-6462.patch \ - " - -SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552" -SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331" - -inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script - -MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace" - -X11DEPENDS = "virtual/libx11 libsm libxrender libxext" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}" - -PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}" -PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb" -PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb" -PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind" -PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl" -PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2" -PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl" - -EXTRA_OECONF += " \ - ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \ - --enable-tee \ -" - -# We don't depend on binutils so we need to disable this -export ac_cv_lib_bfd_bfd_openr="no" -# Ensure we don't depend on LZO -export ac_cv_lib_lzo2_lzo2a_decompress="no" - -do_install_append () { - rm -rf ${D}${bindir}/cairo-sphinx - rm -rf ${D}${libdir}/cairo/cairo-fdr* - rm -rf ${D}${libdir}/cairo/cairo-sphinx* - rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr* - rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx* -} - -PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils" - -SUMMARY_cairo-gobject = "The Cairo library GObject wrapper library" -DESCRIPTION_cairo-gobject = "A GObject wrapper library for the Cairo API." - -SUMMARY_cairo-script-interpreter = "The Cairo library script interpreter" -DESCRIPTION_cairo-script-interpreter = "The Cairo script interpreter implements \ -CairoScript. CairoScript is used by tracing utilities to enable the ability \ -to replay rendering." - -DESCRIPTION_cairo-perf-utils = "The Cairo library performance utilities" - -FILES_${PN} = "${libdir}/libcairo.so.*" -FILES_${PN}-gobject = "${libdir}/libcairo-gobject.so.*" -FILES_${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*" -FILES_${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so" - -BBCLASSEXTEND = "native nativesdk" - -UPSTREAM_CHECK_REGEX = "cairo-(?P<pver>\d+(\.\d+)+).tar.xz" diff --git a/meta/recipes-graphics/cairo/cairo_1.18.2.bb b/meta/recipes-graphics/cairo/cairo_1.18.2.bb new file mode 100644 index 0000000000..12aeb431d0 --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo_1.18.2.bb @@ -0,0 +1,86 @@ +SUMMARY = "The Cairo 2D vector graphics library" +DESCRIPTION = "Cairo is a multi-platform library providing anti-aliased \ +vector-based rendering for multiple target backends. Paths consist \ +of line segments and cubic splines and can be rendered at any width \ +with various join and cap styles. All colors may be specified with \ +optional translucence (opacity/alpha) and combined using the \ +extended Porter/Duff compositing algebra as found in the X Render \ +Extension." +HOMEPAGE = "http://cairographics.org" +BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues" +SECTION = "libs" + +LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later" +LICENSE:${PN} = "MPL-1.1 | LGPL-2.1-only" +LICENSE:${PN}-dev = "MPL-1.1 | LGPL-2.1-only" +LICENSE:${PN}-doc = "MPL-1.1 | LGPL-2.1-only" +LICENSE:${PN}-gobject = "MPL-1.1 | LGPL-2.1-only" +LICENSE:${PN}-script-interpreter = "MPL-1.1 | LGPL-2.1-only" +LICENSE:${PN}-perf-utils = "GPL-3.0-or-later" +# Adapt the licenses for cairo-dbg and cairo-src depending on whether +# cairo-trace is being built. +LICENSE:${PN}-dbg = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}" +LICENSE:${PN}-src = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \ + ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}" + + +DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib" + +SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \ + file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \ + " + +SRC_URI[sha256sum] = "a62b9bb42425e844cc3d6ddde043ff39dbabedd1542eba57a2eb79f85889d45a" + +inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script + +# if qemu usermode isn't available, this value needs to be set statically +# (otherwise it's determinted by running a small target executable with qemu) +do_write_config:append() { + cat >${WORKDIR}/cairo.cross <<EOF +[properties] +ipc_rmid_deferred_release = 'true' +EOF +} +EXTRA_OEMESON:append:class-nativesdk = "${@' --cross-file ${WORKDIR}/cairo.cross' if d.getVar('EXEWRAPPER_ENABLED') == 'False' else ''}" +EXTRA_OEMESON:append:class-target = "${@' --cross-file ${WORKDIR}/cairo.cross' if d.getVar('EXEWRAPPER_ENABLED') == 'False' else ''}" + +GTKDOC_MESON_OPTION = "gtk_doc" + +MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace" +PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext" +PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb" +# cairo-trace is GPLv3 so add an option to remove it +PACKAGECONFIG[trace] = "" + +do_install:append () { + if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then + rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so + rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo + fi +} + +PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils" + +SUMMARY:cairo-gobject = "The Cairo library GObject wrapper library" +DESCRIPTION:cairo-gobject = "A GObject wrapper library for the Cairo API." + +SUMMARY:cairo-script-interpreter = "The Cairo library script interpreter" +DESCRIPTION:cairo-script-interpreter = "The Cairo script interpreter implements \ +CairoScript. CairoScript is used by tracing utilities to enable the ability \ +to replay rendering." + +DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities" + +FILES:${PN} = "${libdir}/libcairo.so.*" +FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*" +FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*" +FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so" + +BBCLASSEXTEND = "native nativesdk" + +UPSTREAM_CHECK_REGEX = "cairo-(?P<pver>\d+(\.\d+)+).tar.xz" diff --git a/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb b/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb new file mode 100644 index 0000000000..a3a69ae49c --- /dev/null +++ b/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.303.1.bb @@ -0,0 +1,18 @@ +SUMMARY = "Cantarell, a Humanist sans-serif font family" + +DESCRIPTION = "The Cantarell font typeface is designed as a \ + contemporary Humanist sans serif, and was developed for \ + on-screen reading; in particular, reading web pages on an \ + HTC Dream mobile phone." + +HOMEPAGE = "https://gitlab.gnome.org/GNOME/cantarell-fonts/" +SECTION = "fonts" +LICENSE = "OFL-1.1 & Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb1ef92b6909969a472a6ea3c4e99cb7" + +inherit gnomebase meson allarch fontcache pkgconfig +SRC_URI[archive.sha256sum] = "f9463a0659c63e57e381fdd753cf1929225395c5b49135989424761830530411" + +EXTRA_OEMESON += "-Duseprebuilt=true -Dbuildappstream=false" + +FILES:${PN} = "${datadir}/fonts ${datadir}/fontconfig" diff --git a/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb b/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb deleted file mode 100644 index db480bd397..0000000000 --- a/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Cantarell, a Humanist sans-serif font family" - -DESCRIPTION = "The Cantarell font typeface is designed as a \ - contemporary Humanist sans serif, and was developed for \ - on-screen reading; in particular, reading web pages on an \ - HTC Dream mobile phone." - -HOMEPAGE = "https://gitlab.gnome.org/GNOME/cantarell-fonts/" -SECTION = "fonts" -LICENSE = "OFL-1.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=df91e3ffcab8cfb972a66bf11255188d" - -PV = "0.0.25" - -SRCREV = "e28a9096da43984212b5b4002b949bcb8c7527f9" -SRC_URI = "git://gitlab.gnome.org/GNOME/cantarell-fonts.git;protocol=https;branch=reconstruction-0.0.25" -UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!0\.13)(?!0\.10\.1)\d+\.\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -inherit autotools allarch fontcache pkgconfig - -PACKAGECONFIG ??= "" -PACKAGECONFIG[fontforge] = "--enable-source-rebuild=yes,--enable-source-rebuild=no,fontforge-native" -FILES_${PN} = "${datadir}/fonts ${datadir}/fontconfig" diff --git a/meta/recipes-graphics/clutter/clutter-1.0.inc b/meta/recipes-graphics/clutter/clutter-1.0.inc deleted file mode 100644 index 5dc45ebf21..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0.inc +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Graphics library for creating hardware-accelerated user interfaces" -DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \ -designed for creating fast, mainly 2D single window applications such as media \ -box UIs, presentations, kiosk style applications and so on." -HOMEPAGE = "http://www.clutter-project.org/" -LICENSE = "LGPLv2.1+" - -inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection -# depends on cogl-1.0 which needs opengl -REQUIRED_DISTRO_FEATURES ?= "opengl" - -DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0" -PACKAGE_BEFORE_PN += "${PN}-examples" -AUTOTOOLS_AUXDIR = "${S}/build" - -EDEPENDS_X11 = "virtual/libx11 libxi libxfixes" -EDEPENDS_GLX = "virtual/libgl" -EDEPENDS_EGL = "virtual/egl" -EDEPENDS_WAYLAND = "wayland libxkbcommon gdk-pixbuf" - -EDEPENDS_EVDEV = "libxkbcommon" -ERDEPENDS_EVDEV = "xkeyboard-config" - -# Disable pretty much everything, override in platform specific set up -EXTRA_OECONF += "--disable-quartz-backend \ - --disable-win32-backend \ - --disable-gdk-backend \ - --disable-cex100-backend \ - --disable-tslib-input \ - " - -PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}" -PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}" -PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}" -PACKAGECONFIG[evdev] = "--enable-evdev-input,--disable-evdev-input,${EDEPENDS_EVDEV},${ERDEPENDS_EVDEV}" -PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${EDEPENDS_WAYLAND}" -PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland" - -# Default configuration, distros might want to override -PACKAGECONFIG ??= "egl \ - ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}" - -FILES_${PN}-examples = "${libdir}/clutter/examples" - -do_configure_prepend() { - # see https://bugzilla.gnome.org/show_bug.cgi?id=661128 for this - touch -t 200001010000 ${S}/po/clutter-1.0.pot -} diff --git a/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch b/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch deleted file mode 100644 index 7b3c1980b6..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Fri, 2 Sep 2016 14:28:38 +0300 -Subject: [PATCH] Remove clutter.types as it is build configuration-specific. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - doc/reference/clutter.types | 122 -------------------------------------------- - 1 file changed, 122 deletions(-) - delete mode 100644 doc/reference/clutter.types - -diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types -deleted file mode 100644 -index 0037acc..0000000 ---- a/doc/reference/clutter.types -+++ /dev/null -@@ -1,122 +0,0 @@ --cally_actor_get_type --cally_clone_get_type --cally_group_get_type --cally_rectangle_get_type --cally_root_get_type --cally_stage_get_type --cally_text_get_type --cally_texture_get_type --cally_util_get_type --clutter_action_get_type --clutter_actor_box_get_type --clutter_actor_get_type --clutter_actor_meta_get_type --clutter_align_constraint_get_type --clutter_alpha_get_type --clutter_animatable_get_type --clutter_animation_get_type --clutter_animator_get_type --clutter_animator_key_get_type --clutter_backend_get_type --clutter_behaviour_depth_get_type --clutter_behaviour_ellipse_get_type --clutter_behaviour_get_type --clutter_behaviour_opacity_get_type --clutter_behaviour_path_get_type --clutter_behaviour_rotate_get_type --clutter_behaviour_scale_get_type --clutter_bin_layout_get_type --clutter_bind_constraint_get_type --clutter_binding_pool_get_type --clutter_blur_effect_get_type --clutter_box_get_type --clutter_box_layout_get_type --clutter_brightness_contrast_effect_get_type --clutter_cairo_texture_get_type --clutter_canvas_get_type --clutter_child_meta_get_type --clutter_click_action_get_type --clutter_clip_node_get_type --clutter_clone_get_type --clutter_color_get_type --clutter_color_node_get_type --clutter_colorize_effect_get_type --clutter_constraint_get_type --clutter_container_get_type --clutter_content_get_type --clutter_deform_effect_get_type --clutter_desaturate_effect_get_type --clutter_device_manager_get_type --clutter_drag_action_get_type --clutter_drop_action_get_type --clutter_effect_get_type --clutter_event_get_type --clutter_event_sequence_get_type --clutter_fixed_layout_get_type --clutter_flow_layout_get_type --clutter_fog_get_type --clutter_geometry_get_type --clutter_gesture_action_get_type --clutter_glx_texture_pixmap_get_type --clutter_grid_layout_get_type --clutter_group_get_type --clutter_image_get_type --clutter_input_device_get_type --clutter_interval_get_type --clutter_keyframe_transition_get_type --clutter_knot_get_type --clutter_layout_manager_get_type --clutter_layout_meta_get_type --clutter_list_model_get_type --clutter_margin_get_type --clutter_media_get_type --clutter_model_get_type --clutter_model_iter_get_type --clutter_offscreen_effect_get_type --clutter_page_turn_effect_get_type --clutter_paint_node_get_type --clutter_paint_volume_get_type --clutter_pan_action_get_type --clutter_param_color_get_type --clutter_param_fixed_get_type --clutter_param_units_get_type --clutter_path_constraint_get_type --clutter_path_get_type --clutter_path_node_get_type --clutter_perspective_get_type --clutter_pipeline_node_get_type --clutter_point_get_type --clutter_property_transition_get_type --clutter_rect_get_type --clutter_rectangle_get_type --clutter_rotate_action_get_type --clutter_score_get_type --clutter_script_get_type --clutter_scriptable_get_type --clutter_scroll_actor_get_type --clutter_settings_get_type --clutter_shader_effect_get_type --clutter_shader_float_get_type --clutter_shader_get_type --clutter_shader_int_get_type --clutter_shader_matrix_get_type --clutter_size_get_type --clutter_snap_constraint_get_type --clutter_stage_get_type --clutter_stage_manager_get_type --clutter_state_get_type --clutter_state_key_get_type --clutter_swipe_action_get_type --clutter_table_layout_get_type --clutter_tap_action_get_type --clutter_text_buffer_get_type --clutter_text_get_type --clutter_text_node_get_type --clutter_texture_get_type --clutter_texture_node_get_type --clutter_timeline_get_type --clutter_transition_get_type --clutter_transition_group_get_type --clutter_units_get_type --clutter_vertex_get_type --clutter_zoom_action_get_type --- -2.9.3 - diff --git a/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch b/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch deleted file mode 100644 index ce9ab3a248..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0/install-examples.patch +++ /dev/null @@ -1,19 +0,0 @@ -Install the examples to $libdir/clutter/. - -Signed-off-by: Ross Burton <ross.burton@intel.com> -Upstream-Status: Inappropriate - -Index: clutter-1.26.2/examples/Makefile.am -=================================================================== ---- clutter-1.26.2.orig/examples/Makefile.am -+++ clutter-1.26.2/examples/Makefile.am -@@ -33,7 +33,8 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/clutter \ - -I$(top_builddir)/clutter - --noinst_PROGRAMS = $(all_examples) -+exampledir = $(pkglibdir)/examples -+example_PROGRAMS = $(all_examples) - - EXTRA_DIST = redhand.png - diff --git a/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch b/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch deleted file mode 100644 index f5c18c5828..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 668e1d14af13249384ab324c7d79ec4147f07e48 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Mon, 27 Apr 2015 20:12:33 +0300 -Subject: [PATCH] Run installed tests with tap output - -Configure output from installed-tests to be TAP compliant such that -gnome-desktop-testing-runner properly interprets the results. - -Upstream-Status: Pending - -Signed-off-by: Tim Orling <TicoTimo@gmail.com> ---- - build/autotools/glib-tap.mk | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/build/autotools/glib-tap.mk b/build/autotools/glib-tap.mk -index 7c5f82b..844e17e 100644 ---- a/build/autotools/glib-tap.mk -+++ b/build/autotools/glib-tap.mk -@@ -127,7 +127,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test) - %.test: %$(EXEEXT) Makefile - $(AM_V_GEN) (echo '[Test]' > $@.tmp; \ - echo 'Type=session' >> $@.tmp; \ -- echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$<' >> $@.tmp; \ -+ echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$< --tap' >> $@.tmp; \ -+ echo 'Output=TAP' >> $@.tmp; \ - mv $@.tmp $@) - - CLEANFILES += $(installed_test_meta_DATA) --- -2.1.4 - diff --git a/meta/recipes-graphics/clutter/clutter-1.0/run-ptest b/meta/recipes-graphics/clutter/clutter-1.0/run-ptest deleted file mode 100644 index 98877e5226..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0/run-ptest +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/sh - -gnome-desktop-testing-runner clutter diff --git a/meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb b/meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb deleted file mode 100644 index 48b050198a..0000000000 --- a/meta/recipes-graphics/clutter/clutter-1.0_1.26.2.bb +++ /dev/null @@ -1,10 +0,0 @@ -require clutter-1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI[archive.md5sum] = "a03482cbacf735eca8c996f210a21ee5" -SRC_URI[archive.sha256sum] = "e7233314983055e9018f94f56882e29e7fc34d8d35de030789fdcd9b2d0e2e56" -SRC_URI += "file://install-examples.patch \ - file://run-installed-tests-with-tap-output.patch \ - file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \ - file://run-ptest" diff --git a/meta/recipes-graphics/clutter/clutter-gst-3.0.inc b/meta/recipes-graphics/clutter/clutter-gst-3.0.inc deleted file mode 100644 index fc3eade886..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gst-3.0.inc +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "GStreamer integration library for Clutter" -HOMEPAGE = "http://www.clutter-project.org/" -LICENSE = "LGPLv2+" - -inherit clutter features_check upstream-version-is-even gobject-introspection -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES ?= "opengl" - -SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch" - -DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev" -RDEPENDS_${PN} += "gstreamer1.0-meta-base" -PACKAGES =+ "${PN}-examples" - -FILES_${PN} += "${libdir}/gstreamer-1.0/lib*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink" diff --git a/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch b/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch deleted file mode 100644 index 0b26b990d7..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d77c711277bf075ce0545c19b322f040c49c778a Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Thu, 30 Apr 2015 12:19:13 +0300 -Subject: [PATCH] Install example binary needed for core-image-clutter - -Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> - -Upstream-Status: Inappropriate [configuration] - -Imported from clutter-gst-1.8 package, git://git.openembedded.org/openembedded, -commit ae28ee3f7a060b9e0d13154a84f2444a98490b5b, updated for clutter-gst 3.0 - -Signed-off-by: Tomas Frydrych <tomas@sleepfive.com> -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - examples/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/examples/Makefile.am b/examples/Makefile.am -index bfbc1b5..09655e3 100644 ---- a/examples/Makefile.am -+++ b/examples/Makefile.am -@@ -1,6 +1,6 @@ - NULL = # - --noinst_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content -+bin_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content - - AM_CPPFLAGS = -I$(top_srcdir) \ - $(MAINTAINER_CFLAGS) \ --- -2.1.4 - diff --git a/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb b/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb deleted file mode 100644 index 35382453c2..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb +++ /dev/null @@ -1,7 +0,0 @@ -require clutter-gst-3.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4" - -SRC_URI[archive.md5sum] = "2bf9d7ca146c9d71e86c45cd00e9a28e" -SRC_URI[archive.sha256sum] = "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d" diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc deleted file mode 100644 index 7bf2278555..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application" -HOMEPAGE = "http://www.clutter-project.org/" -LICENSE = "LGPLv2+" - -CLUTTERBASEBUILDCLASS = "meson" -inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc - -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES ?= "opengl" -# depends on gtk+3 -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -DEPENDS = "clutter-1.0 gtk+3" -PACKAGES =+ "${PN}-examples" - -GTKDOC_MESON_OPTION = "enable_docs" - -GIR_MESON_OPTION = 'enable_gi' diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch b/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch deleted file mode 100644 index e21c6fd903..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 7233883c6bd4e80c0e91b29b5c76fe798023e9fe Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Mon, 11 Feb 2019 16:41:13 +0100 -Subject: [PATCH] Add a config variable for enabling/disabling introspection - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - clutter-gtk/meson.build | 2 +- - meson_options.txt | 4 ++++ - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build -index 5d6847d..5d934b6 100644 ---- a/clutter-gtk/meson.build -+++ b/clutter-gtk/meson.build -@@ -49,7 +49,7 @@ clutter_gtk_dep = declare_dependency(link_with: clutter_gtk, - dependencies: [ mathlib_dep, clutter_dep, gtk_dep ], - include_directories: include_directories('.')) - --if not meson.is_cross_build() -+if get_option('enable_gi') - gnome.generate_gir(clutter_gtk, - sources: clutter_gtk_headers + clutter_gtk_sources, - namespace: 'GtkClutter', -diff --git a/meson_options.txt b/meson_options.txt -index aaf59f1..b7e51c3 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -2,3 +2,7 @@ option('enable_docs', - type: 'boolean', - value: false, - description: 'Enable generating the API reference (depends on GTK-Doc)') -+option('enable_gi', -+ type: 'boolean', -+ value: false, -+ description: 'Enable gobject introspection') diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb b/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb deleted file mode 100644 index 53948c8944..0000000000 --- a/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb +++ /dev/null @@ -1,7 +0,0 @@ -require clutter-gtk-1.0.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -SRC_URI += " file://0001-Add-a-config-variable-for-enabling-disabling-introsp.patch" -SRC_URI[archive.md5sum] = "b363ac9878e2337be887b8ee9e1da00e" -SRC_URI[archive.sha256sum] = "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06" diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc b/meta/recipes-graphics/cogl/cogl-1.0.inc deleted file mode 100644 index d8d06651da..0000000000 --- a/meta/recipes-graphics/cogl/cogl-1.0.inc +++ /dev/null @@ -1,84 +0,0 @@ -SUMMARY = "Modern 3D graphics API with associated utility APIs" -DESCRIPTION = "Cogl is a small open source library for using 3D graphics \ -hardware for rendering. The API departs from the flat state machine style of \ -OpenGL and is designed to make it easy to write orthogonal components that \ -can render without stepping on each others toes." -HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl" -LICENSE = "MIT" - -inherit clutter features_check upstream-version-is-even gobject-introspection -# cogl-1.0 needs opengl to build -REQUIRED_DISTRO_FEATURES ?= "opengl" - -DEPENDS = "glib-2.0 gdk-pixbuf" -PACKAGES =+ "${PN}-examples \ - libcogl libcogl-gles2 libcogl-pango libcogl-path \ - " -AUTOTOOLS_AUXDIR = "${S}/build" - -# Extra DEPENDS for PACKAGECONFIG -EDEPENDS_GL = "virtual/libgl libdrm" -EDEPENDS_GLES2 = "virtual/libgles2" -EDEPENDS_KMS = "libdrm virtual/egl" -EDEPENDS_EGL = "virtual/egl" -EDEPENDS_X11 = "virtual/libx11 libxcomposite libxfixes libxi libxrandr" -EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland" - -# Extra RDEPENDS for PACKAGECONFIG -# This has to be explictly listed, because cogl dlopens the backends -ERDEPENDS_GL = "libgl" -ERDEPENDS_GLES2 = "libgles2" - -# GLESv1 is rarely tested, so disable it -EXTRA_OECONF += "--enable-examples-install \ - --enable-debug \ - --disable-gles1 \ - --disable-cairo \ - " -DEBUG_OPTIMIZATION_append = " -Wno-error=maybe-uninitialized" - -# OpenGL/GLX -PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}" - -# GLESv2 -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}" - -# EGL backends -PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}" -PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform" -PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}" -PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}" - -# Wayland (server-side) -PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}" - -# Support rendering text directly with Pango -PACKAGECONFIG[cogl-pango] = "--enable-cogl-pango,--disable-cogl-pango,pango" - -# Respect the DISTRO_FEATURES to pull in GLX or Wayland as appropriate by -# default. -PACKAGECONFIG ??= "cogl-pango gles2 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \ - " - -do_compile_prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs" -} - -FILES_${PN} = "" -FILES_${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*" -FILES_libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib" -FILES_libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}" -FILES_libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib" - -FILES_libcogl-path = "${libdir}/libcogl-path${SOLIBS}" - -# For backwards compatibility after Debian-renaming -RPROVIDES_libcogl = "cogl-1.0" -RCONFLICTS_libcogl = "cogl-1.0" -RREPLACES_libcogl = "cogl-1.0" - -RDEPENDS_${PN}-dev = "libcogl" - -COMPATIBLE_HOST_armv4 = 'null' diff --git a/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb b/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb deleted file mode 100644 index 8e61c19f5d..0000000000 --- a/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require cogl-1.0.inc - -SRC_URI[archive.md5sum] = "31755015a865c4af51ac84f6e53af8ab" -SRC_URI[archive.sha256sum] = "5217bf94cbca3df63268a3b79d017725382b9e592b891d1e7dc6212590ce0de0" - -LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84" diff --git a/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch b/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch deleted file mode 100644 index e3d6c5b853..0000000000 --- a/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch +++ /dev/null @@ -1,35 +0,0 @@ -Upstream-Status: Submitted -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 46c0fd6c827a8cb4d04e067bf04fab579ac4712e Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Mon, 18 Jun 2018 15:07:03 +0100 -Subject: [PATCH] tests/nouveau/threaded: adapt ioctl signature - -POSIX says ioctl() has the signature (int, int, ...) but glibc has decided to -use (int, unsigned long int, ...) instead. - -Use a #ifdef to adapt the replacement function as appropriate. ---- - tests/nouveau/threaded.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tests/nouveau/threaded.c b/tests/nouveau/threaded.c -index 3669bcd3..e1c27c01 100644 ---- a/tests/nouveau/threaded.c -+++ b/tests/nouveau/threaded.c -@@ -36,7 +36,11 @@ static int failed; - - static int import_fd; - -+#ifdef __GLIBC__ - int ioctl(int fd, unsigned long request, ...) -+#else -+int ioctl(int fd, int request, ...) -+#endif - { - va_list va; - int ret; --- -2.11.0 - diff --git a/meta/recipes-graphics/drm/libdrm_2.4.100.bb b/meta/recipes-graphics/drm/libdrm_2.4.100.bb deleted file mode 100644 index 4859425672..0000000000 --- a/meta/recipes-graphics/drm/libdrm_2.4.100.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "Userspace interface to the kernel DRM services" -DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ -stands for \"Direct Rendering Manager\", which is the kernel portion of the \ -\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ -accelerated OpenGL drivers." -HOMEPAGE = "http://dri.freedesktop.org" -SECTION = "x11/base" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" -PROVIDES = "drm" -DEPENDS = "libpthread-stubs" - -SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \ - file://musl-ioctl.patch" -SRC_URI[md5sum] = "f47bc87e28198ba527e6b44ffdd62f65" -SRC_URI[sha256sum] = "c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d" - -inherit meson pkgconfig manpages - -PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs" -PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false" -PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess" -PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false" -PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false" -PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false" -PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false" -PACKAGECONFIG[omap] = "-Domap=true,-Domap=false" -PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false" -PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false" -PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false" -PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false" -PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false" -PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" -PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind" -PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" -PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false" -PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" -PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native" - -ALLOW_EMPTY_${PN}-drivers = "1" -PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ - ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ - ${PN}-etnaviv" - -RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ - ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ - ${PN}-etnaviv" - -FILES_${PN}-tests = "${bindir}/*" -FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" -FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" -FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" -FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" -FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" -FILES_${PN}-kms = "${libdir}/libkms*.so.*" -FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" -FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids" -FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/drm/libdrm_2.4.123.bb b/meta/recipes-graphics/drm/libdrm_2.4.123.bb new file mode 100644 index 0000000000..b75d7b6103 --- /dev/null +++ b/meta/recipes-graphics/drm/libdrm_2.4.123.bb @@ -0,0 +1,59 @@ +SUMMARY = "Userspace interface to the kernel DRM services" +DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ +stands for \"Direct Rendering Manager\", which is the kernel portion of the \ +\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ +accelerated OpenGL drivers." +HOMEPAGE = "http://dri.freedesktop.org" +SECTION = "x11/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" +PROVIDES = "drm" +DEPENDS = "libpthread-stubs" + +SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \ + " + +SRC_URI[sha256sum] = "a2b98567a149a74b0f50e91e825f9c0315d86e7be9b74394dae8b298caadb79e" + +inherit meson pkgconfig manpages + +PACKAGECONFIG ??= "intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv tests install-test-programs" +PACKAGECONFIG[intel] = "-Dintel=enabled,-Dintel=disabled,libpciaccess" +PACKAGECONFIG[radeon] = "-Dradeon=enabled,-Dradeon=disabled" +PACKAGECONFIG[amdgpu] = "-Damdgpu=enabled,-Damdgpu=disabled" +PACKAGECONFIG[nouveau] = "-Dnouveau=enabled,-Dnouveau=disabled" +PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=enabled,-Dvmwgfx=disabled" +PACKAGECONFIG[omap] = "-Domap=enabled,-Domap=disabled" +PACKAGECONFIG[exynos] = "-Dexynos=enabled,-Dexynos=disabled" +PACKAGECONFIG[freedreno] = "-Dfreedreno=enabled,-Dfreedreno=disabled" +PACKAGECONFIG[tegra] = "-Dtegra=enabled,-Dtegra=disabled" +PACKAGECONFIG[vc4] = "-Dvc4=enabled,-Dvc4=disabled" +PACKAGECONFIG[etnaviv] = "-Detnaviv=enabled,-Detnaviv=disabled" +PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" +PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind" +PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" +PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=enabled,-Dcairo-tests=disabled" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false" +PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" +PACKAGECONFIG[manpages] = "-Dman-pages=enabled,-Dman-pages=disabled,libxslt-native xmlto-native python3-docutils-native" + +ALLOW_EMPTY:${PN}-drivers = "1" +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ + ${PN}-intel ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ + ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +FILES:${PN}-tests = "${bindir}/*" +FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*" +FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" +FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*" +FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*" +FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*" +FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" +FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids" +FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.13.1.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.15.0.bb index d0da419ce0..b737447e47 100644 --- a/meta/recipes-graphics/fontconfig/fontconfig_2.13.1.bb +++ b/meta/recipes-graphics/fontconfig/fontconfig_2.15.0.bb @@ -11,10 +11,10 @@ rasterize fonts." HOMEPAGE = "http://www.fontconfig.org" BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig" -LICENSE = "MIT-style & MIT & PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=7a0449e9bc5370402a94c00204beca3d \ - file://src/fcfreetype.c;endline=45;md5=5d9513e3196a1fbfdfa94051c09dfc84 \ - file://src/fccache.c;beginline=1671;endline=1686;md5=0326cfeb4a7333dd4dd25fbbc4b9f27f" +LICENSE = "MIT & MIT & PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=00252fd272bf2e722925613ad74cb6c7 \ + file://src/fcfreetype.c;endline=45;md5=ef8702fbf3dc506715be8a9d69cb0252 \ + " SECTION = "libs" @@ -24,38 +24,37 @@ SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \ file://revert-static-pkgconfig.patch \ " -SRC_URI[md5sum] = "690c6cb840a92fa8908cdf462d19ec66" -SRC_URI[sha256sum] = "9f0d852b39d75fc655f9f53850eb32555394f36104a044bb2b2fc9e66dbbfa7f" +SRC_URI[sha256sum] = "f5f359d6332861bd497570848fcb42520964a9e83d5e3abe397b6b6db9bcaaf4" UPSTREAM_CHECK_REGEX = "fontconfig-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" -do_configure_prepend() { +do_configure:prepend() { # work around https://bugs.freedesktop.org/show_bug.cgi?id=101280 rm -f ${S}/src/fcobjshash.h ${S}/src/fcobjshash.gperf } -do_install_append_class-target() { +do_install:append:class-target() { # duplicate fc-cache for postinstall script mkdir -p ${D}${libexecdir} ln ${D}${bindir}/fc-cache ${D}${libexecdir}/${MLPREFIX}fc-cache } -do_install_append_class-nativesdk() { +do_install:append:class-nativesdk() { # duplicate fc-cache for postinstall script mkdir -p ${D}${libexecdir} ln ${D}${bindir}/fc-cache ${D}${libexecdir}/${MLPREFIX}fc-cache } PACKAGES =+ "fontconfig-utils" -FILES_${PN} =+ "${datadir}/xml/*" -FILES_${PN}-dev += "${datadir}/gettext/*" -FILES_fontconfig-utils = "${bindir}/* ${libexecdir}/*" +FILES:${PN} =+ "${datadir}/xml/*" +FILES:${PN}-dev += "${datadir}/gettext/*" +FILES:fontconfig-utils = "${bindir}/* ${libexecdir}/*" # Work around past breakage in debian.bbclass -RPROVIDES_fontconfig-utils = "libfontconfig-utils" -RREPLACES_fontconfig-utils = "libfontconfig-utils" -RCONFLICTS_fontconfig-utils = "libfontconfig-utils" -DEBIAN_NOAUTONAME_fontconfig-utils = "1" +RPROVIDES:fontconfig-utils = "libfontconfig-utils" +RREPLACES:fontconfig-utils = "libfontconfig-utils" +RCONFLICTS:fontconfig-utils = "libfontconfig-utils" +DEBIAN_NOAUTONAME:fontconfig-utils = "1" inherit autotools pkgconfig relative_symlinks gettext diff --git a/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch b/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch deleted file mode 100644 index 3368f7ddd3..0000000000 --- a/meta/recipes-graphics/freetype/freetype/use-right-libtool.patch +++ /dev/null @@ -1,14 +0,0 @@ -Freetype think that it knows best about where libtool is, and explicitly the -libtool autoconf macros telling it where to find the libtool script. Of course -we prefix the script with the target triplet, so it's wrong. Fix this by -removing the forced assignment, so the configure script's knowledge of where it -put libtool is used. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> - ---- freetype-2.6/builds/unix/unix-cc.in.orig 2016-01-07 19:21:45.244943479 +0000 -+++ freetype-2.6/builds/unix/unix-cc.in 2016-01-07 19:21:50.213112131 +0000 -@@ -19,1 +18,1 @@ --LIBTOOL := $(FT_LIBTOOL_DIR)/libtool -+LIBTOOL := $(FT_LIBTOOL_DIR)/@LIBTOOL@ --tag CC diff --git a/meta/recipes-graphics/freetype/freetype_2.10.1.bb b/meta/recipes-graphics/freetype/freetype_2.13.3.bb index b179a0ed47..30f50cc289 100644 --- a/meta/recipes-graphics/freetype/freetype_2.10.1.bb +++ b/meta/recipes-graphics/freetype/freetype_2.13.3.bb @@ -7,16 +7,14 @@ HOMEPAGE = "http://www.freetype.org/" BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype" SECTION = "libs" -LICENSE = "FreeType | GPLv2+" -LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \ +LICENSE = "(FTL | GPL-2.0-or-later) & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=843b6efc16f6b1652ec97f89d5a516c0 \ file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \ - file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec" + file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec \ + " -SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz \ - file://use-right-libtool.patch \ - " -SRC_URI[md5sum] = "bd42e75127f8431923679480efb5ba8f" -SRC_URI[sha256sum] = "16dbfa488a21fe827dc27eaf708f42f7aa3bb997d745d31a19781628c36ba26f" +SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz" +SRC_URI[sha256sum] = "0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289" UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)" @@ -27,7 +25,7 @@ AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix" CONFIGURE_SCRIPT = "${S}/configure" EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake" -PACKAGECONFIG ??= "zlib" +PACKAGECONFIG ??= "zlib pixmap" PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2" # harfbuzz results in a circular dependency so enabling is non-trivial @@ -40,7 +38,7 @@ EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'" TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64" -do_install_append() { +do_install:append() { oe_multilib_header freetype2/freetype/config/ftconfig.h } diff --git a/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch b/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch new file mode 100644 index 0000000000..2418646689 --- /dev/null +++ b/meta/recipes-graphics/glew/glew/0001-Fix-build-race-in-Makefile.patch @@ -0,0 +1,56 @@ +Upstream-Status: Backport [767e0316450911f1158bd4f7fd8dcd066bae5c55] +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From 0ce0a85597db48a2fca619bd95e34af091e54ae8 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@arm.com> +Date: Thu, 22 Jul 2021 16:31:11 +0100 +Subject: [PATCH] Fix build race in Makefile + +The current rule for the binaries is: + +glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) + +In parallel builds, all of those targets happen at the same time. This +means that 'bin' can happen *after* 'bin/$(GLEWINFO.BIN)', which is a +problem as the 'bin' target's responsibility is to create the directory +that the other target writes into. + +Solve this by not having a separate 'create directory' target which is +fundamentally racy, and simply mkdir in each target which writes into it. +--- + Makefile | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index d0e4614..04af44c 100644 +--- a/Makefile ++++ b/Makefile +@@ -171,21 +171,20 @@ VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o) + # Don't build glewinfo or visualinfo for NaCL, yet. + + ifneq ($(filter nacl%,$(SYSTEM)),) +-glew.bin: glew.lib bin ++glew.bin: glew.lib + else +-glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) ++glew.bin: glew.lib bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) + endif + +-bin: +- mkdir bin +- + bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED) ++ @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS) + ifneq ($(STRIP),) + $(STRIP) -x $@ + endif + + bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED) ++ @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJ) $(BIN.LIBS) + ifneq ($(STRIP),) + $(STRIP) -x $@ +-- +2.25.1 + diff --git a/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch b/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch deleted file mode 100644 index 64f3e2fd9b..0000000000 --- a/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 7f65a36866f4e24dd1446fe1c9d21424f28bcabd Mon Sep 17 00:00:00 2001 -From: Deve <deveee@gmail.com> -Date: Wed, 14 Nov 2018 21:07:29 +0100 -Subject: [PATCH] Fixed compilation with current mesa versions. - -As you can see in -https://cgit.freedesktop.org/mesa/mesa/tree/include/GL/glext.h -now the file uses __gl_glext_h_ instead of __glext_h_ -It's precisely caused by commit f7d42ee7d319256608ad60778f6787c140badada - -Backoprt notes: - -* The original patch adjusts auto/src/glew_head.h only -* include/GL/glew.h is not part of git repo and gets created on tarball - creation - -=> patch include/GL/glew.h either to cause the desired fix - -Upstream-Status: Backport [1] - -[1] https://github.com/nigels-com/glew/commit/7f65a36866f4e24dd1446fe1c9d21424f28bcabd - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> ---- - auto/src/glew_head.h | 3 ++- - include/GL/glew.h | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/auto/src/glew_head.h b/auto/src/glew_head.h -index c19cefb..8f313d9 100644 ---- a/auto/src/glew_head.h -+++ b/auto/src/glew_head.h -@@ -14,7 +14,7 @@ - #if defined(__REGAL_H__) - #error Regal.h included before glew.h - #endif --#if defined(__glext_h_) || defined(__GLEXT_H_) -+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) - #error glext.h included before glew.h - #endif - #if defined(__gl_ATI_h_) -@@ -30,6 +30,7 @@ - #define __X_GL_H - #define __glext_h_ - #define __GLEXT_H_ -+#define __gl_glext_h_ - #define __gl_ATI_h_ - - #if defined(_WIN32) -diff --git a/include/GL/glew.h b/include/GL/glew.h -index b5b6987..a9f9e4b 100644 ---- a/include/GL/glew.h -+++ b/include/GL/glew.h -@@ -93,7 +93,7 @@ - #if defined(__REGAL_H__) - #error Regal.h included before glew.h - #endif --#if defined(__glext_h_) || defined(__GLEXT_H_) -+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) - #error glext.h included before glew.h - #endif - #if defined(__gl_ATI_h_) -@@ -109,6 +109,7 @@ - #define __X_GL_H - #define __glext_h_ - #define __GLEXT_H_ -+#define __gl_glext_h_ - #define __gl_ATI_h_ - - #if defined(_WIN32) --- -2.20.1 - diff --git a/meta/recipes-graphics/glew/glew/no-strip.patch b/meta/recipes-graphics/glew/glew/no-strip.patch index e411f11cb5..5708d93082 100644 --- a/meta/recipes-graphics/glew/glew/no-strip.patch +++ b/meta/recipes-graphics/glew/glew/no-strip.patch @@ -1,7 +1,7 @@ Don't forcibly strip the binaries. Signed-off-by: Ross Burton <ross.burton@intel.com> -Upstream-Status: Pending +Upstream-Status: Backport [d7693eea09ac76c67f5f3aa538bb911ce2291e2c] diff --git a/Makefile b/Makefile index 6a9803c..170c0ce 100644 diff --git a/meta/recipes-graphics/glew/glew/notempdir.patch b/meta/recipes-graphics/glew/glew/notempdir.patch new file mode 100644 index 0000000000..68b46b6641 --- /dev/null +++ b/meta/recipes-graphics/glew/glew/notempdir.patch @@ -0,0 +1,21 @@ +We don't use the dist-* targets and hence DIST_DIR isn't used. The current code +creates a new temp directory in /tmp/ for every invocation of make. Lets +not do that. + +https://github.com/nigels-com/glew/issues/334 + +Upstream-Status: Pending [a revised version would be needed for upstream] +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Index: glew-2.2.0/Makefile +=================================================================== +--- glew-2.2.0.orig/Makefile ++++ glew-2.2.0/Makefile +@@ -56,7 +56,6 @@ DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME + DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz + DIST_WIN32 ?= $(shell pwd)/$(DIST_NAME)-win32.zip + +-DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME) + + # To disable stripping of linked binaries either: + # - use STRIP= on gmake command-line diff --git a/meta/recipes-graphics/glew/glew_2.1.0.bb b/meta/recipes-graphics/glew/glew_2.2.0.bb index f6f43406f8..d7a26a3438 100644 --- a/meta/recipes-graphics/glew/glew_2.1.0.bb +++ b/meta/recipes-graphics/glew/glew_2.2.0.bb @@ -6,11 +6,12 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2" SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \ - file://no-strip.patch \ - file://0001-Fixed-compilation-with-current-mesa-versions.patch" + file://0001-Fix-build-race-in-Makefile.patch \ + file://notempdir.patch \ + file://no-strip.patch" -SRC_URI[md5sum] = "b2ab12331033ddfaa50dc39345343980" -SRC_URI[sha256sum] = "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95" +SRC_URI[md5sum] = "3579164bccaef09e36c0af7f4fd5c7c7" +SRC_URI[sha256sum] = "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1" UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew" UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/" @@ -22,8 +23,8 @@ REQUIRED_DISTRO_FEATURES = "opengl" PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', 'egl-gles2', d)}" # The opengl and egl-XXX options are exclusive, enable only one. -PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu" -PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2" +PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu,,,egl-gles2" +PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2,,,opengl" CFLAGS += "-D_GNU_SOURCE" # Override SYSTEM (via PACKAGECONFIG_CONFARGS) to avoid calling config.guess, diff --git a/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch b/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch new file mode 100644 index 0000000000..f8c0fc64c8 --- /dev/null +++ b/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch @@ -0,0 +1,46 @@ +From 0311dfd63ea41abb45aaf0f4ccc674f574ce639e Mon Sep 17 00:00:00 2001 +From: Jose Quaresma <quaresma.jose@gmail.com> +Date: Sun, 7 Feb 2021 01:30:39 +0000 +Subject: [PATCH] generate glslang pkg-config + +Based on https://src.fedoraproject.org/rpms/glslang/blob/main/f/0001-pkg-config-compatibility.patch + +Upstream-Status: Inappropriate [independently developed patch submitted at https://github.com/KhronosGroup/glslang/pull/3371] + +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> +--- + glslang/CMakeLists.txt | 2 ++ + glslang/glslang.pc.cmake.in | 11 +++++++++++ + 2 files changed, 13 insertions(+) + create mode 100644 glslang/glslang.pc.cmake.in + +diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt +index 8d4b1e9c..717c6d47 100644 +--- a/glslang/CMakeLists.txt ++++ b/glslang/CMakeLists.txt +@@ -235,6 +235,8 @@ if(GLSLANG_ENABLE_INSTALL) + install(TARGETS MachineIndependent EXPORT glslang-targets) + install(TARGETS GenericCodeGen EXPORT glslang-targets) + endif() ++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/glslang.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc @ONLY) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + + set(PUBLIC_HEADERS + Public/ResourceLimits.h +diff --git a/glslang/glslang.pc.cmake.in b/glslang/glslang.pc.cmake.in +new file mode 100644 +index 00000000..43104e68 +--- /dev/null ++++ b/glslang/glslang.pc.cmake.in +@@ -0,0 +1,11 @@ ++prefix=@CMAKE_INSTALL_PREFIX@ ++exec_prefix=@CMAKE_INSTALL_PREFIX@ ++libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++ ++Name: @PROJECT_NAME@ ++Description: OpenGL and OpenGL ES shader front end and validator ++Requires: ++Version: @GLSLANG_VERSION@ ++Libs: -L${libdir} -lglslang -lHLSL -lSPVRemapper ++Cflags: -I${includedir} diff --git a/meta/recipes-graphics/glslang/glslang_1.3.290.0.bb b/meta/recipes-graphics/glslang/glslang_1.3.290.0.bb new file mode 100644 index 0000000000..d6ee46de1e --- /dev/null +++ b/meta/recipes-graphics/glslang/glslang_1.3.290.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "OpenGL / OpenGL ES Reference Compiler" +DESCRIPTION = "Glslang is the official reference compiler front end for the \ +OpenGL ES and OpenGL shading languages. It implements a strict interpretation \ +of the specifications for these languages. It is open and free for anyone to use, \ +either from a command line or programmatically." +SECTION = "graphics" +HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler" +LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2a2b5acd7bc4844964cfda45fe807dc3" + +SRCREV = "fa9c3deb49e035a8abcabe366f26aac010f6cbfb" +SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https;branch=main \ + file://0001-generate-glslang-pkg-config.patch \ + " +PE = "1" +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" +S = "${WORKDIR}/git" + +inherit cmake python3native + +DEPENDS = "spirv-tools" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DENABLE_PCH=OFF \ + -DENABLE_CTEST=OFF \ + -DBUILD_EXTERNAL=OFF \ + -DALLOW_EXTERNAL_SPIRV_TOOLS=ON \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/graphene/files/float-div.patch b/meta/recipes-graphics/graphene/files/float-div.patch new file mode 100644 index 0000000000..bf74101b1c --- /dev/null +++ b/meta/recipes-graphics/graphene/files/float-div.patch @@ -0,0 +1,28 @@ +From c19d1f4a7e44e071df3a2612ae2eb20c84e831a6 Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi <ebassi@gnome.org> +Date: Thu, 10 Aug 2023 12:44:49 +0100 +Subject: [PATCH] build: Allow host builds when cross-compiling + +Environments that set up execution wrappers when cross-compiling should +be allowed to run code. We only fall back on external properties if we +really can't run any native code on the host machine. + +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@arm.com> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 48f22d7..7dcb9e6 100644 +--- a/meson.build ++++ b/meson.build +@@ -270,7 +270,7 @@ int main() { + return 0; + } + ''' +-if meson.is_cross_build() ++if not meson.can_run_host_binaries() + ieee754_float_div = meson.get_external_property('ieee754_float_div', cc.get_id() in ['gcc', 'clang']) + message('Cross-building, assuming IEEE 754 division:', ieee754_float_div) + else diff --git a/meta/recipes-graphics/graphene/graphene_1.10.8.bb b/meta/recipes-graphics/graphene/graphene_1.10.8.bb new file mode 100644 index 0000000000..e2e82b32aa --- /dev/null +++ b/meta/recipes-graphics/graphene/graphene_1.10.8.bb @@ -0,0 +1,29 @@ +SUMMARY = "A thin layer of graphic data types" +HOMEPAGE = "http://ebassi.github.io/graphene/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648" + + +inherit gnomebase gobject-introspection gtk-doc + +SRC_URI += "file://float-div.patch" + +SRC_URI[archive.sha256sum] = "a37bb0e78a419dcbeaa9c7027bcff52f5ec2367c25ec859da31dfde2928f279a" + +# Disable neon support by default on ARM-32 platforms because of the +# following upstream bug: https://github.com/ebassi/graphene/issues/215 +PACKAGECONFIG ?= "gobject-types ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'neon', '', d)}" + +PACKAGECONFIG[gobject-types] = "-Dgobject_types=true,-Dgobject_types=false,glib-2.0" +PACKAGECONFIG[neon] = "-Darm_neon=true,-Darm_neon=false," + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +GTKDOC_MESON_OPTION = "gtk_doc" + +EXTRA_OEMESON = "-Dinstalled_tests=false" + +FILES:${PN} += "${libdir}/graphene-1.0" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb deleted file mode 100644 index ee08c12bee..0000000000 --- a/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Text shaping library" -DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=e11f5c3149cdec4bb309babb020b32b9 \ - file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc" - -SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.xz" -SRC_URI[md5sum] = "2b3a4dfdb3e5e50055f941978944da9f" -SRC_URI[sha256sum] = "9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12" - -inherit autotools pkgconfig lib_package gtk-doc - -PACKAGECONFIG ??= "cairo fontconfig freetype glib icu" -PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo" -PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig" -PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype" -PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0" -PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2" -PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu" - -PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" - -LEAD_SONAME = "libharfbuzz.so" - -do_install_append() { - # If no tools are installed due to PACKAGECONFIG then this directory is - #still installed, so remove it to stop packaging wanings. - rmdir --ignore-fail-on-non-empty ${D}${bindir} -} - -FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" -FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ - ${libdir}/libharfbuzz-icu.so \ - ${libdir}/pkgconfig/harfbuzz-icu.pc \ -" -FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/harfbuzz/harfbuzz_9.0.0.bb b/meta/recipes-graphics/harfbuzz/harfbuzz_9.0.0.bb new file mode 100644 index 0000000000..01ea6ca86d --- /dev/null +++ b/meta/recipes-graphics/harfbuzz/harfbuzz_9.0.0.bb @@ -0,0 +1,51 @@ +SUMMARY = "Text shaping library" +DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \ + file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc \ + " + +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "a41b272ceeb920c57263ec851604542d9ec85ee3030506d94662067c7b6ab89e" + +DEPENDS += "glib-2.0-native" + +inherit meson pkgconfig lib_package gtk-doc gobject-introspection github-releases + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' +GTKDOC_MESON_ENABLE_FLAG = 'enabled' +GTKDOC_MESON_DISABLE_FLAG = 'disabled' + +PACKAGECONFIG ??= "cairo freetype glib icu" +PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" +PACKAGECONFIG[chafa] = "-Dchafa=enabled,-Dchafa=disabled,chafa" +PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype" +PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0" +PACKAGECONFIG[graphite] = "-Dgraphite2=enabled,-Dgraphite2=disabled,graphite2" +PACKAGECONFIG[icu] = "-Dicu=enabled,-Dicu=disabled,icu" + +PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" + +LEAD_SONAME = "libharfbuzz.so" + +# Remove when https://github.com/harfbuzz/harfbuzz/issues/4671 is resolved +EXTRA_OEMESON += "-Dcpp_std=c++17" + +do_install:append() { + # If no tools are installed due to PACKAGECONFIG then this directory might + # still be installed, so remove it to stop packaging warnings. + [ ! -d ${D}${bindir} ] || rmdir --ignore-fail-on-non-empty ${D}${bindir} +} + +FILES:${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" +FILES:${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ + ${libdir}/libharfbuzz-icu.so \ + ${libdir}/pkgconfig/harfbuzz-icu.pc \ +" +FILES:${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb new file mode 100644 index 0000000000..90cd09ea70 --- /dev/null +++ b/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb @@ -0,0 +1,51 @@ +SUMMARY = "IGT GPU Tools" +DESCRIPTION = "IGT GPU Tools is a collection of tools for development and testing of the DRM drivers" +HOMEPAGE = "https://gitlab.freedesktop.org/drm/igt-gpu-tools" +BUGTRACKER = "https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues" + +LIC_FILES_CHKSUM = "file://COPYING;md5=67bfee4df38fa6ecbe3a675c552d4c08" + +LICENSE = "MIT" + +inherit meson pkgconfig + +SRCREV = "31ec677ca24e7ed86e35f367f40a29d3d9f51c06" +PV = "1.28" + +SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" + +DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 procps libunwind kmod openssl elfutils alsa-lib json-c bison-native" +RDEPENDS:${PN} += "bash perl" +RDEPENDS:${PN}-tests += "bash" + +PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests" + +PACKAGECONFIG[chamelium] = "-Dchamelium=enabled,-Dchamelium=disabled,gsl xmlrpc-c" + +EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled -Dsrcdir=${TARGET_DBGSRC_DIR}/git/ -Dversion_hash=${PV}" +COMPATIBLE_HOST = "(x86_64.*|i.86.*|arm.*|aarch64).*-linux" +COMPATIBLE_HOST:libc-musl:class-target = "null" +SECURITY_LDFLAGS = "${SECURITY_X_LDFLAGS}" + +gputools_sysroot_preprocess() { + rm -f ${SYSROOT_DESTDIR}${libdir}/pkgconfig/intel-gen4asm.pc +} +SYSROOT_PREPROCESS_FUNCS += "gputools_sysroot_preprocess" + +do_install:append() { + install -d ${D}/usr/share/${BPN}/scripts + install ${S}/scripts/run-tests.sh ${D}/usr/share/${BPN}/scripts + install -d ${D}/usr/share/${BPN}/runner + install -D ${B}/runner/igt_runner ${D}/usr/share/${BPN}/runner + install -D ${B}/runner/igt_resume ${D}/usr/share/${BPN}/runner +} + +FILES:${PN}-benchmarks += "${libexecdir}/${BPN}/benchmarks" +FILES:${PN}-tests += "\ + ${libexecdir}/${BPN}/*\ + ${datadir}/${BPN}/1080p-right.png\ + ${datadir}/${BPN}/1080p-left.png\ + ${datadir}/${BPN}/pass.png\ + ${datadir}/${BPN}/test-list.txt" diff --git a/meta/recipes-graphics/images/core-image-clutter.bb b/meta/recipes-graphics/images/core-image-clutter.bb deleted file mode 100644 index a594461022..0000000000 --- a/meta/recipes-graphics/images/core-image-clutter.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "An image with support for the Open GL-based toolkit Clutter, \ -which enables development of rich and animated graphical user interfaces." - -IMAGE_FEATURES += "splash package-management x11-base x11-sato ssh-server-dropbear" - -LICENSE = "MIT" - -IMAGE_INSTALL = "\ - ${CORE_IMAGE_BASE_INSTALL} \ - packagegroup-core-clutter-core \ - " - -inherit core-image - -QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' diff --git a/meta/recipes-graphics/images/core-image-weston-sdk.bb b/meta/recipes-graphics/images/core-image-weston-sdk.bb new file mode 100644 index 0000000000..09e87b5b65 --- /dev/null +++ b/meta/recipes-graphics/images/core-image-weston-sdk.bb @@ -0,0 +1,15 @@ +require core-image-weston.bb + +DESCRIPTION = "Image with Weston support that includes everything within \ +core-image-weston 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" diff --git a/meta/recipes-graphics/images/core-image-weston.bb b/meta/recipes-graphics/images/core-image-weston.bb index f5102e1989..62305cc1ce 100644 --- a/meta/recipes-graphics/images/core-image-weston.bb +++ b/meta/recipes-graphics/images/core-image-weston.bb @@ -1,12 +1,12 @@ SUMMARY = "A very basic Wayland image with a terminal" -IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs" +IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs weston" LICENSE = "MIT" -inherit core-image features_check +inherit core-image -REQUIRED_DISTRO_FEATURES = "wayland" - -CORE_IMAGE_BASE_INSTALL += "weston weston-init weston-examples gtk+3-demo clutter-1.0-examples" +CORE_IMAGE_BASE_INSTALL += "gtk+3-demo" CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}" + +QB_MEM = "-m 512" diff --git a/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch b/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch deleted file mode 100644 index 82fffe1e68..0000000000 --- a/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5cf847b5bef8dc3f9f89bd09dd5af4e6603f393c Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Mon, 27 Aug 2018 16:10:55 +0800 -Subject: [PATCH] libjpeg-turbo: fix package_qa error - -Fix package qa errors like below: -libjpeg.so.62.3.0 contains probably-redundant RPATH /usr/lib [useless-rpaths] -usr/bin/cjpeg contains probably-redundant RPATH /usr/lib - -Upstream-Status: Inappropriate[oe-specific] - -Signed-off-by: Changqing Li <changqing.li@windriver.com> -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - CMakeLists.txt | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2bc3458..ea3041e 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -189,10 +189,6 @@ endif() - report_option(ENABLE_SHARED "Shared libraries") - report_option(ENABLE_STATIC "Static libraries") - --if(ENABLE_SHARED) -- set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) --endif() -- - if(WITH_12BIT) - set(WITH_ARITH_DEC 0) - set(WITH_ARITH_ENC 0) diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb b/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb deleted file mode 100644 index 1cf854de62..0000000000 --- a/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "Hardware accelerated JPEG compression/decompression library" -DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" -HOMEPAGE = "http://libjpeg-turbo.org/" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231d0b \ - file://jpeglib.h;endline=16;md5=7ea97dc83b0f59052ee837e61ef0e08f \ - file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \ -" -DEPENDS_append_x86-64_class-target = " nasm-native" -DEPENDS_append_x86_class-target = " nasm-native" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://0001-libjpeg-turbo-fix-package_qa-error.patch \ - " - -SRC_URI[md5sum] = "bd07fddf26f9def7bab02739eb655116" -SRC_URI[sha256sum] = "4246de500544d4ee408ee57048aa4aadc6f165fc17f141da87669f20ed3241b7" -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" -UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/" - -PE= "1" - -# Drop-in replacement for jpeg -PROVIDES = "jpeg" -RPROVIDES_${PN} += "jpeg" -RREPLACES_${PN} += "jpeg" -RCONFLICTS_${PN} += "jpeg" - -inherit cmake pkgconfig - -# Add nasm-native dependency consistently for all build arches is hard -EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False" -EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False" - -# Work around missing x32 ABI support -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" - -# Work around missing non-floating point ABI support in MIPS -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" - -# Provide a workaround if Altivec unit is not present in PPC -EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" -EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" - -DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - -PACKAGES =+ "jpeg-tools libturbojpeg" - -DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." -FILES_jpeg-tools = "${bindir}/*" - -DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" -FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb new file mode 100644 index 0000000000..132d4b375a --- /dev/null +++ b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb @@ -0,0 +1,58 @@ +SUMMARY = "Hardware accelerated JPEG compression/decompression library" +DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" +HOMEPAGE = "http://libjpeg-turbo.org/" + +LICENSE = "IJG & BSD-3-Clause & Zlib" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2a8e0d8226a102f07ab63ed7fd6ce155" + +DEPENDS:append:x86-64:class-target = " nasm-native" +DEPENDS:append:x86:class-target = " nasm-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz" + +SRC_URI[sha256sum] = "22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75" +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" +UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/" + +PE = "1" + +# Drop-in replacement for jpeg +PROVIDES = "jpeg" +RPROVIDES:${PN} += "jpeg" +RREPLACES:${PN} += "jpeg" +RCONFLICTS:${PN} += "jpeg" + +inherit cmake pkgconfig + +export NASMENV = "--reproducible --debug-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}" + +# Add nasm-native dependency consistently for all build arches is hard +EXTRA_OECMAKE:append:class-native = " -DWITH_SIMD=False" +EXTRA_OECMAKE:append:class-nativesdk = " -DWITH_SIMD=False" + +# Work around missing x32 ABI support +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" + +# Work around missing non-floating point ABI support in MIPS +EXTRA_OECMAKE:append:class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" + +EXTRA_OECMAKE:append:class-target:arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE:append:class-target:armeb = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "", "-DWITH_SIMD=False", d)}" + +# Provide a workaround if Altivec unit is not present in PPC +EXTRA_OECMAKE:append:class-target:powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE:append:class-target:powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE:append:class-target:powerpc64le = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" + +DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" + +PACKAGES =+ "jpeg-tools libturbojpeg" + +DESCRIPTION:jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." +FILES:jpeg-tools = "${bindir}/*" + +DESCRIPTION:libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" +FILES:libturbojpeg = "${libdir}/libturbojpeg.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch b/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch new file mode 100644 index 0000000000..415515b908 --- /dev/null +++ b/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch @@ -0,0 +1,31 @@ +From 38237aee63d671cc418902951b8945b59a41a4fd Mon Sep 17 00:00:00 2001 +From: Fabio Estevam <festevam@gmail.com> +Date: Mon, 8 Jan 2024 15:00:01 -0300 +Subject: [PATCH] cube-gears: Change header file to <GLES3/gl3.h> + +Since commit 96d63eb59e34 ("kmscube: Add gears mode"), kmscube fails +to build on platforms without <GL/gl.h>. + +Fix it by changing the header file to <GLES3/gl3.h>. + +Reported-by: Martin Jansa <martin.jansa@gmail.com> +Suggested-by: Martin Jansa <martin.jansa@gmail.com> +Signed-off-by: Fabio Estevam <festevam@gmail.com> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/kmscube/-/merge_requests/51] +--- + cube-gears.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cube-gears.c b/cube-gears.c +index d5b7a5f..cb538ec 100644 +--- a/cube-gears.c ++++ b/cube-gears.c +@@ -31,7 +31,7 @@ + #include <sys/time.h> + #include <math.h> + +-#include <GL/gl.h> ++#include <GLES3/gl3.h> + + #include "common.h" + #include "esUtil.h" diff --git a/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch b/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch deleted file mode 100644 index a7a08f14e6..0000000000 --- a/meta/recipes-graphics/kmscube/kmscube/detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch +++ /dev/null @@ -1,117 +0,0 @@ -From a91c588b5a4122506e7fe949c37d530621bdd997 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org> -Date: Tue, 11 Jul 2017 14:50:37 -0500 -Subject: [PATCH] Detect gst_bo_map/_unmap and use it (or avoid it) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Those functions are not available on libMali, thus breaking -builds and creating havoc. - -Removing the specific parts of the code that deal with -gbm_bo_map() and gbm_bo_unmap() renders the kmscube utility -a little less useful, but still valuable. - -Signed-off-by: Daniel DÃaz <daniel.diaz@linaro.org> -Cc: Rob Clark <robdclark@gmail.com> -Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> - -Upstream-Status: Submitted [https://lists.freedesktop.org/archives/mesa-dev/2017-July/163020.html] -Signed-off-by: Zoltan Kuscsik <zoltan.kuscsik@solution57.com> ---- - Makefile.am | 5 ++++- - configure.ac | 3 +++ - gst-decoder.c | 7 ++++++- - kmscube.c | 4 ++++ - 4 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index ba064e4..3a0a50b 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -43,7 +43,6 @@ kmscube_SOURCES = \ - common.c \ - common.h \ - cube-smooth.c \ -- cube-tex.c \ - drm-atomic.c \ - drm-common.c \ - drm-common.h \ -@@ -68,3 +67,7 @@ texturator_SOURCES = \ - drm-common.c \ - drm-legacy.c \ - texturator.c -+ -+if ENABLE_GBM_MAP -+kmscube_SOURCES += cube-tex.c -+endif -diff --git a/configure.ac b/configure.ac -index 6be6541..3d20121 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -49,5 +49,8 @@ if test "x$HAVE_GST" = "xyes"; then - fi - AM_CONDITIONAL(ENABLE_GST, [test "x$HAVE_GST" = "xyes"]) - -+AC_CHECK_LIB([gbm], [gbm_bo_map], [HAVE_GBM_BO_MAP=yes], []) -+AM_CONDITIONAL(ENABLE_GBM_MAP, [test "x$HAVE_GBM_BO_MAP" = "xyes"]) -+ - AC_CONFIG_FILES([Makefile]) - AC_OUTPUT -diff --git a/gst-decoder.c b/gst-decoder.c -index 5431014..0aa7a55 100644 ---- a/gst-decoder.c -+++ b/gst-decoder.c -@@ -332,6 +332,7 @@ set_last_frame(struct decoder *dec, EGLImage frame, GstSample *samp) - dec->last_samp = samp; - } - -+#if HAVE_GBM_BO_MAP - // TODO this could probably be a helper re-used by cube-tex: - static int - buf_to_fd(const struct gbm *gbm, int size, void *ptr) -@@ -357,6 +358,7 @@ buf_to_fd(const struct gbm *gbm, int size, void *ptr) - - return fd; - } -+#endif - - static EGLImage - buffer_to_image(struct decoder *dec, GstBuffer *buf) -@@ -410,12 +412,15 @@ buffer_to_image(struct decoder *dec, GstBuffer *buf) - - if (is_dmabuf_mem) { - dmabuf_fd = dup(gst_dmabuf_memory_get_fd(mem)); -- } else { -+ } -+#if HAVE_GBM_BO_MAP -+ else { - GstMapInfo map_info; - gst_buffer_map(buf, &map_info, GST_MAP_READ); - dmabuf_fd = buf_to_fd(dec->gbm, map_info.size, map_info.data); - gst_buffer_unmap(buf, &map_info); - } -+#endif - - if (dmabuf_fd < 0) { - GST_ERROR("could not obtain DMABUF FD"); -diff --git a/kmscube.c b/kmscube.c -index 81803be..e93da67 100644 ---- a/kmscube.c -+++ b/kmscube.c -@@ -166,7 +166,11 @@ int main(int argc, char *argv[]) - else if (mode == VIDEO) - egl = init_cube_video(gbm, video, samples); - else -+#if HAVE_GBM_BO_MAP - egl = init_cube_tex(gbm, mode, samples); -+#else -+ printf("gbm_bo_map() support missing\n"); -+#endif - - if (!egl) { - printf("failed to initialize EGL\n"); --- -2.22.0 - diff --git a/meta/recipes-graphics/kmscube/kmscube_git.bb b/meta/recipes-graphics/kmscube/kmscube_git.bb index 82720045b3..34d5a7d71d 100644 --- a/meta/recipes-graphics/kmscube/kmscube_git.bb +++ b/meta/recipes-graphics/kmscube/kmscube_git.bb @@ -1,21 +1,33 @@ -DESCRIPTION = "Demo application to showcase 3D graphics using kms and gbm" +SUMMARY = "Demo application to showcase 3D graphics using kms and gbm" +DESCRIPTION = "kmscube is a little demonstration program for how to drive bare metal graphics \ +without a compositor like X11, wayland or similar, using DRM/KMS (kernel mode \ +setting), GBM (graphics buffer manager) and EGL for rendering content using \ +OpenGL or OpenGL ES." HOMEPAGE = "https://cgit.freedesktop.org/mesa/kmscube/" LICENSE = "MIT" SECTION = "graphics" -DEPENDS = "virtual/libgles2 virtual/egl libdrm" +DEPENDS = "virtual/libgles3 virtual/libgles2 virtual/egl libdrm virtual/libgbm" LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb" -SRCREV = "f632b23a528ed6b4e1fddd774db005c30ab65568" +SRCREV = "467e86c5cbeb2a2051b31ce2c240d6ddf5bc3112" SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \ - file://detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch" + file://0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch \ + " + UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" +BASEPV = "0.0.1" +PV = "${BASEPV}+git" + inherit meson pkgconfig features_check REQUIRED_DISTRO_FEATURES = "opengl" PACKAGECONFIG ??= "" PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" + +CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + diff --git a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb index 71a2c91353..384afa6907 100644 --- a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb +++ b/meta/recipes-graphics/libepoxy/libepoxy_1.5.10.bb @@ -9,17 +9,13 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b" -SRC_URI = "https://github.com/anholt/${BPN}/releases/download/${PV}/${BP}.tar.xz \ - " -SRC_URI[md5sum] = "e2845de8d2782b2d31c01ae8d7cd4cbb" -SRC_URI[sha256sum] = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d" -UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases" +SRC_URI = "git://github.com/anholt/libepoxy;branch=master;protocol=https" +SRCREV = "c84bc9459357a40e46e2fec0408d04fbdde2c973" +S = "${WORKDIR}/git" -inherit meson pkgconfig features_check +inherit meson pkgconfig features_check github-releases REQUIRED_DISTRO_FEATURES = "opengl" -REQUIRED_DISTRO_FEATURES_class-native = "" -REQUIRED_DISTRO_FEATURES_class-nativesdk = "" PACKAGECONFIG[egl] = "-Degl=yes, -Degl=no, virtual/egl" PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no -Dx11=false, virtual/libx11 virtual/libgl" @@ -27,16 +23,8 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} egl" EXTRA_OEMESON += "-Dtests=false" -PACKAGECONFIG_class-native = "egl x11" -PACKAGECONFIG_class-nativesdk = "egl x11" +PACKAGECONFIG:class-native = "egl x11" +PACKAGECONFIG:class-nativesdk = "egl x11" BBCLASSEXTEND = "native nativesdk" -# This will ensure that dlopen will attempt only GL libraries provided by host -do_install_append_class-native() { - chrpath --delete ${D}${libdir}/*.so -} - -do_install_append_class-nativesdk() { - chrpath --delete ${D}${libdir}/*.so -} diff --git a/meta/recipes-graphics/libfakekey/libfakekey_git.bb b/meta/recipes-graphics/libfakekey/libfakekey_git.bb index ab6f5ac9ed..5f902d3a67 100644 --- a/meta/recipes-graphics/libfakekey/libfakekey_git.bb +++ b/meta/recipes-graphics/libfakekey/libfakekey_git.bb @@ -4,16 +4,16 @@ key-presses." HOMEPAGE = "http://matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.org/" -LICENSE = "LGPLv2+" +LICENSE = "LGPL-2.0-or-later" LIC_FILES_CHKSUM = "file://src/libfakekey.c;endline=30;md5=602b5ccd48f64407510867f3373b448c" DEPENDS = "libxtst" SECTION = "x11/wm" SRCREV = "7ad885912efb2131e80914e964d5e635b0d07b40" -PV = "0.3+git${SRCPV}" +PV = "0.3+git" -SRC_URI = "git://git.yoctoproject.org/${BPN}" +SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" S = "${WORKDIR}/git" diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb index 1a31677978..bf3f5c005d 100644 --- a/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb +++ b/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb @@ -7,7 +7,7 @@ SECTION = "x11/libs" HOMEPAGE = "http://matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.com/" -LICENSE = "LGPLv2+ & MIT" +LICENSE = "LGPL-2.0-or-later & MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \ file://COPYING.MIT;md5=f45ed9332b4f50a35adf2065adde4ca7 \ file://libmb/mbexp.c;endline=20;md5=28c0aef3b23e308464f5dae6a11b0d2f \ @@ -17,7 +17,7 @@ DEPENDS = "virtual/libx11 libxext" #SRCREV for 1.12 SRCREV = "e846ee434f8e23d9db38af13c523f791495e0e87" -SRC_URI = "git://git.yoctoproject.org/${BPN}" +SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" S = "${WORKDIR}/git" diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch deleted file mode 100644 index 674decccbb..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 85138c1ec673e05263ae666baf61f79384daf7e0 Mon Sep 17 00:00:00 2001 -From: Sam Lantinga <slouken@libsdl.org> -Date: Tue, 30 Jul 2019 11:00:00 -0700 -Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files - -Upstream-Status: Backport -[https://hg.libsdl.org/SDL/rev/e7ba650a643a] - -CVE: CVE-2019-13616 - -Signed-off-by: Yi Zhao <yi.zhao@windriver.com> ---- - src/video/SDL_bmp.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c -index 0b68918..a06b0c9 100644 ---- a/src/video/SDL_bmp.c -+++ b/src/video/SDL_bmp.c -@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc) - SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR); - } - } -+ if (biWidth <= 0 || biHeight == 0) { -+ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight); -+ was_error = SDL_TRUE; -+ goto done; -+ } - if (biHeight < 0) { - topDown = SDL_TRUE; - biHeight = -biHeight; --- -2.7.4 - diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch deleted file mode 100644 index b383bd6548..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch +++ /dev/null @@ -1,53 +0,0 @@ -# HG changeset patch -# User Anuj Mittal <am.devel@gmail.com> -# Date 1573631462 -10800 -# Node ID 1fb1880d5edfc7c5a370846e13f90b260263627c -# Parent 007002587d5d34d781c2b628c05e992e0ac5f52d -configure: check for build dir when building version res (fix bug #4858) -Fixes a race where we try to build version res file in build directory -before it has even been created. Prevents errors like: - -/bin/bash ../SDL2-2.0.10/build-scripts/updaterev.sh -/bin/bash ../SDL2-2.0.10/build-scripts/mkinstalldirs build -mkdir -p -- build -x86_64-pokysdk-mingw32-windres --include-dir=/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/x86_64-nativesdk-mingw32-pokysdk-mingw32/nativesdk-libsdl2/2.0.10-r0/recipe-sysroot/opt/poky/3.0/sysroots/x86_64-pokysdk-mingw32/usr/include ../SDL2-2.0.10/src/main/windows/version.rc build/version.o -x86_64-pokysdk-mingw32-windres: build/version.o: No such file or directory -Makefile:692: recipe for target 'build/version.o' failed -make: *** [build/version.o] Error 1 -make: *** Waiting for unfinished jobs.... -touch build/.created -WARNING: exit code 1 from a shell command. - -Extension of fix: -https://hg.libsdl.org/SDL/rev/99d8b18acf8a - -Upstream-Status: Backport -Signed-off-by: Anuj Mittal <am.devel@gmail.com> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff -r 007002587d5d -r 1fb1880d5edf configure ---- a/configure Tue Nov 12 17:24:37 2019 -0500 -+++ b/configure Wed Nov 13 10:51:02 2019 +0300 -@@ -25493,7 +25493,7 @@ - VERSION_DEPENDS=`echo $VERSION_SOURCES` - VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[^ ]*/\([^ ]*\)\.rc,$(objects)/\1.o,g'` - VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([^ ]*\\)/\\([^ ]*\\)\\.rc,\\\\ --\\$(objects)/\\2.o: \\1/\\2.rc\\\\ -+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\ - \\$(WINDRES) \\$< \\$@,g"` - - SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` -diff -r 007002587d5d -r 1fb1880d5edf configure.ac ---- a/configure.ac Tue Nov 12 17:24:37 2019 -0500 -+++ b/configure.ac Wed Nov 13 10:51:02 2019 +0300 -@@ -4177,7 +4177,7 @@ - VERSION_DEPENDS=`echo $VERSION_SOURCES` - VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'` - VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\ --\\$(objects)/\\2.o: \\1/\\2.rc\\\\ -+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\ - \\$(WINDRES) \\$< \\$@,g"` - - SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch b/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch deleted file mode 100644 index 8f5b6a0cef..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch +++ /dev/null @@ -1,41 +0,0 @@ -# HG changeset patch -# User Sylvain Becker <sylvain.becker@gmail.com> -# Date 1570898876 -7200 -# Sat Oct 12 18:47:56 2019 +0200 -# Node ID 369b01006eb2f6fd563f7c315d29ae3fe503c432 -# Parent 4cbaffd0083b8cd17070dbd9d4ab1ce0fa9fca2d -Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!) - -fix building with Mesa 19.2 - -With Mesa 19.2 building fails with: - -/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr' - -The same type is defined in include/SDL_opengl.h for OpenGL and the two -headers should not be included at the same time. -This was just never noticed because the same header guard '__gl_h_' was -used. This was changed in Mesa. The result is this error. - -Fix this the same way GLES2 already handles this: Don't include the GLES -header when the OpenGL header was already included. -(https://hg.libsdl.org/SDL/rev/a60b3c292f0f) - -Upstream-Status: Backport [https://hg.libsdl.org/SDL/rev/369b01006eb2] -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> - -diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c ---- a/src/video/SDL_video.c -+++ b/src/video/SDL_video.c -@@ -37,9 +37,9 @@ - #include "SDL_opengl.h" - #endif /* SDL_VIDEO_OPENGL */ - --#if SDL_VIDEO_OPENGL_ES -+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL - #include "SDL_opengles.h" --#endif /* SDL_VIDEO_OPENGL_ES */ -+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */ - - /* GL and GLES2 headers conflict on Linux 32 bits */ - #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL diff --git a/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch b/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch deleted file mode 100644 index 8ca52ebde7..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch +++ /dev/null @@ -1,60 +0,0 @@ -From e0f4b6d18ce6f025c78773e909b9c395ad833c7a Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Mon, 29 Jul 2019 08:38:32 +0800 -Subject: [PATCH] configure: fix dependencies - -Many source files include e.g. wayland-protocols.h which should be found in the -sysroot but SDL wants to build its own headers from the XML definitions. - -However the rules to generate those headers are only dependencies of the -top-level libSDL2.la object so can be built in parallel with the rest of the -objects, which can lead to interesting errors if the header is parsed by the -compiler whilst it's being written by another process: - -| gen/wayland-client-protocol.h:3: error: unterminated #ifndef -| #ifndef WAYLAND_CLIENT_PROTOCOL_H - -Solve this by adding more dependencies so the generated files are built before -the primary objects. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> -[Moved to configure.ac] -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - configure.ac | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9e782c6..997915a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4061,7 +4061,7 @@ DEPENDS=`echo $SOURCES | tr ' ' '\n'` - for EXT in asm cc m c S; do - OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'` - DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ - \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` - done - -@@ -4078,14 +4078,14 @@ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` - SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES` - SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` - SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ - \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` - - SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES` - SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES` - SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` - SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ --\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\ -+\\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created \\$(GEN_OBJECTS)\\\\ - \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` - - # Set runtime shared library paths as needed --- -2.7.4 - diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb deleted file mode 100644 index ac4a356043..0000000000 --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb +++ /dev/null @@ -1,77 +0,0 @@ -SUMMARY = "Simple DirectMedia Layer" -DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ -library designed to provide low level access to audio, keyboard, mouse, \ -joystick, 3D hardware via OpenGL, and 2D video framebuffer." -HOMEPAGE = "http://www.libsdl.org" -BUGTRACKER = "http://bugzilla.libsdl.org/" - -SECTION = "libs" - -LICENSE = "Zlib" -LIC_FILES_CHKSUM = "file://COPYING.txt;md5=504a9454ceb89fd75a2583473b11409e" - -PROVIDES = "virtual/libsdl2" - -SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ - file://more-gen-depends.patch \ - file://0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch \ - file://0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch \ - file://0001-configure-check-for-build-dir-when-building-version-.patch \ -" - -S = "${WORKDIR}/SDL2-${PV}" - -SRC_URI[md5sum] = "5a2114f2a6f348bdab5bf52b994811db" -SRC_URI[sha256sum] = "b4656c13a1f0d0023ae2f4a9cf08ec92fffb464e0f24238337784159b8b91d57" - -inherit autotools lib_package binconfig-disabled pkgconfig - -BINCONFIG = "${bindir}/sdl2-config" - -CVE_PRODUCT = "simple_directmedia_layer sdl" - -EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \ - --disable-diskaudio --disable-nas --disable-esd-shared --disable-esdtest \ - --disable-video-dummy \ - --enable-pthreads \ - --enable-sdl-dlopen \ - --disable-rpath \ - --disable-sndio \ - " - -# opengl packageconfig factored out to make it easy for distros -# and BSP layers to pick either (desktop) opengl, gles2, or no GL -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" - -PACKAGECONFIG_class-native = "x11" -PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG ??= " \ - ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ -" -PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib," -PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb" -PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[kmsdrm] = "--enable-video-kmsdrm,--disable-video-kmsdrm,libdrm virtual/libgbm" -PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl" -PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio" -PACKAGECONFIG[tslib] = "--enable-input-tslib,--disable-input-tslib,tslib" -PACKAGECONFIG[wayland] = "--enable-video-wayland,--disable-video-wayland,wayland-native wayland wayland-protocols libxkbcommon" -PACKAGECONFIG[x11] = "--enable-video-x11,--disable-video-x11,virtual/libx11 libxext libxrandr libxrender" - -EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader" - -do_configure_prepend() { - # Remove old libtool macros. - MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4" - for i in ${MACROS}; do - rm -f ${S}/acinclude/$i - done - export SYSROOT=$PKG_CONFIG_SYSROOT_DIR -} - -FILES_${PN}-dev += "${libdir}/cmake" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.30.7.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.30.7.bb new file mode 100644 index 0000000000..25bbe2067a --- /dev/null +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.30.7.bb @@ -0,0 +1,86 @@ +SUMMARY = "Simple DirectMedia Layer" +DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \ +library designed to provide low level access to audio, keyboard, mouse, \ +joystick, 3D hardware via OpenGL, and 2D video framebuffer." +HOMEPAGE = "http://www.libsdl.org" +BUGTRACKER = "http://bugzilla.libsdl.org/" + +SECTION = "libs" + +LICENSE = "Zlib & BSD-2-Clause" +LIC_FILES_CHKSUM = "\ + file://LICENSE.txt;md5=25231a5b96ccdd8f39eb53c07717be64 \ + file://src/hidapi/LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077 \ + file://src/hidapi/LICENSE-bsd.txt;md5=b5fa085ce0926bb50d0621620a82361f \ + file://src/video/yuv2rgb/LICENSE;md5=79f8f3418d91531e05f0fc94ca67e071 \ +" + +# arm-neon adds MIT license +LICENSE:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', '& MIT', '', d)}" +LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'file://src/video/arm/pixman-arm-neon-asm.h;md5=9a9cc1e51abbf1da58f4d9528ec9d49b;beginline=1;endline=24', '', d)}" + +PROVIDES = "virtual/libsdl2" + +SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz" + +S = "${WORKDIR}/SDL2-${PV}" + +SRC_URI[sha256sum] = "2508c80438cd5ff3bbeb8fe36b8f3ce7805018ff30303010b61b03bb83ab9694" + +inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even + +BINCONFIG = "${bindir}/sdl2-config" + +CVE_PRODUCT = "simple_directmedia_layer sdl" + +EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \ + -DSDL_DISKAUDIO=OFF -DSDL_NAS=OFF -DSDL_ESD_SHARED=OFF \ + -DSDL_DUMMYVIDEO=OFF \ + -DSDL_RPI=OFF \ + -DSDL_PTHREADS=ON \ + -DSDL_RPATH=OFF \ + -DSDL_SNDIO=OFF \ + -DSDL_X11_XCURSOR=OFF \ + -DSDL_X11_XDBE=OFF \ + -DSDL_X11_XFIXES=OFF \ + -DSDL_X11_XINPUT=OFF \ + -DSDL_X11_XRANDR=OFF \ + -DSDL_X11_XSCRNSAVER=OFF \ + -DSDL_X11_XSHAPE=OFF \ +" + +# opengl packageconfig factored out to make it easy for distros +# and BSP layers to pick either (desktop) opengl, gles2, or no GL +PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}" + +PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}" +PACKAGECONFIG ??= " \ + ${PACKAGECONFIG_GL} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio pipewire x11 vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ + ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \ +" +PACKAGECONFIG[alsa] = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib," +PACKAGECONFIG[arm-neon] = "-DSDL_ARMNEON=ON,-DSDL_ARMNEON=OFF" +PACKAGECONFIG[directfb] = "-DSDL_DIRECTFB=ON,-DSDL_DIRECTFB=OFF,directfb,directfb" +PACKAGECONFIG[gles2] = "-DSDL_OPENGLES=ON,-DSDL_OPENGLES=OFF,virtual/libgles2" +PACKAGECONFIG[jack] = "-DSDL_JACK=ON,-DSDL_JACK=OFF,jack" +PACKAGECONFIG[kmsdrm] = "-DSDL_KMSDRM=ON,-DSDL_KMSDRM=OFF,libdrm virtual/libgbm" +PACKAGECONFIG[libsamplerate] = "-DSDL_LIBSAMPLERATE=ON,-DSDL_LIBSAMPLERATE=OFF,libsamplerate0" +# The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers, +# so we'll just use libusb when it's available. +PACKAGECONFIG[libusb] = ",,libusb1" +PACKAGECONFIG[libdecor] = "-DSDL_WAYLAND_LIBDECOR=ON,-DSDL_WAYLAND_LIBDECOR=OFF,libdecor,libdecor" +PACKAGECONFIG[opengl] = "-DSDL_OPENGL=ON,-DSDL_OPENGL=OFF,virtual/egl" +PACKAGECONFIG[pipewire] = "-DSDL_PIPEWIRE_SHARED=ON,-DSDL_PIPEWIRE_SHARED=OFF,pipewire" +PACKAGECONFIG[pulseaudio] = "-DSDL_PULSEAUDIO=ON,-DSDL_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[vulkan] = "-DSDL_VULKAN=ON,-DSDL_VULKAN=OFF" +PACKAGECONFIG[wayland] = "-DSDL_WAYLAND=ON,-DSDL_WAYLAND=OFF,wayland-native wayland wayland-protocols libxkbcommon" +PACKAGECONFIG[x11] = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender" + +CFLAGS:append:class-native = " -DNO_SHARED_MEMORY" + +FILES:${PN} += "${datadir}/licenses/SDL2/LICENSE.txt" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/libva/libva-initial_2.22.0.bb b/meta/recipes-graphics/libva/libva-initial_2.22.0.bb new file mode 100644 index 0000000000..453096822f --- /dev/null +++ b/meta/recipes-graphics/libva/libva-initial_2.22.0.bb @@ -0,0 +1,8 @@ +require libva.inc + +PACKAGECONFIG ?= "" + +do_install:append () { + rm -f ${D}${libdir}/*.so* +} + diff --git a/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch b/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch deleted file mode 100644 index 01fb71913b..0000000000 --- a/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8fc14e4bc81885b80c3072e549c2e6f59533d7ef Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Fri, 8 Feb 2019 11:45:55 +0800 -Subject: [PATCH] Build sfcsample only when X11 backend is enabled - -See: https://github.com/intel/libva-utils/pull/149, and -https://github.com/intel/libva-utils/issues/150 - -Upstream-Status: Submitted - -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index d28175a..e294e25 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -24,10 +24,11 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - - AUTOMAKE_OPTIONS = foreign - --SUBDIRS = common decode encode vainfo videoprocess vendor/intel vendor/intel/sfcsample -+SUBDIRS = common decode encode vainfo videoprocess vendor/intel - - if USE_X11 - SUBDIRS += putsurface -+SUBDIRS += vendor/intel/sfcsample - else - if USE_WAYLAND - SUBDIRS += putsurface --- -2.17.1 - diff --git a/meta/recipes-graphics/libva/libva-utils_2.5.0.bb b/meta/recipes-graphics/libva/libva-utils_2.22.0.bb index f68d0cf8b6..078cd7ea0a 100644 --- a/meta/recipes-graphics/libva/libva-utils_2.5.0.bb +++ b/meta/recipes-graphics/libva/libva-utils_2.22.0.bb @@ -14,22 +14,19 @@ SECTION = "x11" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" -SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2 \ - file://0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch \ - " +SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.22-branch;protocol=https" +SRCREV = "1a13ae13382b7b548f3a7e8035e1d7df66662c0a" +S = "${WORKDIR}/git" -SRC_URI[md5sum] = "c1fada26c286654859eff33b2562cb79" -SRC_URI[sha256sum] = "9238c9d5110d60f935683390b8383fdac3507346384cd5f117a23c6db1d72a17" - -UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases" +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$" DEPENDS = "libva" -inherit autotools pkgconfig features_check +inherit meson pkgconfig features_check # depends on libva which requires opengl REQUIRED_DISTRO_FEATURES = "opengl" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" +PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland" diff --git a/meta/recipes-graphics/libva/libva.inc b/meta/recipes-graphics/libva/libva.inc new file mode 100644 index 0000000000..784ab8b79f --- /dev/null +++ b/meta/recipes-graphics/libva/libva.inc @@ -0,0 +1,37 @@ +SUMMARY = "Video Acceleration (VA) API for Linux" +DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \ +and API specification which enables and provides access to graphics \ +hardware (GPU) acceleration for video processing on Linux and UNIX \ +based operating systems. Accelerated processing includes video \ +decoding, video encoding, subpicture blending and rendering. The \ +specification was originally designed by Intel for its GMA (Graphics \ +Media Accelerator) series of GPU hardware, the API is however not \ +limited to GPUs or Intel specific hardware, as other hardware and \ +manufacturers can also freely use this API for hardware accelerated \ +video decoding." + +HOMEPAGE = "https://01.org/linuxmedia/vaapi" +BUGTRACKER = "https://github.com/intel/libva/issues" + +SECTION = "x11" +LICENSE = "MIT" + +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libva-${PV}.tar.bz2" +LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" +SRC_URI[sha256sum] = "e3da2250654c8d52b3f59f8cb3f3d8e7fb1a2ee64378dbc400fbc5663de7edb8" + +S = "${WORKDIR}/libva-${PV}" + +GITHUB_BASE_URI = "https://github.com/intel/libva/releases" + +DEPENDS = "libdrm" + +inherit meson pkgconfig github-releases + +PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa" + +PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta/recipes-graphics/libva/libva_2.22.0.bb b/meta/recipes-graphics/libva/libva_2.22.0.bb new file mode 100644 index 0000000000..63dc5af8f2 --- /dev/null +++ b/meta/recipes-graphics/libva/libva_2.22.0.bb @@ -0,0 +1,15 @@ +require libva.inc + +PACKAGECONFIG ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \ +" + +PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" + +RDEPENDS:${PN}-x11 =+ "${PN}" +RDEPENDS:${PN}-glx =+ "${PN}-x11" + +FILES:${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" +FILES:${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" +FILES:${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/meta/recipes-graphics/libva/libva_2.5.0.bb b/meta/recipes-graphics/libva/libva_2.5.0.bb deleted file mode 100644 index 73e2e01c3f..0000000000 --- a/meta/recipes-graphics/libva/libva_2.5.0.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "Video Acceleration (VA) API for Linux" -DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \ -and API specification which enables and provides access to graphics \ -hardware (GPU) acceleration for video processing on Linux and UNIX \ -based operating systems. Accelerated processing includes video \ -decoding, video encoding, subpicture blending and rendering. The \ -specification was originally designed by Intel for its GMA (Graphics \ -Media Accelerator) series of GPU hardware, the API is however not \ -limited to GPUs or Intel specific hardware, as other hardware and \ -manufacturers can also freely use this API for hardware accelerated \ -video decoding." - -HOMEPAGE = "https://01.org/linuxmedia/vaapi" -BUGTRACKER = "https://github.com/intel/libva/issues" - -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" - -SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2" - -SRC_URI[md5sum] = "3688212fb7a87947070f3729e91ff7cf" -SRC_URI[sha256sum] = "3aa89cd369a506ac4dbe5de7c0ef5da4f3d220bf986403f02fa1f6f702af6878" - -UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases" - -DEPENDS = "libdrm virtual/mesa" - -inherit autotools pkgconfig features_check - -REQUIRED_DISTRO_FEATURES = "opengl" - -EXTRA_OECONF = "ac_cv_prog_WAYLAND_SCANNER=wayland-scanner" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland" - -PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" - -RDEPENDS_${PN}-x11 =+ "${PN}" -RDEPENDS_${PN}-glx =+ "${PN}-x11" - -FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" -FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" -FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb index 57a3024ea9..8a4cfef631 100644 --- a/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb +++ b/meta/recipes-graphics/matchbox-session/matchbox-session_0.1.bb @@ -3,20 +3,21 @@ DESCRIPTION = "Very simple session manager for matchbox tools" HOMEPAGE = "http://www.matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.org/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://matchbox-session;endline=20;md5=180f1c169a15d059a56c30094f6fb5ea" SECTION = "x11" -RCONFLICTS_${PN} = "matchbox-common" +RCONFLICTS:${PN} = "matchbox-common" SRC_URI = "file://matchbox-session" -S = "${WORKDIR}" -PR = "r4" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + inherit update-alternatives -ALTERNATIVE_${PN} = "x-session-manager" +ALTERNATIVE:${PN} = "x-session-manager" ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/matchbox-session" ALTERNATIVE_PRIORITY = "100" diff --git a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb index b9961c398c..c8b6f07ed0 100644 --- a/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb +++ b/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.3.bb @@ -2,17 +2,16 @@ SUMMARY = "Matchbox lightweight window manager" HOMEPAGE = "http://matchbox-project.org" BUGTRACKER = "http://bugzilla.yoctoproject.org/" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://src/wm.h;endline=21;md5=a7e844465edbcf79c282369f93caa835 \ - file://src/main.c;endline=21;md5=3e5d9f832b527b0d72dbe8e3c4c60b95 \ - file://src/wm.c;endline=21;md5=8dc9d24477d87ef5dfbc2e4927146aab" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://src/wm.h;endline=21;md5=ce20617ac10f26045cc57b8d977ab552 \ + file://src/main.c;endline=21;md5=508f280276140250ce483e0a44f7a9ec \ + file://src/wm.c;endline=21;md5=f54584fb0d48cfc2e6876e0f0e272e6c" SECTION = "x11/wm" DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification expat gconf libxcursor libxfixes" -# SRCREV tagged 1.2.2 -SRCREV = "27da947e7fbdf9659f7e5bd1e92af92af6c03970" -SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \ +SRCREV = "ce8c1053270d960a7235ab5c3435f707541810a4" +SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager;branch=master;protocol=https \ file://kbdconfig" S = "${WORKDIR}/git" @@ -21,7 +20,7 @@ inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -FILES_${PN} = "${bindir}/* \ +FILES:${PN} = "${bindir}/* \ ${datadir}/matchbox \ ${sysconfdir}/matchbox \ ${datadir}/themes/blondie/matchbox \ @@ -34,6 +33,6 @@ EXTRA_OECONF = " --enable-startup-notification \ --with-expat-lib=${STAGING_LIBDIR} \ --with-expat-includes=${STAGING_INCDIR}" -do_install_prepend() { - install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig +do_install:prepend() { + install ${UNPACKDIR}/kbdconfig ${S}/data/kbdconfig } diff --git a/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch b/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch new file mode 100644 index 0000000000..aeae864cd4 --- /dev/null +++ b/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch @@ -0,0 +1,111 @@ +From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtasaka@fedoraproject.org> +Date: Fri, 24 Jan 2020 13:33:00 +0900 +Subject: Support gcc10 compilation + +gcc10 now defaults to -fno-common, and with gcc10 menu-cache compilation fails like + +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:167: multiple definition of `DirDirs'; main.o:menu-cache-gen/menu-tags.h:167: first defined here +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:164: multiple definition of `AppDirs'; main.o:menu-cache-gen/menu-tags.h:164: first defined here +/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:52: multiple definition of `menuTag_Layout'; main.o:menu-cache-gen/menu-tags.h:52: first defined here +.... + +This patch fixes compilation with gcc10: properly declaring variables in header with "extern", and also removing some unneeded variables in header files. + +Upstream-Status: Submitted [https://github.com/lxde/menu-cache/pull/19] +Signed-off-by: Adrian Bunk <bunk@stusta.de> +--- + menu-cache-gen/menu-tags.h | 55 ++++++++++++-------------------------- + 1 file changed, 17 insertions(+), 38 deletions(-) + +diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h +index f3fd7d3..f71c0bc 100644 +--- a/menu-cache-gen/menu-tags.h ++++ b/menu-cache-gen/menu-tags.h +@@ -22,38 +22,17 @@ + #include <libfm/fm-extra.h> + #include <menu-cache.h> + +-FmXmlFileTag menuTag_Menu; +-FmXmlFileTag menuTag_AppDir; +-FmXmlFileTag menuTag_DefaultAppDirs; +-FmXmlFileTag menuTag_DirectoryDir; +-FmXmlFileTag menuTag_DefaultDirectoryDirs; +-FmXmlFileTag menuTag_Include; +-FmXmlFileTag menuTag_Exclude; +-FmXmlFileTag menuTag_Filename; +-FmXmlFileTag menuTag_Or; +-FmXmlFileTag menuTag_And; +-FmXmlFileTag menuTag_Not; +-FmXmlFileTag menuTag_Category; +-FmXmlFileTag menuTag_MergeFile; +-FmXmlFileTag menuTag_MergeDir; +-FmXmlFileTag menuTag_DefaultMergeDirs; +-FmXmlFileTag menuTag_Directory; +-FmXmlFileTag menuTag_Name; +-FmXmlFileTag menuTag_Deleted; +-FmXmlFileTag menuTag_NotDeleted; +-FmXmlFileTag menuTag_OnlyUnallocated; +-FmXmlFileTag menuTag_NotOnlyUnallocated; +-FmXmlFileTag menuTag_All; +-FmXmlFileTag menuTag_LegacyDir; +-FmXmlFileTag menuTag_KDELegacyDirs; +-FmXmlFileTag menuTag_Move; +-FmXmlFileTag menuTag_Old; +-FmXmlFileTag menuTag_New; +-FmXmlFileTag menuTag_Layout; +-FmXmlFileTag menuTag_DefaultLayout; +-FmXmlFileTag menuTag_Menuname; +-FmXmlFileTag menuTag_Separator; +-FmXmlFileTag menuTag_Merge; ++extern FmXmlFileTag menuTag_AppDir; ++extern FmXmlFileTag menuTag_DirectoryDir; ++extern FmXmlFileTag menuTag_Include; ++extern FmXmlFileTag menuTag_Exclude; ++extern FmXmlFileTag menuTag_Filename; ++extern FmXmlFileTag menuTag_Or; ++extern FmXmlFileTag menuTag_And; ++extern FmXmlFileTag menuTag_Not; ++extern FmXmlFileTag menuTag_Category; ++extern FmXmlFileTag menuTag_All; ++extern FmXmlFileTag menuTag_LegacyDir; + + typedef enum { + MERGE_NONE, /* starting value */ +@@ -152,19 +131,19 @@ typedef struct { + } MenuRule; + + /* requested language(s) */ +-char **languages; ++extern char **languages; + + /* list of menu files to monitor */ +-GSList *MenuFiles; ++extern GSList *MenuFiles; + + /* list of menu dirs to monitor */ +-GSList *MenuDirs; ++extern GSList *MenuDirs; + + /* list of available app dirs */ +-GSList *AppDirs; ++extern GSList *AppDirs; + + /* list of available dir dirs */ +-GSList *DirDirs; ++extern GSList *DirDirs; + + /* parse and merge menu files */ + MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error); +@@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil + void _free_layout_items(GList *data); + + /* verbosity level */ +-gint verbose; ++extern gint verbose; + + #define DBG if (verbose) g_debug + #define VDBG if (verbose > 1) g_debug +-- +2.17.1 + diff --git a/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb b/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb index ddbbd94066..8875a939e0 100644 --- a/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb +++ b/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb @@ -2,13 +2,15 @@ SUMMARY = "Library for caching application menus" DESCRIPTION = "A library creating and utilizing caches to speed up freedesktop.org application menus" HOMEPAGE = "http://lxde.sourceforge.net/" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=0964c689fcf4c21c6797ea87408416b6" SECTION = "x11/libs" DEPENDS = "glib-2.0 libfm-extra" -SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.xz" +SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.xz \ + file://0001-Support-gcc10-compilation.patch \ +" SRC_URI[md5sum] = "99999a0bca48b980105208760c8fd893" SRC_URI[sha256sum] = "ed02eb459dcb398f69b9fa5bf4dd813020405afc84331115469cdf7be9273ec7" diff --git a/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch new file mode 100644 index 0000000000..1711e22585 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch @@ -0,0 +1,53 @@ +From 051f41beda540f0ae77b341db01a6de83c9e938a Mon Sep 17 00:00:00 2001 +From: Markus Volk <f_l_k@t-online.de> +Date: Fri, 8 Mar 2024 15:53:11 +0100 +Subject: [PATCH] Revert "meson: do not pull in clc for clover" + +This reverts commit 815a6647eb1383e9dc704ffcc266d85f3b13338a. +Upstream-Status: Inappropriate [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27783/diffs?commit_id=a976f2c9f0c07f9e06cc9affd9124b45bc60c2bd] + +Once the merge request above was added, it will only be possible to provide opencl spir-v with gallium-rusticl=true. This is not yet supported in the mesa recipe. +For now reverting this commit allows to still use clover with opencl-spirv, which would otherwise be broken starting from mesa 24.0.2. + +After it was merged, this patch needs to be removed and rusticl support will be required + +Signed-off-by: Markus Volk <f_l_k@t-online.de> +--- + meson.build | 3 ++- + src/compiler/meson.build | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 2db6185..741b5d1 100644 +--- a/meson.build ++++ b/meson.build +@@ -813,6 +813,7 @@ if _opencl != 'disabled' + error('The Clover OpenCL state tracker requires rtti') + endif + ++ with_clc = true + with_gallium_opencl = true + with_opencl_icd = _opencl == 'icd' + else +@@ -837,7 +838,7 @@ if with_gallium_rusticl + endif + + dep_clc = null_dep +-if with_gallium_opencl or with_clc ++if with_clc + dep_clc = dependency('libclc') + endif + +diff --git a/src/compiler/meson.build b/src/compiler/meson.build +index 8d73544..1dae56d 100644 +--- a/src/compiler/meson.build ++++ b/src/compiler/meson.build +@@ -79,7 +79,7 @@ subdir('nir') + + subdir('spirv') + +-if with_clc ++if with_opencl_spirv + subdir('clc') + endif + if with_gallium diff --git a/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch b/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch new file mode 100644 index 0000000000..82ad88a079 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-amd-Include-missing-llvm-IR-header-Module.h.patch @@ -0,0 +1,41 @@ +From 777d69cf15b80ab1f109a4936d6e4801c4b0e0f3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 1 Jul 2024 23:09:29 -0700 +Subject: [PATCH] amd: Include missing llvm IR header Module.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +With LLVM-19, Module.h header is not being pulled, which results in +compile errors e.g. + +src/amd/llvm/ac_llvm_helper.cpp:102:10: error: no matching function for call to ‘unwrap(LLVMOpaqueModule*&)’ + 102 | unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple()); + | ~~~~~~^~~~~~~~ +In file included from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/Type.h:18, + from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/DerivedTypes.h:23, + from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/IR/InstrTypes.h:26, + from /mnt/b/yoe/master/build/tmp/work/x86_64-linux/mesa-native/24.0.7/recipe-sysroot-native/usr/include/llvm/Analysis/TargetLibraryInfo.h:14, + from ../mesa-24.0.7/src/amd/llvm/ac_llvm_helper.cpp:8: + +Its getting the definition from llvm/IR/Type.h instead of Module.h and caused +confusion to compiler + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29993] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/amd/llvm/ac_llvm_helper.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp +index 5d065279ad1..af4a50f8409 100644 +--- a/src/amd/llvm/ac_llvm_helper.cpp ++++ b/src/amd/llvm/ac_llvm_helper.cpp +@@ -8,6 +8,7 @@ + #include <llvm/Analysis/TargetLibraryInfo.h> + #include <llvm/IR/IRBuilder.h> + #include <llvm/IR/LegacyPassManager.h> ++#include <llvm/IR/Module.h> + #include <llvm/IR/Verifier.h> + #include <llvm/Target/TargetMachine.h> + #include <llvm/MC/MCSubtargetInfo.h> diff --git a/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch b/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch new file mode 100644 index 0000000000..ab16152090 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch @@ -0,0 +1,58 @@ +From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@smile.fr> +Date: Tue, 6 Feb 2024 09:47:09 +0100 +Subject: [PATCH 1/2] drisw: fix build without dri3 + +commit 1887368df41 ("glx/sw: check for modifier support in the kopper path") +added dri3_priv.h header and dri3_check_multibuffer() function in drisw that +can be build without dri3. + + i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver': + drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer' + collect2: error: ld returned 1 exit status + +Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using +dri3_check_multibuffer(). + +Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path") + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] +Signed-off-by: Romain Naour <romain.naour@smile.fr> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/glx/drisw_glx.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c +index 3d3f752..4b19e2d 100644 +--- a/src/glx/drisw_glx.c ++++ b/src/glx/drisw_glx.c +@@ -32,7 +32,9 @@ + #include <dlfcn.h> + #include "dri_common.h" + #include "drisw_priv.h" ++#ifdef HAVE_DRI3 + #include "dri3_priv.h" ++#endif + #include <X11/extensions/shmproto.h> + #include <assert.h> + #include <vulkan/vulkan_core.h> +@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, + goto handle_error; + } + ++#ifdef HAVE_DRI3 + if (pdpyp->zink) { + bool err; + psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err); +@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv, + goto handle_error; + } + } ++#endif + + glx_config_destroy_list(psc->base.configs); + psc->base.configs = configs; +-- +2.44.0 + diff --git a/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch new file mode 100644 index 0000000000..5975ab4472 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-freedreno-don-t-encode-build-path-into-binaries.patch @@ -0,0 +1,78 @@ +From 027ac36756cc75eea9ed4fee135a351af30b35fd Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +Date: Tue, 16 Jul 2024 12:32:47 +0300 +Subject: [PATCH] freedreno: don't encode build path into binaries + +Encoding build-specific path into installed binaries is generally +frowned upon. It harms the reproducibility of the build and e.g. +OpenEmbedded now considers that to be an error. + +Instead of hardcoding rnn_src_path into the RNN_DEF_PATH define specify +it manually when running the tests. + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30206] +Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +--- + src/freedreno/afuc/meson.build | 4 ++++ + src/freedreno/decode/meson.build | 4 +++- + src/freedreno/meson.build | 2 +- + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build +index bb7cebf5a748..351cc31ef2de 100644 +--- a/src/freedreno/afuc/meson.build ++++ b/src/freedreno/afuc/meson.build +@@ -56,6 +56,7 @@ if with_tests + asm_fw = custom_target('afuc_test.fw', + output: 'afuc_test.fw', + command: [asm, '-g', '6', files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'], ++ env: {'RNN_PATH': rnn_src_path}, + ) + test('afuc-asm', + diff, +@@ -120,6 +122,7 @@ if cc.sizeof('size_t') > 4 + disasm_fw = custom_target('afuc_test.asm', + output: 'afuc_test.asm', + command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw'), '-g', '630'], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true + ) + test('afuc-disasm', +diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build +index 469eeb4eb597..dfa1c12d0d9f 100644 +--- a/src/freedreno/decode/meson.build ++++ b/src/freedreno/decode/meson.build +@@ -194,6 +194,7 @@ if dep_lua.found() and dep_libarchive.found() + log = custom_target(name + '.log', + output: name + '.log', + command: [cffdump, '--unit-test', args, files('../.gitlab-ci/traces/' + name + '.rd.gz')], ++ env: {'RNN_PATH': rnn_src_path}, + capture: true, + ) + test('cffdump-' + name, +@@ -247,7 +248,8 @@ if with_tests + output: name + '.log', + command: [crashdec, args, files('../.gitlab-ci/traces/' + name + '.devcore')], + capture: true, +- env: {'GALLIUM_DUMP_CPU': 'false'}, ++ env: {'GALLIUM_DUMP_CPU': 'false', ++ 'RNN_PATH': rnn_src_path}, + ) + + test('crashdec-' + name, +diff --git a/src/freedreno/meson.build b/src/freedreno/meson.build +index 98e49b8fcf0e..145e72597eb9 100644 +--- a/src/freedreno/meson.build ++++ b/src/freedreno/meson.build +@@ -6,7 +6,7 @@ inc_freedreno_rnn = include_directories('rnn') + + rnn_src_path = dir_source_root + '/src/freedreno/registers' + rnn_install_path = get_option('datadir') + '/freedreno/registers' +-rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path ++rnn_path = get_option('prefix') + '/' + rnn_install_path + + dep_lua = dependency('lua54', 'lua53', 'lua52', 'lua', required: false, + allow_fallback: true, version: '>=5.2') +-- +2.39.2 + diff --git a/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch new file mode 100644 index 0000000000..baa98a0d46 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch @@ -0,0 +1,24 @@ +From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 13 Jan 2020 15:23:47 -0800 +Subject: [PATCH] meson misdetects 64bit atomics on mips/clang + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/util/u_atomic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c +index 5a5eab4..e499516 100644 +--- a/src/util/u_atomic.c ++++ b/src/util/u_atomic.c +@@ -21,7 +21,7 @@ + * IN THE SOFTWARE. + */ + +-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) ++#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD) + + #include <stdint.h> + #include <pthread.h> diff --git a/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch deleted file mode 100644 index 1869e11059..0000000000 --- a/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b6d9bc97cb0e8c540a45dba5440b036fb940ff95 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Mon, 11 Nov 2019 09:38:15 -0800 -Subject: [PATCH] meson.build: check for all linux host_os combinations - -Make sure that we are also looking for our host_os combinations like -linux-musl etc. when assuming support for DRM/KMS. - -Also delete a duplicate line. - -Upstream-Status: Pending - -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> -Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> - ---- - meson.build | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index d584152..a1f098c 100644 ---- a/meson.build -+++ b/meson.build -@@ -117,7 +117,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 - # Only build shared_glapi if at least one OpenGL API is enabled - with_shared_glapi = get_option('shared-glapi') and with_any_opengl - --system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos'].contains(host_machine.system()) -+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux') - - dri_drivers = get_option('dri-drivers') - if dri_drivers.contains('auto') -@@ -856,7 +856,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }', - endif - - # TODO: this is very incomplete --if ['linux', 'cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) -+if ['cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) or host_machine.system().startswith('linux') - pre_args += '-D_GNU_SOURCE' - elif host_machine.system() == 'sunos' - pre_args += '-D__EXTENSIONS__' diff --git a/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch new file mode 100644 index 0000000000..036a0b4945 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch @@ -0,0 +1,42 @@ +From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@smile.fr> +Date: Tue, 6 Feb 2024 09:47:10 +0100 +Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa + +Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") +added an automatic zink fallback even when the zink gallium is not +enabled at build time. + +It leads to unexpected error log while loading drisw driver and +zink is not installed on the rootfs: + + MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so + +Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers") + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478] +Signed-off-by: Romain Naour <romain.naour@smile.fr> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/glx/glxext.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/glx/glxext.c b/src/glx/glxext.c +index 05c825a..7a06aa9 100644 +--- a/src/glx/glxext.c ++++ b/src/glx/glxext.c +@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy) + #endif /* HAVE_DRI3 */ + if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false)) + dpyPriv->dri2Display = dri2CreateDisplay(dpy); ++#if defined(HAVE_ZINK) + if (!dpyPriv->dri3Display && !dpyPriv->dri2Display) + try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) && + !getenv("GALLIUM_DRIVER"); ++#endif /* HAVE_ZINK */ + } + #endif /* GLX_USE_DRM */ + if (glx_direct) +-- +2.44.0 + diff --git a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch deleted file mode 100644 index 199ed572d5..0000000000 --- a/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch +++ /dev/null @@ -1,46 +0,0 @@ -From af6923544de02ded648a736e07b9bd8b7c52dba9 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Wed, 23 Oct 2019 09:46:28 -0700 -Subject: [PATCH] meson.build: make TLS ELF optional - -USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make -TLS GLX optional again" patch updated to the latest mesa. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> - ---- - meson.build | 2 +- - meson_options.txt | 6 ++++++ - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index a1f098c..1e31eb4 100644 ---- a/meson.build -+++ b/meson.build -@@ -378,7 +378,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat - endif - - # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS. --if not with_platform_android or get_option('platform-sdk-version') >= 29 -+if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls') - pre_args += '-DUSE_ELF_TLS' - endif - -diff --git a/meson_options.txt b/meson_options.txt -index b768c15..76cef24 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -333,6 +333,12 @@ option( - value : true, - description : 'Enable direct rendering in GLX and EGL for DRI', - ) -+option( -+ 'elf-tls', -+ type : 'boolean', -+ value : true, -+ description : 'Enable TLS support in ELF', -+) - option( - 'I-love-half-baked-turnips', - type : 'boolean', diff --git a/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch b/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch deleted file mode 100644 index c20a1f7c52..0000000000 --- a/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 5ad6515238bc042cccf9959abad44fdee9aeb07f Mon Sep 17 00:00:00 2001 -From: Fabio Berton <fabio.berton@ossystems.com.br> -Date: Wed, 12 Jun 2019 14:18:31 -0300 -Subject: [PATCH] Allow enable DRI without DRI drivers - -Upstream-Status: Pending - -Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> -Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> - ---- - meson.build | 2 +- - meson_options.txt | 6 ++++++ - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 1e31eb4..512eec6 100644 ---- a/meson.build -+++ b/meson.build -@@ -147,7 +147,7 @@ with_dri_r200 = dri_drivers.contains('r200') - with_dri_nouveau = dri_drivers.contains('nouveau') - with_dri_swrast = dri_drivers.contains('swrast') - --with_dri = dri_drivers.length() != 0 and dri_drivers != [''] -+with_dri = get_option('dri') or (dri_drivers.length() != 0 and dri_drivers != ['']) - - gallium_drivers = get_option('gallium-drivers') - if gallium_drivers.contains('auto') -diff --git a/meson_options.txt b/meson_options.txt -index 76cef24..a8abd04 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -34,6 +34,12 @@ option( - choices : ['auto', 'true', 'false'], - description : 'enable support for dri3' - ) -+option( -+ 'dri', -+ type : 'boolean', -+ value : false, -+ description : 'enable support for dri' -+) - option( - 'dri-drivers', - type : 'array', diff --git a/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch deleted file mode 100644 index b5658d0c9d..0000000000 --- a/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 1b1cb6e5ea25eaa98573328b9565728a08245997 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair@alistair23.me> -Date: Thu, 14 Nov 2019 09:06:02 -0800 -Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that - gen_matypes is gone." - -This reverts commit 20294dceebc23236e33b22578245f7e6f41b6997. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Alistair Francis <alistair@alistair23.me> - ---- - meson.build | 94 ++++++++++++++++++++++++++++++----------------- - meson_options.txt | 6 +++ - 2 files changed, 67 insertions(+), 33 deletions(-) - -diff --git a/meson.build b/meson.build -index 512eec6..a2bcc3a 100644 ---- a/meson.build -+++ b/meson.build -@@ -49,6 +49,7 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir') - with_tests = get_option('build-tests') - with_valgrind = get_option('valgrind') - with_libunwind = get_option('libunwind') -+with_asm = get_option('asm') - with_glx_read_only_text = get_option('glx-read-only-text') - with_glx_direct = get_option('glx-direct') - with_osmesa = get_option('osmesa') -@@ -985,41 +986,68 @@ endif - - # TODO: shared/static? Is this even worth doing? - -+# When cross compiling we generally need to turn off the use of assembly, -+# because mesa's assembly relies on building an executable for the host system, -+# and running it to get information about struct sizes. There is at least one -+# case of cross compiling where we can use asm, and that's x86_64 -> x86 when -+# host OS == build OS, since in that case the build machine can run the host's -+# binaries. -+if with_asm and meson.is_cross_build() -+ if build_machine.system() != host_machine.system() -+ # TODO: It may be possible to do this with an exe_wrapper (like wine). -+ message('Cross compiling from one OS to another, disabling assembly.') -+ with_asm = false -+ elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86') -+ # FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an -+ # x86 -> x86 cross compile. We use startswith rather than == to handle this -+ # case. -+ # TODO: There may be other cases where the 64 bit version of the -+ # architecture can run 32 bit binaries (aarch64 and armv7 for example) -+ message(''' -+ Cross compiling to different architectures, and the host cannot run -+ the build machine's binaries. Disabling assembly. -+ ''') -+ with_asm = false -+ endif -+endif -+ - with_asm_arch = '' --if host_machine.cpu_family() == 'x86' -- if system_has_kms_drm or host_machine.system() == 'gnu' -- with_asm_arch = 'x86' -- pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', -- '-DUSE_SSE_ASM'] -- -- if with_glx_read_only_text -- pre_args += ['-DGLX_X86_READONLY_TEXT'] -+if with_asm -+ if host_machine.cpu_family() == 'x86' -+ if system_has_kms_drm or host_machine.system() == 'gnu' -+ with_asm_arch = 'x86' -+ pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', -+ '-DUSE_SSE_ASM'] -+ -+ if with_glx_read_only_text -+ pre_args += ['-DGLX_X86_READONLY_TEXT'] -+ endif -+ endif -+ elif host_machine.cpu_family() == 'x86_64' -+ if system_has_kms_drm -+ with_asm_arch = 'x86_64' -+ pre_args += ['-DUSE_X86_64_ASM'] -+ endif -+ elif host_machine.cpu_family() == 'arm' -+ if system_has_kms_drm -+ with_asm_arch = 'arm' -+ pre_args += ['-DUSE_ARM_ASM'] -+ endif -+ elif host_machine.cpu_family() == 'aarch64' -+ if system_has_kms_drm -+ with_asm_arch = 'aarch64' -+ pre_args += ['-DUSE_AARCH64_ASM'] -+ endif -+ elif host_machine.cpu_family() == 'sparc64' -+ if system_has_kms_drm -+ with_asm_arch = 'sparc' -+ pre_args += ['-DUSE_SPARC_ASM'] -+ endif -+ elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' -+ if system_has_kms_drm -+ with_asm_arch = 'ppc64le' -+ pre_args += ['-DUSE_PPC64LE_ASM'] - endif -- endif --elif host_machine.cpu_family() == 'x86_64' -- if system_has_kms_drm -- with_asm_arch = 'x86_64' -- pre_args += ['-DUSE_X86_64_ASM'] -- endif --elif host_machine.cpu_family() == 'arm' -- if system_has_kms_drm -- with_asm_arch = 'arm' -- pre_args += ['-DUSE_ARM_ASM'] -- endif --elif host_machine.cpu_family() == 'aarch64' -- if system_has_kms_drm -- with_asm_arch = 'aarch64' -- pre_args += ['-DUSE_AARCH64_ASM'] -- endif --elif host_machine.cpu_family() == 'sparc64' -- if system_has_kms_drm -- with_asm_arch = 'sparc' -- pre_args += ['-DUSE_SPARC_ASM'] -- endif --elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' -- if system_has_kms_drm -- with_asm_arch = 'ppc64le' -- pre_args += ['-DUSE_PPC64LE_ASM'] - endif - endif - -diff --git a/meson_options.txt b/meson_options.txt -index a8abd04..0f4bd80 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -233,6 +233,12 @@ option( - value : false, - description : 'Enable GLVND support.' - ) -+option( -+ 'asm', -+ type : 'boolean', -+ value : true, -+ description : 'Build assembly code if possible' -+) - option( - 'glx-read-only-text', - type : 'boolean', diff --git a/meta/recipes-graphics/mesa/libglu_9.0.1.bb b/meta/recipes-graphics/mesa/libglu_9.0.3.bb index 703f131f79..8151727c52 100644 --- a/meta/recipes-graphics/mesa/libglu_9.0.1.bb +++ b/meta/recipes-graphics/mesa/libglu_9.0.3.bb @@ -10,21 +10,22 @@ LIC_FILES_CHKSUM = "file://include/GL/glu.h;endline=29;md5=6b79c570f644363b35645 # Epoch as this used to be part of mesa PE = "2" -PR = "0" -SRC_URI = "https://mesa.freedesktop.org/archive/glu/glu-${PV}.tar.gz" +SRC_URI = "https://mesa.freedesktop.org/archive/glu/glu-${PV}.tar.xz \ + " -SRC_URI[md5sum] = "5599a0e0a97335e10239d9165aced60d" -SRC_URI[sha256sum] = "f6f484cfcd51e489afe88031afdea1e173aa652697e4c19ddbcb8260579a10f7" +SRC_URI[sha256sum] = "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f" S = "${WORKDIR}/glu-${PV}" DEPENDS = "virtual/libgl" -inherit autotools pkgconfig features_check +inherit meson pkgconfig features_check + +EXTRA_OEMESON = "-Dgl_provider=gl" # Requires libGL.so which is provided by mesa when x11 in DISTRO_FEATURES REQUIRED_DISTRO_FEATURES = "x11 opengl" # Remove the mesa-glu dependency in mesa-glu-dev, as mesa-glu is empty -RDEPENDS_${PN}-dev = "" +DEV_PKG_DEPENDENCY = "" diff --git a/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch b/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch deleted file mode 100644 index f6b59a11fe..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch +++ /dev/null @@ -1,377 +0,0 @@ -From 779438770bedf3d53e6ad8f7cd6889b7f50daf3b Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Wed, 9 Jul 2014 14:23:41 +0200 -Subject: [PATCH] configure: Allow to disable demos which require GLEW or GLU - -* in some systems without X11 support we don't have GLEW, but - mesa-demos are still useful - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - -Port to 8.3.0 -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 49 ++++++++++++++++++++--------- - src/Makefile.am | 18 ++++++++--- - src/demos/Makefile.am | 73 ++++++++++++++++++++++++------------------- - src/egl/Makefile.am | 8 +++-- - src/egl/opengles1/Makefile.am | 10 ++++-- - src/egl/opengles2/Makefile.am | 29 ++++++++--------- - 6 files changed, 117 insertions(+), 70 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0525b09..28834cd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -93,25 +93,44 @@ AC_EGREP_HEADER([glutInitContextProfile], - [AC_DEFINE(HAVE_FREEGLUT)], - []) - --dnl Check for GLEW --PKG_CHECK_MODULES(GLEW, [glew >= 1.5.4]) --DEMO_CFLAGS="$DEMO_CFLAGS $GLEW_CFLAGS" --DEMO_LIBS="$DEMO_LIBS $GLEW_LIBS" -+AC_ARG_ENABLE([glew], -+ [AS_HELP_STRING([--enable-glew], -+ [build demos which require glew @<:@default=yes@:>@])], -+ [enable_glew="$enableval"], -+ [enable_glew=yes] -+) -+ -+if test "x$enable_glew" = xyes; then -+ dnl Check for GLEW -+ PKG_CHECK_MODULES(GLEW, [glew >= 1.5.4], [glew_enabled=yes], [glew_enabled=no]) -+ DEMO_CFLAGS="$DEMO_CFLAGS $GLEW_CFLAGS" -+ DEMO_LIBS="$DEMO_LIBS $GLEW_LIBS" -+fi - - # LIBS was set by AC_CHECK_LIB above - LIBS="" - --PKG_CHECK_MODULES(GLU, [glu], [], -- [AC_CHECK_HEADER([GL/glu.h], -- [], -- AC_MSG_ERROR([GLU not found])) -- AC_CHECK_LIB([GLU], -- [gluBeginCurve], -- [GLU_LIBS=-lGLU], -- AC_MSG_ERROR([GLU required])) ]) -+AC_ARG_ENABLE([glu], -+ [AS_HELP_STRING([--enable-glu], -+ [build demos which require glu @<:@default=yes@:>@])], -+ [enable_glu="$enableval"], -+ [enable_glu=yes] -+) - --DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS" --DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" -+if test "x$enable_glu" = xyes; then -+ PKG_CHECK_MODULES(GLU, [glu], [glu_enabled=yes], -+ [AC_CHECK_HEADER([GL/glu.h], -+ [], -+ AC_MSG_ERROR([GLU not found])) -+ AC_CHECK_LIB([GLU], -+ [gluBeginCurve], -+ [GLU_LIBS=-lGLU -+ glu_enabled=yes], -+ AC_MSG_ERROR([GLU required])) ]) -+ -+ DEMO_CFLAGS="$DEMO_CFLAGS $GLU_CFLAGS" -+ DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" -+fi - - AC_ARG_ENABLE([egl], - [AS_HELP_STRING([--enable-egl], -@@ -304,6 +323,8 @@ AC_SUBST([WAYLAND_CFLAGS]) - AC_SUBST([WAYLAND_LIBS]) - - -+AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes") -+AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes") - AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes") - AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes") - AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes") -diff --git a/src/Makefile.am b/src/Makefile.am -index 1647d64..8b89dee 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -22,15 +22,19 @@ - # Authors: - # Eric Anholt <eric@anholt.net> - -+if HAVE_GLEW -+UTIL = util -+endif -+ - SUBDIRS = \ -- util \ -+ $(UTIL) \ - data \ - demos \ - egl \ - fp \ - fpglsl \ - glsl \ -- gs \ -+ gs \ - objviewer \ - osdemos \ - perf \ -@@ -40,8 +44,12 @@ SUBDIRS = \ - slang \ - tests \ - tools \ -- trivial \ -- vp \ -- vpglsl \ - wgl \ - xdemos -+ -+if HAVE_GLEW -+SUBDIRS += \ -+ vp \ -+ vpglsl \ -+ trivial -+endif -diff --git a/src/demos/Makefile.am b/src/demos/Makefile.am -index 41603fa..ab1e3ab 100644 ---- a/src/demos/Makefile.am -+++ b/src/demos/Makefile.am -@@ -30,91 +30,100 @@ AM_LDFLAGS = \ - $(DEMO_LIBS) \ - $(GLUT_LIBS) - -+bin_PROGRAMS = -+ - if HAVE_GLUT --bin_PROGRAMS = \ -+if HAVE_GLEW -+bin_PROGRAMS += \ - arbfplight \ - arbfslight \ - arbocclude \ - arbocclude2 \ -- bounce \ -- clearspd \ - copypix \ - cubemap \ - cuberender \ - dinoshade \ -- dissolve \ -- drawpix \ - engine \ - fbo_firecube \ - fbotexture \ -- fire \ - fogcoord \ - fplight \ - fslight \ -+ gloss \ -+ isosurf \ -+ multiarb \ -+ paltex \ -+ pointblast \ -+ projtex \ -+ shadowtex \ -+ spriteblast \ -+ stex3d \ -+ textures \ -+ vao_demo \ -+ winpos -+ -+copypix_LDADD = ../util/libutil.la -+cubemap_LDADD = ../util/libutil.la -+cuberender_LDADD = ../util/libutil.la -+engine_LDADD = ../util/libutil.la -+fbo_firecube_LDADD = ../util/libutil.la -+gloss_LDADD = ../util/libutil.la -+isosurf_LDADD = ../util/libutil.la -+multiarb_LDADD = ../util/libutil.la -+projtex_LDADD = ../util/libutil.la -+textures_LDADD = ../util/libutil.la -+winpos_LDADD = ../util/libutil.la -+endif -+ -+if HAVE_GLU -+bin_PROGRAMS += \ -+ bounce \ -+ clearspd \ -+ dissolve \ -+ drawpix \ -+ fire \ - gamma \ - gearbox \ - gears \ - geartrain \ - glinfo \ -- gloss \ - gltestperf \ - ipers \ -- isosurf \ - lodbias \ - morph3d \ -- multiarb \ -- paltex \ - pixeltest \ -- pointblast \ -- projtex \ - ray \ - readpix \ - reflect \ - renormal \ -- shadowtex \ - singlebuffer \ - spectex \ -- spriteblast \ -- stex3d \ - teapot \ - terrain \ - tessdemo \ - texcyl \ - texenv \ -- textures \ - trispd \ - tunnel2 \ -- tunnel \ -- vao_demo \ -- winpos --endif -+ tunnel - - tunnel_SOURCES = \ - tunnel.c \ - tunneldat.h - --copypix_LDADD = ../util/libutil.la --cubemap_LDADD = ../util/libutil.la --cuberender_LDADD = ../util/libutil.la --drawpix_LDADD = ../util/libutil.la - dissolve_LDADD = ../util/libutil.la --engine_LDADD = ../util/libutil.la --fbo_firecube_LDADD = ../util/libutil.la -+drawpix_LDADD = ../util/libutil.la - fire_LDADD = ../util/libutil.la --gloss_LDADD = ../util/libutil.la - ipers_LDADD = ../util/libutil.la --isosurf_LDADD = ../util/libutil.la - lodbias_LDADD = ../util/libutil.la --multiarb_LDADD = ../util/libutil.la --projtex_LDADD = ../util/libutil.la - readpix_LDADD = ../util/libutil.la - reflect_LDADD = ../util/libutil.la - teapot_LDADD = ../util/libutil.la - texcyl_LDADD = ../util/libutil.la --textures_LDADD = ../util/libutil.la - tunnel_LDADD = ../util/libutil.la - tunnel2_LDADD = ../util/libutil.la --winpos_LDADD = ../util/libutil.la -+endif -+endif - - EXTRA_DIST = \ - README -diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am -index d64a49e..4fe1ca8 100644 ---- a/src/egl/Makefile.am -+++ b/src/egl/Makefile.am -@@ -24,8 +24,12 @@ - - SUBDIRS = \ - eglut \ -- opengl \ -- openvg \ - opengles1 \ - opengles2 \ - oes_vg -+ -+if HAVE_GLU -+SUBDIRS += \ -+ opengl \ -+ openvg -+endif -diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am -index fa397c2..21853e8 100644 ---- a/src/egl/opengles1/Makefile.am -+++ b/src/egl/opengles1/Makefile.am -@@ -36,9 +36,12 @@ AM_LDFLAGS = \ - $(EGL_LIBS) \ - -lm - -+noinst_PROGRAMS = -+ - if HAVE_EGL - if HAVE_GLESV1 --noinst_PROGRAMS = \ -+if HAVE_X11 -+bin_PROGRAMS = \ - bindtex \ - clear \ - drawtex_x11 \ -@@ -52,8 +55,6 @@ noinst_PROGRAMS = \ - torus_x11 \ - tri_x11 \ - two_win --endif --endif - - bindtex_LDADD = $(X11_LIBS) - es1_info_LDADD = $(X11_LIBS) -@@ -76,3 +77,6 @@ drawtex_x11_LDADD = ../eglut/libeglut_x11.la - gears_x11_LDADD = ../eglut/libeglut_x11.la - torus_x11_LDADD = ../eglut/libeglut_x11.la - tri_x11_LDADD = ../eglut/libeglut_x11.la -+endif -+endif -+endif -diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am -index b80ba50..17f8d49 100644 ---- a/src/egl/opengles2/Makefile.am -+++ b/src/egl/opengles2/Makefile.am -@@ -33,27 +33,28 @@ AM_LDFLAGS = \ - $(EGL_LIBS) \ - -lm - -+bin_PROGRAMS = -+ - if HAVE_EGL - if HAVE_GLESV2 --bin_PROGRAMS = --if HAVE_X11 --bin_PROGRAMS += \ -- es2_info \ -- es2gears_x11 \ -- es2tri --endif - if HAVE_WAYLAND - bin_PROGRAMS += es2gears_wayland --endif --endif -+ -+es2gears_wayland_SOURCES = es2gears.c -+es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la - endif - --es2_info_LDADD = $(X11_LIBS) --es2tri_LDADD = $(X11_LIBS) -+if HAVE_X11 -+bin_PROGRAMS += \ -+ es2tri \ -+ es2_info \ -+ es2gears_x11 - -+es2_info_LDADD = $(X11_LIBS) - es2gears_x11_SOURCES = es2gears.c -- - es2gears_x11_LDADD = ../eglut/libeglut_x11.la -+es2tri_LDADD = $(X11_LIBS) -+endif -+endif -+endif - --es2gears_wayland_SOURCES = es2gears.c --es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la --- -2.1.4 - diff --git a/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch b/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch deleted file mode 100644 index b27d9eafa5..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2e0367a941445a862ab99c54ec85d1357d0f73c0 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Thu, 10 Jul 2014 14:30:52 +0200 -Subject: [PATCH] Install few more test programs - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> - ---- - src/egl/opengl/Makefile.am | 3 +-- - src/egl/openvg/Makefile.am | 2 +- - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am -index 6d184ff6..ab09d028 100644 ---- a/src/egl/opengl/Makefile.am -+++ b/src/egl/opengl/Makefile.am -@@ -57,8 +57,7 @@ endif - - if HAVE_EGL - bin_PROGRAMS = \ -- eglinfo --noinst_PROGRAMS = \ -+ eglinfo \ - peglgears \ - $(EGL_DRM_DEMOS) \ - $(EGL_X11_DEMOS) \ -diff --git a/src/egl/openvg/Makefile.am b/src/egl/openvg/Makefile.am -index b0f1212f..5fd1cf83 100644 ---- a/src/egl/openvg/Makefile.am -+++ b/src/egl/openvg/Makefile.am -@@ -49,7 +49,7 @@ endif - - if HAVE_EGL - if HAVE_VG --noinst_PROGRAMS = \ -+bin_PROGRAMS = \ - $(EGL_X11_DEMOS) - endif - endif diff --git a/meta/recipes-graphics/mesa/mesa-demos/0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch b/meta/recipes-graphics/mesa/mesa-demos/0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch deleted file mode 100644 index a6d168175f..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 894add34c2b5e6b4ccc78996bf681d7ec7bc9e36 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Thu, 10 Jul 2014 14:29:27 +0200 -Subject: [PATCH] glsl, perf: Add few missing .glsl, .vert, .frag files to - EXTRA_DATA - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - ---- - src/fpglsl/Makefile.am | 2 ++ - src/glsl/Makefile.am | 10 ++++++++-- - src/perf/Makefile.am | 6 ++++++ - src/vpglsl/Makefile.am | 1 + - 4 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/src/fpglsl/Makefile.am b/src/fpglsl/Makefile.am -index 47c1039f..fd43c919 100644 ---- a/src/fpglsl/Makefile.am -+++ b/src/fpglsl/Makefile.am -@@ -39,10 +39,12 @@ noinst_PROGRAMS = \ - endif - - EXTRA_DIST = \ -+ depth-read.glsl \ - dowhile2.glsl \ - dowhile.glsl \ - forbreak.glsl \ - for.glsl \ -+ infinite-loop.glsl \ - mov.glsl \ - mov-imm.glsl \ - simpleif.glsl \ -diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am -index 4faa8dbf..079a29d8 100644 ---- a/src/glsl/Makefile.am -+++ b/src/glsl/Makefile.am -@@ -37,7 +37,7 @@ AM_LDFLAGS = \ - if HAVE_GLUT - bin_PROGRAMS = \ - array \ -- bezier \ -+ bezier \ - bitmap \ - brick \ - bump \ -@@ -123,12 +123,16 @@ EXTRA_DIST = \ - CH06-brick.vert \ - CH11-bumpmap.frag \ - CH11-bumpmap.vert \ -+ CH11-bumpmaptex.frag \ - CH11-toyball.frag \ - CH11-toyball.vert \ - CH18-mandel.frag \ - CH18-mandel.vert \ -- bezier.geom \ -+ bezier.geom \ - brick.shtest \ -+ blinking-teapot.frag \ -+ blinking-teapot.vert \ -+ convolution.frag \ - convolution.vert \ - cubemap.frag \ - mandelbrot.shtest \ -@@ -138,5 +142,7 @@ EXTRA_DIST = \ - reflect.vert \ - shadowtex.frag \ - simple.vert \ -+ simplex-noise.glsl \ - skinning.frag \ -+ skinning.vert \ - toyball.shtest -diff --git a/src/perf/Makefile.am b/src/perf/Makefile.am -index f0031fea..60069396 100644 ---- a/src/perf/Makefile.am -+++ b/src/perf/Makefile.am -@@ -59,3 +59,9 @@ endif - - glslstateschange_LDADD = libperf.la ../util/libutil.la - glsl_compile_time_LDADD = ../util/libutil.la -+ -+EXTRA_DIST = \ -+ glslstateschange1.frag \ -+ glslstateschange1.vert \ -+ glslstateschange2.frag \ -+ glslstateschange2.vert -diff --git a/src/vpglsl/Makefile.am b/src/vpglsl/Makefile.am -index 4a85ed40..48b08f48 100644 ---- a/src/vpglsl/Makefile.am -+++ b/src/vpglsl/Makefile.am -@@ -44,6 +44,7 @@ EXTRA_DIST = \ - func2.glsl \ - ifelse.glsl \ - if.glsl \ -+ infinite-loop.glsl \ - mov.glsl \ - nestedifs.glsl \ - nestedswizzle.glsl \ diff --git a/meta/recipes-graphics/mesa/mesa-demos/0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch b/meta/recipes-graphics/mesa/mesa-demos/0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch deleted file mode 100644 index 8a98ba60d1..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 477ab6d90a17d8e4d3935be6ce8b8e154db0e3e5 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Thu, 10 Jul 2014 14:48:12 +0200 -Subject: [PATCH] glsl, perf: Install .glsl, .vert, .frag files - -Upstream-Status: Pending -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - ---- - src/fpglsl/Makefile.am | 3 ++- - src/glsl/Makefile.am | 3 ++- - src/perf/Makefile.am | 3 ++- - src/vpglsl/Makefile.am | 3 ++- - 4 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/src/fpglsl/Makefile.am b/src/fpglsl/Makefile.am -index fd43c919..2bf51de4 100644 ---- a/src/fpglsl/Makefile.am -+++ b/src/fpglsl/Makefile.am -@@ -38,7 +38,8 @@ noinst_PROGRAMS = \ - fp-tri - endif - --EXTRA_DIST = \ -+demosdatadir=$(datadir)/$(PACKAGE)/ -+dist_demosdata_DATA= \ - depth-read.glsl \ - dowhile2.glsl \ - dowhile.glsl \ -diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am -index 079a29d8..f66ec299 100644 ---- a/src/glsl/Makefile.am -+++ b/src/glsl/Makefile.am -@@ -118,7 +118,8 @@ vert_or_frag_only_LDADD = ../util/libutil.la - vert_tex_LDADD = ../util/libutil.la - vsraytrace_LDADD = ../util/libutil.la - --EXTRA_DIST = \ -+demosdatadir=$(datadir)/$(PACKAGE)/ -+dist_demosdata_DATA= \ - CH06-brick.frag \ - CH06-brick.vert \ - CH11-bumpmap.frag \ -diff --git a/src/perf/Makefile.am b/src/perf/Makefile.am -index 60069396..469bdf45 100644 ---- a/src/perf/Makefile.am -+++ b/src/perf/Makefile.am -@@ -60,7 +60,8 @@ endif - glslstateschange_LDADD = libperf.la ../util/libutil.la - glsl_compile_time_LDADD = ../util/libutil.la - --EXTRA_DIST = \ -+demosdatadir=$(datadir)/$(PACKAGE)/ -+dist_demosdata_DATA= \ - glslstateschange1.frag \ - glslstateschange1.vert \ - glslstateschange2.frag \ -diff --git a/src/vpglsl/Makefile.am b/src/vpglsl/Makefile.am -index 48b08f48..55268675 100644 ---- a/src/vpglsl/Makefile.am -+++ b/src/vpglsl/Makefile.am -@@ -38,7 +38,8 @@ noinst_PROGRAMS = \ - vp-tris - endif - --EXTRA_DIST = \ -+demosdatadir=$(datadir)/$(PACKAGE)/ -+dist_demosdata_DATA= \ - for.glsl \ - func.glsl \ - func2.glsl \ diff --git a/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch b/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch deleted file mode 100644 index c687647407..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3aa84c47e88a4c38446ce1323abf6f2c77389104 Mon Sep 17 00:00:00 2001 -From: Prabhu <prabhu.sundararaj@freescale.com> -Date: Mon, 16 Nov 2015 17:09:32 -0600 -Subject: [PATCH] mesa-demos: OpenVG demos with single frame need eglSwapBuffer - -sp and text demos rendering single frame. to display the -single frame rendered needed a eglSwapBuffer to diplay to window. -Hence added eglutPostRedisplay to display the frame - -Upstream-Status: Pending - -Signed-off-by: Prabhu <prabhu.sundararaj@freescale.com> ---- - src/egl/openvg/sp.c | 1 + - src/egl/openvg/text.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/egl/openvg/sp.c b/src/egl/openvg/sp.c -index a20c0a3..468e91e 100644 ---- a/src/egl/openvg/sp.c -+++ b/src/egl/openvg/sp.c -@@ -500,6 +500,7 @@ draw(void) - } - - vgFlush(); -+ eglutPostRedisplay(); - } - - -diff --git a/src/egl/openvg/text.c b/src/egl/openvg/text.c -index f5c6de8..492581c 100644 ---- a/src/egl/openvg/text.c -+++ b/src/egl/openvg/text.c -@@ -360,6 +360,7 @@ display(void) - { - vgClear(0, 0, width, height); - glyph_string_draw(10.0, 10.0); -+ eglutPostRedisplay(); - } - - --- -2.5.1 - diff --git a/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch b/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch deleted file mode 100644 index e7be4dfbe1..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 322af294390a7f4e1524c5a79312be6cbebce988 Mon Sep 17 00:00:00 2001 -From: Awais Belal <awais_belal@mentor.com> -Date: Wed, 11 Nov 2015 17:22:12 +0500 -Subject: [PATCH] only build GLX demos if needed - -There are platforms that default to EGL only configurations -in which case the GLX applications are not required -at all. Allow the user to control generation of these -demos as needed through a configure switch. - -Signed-off-by: Awais Belal <awais_belal@mentor.com> -Upstream-Status: Pending ---- - configure.ac | 9 +++++++++ - src/Makefile.am | 6 +++++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index f8ec7e3..1a4d96d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -132,6 +132,11 @@ if test "x$enable_glu" = xyes; then - DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" - fi - -+AC_ARG_ENABLE([glx-demos], -+ [AS_HELP_STRING([--enable-glx-demos], -+ [enable GLX demos @<:@default=auto@:>@])], -+ [glx_demos_enabled="$enableval"], -+ [glx_demos_enabled=yes]) - AC_ARG_ENABLE([egl], - [AS_HELP_STRING([--enable-egl], - [enable EGL library @<:@default=auto@:>@])], -@@ -325,6 +333,7 @@ AC_SUBST([WAYLAND_LIBS]) - - AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes") - AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes") -+AM_CONDITIONAL(HAVE_GLX, test "x$glx_demos_enabled" = "xyes") - AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes") - AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes") - AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes") -diff --git a/src/Makefile.am b/src/Makefile.am -index 8b89dee..a4d7e8f 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -44,8 +44,12 @@ SUBDIRS = \ - slang \ - tests \ - tools \ -- wgl \ -+ wgl -+ -+if HAVE_GLX -+SUBDIRS += \ - xdemos -+endif - - if HAVE_GLEW - SUBDIRS += \ --- -1.9.1 - diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb b/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb deleted file mode 100644 index 38bdbded29..0000000000 --- a/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Mesa demo applications" -DESCRIPTION = "This package includes the demonstration application, such as glxgears. \ -These applications can be used for Mesa validation and benchmarking." -HOMEPAGE = "http://mesa3d.org" -BUGTRACKER = "https://bugs.freedesktop.org" -SECTION = "x11" - -LICENSE = "MIT & PD" -LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e \ - file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06" - -SRC_URI = "https://mesa.freedesktop.org/archive/demos/${BPN}-${PV}.tar.bz2 \ - file://0001-mesa-demos-Add-missing-data-files.patch \ - file://0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch \ - file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \ - file://0007-Install-few-more-test-programs.patch \ - file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \ - file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \ - file://0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch \ - file://0013-only-build-GLX-demos-if-needed.patch \ - " -SRC_URI[md5sum] = "6b65a02622765522176d00f553086fa3" -SRC_URI[sha256sum] = "01e99c94a0184e63e796728af89bfac559795fb2a0d6f506fa900455ca5fff7d" - -inherit autotools pkgconfig features_check -# depends on virtual/egl, virtual/libgl ... -REQUIRED_DISTRO_FEATURES = "opengl x11" - -PACKAGECONFIG ?= "drm osmesa freetype2 gbm egl gles1 gles2 \ - x11 glew glu glx" - -# The Wayland code doesn't work with Wayland 1.0, so disable it for now -#${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}" - -EXTRA_OECONF = "--with-system-data-files" - -PACKAGECONFIG[drm] = "--enable-libdrm,--disable-libdrm,libdrm" -PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl" -PACKAGECONFIG[freetype2] = "--enable-freetype2,--disable-freetype2,freetype" -PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgl" -PACKAGECONFIG[gles1] = "--enable-gles1,--disable-gles1,virtual/libgles1" -PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2" -PACKAGECONFIG[glut] = "--with-glut=${STAGING_EXECPREFIXDIR},--without-glut,freeglut" -PACKAGECONFIG[osmesa] = "--enable-osmesa,--disable-osmesa," -PACKAGECONFIG[vg] = "--enable-vg,--disable-vg,virtual/libopenvg" -PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,virtual/libgl wayland" -PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11" -PACKAGECONFIG[glew] = "--enable-glew,--disable-glew,glew" -PACKAGECONFIG[glu] = "--enable-glu,--disable-glu,virtual/libgl" -PACKAGECONFIG[glx] = "--enable-glx-demos,--disable-glx-demos" - -do_install_append() { - # it can be completely empty when all PACKAGECONFIG options are disabled - rmdir --ignore-fail-on-non-empty ${D}${bindir} - - if [ -f ${D}${bindir}/clear ]; then - mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos - fi -} diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.5.0.bb b/meta/recipes-graphics/mesa/mesa-demos_8.5.0.bb new file mode 100644 index 0000000000..12f41d75a5 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa-demos_8.5.0.bb @@ -0,0 +1,43 @@ +SUMMARY = "Mesa demo applications" +DESCRIPTION = "This package includes the demonstration application, such as glxgears. \ +These applications can be used for Mesa validation and benchmarking." +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" + +LICENSE = "MIT & PD" +LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e \ + file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06" + +SRC_URI = "https://mesa.freedesktop.org/archive/demos/${PV}/${BPN}-${PV}.tar.bz2 \ + file://0001-mesa-demos-Add-missing-data-files.patch \ + file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \ + " +SRC_URI[sha256sum] = "cea2df0a80f09a30f635c4eb1a672bf90c5ddee0b8e77f4d70041668ef71aac1" + +inherit meson pkgconfig features_check +# depends on virtual/egl, virtual/libgl ... +REQUIRED_DISTRO_FEATURES = "opengl x11" + +EXTRA_OEMESON = "-Dwith-system-data-files=true" + +PACKAGECONFIG ?= "drm egl gles1 gles2 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}" + +PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm" +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" +PACKAGECONFIG[gles1] = "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1" +PACKAGECONFIG[gles2] = "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2" +PACKAGECONFIG[glut] = "-Dwith-glut=${STAGING_EXECPREFIXDIR},,freeglut" +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled," +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland wayland-native wayland-protocols" +PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu" + +do_install:append() { + # it can be completely empty when all PACKAGECONFIG options are disabled + rmdir --ignore-fail-on-non-empty ${D}${bindir} + + if [ -f ${D}${bindir}/clear ]; then + mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos + fi +} diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb new file mode 100644 index 0000000000..ca160f1bfc --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -0,0 +1,15 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" +PACKAGECONFIG:class-target = "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" + diff --git a/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb b/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb deleted file mode 100644 index d4b1c1c454..0000000000 --- a/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb +++ /dev/null @@ -1,10 +0,0 @@ -require mesa_${PV}.bb - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -PACKAGECONFIG ??= "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb new file mode 100644 index 0000000000..96e8aa38d6 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 5838207e6b..9fdf496e8b 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -10,15 +10,41 @@ HOMEPAGE = "http://mesa3d.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.html;md5=3a4999caf82cc503ac8b9e37c235782e" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10" PE = "2" +SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ + file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ + file://0001-drisw-fix-build-without-dri3.patch \ + file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \ + file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \ + file://0001-amd-Include-missing-llvm-IR-header-Module.h.patch \ + file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\ +" + +SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a" +PV = "24.0.7" + +UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" + +#because we cannot rely on the fact that all apps will use pkgconfig, +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER +do_install:append() { + # sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled. + # So, check if EGL/eglplatform.h exists before running sed. + if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then + sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h + fi +} + DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" +DEPENDS:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native', '', d)}" EXTRANATIVEPATH += "chrpath-native" PROVIDES = " \ ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'virtual/libglx', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ virtual/mesa \ @@ -26,244 +52,322 @@ PROVIDES = " \ inherit meson pkgconfig python3native gettext features_check -# Unset these to stop python trying to report the target Python setup -_PYTHON_SYSCONFIGDATA_NAME[unexport] = "1" -STAGING_INCDIR[unexport] = "1" -STAGING_LIBDIR[unexport] = "1" - BBCLASSEXTEND = "native nativesdk" -ANY_OF_DISTRO_FEATURES_class-target = "opengl vulkan" - -PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'drm', '', d)} \ - surfaceless" +ANY_OF_DISTRO_FEATURES = "opengl vulkan" -export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm${MESA_LLVM_RELEASE}/llvm-config" -export YOCTO_ALTERNATE_MULTILIB_NAME = "${base_libdir}" -export LLVM_CONFIG = "${STAGING_BINDIR_NATIVE}/llvm-config${MESA_LLVM_RELEASE}" -export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}" +PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" -MESA_LLVM_RELEASE ?= "${LLVMVERSION}" +# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug' +# by default the upstream mesa sources build a debug release +# here we assume the user will want a release build by default +MESA_BUILD_TYPE ?= "release" +def check_buildtype(d): + _buildtype = d.getVar('MESA_BUILD_TYPE') + if _buildtype not in ['release', 'debug']: + bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype) + if _buildtype == 'debug': + return 'debugoptimized' + return 'plain' +MESON_BUILDTYPE = "${@check_buildtype(d)}" EXTRA_OEMESON = " \ - -Dshared-glapi=true \ - -Dgallium-opencl=disabled \ + -Dshared-glapi=enabled \ -Dglx-read-only-text=true \ -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ " -PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ - elf-tls \ - " -PACKAGECONFIG_class-native ?= "gbm dri egl opengl elf-tls" -PACKAGECONFIG_class-nativesdk ?= "gbm dri egl opengl elf-tls" +EXTRA_OEMESON:append:class-target = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=system', '', d)}" +EXTRA_OEMESON:append:class-native = " ${@bb.utils.contains('PACKAGECONFIG', 'opencl', '-Dintel-clc=enabled', '', d)}" + +def strip_comma(s): + return s.strip(',') -PACKAGECONFIG_remove_libc-musl = "elf-tls" +PACKAGECONFIG = " \ + gallium \ + video-codecs \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ +" + +PACKAGECONFIG:append:class-native = " gallium-llvm r600" -# "gbm" requires "dri", "opengl" -PACKAGECONFIG[gbm] = "-Dgbm=true,-Dgbm=false" +# "gbm" requires "opengl" +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" # "x11" requires "opengl" PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" -PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false" -PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=true,-Dgallium-xvmc=false,libxvmc" PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" -DRIDRIVERS_class-native = "swrast" -DRIDRIVERS_class-nativesdk = "swrast" -DRIDRIVERS_append_x86_class-target = ",r100,r200,nouveau,i965,i915" -DRIDRIVERS_append_x86-64_class-target = ",r100,r200,nouveau,i965,i915" -# "dri" requires "opengl" -PACKAGECONFIG[dri] = "-Ddri=true -Ddri-drivers=${DRIDRIVERS}, -Ddri=false -Ddri-drivers='', xorgproto libdrm" -PACKAGECONFIG[dri3] = "-Ddri3=true, -Ddri3=false, xorgproto libxshmfence" +PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence" # Vulkan drivers need dri3 enabled -# radeon could be enabled as well but requires gallium-llvm with llvm >= 3.9 +# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9 VULKAN_DRIVERS = "" -VULKAN_DRIVERS_append_x86_class-target = ",intel" -VULKAN_DRIVERS_append_x86-64_class-target = ",intel" -PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${VULKAN_DRIVERS}, -Dvulkan-drivers=''," +VULKAN_DRIVERS:append:x86 = ",intel,amd" +VULKAN_DRIVERS:append:x86-64 = ",intel,amd" +# i686 is a 32 bit override for mesa-native +VULKAN_DRIVERS:append:i686 = ",intel,amd" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" +PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" + +# mesa development and testing tools support, per driver +TOOLS = "" +TOOLS_DEPS = "" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}" + +# dependencies for tools. +TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}" + +# the fdperf tool requires libconfig (a part of meta-oe) so it needs special +# treatment in addition to the usual 'freedreno tools'. +PACKAGECONFIG[freedreno-fdperf] = ",,libconfig" + +PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" +PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd" # "gles" requires "opengl" -PACKAGECONFIG[gles] = "-Dgles1=true -Dgles2=true, -Dgles1=false -Dgles2=false" +PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" + +# "egl" requires "opengl" +PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" -# "egl" requires "dri", "opengl" -PACKAGECONFIG[egl] = "-Degl=true, -Degl=false" +# "opencl" requires libclc from meta-clang and spirv-tools from OE-Core +OPENCL_NATIVE = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', '-Dopencl-native=true', '', d)}" +PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd -Dopencl-spirv=true ${OPENCL_NATIVE},-Dgallium-opencl=disabled -Dopencl-spirv=false,libclc spirv-tools python3-ply-native" -PACKAGECONFIG[etnaviv] = "" +PACKAGECONFIG[broadcom] = "" +PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native" PACKAGECONFIG[freedreno] = "" PACKAGECONFIG[kmsro] = "" PACKAGECONFIG[vc4] = "" PACKAGECONFIG[v3d] = "" +PACKAGECONFIG[zink] = "" GALLIUMDRIVERS = "swrast" # gallium swrast was found to crash Xorg on startup in x32 qemu -GALLIUMDRIVERS_x86-x32 = "" - -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" +GALLIUMDRIVERS:x86-x32 = "" +GALLIUMDRIVERS:append:x86 = ",i915,iris,crocus" +GALLIUMDRIVERS:append:x86-64 = ",i915,iris,crocus" +# i686 is a 32 bit override for mesa-native +GALLIUMDRIVERS:append:i686 = ",i915,iris,crocus" + +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}" # radeonsi requires LLVM -GALLIUMDRIVERS_LLVM33 = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" -GALLIUMDRIVERS_LLVM33_ENABLED = "${@oe.utils.version_less_or_equal('MESA_LLVM_RELEASE', '3.2', False, len('${GALLIUMDRIVERS_LLVM33}') > 0, d)}" -GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@',${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}" +GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" +GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM:append:x86 = ",svga" +GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga" +# i686 is a 32 bit override for mesa-native +GALLIUMDRIVERS_LLVM:append:i686 = ",svga" PACKAGECONFIG[r600] = "" +PACKAGECONFIG[virgl] = "" + +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" -GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}" -GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}" -GALLIUMDRIVERS_append = ",virgl" +PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" +PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils" +PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled" +PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" +PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" -PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS}, -Dgallium-drivers=''" -PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, llvm${MESA_LLVM_RELEASE} llvm-native \ - ${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}" -PACKAGECONFIG[xa] = "-Dgallium-xa=true, -Dgallium-xa=false" +PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false" PACKAGECONFIG[lima] = "" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" PACKAGECONFIG[panfrost] = "" -GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" + +PACKAGECONFIG[tegra] = "" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra,nouveau', '', d)}" + +PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false" + +PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false" + +PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto" -OSMESA = "${@bb.utils.contains('PACKAGECONFIG', 'gallium', 'gallium', 'classic', d)}" -PACKAGECONFIG[osmesa] = "-Dosmesa=${OSMESA},-Dosmesa=none" +PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" -PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind" +PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors" -# mesa tries to run cross-built gen_matypes on build machine to get struct size information -EXTRA_OEMESON_append = " -Dasm=false" +VIDEO_CODECS ?= "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'all', 'all_free', d)}" +PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS}, -Dvideo-codecs=''" # llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) -FULL_OPTIMIZATION_append = " -fno-omit-frame-pointer" +FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" -CFLAGS_append_armv5 = " -DMISSING_64BIT_ATOMICS" +CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" +CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" # Remove the mesa dependency on mesa-dev, as mesa is empty -RDEPENDS_${PN}-dev = "" +DEV_PKG_DEPENDENCY = "" -# Add dependency so that GLES3 header don't need to be added manually -RDEPENDS_libgles2-mesa-dev += "libgles3-mesa-dev" +# Khronos documentation says that include/GLES2/gl2ext.h can be used for +# OpenGL ES 3 specification as well as for OpenGL ES 2. +# There can be applications including GLES2/gl2ext.h instead of GLES3/gl3ext.h +# meaning we should probably bring in GLES2/gl2ext.h if someone asks for +# development package of libgles3. +RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev" + +RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}" PACKAGES =+ "libegl-mesa libegl-mesa-dev \ libosmesa libosmesa-dev \ libgl-mesa libgl-mesa-dev \ + libglx-mesa libglx-mesa-dev \ libglapi libglapi-dev \ libgbm libgbm-dev \ libgles1-mesa libgles1-mesa-dev \ libgles2-mesa libgles2-mesa-dev \ libgles3-mesa libgles3-mesa-dev \ + libopencl-mesa libopencl-mesa-dev \ libxatracker libxatracker-dev \ mesa-megadriver mesa-vulkan-drivers \ + mesa-vdpau-drivers mesa-tools \ " -do_install_append () { +do_install:append () { # Drivers never need libtool .la files rm -f ${D}${libdir}/dri/*.la rm -f ${D}${libdir}/egl/*.la rm -f ${D}${libdir}/gallium-pipe/*.la rm -f ${D}${libdir}/gbm/*.la - # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used - chrpath --delete ${D}${libdir}/dri/*_dri.so || true - # libwayland-egl has been moved to wayland 1.15+ rm -f ${D}${libdir}/libwayland-egl* rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc } +do_install:append:class-native () { + if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true', 'false', d)}; then + install -d ${D}${bindir} + install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir} + fi +} + # For the packages that make up the OpenGL interfaces, inject variables so that # they don't get Debian-renamed (which would remove the -mesa suffix), and # RPROVIDEs/RCONFLICTs on the generic libgl name. python __anonymous() { pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() + suffix = "" + if "-native" in d.getVar("PN"): + suffix = "-native" for p in (("egl", "libegl", "libegl1"), - ("dri", "libgl", "libgl1"), + ("opengl", "libgl", "libgl1"), + ("glvnd", "libglx",), ("gles", "libgles1", "libglesv1-cm1"), ("gles", "libgles2", "libglesv2-2"), - ("gles", "libgles3",)): + ("gles", "libgles3",), + ("opencl", "libopencl",)): if not p[0] in pkgconfig: continue - fullp = p[1] + "-mesa" - pkgs = " ".join(p[1:]) - d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") - d.appendVar("RREPLACES_" + fullp, pkgs) - d.appendVar("RPROVIDES_" + fullp, pkgs) - d.appendVar("RCONFLICTS_" + fullp, pkgs) + mlprefix = d.getVar("MLPREFIX") + fullp = mlprefix + p[1] + "-mesa" + suffix + mlprefix = d.getVar("MLPREFIX") + pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:]) + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) - d.appendVar("RRECOMMENDS_" + fullp, " mesa-megadriver") + d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix) # For -dev, the first element is both the Debian and original name - fullp += "-dev" - pkgs = p[1] + "-dev" - d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") - d.appendVar("RREPLACES_" + fullp, pkgs) - d.appendVar("RPROVIDES_" + fullp, pkgs) - d.appendVar("RCONFLICTS_" + fullp, pkgs) + fullp = mlprefix + p[1] + "-mesa-dev" + suffix + pkgs = " " + mlprefix + p[1] + "-dev" + suffix + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) } python mesa_populate_packages() { pkgs = ['mesa', 'mesa-dev', 'mesa-dbg'] for pkg in pkgs: - d.setVar("RPROVIDES_%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) - d.setVar("RCONFLICTS_%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) - d.setVar("RREPLACES_%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) import re dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri") if os.path.isdir(dri_drivers_root): - dri_pkgs = os.listdir(dri_drivers_root) + dri_pkgs = sorted(os.listdir(dri_drivers_root)) lib_name = d.expand("${MLPREFIX}mesa-megadriver") for p in dri_pkgs: m = re.match(r'^(.*)_dri\.so$', p) if m: pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) - d.appendVar("RPROVIDES_%s" % lib_name, pkg_name) - d.appendVar("RCONFLICTS_%s" % lib_name, pkg_name) - d.appendVar("RREPLACES_%s" % lib_name, pkg_name) + d.appendVar("RPROVIDES:%s" % lib_name, pkg_name) + d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name) + d.appendVar("RREPLACES:%s" % lib_name, pkg_name) pipe_drivers_root = os.path.join(d.getVar('libdir'), "gallium-pipe") do_split_packages(d, pipe_drivers_root, r'^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='') } -PACKAGESPLITFUNCS_prepend = "mesa_populate_packages " +PACKAGESPLITFUNCS =+ "mesa_populate_packages" PACKAGES_DYNAMIC += "^mesa-driver-.*" - -FILES_mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d/00-mesa-defaults.conf" -FILES_mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan" -FILES_libegl-mesa = "${libdir}/libEGL.so.*" -FILES_libgbm = "${libdir}/libgbm.so.*" -FILES_libgles1-mesa = "${libdir}/libGLESv1*.so.*" -FILES_libgles2-mesa = "${libdir}/libGLESv2.so.*" -FILES_libgl-mesa = "${libdir}/libGL.so.*" -FILES_libglapi = "${libdir}/libglapi.so.*" -FILES_libosmesa = "${libdir}/libOSMesa.so.*" -FILES_libxatracker = "${libdir}/libxatracker.so.*" - -FILES_${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan" -FILES_libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" -FILES_libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" -FILES_libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc" -FILES_libglapi-dev = "${libdir}/libglapi.*" -FILES_libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" -FILES_libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" -FILES_libgles3-mesa-dev = "${includedir}/GLES3" -FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" -FILES_libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ +PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native" + +FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d" +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan" +FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" +FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d" +FILES:libgbm = "${libdir}/libgbm.so.*" +FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" +FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" +FILES:libgl-mesa = "${libdir}/libGL.so.*" +FILES:libglx-mesa = "${libdir}/libGLX*.so.*" +FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.* ${libdir}/gallium-pipe/*.so ${sysconfdir}/OpenCL/vendors/mesa.icd" +FILES:libglapi = "${libdir}/libglapi.so.*" +FILES:libosmesa = "${libdir}/libOSMesa.so.*" +FILES:libxatracker = "${libdir}/libxatracker.so.*" + +FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so" +FILES:libegl-mesa-dev = "${libdir}/libEGL*.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" +FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc" +FILES:libglx-mesa-dev = "${libdir}/libGLX*.*" +FILES:libglapi-dev = "${libdir}/libglapi.*" +FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" +FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" +FILES:libgles3-mesa-dev = "${includedir}/GLES3" +FILES:libopencl-mesa-dev = "${libdir}/libMesaOpenCL.so" +FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" +FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ ${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \ ${libdir}/pkgconfig/xatracker.pc" +# catch all to get all the tools and data +FILES:${PN}-tools = "${bindir} ${datadir}" +ALLOW_EMPTY:${PN}-tools = "1" # Fix upgrade path from mesa to mesa-megadriver -RREPLACES_mesa-megadriver = "mesa" -RCONFLICTS_mesa-megadriver = "mesa" -RPROVIDES_mesa-megadriver = "mesa" +RREPLACES:mesa-megadriver = "mesa" +RCONFLICTS:mesa-megadriver = "mesa" +RPROVIDES:mesa-megadriver = "mesa" diff --git a/meta/recipes-graphics/mesa/mesa_19.2.4.bb b/meta/recipes-graphics/mesa/mesa_19.2.4.bb deleted file mode 100644 index f4b33df227..0000000000 --- a/meta/recipes-graphics/mesa/mesa_19.2.4.bb +++ /dev/null @@ -1,21 +0,0 @@ -require ${BPN}.inc - -SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ - file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ - file://0002-meson.build-make-TLS-ELF-optional.patch \ - file://0003-Allow-enable-DRI-without-DRI-drivers.patch \ - file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \ - " - -SRC_URI[md5sum] = "5c047732b81651ddb341597528b4b096" -SRC_URI[sha256sum] = "09000a0f7dbbd82e193b81a8f1bf0c118eab7ca975c0329181968596e548e30f" - -UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" - -#because we cannot rely on the fact that all apps will use pkgconfig, -#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER -do_install_append() { - if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then - sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h - fi -} diff --git a/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb b/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb index 4e89d631c3..48d50c8f66 100644 --- a/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb +++ b/meta/recipes-graphics/mini-x-session/mini-x-session_0.1.bb @@ -1,23 +1,25 @@ SUMMARY = "Very simple session manager for X" +DESCRIPTION = "Simple session manager for X, that provides just the right boilerplate to create a session and launch the browser " HOMEPAGE = "http://www.yoctoproject.org" BUGTRACKER = "http://bugzilla.pokylinux.org" -PR = "r4" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://mini-x-session;endline=5;md5=b6430bffbcf05f9760e72938826b7487" SECTION = "x11" -RCONFLICTS_${PN} = "matchbox-common" +RCONFLICTS:${PN} = "matchbox-common" SRC_URI = "file://mini-x-session" -S = "${WORKDIR}" -RDEPENDS_${PN} = "sudo" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +RDEPENDS:${PN} = "sudo" inherit update-alternatives -ALTERNATIVE_${PN} = "x-session-manager" +ALTERNATIVE:${PN} = "x-session-manager" ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/mini-x-session" ALTERNATIVE_PRIORITY = "50" diff --git a/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch b/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch deleted file mode 100644 index 82c93dd604..0000000000 --- a/meta/recipes-graphics/mx/mx-1.0/fix-test-includes.patch +++ /dev/null @@ -1,20 +0,0 @@ -Fix missing include directory when building tests - -This patch is currently required for all versions of mx -Upstream-Status: Submitted @ https://github.com/clutter-project/mx/issues/82 -Signed-off-by: Tomas Frydrych <tomas@sleepfive.com> --- -Index: git/tests/Makefile.am -=================================================================== ---- git.orig/tests/Makefile.am 2013-05-08 15:18:56.918596425 +0100 -+++ git/tests/Makefile.am 2013-05-08 15:23:26.864781401 +0100 -@@ -10,7 +10,8 @@ - - INCLUDES = \ - -I$(top_srcdir) \ -- -I$(top_builddir) -+ -I$(top_builddir)\ -+ -I$(top_builddir)/mx - - noinst_PROGRAMS = \ - test-deform-texture \ diff --git a/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb b/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb deleted file mode 100644 index 58a6997ffe..0000000000 --- a/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb +++ /dev/null @@ -1,16 +0,0 @@ -require mx.inc - -# The 1.4.7 tag does not build against cogl 1.14, pull in a revision with a fix -SRCREV = "9b1db6b8060bd00b121a692f942404a24ae2960f" -PV = "1.4.7+git${SRCPV}" - -# Exclude x.99.x versions from upstream checks -UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>^\d+(\.(?!99)\d+)+)" - -SRC_URI = "git://github.com/clutter-project/mx.git;branch=mx-1.4 \ - file://fix-test-includes.patch \ - " -S = "${WORKDIR}/git" - -LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \ - file://mx/mx-widget.c;beginline=8;endline=20;md5=13bba3c973a72414a701e1e87b5ee879" diff --git a/meta/recipes-graphics/mx/mx.inc b/meta/recipes-graphics/mx/mx.inc deleted file mode 100644 index 714a06f0af..0000000000 --- a/meta/recipes-graphics/mx/mx.inc +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Clutter based UI widget library" -LICENSE = "LGPLv2.1" - -inherit clutter autotools features_check gobject-introspection gtk-doc -# depends on clutter-1.0 which depends on cogl-1.0 -REQUIRED_DISTRO_FEATURES = "opengl" - -DEPENDS = "intltool-native clutter-1.0 dbus-glib gdk-pixbuf" - -SRC_URI = "http://source.clutter-project.org/sources/mx/${@get_verdir("${PV}")}/mx-${PV}.tar.xz" - -EXTRA_OECONF = "--disable-gtk-widgets \ - --with-dbus \ - --with-winsys=none \ - --without-clutter-imcontext \ - --without-clutter-gesture \ - --without-startup-notification \ - --without-glade \ - " - -FILES_${PN} += "${datadir}" diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb deleted file mode 100644 index 2e7b47dd40..0000000000 --- a/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb +++ /dev/null @@ -1,22 +0,0 @@ -# -# Copyright (C) 2007 OpenedHand Ltd. -# - -SUMMARY = "Clutter package groups" - -PR = "r6" - -inherit packagegroup features_check -# rdepends on clutter-* -REQUIRED_DISTRO_FEATURES = "opengl" - -PACKAGES = "\ - ${PN}-core \ - " - -SUMMARY_${PN}-core = "Clutter graphics library" -RDEPENDS_${PN}-core = "\ - clutter-1.0 \ - clutter-gst-3.0 \ - clutter-gtk-1.0 \ - " diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb new file mode 100644 index 0000000000..dd302c89e7 --- /dev/null +++ b/meta/recipes-graphics/packagegroups/packagegroup-core-weston.bb @@ -0,0 +1,14 @@ +SUMMARY = "Basic Weston compositor setup" +DESCRIPTION = "Packages required to set up a basic working Weston session" + +inherit packagegroup features_check + +# weston-init requires pam enabled if started via systemd +REQUIRED_DISTRO_FEATURES = "wayland ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" + +RDEPENDS:${PN} = "\ + weston \ + weston-init \ + weston-examples \ + wayland-utils \ + " diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb index 9ca2705a5f..db6242af33 100644 --- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb +++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb @@ -1,15 +1,13 @@ SUMMARY = "Basic X11 session" DESCRIPTION = "Packages required to set up a basic working X11 session" -PR = "r1" inherit packagegroup features_check # rdepends on matchbox-wm REQUIRED_DISTRO_FEATURES = "x11" -RDEPENDS_${PN} = "\ +RDEPENDS:${PN} = "\ packagegroup-core-x11-xserver \ packagegroup-core-x11-utils \ - dbus \ matchbox-terminal \ matchbox-wm \ mini-x-session \ diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb index a0b944a678..ebc1330055 100644 --- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb +++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb @@ -3,7 +3,6 @@ # SUMMARY = "X11 display server" -PR = "r40" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -11,10 +10,13 @@ inherit packagegroup features_check # rdepends on XSERVER REQUIRED_DISTRO_FEATURES = "x11" -XSERVER ?= "xserver-xorg xf86-video-fbdev" +XSERVER ?= "xserver-xorg \ + xf86-video-fbdev \ + xf86-video-modesetting \ + " XSERVERCODECS ?= "" -RDEPENDS_${PN} = "\ +RDEPENDS:${PN} = "\ ${XSERVER} \ ${XSERVERCODECS} \ " diff --git a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb index cddf1932f3..91db7ed33b 100644 --- a/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb +++ b/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb @@ -2,7 +2,6 @@ # Copyright (C) 2011 Intel Corporation # -PR = "r40" inherit packagegroup features_check REQUIRED_DISTRO_FEATURES = "x11" @@ -16,13 +15,13 @@ VIRTUAL-RUNTIME_xserver_common ?= "" VIRTUAL-RUNTIME_graphical_init_manager ?= "xserver-nodm-init" SUMMARY = "X11 display server and basic utilities" -RDEPENDS_${PN} = "\ +RDEPENDS:${PN} = "\ ${PN}-xserver \ ${PN}-utils \ " -SUMMARY_${PN}-utils = "X11 basic utilities and init" -RDEPENDS_${PN}-utils = "\ +SUMMARY:${PN}-utils = "X11 basic utilities and init" +RDEPENDS:${PN}-utils = "\ ${VIRTUAL-RUNTIME_xserver_common} \ ${VIRTUAL-RUNTIME_graphical_init_manager} \ xauth \ diff --git a/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch b/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch deleted file mode 100644 index 03abf8763c..0000000000 --- a/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f8b32901981a06a8db4169b82a704dcf7e8b6560 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Wed, 20 Nov 2019 15:43:57 -0600 -Subject: [PATCH] Fix build reproducibility - -Changes the comment in pango-enum-types.c to reference the file basename -instead of the full path. This ensures that the generated file is -reproducible when it is included in source packages meant for debugging. - -Upstream-Status: Pending [https://gitlab.gnome.org/GNOME/pango/merge_requests/159] -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> ---- - pango/pango-enum-types.c.template | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pango/pango-enum-types.c.template b/pango/pango-enum-types.c.template -index d922c691..0d55ef74 100644 ---- a/pango/pango-enum-types.c.template -+++ b/pango/pango-enum-types.c.template -@@ -6,7 +6,7 @@ - /*** END file-header ***/ - - /*** BEGIN file-production ***/ --/* enumerations from "@filename@" */ -+/* enumerations from "@basename@" */ - /*** END file-production ***/ - - /*** BEGIN value-header ***/ --- -2.23.0 - diff --git a/meta/recipes-graphics/pango/pango/run-ptest b/meta/recipes-graphics/pango/pango/run-ptest deleted file mode 100644 index fa87a75779..0000000000 --- a/meta/recipes-graphics/pango/pango/run-ptest +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/sh - -gnome-desktop-testing-runner pango diff --git a/meta/recipes-graphics/pango/pango_1.44.7.bb b/meta/recipes-graphics/pango/pango_1.54.0.bb index afb56a6cde..de6f8bb361 100644 --- a/meta/recipes-graphics/pango/pango_1.44.7.bb +++ b/meta/recipes-graphics/pango/pango_1.54.0.bb @@ -7,39 +7,33 @@ core of text and font handling for GTK+-2.x." HOMEPAGE = "http://www.pango.org/" BUGTRACKER = "http://bugzilla.gnome.org" SECTION = "libs" -LICENSE = "LGPLv2.0+" +LICENSE = "LGPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" -GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gi-docgen upstream-version-is-even gobject-introspection -inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection +UPSTREAM_CHECK_REGEX = "pango-(?P<pver>\d+\.(?!9\d+)\d+\.\d+)" -SRC_URI += "file://run-ptest \ - file://0001-Fix-build-reproducibility.patch" -SRC_URI[archive.md5sum] = "c75cc5b833d934d98e83343832e20e5d" -SRC_URI[archive.sha256sum] = "66a5b6cc13db73efed67b8e933584509f8ddb7b10a8a40c3850ca4a985ea1b1f" +GIR_MESON_ENABLE_FLAG = "enabled" +GIR_MESON_DISABLE_FLAG = "disabled" + +SRC_URI[archive.sha256sum] = "8a9eed75021ee734d7fc0fdf3a65c3bba51dfefe4ae51a9b414a60c70b2d1ed8" DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ - ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG[x11] = ",,virtual/libx11 libxft" -PACKAGECONFIG[tests] = "-Dinstall-tests=true, -Dinstall-tests=false" -PACKAGECONFIG[thai] = ",,libthai" +PACKAGECONFIG[thai] = "-Dlibthai=enabled,-Dlibthai=disabled,libthai" -GTKDOC_MESON_OPTION = "gtk_doc" GIR_MESON_OPTION = 'introspection' LEAD_SONAME = "libpango-1.0*" -FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" - -RDEPENDS_${PN}-ptest += "cantarell-fonts" -RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us" +FILES:${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" -RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \ +RPROVIDES:${PN} += "pango-modules pango-module-indic-lang \ pango-module-basic-fc pango-module-arabic-lang" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch b/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch new file mode 100644 index 0000000000..b47e16af6b --- /dev/null +++ b/meta/recipes-graphics/piglit/piglit/0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch @@ -0,0 +1,38 @@ +From 8f25cdf54e35ab1a174cabf5078784b8e48bda01 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Fri, 23 Aug 2024 15:29:45 +0200 +Subject: [PATCH] CMakeLists.txt: do not obtain wayland-scanner path from + pkg-config + +cmake can only use target wayland-scanner.pc which (correctly) points to /usr/bin/wayland-scanner + +However in cross builds it should be using wayland-scanner from native sysroot, +otherwise builds will break if wayland-scanner is not installed on the host +distro. + +Upstream-Status: Inappropriate [yocto specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + CMakeLists.txt | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d169fb481..8394f5236 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -211,11 +211,7 @@ if(PIGLIT_USE_WAYLAND) + message(FATAL_ERROR "Failed to find wayland-protocols XML path") + endif() + +- pkg_check_modules(WaylandScanner REQUIRED wayland-scanner) +- pkg_get_variable(WaylandScannerPath wayland-scanner wayland_scanner) +- if (NOT WaylandScannerPath) +- message(FATAL_ERROR "Failed to find wayland-scanner path from pkg-config") +- endif() ++ set(WaylandScannerPath wayland-scanner) + add_executable(WaylandScannerExe IMPORTED) + set_property(TARGET WaylandScannerExe PROPERTY IMPORTED_LOCATION ${WaylandScannerPath}) + endif() +-- +2.39.2 + diff --git a/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch b/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch deleted file mode 100644 index e07e810a73..0000000000 --- a/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 26faa2c157a27a18a9f767976730fe0c115e3af4 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Wed, 13 Jul 2016 19:19:02 +0300 -Subject: [PATCH] cmake: install bash-completions in the right place - -The completionsdir variable is a full path and should not be -prefixed. - -This does mean the files may be installed outside of -CMAKE_INSTALL_PREFIX -- the alternative is more difficult and -means that bash completion files may be installed where -bash-completion can't find them. - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> -Upstream-Status: Submitted [mailing list] ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8e2abba..784a8f9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -532,7 +532,7 @@ install ( - if (BASH_COMPLETION_FOUND) - install( - FILES completions/bash/piglit -- DESTINATION ${CMAKE_INSTALL_PREFIX}/${BASH_COMPLETION_COMPLETIONSDIR}/ -+ DESTINATION ${BASH_COMPLETION_COMPLETIONSDIR}/ - ) - endif (BASH_COMPLETION_FOUND) - --- -2.8.1 - diff --git a/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch b/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch new file mode 100644 index 0000000000..08e709b1d0 --- /dev/null +++ b/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch @@ -0,0 +1,50 @@ +From 77f327909e4a99c64261290cd76e234e10cc64d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 3 May 2023 21:59:43 -0700 +Subject: [PATCH] tests: Fix narrowing errors seen with clang + +Fixes +piglit-test-pattern.cpp:656:26: error: type 'float' cannot be narrowed to 'int' in initiali +zer list [-Wc++11-narrowing] + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/807] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../spec/ext_framebuffer_multisample/draw-buffers-common.cpp | 4 ++-- + tests/util/piglit-test-pattern.cpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp +index 48e1ad4a5..b36830c45 100644 +--- a/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp ++++ b/tests/spec/ext_framebuffer_multisample/draw-buffers-common.cpp +@@ -353,8 +353,8 @@ draw_pattern(bool sample_alpha_to_coverage, + float vertices[4][2] = { + { 0.0f, 0.0f + i * (pattern_height / num_rects) }, + { 0.0f, (i + 1.0f) * (pattern_height / num_rects) }, +- { pattern_width, (i + 1.0f) * (pattern_height / num_rects) }, +- { pattern_width, 0.0f + i * (pattern_height / num_rects) } }; ++ { static_cast<float>(pattern_width), (i + 1.0f) * (pattern_height / num_rects) }, ++ { static_cast<float>(pattern_width), 0.0f + i * (pattern_height / num_rects) } }; + + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, + sizeof(vertices[0]), +diff --git a/tests/util/piglit-test-pattern.cpp b/tests/util/piglit-test-pattern.cpp +index 43d451d6a..52ee94457 100644 +--- a/tests/util/piglit-test-pattern.cpp ++++ b/tests/util/piglit-test-pattern.cpp +@@ -653,12 +653,12 @@ ColorGradientSunburst::draw_with_scale_and_offset(const float (*proj)[4], + { + switch (out_type) { + case GL_INT: { +- int clear_color[4] = { offset, offset, offset, offset }; ++ int clear_color[4] = { static_cast<int>(offset), static_cast<int>(offset), static_cast<int>(offset), static_cast<int>(offset) }; + glClearBufferiv(GL_COLOR, 0, clear_color); + break; + } + case GL_UNSIGNED_INT: { +- unsigned clear_color[4] = { offset, offset, offset, offset }; ++ unsigned clear_color[4] = { static_cast<unsigned>(offset), static_cast<unsigned>(offset), static_cast<unsigned>(offset), static_cast<unsigned>(offset) }; + glClearBufferuiv(GL_COLOR, 0, clear_color); + break; + } diff --git a/meta/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch b/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch index 5d6ec368ba..70bb55053d 100644 --- a/meta/recipes-graphics/piglit/piglit/0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch +++ b/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch @@ -1,4 +1,4 @@ -From 3bf1beee1ddd19bc536ff2856e04ac269d43daa2 Mon Sep 17 00:00:00 2001 +From cb8e4b99fcfe81399e3e6d922156db4a48a39a8e Mon Sep 17 00:00:00 2001 From: Pascal Bach <pascal.bach@siemens.com> Date: Thu, 4 Oct 2018 14:43:17 +0200 Subject: [PATCH] cmake: use proper WAYLAND_INCLUDE_DIRS variable @@ -15,7 +15,7 @@ Upstream-Status: Submitted [piglit@lists.freedesktop.org] 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt -index a5f080156..a303a9f58 100644 +index 1714ab41f..3b67aa7da 100644 --- a/tests/util/CMakeLists.txt +++ b/tests/util/CMakeLists.txt @@ -97,7 +97,7 @@ if(PIGLIT_USE_WAFFLE) @@ -27,6 +27,3 @@ index a5f080156..a303a9f58 100644 ) endif() if(PIGLIT_HAS_X11) --- -2.11.0 - diff --git a/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch b/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch new file mode 100644 index 0000000000..ce5cbd3ea9 --- /dev/null +++ b/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch @@ -0,0 +1,27 @@ +From 7d2d23125f1946a7b74f9a427388d469500fcd8d Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 10 Nov 2020 17:13:50 +0000 +Subject: [PATCH] tests/util/piglit-shader.c: do not hardcode build path into + target binary + +This helps reproducibilty. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + tests/util/piglit-shader.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/util/piglit-shader.c b/tests/util/piglit-shader.c +index 1787eb180..9e74704b1 100644 +--- a/tests/util/piglit-shader.c ++++ b/tests/util/piglit-shader.c +@@ -73,7 +73,7 @@ piglit_compile_shader(GLenum target, const char *filename) + + source_dir = getenv("PIGLIT_SOURCE_DIR"); + if (source_dir == NULL) { +- source_dir = SOURCE_DIR; ++ source_dir = "."; + } + + snprintf(filename_with_path, FILENAME_MAX - 1, diff --git a/meta/recipes-graphics/piglit/piglit_git.bb b/meta/recipes-graphics/piglit/piglit_git.bb index a95bb5ab93..fbf20de176 100644 --- a/meta/recipes-graphics/piglit/piglit_git.bb +++ b/meta/recipes-graphics/piglit/piglit_git.bb @@ -1,25 +1,29 @@ SUMMARY = "OpenGL driver testing framework" DESCRIPTION = "Piglit is an open-source test suite for OpenGL and OpenCL \ implementations." -LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause" +HOMEPAGE = "https://gitlab.freedesktop.org/mesa/piglit" +BUGTRACKER = "https://gitlab.freedesktop.org/mesa/piglit/-/issues" +LICENSE = "MIT & LGPL-2.0-or-later & GPL-3.0-only & GPL-2.0-or-later & BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0" -SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ - file://0001-cmake-install-bash-completions-in-the-right-place.patch \ - file://0001-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ +SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https;branch=main \ + file://0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ + file://0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch \ + file://0001-tests-Fix-narrowing-errors-seen-with-clang.patch \ + file://0001-CMakeLists.txt-do-not-obtain-wayland-scanner-path-fr.patch \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "068581c29c95fe2681023e12745007dd17b38ce5" +SRCREV = "c11c9374c1448d01b31e7f724921cc1f4ee2c84c" # (when PV goes above 1.0 remove the trailing r) -PV = "1.0+gitr${SRCPV}" +PV = "1.0+gitr" S = "${WORKDIR}/git" X11_DEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxrender libglu', '', d)}" X11_RDEPS = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa-demos', '', d)}" -DEPENDS = "libpng waffle libxkbcommon virtual/libgl python3-mako-native python3-numpy-native python3-six-native virtual/egl" +DEPENDS = "libpng waffle libxkbcommon python3-mako-native python3-numpy-native python3-six-native virtual/egl" inherit cmake pkgconfig python3native features_check bash-completion @@ -32,28 +36,43 @@ REQUIRED_DISTRO_FEATURES += "opengl" export TEMP = "${B}/temp/" do_compile[dirs] =+ "${B}/temp/" -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 glx', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ +" PACKAGECONFIG[freeglut] = "-DPIGLIT_USE_GLUT=1,-DPIGLIT_USE_GLUT=0,freeglut," -PACKAGECONFIG[x11] = "-DPIGLIT_BUILD_GL_TESTS=ON,-DPIGLIT_BUILD_GL_TESTS=OFF,${X11_DEPS}, ${X11_RDEPS}" +PACKAGECONFIG[glx] = "-DPIGLIT_BUILD_GLX_TESTS=ON,-DPIGLIT_BUILD_GLX_TESTS=OFF" +PACKAGECONFIG[opencl] = "-DPIGLIT_BUILD_CL_TESTS=ON,-DPIGLIT_BUILD_CL_TESTS=OFF,virtual/opencl-icd" +PACKAGECONFIG[x11] = "-DPIGLIT_USE_X11=1 -DPIGLIT_BUILD_GL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON,-DPIGLIT_USE_X11=0 -DPIGLIT_BUILD_GL_TESTS=OFF -DPIGLIT_BUILD_DMA_BUF_TESTS=OFF,${X11_DEPS}, ${X11_RDEPS}" +PACKAGECONFIG[vulkan] = "-DPIGLIT_BUILD_VK_TESTS=ON,-DPIGLIT_BUILD_VK_TESTS=OFF,glslang-native vulkan-loader,glslang" +PACKAGECONFIG[wayland] = "-DPIGLIT_USE_WAYLAND=1,-DPIGLIT_USE_WAYLAND=0,wayland-native wayland wayland-protocols" +export PIGLIT_BUILD_DIR = "../../../../git" -do_configure_prepend() { +do_configure:prepend() { if [ "${@bb.utils.contains('PACKAGECONFIG', 'freeglut', 'yes', 'no', d)}" = "no" ]; then sed -i -e "/^#.*include <GL\/freeglut_ext.h>$/d" ${S}/src/piglit/glut_wrap.h sed -i -e "/^#.*include.*<GL\/glut.h>$/d" ${S}/src/piglit/glut_wrap.h fi } +# Forcibly strip because Piglit is *huge*, and don't bother trying to split/strip the result. OECMAKE_TARGET_INSTALL = "install/strip" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" -RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \ +RDEPENDS:${PN} = "waffle waffle-bin python3 python3-mako python3-json \ python3-misc \ python3-unixadmin python3-xml python3-multiprocessing \ python3-six python3-shell python3-io \ python3-netserver bash \ " -INSANE_SKIP_${PN} += "dev-so already-stripped" +INSANE_SKIP:${PN} += "dev-so already-stripped" + +# As nothing builds against Piglit we don't need to have anything in the +# sysroot, especially when this is ~2GB of test suite +SYSROOT_DIRS:remove = "${libdir}" # Can't be built with ccache CCACHE_DISABLE = "1" diff --git a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb index c3c237eee7..ee5173dc83 100644 --- a/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb +++ b/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb @@ -1,5 +1,5 @@ SUMMARY = "A clock combined with a game of pong" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" DEPENDS = "virtual/libx11 xdmcp xau" inherit features_check pkgconfig @@ -10,7 +10,8 @@ SRC_URI = "file://pong-clock-no-flicker.c" LIC_FILES_CHKSUM = "file://pong-clock-no-flicker.c;beginline=1;endline=23;md5=dd248d50f73f746d1ee78586b0b2ebd3" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_compile () { ${CC} ${CFLAGS} ${LDFLAGS} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp` diff --git a/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch b/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch new file mode 100644 index 0000000000..5c49aa7fd5 --- /dev/null +++ b/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch @@ -0,0 +1,106 @@ +From 941f5f5831e7a52c26168f81f25d0470860ca6f1 Mon Sep 17 00:00:00 2001 +From: Jose Quaresma <quaresma.jose@gmail.com> +Date: Sat, 13 Feb 2021 00:45:56 +0000 +Subject: [PATCH] cmake: disable building external dependencies + +- add cmake option to disable the build of the third_party dependencies +- change the update_build_version.py to use pkg-config when third_party dependencies not found + +Upstream-Status: Inappropriate [OE-core specific] + +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> +--- + CMakeLists.txt | 13 ++++++++++--- + utils/update_build_version.py | 22 +++++++++++++++------- + 2 files changed, 25 insertions(+), 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ffcb54b..cce715e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -62,6 +62,7 @@ else() + endif() + + option(SHADERC_ENABLE_WERROR_COMPILE "Enable passing -Werror to compiler, if available" ON) ++option(BUILD_EXTERNAL "Build external dependencies in /third_party" ON) + + set (CMAKE_CXX_STANDARD 17) + +@@ -119,8 +120,14 @@ endif(MSVC) + + + # Configure subdirectories. +-# We depend on these for later projects, so they should come first. +-add_subdirectory(third_party) ++if(BUILD_EXTERNAL) ++ # We depend on these for later projects, so they should come first. ++ add_subdirectory(third_party) ++else() ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules (PKG_CHECK REQUIRED SPIRV-Tools) ++ pkg_check_modules (PKG_CHECK REQUIRED glslang) ++endif() + + add_subdirectory(libshaderc_util) + add_subdirectory(libshaderc) +@@ -132,7 +139,7 @@ endif() + add_custom_target(build-version + ${Python_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py +- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc ++ ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} + COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") + + function(define_pkg_config_file NAME LIBS) +diff --git a/utils/update_build_version.py b/utils/update_build_version.py +index b7ce5b8..95b34c5 100755 +--- a/utils/update_build_version.py ++++ b/utils/update_build_version.py +@@ -30,6 +30,7 @@ import re + import subprocess + import sys + import time ++import itertools + + def mkdir_p(directory): + """Make the directory, and all its ancestors as required. Any of the +@@ -121,25 +122,32 @@ def get_version_string(project, directory): + directory, which consists of software version string and git description + string.""" + detailed_version_string_lst = [project] +- if project != 'glslang': +- detailed_version_string_lst.append(deduce_software_version(directory)) +- detailed_version_string_lst.append(describe(directory).replace('"', '\\"')) ++ if isinstance(directory, str) and os.path.isdir(directory): ++ if project != 'glslang': ++ detailed_version_string_lst.append(deduce_software_version(directory)) ++ detailed_version_string_lst.append(describe(directory).replace('"', '\\"')) ++ else: ++ if project == 'spirv-tools': ++ project = 'SPIRV-Tools' ++ pkgconfig = ['pkg-config', '--modversion', project] ++ version = subprocess.run(pkgconfig, capture_output=True, text=True).stdout.rstrip() ++ detailed_version_string_lst.append(version) + return ' '.join(detailed_version_string_lst) + + + def main(): +- if len(sys.argv) != 5: +- print(('usage: {} <shaderc-dir> <spirv-tools-dir> <glslang-dir> <output-file>'.format( ++ if len(sys.argv) < 3: ++ print(('usage: {} <output-file> <shaderc-dir> [spirv-tools-dir] [glslang-dir]'.format( + sys.argv[0]))) + sys.exit(1) + + projects = ['shaderc', 'spirv-tools', 'glslang'] + new_content = ''.join([ + '"{}\\n"\n'.format(get_version_string(p, d)) +- for (p, d) in zip(projects, sys.argv[1:]) ++ for (p, d) in itertools.zip_longest(projects, sys.argv[2:]) + ]) + +- output_file = sys.argv[4] ++ output_file = sys.argv[1] + mkdir_p(os.path.dirname(output_file)) + + if os.path.isfile(output_file): diff --git a/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch b/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch new file mode 100644 index 0000000000..39f982b7f3 --- /dev/null +++ b/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch @@ -0,0 +1,25 @@ +From ec2442940e1d5338971861bb81537bae3a6c19e2 Mon Sep 17 00:00:00 2001 +From: Jose Quaresma <quaresma.jose@gmail.com> +Date: Sat, 13 Feb 2021 00:45:56 +0000 +Subject: [PATCH] libshaderc_util: fix glslang header file location + +Upstream-Status: Pending + +Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> +--- + libshaderc_util/src/compiler.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc +index e5f5d10..5fd6d3c 100644 +--- a/libshaderc_util/src/compiler.cc ++++ b/libshaderc_util/src/compiler.cc +@@ -20,7 +20,7 @@ + #include <thread> + #include <tuple> + +-#include "SPIRV/GlslangToSpv.h" ++#include "glslang/SPIRV/GlslangToSpv.h" + #include "libshaderc_util/format.h" + #include "libshaderc_util/io_shaderc.h" + #include "libshaderc_util/message.h" diff --git a/meta/recipes-graphics/shaderc/shaderc_2024.1.bb b/meta/recipes-graphics/shaderc/shaderc_2024.1.bb new file mode 100644 index 0000000000..1f0b12ef57 --- /dev/null +++ b/meta/recipes-graphics/shaderc/shaderc_2024.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "A collection of tools, libraries and tests for shader compilation" +DESCRIPTION = "The Shaderc library provides an API for compiling GLSL/HLSL \ +source code to SPIRV modules. It has been shipping in the Android NDK since version r12b." +SECTION = "graphics" +HOMEPAGE = "https://github.com/google/shaderc" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRCREV = "5d7736da11e626b49c5463aadb2afb228ad20276" +SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \ + file://0001-cmake-disable-building-external-dependencies.patch \ + file://0002-libshaderc_util-fix-glslang-header-file-location.patch \ + " +UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$" +S = "${WORKDIR}/git" + +inherit cmake python3native pkgconfig + +DEPENDS = "spirv-headers spirv-tools glslang" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_EXTERNAL=OFF \ + -DSHADERC_SKIP_TESTS=ON \ + -DSHADERC_SKIP_EXAMPLES=ON \ + -DSHADERC_SKIP_COPYRIGHT_CHECK=ON \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/spir/spirv-headers_1.3.290.0.bb b/meta/recipes-graphics/spir/spirv-headers_1.3.290.0.bb new file mode 100644 index 0000000000..30280a5b5e --- /dev/null +++ b/meta/recipes-graphics/spir/spirv-headers_1.3.290.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Machine-readable files for the SPIR-V Registry" +SECTION = "graphics" +HOMEPAGE = "https://www.khronos.org/registry/spir-v" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d14ee3b13f42e9c9674acc5925c3d741" + +SRCREV = "2acb319af38d43be3ea76bfabf3998e5281d8d12" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;branch=main" +PE = "1" +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" +S = "${WORKDIR}/git" + +inherit cmake + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/spir/spirv-tools/0001-update_build_version.py-support-an-envvar-to-force-t.patch b/meta/recipes-graphics/spir/spirv-tools/0001-update_build_version.py-support-an-envvar-to-force-t.patch new file mode 100644 index 0000000000..c596a3679a --- /dev/null +++ b/meta/recipes-graphics/spir/spirv-tools/0001-update_build_version.py-support-an-envvar-to-force-t.patch @@ -0,0 +1,43 @@ +From 39b6385454d705128e684ed779ba9620e2ead1e2 Mon Sep 17 00:00:00 2001 +From: Yoann Congal <yoann.congal@smile.fr> +Date: Thu, 1 Aug 2024 18:58:04 +0200 +Subject: [PATCH] update_build_version.py: support an envvar to force the + description + +FORCED_BUILD_VERSION_DESCRIPTION envvar can be used to force a version +description instead of resorting to git describe which can change for a +given commit if multiple lightweight commits point ot it. + +Signed-off-by: Yoann Congal <yoann.congal@smile.fr> +Upstream-Status: Backport [https://github.com/KhronosGroup/SPIRV-Tools/commit/bc4060ed274ad9749c20daced96d6f0518d6418e] +--- + utils/update_build_version.py | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/utils/update_build_version.py b/utils/update_build_version.py +index bb66e18a..9115cab1 100755 +--- a/utils/update_build_version.py ++++ b/utils/update_build_version.py +@@ -24,9 +24,10 @@ + # - The software version deduced from the given CHANGES file. + # - A longer string with the project name, the software version number, and + # git commit information for the CHANGES file's directory. The commit +-# information is the output of "git describe" if that succeeds, or "git +-# rev-parse HEAD" if that succeeds, or otherwise a message containing the +-# phrase "unknown hash". ++# information is the content of the FORCED_BUILD_VERSION_DESCRIPTION ++# environement variable is it exists, else the output of "git describe" if ++# that succeeds, or "git rev-parse HEAD" if that succeeds, or otherwise a ++# message containing the phrase "unknown hash". + # The string contents are escaped as necessary. + + import datetime +@@ -150,7 +151,7 @@ def main(): + sys.exit(1) + + repo_path = os.path.dirname(changes_file_path) +- description = describe(repo_path) ++ description = os.getenv("FORCED_BUILD_VERSION_DESCRIPTION", describe(repo_path)) + content = OUTPUT_FORMAT.format(version_tag=version, description=description) + + # Escape file content. diff --git a/meta/recipes-graphics/spir/spirv-tools_1.3.290.0.bb b/meta/recipes-graphics/spir/spirv-tools_1.3.290.0.bb new file mode 100644 index 0000000000..d0f1c387f1 --- /dev/null +++ b/meta/recipes-graphics/spir/spirv-tools_1.3.290.0.bb @@ -0,0 +1,54 @@ +SUMMARY = "The SPIR-V Tools project provides an API and commands for \ +processing SPIR-V modules" +DESCRIPTION = "The project includes an assembler, binary module parser, \ +disassembler, validator, and optimizer for SPIR-V." +HOMEPAGE = "https://github.com/KhronosGroup/SPIRV-Tools" +SECTION = "graphics" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRCREV = "0cfe9e7219148716dfd30b37f4d21753f098707a" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;branch=main;protocol=https \ + file://0001-update_build_version.py-support-an-envvar-to-force-t.patch \ + " +PE = "1" +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" +S = "${WORKDIR}/git" + +inherit cmake + +DEPENDS = "spirv-headers" + +EXTRA_OECMAKE += "\ + -DSPIRV-Headers_SOURCE_DIR=${STAGING_EXECPREFIXDIR} \ + -DSPIRV_TOOLS_BUILD_STATIC=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DSPIRV_SKIP_TESTS=ON \ +" + +# Force the version description "git describe" related non-reproducibility +do_compile:prepend() { + export FORCED_BUILD_VERSION_DESCRIPTION="${PV}" +} + +do_install:append:class-target() { + # Properly set _IMPORT_PREFIX in INTERFACE_LINK_LIBRARIES so that dependent + # tools can find the right library + sed -i ${D}${libdir}/cmake/SPIRV-Tools/SPIRV-ToolsTarget.cmake \ + -e 's:INTERFACE_LINK_LIBRARIES.*$:INTERFACE_LINK_LIBRARIES "\$\{_IMPORT_PREFIX\}/${baselib}":' +} + +# all the libraries are unversioned, so don't pack it on PN-dev +SOLIBS = ".so" +FILES_SOLIBSDEV = "" + +PACKAGES =+ "${PN}-lesspipe" +FILES:${PN}-lesspipe = "${base_bindir}/spirv-lesspipe.sh" +RDEPENDS:${PN}-lesspipe += "${PN} bash" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch b/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch new file mode 100644 index 0000000000..e5dff007d4 --- /dev/null +++ b/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch @@ -0,0 +1,108 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From a7e49fefde18ea8d5bada8096d32f23bcfb5a6dc Mon Sep 17 00:00:00 2001 +From: "Federico G. Schwindt" <fgsch@openbsd.org> +Date: Mon, 17 Feb 2014 15:48:12 +0100 +Subject: [PATCH 1/3] Fix crash on 32bit architectures where time_t is 64 bit + +This is an ABI change on platforms where sizeof(time_t) doesn't equal +sizeof(long). For most platforms this change shouldn't make a difference +at present. OpenBSD recently switched to 64bit time_t on all architectures +to avoid time_t overflow in 2038 on 32bit machines. + +This fix extends to consumers of startup-notification, for instance +the window manager of XFCE, which is how I got involved in this. +See http://mail.xfce.org/pipermail/xfce4-dev/2014-February/030611.html +and follow-ups. The XFCE devs pointed out that my patch to fix a +crash in XFCE's window manager depends on this startup-notification patch. + +Signed-off-by: Julien Danjou <julien@danjou.info> +--- + libsn/sn-monitor.c | 8 ++++---- + libsn/sn-monitor.h | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c +index 2a9ad16..f419bc1 100644 +--- a/libsn/sn-monitor.c ++++ b/libsn/sn-monitor.c +@@ -364,8 +364,8 @@ sn_startup_sequence_get_screen (SnStartupSequence *sequence) + **/ + void + sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec) ++ time_t *tv_sec, ++ suseconds_t *tv_usec) + { + if (tv_sec) + *tv_sec = sequence->initiation_time.tv_sec; +@@ -386,8 +386,8 @@ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, + **/ + void + sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec) ++ time_t *tv_sec, ++ suseconds_t *tv_usec) + { + /* for now the same as get_initiated_time */ + if (tv_sec) +diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h +index b58581f..2f639df 100644 +--- a/libsn/sn-monitor.h ++++ b/libsn/sn-monitor.h +@@ -77,11 +77,11 @@ const char* sn_startup_sequence_get_application_id (SnStartupSequence *se + int sn_startup_sequence_get_screen (SnStartupSequence *sequence); + + void sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec); ++ time_t *tv_sec, ++ suseconds_t *tv_usec); + void sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec); ++ time_t *tv_sec, ++ suseconds_t *tv_usec); + + void sn_startup_sequence_complete (SnStartupSequence *sequence); + +-- +2.26.2 + +From ea9f7e4cc6fd8c08d175ed7774ed2c5bd11c8ef0 Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Mon, 17 Feb 2014 14:37:09 -0500 +Subject: [PATCH 2/3] Add include of <sys/select.h> for previous patch + +Unfortunately while the standard says that <sys/types.h> is the +correct header to get suseconds_t, at least with glibc, that requires +-DXOPEN_SOURCE. Which is problematic for a public header, because +then all *users* of startup-notification will be required to define +that. + +Poking around a bit, it looks like at least with glibc, <sys/select.h> +will give us an unconditional define. + +Signed-off-by: Julien Danjou <julien@danjou.info> +--- + libsn/sn-monitor.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h +index 2f639df..cea4e12 100644 +--- a/libsn/sn-monitor.h ++++ b/libsn/sn-monitor.h +@@ -28,6 +28,7 @@ + #define __SN_MONITOR_H__ + + #include <libsn/sn-common.h> ++#include <sys/select.h> + + SN_BEGIN_DECLS + +-- +2.26.2 + diff --git a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb index a26ab44fa7..aa18881a12 100644 --- a/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb +++ b/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb @@ -1,16 +1,18 @@ SUMMARY = "Enables monitoring and display of application startup" +DESCRIPTION = "Contains a reference implementation of the startup notification protocol. \ +The reference implementation is mostly under an X Window System style license, and has \ +no special dependencies. " HOMEPAGE = "http://www.freedesktop.org/wiki/Software/startup-notification/" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=Specifications" +BUGTRACKER = "https://gitlab.freedesktop.org/xdg/startup-notification/-/issues" # most files are under MIT, but libsn/sn-util.c is under LGPL, the # effective license is LGPL -LICENSE = "LGPLv2+" +LICENSE = "LGPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=a2ae2cd47d6d2f238410f5364dfbc0f2 \ file://libsn/sn-util.c;endline=18;md5=18a14dc1825d38e741d772311fea9ee1 \ file://libsn/sn-common.h;endline=23;md5=6d05bc0ebdcf5513a6e77cb26e8cd7e2 \ file://test/test-boilerplate.h;endline=23;md5=923e706b2a70586176eead261cc5bb98" -PR = "r2" SECTION = "libs" @@ -23,6 +25,7 @@ REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = "http://www.freedesktop.org/software/startup-notification/releases/${BPN}-${PV}.tar.gz \ file://obsolete_automake_macros.patch \ + file://time_t.patch \ " SRC_URI[md5sum] = "2cd77326d4dcaed9a5a23a1232fb38e9" diff --git a/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb b/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb index f5df9efa3b..584a19a42a 100644 --- a/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb +++ b/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb @@ -2,7 +2,7 @@ SUMMARY = "Liberation(tm) Fonts" DESCRIPTION = "The Liberation(tm) Fonts is a font family originally \ created by Ascender(c) which aims at metric compatibility with \ Arial, Times New Roman, Courier New." -HOMEPAGE = "https://releases.pagure.org/liberation-fonts/" +HOMEPAGE = "https://github.com/liberationfonts/liberation-fonts" BUGTRACKER = "https://bugzilla.redhat.com/" SECTION = "x11/fonts" @@ -10,17 +10,14 @@ LICENSE = "OFL-1.1" LIC_FILES_CHKSUM = "file://LICENSE;md5=f96db970a9a46c5369142b99f530366b" PE = "1" -inherit allarch fontcache - -FONT_PACKAGES = "${PN}" - -SRC_URI = "https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-${PV}.tar.gz \ +SRC_URI = "https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-${PV}.tar.gz \ file://30-liberation-aliases.conf" +SRC_URI[sha256sum] = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0" +GITHUB_BASE_URI = "https://github.com/liberationfonts/liberation-fonts/releases" S = "${WORKDIR}/liberation-fonts-ttf-${PV}" -SRC_URI[md5sum] = "5c781723a0d9ed6188960defba8e91cf" -SRC_URI[sha256sum] = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504" +inherit allarch fontcache github-releases do_install () { install -d ${D}${datadir}/fonts/ttf/ @@ -29,13 +26,13 @@ do_install () { done install -d ${D}${sysconfdir}/fonts/conf.d/ - install -m 0644 ${WORKDIR}/30-liberation-aliases.conf ${D}${sysconfdir}/fonts/conf.d/ + install -m 0644 ${UNPACKDIR}/30-liberation-aliases.conf ${D}${sysconfdir}/fonts/conf.d/ install -d ${D}${prefix}/share/doc/${BPN}/ install -m 0644 LICENSE ${D}${datadir}/doc/${BPN}/ } PACKAGES = "${PN}" -FILES_${PN} += "${sysconfdir} ${datadir}" +FILES:${PN} += "${sysconfdir} ${datadir}" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb index 70b32cf8f1..0fc075a468 100644 --- a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb +++ b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb @@ -1,4 +1,5 @@ SUMMARY = "The Bitstream Vera fonts - TTF Edition" +HOMEPAGE = "https://www.gnome.org/fonts/" DESCRIPTION = "The Bitstream Vera fonts include four monospace and sans \ faces (normal, oblique, bold, bold oblique) and two serif faces (normal \ and bold). In addition Fontconfig/Xft2 can artificially oblique the \ @@ -7,9 +8,8 @@ but is visibly different than normal and bold, and reasonably pleasing." SECTION = "x11/fonts" LICENSE = "BitstreamVera" LIC_FILES_CHKSUM = "file://COPYRIGHT.TXT;md5=27d7484b1e18d0ee4ce538644a3f04be" -PR = "r7" -inherit fontcache +inherit allarch fontcache FONT_PACKAGES = "${PN}" @@ -29,4 +29,4 @@ do_install () { done } -FILES_${PN} = "${datadir}/fonts" +FILES:${PN} = "${datadir}/fonts" diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch deleted file mode 100644 index a0ac3aefdd..0000000000 --- a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3d30df8d8ccb919733b5339b2a82474305b83998 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 6 Aug 2019 01:19:48 +0000 -Subject: [PATCH] gallium: Expand libc check to be platform OS check - -endianness on musl based systems can also be detected in same way as -glibc, therefore check for __linux__ define instead of __GLIBC__ - -Fixes build on musl/mips - -| ../../../../git/src/gallium/include/pipe/p_config.h:171:2: error: #error Unknown Endianness -| #error Unknown Endianness -| ^~~~~ - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/gallium/include/pipe/p_config.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h -index d603681..71cdf49 100644 ---- a/src/gallium/include/pipe/p_config.h -+++ b/src/gallium/include/pipe/p_config.h -@@ -130,7 +130,7 @@ - * Endian detection. - */ - --#ifdef __GLIBC__ -+#ifdef __linux__ - #include <endian.h> - - #if __BYTE_ORDER == __LITTLE_ENDIAN --- -2.17.1 - diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch new file mode 100644 index 0000000000..3e12495970 --- /dev/null +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch @@ -0,0 +1,28 @@ +From dec8cca59124d7f8796b54902482ceb295a71b51 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Mon, 6 Jan 2020 12:44:42 +0100 +Subject: [PATCH] meson.build: use 'python3' directly for python + +This avoids a dependency on target python (due to meson probing +its configuration). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 9f91ff2f..2391f89d 100644 +--- a/meson.build ++++ b/meson.build +@@ -74,7 +74,7 @@ flags = [ + + add_project_arguments(cc.get_supported_arguments(flags), language : 'c') + +-prog_python = import('python').find_installation('python3') ++prog_python = 'python3' + + not_found = dependency('', required: false) + libdrm_dep = dependency('libdrm', version : '>=2.4.50', required: get_option('drm').enabled() or get_option('venus')) diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb deleted file mode 100644 index 4420d84ae5..0000000000 --- a/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "VirGL virtual OpenGL renderer" -DESCRIPTION = "Virgil is a research project to investigate the possibility of \ -creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ -the guest operating system to use the capabilities of the host GPU to \ -accelerate 3D rendering." -HOMEPAGE = "https://virgil3d.github.io/" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" - -DEPENDS = "libdrm mesa libepoxy" -SRCREV = "48cc96c9aebb9d0164830a157efc8916f08f00c0" -SRC_URI = "git://anongit.freedesktop.org/virglrenderer \ - file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \ - " - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig features_check - -BBCLASSEXTEND = "native nativesdk" - -REQUIRED_DISTRO_FEATURES = "opengl" -REQUIRED_DISTRO_FEATURES_class-native = "" -REQUIRED_DISTRO_FEATURES_class-nativesdk = "" diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.1.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.1.bb new file mode 100644 index 0000000000..0501b0c59c --- /dev/null +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.1.bb @@ -0,0 +1,33 @@ +SUMMARY = "VirGL virtual OpenGL renderer" +DESCRIPTION = "Virgil is a research project to investigate the possibility of \ +creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ +the guest operating system to use the capabilities of the host GPU to \ +accelerate 3D rendering." +HOMEPAGE = "https://virgil3d.github.io/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" + +DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm" +SRCREV = "690680e5f0f952e22424fca1538c1b24457a0868" +SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;protocol=https \ + file://0001-meson.build-use-python3-directly-for-python.patch \ + " + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}" + +PACKAGECONFIG[venus] = "-Dvenus=true,-Dvenus=false,vulkan-loader vulkan-headers" +PACKAGECONFIG[va] = "-Dvideo=true,-Dvideo=false,libva" +PACKAGECONFIG[render-server] = "-Drender-server=true,-Drender-server=false" +PACKAGECONFIG[drm-msm-experimental] = "-Ddrm-msm-experimental=true,-Ddrm-msm-experimental=false" +PACKAGECONFIG[minigbm_allocation] = "-Dminigbm_allocation=true,-Dminigbm_allocation=false" +PACKAGECONFIG[venus-validate] = "-Dvenus-validate=true,-Dvenus-validate=false" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,libcheck" + +BBCLASSEXTEND = "native nativesdk" + +REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch b/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch deleted file mode 100644 index 87a1658710..0000000000 --- a/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch +++ /dev/null @@ -1,1664 +0,0 @@ -From 7fc220b2350d78942fb3935cad0b1564418ebe8f Mon Sep 17 00:00:00 2001 -From: Kim Kulling <kim.kulling@googlemail.com> -Date: Tue, 19 Nov 2019 20:30:40 +0100 -Subject: [PATCH] closes https://github.com/assimp/assimp/issues/2733: update - of zlip to fix gcc build for v9.2.0 32 bit - -Upstream-Status: Backport [https://github.com/assimp/assimp/commit/f78446b14aff46db2ef27d062a275b6a01fd68b1] -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - contrib/zip/.gitignore | 2 + - contrib/zip/CMakeLists.txt | 83 +++++- - contrib/zip/README.md | 12 +- - contrib/zip/appveyor.yml | 2 +- - contrib/zip/src/miniz.h | 457 ++++++++++++++++++++++++++++---- - contrib/zip/src/zip.c | 62 +++-- - contrib/zip/src/zip.h | 457 ++++++++++++++++---------------- - contrib/zip/test/CMakeLists.txt | 27 +- - contrib/zip/test/test.c | 38 ++- - contrib/zip/test/test_miniz.c | 25 +- - 10 files changed, 821 insertions(+), 344 deletions(-) - -diff --git a/contrib/zip/.gitignore b/contrib/zip/.gitignore -index a7904a1e..49b2cb2f 100644 ---- a/contrib/zip/.gitignore -+++ b/contrib/zip/.gitignore -@@ -1,6 +1,7 @@ - /build/ - /test/build/ - /xcodeproj/ -+.vscode/ - - # Object files - *.o -@@ -54,3 +55,4 @@ zip.dir/ - test/test.exe.vcxproj.filters - test/test.exe.vcxproj - test/test.exe.dir/ -+ -diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt -index b46dbb1d..77916d2e 100644 ---- a/contrib/zip/CMakeLists.txt -+++ b/contrib/zip/CMakeLists.txt -@@ -1,10 +1,14 @@ --cmake_minimum_required(VERSION 2.8) --project(zip) --enable_language(C) -+cmake_minimum_required(VERSION 3.0) -+ -+project(zip -+ LANGUAGES C -+ VERSION "0.1.15") - set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) - -+option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) -+ - if (MSVC) -- # Use secure functions by defaualt and suppress warnings about "deprecated" functions -+ # Use secure functions by default and suppress warnings about "deprecated" functions - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1") -@@ -12,28 +16,80 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR - "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic") -+ if(ENABLE_COVERAGE) -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") -+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") -+ endif() - endif (MSVC) - - # zip - set(SRC src/miniz.h src/zip.h src/zip.c) - add_library(${PROJECT_NAME} ${SRC}) --target_include_directories(${PROJECT_NAME} INTERFACE src) -+target_include_directories(${PROJECT_NAME} PUBLIC -+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> -+ $<INSTALL_INTERFACE:include> -+) - - # test - if (NOT CMAKE_DISABLE_TESTING) - enable_testing() - add_subdirectory(test) - find_package(Sanitizers) -- add_sanitizers(${PROJECT_NAME} test.exe) -- add_sanitizers(${PROJECT_NAME} test_miniz.exe) -+ add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out}) - endif() - -+#### -+# Installation (https://github.com/forexample/package-example) { -+ -+set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") -+set(INCLUDE_INSTALL_DIR "include") -+ -+set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") -+ -+# Configuration -+set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") -+set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") -+set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -+set(NAMESPACE "${PROJECT_NAME}::") -+ -+# Include module with fuction 'write_basic_package_version_file' -+include(CMakePackageConfigHelpers) -+ -+# Note: PROJECT_VERSION is used as a VERSION -+write_basic_package_version_file( -+ "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion -+) -+ -+# Use variables: -+# * TARGETS_EXPORT_NAME -+# * PROJECT_NAME -+configure_package_config_file( -+ "cmake/Config.cmake.in" -+ "${PROJECT_CONFIG}" -+ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" -+) -+ -+install( -+ FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" -+ DESTINATION "${CONFIG_INSTALL_DIR}" -+) -+ -+install( -+ EXPORT "${TARGETS_EXPORT_NAME}" -+ NAMESPACE "${NAMESPACE}" -+ DESTINATION "${CONFIG_INSTALL_DIR}" -+) -+ -+# } -+ - install(TARGETS ${PROJECT_NAME} -+ EXPORT ${TARGETS_EXPORT_NAME} - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib -- COMPONENT library) --install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION include) -+ INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR} -+) -+install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip) - - # uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake) - if(NOT TARGET uninstall) -@@ -45,3 +101,12 @@ if(NOT TARGET uninstall) - add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake) - endif() -+ -+find_package(Doxygen) -+if(DOXYGEN_FOUND) -+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) -+ add_custom_target(doc -+ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile -+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -+ COMMENT "Generating API documentation with Doxygen" VERBATIM) -+endif() -diff --git a/contrib/zip/README.md b/contrib/zip/README.md -index d5fb8cd2..14eb9a34 100644 ---- a/contrib/zip/README.md -+++ b/contrib/zip/README.md -@@ -71,7 +71,7 @@ int arg = 2; - zip_extract("foo.zip", "/tmp", on_extract_entry, &arg); - ``` - --* Extract a zip entry into memory. -+* Extract a zip entry into memory. - ```c - void *buf = NULL; - size_t bufsize; -@@ -89,7 +89,7 @@ zip_close(zip); - free(buf); - ``` - --* Extract a zip entry into memory (no internal allocation). -+* Extract a zip entry into memory (no internal allocation). - ```c - unsigned char *buf; - size_t bufsize; -@@ -110,7 +110,7 @@ zip_close(zip); - free(buf); - ``` - --* Extract a zip entry into memory using callback. -+* Extract a zip entry into memory using callback. - ```c - struct buffer_t { - char *data; -@@ -144,7 +144,7 @@ free(buf.data); - ``` - - --* Extract a zip entry into a file. -+* Extract a zip entry into a file. - ```c - struct zip_t *zip = zip_open("foo.zip", 0, 'r'); - { -@@ -157,7 +157,7 @@ struct zip_t *zip = zip_open("foo.zip", 0, 'r'); - zip_close(zip); - ``` - --* List of all zip entries -+* List of all zip entries - ```c - struct zip_t *zip = zip_open("foo.zip", 0, 'r'); - int i, n = zip_total_entries(zip); -@@ -174,7 +174,7 @@ for (i = 0; i < n; ++i) { - zip_close(zip); - ``` - --## Bindings -+# Bindings - Compile zip library as a dynamic library. - ```shell - $ mkdir build -diff --git a/contrib/zip/appveyor.yml b/contrib/zip/appveyor.yml -index 0be6373c..ea17f5de 100644 ---- a/contrib/zip/appveyor.yml -+++ b/contrib/zip/appveyor.yml -@@ -1,4 +1,4 @@ --version: zip-0.1.9.{build} -+version: zip-0.1.15.{build} - build_script: - - cmd: >- - cd c:\projects\zip -diff --git a/contrib/zip/src/miniz.h b/contrib/zip/src/miniz.h -index 2c27a94d..c4fcfb83 100644 ---- a/contrib/zip/src/miniz.h -+++ b/contrib/zip/src/miniz.h -@@ -221,6 +221,7 @@ - #ifndef MINIZ_HEADER_INCLUDED - #define MINIZ_HEADER_INCLUDED - -+#include <stdint.h> - #include <stdlib.h> - - // Defines to completely disable specific portions of miniz.c: -@@ -284,7 +285,8 @@ - /* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */ - #if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES) - #if MINIZ_X86_OR_X64_CPU --/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */ -+/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient -+ * integer loads and stores from unaligned addresses. */ - #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 - #define MINIZ_UNALIGNED_USE_MEMCPY - #else -@@ -354,6 +356,44 @@ enum { - MZ_FIXED = 4 - }; - -+/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or -+ * modify this enum. */ -+typedef enum { -+ MZ_ZIP_NO_ERROR = 0, -+ MZ_ZIP_UNDEFINED_ERROR, -+ MZ_ZIP_TOO_MANY_FILES, -+ MZ_ZIP_FILE_TOO_LARGE, -+ MZ_ZIP_UNSUPPORTED_METHOD, -+ MZ_ZIP_UNSUPPORTED_ENCRYPTION, -+ MZ_ZIP_UNSUPPORTED_FEATURE, -+ MZ_ZIP_FAILED_FINDING_CENTRAL_DIR, -+ MZ_ZIP_NOT_AN_ARCHIVE, -+ MZ_ZIP_INVALID_HEADER_OR_CORRUPTED, -+ MZ_ZIP_UNSUPPORTED_MULTIDISK, -+ MZ_ZIP_DECOMPRESSION_FAILED, -+ MZ_ZIP_COMPRESSION_FAILED, -+ MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE, -+ MZ_ZIP_CRC_CHECK_FAILED, -+ MZ_ZIP_UNSUPPORTED_CDIR_SIZE, -+ MZ_ZIP_ALLOC_FAILED, -+ MZ_ZIP_FILE_OPEN_FAILED, -+ MZ_ZIP_FILE_CREATE_FAILED, -+ MZ_ZIP_FILE_WRITE_FAILED, -+ MZ_ZIP_FILE_READ_FAILED, -+ MZ_ZIP_FILE_CLOSE_FAILED, -+ MZ_ZIP_FILE_SEEK_FAILED, -+ MZ_ZIP_FILE_STAT_FAILED, -+ MZ_ZIP_INVALID_PARAMETER, -+ MZ_ZIP_INVALID_FILENAME, -+ MZ_ZIP_BUF_TOO_SMALL, -+ MZ_ZIP_INTERNAL_ERROR, -+ MZ_ZIP_FILE_NOT_FOUND, -+ MZ_ZIP_ARCHIVE_TOO_LARGE, -+ MZ_ZIP_VALIDATION_FAILED, -+ MZ_ZIP_WRITE_CALLBACK_FAILED, -+ MZ_ZIP_TOTAL_ERRORS -+} mz_zip_error; -+ - // Method - #define MZ_DEFLATED 8 - -@@ -696,6 +736,7 @@ typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, - void *pBuf, size_t n); - typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, - const void *pBuf, size_t n); -+typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque); - - struct mz_zip_internal_state_tag; - typedef struct mz_zip_internal_state_tag mz_zip_internal_state; -@@ -707,13 +748,27 @@ typedef enum { - MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 - } mz_zip_mode; - --typedef struct mz_zip_archive_tag { -+typedef enum { -+ MZ_ZIP_TYPE_INVALID = 0, -+ MZ_ZIP_TYPE_USER, -+ MZ_ZIP_TYPE_MEMORY, -+ MZ_ZIP_TYPE_HEAP, -+ MZ_ZIP_TYPE_FILE, -+ MZ_ZIP_TYPE_CFILE, -+ MZ_ZIP_TOTAL_TYPES -+} mz_zip_type; -+ -+typedef struct { - mz_uint64 m_archive_size; - mz_uint64 m_central_directory_file_ofs; -- mz_uint m_total_files; -+ -+ /* We only support up to UINT32_MAX files in zip64 mode. */ -+ mz_uint32 m_total_files; - mz_zip_mode m_zip_mode; -+ mz_zip_type m_zip_type; -+ mz_zip_error m_last_error; - -- mz_uint m_file_offset_alignment; -+ mz_uint64 m_file_offset_alignment; - - mz_alloc_func m_pAlloc; - mz_free_func m_pFree; -@@ -722,6 +777,7 @@ typedef struct mz_zip_archive_tag { - - mz_file_read_func m_pRead; - mz_file_write_func m_pWrite; -+ mz_file_needs_keepalive m_pNeeds_keepalive; - void *m_pIO_opaque; - - mz_zip_internal_state *m_pState; -@@ -1263,6 +1319,9 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, - int strategy); - #endif // #ifndef MINIZ_NO_ZLIB_APIS - -+#define MZ_UINT16_MAX (0xFFFFU) -+#define MZ_UINT32_MAX (0xFFFFFFFFU) -+ - #ifdef __cplusplus - } - #endif -@@ -1311,6 +1370,11 @@ typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1]; - ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) - #endif - -+#define MZ_READ_LE64(p) \ -+ (((mz_uint64)MZ_READ_LE32(p)) | \ -+ (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) \ -+ << 32U)) -+ - #ifdef _MSC_VER - #define MZ_FORCEINLINE __forceinline - #elif defined(__GNUC__) -@@ -4160,6 +4224,17 @@ enum { - MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, - MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, -+ -+ /* ZIP64 archive identifier and record sizes */ -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50, -+ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50, -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56, -+ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20, -+ MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001, -+ MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50, -+ MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24, -+ MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16, -+ - // Central directory header record offsets - MZ_ZIP_CDH_SIG_OFS = 0, - MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, -@@ -4199,6 +4274,31 @@ enum { - MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, - MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, - MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, -+ -+ /* ZIP64 End of central directory locator offsets */ -+ MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */ -+ MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */ -+ MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */ -+ MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */ -+ -+ /* ZIP64 End of central directory header offsets */ -+ MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */ -+ MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */ -+ MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */ -+ MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */ -+ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */ -+ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */ -+ MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */ -+ MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */ -+ MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */ -+ MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */ -+ MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0, -+ MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10, -+ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1, -+ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32, -+ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64, -+ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192, -+ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11 - }; - - typedef struct { -@@ -4211,7 +4311,24 @@ struct mz_zip_internal_state_tag { - mz_zip_array m_central_dir; - mz_zip_array m_central_dir_offsets; - mz_zip_array m_sorted_central_dir_offsets; -+ -+ /* The flags passed in when the archive is initially opened. */ -+ uint32_t m_init_flags; -+ -+ /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc. -+ */ -+ mz_bool m_zip64; -+ -+ /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64 -+ * will also be slammed to true too, even if we didn't find a zip64 end of -+ * central dir header, etc.) */ -+ mz_bool m_zip64_has_extended_info_fields; -+ -+ /* These fields are used by the file, FILE, memory, and memory/heap read/write -+ * helpers. */ - MZ_FILE *m_pFile; -+ mz_uint64 m_file_archive_start_ofs; -+ - void *m_pMem; - size_t m_mem_size; - size_t m_mem_capacity; -@@ -4363,6 +4480,13 @@ static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time, - #endif /* #ifndef MINIZ_NO_STDIO */ - #endif /* #ifndef MINIZ_NO_TIME */ - -+static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, -+ mz_zip_error err_num) { -+ if (pZip) -+ pZip->m_last_error = err_num; -+ return MZ_FALSE; -+} -+ - static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, - mz_uint32 flags) { - (void)flags; -@@ -4480,127 +4604,346 @@ mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) { - } - } - --static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, -- mz_uint32 flags) { -- mz_uint cdir_size, num_this_disk, cdir_disk_index; -- mz_uint64 cdir_ofs; -+static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, -+ mz_uint32 record_sig, -+ mz_uint32 record_size, -+ mz_int64 *pOfs) { - mz_int64 cur_file_ofs; -- const mz_uint8 *p; - mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; - mz_uint8 *pBuf = (mz_uint8 *)buf_u32; -- mz_bool sort_central_dir = -- ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); -- // Basic sanity checks - reject files which are too small, and check the first -- // 4 bytes of the file to make sure a local header is there. -- if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) -+ -+ /* Basic sanity checks - reject files which are too small */ -+ if (pZip->m_archive_size < record_size) - return MZ_FALSE; -- // Find the end of central directory record by scanning the file from the end -- // towards the beginning. -+ -+ /* Find the record by scanning the file from the end towards the beginning. */ - cur_file_ofs = - MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); - for (;;) { - int i, - n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); -+ - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) - return MZ_FALSE; -- for (i = n - 4; i >= 0; --i) -- if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) -- break; -+ -+ for (i = n - 4; i >= 0; --i) { -+ mz_uint s = MZ_READ_LE32(pBuf + i); -+ if (s == record_sig) { -+ if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size) -+ break; -+ } -+ } -+ - if (i >= 0) { - cur_file_ofs += i; - break; - } -+ -+ /* Give up if we've searched the entire file, or we've gone back "too far" -+ * (~64kb) */ - if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= -- (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) -+ (MZ_UINT16_MAX + record_size))) - return MZ_FALSE; -+ - cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); - } -- // Read and verify the end of central directory record. -+ -+ *pOfs = cur_file_ofs; -+ return MZ_TRUE; -+} -+ -+static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, -+ mz_uint flags) { -+ mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0, -+ cdir_disk_index = 0; -+ mz_uint64 cdir_ofs = 0; -+ mz_int64 cur_file_ofs = 0; -+ const mz_uint8 *p; -+ -+ mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; -+ mz_uint8 *pBuf = (mz_uint8 *)buf_u32; -+ mz_bool sort_central_dir = -+ ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); -+ mz_uint32 zip64_end_of_central_dir_locator_u32 -+ [(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) / -+ sizeof(mz_uint32)]; -+ mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32; -+ -+ mz_uint32 zip64_end_of_central_dir_header_u32 -+ [(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / -+ sizeof(mz_uint32)]; -+ mz_uint8 *pZip64_end_of_central_dir = -+ (mz_uint8 *)zip64_end_of_central_dir_header_u32; -+ -+ mz_uint64 zip64_end_of_central_dir_ofs = 0; -+ -+ /* Basic sanity checks - reject files which are too small, and check the first -+ * 4 bytes of the file to make sure a local header is there. */ -+ if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) -+ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); -+ -+ if (!mz_zip_reader_locate_header_sig( -+ pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG, -+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs)) -+ return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR); -+ -+ /* Read and verify the end of central directory record. */ - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) -- return MZ_FALSE; -- if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != -- MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) || -- ((pZip->m_total_files = -- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) != -- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS))) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); -+ -+ if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != -+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) -+ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); -+ -+ if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) { -+ if (pZip->m_pRead(pZip->m_pIO_opaque, -+ cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, -+ pZip64_locator, -+ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) == -+ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) { -+ if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) == -+ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) { -+ zip64_end_of_central_dir_ofs = MZ_READ_LE64( -+ pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS); -+ if (zip64_end_of_central_dir_ofs > -+ (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) -+ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); -+ -+ if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs, -+ pZip64_end_of_central_dir, -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) == -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) { -+ if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) == -+ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) { -+ pZip->m_pState->m_zip64 = MZ_TRUE; -+ } -+ } -+ } -+ } -+ } - -+ pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS); -+ cdir_entries_on_this_disk = -+ MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); - num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); - cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); -+ cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS); -+ cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); -+ -+ if (pZip->m_pState->m_zip64) { -+ mz_uint32 zip64_total_num_of_disks = -+ MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS); -+ mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64( -+ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS); -+ mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64( -+ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); -+ mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64( -+ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS); -+ mz_uint64 zip64_size_of_central_directory = -+ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS); -+ -+ if (zip64_size_of_end_of_central_dir_record < -+ (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12)) -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ -+ if (zip64_total_num_of_disks != 1U) -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); -+ -+ /* Check for miniz's practical limits */ -+ if (zip64_cdir_total_entries > MZ_UINT32_MAX) -+ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); -+ -+ pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries; -+ -+ if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX) -+ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); -+ -+ cdir_entries_on_this_disk = -+ (mz_uint32)zip64_cdir_total_entries_on_this_disk; -+ -+ /* Check for miniz's current practical limits (sorry, this should be enough -+ * for millions of files) */ -+ if (zip64_size_of_central_directory > MZ_UINT32_MAX) -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); -+ -+ cdir_size = (mz_uint32)zip64_size_of_central_directory; -+ -+ num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir + -+ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS); -+ -+ cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir + -+ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS); -+ -+ cdir_ofs = -+ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS); -+ } -+ -+ if (pZip->m_total_files != cdir_entries_on_this_disk) -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); -+ - if (((num_this_disk | cdir_disk_index) != 0) && - ((num_this_disk != 1) || (cdir_disk_index != 1))) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - -- if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) < -- pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) -- return MZ_FALSE; -+ if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - -- cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); - if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - pZip->m_central_directory_file_ofs = cdir_ofs; - - if (pZip->m_total_files) { - mz_uint i, n; -- -- // Read the entire central directory into a heap block, and allocate another -- // heap block to hold the unsorted central dir file record offsets, and -- // another to hold the sorted indices. -+ /* Read the entire central directory into a heap block, and allocate another -+ * heap block to hold the unsorted central dir file record offsets, and -+ * possibly another to hold the sorted indices. */ - if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, - MZ_FALSE)) || - (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, - pZip->m_total_files, MZ_FALSE))) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if (sort_central_dir) { - if (!mz_zip_array_resize(pZip, - &pZip->m_pState->m_sorted_central_dir_offsets, - pZip->m_total_files, MZ_FALSE)) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, - pZip->m_pState->m_central_dir.m_p, - cdir_size) != cdir_size) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - -- // Now create an index into the central directory file records, do some -- // basic sanity checking on each record, and check for zip64 entries (which -- // are not yet supported). -+ /* Now create an index into the central directory file records, do some -+ * basic sanity checking on each record */ - p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; - for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) { -- mz_uint total_header_size, comp_size, decomp_size, disk_index; -+ mz_uint total_header_size, disk_index, bit_flags, filename_size, -+ ext_data_size; -+ mz_uint64 comp_size, decomp_size, local_header_ofs; -+ - if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || - (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, - i) = - (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); -+ - if (sort_central_dir) - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, - mz_uint32, i) = i; -+ - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); -- if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && -- (decomp_size != comp_size)) || -- (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) || -- (comp_size == 0xFFFFFFFF)) -- return MZ_FALSE; -+ local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); -+ filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); -+ ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); -+ -+ if ((!pZip->m_pState->m_zip64_has_extended_info_fields) && -+ (ext_data_size) && -+ (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) == -+ MZ_UINT32_MAX)) { -+ /* Attempt to find zip64 extended information field in the entry's extra -+ * data */ -+ mz_uint32 extra_size_remaining = ext_data_size; -+ -+ if (extra_size_remaining) { -+ const mz_uint8 *pExtra_data; -+ void *buf = NULL; -+ -+ if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size > -+ n) { -+ buf = MZ_MALLOC(ext_data_size); -+ if (buf == NULL) -+ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); -+ -+ if (pZip->m_pRead(pZip->m_pIO_opaque, -+ cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + -+ filename_size, -+ buf, ext_data_size) != ext_data_size) { -+ MZ_FREE(buf); -+ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); -+ } -+ -+ pExtra_data = (mz_uint8 *)buf; -+ } else { -+ pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size; -+ } -+ -+ do { -+ mz_uint32 field_id; -+ mz_uint32 field_data_size; -+ -+ if (extra_size_remaining < (sizeof(mz_uint16) * 2)) { -+ MZ_FREE(buf); -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ } -+ -+ field_id = MZ_READ_LE16(pExtra_data); -+ field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); -+ -+ if ((field_data_size + sizeof(mz_uint16) * 2) > -+ extra_size_remaining) { -+ MZ_FREE(buf); -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ } -+ -+ if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) { -+ /* Ok, the archive didn't have any zip64 headers but it uses a -+ * zip64 extended information field so mark it as zip64 anyway -+ * (this can occur with infozip's zip util when it reads -+ * compresses files from stdin). */ -+ pZip->m_pState->m_zip64 = MZ_TRUE; -+ pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE; -+ break; -+ } -+ -+ pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; -+ extra_size_remaining = -+ extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; -+ } while (extra_size_remaining); -+ -+ MZ_FREE(buf); -+ } -+ } -+ -+ /* I've seen archives that aren't marked as zip64 that uses zip64 ext -+ * data, argh */ -+ if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) { -+ if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && -+ (decomp_size != comp_size)) || -+ (decomp_size && !comp_size)) -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ } -+ - disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); -- if ((disk_index != num_this_disk) && (disk_index != 1)) -- return MZ_FALSE; -- if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + -- MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) -- return MZ_FALSE; -+ if ((disk_index == MZ_UINT16_MAX) || -+ ((disk_index != num_this_disk) && (disk_index != 1))) -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); -+ -+ if (comp_size != MZ_UINT32_MAX) { -+ if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + -+ MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ } -+ -+ bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); -+ if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED) -+ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); -+ - if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + - MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + - MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + - MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > - n) -- return MZ_FALSE; -+ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); -+ - n -= total_header_size; - p += total_header_size; - } -diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c -index ff3a8fe1..1abcfd8f 100644 ---- a/contrib/zip/src/zip.c -+++ b/contrib/zip/src/zip.c -@@ -24,7 +24,6 @@ - ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) && \ - (P)[1] == ':') - #define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE(P) ? 2 : 0) --#define ISSLASH(C) ((C) == '/' || (C) == '\\') - - #else - -@@ -48,7 +47,7 @@ int symlink(const char *target, const char *linkpath); // needed on Linux - #endif - - #ifndef ISSLASH --#define ISSLASH(C) ((C) == '/') -+#define ISSLASH(C) ((C) == '/' || (C) == '\\') - #endif - - #define CLEANUP(ptr) \ -@@ -78,26 +77,34 @@ static const char *base_name(const char *name) { - return base; - } - --static int mkpath(const char *path) { -- char const *p; -+static int mkpath(char *path) { -+ char *p; - char npath[MAX_PATH + 1]; - int len = 0; - int has_device = HAS_DEVICE(path); - - memset(npath, 0, MAX_PATH + 1); -- --#ifdef _WIN32 -- // only on windows fix the path -- npath[0] = path[0]; -- npath[1] = path[1]; -- len = 2; --#endif // _WIN32 -- -+ if (has_device) { -+ // only on windows -+ npath[0] = path[0]; -+ npath[1] = path[1]; -+ len = 2; -+ } - for (p = path + len; *p && len < MAX_PATH; p++) { - if (ISSLASH(*p) && ((!has_device && len > 0) || (has_device && len > 2))) { -- if (MKDIR(npath) == -1) -- if (errno != EEXIST) -+#if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \ -+ defined(__MINGW32__) -+#else -+ if ('\\' == *p) { -+ *p = '/'; -+ } -+#endif -+ -+ if (MKDIR(npath) == -1) { -+ if (errno != EEXIST) { - return -1; -+ } -+ } - } - npath[len++] = *p; - } -@@ -279,7 +286,14 @@ int zip_entry_open(struct zip_t *zip, const char *entryname) { - zip->entry.header_offset = zip->archive.m_archive_size; - memset(zip->entry.header, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE * sizeof(mz_uint8)); - zip->entry.method = 0; -+ -+ // UNIX or APPLE -+#if MZ_PLATFORM == 3 || MZ_PLATFORM == 19 -+ // regular file with rw-r--r-- persmissions -+ zip->entry.external_attr = (mz_uint32)(0100644) << 16; -+#else - zip->entry.external_attr = 0; -+#endif - - num_alignment_padding_bytes = - mz_zip_writer_compute_padding_needed_for_file_alignment(pzip); -@@ -660,7 +674,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) { - } - - if (!mz_zip_reader_extract_to_mem_no_alloc(pzip, (mz_uint)zip->entry.index, -- buf, bufsize, 0, NULL, 0)) { -+ buf, bufsize, 0, NULL, 0)) { - return -1; - } - -@@ -670,10 +684,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) { - int zip_entry_fread(struct zip_t *zip, const char *filename) { - mz_zip_archive *pzip = NULL; - mz_uint idx; --#if defined(_MSC_VER) --#else - mz_uint32 xattr = 0; --#endif - mz_zip_archive_file_stat info; - - if (!zip) { -@@ -875,12 +886,19 @@ int zip_extract(const char *zipname, const char *dir, - goto out; - } - -- if ((((info.m_version_made_by >> 8) == 3) || ((info.m_version_made_by >> 8) == 19)) // if zip is produced on Unix or macOS (3 and 19 from section 4.4.2.2 of zip standard) -- && info.m_external_attr & (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 is directory) -+ if ((((info.m_version_made_by >> 8) == 3) || -+ ((info.m_version_made_by >> 8) == -+ 19)) // if zip is produced on Unix or macOS (3 and 19 from -+ // section 4.4.2.2 of zip standard) -+ && info.m_external_attr & -+ (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 -+ // is directory) - #if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \ - defined(__MINGW32__) --#else -- if (info.m_uncomp_size > MAX_PATH || !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, MAX_PATH, 0, NULL, 0)) { -+#else -+ if (info.m_uncomp_size > MAX_PATH || -+ !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, -+ MAX_PATH, 0, NULL, 0)) { - goto out; - } - symlink_to[info.m_uncomp_size] = '\0'; -diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h -index 5f39df50..a48d64d6 100644 ---- a/contrib/zip/src/zip.h -+++ b/contrib/zip/src/zip.h -@@ -20,241 +20,240 @@ extern "C" { - #endif - - #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \ -- !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined) --#define _SSIZE_T -+ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \ -+ !defined(_SSIZE_T) && !defined(_SSIZE_T_) -+ - // 64-bit Windows is the only mainstream platform - // where sizeof(long) != sizeof(void*) - #ifdef _WIN64 --typedef long long ssize_t; /* byte count or error */ -+typedef long long ssize_t; /* byte count or error */ - #else --typedef long ssize_t; /* byte count or error */ -+typedef long ssize_t; /* byte count or error */ - #endif -+ -+#define _SSIZE_T_DEFINED -+#define _SSIZE_T_DEFINED_ -+#define __DEFINED_ssize_t -+#define __ssize_t_defined -+#define _SSIZE_T -+#define _SSIZE_T_ -+ - #endif - - #ifndef MAX_PATH - #define MAX_PATH 32767 /* # chars in a path name including NULL */ - #endif - -+/** -+ * @mainpage -+ * -+ * Documenation for @ref zip. -+ */ -+ -+/** -+ * @addtogroup zip -+ * @{ -+ */ -+ -+/** -+ * Default zip compression level. -+ */ -+ - #define ZIP_DEFAULT_COMPRESSION_LEVEL 6 - --/* -- This data structure is used throughout the library to represent zip archive -- - forward declaration. --*/ -+/** -+ * @struct zip_t -+ * -+ * This data structure is used throughout the library to represent zip archive - -+ * forward declaration. -+ */ - struct zip_t; - --/* -- Opens zip archive with compression level using the given mode. -- -- Args: -- zipname: zip archive file name. -- level: compression level (0-9 are the standard zlib-style levels). -- mode: file access mode. -- 'r': opens a file for reading/extracting (the file must exists). -- 'w': creates an empty file for writing. -- 'a': appends to an existing archive. -- -- Returns: -- The zip archive handler or NULL on error --*/ -+/** -+ * Opens zip archive with compression level using the given mode. -+ * -+ * @param zipname zip archive file name. -+ * @param level compression level (0-9 are the standard zlib-style levels). -+ * @param mode file access mode. -+ * - 'r': opens a file for reading/extracting (the file must exists). -+ * - 'w': creates an empty file for writing. -+ * - 'a': appends to an existing archive. -+ * -+ * @return the zip archive handler or NULL on error -+ */ - extern struct zip_t *zip_open(const char *zipname, int level, char mode); - --/* -- Closes the zip archive, releases resources - always finalize. -- -- Args: -- zip: zip archive handler. --*/ -+/** -+ * Closes the zip archive, releases resources - always finalize. -+ * -+ * @param zip zip archive handler. -+ */ - extern void zip_close(struct zip_t *zip); - --/* -- Opens an entry by name in the zip archive. -- For zip archive opened in 'w' or 'a' mode the function will append -- a new entry. In readonly mode the function tries to locate the entry -- in global dictionary. -- -- Args: -- zip: zip archive handler. -- entryname: an entry name in local dictionary. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Opens an entry by name in the zip archive. -+ * -+ * For zip archive opened in 'w' or 'a' mode the function will append -+ * a new entry. In readonly mode the function tries to locate the entry -+ * in global dictionary. -+ * -+ * @param zip zip archive handler. -+ * @param entryname an entry name in local dictionary. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_open(struct zip_t *zip, const char *entryname); - --/* -- Opens a new entry by index in the zip archive. -- This function is only valid if zip archive was opened in 'r' (readonly) mode. -- -- Args: -- zip: zip archive handler. -- index: index in local dictionary. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Opens a new entry by index in the zip archive. -+ * -+ * This function is only valid if zip archive was opened in 'r' (readonly) mode. -+ * -+ * @param zip zip archive handler. -+ * @param index index in local dictionary. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_openbyindex(struct zip_t *zip, int index); - --/* -- Closes a zip entry, flushes buffer and releases resources. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Closes a zip entry, flushes buffer and releases resources. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_close(struct zip_t *zip); - --/* -- Returns a local name of the current zip entry. -- The main difference between user's entry name and local entry name -- is optional relative path. -- Following .ZIP File Format Specification - the path stored MUST not contain -- a drive or device letter, or a leading slash. -- All slashes MUST be forward slashes '/' as opposed to backwards slashes '\' -- for compatibility with Amiga and UNIX file systems etc. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The pointer to the current zip entry name, or NULL on error. --*/ -+/** -+ * Returns a local name of the current zip entry. -+ * -+ * The main difference between user's entry name and local entry name -+ * is optional relative path. -+ * Following .ZIP File Format Specification - the path stored MUST not contain -+ * a drive or device letter, or a leading slash. -+ * All slashes MUST be forward slashes '/' as opposed to backwards slashes '\' -+ * for compatibility with Amiga and UNIX file systems etc. -+ * -+ * @param zip: zip archive handler. -+ * -+ * @return the pointer to the current zip entry name, or NULL on error. -+ */ - extern const char *zip_entry_name(struct zip_t *zip); - --/* -- Returns an index of the current zip entry. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The index on success, negative number (< 0) on error. --*/ -+/** -+ * Returns an index of the current zip entry. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the index on success, negative number (< 0) on error. -+ */ - extern int zip_entry_index(struct zip_t *zip); - --/* -- Determines if the current zip entry is a directory entry. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The return code - 1 (true), 0 (false), negative number (< 0) on error. --*/ -+/** -+ * Determines if the current zip entry is a directory entry. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the return code - 1 (true), 0 (false), negative number (< 0) on -+ * error. -+ */ - extern int zip_entry_isdir(struct zip_t *zip); - --/* -- Returns an uncompressed size of the current zip entry. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The uncompressed size in bytes. --*/ -+/** -+ * Returns an uncompressed size of the current zip entry. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the uncompressed size in bytes. -+ */ - extern unsigned long long zip_entry_size(struct zip_t *zip); - --/* -- Returns CRC-32 checksum of the current zip entry. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The CRC-32 checksum. --*/ -+/** -+ * Returns CRC-32 checksum of the current zip entry. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the CRC-32 checksum. -+ */ - extern unsigned int zip_entry_crc32(struct zip_t *zip); - --/* -- Compresses an input buffer for the current zip entry. -- -- Args: -- zip: zip archive handler. -- buf: input buffer. -- bufsize: input buffer size (in bytes). -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Compresses an input buffer for the current zip entry. -+ * -+ * @param zip zip archive handler. -+ * @param buf input buffer. -+ * @param bufsize input buffer size (in bytes). -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize); - --/* -- Compresses a file for the current zip entry. -- -- Args: -- zip: zip archive handler. -- filename: input file. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Compresses a file for the current zip entry. -+ * -+ * @param zip zip archive handler. -+ * @param filename input file. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_fwrite(struct zip_t *zip, const char *filename); - --/* -- Extracts the current zip entry into output buffer. -- The function allocates sufficient memory for a output buffer. -- -- Args: -- zip: zip archive handler. -- buf: output buffer. -- bufsize: output buffer size (in bytes). -- -- Note: -- - remember to release memory allocated for a output buffer. -- - for large entries, please take a look at zip_entry_extract function. -- -- Returns: -- The return code - the number of bytes actually read on success. -- Otherwise a -1 on error. --*/ -+/** -+ * Extracts the current zip entry into output buffer. -+ * -+ * The function allocates sufficient memory for a output buffer. -+ * -+ * @param zip zip archive handler. -+ * @param buf output buffer. -+ * @param bufsize output buffer size (in bytes). -+ * -+ * @note remember to release memory allocated for a output buffer. -+ * for large entries, please take a look at zip_entry_extract function. -+ * -+ * @return the return code - the number of bytes actually read on success. -+ * Otherwise a -1 on error. -+ */ - extern ssize_t zip_entry_read(struct zip_t *zip, void **buf, size_t *bufsize); - --/* -- Extracts the current zip entry into a memory buffer using no memory -- allocation. -- -- Args: -- zip: zip archive handler. -- buf: preallocated output buffer. -- bufsize: output buffer size (in bytes). -- -- Note: -- - ensure supplied output buffer is large enough. -- - zip_entry_size function (returns uncompressed size for the current entry) -- can be handy to estimate how big buffer is needed. -- - for large entries, please take a look at zip_entry_extract function. -- -- Returns: -- The return code - the number of bytes actually read on success. -- Otherwise a -1 on error (e.g. bufsize is not large enough). --*/ --extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize); -- --/* -- Extracts the current zip entry into output file. -- -- Args: -- zip: zip archive handler. -- filename: output file. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Extracts the current zip entry into a memory buffer using no memory -+ * allocation. -+ * -+ * @param zip zip archive handler. -+ * @param buf preallocated output buffer. -+ * @param bufsize output buffer size (in bytes). -+ * -+ * @note ensure supplied output buffer is large enough. -+ * zip_entry_size function (returns uncompressed size for the current -+ * entry) can be handy to estimate how big buffer is needed. for large -+ * entries, please take a look at zip_entry_extract function. -+ * -+ * @return the return code - the number of bytes actually read on success. -+ * Otherwise a -1 on error (e.g. bufsize is not large enough). -+ */ -+extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, -+ size_t bufsize); -+ -+/** -+ * Extracts the current zip entry into output file. -+ * -+ * @param zip zip archive handler. -+ * @param filename output file. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_entry_fread(struct zip_t *zip, const char *filename); - --/* -- Extracts the current zip entry using a callback function (on_extract). -- -- Args: -- zip: zip archive handler. -- on_extract: callback function. -- arg: opaque pointer (optional argument, -- which you can pass to the on_extract callback) -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. -+/** -+ * Extracts the current zip entry using a callback function (on_extract). -+ * -+ * @param zip zip archive handler. -+ * @param on_extract callback function. -+ * @param arg opaque pointer (optional argument, which you can pass to the -+ * on_extract callback) -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. - */ - extern int - zip_entry_extract(struct zip_t *zip, -@@ -262,53 +261,49 @@ zip_entry_extract(struct zip_t *zip, - const void *data, size_t size), - void *arg); - --/* -- Returns the number of all entries (files and directories) in the zip archive. -- -- Args: -- zip: zip archive handler. -- -- Returns: -- The return code - the number of entries on success, -- negative number (< 0) on error. --*/ -+/** -+ * Returns the number of all entries (files and directories) in the zip archive. -+ * -+ * @param zip zip archive handler. -+ * -+ * @return the return code - the number of entries on success, negative number -+ * (< 0) on error. -+ */ - extern int zip_total_entries(struct zip_t *zip); - --/* -- Creates a new archive and puts files into a single zip archive. -- -- Args: -- zipname: zip archive file. -- filenames: input files. -- len: number of input files. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Creates a new archive and puts files into a single zip archive. -+ * -+ * @param zipname zip archive file. -+ * @param filenames input files. -+ * @param len: number of input files. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_create(const char *zipname, const char *filenames[], size_t len); - --/* -- Extracts a zip archive file into directory. -- -- If on_extract_entry is not NULL, the callback will be called after -- successfully extracted each zip entry. -- Returning a negative value from the callback will cause abort and return an -- error. The last argument (void *arg) is optional, which you can use to pass -- data to the on_extract_entry callback. -- -- Args: -- zipname: zip archive file. -- dir: output directory. -- on_extract_entry: on extract callback. -- arg: opaque pointer. -- -- Returns: -- The return code - 0 on success, negative number (< 0) on error. --*/ -+/** -+ * Extracts a zip archive file into directory. -+ * -+ * If on_extract_entry is not NULL, the callback will be called after -+ * successfully extracted each zip entry. -+ * Returning a negative value from the callback will cause abort and return an -+ * error. The last argument (void *arg) is optional, which you can use to pass -+ * data to the on_extract_entry callback. -+ * -+ * @param zipname zip archive file. -+ * @param dir output directory. -+ * @param on_extract_entry on extract callback. -+ * @param arg opaque pointer. -+ * -+ * @return the return code - 0 on success, negative number (< 0) on error. -+ */ - extern int zip_extract(const char *zipname, const char *dir, - int (*on_extract_entry)(const char *filename, void *arg), - void *arg); - -+/** @} */ -+ - #ifdef __cplusplus - } - #endif -diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt -index 9b2a8db1..cc060b00 100644 ---- a/contrib/zip/test/CMakeLists.txt -+++ b/contrib/zip/test/CMakeLists.txt -@@ -1,19 +1,16 @@ - cmake_minimum_required(VERSION 2.8) - --if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") -- if(ENABLE_COVERAGE) -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g ") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage") -- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") -- endif() --endif () -- - # test --include_directories(../src) --add_executable(test.exe test.c ../src/zip.c) --add_executable(test_miniz.exe test_miniz.c) -+set(test_out test.out) -+set(test_miniz_out test_miniz.out) -+ -+add_executable(${test_out} test.c) -+target_link_libraries(${test_out} zip) -+add_executable(${test_miniz_out} test_miniz.c) -+target_link_libraries(${test_miniz_out} zip) -+ -+add_test(NAME ${test_out} COMMAND ${test_out}) -+add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out}) - --add_test(NAME test COMMAND test.exe) --add_test(NAME test_miniz COMMAND test_miniz.exe) -+set(test_out ${test_out} PARENT_SCOPE) -+set(test_miniz_out ${test_miniz_out} PARENT_SCOPE) -diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c -index 45443053..a9b2ddab 100644 ---- a/contrib/zip/test/test.c -+++ b/contrib/zip/test/test.c -@@ -29,6 +29,8 @@ - #define XFILE "7.txt\0" - #define XMODE 0100777 - -+#define UNIXMODE 0100644 -+ - #define UNUSED(x) (void)x - - static int total_entries = 0; -@@ -102,7 +104,8 @@ static void test_read(void) { - assert(0 == zip_entry_close(zip)); - free(buf); - buf = NULL; -- -+ bufsize = 0; -+ - assert(0 == zip_entry_open(zip, "test/test-2.txt")); - assert(strlen(TESTDATA2) == zip_entry_size(zip)); - assert(CRC32DATA2 == zip_entry_crc32(zip)); -@@ -131,7 +134,8 @@ static void test_read(void) { - assert(0 == zip_entry_close(zip)); - free(buf); - buf = NULL; -- -+ bufsize = 0; -+ - buftmp = strlen(TESTDATA1); - buf = calloc(buftmp, sizeof(char)); - assert(0 == zip_entry_open(zip, "test/test-1.txt")); -@@ -433,6 +437,35 @@ static void test_mtime(void) { - remove(ZIPNAME); - } - -+static void test_unix_permissions(void) { -+#if defined(_WIN64) || defined(_WIN32) || defined(__WIN32__) -+#else -+ // UNIX or APPLE -+ struct MZ_FILE_STAT_STRUCT file_stats; -+ -+ remove(ZIPNAME); -+ -+ struct zip_t *zip = zip_open(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w'); -+ assert(zip != NULL); -+ -+ assert(0 == zip_entry_open(zip, RFILE)); -+ assert(0 == zip_entry_write(zip, TESTDATA1, strlen(TESTDATA1))); -+ assert(0 == zip_entry_close(zip)); -+ -+ zip_close(zip); -+ -+ remove(RFILE); -+ -+ assert(0 == zip_extract(ZIPNAME, ".", NULL, NULL)); -+ -+ assert(0 == MZ_FILE_STAT(RFILE, &file_stats)); -+ assert(UNIXMODE == file_stats.st_mode); -+ -+ remove(RFILE); -+ remove(ZIPNAME); -+#endif -+} -+ - int main(int argc, char *argv[]) { - UNUSED(argc); - UNUSED(argv); -@@ -453,6 +486,7 @@ int main(int argc, char *argv[]) { - test_write_permissions(); - test_exe_permissions(); - test_mtime(); -+ test_unix_permissions(); - - remove(ZIPNAME); - return 0; -diff --git a/contrib/zip/test/test_miniz.c b/contrib/zip/test/test_miniz.c -index ebc0564d..babcaecd 100644 ---- a/contrib/zip/test/test_miniz.c -+++ b/contrib/zip/test/test_miniz.c -@@ -23,16 +23,39 @@ int main(int argc, char *argv[]) { - uint step = 0; - int cmp_status; - uLong src_len = (uLong)strlen(s_pStr); -- uLong cmp_len = compressBound(src_len); - uLong uncomp_len = src_len; -+ uLong cmp_len; - uint8 *pCmp, *pUncomp; -+ size_t sz; - uint total_succeeded = 0; - (void)argc, (void)argv; - - printf("miniz.c version: %s\n", MZ_VERSION); - - do { -+ pCmp = (uint8 *)tdefl_compress_mem_to_heap(s_pStr, src_len, &cmp_len, 0); -+ if (!pCmp) { -+ printf("tdefl_compress_mem_to_heap failed\n"); -+ return EXIT_FAILURE; -+ } -+ if (src_len <= cmp_len) { -+ printf("tdefl_compress_mem_to_heap failed: from %u to %u bytes\n", -+ (mz_uint32)uncomp_len, (mz_uint32)cmp_len); -+ free(pCmp); -+ return EXIT_FAILURE; -+ } -+ -+ sz = tdefl_compress_mem_to_mem(pCmp, cmp_len, s_pStr, src_len, 0); -+ if (sz != cmp_len) { -+ printf("tdefl_compress_mem_to_mem failed: expected %u, got %u\n", -+ (mz_uint32)cmp_len, (mz_uint32)sz); -+ free(pCmp); -+ return EXIT_FAILURE; -+ } -+ - // Allocate buffers to hold compressed and uncompressed data. -+ free(pCmp); -+ cmp_len = compressBound(src_len); - pCmp = (mz_uint8 *)malloc((size_t)cmp_len); - pUncomp = (mz_uint8 *)malloc((size_t)src_len); - if ((!pCmp) || (!pUncomp)) { diff --git a/meta/recipes-graphics/vulkan/assimp_5.0.0.bb b/meta/recipes-graphics/vulkan/assimp_5.0.0.bb deleted file mode 100644 index 77e3651e45..0000000000 --- a/meta/recipes-graphics/vulkan/assimp_5.0.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "Open Asset Import Library is a portable Open Source library to import \ - various well-known 3D model formats in a uniform manner." -HOMEPAGE = "http://www.assimp.org/" -SECTION = "devel" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2119edef0916b0bd511cb3c731076271" - -DEPENDS = "zlib" - -SRC_URI = "git://github.com/assimp/assimp.git \ - file://0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch \ - " -UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))" - -SRCREV = "2d2889f73fa1b2ca09ba9f43c9785402d3a7fdd0" - -S = "${WORKDIR}/git" - -inherit cmake - -EXTRA_OECMAKE = "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_LIB_INSTALL_DIR=${baselib}" diff --git a/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch b/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch deleted file mode 100644 index 76240610f5..0000000000 --- a/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 0cbf9c9831f773e0da66209be9a6ff28d57c2321 Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" <maxin.john@intel.com> -Date: Mon, 30 Jul 2018 17:23:29 +0300 -Subject: [PATCH] Don't build demos with questionably licensed data - -Some of the models don't have open source compatible licenses: -don't build demos using those. Also don't build demos that need -resources that are not included. - -ssao: -scenerendering: - Sibenik model, no license found - -deferred: -deferredmultisampling: -deferredshadows: - armor model, CC-BY-3.0 - -vulkanscene: -imgui: -shadowmapping: - vulkanscene model, no license found - -indirectdraw: - plant model, no license found - -hdr: -pbribl: -pbrtexture: - Require external Vulkan Asset Pack - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> -Signed-off-by: Maxin B. John <maxin.john@intel.com> - ---- - examples/CMakeLists.txt | 14 -------------- - 1 file changed, 14 deletions(-) - -diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt -index e07918c..08b6e23 100644 ---- a/examples/CMakeLists.txt -+++ b/examples/CMakeLists.txt -@@ -55,18 +55,12 @@ set(EXAMPLES - conditionalrender - conservativeraster - debugmarker -- deferred -- deferredmultisampling -- deferredshadows - descriptorsets - displacement - distancefieldfonts - dynamicuniformbuffer - gears - geometryshader -- hdr -- imgui -- indirectdraw - inlineuniformblocks - inputattachments - instancing -@@ -83,23 +77,16 @@ set(EXAMPLES - parallaxmapping - particlefire - pbrbasic -- pbribl -- pbrtexture - pipelines - pipelinestatistics - pushconstants - pushdescriptors - radialblur - renderheadless -- scenerendering - screenshot -- shadowmapping -- shadowmappingomni -- shadowmappingcascade - skeletalanimation - specializationconstants - sphericalenvmapping -- ssao - stencilbuffer - subpasses - terraintessellation -@@ -113,7 +100,6 @@ set(EXAMPLES - texturesparseresidency - triangle - viewportarray -- vulkanscene - ) - - buildExamples() diff --git a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/meta/recipes-graphics/vulkan/vulkan-demos_git.bb deleted file mode 100644 index c94e768b52..0000000000 --- a/meta/recipes-graphics/vulkan/vulkan-demos_git.bb +++ /dev/null @@ -1,44 +0,0 @@ -DESCRIPTION = "Collection of Vulkan examples" -LICENSE = "MIT" -DEPENDS = "zlib" - -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dcf473723faabf17baa9b5f2207599d0 \ - file://examples/triangle/triangle.cpp;endline=12;md5=bccd1bf9cadd9e10086cf7872157e4fa" - -SRCREV_glm = "1ad55c5016339b83b7eec98c31007e0aee57d2bf" -SRCREV_gli = "7da5f50931225e9819a26d5cb323c5f42da50bcd" - -SRC_URI = "git://github.com/SaschaWillems/Vulkan.git \ - git://github.com/g-truc/glm;destsuffix=git/external/glm;name=glm \ - git://github.com/g-truc/gli;destsuffix=git/external/gli;name=gli \ - file://0001-Don-t-build-demos-with-questionably-licensed-data.patch \ - " -UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "6d63dc32c320a49be0a56c365151c8f2f176bc59" -UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for" -S = "${WORKDIR}/git" - -REQUIRED_DISTRO_FEATURES = 'vulkan' - -inherit cmake features_check -DEPENDS = "vulkan-loader assimp wayland-protocols wayland-native" - -do_install_append () { - # Remove assets that have uncertain licenses - rm ${D}${datadir}/vulkan-demos/models/armor/* \ - ${D}${datadir}/vulkan-demos/models/sibenik/* \ - ${D}${datadir}/vulkan-demos/models/vulkanscene* \ - ${D}${datadir}/vulkan-demos/models/plants.dae \ - ${D}${datadir}/vulkan-demos/textures/texturearray_plants* - - mv ${D}${bindir}/screenshot ${D}${bindir}/vulkan-screenshot -} - -EXTRA_OECMAKE = "-DRESOURCE_INSTALL_DIR=${datadir}/vulkan-demos" - -ANY_OF_DISTRO_FEATURES = "x11 wayland" - -# Can only pick one of [wayland,xcb] -PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'xcb' ,d)}" -PACKAGECONFIG[wayland] = "-DUSE_WAYLAND_WSI=ON, -DUSE_WAYLAND_WSI=OFF, wayland" -PACKAGECONFIG[xcb] = ",,libxcb" diff --git a/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb deleted file mode 100644 index 72c29a72a2..0000000000 --- a/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "Vulkan Header files and API registry" -HOMEPAGE = "https://www.khronos.org/vulkan/" -BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers" -SECTION = "libs" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-1.1.126" - -SRCREV = "5bc459e2921304c32568b73edaac8d6df5f98b84" - -S = "${WORKDIR}/git" - -inherit cmake - -FILES_${PN} += "${datadir}/vulkan" - -UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-headers_1.3.290.0.bb b/meta/recipes-graphics/vulkan/vulkan-headers_1.3.290.0.bb new file mode 100644 index 0000000000..9f17ddc525 --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-headers_1.3.290.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "Vulkan Header files and API registry" +DESCRIPTION = "Vulkan is a 3D graphics and compute API providing cross-platform access \ +to modern GPUs with low overhead and targeting realtime graphics applications such as \ +games and interactive media. This package contains the development headers \ +for packages wanting to make use of Vulkan." +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Headers" +SECTION = "libs" + +LICENSE = "Apache-2.0 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=1bc355d8c4196f774c8b87ed1a8dd625" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main;protocol=https" + +SRCREV = "b379292b2ab6df5771ba9870d53cf8b2c9295daf" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES:${PN} += "${datadir}/vulkan" +RDEPENDS:${PN} += "python3-core" + +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools, +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-loader_1.3.290.0.bb index 504cf85a2b..c5b25be9ef 100644 --- a/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb +++ b/meta/recipes-graphics/vulkan/vulkan-loader_1.3.290.0.bb @@ -9,15 +9,14 @@ SECTION = "libs" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac" -SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.1.126" -SRCREV = "4adad4ff705fa76f9edb2d37cb57e593decb60ed" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=main;protocol=https" +SRCREV = "40b8e6eeead809a62c708cb48fdd9f8f2eab3f15" S = "${WORKDIR}/git" REQUIRED_DISTRO_FEATURES = "vulkan" -inherit cmake features_check -ANY_OF_DISTRO_FEATURES = "x11 wayland" +inherit cmake features_check pkgconfig DEPENDS += "vulkan-headers" @@ -25,14 +24,20 @@ EXTRA_OECMAKE = "\ -DBUILD_TESTS=OFF \ -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ -DASSEMBLER_WORKS=FALSE \ + -DVulkanHeaders_INCLUDE_DIR=${STAGING_INCDIR} \ + -DVulkanRegistry_DIR=${RECIPE_SYSROOT}/${datadir} \ " -# must choose x11 or wayland or both PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" -RRECOMMENDS_${PN} = "mesa-vulkan-drivers" +RRECOMMENDS:${PN} = "mesa-vulkan-drivers" +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools, +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-samples/0001-vulkan-samples-Fix-reproducibility-issue.patch b/meta/recipes-graphics/vulkan/vulkan-samples/0001-vulkan-samples-Fix-reproducibility-issue.patch new file mode 100644 index 0000000000..c16e05112f --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-samples/0001-vulkan-samples-Fix-reproducibility-issue.patch @@ -0,0 +1,43 @@ +From d998c753254649c7cf7c64e3fed78e41c11ad7ed Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Wed, 23 Aug 2023 09:38:37 +0200 +Subject: [PATCH] vulkan-samples: Fix reproducibility issue + +There is code to remove the prefix CMAKE_SOURCE_DIR from __FILENAME__ paths +used for logging with LOGE() in the code. We need to make this match the value we use +in the debug source remapping from CFLAGS + +We export the right path to use in the recipe with: + +EXTRA_OECMAKE = "-DCMAKE_DEBUG_SRCDIR=${TARGET_DBGSRC_DIR}/" + +and we then patch this into the code instead of the broken use +of CMAKE_SOURCE_DIR since __FILENAME__ will match our path prefix +changes. + +This also breaks reproducibility since the path length of the build directory +will currently change the output! + +Upstream-Status: Pending [needs to be discussed upstream] +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> + +Signed-off-by: Julien Stephan <jstephan@baylibre.com> +--- + bldsys/cmake/global_options.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bldsys/cmake/global_options.cmake b/bldsys/cmake/global_options.cmake +index b15c2da..d8952e5 100644 +--- a/bldsys/cmake/global_options.cmake ++++ b/bldsys/cmake/global_options.cmake +@@ -62,7 +62,7 @@ set(CMAKE_CXX_STANDARD 14) + set(CMAKE_DISABLE_SOURCE_CHANGES ON) + set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) + +-string(LENGTH "${CMAKE_SOURCE_DIR}/" ROOT_PATH_SIZE) ++string(LENGTH "${CMAKE_DEBUG_SRCDIR}/" ROOT_PATH_SIZE) + add_definitions(-DROOT_PATH_SIZE=${ROOT_PATH_SIZE}) + + set(CMAKE_C_FLAGS_DEBUG "-DDEBUG=0 ${CMAKE_C_FLAGS_DEBUG}") +-- +2.41.0 diff --git a/meta/recipes-graphics/vulkan/vulkan-samples/0001-zstd.c-replace-FORCE_INLINE_TEMPLATE-with-inline.patch b/meta/recipes-graphics/vulkan/vulkan-samples/0001-zstd.c-replace-FORCE_INLINE_TEMPLATE-with-inline.patch new file mode 100644 index 0000000000..22538d4119 --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-samples/0001-zstd.c-replace-FORCE_INLINE_TEMPLATE-with-inline.patch @@ -0,0 +1,52 @@ +From a7bfe82a311c713b12bb83b8488574ad5c784f89 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 9 Jul 2024 04:29:11 +0000 +Subject: [PATCH] zstd.c: replace FORCE_INLINE_TEMPLATE with inline + +Refer [1], always-inline is not suggested to be used if you have indirect ++calls. so replace FORCE_INLINE_TEMPLATE with inline to fix error: +In function 'ZSTD_compressBlock_lazy_generic', + inlined from 'ZSTD_compressBlock_greedy' at TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21914:12: +TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21551:30: error: inlining failed in call to 'always_inline' 'ZSTD_HcFindBestMatch_selectMLS': function not considered for inlining + | FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_selectMLS ( + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +TOPDIR/tmp-glibc/work/core2-32-wrs-linux/vulkan-samples/git/git/third_party/ktx/lib/basisu/zstd/zstd.c:21736:32: note: called from here +| size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); + +Upstream-Status: Inappropriate [ Latest upstream ktx don't have this part code ] + +Has report this issue to upstream Vulkan-Samples, refer [2] + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107931 +[2] https://github.com/KhronosGroup/Vulkan-Samples/issues/1089 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + lib/basisu/zstd/zstd.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/basisu/zstd/zstd.c b/lib/basisu/zstd/zstd.c +index eaf13738..423f149e 100644 +--- a/lib/basisu/zstd/zstd.c ++++ b/lib/basisu/zstd/zstd.c +@@ -21548,7 +21548,7 @@ size_t ZSTD_HcFindBestMatch_generic ( + } + + +-FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_selectMLS ( ++static inline size_t ZSTD_HcFindBestMatch_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +@@ -21596,7 +21596,7 @@ static size_t ZSTD_HcFindBestMatch_dedicatedDictSearch_selectMLS ( + } + + +-FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_extDict_selectMLS ( ++static inline size_t ZSTD_HcFindBestMatch_extDict_selectMLS ( + ZSTD_matchState_t* ms, + const BYTE* ip, const BYTE* const iLimit, + size_t* offsetPtr) +-- +2.44.0 + diff --git a/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/meta/recipes-graphics/vulkan/vulkan-samples_git.bb new file mode 100644 index 0000000000..06e996d243 --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-samples_git.bb @@ -0,0 +1,39 @@ +SUMMARY = "The Vulkan Samples is collection of resources to help develop optimized Vulkan applications." +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Samples/issues" +LICENSE = "Apache-2.0" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=48aa35cefb768436223a6e7f18dc2a2a" + +SRC_URI = "gitsm://github.com/KhronosGroup/Vulkan-Samples.git;branch=main;protocol=https;lfs=0 \ + file://0001-vulkan-samples-Fix-reproducibility-issue.patch \ + file://0001-zstd.c-replace-FORCE_INLINE_TEMPLATE-with-inline.patch;patchdir=third_party/ktx \ + " + +UPSTREAM_CHECK_COMMITS = "1" +SRCREV = "fdce530c029514e2f66296288f9ee26a05058ec1" + +UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for" +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = 'vulkan' + +inherit cmake features_check + +FILES:${PN} += "${datadir}" + +# +# There is code to remove the prefix CMAKE_SOURCE_DIR from __FILENAME__ paths +# used for logging with LOGE in the code. We need to make this match the value we use +# in the debug source remapping from CFLAGS +# +EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=${TARGET_DBGSRC_DIR}/" +# Binaries built with PCH enabled don't appear reproducible, differing results were seen +# from some builds depending on the point the PCH was compiled. Disable it to be +# deterministic +EXTRA_OECMAKE += "-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON" + +# This needs to be specified explicitly to avoid xcb/xlib dependencies +EXTRA_OECMAKE += "-DVKB_WSI_SELECTION=D2D" + +COMPATIBLE_HOST = "(aarch64|x86_64).*-linux" diff --git a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb b/meta/recipes-graphics/vulkan/vulkan-tools_1.3.290.0.bb index 2fd61c989a..9ef7d4daea 100644 --- a/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb +++ b/meta/recipes-graphics/vulkan/vulkan-tools_1.3.290.0.bb @@ -1,20 +1,21 @@ SUMMARY = "Vulkan Utilities and Tools" +DESCRIPTION = "Assist development by enabling developers to verify their applications correct use of the Vulkan API." HOMEPAGE = "https://www.khronos.org/vulkan/" BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Tools" SECTION = "libs" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.1.126" -SRCREV = "09695dfc5dbe54f869aeaff8db93bb7bb6a220e0" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=main;protocol=https" +SRCREV = "53a6ba7c235cbe0b0f3e85e3de6d9070bcfec710" S = "${WORKDIR}/git" -inherit cmake features_check +inherit cmake features_check pkgconfig ANY_OF_DISTRO_FEATURES = "x11 wayland" REQUIRED_DISTRO_FEATURES = "vulkan" -DEPENDS += "vulkan-headers vulkan-loader" +DEPENDS += "vulkan-headers vulkan-loader vulkan-volk" EXTRA_OECMAKE = "\ -DBUILD_TESTS=OFF \ @@ -28,4 +29,9 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, spirv-headers, spirv-tools +# vulkan-validation-layers, vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.290.0.bb b/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.290.0.bb new file mode 100644 index 0000000000..475386069f --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.290.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "Vulkan Utility Libraries" +DESCRIPTION = "Common libraries created to share code across various \ +Vulkan repositories, solving long standing issues for Vulkan SDK \ +developers and users." +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=4ca2d6799091aaa98a8520f1b793939b" + +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Utility-Libraries.git;branch=main;protocol=https" +SRCREV = "5f26cf65a18bc89a8e3d6569c14314b6fdac8d4d" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +DEPENDS = "vulkan-headers" + +EXTRA_OECMAKE = "\ + -DBUILD_TESTS=OFF \ + " + +inherit cmake features_check pkgconfig + +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, +# vulkan-validation-layers, spirv-headers, spirv-tools, +# vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.290.0.bb b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.290.0.bb new file mode 100644 index 0000000000..cfb8954f87 --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.290.0.bb @@ -0,0 +1,49 @@ +SUMMARY = "Vulkan Validation layers" +DESCRIPTION = "Khronos official Vulkan validation layers to assist developers \ +in verifying that their applications correctly use the Vulkan API" +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-ValidationLayers" +SECTION = "libs" + +LICENSE = "Apache-2.0 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd3c0bc366cd9b6a906e22f0bcb5910f" + +SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=vulkan-sdk-1.3.290;protocol=https" +SRCREV = "a92629196a4fed15e59c74aa965dd47bd5ece3b7" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +DEPENDS = "vulkan-headers vulkan-loader spirv-headers spirv-tools glslang vulkan-utility-libraries" + +# BUILD_TESTS - Not required for OE builds +# USE_ROBIN_HOOD_HASHING - Provides substantial performance improvements on all platforms. +# Yocto project doesn't contain a recipe for package so disabled it. +EXTRA_OECMAKE = "\ + -DBUILD_TESTS=OFF \ + -DUSE_ROBIN_HOOD_HASHING=OFF \ + -DGLSLANG_INSTALL_DIR=${STAGING_LIBDIR} \ + -DVULKAN_HEADERS_INSTALL_DIR=${STAGING_EXECPREFIXDIR} \ + -DSPIRV_HEADERS_INSTALL_DIR=${STAGING_EXECPREFIXDIR} \ + " + +PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF, libxcb libx11 libxrandr" +PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}" + +inherit cmake features_check pkgconfig + +FILES:${PN} += "${datadir}/vulkan" + +SOLIBS = ".so" +FILES_SOLIBSDEV = "" + +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, +# vulkan-validation-layers, spirv-headers, spirv-tools, +# vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" diff --git a/meta/recipes-graphics/vulkan/vulkan-volk_1.3.290.0.bb b/meta/recipes-graphics/vulkan/vulkan-volk_1.3.290.0.bb new file mode 100644 index 0000000000..e1bad6a96d --- /dev/null +++ b/meta/recipes-graphics/vulkan/vulkan-volk_1.3.290.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "A meta-loader for Vulkan" +DESCRIPTION = "Volk allows one to dynamically load entrypoints required \ +to use Vulkan without linking to vulkan-1.dll or statically linking Vulkan loader. \ +" +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/zeux/volk" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=12e6af3a0e2a5e5dbf7796aa82b64626" + +SRC_URI = "git://github.com/zeux/volk.git;branch=master;protocol=https" +SRCREV = "466085407d5d2f50583fd663c1d65f93a7709d3e" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +DEPENDS = "vulkan-headers" + +EXTRA_OECMAKE = "\ + -DVOLK_INSTALL=ON \ + " + +inherit cmake features_check pkgconfig + +# These recipes need to be updated in lockstep with each other: +# glslang, vulkan-headers, vulkan-loader, vulkan-tools, +# vulkan-validation-layers, spirv-headers, spirv-tools, +# vulkan-utility-libraries, vulkan-volk. +# The tags versions should always be sdk-x.y.z, as this is what +# upstream considers a release. +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)" + +do_install:append() { + sed -i -e 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/cmake/volk/volkTargets.cmake +} diff --git a/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/meta/recipes-graphics/waffle/waffle_1.6.0.bb deleted file mode 100644 index 52cb1df899..0000000000 --- a/meta/recipes-graphics/waffle/waffle_1.6.0.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "cross-platform C library to defer selection of GL API and of window system" -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ - file://include/waffle/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" - -SRC_URI = "http://waffle-gl.org/files/release/${BPN}-${PV}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "61bfc1a478e840825f33ddb4057115e7" -SRC_URI[sha256sum] = "d9c899f710c50cfdd00f5f4cdfeaef0687d8497362239bdde93bed6c909c81d7" - -UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html" - -inherit meson features_check lib_package bash-completion - -# This should be overridden per-machine to reflect the capabilities of the GL -# stack. -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ - surfaceless-egl gbm" - -# virtual/libgl requires opengl in DISTRO_FEATURES. -REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" - -# I say virtual/libgl, actually wants gl.pc -PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/${MLPREFIX}libgl libx11" - -# I say virtual/libgl, actually wants wayland-egl.pc, egl.pc, and the wayland -# DISTRO_FEATURE. -PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/${MLPREFIX}libgl wayland" - -# I say virtual/libgl, actually wants gbm.pc egl.pc -PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/${MLPREFIX}libgl udev" - -# I say virtual/libgl, actually wants egl.pc -PACKAGECONFIG[x11-egl] = "-Dx11_egl=enabled,-Dx11_egl=disabled,virtual/${MLPREFIX}libgl libxcb" -PACKAGECONFIG[surfaceless-egl] = "-Dsurfaceless_egl=enabled,-Dsurfaceless_egl=disabled,virtual/${MLPREFIX}libgl" - -# TODO: optionally build manpages and examples diff --git a/meta/recipes-graphics/waffle/waffle_1.8.1.bb b/meta/recipes-graphics/waffle/waffle_1.8.1.bb new file mode 100644 index 0000000000..684124bc4d --- /dev/null +++ b/meta/recipes-graphics/waffle/waffle_1.8.1.bb @@ -0,0 +1,49 @@ +SUMMARY = "A C library for selecting an OpenGL API and window system at runtime" +DESCRIPTION = "A cross-platform C library that allows one to defer selection \ +of an OpenGL API and window system until runtime. For example, on Linux, Waffle \ +enables an application to select X11/EGL with an OpenGL 3.3 core profile, \ +Wayland with OpenGL ES2, and other window system / API combinations." +HOMEPAGE = "https://gitlab.freedesktop.org/mesa/waffle" +BUGTRACKER = "https://gitlab.freedesktop.org/mesa/waffle" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \ + file://include/waffle-1/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf" + +SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=maint-1.8 \ + " +SRCREV = "49abc7cb5f73cc6852136c91da49ea3a338960e4" +S = "${WORKDIR}/git" + +inherit meson features_check lib_package bash-completion pkgconfig + +DEPENDS:append = " python3" + +# This should be overridden per-machine to reflect the capabilities of the GL +# stack. +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gbm surfaceless-egl', '', d)} \ +" + +# virtual/libgl requires opengl in DISTRO_FEATURES. +REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}" + +# I say virtual/libgl, actually wants gl.pc +PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/${MLPREFIX}libgl libx11" + +# wants wayland-egl.pc, egl.pc, and the wayland +# DISTRO_FEATURE. +PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/${MLPREFIX}egl wayland wayland-native wayland-protocols" + +# wants gbm.pc egl.pc +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/${MLPREFIX}egl virtual/${MLPREFIX}libgbm libdrm" + +# wants egl.pc +PACKAGECONFIG[x11-egl] = "-Dx11_egl=enabled,-Dx11_egl=disabled,virtual/${MLPREFIX}egl libxcb" +PACKAGECONFIG[surfaceless-egl] = "-Dsurfaceless_egl=enabled,-Dsurfaceless_egl=disabled,virtual/${MLPREFIX}egl" + +# TODO: optionally build manpages and examples + +do_install:append() { + rm -rf ${D}${datadir}/zsh +} diff --git a/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch b/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch deleted file mode 100644 index 344e6aaf8f..0000000000 --- a/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch +++ /dev/null @@ -1,386 +0,0 @@ -From ab6ce09bfb669177c90cc5c10155eec44e9fc34b Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Sat, 23 Nov 2019 17:23:56 -0800 -Subject: [PATCH] Adjust for 64bit time_t for 32bit architectures - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/libinput/libinput/merge_requests/346] -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> ---- - meson.build | 1 + - src/evdev-mt-touchpad-buttons.c | 15 ++++--- - src/evdev.c | 5 ++- - src/util-input-event.h | 69 +++++++++++++++++++++++++++++++++ - tools/libinput-record.c | 16 +++++--- - 5 files changed, 90 insertions(+), 16 deletions(-) - create mode 100644 src/util-input-event.h - ---- a/meson.build -+++ b/meson.build -@@ -220,7 +220,8 @@ endif - ############ libinput-util.a ############ - src_libinput_util = [ - 'src/libinput-util.c', -- 'src/libinput-util.h' -+ 'src/libinput-util.h', -+ 'src/util-input-event.h' - ] - libinput_util = static_library('libinput-util', - src_libinput_util, ---- a/src/evdev-mt-touchpad-buttons.c -+++ b/src/evdev-mt-touchpad-buttons.c -@@ -30,6 +30,7 @@ - #include <unistd.h> - #include "linux/input.h" - -+#include "util-input-event.h" - #include "evdev-mt-touchpad.h" - - #define DEFAULT_BUTTON_ENTER_TIMEOUT ms2us(100) -@@ -1145,14 +1146,12 @@ tp_notify_clickpadbutton(struct tp_dispa - if (tp->buttons.trackpoint) { - if (is_topbutton) { - struct evdev_dispatch *dispatch = tp->buttons.trackpoint->dispatch; -- struct input_event event; -- struct input_event syn_report = {{ 0, 0 }, EV_SYN, SYN_REPORT, 0 }; -+ struct input_event event, syn_report; -+ int value; - -- event.time = us2tv(time); -- event.type = EV_KEY; -- event.code = button; -- event.value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0; -- syn_report.time = event.time; -+ value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0; -+ event = input_event_init(time, EV_KEY, button, value); -+ syn_report = input_event_init(time, EV_SYN, SYN_REPORT, 0); - dispatch->interface->process(dispatch, - tp->buttons.trackpoint, - &event, ---- a/src/evdev.c -+++ b/src/evdev.c -@@ -44,6 +44,7 @@ - #include "filter.h" - #include "libinput-private.h" - #include "quirks.h" -+#include "util-input-event.h" - - #if HAVE_LIBWACOM - #include <libwacom/libwacom.h> -@@ -859,7 +860,7 @@ evdev_print_event(struct evdev_device *d - { - static uint32_t offset = 0; - static uint32_t last_time = 0; -- uint32_t time = us2ms(tv2us(&e->time)); -+ uint32_t time = us2ms(input_event_time(e)); - - if (offset == 0) { - offset = time; -@@ -891,7 +892,7 @@ static inline void - evdev_process_event(struct evdev_device *device, struct input_event *e) - { - struct evdev_dispatch *dispatch = device->dispatch; -- uint64_t time = tv2us(&e->time); -+ uint64_t time = input_event_time(e); - - #if 0 - evdev_print_event(device, e); ---- /dev/null -+++ b/src/util-input-event.h -@@ -0,0 +1,69 @@ -+/* -+ * Copyright © 2019 Red Hat, Inc. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the "Software"), -+ * to deal in the Software without restriction, including without limitation -+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ * and/or sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the next -+ * paragraph) shall be included in all copies or substantial portions of the -+ * Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ * DEALINGS IN THE SOFTWARE. -+ */ -+ -+#pragma once -+ -+#include "config.h" -+ -+#include "util-time.h" -+#include <linux/input.h> -+ -+static inline struct input_event -+input_event_init(uint64_t time, -+ unsigned int code, -+ unsigned int type, -+ int value) -+{ -+ struct input_event ev; -+ struct timeval tval = us2tv(time); -+ -+ ev.input_event_sec = tval.tv_sec; -+ ev.input_event_usec = tval.tv_usec; -+ ev.type = type; -+ ev.code = code; -+ ev.value = value; -+ -+ return ev; -+} -+ -+static inline uint64_t -+input_event_time(const struct input_event *e) -+{ -+ struct timeval tval; -+ -+ tval.tv_sec = e->input_event_sec; -+ tval.tv_usec = e->input_event_usec; -+ -+ return tv2us(&tval); -+} -+ -+ -+static inline void -+input_event_set_time(struct input_event *e, -+ uint64_t time) -+{ -+ struct timeval tval = us2tv(time); -+ -+ e->input_event_sec = tval.tv_sec; -+ e->input_event_usec = tval.tv_usec; -+} ---- a/tools/libinput-record.c -+++ b/tools/libinput-record.c -@@ -41,6 +41,7 @@ - #include <stdbool.h> - - #include "libinput-versionsort.h" -+#include "util-input-event.h" - #include "libinput-util.h" - #include "libinput-version.h" - #include "libinput-git-version.h" -@@ -196,8 +197,9 @@ print_evdev_event(struct record_context - const char *cname; - bool was_modified = false; - char desc[1024]; -+ uint64_t time = input_event_time(ev) - ctx->offset; - -- ev->time = us2tv(tv2us(&ev->time) - ctx->offset); -+ input_event_set_time(ev, time); - - /* Don't leak passwords unless the user wants to */ - if (!ctx->show_keycodes) -@@ -215,7 +217,7 @@ print_evdev_event(struct record_context - static unsigned long last_ms = 0; - unsigned long time, dt; - -- time = us2ms(tv2us(&ev->time)); -+ time = us2ms(input_event_time(ev)); - dt = time - last_ms; - last_ms = time; - -@@ -239,8 +241,8 @@ print_evdev_event(struct record_context - - iprintf(ctx, - "- [%3lu, %6u, %3d, %3d, %6d] # %s\n", -- ev->time.tv_sec, -- (unsigned int)ev->time.tv_usec, -+ ev->input_event_sec, -+ (unsigned int)ev->input_event_usec, - ev->type, - ev->code, - ev->value, -@@ -268,16 +270,18 @@ handle_evdev_frame(struct record_context - while (libevdev_next_event(evdev, - LIBEVDEV_READ_FLAG_NORMAL, - &e) == LIBEVDEV_READ_STATUS_SUCCESS) { -+ uint64_t time; - - if (ctx->offset == 0) -- ctx->offset = tv2us(&e.time); -+ ctx->offset = input_event_time(&e); - - if (d->nevents == d->events_sz) - resize(d->events, d->events_sz); - - event = &d->events[d->nevents++]; - event->type = EVDEV; -- event->time = tv2us(&e.time) - ctx->offset; -+ time = input_event_time(&e); -+ input_event_set_time(&e, time - ctx->offset); - event->u.evdev = e; - count++; - ---- a/src/libinput-private.h -+++ b/src/libinput-private.h -@@ -39,6 +39,7 @@ - - #include "libinput.h" - #include "libinput-util.h" -+#include "util-time.h" - #include "libinput-version.h" - - #if LIBINPUT_VERSION_MICRO >= 90 ---- a/src/libinput-util.h -+++ b/src/libinput-util.h -@@ -206,12 +206,6 @@ clear_bit(unsigned char *array, int bit) - array[bit / 8] &= ~(1 << (bit % 8)); - } - --static inline void --msleep(unsigned int ms) --{ -- usleep(ms * 1000); --} -- - static inline bool - long_bit_is_set(const unsigned long *array, int bit) - { -@@ -453,53 +447,6 @@ bool - parse_switch_reliability_property(const char *prop, - enum switch_reliability *reliability); - --static inline uint64_t --us(uint64_t us) --{ -- return us; --} -- --static inline uint64_t --ns2us(uint64_t ns) --{ -- return us(ns / 1000); --} -- --static inline uint64_t --ms2us(uint64_t ms) --{ -- return us(ms * 1000); --} -- --static inline uint64_t --s2us(uint64_t s) --{ -- return ms2us(s * 1000); --} -- --static inline uint32_t --us2ms(uint64_t us) --{ -- return (uint32_t)(us / 1000); --} -- --static inline uint64_t --tv2us(const struct timeval *tv) --{ -- return s2us(tv->tv_sec) + tv->tv_usec; --} -- --static inline struct timeval --us2tv(uint64_t time) --{ -- struct timeval tv; -- -- tv.tv_sec = time / ms2us(1000); -- tv.tv_usec = time % ms2us(1000); -- -- return tv; --} -- - static inline bool - safe_atoi_base(const char *str, int *val, int base) - { ---- /dev/null -+++ b/src/util-time.h -@@ -0,0 +1,84 @@ -+/* -+ * Copyright © 2013-2019 Red Hat, Inc. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the "Software"), -+ * to deal in the Software without restriction, including without limitation -+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ * and/or sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the next -+ * paragraph) shall be included in all copies or substantial portions of the -+ * Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ * DEALINGS IN THE SOFTWARE. -+ */ -+ -+#pragma once -+ -+#include "config.h" -+ -+#include <time.h> -+#include <stdint.h> -+#include <unistd.h> -+#include <linux/input.h> -+ -+static inline void -+msleep(unsigned int ms) -+{ -+ usleep(ms * 1000); -+} -+ -+static inline uint64_t -+us(uint64_t us) -+{ -+ return us; -+} -+ -+static inline uint64_t -+ns2us(uint64_t ns) -+{ -+ return us(ns / 1000); -+} -+ -+static inline uint64_t -+ms2us(uint64_t ms) -+{ -+ return us(ms * 1000); -+} -+ -+static inline uint64_t -+s2us(uint64_t s) -+{ -+ return ms2us(s * 1000); -+} -+ -+static inline uint32_t -+us2ms(uint64_t us) -+{ -+ return (uint32_t)(us / 1000); -+} -+ -+static inline uint64_t -+tv2us(const struct timeval *tv) -+{ -+ return s2us(tv->tv_sec) + tv->tv_usec; -+} -+ -+static inline struct timeval -+us2tv(uint64_t time) -+{ -+ struct timeval tv; -+ -+ tv.tv_sec = time / ms2us(1000); -+ tv.tv_usec = time % ms2us(1000); -+ -+ return tv; -+} diff --git a/meta/recipes-graphics/wayland/libinput/run-ptest b/meta/recipes-graphics/wayland/libinput/run-ptest new file mode 100644 index 0000000000..d11e6eb25b --- /dev/null +++ b/meta/recipes-graphics/wayland/libinput/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh + +/usr/libexec/libinput/libinput-test-suite -j1 +if [ $? -eq 0 ]; then + echo 'PASS: libinput-test-suite' +else + echo 'FAIL: libinput-test-suite' +fi + diff --git a/meta/recipes-graphics/wayland/libinput_1.14.3.bb b/meta/recipes-graphics/wayland/libinput_1.26.1.bb index 46d46c54ee..487270505a 100644 --- a/meta/recipes-graphics/wayland/libinput_1.14.3.bb +++ b/meta/recipes-graphics/wayland/libinput_1.26.1.bb @@ -8,32 +8,42 @@ HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" SECTION = "libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" +LIC_FILES_CHKSUM = "file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a" DEPENDS = "libevdev udev mtdev" -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ - file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \ -" -SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32" -SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7" +SRC_URI = "git://gitlab.freedesktop.org/libinput/libinput.git;protocol=https;branch=main \ + file://run-ptest \ + " +SRCREV = "124431a5d3186e1c3c3aa144a0634b84b3089486" +S = "${WORKDIR}/git" UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" -inherit meson pkgconfig lib_package +inherit meson pkgconfig lib_package ptest -PACKAGECONFIG ??= "" +# Patch out build directory, otherwise it leaks into ptest binary +do_configure:append() { + sed -i -e "s,${WORKDIR},,g" config.h + if [ -e "litest-config.h" ]; then + sed -i -e "s,${WORKDIR},,g" litest-config.h + fi +} + +PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" -PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" +PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3 wayland-native" +PACKAGECONFIG[tests] = "-Dtests=true -Dinstall-tests=true,-Dtests=false -Dinstall-tests=false,libcheck" UDEVDIR = "`pkg-config --variable=udevdir udev`" EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ -Ddocumentation=false \ - -Dtests=false \ -Dzshcompletiondir=no" # package name changed in 1.8.1 upgrade: make sure package upgrades work -RPROVIDES_${PN} = "libinput" -RREPLACES_${PN} = "libinput" -RCONFLICTS_${PN} = "libinput" +RPROVIDES:${PN} = "libinput" +RREPLACES:${PN} = "libinput" +RCONFLICTS:${PN} = "libinput" + +FILES:${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch b/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch deleted file mode 100644 index a0cebe5283..0000000000 --- a/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch +++ /dev/null @@ -1,77 +0,0 @@ -From af75e8ee3d12a493b758421b2feed0351fdcbbf0 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 23 Nov 2019 13:44:32 -0800 -Subject: [PATCH] adjust for 64bit time_t for 32bit architectures - -libc that has support for 32 bit applications to use 64 bit -time_t supplies __USE_TIME_BITS64 define [1] - -[1] https://sourceware.org/glibc/wiki/Y2038ProofnessDesign - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/core.c | 8 +++++++- - test/mtdev-test.c | 10 ++++++++-- - 2 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/src/core.c b/src/core.c -index 87ef420..0d91c0b 100644 ---- a/src/core.c -+++ b/src/core.c -@@ -31,6 +31,11 @@ - #include "evbuf.h" - #include "match.h" - -+#ifndef input_event_sec -+#define input_event_sec time.tv_sec -+#define input_event_usec time.tv_usec -+#endif -+ - static inline int istouch(const struct mtdev_slot *data, - const struct mtdev *dev) - { -@@ -251,7 +256,8 @@ static void push_slot_changes(struct mtdev_state *state, - count++; - if (!count) - return; -- ev.time = syn->time; -+ ev.input_event_sec = syn->input_event_sec; -+ ev.input_event_usec = syn->input_event_usec; - ev.type = EV_ABS; - ev.code = ABS_MT_SLOT; - ev.value = slot; -diff --git a/test/mtdev-test.c b/test/mtdev-test.c -index 1b3e4f2..773f86a 100644 ---- a/test/mtdev-test.c -+++ b/test/mtdev-test.c -@@ -30,9 +30,15 @@ - #include <stdio.h> - #include <unistd.h> - #include <fcntl.h> -+#include <stdint.h> -+ -+#ifndef input_event_sec -+#define input_event_sec time.tv_sec -+#define input_event_usec time.tv_usec -+#endif - - /* year-proof millisecond event time */ --typedef __u64 mstime_t; -+typedef uint64_t mstime_t; - - static int use_event(const struct input_event *ev) - { -@@ -47,7 +53,7 @@ static void print_event(const struct input_event *ev) - { - static const mstime_t ms = 1000; - static int slot; -- mstime_t evtime = ev->time.tv_usec / ms + ev->time.tv_sec * ms; -+ mstime_t evtime = ev->input_event_usec / ms + ev->input_event_sec * ms; - if (ev->type == EV_ABS && ev->code == ABS_MT_SLOT) - slot = ev->value; - fprintf(stderr, "%012llx %02d %01d %04x %d\n", --- -2.24.0 - diff --git a/meta/recipes-graphics/wayland/mtdev_1.1.5.bb b/meta/recipes-graphics/wayland/mtdev_1.1.7.bb index aa8bb69966..24803c4238 100644 --- a/meta/recipes-graphics/wayland/mtdev_1.1.5.bb +++ b/meta/recipes-graphics/wayland/mtdev_1.1.7.bb @@ -11,10 +11,7 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6" -SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2 \ - file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \ -" -SRC_URI[md5sum] = "52c9610b6002f71d1642dc1a1cca5ec1" -SRC_URI[sha256sum] = "6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f" +SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2" +SRC_URI[sha256sum] = "a107adad2101fecac54ac7f9f0e0a0dd155d954193da55c2340c97f2ff1d814e" inherit autotools pkgconfig diff --git a/meta/recipes-graphics/wayland/required-distro-features.inc b/meta/recipes-graphics/wayland/required-distro-features.inc new file mode 100644 index 0000000000..bb4a0e8ebd --- /dev/null +++ b/meta/recipes-graphics/wayland/required-distro-features.inc @@ -0,0 +1,8 @@ +# distro features required by weston recipes + +inherit features_check + +# requires pam enabled if started via systemd +# +REQUIRED_DISTRO_FEATURES = "wayland opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" + diff --git a/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb b/meta/recipes-graphics/wayland/wayland-protocols_1.37.bb index c8bec66a40..2bf59b9719 100644 --- a/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb +++ b/meta/recipes-graphics/wayland/wayland-protocols_1.37.bb @@ -9,14 +9,18 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - " -SRC_URI[md5sum] = "af38f22d8e233c2f2e00ddc8dcc94694" -SRC_URI[sha256sum] = "3d73b7e7661763dc09d7d9107678400101ecff2b5b1e531674abfa81e04874b3" +SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz" +SRC_URI[sha256sum] = "a70e9be924f2e8688e6824dceaf6188faacd5ae218dfac8d0a3d0976211ef326" -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags" +UPSTREAM_CHECK_REGEX = "releases/(?P<pver>.+)" -inherit allarch autotools pkgconfig +inherit meson pkgconfig allarch + +EXTRA_OEMESON += "-Dtests=false" PACKAGES = "${PN}" -FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" +FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb b/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb new file mode 100644 index 0000000000..59d414a0a6 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "Wayland utilities" +DESCRIPTION = "Wayland-utils contains (for now) \ +wayland-info, a utility for displaying information about the Wayland \ +protocols supported by a Wayland compositor. \ +wayland-info is basically a standalone version of weston-info as found \ +in weston repository. " +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=548a66038a77415e1df51118625e832f \ + " + +SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "d9278c22554586881802540751bcc42569262bf80cd9ac9b0fd12ff4bd09a9e4" + +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/tags" +UPSTREAM_CHECK_REGEX = "releases/(?P<pver>.+)" + +inherit meson pkgconfig + +DEPENDS += "wayland wayland-native wayland-protocols" + +PACKAGECONFIG ??= "drm" +PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm" diff --git a/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch new file mode 100644 index 0000000000..c6ddf8a1f9 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch @@ -0,0 +1,38 @@ +From a90bfa622f7323074c715674b368cba80bc7d196 Mon Sep 17 00:00:00 2001 +From: Joshua Watt <JPEWhacker@gmail.com> +Date: Thu, 20 Feb 2020 15:20:45 -0600 +Subject: [PATCH] build: Fix strndup detection on MinGW + +GCC and meson conspire together to incorrectly detect that strndup() +exists on MinGW as __builtin_strndup, when no such function exists. As a +work around, meson will skip looking for __builtin functions if an +'#include' is in the prefix, so add '#include <string.h>' when looking +for strndup(). + +See: https://github.com/mesonbuild/meson/issues/3672 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63] + +Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> +Signed-off-by: Denys Dmytriyenko <denis@denix.org> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 8e28f2a..b56ba91 100644 +--- a/meson.build ++++ b/meson.build +@@ -45,11 +45,11 @@ have_funcs = [ + 'prctl', + 'memfd_create', + 'mremap', +- 'strndup', + ] + foreach f: have_funcs + config_h.set('HAVE_' + f.underscorify().to_upper(), cc.has_function(f)) + endforeach ++config_h.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup')) + config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include <sys/ucred.h>')) + have_broken_msg_cmsg_cloexec = false + if host_machine.system() == 'freebsd' diff --git a/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch b/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch deleted file mode 100644 index c4435875ad..0000000000 --- a/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Fri, 25 Oct 2019 21:03:23 -0500 -Subject: [PATCH] scanner: Add configure check for strndup - -Some platforms may not have strndup() (e.g. MinGW), so provide a -equivalent implementation if it's not found. - -Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571] -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> ---- - configure.ac | 2 +- - src/scanner.c | 11 +++++++++++ - 2 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 8d56f2b..1c99e21 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -63,7 +63,7 @@ fi - AC_SUBST(GCC_CFLAGS) - - AC_CHECK_HEADERS([sys/prctl.h]) --AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl]) -+AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup]) - - AC_ARG_ENABLE([libraries], - [AC_HELP_STRING([--disable-libraries], -diff --git a/src/scanner.c b/src/scanner.c -index a94be5d..27004bc 100644 ---- a/src/scanner.c -+++ b/src/scanner.c -@@ -916,6 +916,17 @@ verify_arguments(struct parse_context *ctx, - - } - -+#ifndef HAVE_STRNDUP -+char * -+strndup(const char *s, size_t size) -+{ -+ char *r = malloc(size + 1); -+ strncpy(r, s, size); -+ r[size] = '\0'; -+ return r; -+} -+#endif -+ - static void - end_element(void *data, const XML_Char *name) - { diff --git a/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch b/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch deleted file mode 100644 index b05b875abb..0000000000 --- a/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch +++ /dev/null @@ -1,166 +0,0 @@ -From e746f3bf7c8bb2f5dcf9e93edffc23b56eff12d0 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Tue, 5 Nov 2019 09:09:50 -0600 -Subject: [PATCH] Move wl_priv_signal to wayland-server-private.h - -Including wayland-server-core.h in wayland-private.h is problematic -because wayland-private.h is included by wayland-scanner which should be -able to build against non-POSIX platforms (e.g. MinGW). The only reason -that wayland-server-core.h was included in wayland-private.h was for the -wl_private_signal definitions, so move those to a -wayland-server-private.h file that can be included by both -wayland-server.c and the tests. - -Upstream-Status: Accepted [e7d88f35eb89cf0cc77cbddd834cacc63683a9cc] -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> ---- - Makefile.am | 3 +- - src/wayland-private.h | 22 +-------------- - src/wayland-server-private.h | 53 ++++++++++++++++++++++++++++++++++++ - src/wayland-server.c | 1 + - tests/newsignal-test.c | 2 +- - 5 files changed, 58 insertions(+), 23 deletions(-) - create mode 100644 src/wayland-server-private.h - -diff --git a/Makefile.am b/Makefile.am -index f47d055..026d981 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -56,7 +56,8 @@ libwayland_private_la_SOURCES = \ - src/connection.c \ - src/wayland-os.c \ - src/wayland-os.h \ -- src/wayland-private.h -+ src/wayland-private.h \ -+ src/wayland-server-private.h - - include_HEADERS = \ - src/wayland-util.h \ -diff --git a/src/wayland-private.h b/src/wayland-private.h -index 29516ec..dc7d12f 100644 ---- a/src/wayland-private.h -+++ b/src/wayland-private.h -@@ -31,11 +31,11 @@ - #include <stdarg.h> - #include <stdlib.h> - #include <stdint.h> -+#include <stdbool.h> - - #define WL_HIDE_DEPRECATED 1 - - #include "wayland-util.h" --#include "wayland-server-core.h" - - /* Invalid memory address */ - #define WL_ARRAY_POISON_PTR (void *) 4 -@@ -236,26 +236,6 @@ zalloc(size_t s) - return calloc(1, s); - } - --struct wl_priv_signal { -- struct wl_list listener_list; -- struct wl_list emit_list; --}; -- --void --wl_priv_signal_init(struct wl_priv_signal *signal); -- --void --wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); -- --struct wl_listener * --wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); -- --void --wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); -- --void --wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); -- - void - wl_connection_close_fds_in(struct wl_connection *connection, int max); - -diff --git a/src/wayland-server-private.h b/src/wayland-server-private.h -new file mode 100644 -index 0000000..23fa458 ---- /dev/null -+++ b/src/wayland-server-private.h -@@ -0,0 +1,53 @@ -+/* -+ * Copyright © 2008-2011 Kristian Høgsberg -+ * Copyright © 2011 Intel Corporation -+ * Copyright © 2013 Jason Ekstrand -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining -+ * a copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sublicense, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial -+ * portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+#ifndef WAYLAND_SERVER_PRIVATE_H -+#define WAYLAND_SERVER_PRIVATE_H -+ -+#include "wayland-server-core.h" -+ -+struct wl_priv_signal { -+ struct wl_list listener_list; -+ struct wl_list emit_list; -+}; -+ -+void -+wl_priv_signal_init(struct wl_priv_signal *signal); -+ -+void -+wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); -+ -+struct wl_listener * -+wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); -+ -+void -+wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); -+ -+void -+wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); -+ -+#endif -diff --git a/src/wayland-server.c b/src/wayland-server.c -index 19f6a76..d6f0206 100644 ---- a/src/wayland-server.c -+++ b/src/wayland-server.c -@@ -45,6 +45,7 @@ - - #include "wayland-util.h" - #include "wayland-private.h" -+#include "wayland-server-private.h" - #include "wayland-server.h" - #include "wayland-os.h" - -diff --git a/tests/newsignal-test.c b/tests/newsignal-test.c -index 47c429b..f3a7bd9 100644 ---- a/tests/newsignal-test.c -+++ b/tests/newsignal-test.c -@@ -26,7 +26,7 @@ - #include <assert.h> - - #include "test-runner.h" --#include "wayland-private.h" -+#include "wayland-server-private.h" - - static void - signal_notify(struct wl_listener *listener, void *data) diff --git a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch b/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch deleted file mode 100644 index ad3526d984..0000000000 --- a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch +++ /dev/null @@ -1,32 +0,0 @@ -Fix wayland-client and wayland-scanner pc files - -Upstream-Status: Pending - -Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> - -Index: wayland-1.14.0/src/wayland-client.pc.in -=================================================================== ---- wayland-1.14.0.orig/src/wayland-client.pc.in -+++ wayland-1.14.0/src/wayland-client.pc.in -@@ -1,7 +1,7 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - datarootdir=@datarootdir@ --pkgdatadir=@datadir@/@PACKAGE@ -+pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@ - libdir=@libdir@ - includedir=@includedir@ - -Index: wayland-1.14.0/src/wayland-scanner.pc.in -=================================================================== ---- wayland-1.14.0.orig/src/wayland-scanner.pc.in -+++ wayland-1.14.0/src/wayland-scanner.pc.in -@@ -2,7 +2,7 @@ prefix=@prefix@ - exec_prefix=@exec_prefix@ - datarootdir=@datarootdir@ - pkgdatadir=@datadir@/@PACKAGE@ --wayland_scanner=@bindir@/wayland-scanner -+wayland_scanner=wayland-scanner - - Name: Wayland Scanner - Description: Wayland scanner diff --git a/meta/recipes-graphics/wayland/wayland/run-ptest b/meta/recipes-graphics/wayland/wayland/run-ptest new file mode 100644 index 0000000000..7e8d9de046 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland/run-ptest @@ -0,0 +1,17 @@ +#!/bin/sh + +export WAYLAND_SCANNER=wayland-scanner +export TEST_DATA_DIR=tests/data +export TEST_OUTPUT_DIR=tests/output +export SED=sed +export WAYLAND_EGL_LIB=/usr/lib/libwayland-egl.so.1 +export NM=nm + +for i in `ls tests/*-test tests/wayland-egl-symbols-check tests/scanner-test.sh`; do + $i + if [ $? -eq 0 ]; then + echo "PASS: $i" + else + echo "FAIL: $i" + fi +done diff --git a/meta/recipes-graphics/wayland/wayland_1.17.0.bb b/meta/recipes-graphics/wayland/wayland_1.17.0.bb deleted file mode 100644 index 12916a0c40..0000000000 --- a/meta/recipes-graphics/wayland/wayland_1.17.0.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Wayland, a protocol between a compositor and clients" -DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ -as well as a C library implementation of that protocol. The compositor can be \ -a standalone display server running on Linux kernel modesetting and evdev \ -input devices, an X application, or a wayland client itself. The clients can \ -be traditional applications, X servers (rootless or fullscreen) or other \ -display servers." -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ - file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" - -DEPENDS = "expat libffi wayland-native" - -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://fixpathinpcfiles.patch \ - file://0001-scanner-Add-configure-check-for-strndup.patch \ - file://0002-Move-wl_priv_signal-to-wayland-server-private.h.patch \ - " -SRC_URI[md5sum] = "d91f970aea11fd549eae023d06f91af3" -SRC_URI[sha256sum] = "72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4" - -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "dtd-validation" -PACKAGECONFIG[dtd-validation] = "--enable-dtd-validation,--disable-dtd-validation,libxml2,," - -EXTRA_OECONF = "--disable-documentation --with-host-scanner" -EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries" - -# Wayland installs a M4 macro for other projects to use, which uses the target -# pkg-config to find files. Replace pkg-config with pkg-config-native. -do_install_append_class-native() { - sed -e 's,PKG_CHECK_MODULES(.*),,g' \ - -e 's,$PKG_CONFIG,pkg-config-native,g' \ - -i ${D}/${datadir}/aclocal/wayland-scanner.m4 -} - -sysroot_stage_all_append_class-target () { - rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4 - cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/ -} - -FILES_${PN} = "${libdir}/*${SOLIBS}" -FILES_${PN}-dev += "${bindir} ${datadir}/wayland" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/wayland/wayland_1.23.1.bb b/meta/recipes-graphics/wayland/wayland_1.23.1.bb new file mode 100644 index 0000000000..3a5d91be04 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland_1.23.1.bb @@ -0,0 +1,61 @@ +SUMMARY = "Wayland, a protocol between a compositor and clients" +DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ +as well as a C library implementation of that protocol. The compositor can be \ +a standalone display server running on Linux kernel modesetting and evdev \ +input devices, an X application, or a wayland client itself. The clients can \ +be traditional applications, X servers (rootless or fullscreen) or other \ +display servers." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ + file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" + +DEPENDS = "expat libffi wayland-native" + +SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ + file://run-ptest \ + file://0001-build-Fix-strndup-detection-on-MinGW.patch \ + " +SRC_URI[sha256sum] = "864fb2a8399e2d0ec39d56e9d9b753c093775beadc6022ce81f441929a81e5ed" + +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/tags" +UPSTREAM_CHECK_REGEX = "releases/(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig ptest + +PACKAGECONFIG ??= "dtd-validation" +PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,," + +EXTRA_OEMESON = "-Ddocumentation=false" +EXTRA_OEMESON:class-native = "-Ddocumentation=false" + +# Wayland installs a M4 macro for other projects to use, which uses the target +# pkg-config to find files. Replace pkg-config with pkg-config-native. +do_install:append:class-native() { + sed -e 's,PKG_CHECK_MODULES(.*),,g' \ + -e 's,$PKG_CONFIG,pkg-config-native,g' \ + -i ${D}/${datadir}/aclocal/wayland-scanner.m4 +} + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH}/tests/data + cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests + cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH} + cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/ + cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/ +} + +sysroot_stage_all:append:class-target () { + rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4 + cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/ +} + +PACKAGES =+ "${PN}-tools" + +FILES:${PN}-tools = "${bindir}/wayland-scanner" +FILES:${PN}-dev += "${datadir}/${BPN}/wayland-scanner.mk" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools" diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb index e3e739e2b7..3de697ec34 100644 --- a/meta/recipes-graphics/wayland/weston-init.bb +++ b/meta/recipes-graphics/wayland/weston-init.bb @@ -5,45 +5,103 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 PACKAGE_ARCH = "${MACHINE_ARCH}" SRC_URI = "file://init \ + file://weston.env \ file://weston.ini \ - file://weston@.service \ - file://71-weston-drm.rules \ + file://weston.service \ + file://weston.socket \ + file://weston-socket.sh \ + file://weston-autologin \ file://weston-start" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" +PACKAGECONFIG:append:qemuriscv64 = " use-pixman" +PACKAGECONFIG:append:qemuppc64 = " use-pixman" + +PACKAGECONFIG[xwayland] = ",," +PACKAGECONFIG[no-idle-timeout] = ",," +PACKAGECONFIG[use-pixman] = ",," + +DEFAULTBACKEND ??= "" +DEFAULTBACKEND:qemuall ?= "drm" do_install() { - install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston - install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini - - # Install Weston systemd service and accompanying udev rule - install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service - sed -i -e s:/etc:${sysconfdir}:g \ - -e s:/usr/bin:${bindir}:g \ - -e s:/var:${localstatedir}:g \ - ${D}${systemd_unitdir}/system/weston@.service - install -D -p -m0644 ${WORKDIR}/71-weston-drm.rules \ - ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules # Install weston-start script - install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start - sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start - sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start + if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then + install -Dm755 ${S}/weston-start ${D}${bindir}/weston-start + sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start + sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start + install -Dm755 ${S}/init ${D}/${sysconfdir}/init.d/weston + sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston + fi + + # Install Weston systemd service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -D -p -m0644 ${S}/weston.service ${D}${systemd_system_unitdir}/weston.service + install -D -p -m0644 ${S}/weston.socket ${D}${systemd_system_unitdir}/weston.socket + install -D -p -m0644 ${S}/weston-socket.sh ${D}${sysconfdir}/profile.d/weston-socket.sh + sed -i -e s:/etc:${sysconfdir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/var:${localstatedir}:g \ + ${D}${systemd_system_unitdir}/weston.service + fi + + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -p -m0644 ${S}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin + fi + + install -D -p -m0644 ${S}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini + install -Dm644 ${S}/weston.env ${D}${sysconfdir}/default/weston + + if [ -n "${DEFAULTBACKEND}" ]; then + sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + install -dm 755 -o weston -g weston ${D}/home/weston } -inherit update-rc.d features_check systemd +INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}" + +inherit update-rc.d systemd useradd + +USERADD_PACKAGES = "${PN}" # rdepends on weston which depends on virtual/egl -REQUIRED_DISTRO_FEATURES = "opengl" +# +require ${THISDIR}/required-distro-features.inc -RDEPENDS_${PN} = "weston kbd" +RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)}" INITSCRIPT_NAME = "weston" INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." -FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service" +FILES:${PN} += "\ + ${sysconfdir}/xdg/weston/weston.ini \ + ${sysconfdir}/profile.d/weston-socket.sh \ + ${systemd_system_unitdir}/weston.service \ + ${systemd_system_unitdir}/weston.socket \ + ${sysconfdir}/default/weston \ + ${sysconfdir}/pam.d/ \ + /home/weston \ + " -CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini" +CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" -SYSTEMD_SERVICE_${PN} = "weston@%i.service" -SYSTEMD_AUTO_ENABLE = "disable" +SYSTEMD_SERVICE:${PN} = "weston.service weston.socket" +USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,wayland weston" +GROUPADD_PARAM:${PN} = "-r wayland; -r render" diff --git a/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules b/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules deleted file mode 100644 index 1a1b8bbda4..0000000000 --- a/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules +++ /dev/null @@ -1,2 +0,0 @@ -ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fb0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service" -ACTION=="add", SUBSYSTEM=="drm", KERNEL=="card0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service" diff --git a/meta/recipes-graphics/wayland/weston-init/init b/meta/recipes-graphics/wayland/weston-init/init index d3e87c6cef..a5c54e001e 100644 --- a/meta/recipes-graphics/wayland/weston-init/init +++ b/meta/recipes-graphics/wayland/weston-init/init @@ -30,8 +30,9 @@ done case "$1" in start) . /etc/profile + export HOME=ROOTHOME - weston-start -- $OPTARGS + WESTON_USER=weston weston-start $OPTARGS & ;; stop) diff --git a/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini b/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini deleted file mode 100644 index 17ebd7fdab..0000000000 --- a/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini +++ /dev/null @@ -1,2 +0,0 @@ -[core] -backend=fbdev-backend.so diff --git a/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini b/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini deleted file mode 100644 index 17ebd7fdab..0000000000 --- a/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini +++ /dev/null @@ -1,2 +0,0 @@ -[core] -backend=fbdev-backend.so diff --git a/meta/recipes-graphics/wayland/weston-init/weston-autologin b/meta/recipes-graphics/wayland/weston-init/weston-autologin new file mode 100644 index 0000000000..f6e6d106de --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston-autologin @@ -0,0 +1,11 @@ +auth required pam_nologin.so +auth required pam_unix.so try_first_pass nullok + +account required pam_nologin.so +account required pam_unix.so + +session required pam_env.so +session required pam_unix.so +-session optional pam_systemd.so type=wayland class=user desktop=weston +-session optional pam_loginuid.so + diff --git a/meta/recipes-graphics/wayland/weston-init/weston-socket.sh b/meta/recipes-graphics/wayland/weston-init/weston-socket.sh new file mode 100755 index 0000000000..86389d63a3 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston-socket.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# set weston variables for use with global weston socket +global_socket="/run/wayland-0" +if [ -e "$global_socket" ]; then + weston_group=$(stat -c "%G" "$global_socket") + if [ "$(id -u)" = "0" ]; then + export WAYLAND_DISPLAY="$global_socket" + else + case "$(groups "$USER")" in + *"$weston_group"*) + export WAYLAND_DISPLAY="$global_socket" + ;; + *) + ;; + esac + fi + unset weston_group +fi +unset global_socket diff --git a/meta/recipes-graphics/wayland/weston-init/weston-start b/meta/recipes-graphics/wayland/weston-init/weston-start index ccc7093425..01670cd4f5 100755 --- a/meta/recipes-graphics/wayland/weston-init/weston-start +++ b/meta/recipes-graphics/wayland/weston-init/weston-start @@ -6,7 +6,7 @@ export PATH="/sbin:/usr/sbin:/bin:/usr/bin" usage() { cat <<EOF - $0 [<openvt arguments>] [-- <weston options>] + $0 [<weston options>] EOF } @@ -18,9 +18,12 @@ add_weston_argument() { weston_args="$weston_args $1" } -# Add openvt extra argument -add_openvt_argument() { - openvt_args="$openvt_args $1" +## Add module to --modules argument +add_weston_module() { + if [[ "x${weston_modules}" == "x" ]]; then + weston_modules="--modules " + fi; + weston_modules+="${1}," } if [ -n "$WAYLAND_DISPLAY" ]; then @@ -29,29 +32,12 @@ if [ -n "$WAYLAND_DISPLAY" ]; then fi if [ -n "$WESTON_USER" ]; then - if [ -z "$WESTON_TTY" ]; then - echo "ERROR: If you have WESTON_USER variable set, you also need WESTON_TTY." - exit 1 + if [ -z "$WESTON_GROUP" ]; then + # no explicit WESTON_GROUP given, therefore use WESTON_USER + export WESTON_GROUP="${WESTON_USER}" fi - weston_args_user="-u $WESTON_USER -t $WESTON_TTY" fi -if [ -n "$DISPLAY" ]; then - launcher="weston" -else - launcher="weston-launch $weston_args_user --" -fi - -openvt_args="-s" -while [ -n "$1" ]; do - if [ "$1" = "--" ]; then - shift - break - fi - openvt_args="$openvt_args $1" - shift -done - weston_args=$* # Load and run modules @@ -64,6 +50,9 @@ if [ -d "$modules_dir" ]; then # process module . $m + if [[ x"{$weston_modules}" != "x" ]]; then + add_weston_argument "${weston_modules}" + fi; done fi @@ -75,8 +64,8 @@ if test -z "$XDG_RUNTIME_DIR"; then fi if [ -n "$WESTON_USER" ] then - chown $WESTON_USER:$WESTON_USER $XDG_RUNTIME_DIR + chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR fi fi -exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log +su -c "XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` weston $weston_args --log=/tmp/weston.log" $WESTON_USER diff --git a/meta/recipes-graphics/wayland/weston-init/weston.env b/meta/recipes-graphics/wayland/weston-init/weston.env new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston.env diff --git a/meta/recipes-graphics/wayland/weston-init/weston.ini b/meta/recipes-graphics/wayland/weston-init/weston.ini index 1eecf48bc1..6bd5aef55a 100644 --- a/meta/recipes-graphics/wayland/weston-init/weston.ini +++ b/meta/recipes-graphics/wayland/weston-init/weston.ini @@ -1,9 +1,10 @@ # configuration file for Weston -#[core] +[core] #modules=xwayland.so,cms-colord.so #shell=desktop-shell.so #gbm-format=xrgb2101010 +require-input=false #[shell] #background-image=/usr/share/backgrounds/gnome/Aqua.jpg @@ -41,7 +42,7 @@ #path=/build/weston-0lEgCh/weston-1.11.0/weston-flower #[input-method] -#path=/usr/lib/weston/weston-keyboard +#path=/usr/libexec/weston-keyboard #[output] #name=LVDS1 @@ -67,8 +68,8 @@ #min_accel_factor = 0.16 #max_accel_factor = 1.0 -#[screen-share] -#command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize +[screen-share] +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize #[xwayland] #path=/usr/bin/Xwayland diff --git a/meta/recipes-graphics/wayland/weston-init/weston.service b/meta/recipes-graphics/wayland/weston-init/weston.service new file mode 100644 index 0000000000..80745998ed --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston.service @@ -0,0 +1,71 @@ +# This is a system unit for launching Weston with auto-login as the +# user configured here. +# +# Weston must be built with systemd support, and your weston.ini must load +# the plugin systemd-notify.so. +[Unit] +Description=Weston, a Wayland compositor, as a system service +Documentation=man:weston(1) man:weston.ini(5) +Documentation=http://wayland.freedesktop.org/ + +# Make sure we are started after logins are permitted. +Requires=systemd-user-sessions.service +After=systemd-user-sessions.service + +# If Plymouth is used, we want to start when it is on its way out. +After=plymouth-quit-wait.service + +# D-Bus is necessary for contacting logind. Logind is required. +Wants=dbus.socket +After=dbus.socket + +# Ensure the socket is present +Requires=weston.socket + +# Since we are part of the graphical session, make sure we are started before +# it is complete. +Before=graphical.target + +# Prevent starting on systems without virtual consoles, Weston requires one +# for now. +ConditionPathExists=/dev/tty0 + +[Service] +# Requires systemd-notify.so Weston plugin. +Type=notify +EnvironmentFile=/etc/default/weston +ExecStart=/usr/bin/weston --modules=systemd-notify.so + +# Optional watchdog setup +#TimeoutStartSec=60 +#WatchdogSec=20 + +# The user to run Weston as. +User=weston +Group=weston + +# Make sure the working directory is the users home directory +WorkingDirectory=/home/weston + +# Set up a full user session for the user, required by Weston. +PAMName=weston-autologin + +# A virtual terminal is needed. +TTYPath=/dev/tty7 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes + +# Fail to start if not controlling the tty. +StandardInput=tty-fail +StandardOutput=journal +StandardError=journal + +# Log this user with utmp, letting it show up with commands 'w' and 'who'. +UtmpIdentifier=tty7 +UtmpMode=user + +[Install] +# Note: If you only want weston to start on-demand, remove this line with a +# service drop file +WantedBy=graphical.target diff --git a/meta/recipes-graphics/wayland/weston-init/weston.socket b/meta/recipes-graphics/wayland/weston-init/weston.socket new file mode 100644 index 0000000000..c1bdc83c05 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston.socket @@ -0,0 +1,14 @@ +[Unit] +Description=Weston socket +RequiresMountsFor=/run + +[Socket] +ListenStream=/run/wayland-0 +SocketMode=0775 +SocketUser=weston +SocketGroup=wayland +RemoveOnStop=yes + +[Install] +WantedBy=sockets.target + diff --git a/meta/recipes-graphics/wayland/weston-init/weston@.service b/meta/recipes-graphics/wayland/weston-init/weston@.service deleted file mode 100644 index 9ecf2ab069..0000000000 --- a/meta/recipes-graphics/wayland/weston-init/weston@.service +++ /dev/null @@ -1,37 +0,0 @@ -[Unit] -Description=Weston Wayland Compositor (on tty7) -RequiresMountsFor=/run -Conflicts=getty@tty7.service plymouth-quit.service -After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service - -[Service] -User=%i -PermissionsStartOnly=true - -# Log us in via PAM so we get our XDG & co. environment and -# are treated as logged in so we can use the tty: -PAMName=login - -# Grab tty7 -UtmpIdentifier=tty7 -TTYPath=/dev/tty7 -TTYReset=yes -TTYVHangup=yes -TTYVTDisallocate=yes - -# stderr to journal so our logging doesn't get thrown into /dev/null -StandardOutput=tty -StandardInput=tty -StandardError=journal - -EnvironmentFile=-/etc/default/weston - -# Weston does not successfully change VT, nor does systemd place us on -# the VT it just activated for us. Switch manually: -ExecStartPre=/usr/bin/chvt 7 -ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS - -IgnoreSIGPIPE=no - -#[Install] -#Alias=multi-user.target.wants/weston.service diff --git a/meta/recipes-graphics/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch b/meta/recipes-graphics/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch new file mode 100644 index 0000000000..2a833ee973 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston/0001-libweston-tools-Include-libgen.h-for-basename-signat.patch @@ -0,0 +1,45 @@ +From 1a2a87013eb6af8e5267ecaf61e17b65a31dc662 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 14 Dec 2023 09:13:54 -0800 +Subject: [PATCH] libweston,tools: Include libgen.h for basename signature + +Latest musl has removed the declaration from string.h [1] as it only +implements POSIX version alone and string.h in glibc implements GNU +version of basename. This now results in compile errors on musl. + +This might be a warning with older compilers but it is error with +Clang-17+ as it treats -Wimplicit-function-declaration as error + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1420] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libweston/backend-drm/libbacklight.c | 1 + + tools/zunitc/src/zunitc_impl.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libweston/backend-drm/libbacklight.c b/libweston/backend-drm/libbacklight.c +index ca7f2d6..74690fa 100644 +--- a/libweston/backend-drm/libbacklight.c ++++ b/libweston/backend-drm/libbacklight.c +@@ -41,6 +41,7 @@ + #include <drm.h> + #include <fcntl.h> + #include <malloc.h> ++#include <libgen.h> + #include <string.h> + #include <errno.h> + +diff --git a/tools/zunitc/src/zunitc_impl.c b/tools/zunitc/src/zunitc_impl.c +index 18f0301..9b460fa 100644 +--- a/tools/zunitc/src/zunitc_impl.c ++++ b/tools/zunitc/src/zunitc_impl.c +@@ -27,6 +27,7 @@ + + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <stdarg.h> + #include <stdbool.h> + #include <stdio.h> diff --git a/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch deleted file mode 100644 index e50845b17a..0000000000 --- a/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 682b7d79a7b81ec8e38760381104b24ad549e8c0 Mon Sep 17 00:00:00 2001 -From: Tom Hochstein <tom.hochstein@nxp.com> -Date: Wed, 22 Feb 2017 15:53:30 +0200 -Subject: [PATCH] weston-launch: Provide a default version that doesn't require - PAM - -weston-launch requires PAM for starting weston as a non-root user. - -Since starting weston as root is a valid use case by itself, if -PAM is not available, provide a default version of weston-launch -without non-root-user support. - -Upstream-Status: Pending - -Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> -Signed-off-by: Denys Dmytriyenko <denys@ti.com> -Signed-off-by: Ming Liu <ming.liu@toradex.com> ---- - libweston/meson.build | 16 ++++++++++++---- - libweston/weston-launch.c | 21 +++++++++++++++++++++ - meson_options.txt | 7 +++++++ - 3 files changed, 40 insertions(+), 4 deletions(-) - -diff --git a/libweston/meson.build b/libweston/meson.build -index d8d3fc0..326683f 100644 ---- a/libweston/meson.build -+++ b/libweston/meson.build -@@ -199,16 +199,24 @@ dep_vertex_clipping = declare_dependency( - ) - - if get_option('weston-launch') -- dep_pam = cc.find_library('pam') -+ deps_weston_launch = [systemd_dep, dep_libdrm] - -- if not cc.has_function('pam_open_session', dependencies: dep_pam) -- error('pam_open_session not found for weston-launch') -+ if get_option('pam') -+ dep_pam = cc.find_library('pam') -+ if not cc.has_function('pam_open_session', dependencies: dep_pam) -+ error('pam_open_session not found for weston-launch') -+ endif -+ -+ if dep_pam.found() -+ deps_weston_launch += dep_pam -+ config_h.set('HAVE_PAM', '1') -+ endif - endif - - executable( - 'weston-launch', - 'weston-launch.c', -- dependencies: [dep_pam, systemd_dep, dep_libdrm], -+ dependencies: deps_weston_launch, - include_directories: include_directories('..'), - install: true - ) -diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c -index 4962bd6..fc531c5 100644 ---- a/libweston/weston-launch.c -+++ b/libweston/weston-launch.c -@@ -51,7 +51,9 @@ - - #include <pwd.h> - #include <grp.h> -+#ifdef HAVE_PAM - #include <security/pam_appl.h> -+#endif - - #ifdef HAVE_SYSTEMD_LOGIN - #include <systemd/sd-login.h> -@@ -100,8 +102,10 @@ drmSetMaster(int drm_fd) - #endif - - struct weston_launch { -+#ifdef HAVE_PAM - struct pam_conv pc; - pam_handle_t *ph; -+#endif - int tty; - int ttynr; - int sock[2]; -@@ -192,6 +196,7 @@ weston_launch_allowed(struct weston_launch *wl) - return false; - } - -+#ifdef HAVE_PAM - static int - pam_conversation_fn(int msg_count, - const struct pam_message **messages, -@@ -232,6 +237,7 @@ setup_pam(struct weston_launch *wl) - - return 0; - } -+#endif - - static int - setup_launcher_socket(struct weston_launch *wl) -@@ -431,6 +437,7 @@ quit(struct weston_launch *wl, int status) - close(wl->signalfd); - close(wl->sock[0]); - -+#ifdef HAVE_PAM - if (wl->new_user) { - err = pam_close_session(wl->ph, 0); - if (err) -@@ -438,6 +445,7 @@ quit(struct weston_launch *wl, int status) - err, pam_strerror(wl->ph, err)); - pam_end(wl->ph, err); - } -+#endif - - if (ioctl(wl->tty, KDSKBMUTE, 0) && - ioctl(wl->tty, KDSKBMODE, wl->kb_mode)) -@@ -660,6 +668,7 @@ setup_session(struct weston_launch *wl, char **child_argv) - setenv("HOME", wl->pw->pw_dir, 1); - setenv("SHELL", wl->pw->pw_shell, 1); - -+#ifdef HAVE_PAM - env = pam_getenvlist(wl->ph); - if (env) { - for (i = 0; env[i]; ++i) { -@@ -668,6 +677,7 @@ setup_session(struct weston_launch *wl, char **child_argv) - } - free(env); - } -+#endif - - /* - * We open a new session, so it makes sense -@@ -739,8 +749,10 @@ static void - help(const char *name) - { - fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); -+#ifdef HAVE_PAM - fprintf(stderr, " -u, --user Start session as specified username,\n" - " e.g. -u joe, requires root.\n"); -+#endif - fprintf(stderr, " -t, --tty Start session on alternative tty,\n" - " e.g. -t /dev/tty4, requires -u option.\n"); - fprintf(stderr, " -v, --verbose Be verbose\n"); -@@ -754,7 +766,9 @@ main(int argc, char *argv[]) - int i, c; - char *tty = NULL; - struct option opts[] = { -+#ifdef HAVE_PAM - { "user", required_argument, NULL, 'u' }, -+#endif - { "tty", required_argument, NULL, 't' }, - { "verbose", no_argument, NULL, 'v' }, - { "help", no_argument, NULL, 'h' }, -@@ -766,11 +780,16 @@ main(int argc, char *argv[]) - while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { - switch (c) { - case 'u': -+#ifdef HAVE_PAM - wl.new_user = optarg; - if (getuid() != 0) { - fprintf(stderr, "weston: Permission denied. -u allowed for root only\n"); - exit(EXIT_FAILURE); - } -+#else -+ fprintf(stderr, "weston: -u is unsupported in this weston-launch build\n"); -+ exit(EXIT_FAILURE); -+#endif - break; - case 't': - tty = optarg; -@@ -822,8 +841,10 @@ main(int argc, char *argv[]) - if (setup_tty(&wl, tty) < 0) - exit(EXIT_FAILURE); - -+#ifdef HAVE_PAM - if (wl.new_user && setup_pam(&wl) < 0) - exit(EXIT_FAILURE); -+#endif - - if (setup_launcher_socket(&wl) < 0) - exit(EXIT_FAILURE); -diff --git a/meson_options.txt b/meson_options.txt -index d5bf1d5..254eb2b 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -73,6 +73,13 @@ option( - ) - - option( -+ 'pam', -+ type: 'boolean', -+ value: true, -+ description: 'Define if PAM is available' -+) -+ -+option( - 'xwayland', - type: 'boolean', - value: true, --- -2.7.4 - diff --git a/meta/recipes-graphics/wayland/weston/systemd-notify.weston-start b/meta/recipes-graphics/wayland/weston/systemd-notify.weston-start new file mode 100644 index 0000000000..a97e7b38d9 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston/systemd-notify.weston-start @@ -0,0 +1,9 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: Huawei Inc. +# SPDX-License-Identifier: Apache-2.0 + + +if [[ -x "/usr/lib/weston/systemd-notify.so" ]]; then + add_weston_module "systemd-notify.so" +fi diff --git a/meta/recipes-graphics/wayland/weston/xwayland.weston-start b/meta/recipes-graphics/wayland/weston/xwayland.weston-start index b483c97cf1..342ac8d129 100644 --- a/meta/recipes-graphics/wayland/weston/xwayland.weston-start +++ b/meta/recipes-graphics/wayland/weston/xwayland.weston-start @@ -1,7 +1,6 @@ #!/bin/sh if type Xwayland >/dev/null 2>/dev/null; then - mkdir -p /tmp/.X11-unix - - add_weston_argument "--modules=xwayland.so" + mkdir -m 775 -p /tmp/.X11-unix + chown root:video /tmp/.X11-unix fi diff --git a/meta/recipes-graphics/wayland/weston_13.0.3.bb b/meta/recipes-graphics/wayland/weston_13.0.3.bb new file mode 100644 index 0000000000..e4843d38f7 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston_13.0.3.bb @@ -0,0 +1,146 @@ +SUMMARY = "Weston, a Wayland compositor" +DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \ + " + +SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ + file://0001-libweston-tools-Include-libgen.h-for-basename-signat.patch \ + file://weston.png \ + file://weston.desktop \ + file://xwayland.weston-start \ + file://systemd-notify.weston-start \ + " + +SRC_URI[sha256sum] = "27f68d96e3b97d98daadef13a202356524924fa381418fa6716b9136ef099093" + +UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/weston/-/tags" +UPSTREAM_CHECK_REGEX = "releases/(?P<pver>\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig useradd + +# depends on virtual/egl +# +require ${THISDIR}/required-distro-features.inc + +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" + +LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" + +WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" + +EXTRA_OEMESON += "-Dpipewire=false" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ + ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ + image-jpeg \ + screenshare \ + shell-desktop \ + shell-fullscreen \ + shell-ivi \ + shell-kiosk \ + " + +# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all' +SIMPLECLIENTS ?= "all" + +# +# Compositor choices +# +# Weston on KMS +PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev seatd virtual/egl virtual/libgles2 virtual/libgbm mtdev" +# Weston on Wayland (nested Weston) +PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" +# Weston on X11 +PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcursor" +# Headless Weston +PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" +# Weston on RDP +PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" +# VA-API desktop recorder +PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" +# Weston with EGL support +PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" +# Weston with lcms support +PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" +# Weston with webp support +PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" +# Weston with systemd support +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus" +# Weston with Xwayland support (requires X11 and Wayland) +PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland" +# colord CMS support +PACKAGECONFIG[colord] = "-Ddeprecated-color-management-colord=true,-Ddeprecated-color-management-colord=false,colord" +# Clients support +PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" +# Virtual remote output with GStreamer on DRM backend +PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" +# Weston with screen-share support +PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false" +# Traditional desktop shell +PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" +# Fullscreen shell +PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false" +# In-Vehicle Infotainment (IVI) shell +PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false" +# Kiosk shell +PACKAGECONFIG[shell-kiosk] = "-Dshell-kiosk=true,-Dshell-kiosk=false" +# JPEG image loading support +PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" +# screencasting via PipeWire +PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire" +# VNC remote screensharing +PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc" + + +do_install:append() { + # Weston doesn't need the .la files to load modules, so wipe them + rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la + + # If X11, ship a desktop file to launch it + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then + install -d ${D}${datadir}/applications + install ${UNPACKDIR}/weston.desktop ${D}${datadir}/applications + + install -d ${D}${datadir}/icons/hicolor/48x48/apps + install ${UNPACKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${UNPACKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${UNPACKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then + chmod u+s ${D}${bindir}/weston-launch + fi +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ + libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" + +FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" +FILES:${PN} = "${sysconfdir} ${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" + +FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" +SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." + +FILES:${PN}-examples = "${bindir}/*" + +FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" +RDEPENDS:${PN}-xwayland += "xwayland" + +RDEPENDS:${PN} += "xkeyboard-config" +RRECOMMENDS:${PN} = "weston-init liberation-fonts" +RRECOMMENDS:${PN}-dev += "wayland-protocols" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM:${PN} = "--system weston-launch" diff --git a/meta/recipes-graphics/wayland/weston_7.0.0.bb b/meta/recipes-graphics/wayland/weston_7.0.0.bb deleted file mode 100644 index e6548d3541..0000000000 --- a/meta/recipes-graphics/wayland/weston_7.0.0.bb +++ /dev/null @@ -1,111 +0,0 @@ -SUMMARY = "Weston, a Wayland compositor" -DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ - file://libweston/compositor.c;endline=27;md5=6c53bbbd99273f4f7c4affa855c33c0a" - -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://weston.png \ - file://weston.desktop \ - file://xwayland.weston-start \ - file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ -" -SRC_URI[md5sum] = "cbfda483bc2501d0831af3f33c707850" -SRC_URI[sha256sum] = "a00a6d207b6a45f95f4401c604772a307c3767e5e2beecf3d879110c43909a64" - -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" - -inherit meson pkgconfig useradd features_check -# depends on virtual/egl -REQUIRED_DISTRO_FEATURES = "opengl" - -DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" -DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" - -WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" - -EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \ - ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ - clients launch" -# -# Compositor choices -# -# Weston on KMS -PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" -# Weston on Wayland (nested Weston) -PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" -# Weston on X11 -PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo" -# Headless Weston -PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" -# Weston on framebuffer -PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev" -# weston-launch -PACKAGECONFIG[launch] = "-Dweston-launch=true,-Dweston-launch=false,drm" -# VA-API desktop recorder -PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" -# Weston with EGL support -PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" -# Weston with lcms support -PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" -# Weston with webp support -PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" -# Weston with systemd-login support -PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus" -# Weston with Xwayland support (requires X11 and Wayland) -PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false" -# colord CMS support -PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord" -# Clients support -PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" -# Virtual remote output with GStreamer on DRM backend -PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer-1.0" -# Weston with PAM support -PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam" - -do_install_append() { - # Weston doesn't need the .la files to load modules, so wipe them - rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la - - # If X11, ship a desktop file to launch it - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then - install -d ${D}${datadir}/applications - install ${WORKDIR}/weston.desktop ${D}${datadir}/applications - - install -d ${D}${datadir}/icons/hicolor/48x48/apps - install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps - fi - - if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then - install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland - fi - - if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then - chmod u+s ${D}${bindir}/weston-launch - fi -} - -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ - libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" - -FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}" - -FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" -SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." - -FILES_${PN}-examples = "${bindir}/*" - -FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" -RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland" - -RDEPENDS_${PN} += "xkeyboard-config" -RRECOMMENDS_${PN} = "weston-init liberation-fonts" -RRECOMMENDS_${PN}-dev += "wayland-protocols" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system weston-launch" diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf b/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf new file mode 100644 index 0000000000..7ab7460816 --- /dev/null +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf @@ -0,0 +1,2 @@ +cap_sys_admin @USER@ +none * diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm index 6c548551b8..116bb278bc 100755 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm @@ -38,6 +38,14 @@ case "$1" in if [ -e /dev/hidraw0 ]; then chmod o+rw /dev/hidraw* fi + # Make sure that the Xorg has the cap_sys_admin capability which is + # needed for setting the drm master + if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then + echo "auth optional pam_cap.so" >>/etc/pam.d/su + fi + if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then + /usr/sbin/setcap cap_sys_admin+eip $XSERVER + fi fi # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb index 385fea5e83..cd4acf8155 100644 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb @@ -1,8 +1,7 @@ SUMMARY = "Simple Xserver Init Script (no dm)" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SECTION = "x11" -PR = "r31" SRC_URI = "file://xserver-nodm \ file://Xserver \ @@ -10,16 +9,18 @@ SRC_URI = "file://xserver-nodm \ file://gplv2-license.patch \ file://xserver-nodm.service.in \ file://xserver-nodm.conf.in \ + file://capability.conf \ " -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" # Since we refer to ROOTLESS_X which is normally enabled per-machine PACKAGE_ARCH = "${MACHINE_ARCH}" inherit update-rc.d systemd features_check -REQUIRED_DISTRO_FEATURES = "x11" +REQUIRED_DISTRO_FEATURES = "x11 ${@oe.utils.conditional('ROOTLESS_X', '1', 'pam', '', d)}" PACKAGECONFIG ??= "blank" # dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG @@ -40,6 +41,8 @@ do_install() { if [ "${ROOTLESS_X}" = "1" ] ; then XUSER_HOME="/home/xuser" XUSER="xuser" + install -D capability.conf ${D}${sysconfdir}/security/capability.conf + sed -i "s:@USER@:${XUSER}:" ${D}${sysconfdir}/security/capability.conf else XUSER_HOME=${ROOT_HOME} XUSER="root" @@ -49,9 +52,9 @@ do_install() { sed -i "s:@NO_CURSOR_ARG@:${NO_CURSOR_ARG}:" ${D}${sysconfdir}/default/xserver-nodm if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/xserver-nodm.service.in ${D}${systemd_unitdir}/system/xserver-nodm.service - sed -i "s:@USER@:${XUSER}:" ${D}${systemd_unitdir}/system/xserver-nodm.service + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/xserver-nodm.service.in ${D}${systemd_system_unitdir}/xserver-nodm.service + sed -i "s:@USER@:${XUSER}:" ${D}${systemd_system_unitdir}/xserver-nodm.service fi if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then @@ -60,10 +63,10 @@ do_install() { fi } -RDEPENDS_${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}" +RDEPENDS:${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account libcap libcap-bin', '', d)}" INITSCRIPT_NAME = "xserver-nodm" INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ." -SYSTEMD_SERVICE_${PN} = "xserver-nodm.service" +SYSTEMD_SERVICE:${PN} = "xserver-nodm.service" -RCONFLICTS_${PN} = "xserver-common (< 1.34-r9) x11-common" +RCONFLICTS:${PN} = "xserver-common (< 1.34-r9) x11-common" diff --git a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb index a4ab7f6eb8..40b77422bf 100644 --- a/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb +++ b/meta/recipes-graphics/xcursor-transparent-theme/xcursor-transparent-theme_git.bb @@ -2,19 +2,19 @@ SUMMARY = "Transparent X11 cursor theme for touchscreens" HOMEPAGE = "http://www.matchbox-project.org/" BUGTRACKER = "http://bugzilla.yoctoproject.org/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SECTION = "x11/base" SRCREV = "23c8af5ba4a1b7efbaf0bbca59a65ff7e10a1a06" -PV = "0.1.1+git${SRCPV}" +PV = "0.1.1+git" -SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master" +SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https" UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" inherit autotools allarch -FILES_${PN} = "${datadir}/icons/xcursor-transparent/cursors/*" +FILES:${PN} = "${datadir}/icons/xcursor-transparent/cursors/*" diff --git a/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb b/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb index 65348c3762..f4516e6975 100644 --- a/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb +++ b/meta/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb @@ -1,11 +1,15 @@ SUMMARY = "Touchscreen calibration data from xinput-calibrator" +DESCRIPTION = "A generic touchscreen calibration program for X.Org" +HOMEPAGE = "https://www.freedesktop.org/wiki/Software/xinput_calibrator/" +BUGTRACKER = "https://github.com/tias/xinput_calibrator/issues" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PR = "r7" SRC_URI = "file://pointercal.xinput" -S = "${WORKDIR}" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" do_install() { # Only install file if it has a contents @@ -17,4 +21,4 @@ do_install() { } PACKAGE_ARCH = "${MACHINE_ARCH}" -CONFFILES_${PN} = "${sysconfdir}/pointercal.xinput" +CONFFILES:${PN} = "${sysconfdir}/pointercal.xinput" diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch index 86982924a8..de0862599d 100644 --- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch +++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch @@ -1,4 +1,4 @@ -Upstream-Status: Pending +Upstream-Status: Inactive-Upstream [last commits over a decade ago] From 14734a93bd3fc323325459e24b04795422e395e6 Mon Sep 17 00:00:00 2001 From: Laurentiu Palcu <laurentiu.palcu@intel.com> diff --git a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb index 4f831932e7..0516928a76 100644 --- a/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb +++ b/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb @@ -1,18 +1,17 @@ SUMMARY = "Touchscreen calibration program for X11" HOMEPAGE = "http://www.freedesktop.org/wiki/Software/xinput_calibrator" -LICENSE = "MIT-X" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f34021557898e4b5a" DEPENDS = "virtual/libx11 libxi libxrandr" -PV = "0.7.5+git${SRCPV}" -PR = "r6" +PV = "0.7.5+git" inherit autotools pkgconfig features_check # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -SRCREV = "03dadf55109bd43d3380f040debe9f82f66f2f35" -SRC_URI = "git://github.com/tias/xinput_calibrator.git \ +SRCREV = "18ec53f1cada39f905614ebfaffed5c7754ecf46" +SRC_URI = "git://github.com/kreijack/xinput_calibrator.git;branch=libinput;protocol=https \ file://30xinput_calibrate.sh \ file://Allow-xinput_calibrator_pointercal.sh-to-be-run-as-n.patch \ file://0001-calibrator.hh-Include-string-to-get-std-string.patch \ @@ -23,17 +22,17 @@ S = "${WORKDIR}/git" # force native X11 ui as we don't have gtk+ in DEPENDS EXTRA_OECONF += "--with-gui=x11" -do_install_append() { +do_install:append() { install -d ${D}${bindir} install -m 0755 ${S}/scripts/xinput_calibrator_pointercal.sh ${D}${bindir}/xinput_calibrator_once.sh install -d ${D}${sysconfdir}/X11/Xsession.d/ - install -m 0755 ${WORKDIR}/30xinput_calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/ + install -m 0755 ${UNPACKDIR}/30xinput_calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/ install -d ${D}${sysconfdir}/xdg/autostart sed -e 's,^Exec=.*,Exec=${bindir}/xinput_calibrator_once.sh,' ${S}/scripts/xinput_calibrator.desktop > ${D}${sysconfdir}/xdg/autostart/xinput_calibrator.desktop } -FILES_${PN} += "${sysconfdir}/xdg/autostart" -RDEPENDS_${PN} = "xinput formfactor" -RRECOMMENDS_${PN} = "pointercal-xinput" +FILES:${PN} += "${sysconfdir}/xdg/autostart" +RDEPENDS:${PN} = "xinput formfactor" +RRECOMMENDS:${PN} = "pointercal-xinput" diff --git a/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb b/meta/recipes-graphics/xorg-app/mkfontscale_1.2.3.bb index a767ee847b..aa79902a34 100644 --- a/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb +++ b/meta/recipes-graphics/xorg-app/mkfontscale_1.2.3.bb @@ -11,11 +11,11 @@ is used by the mkfontdir program." DEPENDS = "util-macros-native zlib libfontenc freetype xorgproto" PROVIDES += "mkfontdir" -RPROVIDES_${PN} += "mkfontdir" +RPROVIDES:${PN} += "mkfontdir" BBCLASSEXTEND = "native" -LIC_FILES_CHKSUM = "file://COPYING;md5=99b1e1269aba5179139b9e4380fc0934" +LIC_FILES_CHKSUM = "file://COPYING;md5=5a60c596d1b5f3dee9f005b703b3180d" -SRC_URI[md5sum] = "215940de158b1a3d8b3f8b442c606e2f" -SRC_URI[sha256sum] = "ca0495eb974a179dd742bfa6199d561bda1c8da4a0c5a667f21fd82aaab6bac7" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "2921cdc344f1acee04bcd6ea1e29565c1308263006e134a9ee38cf9c9d6fe75e" diff --git a/meta/recipes-graphics/xorg-app/rgb_1.0.6.bb b/meta/recipes-graphics/xorg-app/rgb_1.1.0.bb index c3e853631b..f14da7fd21 100644 --- a/meta/recipes-graphics/xorg-app/rgb_1.0.6.bb +++ b/meta/recipes-graphics/xorg-app/rgb_1.1.0.bb @@ -10,7 +10,7 @@ DEPENDS += " xorgproto util-macros" LIC_FILES_CHKSUM = "file://COPYING;md5=ef598adbe241bd0b0b9113831f6e249a" PE = "1" -SRC_URI[md5sum] = "eab5bbd7642e5c784429307ec210d198" -SRC_URI[sha256sum] = "bbca7c6aa59939b9f6a0fb9fff15dfd62176420ffd4ae30c8d92a6a125fbe6b0" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "fc03d7f56e5b2a617668167f8927948cce54f93097e7ccd9f056077f479ed37b" -FILES_${PN} += "${datadir}/X11" +FILES:${PN} += "${datadir}/X11" diff --git a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb index 33c0c8a95c..651d03caca 100644 --- a/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb +++ b/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb @@ -13,11 +13,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \ PE = "1" -do_install_append_class-target () { +inherit multilib_script + +MULTILIB_SCRIPTS = "${PN}:${bindir}/x11perfcomp" + +do_install:append:class-target () { sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${bindir}/x11perfcomp } -FILES_${PN} += "${libdir}/X11/x11perfcomp/*" +FILES:${PN} += "${libdir}/X11/x11perfcomp/*" SRC_URI[md5sum] = "e96b56756990c56c24d2d02c2964456b" SRC_URI[sha256sum] = "1c7e0b8ffc2794b4ccf11e04d551823abe0ea47b4f7db0637390db6fbe817c34" diff --git a/meta/recipes-graphics/xorg-app/xauth_1.1.bb b/meta/recipes-graphics/xorg-app/xauth_1.1.3.bb index 24ad9606ec..b0ca33bf4b 100644 --- a/meta/recipes-graphics/xorg-app/xauth_1.1.bb +++ b/meta/recipes-graphics/xorg-app/xauth_1.1.3.bb @@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b" DEPENDS += "libxau libxext libxmu" PE = "1" -SRC_URI[md5sum] = "e50587c1bb832aafd1a19d91a0890a0b" -SRC_URI[sha256sum] = "6d1dd1b79dd185107c5b0fdd22d1d791ad749ad6e288d0cdf80964c4ffa7530c" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "e7075498bae332f917f01d660f9b940c0752b2556a8da61ccb62a44d0ffe9d33" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb b/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb index 2d10b7acca..3becd40281 100644 --- a/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb +++ b/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb @@ -9,12 +9,12 @@ clients and the server, and the different types of screens and visuals \ that are available." LIC_FILES_CHKSUM = "file://COPYING;md5=f3d09e6b9e203a1af489e16c708f4fb3" -DEPENDS += "libxtst libxext libxxf86vm libxi libxrender libxinerama libdmx libxau libxcomposite" +DEPENDS += "libxtst libxext libxxf86vm libxi libxrender libxinerama libxau libxcomposite" PE = "1" SRC_URI += "file://disable-xkb.patch" -SRC_URI[md5sum] = "8809037bd48599af55dad81c508b6b39" -SRC_URI[sha256sum] = "30238ed915619e06ceb41721e5f747d67320555cc38d459e954839c189ccaf51" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "a8ada581dbd7266440d7c3794fa89edf6b99b8857fc2e8c31042684f3af4822b" EXTRA_OECONF = "--disable-xkb" diff --git a/meta/recipes-graphics/xorg-app/xev/diet-x11.patch b/meta/recipes-graphics/xorg-app/xev/diet-x11.patch deleted file mode 100644 index 53c0ac2e61..0000000000 --- a/meta/recipes-graphics/xorg-app/xev/diet-x11.patch +++ /dev/null @@ -1,109 +0,0 @@ -Upstream-Status: Inappropriate [disable feature] - ---- - xev.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -Index: xev-1.2.3/xev.c -=================================================================== ---- xev-1.2.3.orig/xev.c -+++ xev-1.2.3/xev.c -@@ -125,17 +125,6 @@ do_KeyPress(XEvent *eventp) - nbytes = XLookupString(e, str, 256, &ks, NULL); - - /* not supposed to call XmbLookupString on a key release event */ -- if (e->type == KeyPress && xic) { -- do { -- nmbbytes = XmbLookupString(xic, e, buf, bsize - 1, &ks, &status); -- buf[nmbbytes] = '\0'; -- -- if (status == XBufferOverflow) { -- bsize = nmbbytes + 1; -- buf = realloc(buf, bsize); -- } -- } while (status == XBufferOverflow); -- } - - if (ks == NoSymbol) - ksname = "NoSymbol"; -@@ -168,16 +157,6 @@ do_KeyPress(XEvent *eventp) - } - - /* not supposed to call XmbLookupString on a key release event */ -- if (e->type == KeyPress && xic) { -- printf(" XmbLookupString gives %d bytes: ", nmbbytes); -- if (nmbbytes > 0) { -- dump(buf, nmbbytes); -- printf(" \"%s\"\n", buf); -- } -- else { -- printf("\n"); -- } -- } - - printf(" XFilterEvent returns: %s\n", - XFilterEvent(eventp, e->window) ? "True" : "False"); -@@ -1141,7 +1120,7 @@ parse_event_mask(const char *s, long eve - if (s) - return True; - } -- } -+ } - - if (s != NULL) - fprintf(stderr, "%s: unrecognized event mask '%s'\n", ProgramName, s); -@@ -1288,37 +1267,6 @@ main(int argc, char **argv) - fprintf(stderr, "%s: XSetLocaleModifiers failed\n", ProgramName); - } - -- xim = XOpenIM(dpy, NULL, NULL, NULL); -- if (xim == NULL) { -- fprintf(stderr, "%s: XOpenIM failed\n", ProgramName); -- } -- -- if (xim) { -- imvalret = XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL); -- if (imvalret != NULL || xim_styles == NULL) { -- fprintf(stderr, "%s: input method doesn't support any styles\n", -- ProgramName); -- } -- -- if (xim_styles) { -- xim_style = 0; -- for (i = 0; i < xim_styles->count_styles; i++) { -- if (xim_styles->supported_styles[i] == -- (XIMPreeditNothing | XIMStatusNothing)) { -- xim_style = xim_styles->supported_styles[i]; -- break; -- } -- } -- -- if (xim_style == 0) { -- fprintf(stderr, -- "%s: input method doesn't support the style we support\n", -- ProgramName); -- } -- XFree(xim_styles); -- } -- } -- - screen = DefaultScreen(dpy); - - attr.event_mask = event_masks[EVENT_MASK_INDEX_CORE]; -@@ -1373,16 +1321,6 @@ main(int argc, char **argv) - printf("Outer window is 0x%lx, inner window is 0x%lx\n", w, subw); - } - -- if (xim && xim_style) { -- xic = XCreateIC(xim, -- XNInputStyle, xim_style, -- XNClientWindow, w, XNFocusWindow, w, NULL); -- -- if (xic == NULL) { -- fprintf(stderr, "XCreateIC failed\n"); -- } -- } -- - have_rr = XRRQueryExtension(dpy, &rr_event_base, &rr_error_base); - if (have_rr) { - int rr_major, rr_minor; diff --git a/meta/recipes-graphics/xorg-app/xev_1.2.3.bb b/meta/recipes-graphics/xorg-app/xev_1.2.6.bb index 6a69e747a6..182aeff1b7 100644 --- a/meta/recipes-graphics/xorg-app/xev_1.2.3.bb +++ b/meta/recipes-graphics/xorg-app/xev_1.2.6.bb @@ -12,7 +12,6 @@ PE = "1" DEPENDS += "libxrandr xorgproto" -SRC_URI += "file://diet-x11.patch" +SRC_URI[sha256sum] = "61e1c5e008ac9973aca7cdddf36e9df7410e77083b030eb04f4dc737c51807d7" -SRC_URI[md5sum] = "eec82a5d4b599736f0fa637e96136746" -SRC_URI[sha256sum] = "66bc4f1cfa1946d62612737815c34164e4ce40fcebd2c9e1d7e7a1117ad3ad09" +SRC_URI_EXT = "xz" diff --git a/meta/recipes-graphics/xorg-app/xeyes_1.1.2.bb b/meta/recipes-graphics/xorg-app/xeyes_1.3.0.bb index 06885f8f53..3d1a7063ea 100644 --- a/meta/recipes-graphics/xorg-app/xeyes_1.1.2.bb +++ b/meta/recipes-graphics/xorg-app/xeyes_1.3.0.bb @@ -8,7 +8,7 @@ PE = "1" LIC_FILES_CHKSUM = "file://COPYING;md5=3ea51b365051ac32d1813a7dbaa4bfc6" -SRC_URI[md5sum] = "6f0543ec84283df5743eeafc173bea4a" -SRC_URI[sha256sum] = "57bcec0d2d167af9e5d44d0dbd74c6d7c0f0591cd0608952b23c749fdd910553" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "0950c600bf33447e169a539ee6655ef9f36d6cebf2c1be67f7ab55dacb753023" -DEPENDS += "libxau libxt libxext libxmu libxrender" +DEPENDS += "libxau libxt libxext libxmu libxrender libxi" diff --git a/meta/recipes-graphics/xorg-app/xhost_1.0.8.bb b/meta/recipes-graphics/xorg-app/xhost_1.0.9.bb index 26bec3f0dd..d54e6cae65 100644 --- a/meta/recipes-graphics/xorg-app/xhost_1.0.8.bb +++ b/meta/recipes-graphics/xorg-app/xhost_1.0.9.bb @@ -9,12 +9,13 @@ and security. Environments which require more sophisticated measures \ should implement the user-based mechanism or use the hooks in the \ protocol for passing other authentication data to the server." -LIC_FILES_CHKSUM = "file://COPYING;md5=8fbed71dddf48541818cef8079124199" -DEPENDS += "libxmu libxau" +LIC_FILES_CHKSUM = "file://COPYING;md5=b1f81049109f21bb3c365d9f42f79f3b" +DEPENDS += "libxmu libxau gettext-native" PE = "1" -SRC_URI[md5sum] = "a48c72954ae6665e0616f6653636da8c" -SRC_URI[sha256sum] = "a2dc3c579e13674947395ef8ccc1b3763f89012a216c2cc6277096489aadc396" +SRC_URI_EXT = "xz" + +SRC_URI[sha256sum] = "ea86b531462035b19a2e5e01ef3d9a35cca7d984086645e2fc844d8f0e346645" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch b/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch new file mode 100644 index 0000000000..649905574c --- /dev/null +++ b/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch @@ -0,0 +1,28 @@ +From d642e60d8963f1b90569cd0ab5c29ac2c9bfe939 Mon Sep 17 00:00:00 2001 +From: Jeremy Puhlman <jpuhlman@mvista.com> +Date: Fri, 6 Mar 2020 22:28:14 +0000 +Subject: [PATCH] Make manpage multilib identical + +Upstream-Status: Submitted + +Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> +--- + man/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/Makefile.am b/man/Makefile.am +index 9c6569f..608e933 100644 +--- a/man/Makefile.am ++++ b/man/Makefile.am +@@ -12,7 +12,7 @@ MAN_SUBSTS+= -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' \ + -e 's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' \ + -e 's|__xinitdir__|$(XINITDIR)|g' \ + -e 's|__bindir__|$(bindir)|g' \ +- -e 's|__libdir__|$(libdir)|g' \ ++ -e 's|__libdir__|$(prefix)/lib*|g' \ + -e 's|__configdir__|$(XINITDIR)|g' + + +-- +2.23.0 + diff --git a/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb b/meta/recipes-graphics/xorg-app/xinit_1.4.2.bb index 5626ebbd52..82c0b0d833 100644 --- a/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb +++ b/meta/recipes-graphics/xorg-app/xinit_1.4.2.bb @@ -12,9 +12,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=18f01e7b39807bebe2b8df101a039b68" PE = "1" -SRC_URI[md5sum] = "6d506ab2efc17a08e87778654e099d37" -SRC_URI[sha256sum] = "de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa54abb9" +SRC_URI += "file://0001-Make-manpage-multilib-identical.patch" + +SRC_URI_EXT = "xz" + +SRC_URI[sha256sum] = "b7d8dc8d22ef9f15985a10b606ee4f2aad6828befa437359934647e88d331f23" EXTRA_OECONF = "ac_cv_path_MCOOKIE=${bindir}/mcookie" -RDEPENDS_${PN} += "util-linux-mcookie" +PACKAGECONFIG ??= "rxvt" +PACKAGECONFIG[rxvt] = "--with-xterm=rxvt,,,rxvt-unicode" + +RDEPENDS:${PN} += "util-linux-mcookie" diff --git a/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb b/meta/recipes-graphics/xorg-app/xinput_1.6.4.bb index ff1f1c9148..f5e3f5da12 100644 --- a/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb +++ b/meta/recipes-graphics/xorg-app/xinput_1.6.4.bb @@ -8,5 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=881525f89f99cad39c9832bcb72e6fa5" DEPENDS += " libxi libxrandr libxinerama" -SRC_URI[md5sum] = "ac6b7432726008b2f50eba82b0e2dbe4" -SRC_URI[sha256sum] = "35a281dd3b9b22ea85e39869bb7670ba78955d5fec17c6ef7165d61e5aeb66ed" +SRC_URI_EXT = "xz" +SRC_URI[md5sum] = "8e4d14823b7cbefe1581c398c6ab0035" +SRC_URI[sha256sum] = "ad04d00d656884d133110eeddc34e9c69e626ebebbbab04dc95791c2907057c8" diff --git a/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb b/meta/recipes-graphics/xorg-app/xkbcomp_1.4.7.bb index eaf8eaaf74..f259f33dd8 100644 --- a/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb +++ b/meta/recipes-graphics/xorg-app/xkbcomp_1.4.7.bb @@ -7,11 +7,13 @@ XKB keymap into one of several output formats. The most common use for \ xkbcomp is to create a compiled keymap file (.xkm extension) which can \ be read directly by XKB-capable X servers or utilities." -LIC_FILES_CHKSUM = "file://COPYING;md5=08436e4f4476964e2e2dd7e7e41e076a" +LIC_FILES_CHKSUM = "file://COPYING;md5=be5e191f04d3f2cd80aa83b928ba984c" DEPENDS += "libxkbfile" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "12610df19df2af3797f2c130ee2bce97" -SRC_URI[sha256sum] = "6dd8bcb9be7e85bd7294abe261b8c7b0539d2fc93e41b80fb8bd013767ce8424" +EXTRA_OECONF += "--disable-selective-werror" + +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "0a288114e5f44e31987042c79aecff1ffad53a8154b8ec971c24a69a80f81f77" diff --git a/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb b/meta/recipes-graphics/xorg-app/xmodmap_1.0.11.bb index 7dedb03a2b..dc955aa977 100644 --- a/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb +++ b/meta/recipes-graphics/xorg-app/xmodmap_1.0.11.bb @@ -12,5 +12,6 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=272c17e96370e1e74773fa22d9989621" PE = "1" -SRC_URI[md5sum] = "51f1d30a525e9903280ffeea2744b1f6" -SRC_URI[sha256sum] = "473f0941d7439d501bb895ff358832b936ec34c749b9704c37a15e11c318487c" +SRC_URI[sha256sum] = "9a2f8168f7b0bc382828847403902cb6bf175e17658b36189eac87edda877e81" + +SRC_URI_EXT = "xz" diff --git a/meta/recipes-graphics/xorg-app/xorg-app-common.inc b/meta/recipes-graphics/xorg-app/xorg-app-common.inc index 101b3dfffd..5dbe8abe86 100644 --- a/meta/recipes-graphics/xorg-app/xorg-app-common.inc +++ b/meta/recipes-graphics/xorg-app/xorg-app-common.inc @@ -2,16 +2,15 @@ SUMMARY = "X application" HOMEPAGE = "http://www.x.org/" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11/apps" -LICENSE = "MIT-X" +LICENSE = "MIT" DEPENDS = "util-macros-native virtual/libx11" # depends on virtual/libx11 REQUIRED_DISTRO_FEATURES = "x11" -INC_PR = "r8" - -SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.bz2" +SRC_URI_EXT = "bz2" +SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.${SRC_URI_EXT}" inherit autotools pkgconfig features_check -FILES_${PN} += " ${libdir}/X11/${BPN} ${datadir}/X11/app-defaults/" +FILES:${PN} += " ${libdir}/X11/${BPN} ${datadir}/X11/app-defaults/" diff --git a/meta/recipes-graphics/xorg-app/xprop_1.2.4.bb b/meta/recipes-graphics/xorg-app/xprop_1.2.7.bb index 3280813ef8..96e364b2b3 100644 --- a/meta/recipes-graphics/xorg-app/xprop_1.2.4.bb +++ b/meta/recipes-graphics/xorg-app/xprop_1.2.7.bb @@ -14,5 +14,5 @@ DEPENDS += "libxmu" PE = "1" -SRC_URI[md5sum] = "cc369c28383a5d7144e7197ee7d30bfa" -SRC_URI[sha256sum] = "8c77fb096e46c60032b7e2bde9492c3ffcc18734f50b395085a5f10bfd3cf753" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "4436e3148bb91a162406230d9f736a49ca8b50b74790015dc15d78d6ce8e825f" diff --git a/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb b/meta/recipes-graphics/xorg-app/xrandr_1.5.2.bb index 6583ea2371..1e29031849 100644 --- a/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb +++ b/meta/recipes-graphics/xorg-app/xrandr_1.5.2.bb @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3" DEPENDS += "libxrandr libxrender" PE = "1" -SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.xz" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "c8bee4790d9058bacc4b6246456c58021db58a87ddda1a9d0139bf5f18f1f240" -SRC_URI[md5sum] = "fe40f7a4fd39dd3a02248d3e0b1972e4" -SRC_URI[sha256sum] = "7bc76daf9d72f8aff885efad04ce06b90488a1a169d118dea8a2b661832e8762" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch b/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch index a97c7b72fa..0bb05a3b88 100644 --- a/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch +++ b/meta/recipes-graphics/xorg-app/xset/disable-xkb.patch @@ -1,14 +1,21 @@ -add "-disable-xkb" option +From 3090dcafac7c8080091b5e3e3720209c65251a1a Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard@openedhand.com> +Date: Mon, 22 May 2006 22:15:57 +0000 +Subject: [PATCH] add "-disable-xkb" option Upstream-Status: Pending Rebase for 1.2.1 by: Yu Ke <ke.yu@intel.com> -Index: xset-1.2.3/configure.ac -=================================================================== ---- xset-1.2.3.orig/configure.ac -+++ xset-1.2.3/configure.ac -@@ -53,11 +53,15 @@ PKG_CHECK_MODULES(SET_XEXT, xext, +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index e7c2bdf..8e1ed5e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -52,11 +52,15 @@ PKG_CHECK_MODULES(SET_XEXT, xext, AC_CHECK_HEADERS([X11/extensions/dpms.h X11/extensions/MITMisc.h],,,[#include <X11/Xlib.h>]) CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"]) @@ -22,5 +29,5 @@ Index: xset-1.2.3/configure.ac CPPFLAGS="$SAVE_CPPFLAGS"],[echo "not found"]) +fi - AC_ARG_WITH(xf86misc, AS_HELP_STRING([--without-xf86misc],[Disable xf86misc support.]), - [USE_XF86MISC="$withval"], [USE_XF86MISC="yes"]) + AC_ARG_WITH(xf86misc, AS_HELP_STRING([--with-xf86misc],[Enable xf86misc support.]), + [USE_XF86MISC="$withval"], [USE_XF86MISC="no"]) diff --git a/meta/recipes-graphics/xorg-app/xset_1.2.4.bb b/meta/recipes-graphics/xorg-app/xset_1.2.5.bb index e21120e788..398530f342 100644 --- a/meta/recipes-graphics/xorg-app/xset_1.2.4.bb +++ b/meta/recipes-graphics/xorg-app/xset_1.2.5.bb @@ -12,8 +12,9 @@ PE = "1" SRC_URI += "file://disable-xkb.patch" -SRC_URI[md5sum] = "70ea7bc7bacf1a124b1692605883f620" -SRC_URI[sha256sum] = "e4fd95280df52a88e9b0abc1fee11dcf0f34fc24041b9f45a247e52df941c957" +SRC_URI_EXT = "xz" + +SRC_URI[sha256sum] = "9f692d55635b3862cd63633b1222a87680ec283c7a8e8ed6dd698a3147f75e2f" CFLAGS += "-D_GNU_SOURCE" EXTRA_OECONF = "--disable-xkb --without-fontcache" diff --git a/meta/recipes-graphics/xorg-app/xvinfo_1.1.4.bb b/meta/recipes-graphics/xorg-app/xvinfo_1.1.5.bb index a913ae11f3..d7e5d917ef 100644 --- a/meta/recipes-graphics/xorg-app/xvinfo_1.1.4.bb +++ b/meta/recipes-graphics/xorg-app/xvinfo_1.1.5.bb @@ -10,5 +10,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b664101ad7a1dc758a4c4109bf978e68" DEPENDS += " libxv" PE = "1" -SRC_URI[md5sum] = "b13afec137b9b331814a9824ab03ec80" -SRC_URI[sha256sum] = "0353220d6606077ba42363db65f50410759f9815352f77adc799e2adfa76e73f" +SRC_URI_EXT = "xz" +SRC_URI[sha256sum] = "3ede71ecb26d9614ccbc6916720285e95a2c7e0c5e19b8570eaaf72ad7c5c404" diff --git a/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb b/meta/recipes-graphics/xorg-app/xwininfo_1.1.6.bb index ec9f08268e..39ec76724c 100644 --- a/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb +++ b/meta/recipes-graphics/xorg-app/xwininfo_1.1.6.bb @@ -6,10 +6,11 @@ DESCRIPTION = "Xwininfo is a utility for displaying information about \ windows. Information may include window position, size, color depth, \ and a number of other items." -LIC_FILES_CHKSUM = "file://COPYING;md5=78976cd3115f6faf615accc4e094d90e" +LIC_FILES_CHKSUM = "file://COPYING;md5=a1b9559d7b7997a6e9588012ebf8769a" DEPENDS += "libxext libxmu gettext-native" PE = "0" -SRC_URI[md5sum] = "26d46f7ef0588d3392da3ad5802be420" -SRC_URI[sha256sum] = "7a405441dfc476666c744f5fcd1bc8a75abf8b5b1d85db7b88b370982365080e" +SRC_URI_EXT = "xz" +SRC_URI[md5sum] = "c91201bc1eb5e7b38933be8d0f7f16a8" +SRC_URI[sha256sum] = "3518897c17448df9ba99ad6d9bb1ca0f17bc0ed7c0fd61281b34ceed29a9253f" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb deleted file mode 100644 index 1896fff9f9..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb +++ /dev/null @@ -1,13 +0,0 @@ -require xorg-driver-input.inc - -SUMMARY = "X.Org X server -- keyboard input driver" - -DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \ -driver supports the standard OS-provided keyboard interface. The driver \ -functions as a keyboard input device, and may be used as the X server's \ -core keyboard." - -LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10" - -SRC_URI[md5sum] = "a3a3f0dd32361dcdbd406e894dafe090" -SRC_URI[sha256sum] = "f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb deleted file mode 100644 index f87083e575..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb +++ /dev/null @@ -1,11 +0,0 @@ -require xorg-driver-input.inc - -SUMMARY = "Generic input driver for the X.Org server based on libinput" -LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0" - -DEPENDS += "libinput" - -SRC_URI[md5sum] = "d600e8e2e30747b8ce49ec5294ff0ab6" -SRC_URI[sha256sum] = "c28b56a21754b972db31798e6a4cf4dc9d69208d08f8fe41701a94def5e94bee" - -FILES_${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb new file mode 100644 index 0000000000..92272c3f2a --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-input-libinput_1.4.0.bb @@ -0,0 +1,12 @@ +require xorg-driver-input.inc + +SUMMARY = "Generic input driver for the X.Org server based on libinput" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a22925127bd3c827c384cedd23ed2309" + +DEPENDS += "libinput" + +XORG_DRIVER_COMPRESSOR = ".tar.xz" +SRC_URI[sha256sum] = "3a3d14cd895dc75b59ae2783b888031956a0bac7a1eff16d240dbb9d5df3e398" + +FILES:${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.3.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.5.bb index c38dab505b..92e54d9701 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.3.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.9.5.bb @@ -8,7 +8,7 @@ functions as a pointer input device, and may be used as the X server's \ core pointer. Multiple mice are supported by multiple instances of this \ driver." -LIC_FILES_CHKSUM = "file://COPYING;md5=90ea9f90d72b6d9327dede5ffdb2a510" +LIC_FILES_CHKSUM = "file://COPYING;md5=d213a69053dffe9bcab94abf60013d33" -SRC_URI[md5sum] = "a2104693bbcfe1413397f7905eecd3dc" -SRC_URI[sha256sum] = "93ecb350604d05be98b7d4e5db3b8155a44890069a7d8d6b800c0bea79c85cc5" +SRC_URI[sha256sum] = "4fde8ae9b44352e2a208584c36528ee3ed13cf5fe4417208a9785daccefd9968" +XORG_DRIVER_COMPRESSOR = ".tar.xz" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch deleted file mode 100644 index 4bb7fb3e23..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch +++ /dev/null @@ -1,51 +0,0 @@ -This patch avoids using time field of input_event structure which is not available -on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new -and keeps old input.h implementation functional as well. - -See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- a/src/eventcomm.c -+++ b/src/eventcomm.c -@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s - ev->type = EV_SYN; - ev->code = SYN_REPORT; - ev->value = 0; -- ev->time = last_event_time; -- } else if (ev->type == EV_SYN) -- last_event_time = ev->time; -- -+ ev->input_event_sec = last_event_time.tv_sec; -+ ev->input_event_usec = last_event_time.tv_usec; -+ } else if (ev->type == EV_SYN) { -+ last_event_time.tv_sec = ev->input_event_sec; -+ last_event_time.tv_usec = ev->input_event_usec; -+ } - return TRUE; - } - -@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo, - case SYN_REPORT: - hw->numFingers = count_fingers(pInfo, comm); - if (proto_data->have_monotonic_clock) -- hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000; -+ hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000; - else - hw->millis = GetTimeInMillis(); - SynapticsCopyHwState(hwRet, hw); ---- a/src/eventcomm.h -+++ b/src/eventcomm.h -@@ -34,6 +34,11 @@ - #include <xf86Xinput.h> - #include "synproto.h" - -+#ifndef input_event_sec -+#define input_event_sec time.tv_sec -+#define input_event_usec time.tv_usec -+#endif -+ - /* for auto-dev: */ - #define DEV_INPUT_EVENT "/dev/input" - #define EVENT_DEV_NAME "event" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.2.bb index 388350c96e..8e446290b2 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.2.bb @@ -10,9 +10,8 @@ advanced features of the touchpad to become available." LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398" -SRC_URI += "file://64bit_time_t_support.patch" - -SRC_URI[md5sum] = "cfb79d3c975151f9bbf30b727c260cb9" -SRC_URI[sha256sum] = "7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576" +SRC_URI[sha256sum] = "b8fa4aab913fc63754bbd6439e020658c412743a055201ddf212760593962c38" DEPENDS += "libxi mtdev libxtst libevdev" + +XORG_DRIVER_COMPRESSOR = ".tar.xz" diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.2.0.bb index 92a1b25ebe..7567b1ef2b 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.2.0.bb @@ -6,16 +6,17 @@ protocol that is provided by VMware virtual machines to give absolute \ pointer positioning. The vmmouse driver is capable of falling back to the \ standard 'mouse' driver if a VMware virtual machine is not detected." -SRC_URI[md5sum] = "85e2e464b7219c495ad3a16465c226ed" -SRC_URI[sha256sum] = "0af558957ac1be1b2863712c2475de8f4d7f14921fd01ded2e2fde4921b19319" +XORG_DRIVER_COMPRESSOR = ".tar.xz" -RDEPENDS_${PN} += "xf86-input-mouse" +SRC_URI[sha256sum] = "56f077580ab8f02e2f40358c5c46b0ae3e1828fc77744526b24adf1ceea339b8" + +RDEPENDS:${PN} += "xf86-input-mouse" LIC_FILES_CHKSUM = "file://COPYING;md5=622841c068a9d7625fbfe7acffb1a8fc" COMPATIBLE_HOST = '(i.86|x86_64).*-linux' -do_install_append () { +do_install:append () { # We don't care about hal rm -rf ${D}${datadir}/hal/ rm -rf ${D}${libdir}/hal/ @@ -23,4 +24,4 @@ do_install_append () { EXTRA_OECONF = "--with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d" -FILES_${PN} += "${datadir}/X11/xorg.conf.d" +FILES:${PN} += "${datadir}/X11/xorg.conf.d" diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb b/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.6.0.bb index c498477604..32eb8a4816 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.6.0.bb @@ -7,7 +7,8 @@ the driver is still useful." LIC_FILES_CHKSUM = "file://COPYING;md5=6ddc7ca860dc5fd014e7f160ea699295" -SRC_URI[md5sum] = "7d7dfd4cdc42aa8b6e923510fa00ad2b" -SRC_URI[sha256sum] = "edc87b20a55259126b5239b5c1ef913419eab7ded0ed12ae9ae989460d7351ab" +SRC_URI[sha256sum] = "0ef3fa0083de3d9a040f11b3af38598d8405f1165b908fdd6712c30038326401" DEPENDS += "libpciaccess" + +XORG_DRIVER_COMPRESSOR = ".tar.xz" diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch deleted file mode 100644 index 52916f8b4a..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch +++ /dev/null @@ -1,55 +0,0 @@ -From a414d4e24461da1cb4cef8ee910bc57bab360ceb Mon Sep 17 00:00:00 2001 -From: Adam Jackson <ajax@redhat.com> -Date: Tue, 6 Mar 2018 12:07:46 -0500 -Subject: [PATCH] Fix build on i686 - -Presumably this only matters for i686 because amd64 implies sse2, but: - -BUILDSTDERR: In file included from gen4_vertex.c:34: -BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex': -BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch -BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y) -BUILDSTDERR: ^~~~~~~~~~~~~~ -BUILDSTDERR: gen4_vertex.c:308:25: note: called from here -BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */ -BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ -BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX' -BUILDSTDERR: OUT_VERTEX(dstX, dstY); -BUILDSTDERR: ^~~~~~~~~~ - -The bug here appears to be that emit_vertex() is declared 'sse2' but -vertex_emit_2s is merely always_inline. gcc8 decides that since you said -always_inline you need to have explicitly cloned it for every -permutation of targets. Merely saying inline seems to do the job of -cloning vertex_emit_2s as much as necessary. - -So to reiterate: if you say always-inline, it won't, but if you just say -maybe inline, it will. Thanks gcc, that's helpful. - -- ajax - -Patch taken from Fedora. - -Upstream-Status: Pending -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> - ---- - src/sna/compiler.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sna/compiler.h b/src/sna/compiler.h -index 3c176a16..bc447c7a 100644 ---- a/src/sna/compiler.h -+++ b/src/sna/compiler.h -@@ -32,7 +32,7 @@ - #define likely(expr) (__builtin_expect (!!(expr), 1)) - #define unlikely(expr) (__builtin_expect (!!(expr), 0)) - #define noinline __attribute__((noinline)) --#define force_inline inline __attribute__((always_inline)) -+#define force_inline inline - #define fastcall __attribute__((regparm(3))) - #define must_check __attribute__((warn_unused_result)) - #define constant __attribute__((const)) --- -2.16.2 - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb index bf9009bda0..0a42bd9975 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb @@ -9,34 +9,29 @@ Infrastructure (DRI)." LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e" -SRCREV = "33ee0c3b21ea279e08d0863fcb2e874f0974b00e" -PV = "2.99.917+git${SRCPV}" +SRCREV = "31486f40f8e8f8923ca0799aea84b58799754564" +PV = "2.99.917+git" S = "${WORKDIR}/git" -SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \ - " - -SRC_URI_append_qemux86 = "file://01_Fix-build-on-i686.patch" +SRC_URI = "git://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git;protocol=https;branch=master" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" -DEPENDS += "virtual/libx11 drm libpciaccess pixman" +DEPENDS += "virtual/libx11 drm libpciaccess pixman cairo libpng libxcb libxcomposite libxdamage libxrender libxrandr libxext libxfixes" -PACKAGECONFIG ??= "sna xvmc uxa udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri2 dri3', '', d)}" +PACKAGECONFIG ??= "sna xvmc uxa udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri2 dri3', '', d)}" -PACKAGECONFIG[dri] = "--enable-dri,--disable-dri" -PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1" PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2" PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3" PACKAGECONFIG[sna] = "--enable-sna,--disable-sna" PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa" PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc xcb-util" -PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxrandr libxdamage libxfixes libxcursor libxtst libxrender libxscrnsaver libxext libx11 pixman libxcb libxshmfence" +PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxcursor libxtst libxscrnsaver libxshmfence" # --enable-kms-only option is required by ROOTLESS_X EXTRA_OECONF += '${@oe.utils.conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}' COMPATIBLE_HOST = '(i.86|x86_64).*-linux' -FILES_${PN} += "${datadir}/polkit-1" +FILES:${PN} += "${datadir}/polkit-1" diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vesa/0001-Refuse-to-run-on-UEFI-machines.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vesa/0001-Refuse-to-run-on-UEFI-machines.patch deleted file mode 100644 index 9e01770667..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-vesa/0001-Refuse-to-run-on-UEFI-machines.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2645e0aa9c17c2c966a0533e52ad00510311483e Mon Sep 17 00:00:00 2001 -From: Adam Jackson <ajax@redhat.com> -Date: Wed, 29 Aug 2018 11:04:23 -0400 -Subject: [PATCH] Refuse to run on UEFI machines - -No possible good can come of this. - -v2: Check for .../efi-framebuffer.0 ("is there an EFI framebuffer") -instead of /sys/firmware/efi ("is this an EFI machine"). Suggested by -Peter Jones. - -Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa] - -Reviewed-by: Peter Jones <pjones@redhat.com> -Signed-off-by: Adam Jackson <ajax@redhat.com> -Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> ---- - src/vesa.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/vesa.c b/src/vesa.c -index 9b65b9b..af750e2 100644 ---- a/src/vesa.c -+++ b/src/vesa.c -@@ -43,7 +43,7 @@ - #endif - - #include <string.h> -- -+#include <unistd.h> - #include "vesa.h" - - /* All drivers initialising the SW cursor need this */ -@@ -450,7 +450,14 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, - intptr_t match_data) - { - ScrnInfoPtr pScrn; -- -+ -+#ifdef __linux__ -+ if (access("/sys/devices/platform/efi-framebuffer.0", F_OK) == 0) { -+ ErrorF("vesa: Refusing to run on UEFI\n"); -+ return FALSE; -+ } -+#endif -+ - pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL, - NULL, NULL, NULL, NULL, NULL); - if (pScrn != NULL) { --- -2.20.1 - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.4.0.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.6.0.bb index f6aa54456c..33c2035f6b 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.4.0.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-video-vesa_2.6.0.bb @@ -13,11 +13,8 @@ DEPENDS += "virtual/libx11 xorgproto libpciaccess" COMPATIBLE_HOST = '(i.86|x86_64).*-linux' -RRECOMMENDS_${PN} += "xserver-xorg-module-libint10" +RRECOMMENDS:${PN} += "xserver-xorg-module-libint10" -SRC_URI[md5sum] = "8134201beaf6f77150c7809c3cc802e6" -SRC_URI[sha256sum] = "bf443c94d7bf6cd4e248f8a3147f4647be04dc4c80250d9405006263bbdee38c" +XORG_DRIVER_COMPRESSOR = ".tar.xz" +SRC_URI[sha256sum] = "10082771b1a8f659c60b3d9b70456a4b59948a75b3cade2dfa33b8b05e549bb1" -SRC_URI += " \ - file://0001-Refuse-to-run-on-UEFI-machines.patch \ - " diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch b/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch deleted file mode 100644 index 5bda720ce5..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-vmware/0002-add-option-for-vmwgfx.patch +++ /dev/null @@ -1,103 +0,0 @@ -From da6612659a279bcb02f70622b53a3894fbc11052 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Fri, 9 Dec 2016 14:35:45 +0200 -Subject: [PATCH] Add option for vmwgfx - -Upstream-Status:Submitted - -Signed-off-by: Ross Burton <ross.burton@intel.com> -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - configure.ac | 51 +++++++++++++++++++++------------------------------ - 1 file changed, 21 insertions(+), 30 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9f259ce..f3fec57 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -64,6 +64,13 @@ AC_ARG_ENABLE(vmwarectrl-client, - [VMWARECTRL=$enableval], [VMWARECTRL=no]) - AM_CONDITIONAL(BUILD_VMWARECTRL, [test "x$VMWARECTRL" = xyes]) - -+# Define a configure option to build the vmwgfx driver -+AC_ARG_ENABLE(vmwgfx, -+ AS_HELP_STRING([--disable-vmwgfx], -+ [Disable vmwgfx driver (KMS/3D) (default: enabled)]), -+ [VMWGFX="$enableval"], [VMWGFX="yes"]) -+AM_CONDITIONAL(BUILD_VMWGFX, test "x$VMWGFX" = xyes) -+ - # Store the list of server defined optional extensions in REQUIRED_MODULES - XORG_DRIVER_CHECK_EXT(RANDR, randrproto) - XORG_DRIVER_CHECK_EXT(RENDER, renderproto) -@@ -85,11 +92,6 @@ PKG_CHECK_EXISTS([xorg-server >= 1.4.99], - [AC_DEFINE([HAVE_XORG_SERVER_1_5_0], 1, - [Has version 1.5.0 or greater of the Xserver])]) - --PKG_CHECK_EXISTS([xorg-server >= 1.7.0], -- [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1, -- [Has version 1.7.0 or greater of the Xserver]) -- BUILD_VMWGFX=yes],[BUILD_VMWGFX=no]) -- - PKG_CHECK_EXISTS([xorg-server >= 1.12.0], - [AC_DEFINE([HAVE_XORG_SERVER_1_12_0], 1, - [Has version 1.12.0 or greater of the Xserver])]) -@@ -114,34 +116,22 @@ AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) - - AC_SUBST([moduledir]) - --if test x$BUILD_VMWGFX = xyes; then -- PKG_CHECK_MODULES([LIBDRM], [libdrm],[],[BUILD_VMWGFX=no]) --fi --if test x$BUILD_VMWGFX = xyes; then --# --# Early versions of mesa 10 forgot to bump the XA major version number in --# the xa_tracker.h header --# -- PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], -- [PKG_CHECK_EXISTS([xatracker = 2.0.0], -- [AC_DEFINE([HAVE_XA_2], 1, -- [Has version 2 of XA])])], -- [BUILD_VMWGFX=no]) --# --# Check for prime. --# -+AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) -+if test x$VMWGFX = xyes; then -+ AC_MSG_RESULT([yes]) -+ PKG_CHECK_MODULES([LIBDRM], [libdrm]) -+ # Check for prime. - PKG_CHECK_EXISTS([libdrm >= 2.4.38], - [AC_DEFINE([HAVE_LIBDRM_2_4_38], 1, - [Has version 2.4.38 or greater of libdrm])]) --fi - --DRIVER_NAME=vmware --AC_SUBST([DRIVER_NAME]) -- --AC_MSG_CHECKING([whether to build Kernel Mode Setting and 3D]) --if test x$BUILD_VMWGFX = xyes; then -- AC_MSG_RESULT([yes]) -- AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path]) -+ # Early versions of mesa 10 forgot to bump the XA major version number -+ # in the xa_tracker.h header -+ PKG_CHECK_MODULES([XATRACKER], [xatracker >= 0.4.0], -+ [PKG_CHECK_EXISTS([xatracker = 2.0.0], -+ [AC_DEFINE([HAVE_XA_2], 1, -+ [Has version 2 of XA])])]) -+ AC_DEFINE([BUILD_VMWGFX], 1, [Building the vmwgfx driver path]) - libudev_check=yes - AC_ARG_WITH([libudev], - [AS_HELP_STRING([--without-libudev], -@@ -158,7 +148,8 @@ else - AC_MSG_RESULT([no]) - fi - --AM_CONDITIONAL(BUILD_VMWGFX, test "x$BUILD_VMWGFX" = xyes) -+DRIVER_NAME=vmware -+AC_SUBST([DRIVER_NAME]) - - AC_CONFIG_FILES([ - Makefile --- -2.1.4 - diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.3.0.bb b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.4.0.bb index 41612b7f07..d7ba2b9e86 100644 --- a/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.3.0.bb +++ b/meta/recipes-graphics/xorg-driver/xf86-video-vmware_13.4.0.bb @@ -7,13 +7,8 @@ DESCRIPTION = "vmware is an Xorg driver for VMware virtual video cards." LIC_FILES_CHKSUM = "file://COPYING;md5=5fcd7d437a959a15fbee8707747c6b53" DEPENDS += "virtual/libx11 xorgproto libpciaccess" +XORG_DRIVER_COMPRESSOR = ".tar.xz" -SRC_URI += "file://0002-add-option-for-vmwgfx.patch" - -SRC_URI[md5sum] = "08d66d062055080ff699ab4869726ea2" -SRC_URI[sha256sum] = "47971924659e51666a757269ad941a059ef5afe7a47b5101c174a6022ac4066c" +SRC_URI[sha256sum] = "aed31ee5ed5ecc6e2226705383e7ad06f7602c1376a295305f376b17af3eb81a" COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' - -PACKAGECONFIG ?= "" -PACKAGECONFIG[vmwgfx] = "--enable-vmwgfx, --disable-vmwgfx, libdrm virtual/mesa" diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc index 54f04b11e5..c61cdd05b3 100644 --- a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc @@ -2,24 +2,27 @@ SUMMARY = "X driver" HOMEPAGE = "http://www.x.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11/drivers" -LICENSE = "MIT-X" +LICENSE = "MIT" PE = "2" -INC_PR = "r21" DEPENDS = "virtual/xserver xorgproto util-macros" -SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" +XORG_DRIVER_COMPRESSOR ?= ".tar.bz2" +SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}${XORG_DRIVER_COMPRESSOR}" -FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" +FILES:${PN} += " ${libdir}/xorg/modules/drivers/*.so" + +inherit pkgconfig features_check +XORGBUILDCLASS ??= "autotools" +inherit_defer ${XORGBUILDCLASS} -inherit autotools pkgconfig features_check # depends on virtual/xserver REQUIRED_DISTRO_FEATURES = "x11" # FIXME: We don't want to include the libtool archives (*.la) from modules # directory, as they serve no useful purpose. Upstream should fix Makefile.am -do_install_append() { +do_install:append() { find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- } @@ -37,6 +40,6 @@ def _add_xorg_abi_depends(d, name): abi = "%sxorg-abi-%s-%s" % (mlprefix, name, output.split(".")[0]) pn = d.getVar("PN") - d.appendVar('RDEPENDS_' + pn, ' ' + abi) + d.appendVar('RDEPENDS:' + pn, ' ' + abi) SECURITY_LDFLAGS = "${SECURITY_X_LDFLAGS}" diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc index 57912e70db..934c3d75c1 100644 --- a/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc @@ -7,6 +7,6 @@ python add_xorg_abi_depends() { } PACKAGEFUNCS =+ "add_xorg_abi_depends" -FILES_${PN} += " ${libdir}/xorg/modules/input/*.so \ +FILES:${PN} += " ${libdir}/xorg/modules/input/*.so \ ${datadir}/X11/xorg.conf.d \ " diff --git a/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch b/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch deleted file mode 100644 index ec7c7d80c1..0000000000 --- a/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch +++ /dev/null @@ -1,42 +0,0 @@ -From b08c43a0842076e0a94e88ad6456a9326cd7ffc9 Mon Sep 17 00:00:00 2001 -From: Richard Purdie <richard.purdie@linuxfoundation.org> -Date: Tue, 17 May 2011 23:03:02 +0000 -Subject: [PATCH] Improve handling of 'all' architecture recipes and their - -Upstream-Status: Inappropriate [configuration] - -XORG_DEFAULT_OPTIONS pulls in the following dependency chains: - -XORG_CWARNFLAGS -> AC_PROG_CC_C99 -XORG_STRICT_OPTION -> AC_PROG_CC_C99, XORG_CWARNFLAGS -XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host - -each of which triggers the use of the host compiler. As an "all" -architecture package, it shouldn't need a compiler (and doesn't). - -RP 17/5/2011 - ---- - configure.ac | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 622c27b..5ee84ed 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3,12 +3,12 @@ AC_INIT([encodings], [1.0.5], - [https://gitlab.freedesktop.org/xorg/font/encodings/issues]) - AM_INIT_AUTOMAKE([foreign dist-bzip2]) - --# Require xorg-macros: XORG_DEFAULT_OPTIONS - m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) - XORG_MACROS_VERSION(1.3) --XORG_DEFAULT_OPTIONS -- -+XORG_RELEASE_VERSION -+XORG_CHANGELOG -+XORG_INSTALL - AC_PROG_INSTALL - - # Require X.Org's font util macros 1.2 or later diff --git a/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb b/meta/recipes-graphics/xorg-font/encodings_1.1.0.bb index a39609b5da..7432c08ec0 100644 --- a/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb +++ b/meta/recipes-graphics/xorg-font/encodings_1.1.0.bb @@ -7,15 +7,18 @@ require xorg-font-common.inc LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76" PE = "1" -PR = "${INC_PR}.1" DEPENDS = "mkfontscale-native mkfontdir-native font-util-native" -RDEPENDS_${PN} = "" +RDEPENDS:${PN} = "" -SRC_URI += "file://nocompiler.patch" -SRC_URI[md5sum] = "bbae4f247b88ccde0e85ed6a403da22a" -SRC_URI[sha256sum] = "bd96e16143a044b19e87f217cf6a3763a70c561d1076aad6f6d862ec41774a31" +SRC_URI[sha256sum] = "9ff13c621756cfa12e95f32ba48a5b23839e8f577d0048beda66c67dab4de975" + +SRC_URI_EXT = "xz" inherit allarch EXTRA_OECONF += "--with-encodingsdir=${datadir}/fonts/X11/encodings" + +# postinst from .inc doesn't apply to this recipe +pkg_postinst:${PN} () { +} diff --git a/meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch b/meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch deleted file mode 100644 index 0b9fb8ccc0..0000000000 --- a/meta/recipes-graphics/xorg-font/font-alias-1.0.3/nocompiler.patch +++ /dev/null @@ -1,32 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -XORG_DEFAULT_OPTIONS pulls in the following dependency chains: - -XORG_CWARNFLAGS -> AC_PROG_CC_C99 -XORG_STRICT_OPTION -> AC_PROG_CC_C99, XORG_CWARNFLAGS -XORG_MANPAGE_SECTIONS -> AC_CANONICAL_HOST -> Checks host - -each of which triggers the use of the host compiler. As an "all" -architecture package, it shouldn't need a compiler (and doesn't). - -RP 17/5/2011 - -diff -uNr font-alias-1.0.3.orig//configure.ac font-alias-1.0.3/configure.ac ---- font-alias-1.0.3.orig//configure.ac 2011-05-18 21:29:18.378258643 +0200 -+++ font-alias-1.0.3/configure.ac 2011-05-18 21:32:06.865258593 +0200 -@@ -28,12 +28,12 @@ - AM_INIT_AUTOMAKE([foreign dist-bzip2]) - AM_MAINTAINER_MODE - --# Require xorg-macros: XORG_DEFAULT_OPTIONS - m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) - XORG_MACROS_VERSION(1.3) --XORG_DEFAULT_OPTIONS -- -+XORG_RELEASE_VERSION -+XORG_CHANGELOG -+XORG_INSTALL - AC_PROG_INSTALL - - XORG_FONTROOTDIR diff --git a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb b/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb deleted file mode 100644 index 15e101596a..0000000000 --- a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "X font aliases" - -require xorg-font-common.inc - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=bf0158b89be493d523d69d9f29265038 \ - file://cyrillic/fonts.alias;md5=f40795b0640d6785826aecd3b16f6124 \ - file://75dpi/fonts.alias;md5=6bc48023f2ae7f3bfc105db7b0ee6b49 \ - file://misc/fonts.alias;md5=a8ec05d528431d4c9703b55a7efd67a8 \ - file://100dpi/fonts.alias;md5=85bebd6ca213aa656c301a72eb4397cb" - -SRC_URI += "file://nocompiler.patch" - -DEPENDS = "util-macros-native font-util-native" -RDEPENDS_${PN} = "encodings font-util" -RDEPENDS_${PN}_class-native = "font-util-native" - -inherit allarch - -PE = "1" -PR = "${INC_PR}.3" - -SRC_URI[md5sum] = "6d25f64796fef34b53b439c2e9efa562" -SRC_URI[sha256sum] = "8b453b2aae1cfa8090009ca037037b8c5e333550651d5a158b7264ce1d472c9a" diff --git a/meta/recipes-graphics/xorg-font/font-alias_1.0.5.bb b/meta/recipes-graphics/xorg-font/font-alias_1.0.5.bb new file mode 100644 index 0000000000..03c39a4334 --- /dev/null +++ b/meta/recipes-graphics/xorg-font/font-alias_1.0.5.bb @@ -0,0 +1,22 @@ +SUMMARY = "X font aliases" + +require xorg-font-common.inc + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=bf0158b89be493d523d69d9f29265038 \ + file://cyrillic/fonts.alias;md5=d27bc65a2655cacdbc2644b51c064c20 \ + file://75dpi/fonts.alias;md5=6bc48023f2ae7f3bfc105db7b0ee6b49 \ + file://misc/fonts.alias;md5=1bdafa7c31aa54f87f3531f2ef8ed5a6 \ + file://100dpi/fonts.alias;md5=85bebd6ca213aa656c301a72eb4397cb \ + " +SRC_URI_EXT = "xz" + +DEPENDS = "util-macros-native font-util-native" +RDEPENDS:${PN} = "encodings font-util" +RDEPENDS:${PN}:class-native = "font-util-native" + +inherit allarch + +PE = "1" + +SRC_URI[sha256sum] = "9f89e217bb73e0e3636a0a493fbf8b7c995156e0c53d9a0476d201b67c2d6b6e" diff --git a/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb b/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb deleted file mode 100644 index ebe7a603fa..0000000000 --- a/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "X.Org font package creation/installation utilities" - -require xorg-font-common.inc - -#Unicode is MIT -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=5df208ec65eb84ce5bb8d82d8f3b9675 \ - file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ - file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ - file://map-ISO8859-1;beginline=9;endline=23;md5=1cecb984063248f29ffe5c46f5c04f34" - -DEPENDS = "encodings util-macros" -DEPENDS_class-native = "util-macros-native" -RDEPENDS_${PN} = "mkfontdir mkfontscale encodings" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "3d6adb76fdd072db8c8fae41b40855e8" -SRC_URI[sha256sum] = "3ad880444123ac06a7238546fa38a2a6ad7f7e0cc3614de7e103863616522282" - -SYSROOT_DIRS_BLACKLIST_remove = "${datadir}/fonts" diff --git a/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb b/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb new file mode 100644 index 0000000000..0c65927fb4 --- /dev/null +++ b/meta/recipes-graphics/xorg-font/font-util_1.4.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "X.Org font package creation/installation utilities" + +require xorg-font-common.inc + +LICENSE = "Unicode-TOU & BSD-4-Clause & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=2a9e705c00e463c8d294f90486852e06 \ + file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \ + file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \ + file://map-ISO8859-1;beginline=1;endline=4;md5=9c9c1d525d29c0e82b5c99edbb8e71c1 \ + " + +DEPENDS = "encodings util-macros" +DEPENDS:class-native = "util-macros-native" +RDEPENDS:${PN} = "mkfontdir mkfontscale encodings" +RDEPENDS:${PN}:class-native = "" + +BBCLASSEXTEND = "native" + +SRC_URI[sha256sum] = "5c9f64123c194b150fee89049991687386e6ff36ef2af7b80ba53efaf368cc95" + +SYSROOT_DIRS_IGNORE:remove = "${datadir}/fonts" + +SRC_URI_EXT = "xz" diff --git a/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/meta/recipes-graphics/xorg-font/xorg-font-common.inc index f18c8aefc2..edf7cf7642 100644 --- a/meta/recipes-graphics/xorg-font/xorg-font-common.inc +++ b/meta/recipes-graphics/xorg-font/xorg-font-common.inc @@ -2,16 +2,15 @@ HOMEPAGE = "http://www.x.org" BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" SECTION = "x11/fonts" -LICENSE = "MIT-X" +LICENSE = "MIT" DEPENDS = " encodings font-alias font-util-native" -RDEPENDS_${PN} = "encodings font-util font-alias" +RDEPENDS:${PN} = "encodings font-util font-alias" XORG_PN = "${BPN}" -INC_PR = "r2" - -SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2" +SRC_URI_EXT = "bz2" +SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.${SRC_URI_EXT}" S = "${WORKDIR}/${XORG_PN}-${PV}" inherit autotools pkgconfig features_check @@ -21,17 +20,17 @@ REQUIRED_DISTRO_FEATURES = "x11" EXTRA_OEMAKE += "FCCACHE=/bin/true UTIL_DIR=${STAGING_DIR_TARGET}\$\(MAPFILES_PATH\)" -do_install_append() { +do_install:append() { find ${D}${libdir}/X11/fonts -type f -name fonts.dir | xargs rm -f find ${D}${libdir}/X11/fonts -type f -name fonts.scale | xargs rm -f find ${D}${datadir}/fonts/X11 -type f -name fonts.dir | xargs rm -f find ${D}${datadir}/fonts/X11 -type f -name fonts.scale | xargs rm -f } -FILES_${PN} += " ${libdir}/X11/fonts ${datadir}" +FILES:${PN} += " ${libdir}/X11/fonts ${datadir}" PACKAGE_WRITE_DEPS += "mkfontdir-native mkfontscale-native" -pkg_postinst_${PN} () { +pkg_postinst:${PN} () { for fontdir in `find $D/usr/lib/X11/fonts -type d`; do mkfontdir $fontdir mkfontscale $fontdir diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb index 1ea08a6c99..d32ef77447 100644 --- a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb +++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb @@ -10,8 +10,9 @@ LIC_FILES_CHKSUM = "file://../misc/fonts.dir;md5=82a143d94d6a974aafe97132d2d519a SRC_URI = "file://misc" +SOURCE_DATE_EPOCH = "1613559011" + PE = "1" -PR = "r2" inherit allarch features_check @@ -21,12 +22,14 @@ REQUIRED_DISTRO_FEATURES = "x11" S = "${WORKDIR}/misc" PACKAGES = "${PN}" -FILES_${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/" -RDEPENDS_${PN} += "font-alias" +FILES:${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/" +RDEPENDS:${PN} += "font-alias" do_install() { install -d ${D}/${datadir}/fonts/X11/misc install -m 0644 ${S}/* ${D}/${datadir}/fonts/X11/misc/ + # Pick a date/time as otherwise it would be the git checkout/modify time + touch -d @1613559011 ${D}/${datadir}/fonts/X11/misc/* install -d ${D}/${libdir}/X11 ln -sf ${datadir}/fonts/X11/ ${D}/${libdir}/X11/fonts -s } diff --git a/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb b/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb deleted file mode 100644 index 66172cb30c..0000000000 --- a/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb +++ /dev/null @@ -1,20 +0,0 @@ -require xorg-lib-common.inc - -SUMMARY = "DMX: Distributed Multihead X extension library" - -DESCRIPTION = "The DMX extension provides support for communication with \ -and control of Xdmx(1) server. Attributes of the Xdmx(1) server and of \ -the back-end screens attached to the server can be queried and modified \ -via this protocol." - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=a3c3499231a8035efd0e004cfbd3b72a \ - file://src/dmx.c;endline=33;md5=c43f19af03c7c8619cadc9724ed9afe1" - -DEPENDS += "libxext xorgproto" - -PE = "1" - -SRC_URI[md5sum] = "d2f1f0ec68ac3932dd7f1d9aa0a7a11c" -SRC_URI[sha256sum] = "253f90005d134fa7a209fbcbc5a3024335367c930adf0f3203e754cf32747243" - diff --git a/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb b/meta/recipes-graphics/xorg-lib/libfontenc_1.1.8.bb index 1fc74b1995..0fc117fc58 100644 --- a/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb +++ b/meta/recipes-graphics/xorg-lib/libfontenc_1.1.8.bb @@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=96254c20ab81c63e65b26f0dbcd4a1c1" DEPENDS += "zlib xorgproto font-util" PE = "1" -SRC_URI[md5sum] = "6447db6a689fb530c218f0f8328c3abc" -SRC_URI[sha256sum] = "2cfcce810ddd48f2e5dc658d28c1808e86dcf303eaff16728b9aa3dbc0092079" +SRC_URI[sha256sum] = "7b02c3d405236e0d86806b1de9d6868fe60c313628b38350b032914aa4fd14c6" BBCLASSEXTEND = "native" diff --git a/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb b/meta/recipes-graphics/xorg-lib/libice_1.1.1.bb index 6a6316f320..d5e3d28e06 100644 --- a/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb +++ b/meta/recipes-graphics/xorg-lib/libice_1.1.1.bb @@ -8,7 +8,7 @@ negotiating versions, and for reporting errors. " require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d162b1b3c6fa812da9d804dcf8584a93" DEPENDS += "xorgproto xtrans" @@ -20,8 +20,7 @@ XORG_PN = "libICE" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "76d77499ee7120a56566891ca2c0dbcf" -SRC_URI[sha256sum] = "6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348" +SRC_URI[sha256sum] = "03e77afaf72942c7ac02ccebb19034e6e20f456dcf8dddadfeb572aa5ad3e451" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[arc4] = "ac_cv_lib_bsd_arc4random_buf=yes,ac_cv_lib_bsd_arc4random_buf=no,libbsd" diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb b/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb deleted file mode 100644 index b58cb80dc3..0000000000 --- a/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Generic PCI access library for X" - -DESCRIPTION = "libpciaccess provides functionality for X to access the \ -PCI bus and devices in a platform-independent way." - -require xorg-lib-common.inc - -SRC_URI += "\ -" - -SRC_URI[md5sum] = "b34e2cbdd6aa8f9cc3fa613fd401a6d6" -SRC_URI[sha256sum] = "214c9d0d884fdd7375ec8da8dcb91a8d3169f263294c9a90c575bf1938b9f489" - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=277aada5222b9a22fbf3471ff3687068" - -REQUIRED_DISTRO_FEATURES = "" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.1.bb b/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.1.bb new file mode 100644 index 0000000000..d311fd95e0 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "Generic PCI access library for X" + +DESCRIPTION = "libpciaccess provides functionality for X to access the \ +PCI bus and devices in a platform-independent way." + +HOMEPAGE = "http://www.x.org" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" + +SECTION = "x11/libs" +LICENSE = "MIT" +DEPENDS = "util-macros" + +SRC_URI = "${XORG_MIRROR}/individual/lib/${BP}.tar.xz" + +inherit features_check pkgconfig meson + +REQUIRED_DISTRO_FEATURES ?= "x11" + +SRC_URI[sha256sum] = "4af43444b38adb5545d0ed1c2ce46d9608cc47b31c2387fc5181656765a6fa76" + +LICENSE = "MIT & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=54c978968e565218eea36cf03ef24352" + +REQUIRED_DISTRO_FEATURES = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libpthread-stubs_0.4.bb b/meta/recipes-graphics/xorg-lib/libpthread-stubs_0.5.bb index ffa1c859d6..62384e6d2e 100644 --- a/meta/recipes-graphics/xorg-lib/libpthread-stubs_0.4.bb +++ b/meta/recipes-graphics/xorg-lib/libpthread-stubs_0.5.bb @@ -7,13 +7,12 @@ SECTION = "x11/libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=6edc1fea03d959f0c2d743fe5ca746ad" -SRC_URI = "http://xcb.freedesktop.org/dist/${BP}.tar.bz2" -SRC_URI[md5sum] = "48c1544854a94db0e51499cc3afd797f" -SRC_URI[sha256sum] = "e4d05911a3165d3b18321cc067fdd2f023f06436e391c6a28dff618a78d2e733" +SRC_URI = "http://xcb.freedesktop.org/dist/${BP}.tar.xz" +SRC_URI[sha256sum] = "59da566decceba7c2a7970a4a03b48d9905f1262ff94410a649224e33d2442bc" inherit autotools -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" +DEV_PKG_DEPENDENCY = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libsm_1.2.3.bb b/meta/recipes-graphics/xorg-lib/libsm_1.2.4.bb index 49df690f0a..ab030723c6 100644 --- a/meta/recipes-graphics/xorg-lib/libsm_1.2.3.bb +++ b/meta/recipes-graphics/xorg-lib/libsm_1.2.4.bb @@ -8,7 +8,7 @@ has a particular state." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c0fb37f44e02bdbde80546024400728d" DEPENDS += "libice xorgproto xtrans" @@ -22,8 +22,7 @@ PE = "1" XORG_PN = "libSM" -SRC_URI[md5sum] = "87c7fad1c1813517979184c8ccd76628" -SRC_URI[sha256sum] = "2d264499dcb05f56438dee12a1b4b71d76736ce7ba7aa6efbf15ebb113769cbb" +SRC_URI[sha256sum] = "fdcbe51e4d1276b1183da77a8a4e74a137ca203e0bcfb20972dd5f3347e97b84" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch b/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch index 46a53a17f2..61af98d95e 100644 --- a/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch +++ b/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch @@ -6,12 +6,16 @@ Subject: [PATCH] Drop x11 dependencies Upstream-Status: Inappropriate [OE-Specific] Signed-off-by: Ming Liu <ming.liu@toradex.com> + +Rebase for version 1.8.3. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> --- configure.ac | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/configure.ac b/configure.ac -index a5fd706..b42488c 100644 +index 33d0102..50e2d93 100644 --- a/configure.ac +++ b/configure.ac @@ -76,27 +76,8 @@ fi @@ -20,7 +24,7 @@ index a5fd706..b42488c 100644 # Checks for pkg-config packages - -# Always required --X11_REQUIRES='xproto >= 7.0.17 xextproto xtrans xcb >= 1.11.1' +-X11_REQUIRES='xproto >= 7.0.25 xextproto xtrans xcb >= 1.11.1' -X11_EXTRA_DEPS="xcb >= 1.11.1" - PKG_PROG_PKG_CONFIG() @@ -42,7 +46,7 @@ index a5fd706..b42488c 100644 # Check for dlopen AC_MSG_CHECKING([if run-time linking is supported]) AC_SEARCH_LIBS(dlopen,[dl svld]) -@@ -237,30 +218,6 @@ AC_SUBST(XTHREAD_CFLAGS) +@@ -255,30 +236,6 @@ AC_SUBST(USE_THREAD_LIBS) AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], ) @@ -73,7 +77,7 @@ index a5fd706..b42488c 100644 AC_ARG_ENABLE(xcms, AS_HELP_STRING([--disable-xcms], [Disable Xlib support for CMS *EXPERIMENTAL*]), -@@ -340,7 +297,6 @@ X11_LIBDIR="${libdir}/X11" +@@ -358,7 +315,6 @@ X11_LIBDIR="${libdir}/X11" AX_DEFINE_DIR(X11_LIBDIR, X11_LIBDIR, [Location of libX11 library data]) AC_SUBST(X11_LIBDIR) diff --git a/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb b/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.8.4.bb index cabb84e686..2131f46213 100644 --- a/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb +++ b/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.8.4.bb @@ -8,21 +8,19 @@ python () { require xorg-lib-common.inc -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" - -SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f" -SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5" - -SRC_URI += "file://0001-Drop-x11-dependencies.patch" +LICENSE = "MIT & BSD-1-Clause & HPND & HPND-sell-variant & ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=1d49cdd2b386c5db11ec636d680b7116" XORG_PN = "libX11" -EXTRA_OECONF += "--disable-xkb" +SRC_URI += "file://0001-Drop-x11-dependencies.patch \ + " -PACKAGES = "${PN}" +SRC_URI[sha256sum] = "c9a287a5aefa9804ce3cfafcf516fe96ed3f7e8e45c0e2ee59e84c86757df518" + +REQUIRED_DISTRO_FEATURES = "" -FILES_${PN} = "${datadir}/X11/locale ${libdir}/X11/locale" +EXTRA_OECONF += "--disable-xkb" do_compile() { oe_runmake -C nls @@ -32,4 +30,6 @@ do_install() { oe_runmake DESTDIR=${D} -C nls install } -REQUIRED_DISTRO_FEATURES = "" +PACKAGES = "${PN}" + +FILES:${PN} = "${datadir}/X11/locale ${libdir}/X11/locale" diff --git a/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch b/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch deleted file mode 100644 index 2a723b7e43..0000000000 --- a/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 5235a7f3692a4c3c90dd4ac1be3c670388904bbe Mon Sep 17 00:00:00 2001 -From: Tatu Frisk <tatu.frisk@ge.com> -Date: Tue, 14 Mar 2017 14:41:27 +0200 -Subject: [PATCH] Fix hanging issue in _XReply - -Assume event queue is empty if another thread is blocking waiting for event. - -If one thread was blocking waiting for an event and another thread sent a -reply to the X server, both threads got blocked until an event was -received. - -Upstream-Status: Submitted [https://patchwork.freedesktop.org/patch/171458/] - -This patch needs to be removed once the corresponding patch has been merged upstream. - -https://patchwork.freedesktop.org/patch/171458/ - -Signed-off-by: Tatu Frisk <tatu.frisk@ge.com> -Signed-off-by: Jose Alarcon <jose.alarcon@ge.com> - -[Refreshed for 1.6.7 update] -Signed-off-by: Armin Kuster <akuster808@gmail.com> - ---- - src/xcb_io.c | 19 +++++++------------ - 1 file changed, 7 insertions(+), 12 deletions(-) - -Index: libX11-1.6.7/src/xcb_io.c -=================================================================== ---- libX11-1.6.7.orig/src/xcb_io.c -+++ libX11-1.6.7/src/xcb_io.c -@@ -620,18 +620,14 @@ Status _XReply(Display *dpy, xReply *rep - if(dpy->xcb->event_owner == XlibOwnsEventQueue) - { - xcb_generic_reply_t *event; -- /* If some thread is already waiting for events, -- * it will get the first one. That thread must -- * process that event before we can continue. */ -- /* FIXME: That event might be after this reply, -- * and might never even come--or there might be -- * multiple threads trying to get events. */ -- while(dpy->xcb->event_waiter) -- { /* need braces around ConditionWait */ -- ConditionWait(dpy, dpy->xcb->event_notify); -- } -- while((event = poll_for_event(dpy, True))) -- handle_response(dpy, event, True); -+ -+ /* Assume event queue is empty if another thread is blocking -+ * waiting for event. */ -+ if(!dpy->xcb->event_waiter) -+ { -+ while((event = poll_for_response(dpy))) -+ handle_response(dpy, event, True); -+ } - } - - req->reply_waiter = 0; diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb b/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb deleted file mode 100644 index 8c2a57c674..0000000000 --- a/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Xlib: C Language X Interface library" - -DESCRIPTION = "This package provides a client interface to the X Window \ -System, otherwise known as 'Xlib'. It provides a complete API for the \ -basic functions of the window system." - -require xorg-lib-common.inc - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" - -PE = "1" - -SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \ - file://disable_tests.patch" - -SRC_URI[md5sum] = "55adbfb6d4370ecac5e70598c4e7eed2" -SRC_URI[sha256sum] = "9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1" - -PROVIDES = "virtual/libx11" - -XORG_PN = "libX11" -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" - -DEPENDS += "xorgproto xtrans libxcb" -DEPENDS += "xorgproto-native" - -EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" -EXTRA_OEMAKE += 'CWARNFLAGS=""' - -PACKAGECONFIG ??= "xcms" -PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" - -# src/util/makekeys is built natively but needs -D_GNU_SOURCE defined. -CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" - -PACKAGES =+ "${PN}-xcb" - -inherit gettext - -FILES_${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" -FILES_${PN}-xcb += "${libdir}/libX11-xcb.so.*" -FILES_${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.8.10.bb b/meta/recipes-graphics/xorg-lib/libx11_1.8.10.bb new file mode 100644 index 0000000000..eda184cb35 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libx11_1.8.10.bb @@ -0,0 +1,43 @@ +SUMMARY = "Xlib: C Language X Interface library" + +DESCRIPTION = "This package provides a client interface to the X Window \ +System, otherwise known as 'Xlib'. It provides a complete API for the \ +basic functions of the window system." + +require xorg-lib-common.inc + +LICENSE = "MIT & BSD-1-Clause & HPND & HPND-sell-variant & ISC" +LIC_FILES_CHKSUM = "file://COPYING;md5=1d49cdd2b386c5db11ec636d680b7116" + +DEPENDS += "xorgproto \ + xtrans \ + libxcb \ + xorgproto-native \ + autoconf-archive-native \ + " + +PROVIDES = "virtual/libx11" + +PE = "1" + +XORG_PN = "libX11" + +SRC_URI += "file://disable_tests.patch" + +SRC_URI[sha256sum] = "2b3b3dad9347db41dca56beb7db5878f283bde1142f04d9f8e478af435dfdc53" + +inherit gettext + +EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" +EXTRA_OEMAKE += 'CWARNFLAGS=""' + +PACKAGECONFIG ??= "xcms" +PACKAGECONFIG[xcms] = "--enable-xcms,--disable-xcms" + +PACKAGES =+ "${PN}-xcb" + +FILES:${PN} += "${datadir}/X11/XKeysymDB ${datadir}/X11/XErrorDB ${datadir}/X11/Xcms.txt" +FILES:${PN}-xcb += "${libdir}/libX11-xcb.so.*" +FILES:${PN}-locale += "${datadir}/X11/locale ${libdir}/X11/locale" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb b/meta/recipes-graphics/xorg-lib/libxau_1.0.11.bb index dcfc66652a..f1b492c39f 100644 --- a/meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb +++ b/meta/recipes-graphics/xorg-lib/libxau_1.0.11.bb @@ -8,7 +8,7 @@ require xorg-lib-common.inc inherit gettext -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=7908e342491198401321cec1956807ec" DEPENDS += " xorgproto" @@ -20,5 +20,4 @@ XORG_PN = "libXau" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "c5f16288f2da9f071b29111d68797480" -SRC_URI[sha256sum] = "ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec" +SRC_URI[sha256sum] = "f3fa3282f5570c3f6bd620244438dbfbdd580fc80f02f549587a0f8ab329bbeb" diff --git a/meta/recipes-graphics/xorg-lib/libxcb/0001-use-_Alignof-to-avoid-UB-in-ALIGNOF.patch b/meta/recipes-graphics/xorg-lib/libxcb/0001-use-_Alignof-to-avoid-UB-in-ALIGNOF.patch new file mode 100644 index 0000000000..604e987551 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libxcb/0001-use-_Alignof-to-avoid-UB-in-ALIGNOF.patch @@ -0,0 +1,42 @@ +From b529f25a3dcd1547f49d341a0a34fbc1379ed58d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 14 Jan 2023 10:11:35 -0800 +Subject: [PATCH] use _Alignof to avoid UB in ALIGNOF + +WG14 N2350 clearly says that it is an UB having type definitions +within "offsetof" [1]. Clang 16+ has started diagnosing it [2]. +This patch changes the implementation of macro +"ALIGNOF" to builtin "_Alignof" to avoid undefined behavior. + +_Alignof() return the ABI required minimum alignment. + +[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm +[2] https://reviews.llvm.org/D133574 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libxcb/-/merge_requests/42] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/c_client.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/c_client.py b/src/c_client.py +index b7db543..ec81758 100644 +--- a/src/c_client.py ++++ b/src/c_client.py +@@ -288,7 +288,6 @@ def c_open(self): + _c('#include "%s.h"', _ns.header) + + _c('') +- _c('#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)') + + if _ns.is_ext: + for (n, h) in self.direct_imports: +@@ -1266,7 +1265,7 @@ def _c_serialize_helper_fields(context, self, + count += 1 + + code_lines.append( +- '%s xcb_align_to = ALIGNOF(%s);' ++ '%s xcb_align_to = _Alignof(%s);' + % (space, + 'char' + if field.c_field_type == 'void' or field.type.is_switch diff --git a/meta/recipes-graphics/xorg-lib/libxcb/disable-check.patch b/meta/recipes-graphics/xorg-lib/libxcb/disable-check.patch deleted file mode 100644 index c0efbdc213..0000000000 --- a/meta/recipes-graphics/xorg-lib/libxcb/disable-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -The "check" package is checked for without an explicit enable/disable option, -which can lead to non-deterministic build issues with both check and libxslt. - -As the unit test suite is minimal at present, simply disable the test suite. In -the future if the test suite is expanded this can be made conditional on the -ptest DISTRO_FEATURE. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton <ross.burton@intel.com> - - -Index: libxcb-1.12/configure.ac -=================================================================== ---- libxcb-1.12.orig/configure.ac -+++ libxcb-1.12/configure.ac -@@ -36,7 +36,8 @@ if test x"$HAVE_DOT" = xno; then - AC_MSG_WARN([dot not found - doxygen targets will be skipped]) - fi - --PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) -+dnl PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no]) -+HAVE_CHECK=no - AM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes) - - XSLTPROC=no diff --git a/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch b/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch deleted file mode 100644 index 46297c33c3..0000000000 --- a/meta/recipes-graphics/xorg-lib/libxcb/xcbincludedir.patch +++ /dev/null @@ -1,28 +0,0 @@ -As pkg-config --variable doesn't respect the sysroot, add the pkg-config sysroot -to the beginning of variables that are used later on the host. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/configure.ac b/configure.ac -index 94da4f7..d29cd6a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -64,7 +64,7 @@ AC_SUBST(NEEDED) - - # Find the xcb-proto protocol descriptions - AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR) --XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto` -+XCBPROTO_XCBINCLUDEDIR=$PKG_CONFIG_SYSROOT_DIR/`$PKG_CONFIG --variable=xcbincludedir xcb-proto` - AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR) - AC_SUBST(XCBPROTO_XCBINCLUDEDIR) - -@@ -74,7 +74,7 @@ AC_SUBST(XCBPROTO_VERSION) - - # Find the xcbgen Python package - AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR) --XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` -+XCBPROTO_XCBPYTHONDIR=$PKG_CONFIG_SYSROOT_DIR/`$PKG_CONFIG --variable=pythondir xcb-proto` - AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) - AC_SUBST(XCBPROTO_XCBPYTHONDIR) - diff --git a/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb b/meta/recipes-graphics/xorg-lib/libxcb_1.17.0.bb index 9befc51b50..fcd8aad303 100644 --- a/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb +++ b/meta/recipes-graphics/xorg-lib/libxcb_1.17.0.bb @@ -9,21 +9,18 @@ SECTION = "x11/libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7" -SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2 \ - file://xcbincludedir.patch \ - file://disable-check.patch \ - " +SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.xz \ + file://0001-use-_Alignof-to-avoid-UB-in-ALIGNOF.patch" -SRC_URI[md5sum] = "f33cdfc67346f7217a9326c0d8679975" -SRC_URI[sha256sum] = "a89fb7af7a11f43d2ce84a844a4b38df688c092bf4b67683aef179cdf2a647c4" +SRC_URI[sha256sum] = "599ebf9996710fea71622e6e184f3a8ad5b43d0e5fa8c4e407123c88a59a6d55" BBCLASSEXTEND = "native nativesdk" DEPENDS = "xcb-proto xorgproto libxau libpthread-stubs libxdmcp" -PACKAGES_DYNAMIC = "^libxcb-.*" +PACKAGES_DYNAMIC = "^${PN}-.*" -FILES_${PN} = "${libdir}/libxcb.so.*" +FILES:${PN} = "${libdir}/libxcb.so.*" inherit autotools pkgconfig features_check @@ -32,6 +29,10 @@ REQUIRED_DISTRO_FEATURES = "x11" export PYTHON = "python3" -python populate_packages_prepend () { - do_split_packages(d, '${libdir}', r'^libxcb-(.*)\.so\..*$', 'libxcb-%s', 'XCB library module for %s', allow_links=True) +do_install:append () { + chown root.root ${D}${datadir}/doc/${BPN}/tutorial -R +} + +python populate_packages:prepend () { + do_split_packages(d, '${libdir}', r'^libxcb-(.*)\.so\..*$', '${PN}-%s', 'XCB library module for %s', allow_links=True) } diff --git a/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch b/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch deleted file mode 100644 index 60331f6e78..0000000000 --- a/meta/recipes-graphics/xorg-lib/libxcomposite/change-include-order.patch +++ /dev/null @@ -1,18 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -This patch makes the build use its own Xcomposite.h over rather than an -older Xcomposite.h that might already be installed in the staging dir. - -Index: libXcomposite-0.4.3/src/Makefile.am -=================================================================== ---- libXcomposite-0.4.3.orig/src/Makefile.am 2010-06-30 22:42:53.000000000 -0700 -+++ libXcomposite-0.4.3/src/Makefile.am 2010-11-23 23:09:34.544322930 -0800 -@@ -19,7 +19,7 @@ - # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - # PERFORMANCE OF THIS SOFTWARE. - --AM_CFLAGS = $(CWARNFLAGS) $(XCOMPOSITE_CFLAGS) $(XFIXES_CFLAGS) -+AM_CFLAGS = -I$(top_srcdir)/include $(CWARNFLAGS) $(XCOMPOSITE_CFLAGS) $(XFIXES_CFLAGS) - AM_CPPFLAGS = -I$(top_srcdir)/include - - lib_LTLIBRARIES = libXcomposite.la diff --git a/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.5.bb b/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.6.bb index 3ef3ddb817..881f579695 100644 --- a/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.5.bb +++ b/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.6.bb @@ -11,7 +11,7 @@ compositing transformations through a client." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=3f2907aad541f6f226fbc58cc1b3cdf1" DEPENDS += " xorgproto virtual/libx11 libxfixes libxext" @@ -22,7 +22,4 @@ PE = "1" XORG_PN = "libXcomposite" -SRC_URI += " file://change-include-order.patch" - -SRC_URI[md5sum] = "3fa0841ea89024719b20cd702a9b54e0" -SRC_URI[sha256sum] = "b3218a2c15bab8035d16810df5b8251ffc7132ff3aa70651a1fba0bfe9634e8f" +SRC_URI[sha256sum] = "fe40bcf0ae1a09070eba24088a5eb9810efe57453779ec1e20a55080c6dc2c87" diff --git a/meta/recipes-graphics/xorg-lib/libxcursor_1.2.0.bb b/meta/recipes-graphics/xorg-lib/libxcursor_1.2.2.bb index 2df7a3a4f2..159ac4f7fa 100644 --- a/meta/recipes-graphics/xorg-lib/libxcursor_1.2.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxcursor_1.2.2.bb @@ -7,9 +7,10 @@ can exist in several sizes and the library automatically picks the best \ size." require xorg-lib-common.inc +SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.xz" -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=8902e6643f7bcd7793b23dcd5d8031a4" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=dbf3bd0f2348eeccd0f217146ba26250" DEPENDS += "libxrender libxfixes" @@ -17,7 +18,6 @@ PE = "1" XORG_PN = "libXcursor" -SRC_URI[md5sum] = "9b9be0e289130fb820aedf67705fc549" -SRC_URI[sha256sum] = "3ad3e9f8251094af6fe8cb4afcf63e28df504d46bfa5a5529db74a505d628782" +SRC_URI[sha256sum] = "53d071bd2cc56e517a30998d5e685c8a74556ddada43c6985d14da9a023a88ee" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxcvt_0.1.2.bb b/meta/recipes-graphics/xorg-lib/libxcvt_0.1.2.bb new file mode 100644 index 0000000000..e62fabdf58 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libxcvt_0.1.2.bb @@ -0,0 +1,19 @@ +SUMMARY = "Library providing a standalone version of the X server \ +implementation of the VESA CVT standard timing modelines generator" +HOMEPAGE = "https://gitlab.freedesktop.org/xorg/lib/libxcvt" +BUGTRACKER = "https://gitlab.freedesktop.org/xorg/lib/libxcvt/-/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=129947a06984d6faa6f9a9788fa2a03f" +SECTION = "x11/libs" + +SRC_URI = "git://gitlab.freedesktop.org/xorg/lib/libxcvt.git;protocol=https;branch=master" +SRCREV = "d9ca87eea9eecddaccc3a77227bcb3acf84e89df" + +S = "${WORKDIR}/git" + +inherit meson + +FILES:${PN} = " \ + ${libdir}/libxcvt.so.0* \ + ${bindir}/cvt \ +" diff --git a/meta/recipes-graphics/xorg-lib/libxdamage_1.1.5.bb b/meta/recipes-graphics/xorg-lib/libxdamage_1.1.6.bb index b201124d86..279d6c33dc 100644 --- a/meta/recipes-graphics/xorg-lib/libxdamage_1.1.5.bb +++ b/meta/recipes-graphics/xorg-lib/libxdamage_1.1.6.bb @@ -23,7 +23,6 @@ PE = "1" XORG_PN = "libXdamage" -SRC_URI[md5sum] = "e3f554267a7a04b042dc1f6352bd6d99" -SRC_URI[sha256sum] = "b734068643cac3b5f3d2c8279dd366b5bf28c7219d9e9d8717e1383995e0ea45" +SRC_URI[sha256sum] = "52733c1f5262fca35f64e7d5060c6fcd81a880ba8e1e65c9621cf0727afb5d11" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.3.bb b/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.5.bb index d43a146fd7..d1a1a2e7f9 100644 --- a/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.5.bb @@ -10,7 +10,7 @@ require xorg-lib-common.inc inherit gettext -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d559fb26e129626022e052a5e6e0e123" DEPENDS += "xorgproto" @@ -22,8 +22,7 @@ XORG_PN = "libXdmcp" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "115c5c12ecce0e749cd91d999a5fd160" -SRC_URI[sha256sum] = "20523b44aaa513e17c009e873ad7bbc301507a3224c232610ce2e099011c6529" +SRC_URI[sha256sum] = "d8a5222828c3adab70adf69a5583f1d32eb5ece04304f7f8392b6a353aa2228c" PACKAGECONFIG ??= "" PACKAGECONFIG[arc4] = "ac_cv_lib_bsd_arc4random_buf=yes,ac_cv_lib_bsd_arc4random_buf=no,libbsd" diff --git a/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb b/meta/recipes-graphics/xorg-lib/libxext_1.3.6.bb index 9493111a67..275926a885 100644 --- a/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb +++ b/meta/recipes-graphics/xorg-lib/libxext_1.3.6.bb @@ -10,8 +10,8 @@ extensions." require xorg-lib-common.inc -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=879ce266785414bd1cbc3bc2f4d9d7c8" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=4234bb3b2f1521ea101e4e9db7c33c69" DEPENDS += "xorgproto virtual/libx11" PROVIDES = "xext" @@ -19,8 +19,6 @@ PROVIDES = "xext" PE = "1" XORG_PN = "libXext" - BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "f5b48bb76ba327cd2a8dc7a383532a95" -SRC_URI[sha256sum] = "59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b" +SRC_URI[sha256sum] = "edb59fa23994e405fdc5b400afdf5820ae6160b94f35e3dc3da4457a16e89753" diff --git a/meta/recipes-graphics/xorg-lib/libxfixes_5.0.3.bb b/meta/recipes-graphics/xorg-lib/libxfixes_6.0.1.bb index f0e2f606ce..28df7bb805 100644 --- a/meta/recipes-graphics/xorg-lib/libxfixes_5.0.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxfixes_6.0.1.bb @@ -6,18 +6,16 @@ provide the minimal server-side support necessary to eliminate problems \ caused by these workarounds." require xorg-lib-common.inc +SRC_URI[sha256sum] = "b695f93cd2499421ab02d22744458e650ccc88c1d4c8130d60200213abc02d58" -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=a5a9755c8921cc7dc08a5cfe4267d0ff" DEPENDS += "virtual/libx11 xorgproto" PE = "1" XORG_PN = "libXfixes" +XORG_EXT = "tar.xz" BBCLASSEXTEND = "native nativesdk" - -SRC_URI[md5sum] = "07e01e046a0215574f36a3aacb148be0" -SRC_URI[sha256sum] = "de1cd33aff226e08cefd0e6759341c2c8e8c9faf8ce9ac6ec38d43e287b22ad6" - diff --git a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb index 1c9cc0a21d..bf0c7d0775 100644 --- a/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb +++ b/meta/recipes-graphics/xorg-lib/libxfont2_2.0.7.bb @@ -6,8 +6,8 @@ such as freetype)." require xorg-lib-common.inc -LICENSE = "MIT & MIT-style & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c" +LICENSE = "MIT & MIT & BSD-4-Clause & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=a5d1388c9d40be70dbad35fa440443f7" DEPENDS += "freetype xtrans xorgproto libfontenc zlib" @@ -15,8 +15,7 @@ XORG_PN = "libXfont2" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "00516bed7ec1453d56974560379fff2f" -SRC_URI[sha256sum] = "6d151b3368e5035efede4b6264c0fdc6662c1c99dbc2de425e3480cababc69e6" +SRC_URI[sha256sum] = "8b7b82fdeba48769b69433e8e3fbb984a5f6bf368b0d5f47abeec49de3e58efb" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/meta/recipes-graphics/xorg-lib/libxfont_1.5.4.bb b/meta/recipes-graphics/xorg-lib/libxfont_1.5.4.bb index 94c6c66e87..fa6585d6dc 100644 --- a/meta/recipes-graphics/xorg-lib/libxfont_1.5.4.bb +++ b/meta/recipes-graphics/xorg-lib/libxfont_1.5.4.bb @@ -6,7 +6,7 @@ such as freetype)." require xorg-lib-common.inc -LICENSE = "MIT & MIT-style & BSD" +LICENSE = "MIT & MIT & BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c" DEPENDS += "freetype xtrans xorgproto libfontenc zlib" @@ -15,6 +15,7 @@ PROVIDES = "xfont" PE = "1" XORG_PN = "libXfont" +XORG_EXT = "tar.bz2" BBCLASSEXTEND = "native" diff --git a/meta/recipes-graphics/xorg-lib/libxft_2.3.3.bb b/meta/recipes-graphics/xorg-lib/libxft_2.3.8.bb index 65bd9ae494..2699c1dfd7 100644 --- a/meta/recipes-graphics/xorg-lib/libxft_2.3.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxft_2.3.8.bb @@ -20,14 +20,13 @@ PROVIDES = "xft" PE = "1" -SRC_URI[md5sum] = "4a433c24627b4ff60a4dd403a0990796" -SRC_URI[sha256sum] = "225c68e616dd29dbb27809e45e9eadf18e4d74c50be43020ef20015274529216" +SRC_URI[sha256sum] = "5e8c3c4bc2d4c0a40aef6b4b38ed2fb74301640da29f6528154b5009b1c6dd49" XORG_PN = "libXft" BBCLASSEXTEND = "native nativesdk" -python () { - if d.getVar('DEBIAN_NAMES'): - d.setVar('PKG_${PN}', '${MLPREFIX}libxft2') +python populate_packages:prepend () { + if d.getVar('DEBIAN_NAMES'): + d.setVar('PKG:${PN}', '${MLPREFIX}libxft2') } diff --git a/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb b/meta/recipes-graphics/xorg-lib/libxi_1.8.1.bb index 5a08e07362..00bd46ef13 100644 --- a/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb +++ b/meta/recipes-graphics/xorg-lib/libxi_1.8.1.bb @@ -7,7 +7,7 @@ input devices other than the core X keyboard and pointer. It allows \ client programs to select input from these devices independently from \ each other and independently from the core devices." -LICENSE = "MIT & MIT-style" +LICENSE = "MIT & MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=17b064789fab936a1c58c4e13d965b0f \ file://src/XIGetDevFocus.c;endline=23;md5=cdfb0d435a33ec57ea0d1e8e395b729f" @@ -16,8 +16,8 @@ DEPENDS += "libxext xorgproto libxfixes" PE = "1" XORG_PN = "libXi" +XORG_EXT = "tar.xz" -SRC_URI[md5sum] = "62c4af0839072024b4b1c8cbe84216c7" -SRC_URI[sha256sum] = "36a30d8f6383a72e7ce060298b4b181fd298bc3a135c8e201b7ca847f5f81061" +SRC_URI[sha256sum] = "89bfc0e814f288f784202e6e5f9b362b788ccecdeb078670145eacd8749656a7" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxinerama_1.1.4.bb b/meta/recipes-graphics/xorg-lib/libxinerama_1.1.5.bb index edce35da5d..421b64e68d 100644 --- a/meta/recipes-graphics/xorg-lib/libxinerama_1.1.4.bb +++ b/meta/recipes-graphics/xorg-lib/libxinerama_1.1.5.bb @@ -15,8 +15,6 @@ PROVIDES = "xinerama" PE = "1" XORG_PN = "libXinerama" - -SRC_URI[md5sum] = "0d5f826a197dae74da67af4a9ef35885" -SRC_URI[sha256sum] = "0008dbd7ecf717e1e507eed1856ab0d9cf946d03201b85d5dcf61489bb02d720" +SRC_URI[sha256sum] = "5094d1f0fcc1828cb1696d0d39d9e866ae32520c54d01f618f1a3c1e30c2085c" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.9.1.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_0.9.1.bb deleted file mode 100644 index c147428a14..0000000000 --- a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.9.1.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Generic XKB keymap library" -DESCRIPTION = "libxkbcommon is a keymap compiler and support library which \ -processes a reduced subset of keymaps as defined by the XKB specification." -HOMEPAGE = "http://www.xkbcommon.org" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e525ed9809e1f8a07cf4bce8b09e8b87" -LICENSE = "MIT & MIT-style" - -DEPENDS = "util-macros flex-native bison-native" - -SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz" - -SRC_URI[md5sum] = "4662756fd73ab0ac9e32efdad8f807f6" -SRC_URI[sha256sum] = "d4c6aabf0a5c1fc616f8a6a65c8a818c03773b9a87da9fbc434da5acd1199be0" - -UPSTREAM_CHECK_URI = "http://xkbcommon.org/" - -inherit meson pkgconfig - -EXTRA_OEMESON = "-Denable-docs=false" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}" -PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config," -PACKAGECONFIG[wayland] = "-Denable-wayland=true,-Denable-wayland=false,wayland-native wayland wayland-protocols," - -# Fix a following runtime error: -# xkbcommon: ERROR: couldn't find a Compose file for locale "C" -RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}" diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb new file mode 100644 index 0000000000..40cf616f0b --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_1.7.0.bb @@ -0,0 +1,40 @@ +SUMMARY = "Generic XKB keymap library" +DESCRIPTION = "libxkbcommon is a keymap compiler and support library which \ +processes a reduced subset of keymaps as defined by the XKB specification." +HOMEPAGE = "http://www.xkbcommon.org" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e525ed9809e1f8a07cf4bce8b09e8b87" +LICENSE = "MIT & MIT" + +DEPENDS = "flex-native bison-native" + +SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz" + +SRC_URI[sha256sum] = "65782f0a10a4b455af9c6baab7040e2f537520caa2ec2092805cdfd36863b247" + +UPSTREAM_CHECK_URI = "http://xkbcommon.org/" + +inherit meson pkgconfig bash-completion + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} xkbregistry" + +PACKAGECONFIG[docs] = "-Denable-docs=true,-Denable-docs=false,doxygen-native" +PACKAGECONFIG[wayland] = "-Denable-wayland=true,-Denable-wayland=false,wayland-native wayland wayland-protocols," +PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config," +PACKAGECONFIG[xkbregistry] = "-Denable-xkbregistry=true,-Denable-xkbregistry=false,libxml2" + +PACKAGE_BEFORE_PN += "xkbcli" +FILES:${PN} = "" +FILES:xkbcli = "${bindir}/xkbcli ${libexecdir}/xkbcommon/xkbcli-*" + +python populate_packages:prepend () { + # Put the libraries into separate packages to avoid dependency creep + do_split_packages(d, d.expand('${libdir}'), r'^(lib.*)\.so\.*', '%s', '%s library', extra_depends='', allow_links=True) +} + +# Fix a following runtime error: +# xkbcommon: ERROR: couldn't find a Compose file for locale "C" +RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', 'libx11-compose-data', d)}" + +BBCLASSEXTEND += "native" + +CVE_PRODUCT += "xkbcommon:libxkbcommon" diff --git a/meta/recipes-graphics/xorg-lib/libxkbfile_1.1.0.bb b/meta/recipes-graphics/xorg-lib/libxkbfile_1.1.3.bb index 3a6c50ca21..aab6284384 100644 --- a/meta/recipes-graphics/xorg-lib/libxkbfile_1.1.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxkbfile_1.1.3.bb @@ -5,7 +5,7 @@ description files for XKB, the X11 keyboard configuration extension." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=8be7367f7e5d605a426f76bb37d4d61f" DEPENDS += "virtual/libx11 xorgproto" @@ -13,6 +13,4 @@ DEPENDS += "virtual/libx11 xorgproto" PE = "1" BBCLASSEXTEND = "native" - -SRC_URI[md5sum] = "dd7e1e946def674e78c0efbc5c7d5b3b" -SRC_URI[sha256sum] = "758dbdaa20add2db4902df0b1b7c936564b7376c02a0acd1f2a331bd334b38c7" +SRC_URI[sha256sum] = "a9b63eea997abb9ee6a8b4fbb515831c841f471af845a09de443b28003874bec" diff --git a/meta/recipes-graphics/xorg-lib/libxmu_1.1.3.bb b/meta/recipes-graphics/xorg-lib/libxmu_1.2.1.bb index dc3179f53e..51faf170bf 100644 --- a/meta/recipes-graphics/xorg-lib/libxmu_1.1.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxmu_1.2.1.bb @@ -9,8 +9,8 @@ second library, libXmuu." require xorg-lib-common.inc -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=def3d8e4e9c42004f1941fa22f01dc18" +LICENSE = "MIT & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=e79ad4fcc53b9bfe0fc38507a56446b9" DEPENDS += "libxt libxext" PROVIDES = "xmu" @@ -23,12 +23,8 @@ LEAD_SONAME = "libXmu" PACKAGES =+ "libxmuu" -FILES_libxmuu = "${libdir}/libXmuu.so.*" +FILES:libxmuu = "${libdir}/libXmuu.so.*" BBCLASSEXTEND = "native" -SRC_URI[md5sum] = "ac774cff8b493f566088a255dbf91201" -SRC_URI[sha256sum] = "9c343225e7c3dc0904f2122b562278da5fed639b1b5e880d25111561bac5b731" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +SRC_URI[sha256sum] = "fcb27793248a39e5fcc5b9c4aec40cc0734b3ca76aac3d7d1c264e7f7e14e8b2" diff --git a/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb b/meta/recipes-graphics/xorg-lib/libxpm_3.5.17.bb index 64d829b31e..8e15ecc0d4 100644 --- a/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb +++ b/meta/recipes-graphics/xorg-lib/libxpm_3.5.17.bb @@ -11,17 +11,17 @@ an extension of the monochrome XBM bitmap specificied in the X \ protocol." LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=51f4270b012ecd4ab1a164f5f4ed6cf7" +LIC_FILES_CHKSUM = "file://COPYING;md5=903942ebc9d807dfb68540f40bae5aff" DEPENDS += "libxext libsm libxt gettext-native" PE = "1" XORG_PN = "libXpm" +EXTRA_OECONF += "--disable-open-zfile" PACKAGES =+ "sxpm cxpm" -FILES_cxpm = "${bindir}/cxpm" -FILES_sxpm = "${bindir}/sxpm" +FILES:cxpm = "${bindir}/cxpm" +FILES:sxpm = "${bindir}/sxpm" -SRC_URI[md5sum] = "20f4627672edb2bd06a749f11aa97302" -SRC_URI[sha256sum] = "fd6a6de3da48de8d1bb738ab6be4ad67f7cb0986c39bd3f7d51dd24f7854bdec" +SRC_URI[sha256sum] = "64b31f81019e7d388c822b0b28af8d51c4622b83f1f0cb6fa3fc95e271226e43" BBCLASSEXTEND = "native" diff --git a/meta/recipes-graphics/xorg-lib/libxrandr_1.5.2.bb b/meta/recipes-graphics/xorg-lib/libxrandr_1.5.4.bb index 53a8335d64..3e2825b916 100644 --- a/meta/recipes-graphics/xorg-lib/libxrandr_1.5.2.bb +++ b/meta/recipes-graphics/xorg-lib/libxrandr_1.5.4.bb @@ -8,7 +8,7 @@ specified in the Proceedings of the 2001 Usenix Technical Conference \ require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c9d1a2118a6cd5727521db8e7a2fee69" DEPENDS += "virtual/libx11 xorgproto libxrender libxext" @@ -19,5 +19,4 @@ XORG_PN = "libXrandr" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "18f3b20d522f45e4dadd34afb5bea048" -SRC_URI[sha256sum] = "8aea0ebe403d62330bb741ed595b53741acf45033d3bda1792f1d4cc3daee023" +SRC_URI[sha256sum] = "1ad5b065375f4a85915aa60611cc6407c060492a214d7f9daf214be752c3b4d3" diff --git a/meta/recipes-graphics/xorg-lib/libxrender_0.9.10.bb b/meta/recipes-graphics/xorg-lib/libxrender_0.9.11.bb index 9b18366138..e138764dff 100644 --- a/meta/recipes-graphics/xorg-lib/libxrender_0.9.10.bb +++ b/meta/recipes-graphics/xorg-lib/libxrender_0.9.11.bb @@ -8,7 +8,7 @@ drawn by loading glyphs into the server and rendering sets of them." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d8bc71986d3b9b3639f6dfd6fac8f196" DEPENDS += "virtual/libx11 xorgproto" @@ -18,7 +18,5 @@ PE = "1" XORG_PN = "libXrender" BBCLASSEXTEND = "native nativesdk" - -SRC_URI[md5sum] = "802179a76bded0b658f4e9ec5e1830a4" -SRC_URI[sha256sum] = "c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949" +SRC_URI[sha256sum] = "bc53759a3a83d1ff702fb59641b3d2f7c56e05051fa0cfa93501166fa782dc24" diff --git a/meta/recipes-graphics/xorg-lib/libxres_1.2.0.bb b/meta/recipes-graphics/xorg-lib/libxres_1.2.2.bb index af6bb19a25..72b28d9107 100644 --- a/meta/recipes-graphics/xorg-lib/libxres_1.2.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxres_1.2.2.bb @@ -16,5 +16,4 @@ PE = "1" XORG_PN = "libXres" -SRC_URI[md5sum] = "5d6d443d1abc8e1f6fc1c57fb27729bb" -SRC_URI[sha256sum] = "ff75c1643488e64a7cfbced27486f0f944801319c84c18d3bd3da6bf28c812d4" +SRC_URI[sha256sum] = "9a7446f3484b9b7538ac5ee30d2c1ce9e5b7fbbaf1440e02f6cca186a1fa745f" diff --git a/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.3.bb b/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.4.bb index aed52e75ee..1b407f52f0 100644 --- a/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxscrnsaver_1.2.4.bb @@ -14,10 +14,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=21fd154ee757813632ada871a34113fb" DEPENDS += "libxext xorgproto" PROVIDES = "libxss" -RREPLACES_${PN} = "libxss" +RREPLACES:${PN} = "libxss" PE = "1" XORG_PN = "libXScrnSaver" -SRC_URI[md5sum] = "eeea9d5af3e6c143d0ea1721d27a5e49" -SRC_URI[sha256sum] = "f917075a1b7b5a38d67a8b0238eaab14acd2557679835b154cf2bca576e89bf8" +SRC_URI[sha256sum] = "75cd2859f38e207a090cac980d76bc71e9da99d48d09703584e00585abc920fe" diff --git a/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch b/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch new file mode 100644 index 0000000000..3e87794d20 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/libxshmfence/0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch @@ -0,0 +1,39 @@ +From 5827f6389a227157958d14a687fb29223cb3a03a Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Wed, 7 Apr 2021 07:48:42 +0000 +Subject: [PATCH] xshmfence_futex.h: Define SYS_futex if it does not exist + +_NR_futex is not defines by newer architectures e.g. riscv32 as +they only have 64bit variant of time_t. Glibc defines SYS_futex +interface based on __NR_futex, since this is used in applications, +such applications start to fail to build for these newer architectures. +This patch defines a fallback to alias __NR_futex to __NR_futex_time64 +to make SYS_futex keep working. + +Reference: https://git.openembedded.org/openembedded-core/commit/?id=7a218adf9990f5e18d0b6a33eb34091969f979c7 + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + src/xshmfence_futex.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/xshmfence_futex.h b/src/xshmfence_futex.h +index 673ac0e..a71efa5 100644 +--- a/src/xshmfence_futex.h ++++ b/src/xshmfence_futex.h +@@ -53,6 +53,10 @@ static inline int futex_wait(int32_t *addr, int32_t value) { + #include <sys/time.h> + #include <sys/syscall.h> + ++#if !defined(SYS_futex) && defined(SYS_futex_time64) ++#define SYS_futex SYS_futex_time64 ++#endif ++ + static inline long sys_futex(void *addr1, int op, int val1, struct timespec *timeout, void *addr2, int val3) + { + return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3); +-- +2.29.2 + diff --git a/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb b/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.2.bb index 85a48e4c58..0a7da938e1 100644 --- a/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.2.bb @@ -6,12 +6,15 @@ using file descriptor passing." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "HPND" LIC_FILES_CHKSUM = "file://COPYING;md5=47e508ca280fde97906eacb77892c3ac" DEPENDS += "virtual/libx11" -BBCLASSEXTEND = "native nativesdk" +EXTRA_OECONF += "--with-shared-memory-dir=/dev/shm" + +SRC_URI += "file://0001-xshmfence_futex.h-Define-SYS_futex-if-it-does-not-ex.patch" -SRC_URI[md5sum] = "42dda8016943dc12aff2c03a036e0937" -SRC_URI[sha256sum] = "b884300d26a14961a076fbebc762a39831cb75f92bed5ccf9836345b459220c7" +SRC_URI[sha256sum] = "870df257bc40b126d91b5a8f1da6ca8a524555268c50b59c0acd1a27f361606f" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb b/meta/recipes-graphics/xorg-lib/libxt_1.3.0.bb index 42df435052..1805dae772 100644 --- a/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb +++ b/meta/recipes-graphics/xorg-lib/libxt_1.3.0.bb @@ -12,8 +12,8 @@ independent of any particular user interface policy or style." require xorg-lib-common.inc -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=73d55cea4d27ca1a09a5d23378b3ecf8" +LICENSE = "MIT & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d6e9ca2c4b2276625afe025b0a2a4d8c" DEPENDS += "util-linux libxcb libsm virtual/libx11 xorgproto libxdmcp" PROVIDES = "xt" @@ -21,11 +21,11 @@ PROVIDES = "xt" PE = "1" XORG_PN = "libXt" +XORG_EXT = "tar.xz" -SRC_URI += "file://libxt_fix_for_x32.patch \ - " -SRC_URI[md5sum] = "a9019421d3ee8b4937b6afd9025f018a" -SRC_URI[sha256sum] = "b31df531dabed9f4611fc8980bc51d7782967e2aff44c4105251a1acb5a77831" +SRC_URI += "file://libxt_fix_for_x32.patch" + +SRC_URI[sha256sum] = "52820b3cdb827d08dc90bdfd1b0022a3ad8919b57a39808b12591973b331bf91" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxtst_1.2.3.bb b/meta/recipes-graphics/xorg-lib/libxtst_1.2.5.bb index 7837f69d38..df381b7d65 100644 --- a/meta/recipes-graphics/xorg-lib/libxtst_1.2.3.bb +++ b/meta/recipes-graphics/xorg-lib/libxtst_1.2.5.bb @@ -6,7 +6,7 @@ DESCRIPTION = "This extension is a minimal set of client and server \ extensions required to completely test the X11 server with no user \ intervention." -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=bb4f89972c3869f617f61c1a79ad1952 \ file://src/XTest.c;beginline=2;endline=32;md5=b1c8c9dff842b4d5b89ca5fa32c40e99" @@ -15,8 +15,6 @@ PROVIDES = "xtst" PE = "1" XORG_PN = "libXtst" - -SRC_URI[md5sum] = "ef8c2c1d16a00bd95b9fdcef63b8a2ca" -SRC_URI[sha256sum] = "4655498a1b8e844e3d6f21f3b2c4e2b571effb5fd83199d428a6ba7ea4bf5204" +SRC_URI[sha256sum] = "b50d4c25b97009a744706c1039c598f4d8e64910c9fde381994e1cae235d9242" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/libxv_1.0.11.bb b/meta/recipes-graphics/xorg-lib/libxv_1.0.12.bb index c6027233ef..7f9c5e5cbc 100644 --- a/meta/recipes-graphics/xorg-lib/libxv_1.0.11.bb +++ b/meta/recipes-graphics/xorg-lib/libxv_1.0.12.bb @@ -7,13 +7,12 @@ clients, which may draw in a number of colourspaces, including YUV." require xorg-lib-common.inc -LICENSE = "MIT-style" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=827da9afab1f727f2a66574629e0f39c" DEPENDS += "libxext xorgproto" XORG_PN = "libXv" -SRC_URI[md5sum] = "210b6ef30dda2256d54763136faa37b9" -SRC_URI[sha256sum] = "d26c13eac99ac4504c532e8e76a1c8e4bd526471eb8a0a4ff2a88db60cb0b088" +SRC_URI[sha256sum] = "aaf7fa09f689f7a2000fe493c0d64d1487a1210db154053e9e2336b860c63848" diff --git a/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.14.bb index 29ed0c43d1..af18afc62d 100644 --- a/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb +++ b/meta/recipes-graphics/xorg-lib/libxvmc_1.0.14.bb @@ -4,6 +4,7 @@ DESCRIPTION = "XvMC extends the X Video extension (Xv) and enables \ hardware rendered motion compensation support." require xorg-lib-common.inc +SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.xz" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=0a207f08d4961489c55046c9a5e500da \ @@ -15,5 +16,4 @@ PE = "1" XORG_PN = "libXvMC" -SRC_URI[md5sum] = "3569ff7f3e26864d986d6a21147eaa58" -SRC_URI[sha256sum] = "6b3da7977b3f7eaf4f0ac6470ab1e562298d82c4e79077765787963ab7966dcd" +SRC_URI[sha256sum] = "e4be9eb6b6bafdbbf81f47f7163047215376e45e2dc786d0ea6181c930725ed9" diff --git a/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.5.bb index 95fc0b642c..16fd29ebcd 100644 --- a/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.4.bb +++ b/meta/recipes-graphics/xorg-lib/libxxf86vm_1.1.5.bb @@ -15,6 +15,6 @@ DEPENDS += "libxext xorgproto" PE = "1" XORG_PN = "libXxf86vm" +SRC_URI[sha256sum] = "247fef48b3e0e7e67129e41f1e789e8d006ba47dba1c0cdce684b9b703f888e7" -SRC_URI[md5sum] = "298b8fff82df17304dfdb5fe4066fe3a" -SRC_URI[sha256sum] = "afee27f93c5f31c0ad582852c0fb36d50e4de7cd585fcf655e278a633d85cd57" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch new file mode 100644 index 0000000000..5c79754e50 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/pixman/0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch @@ -0,0 +1,56 @@ +From 1e32984ccd58da1a66ca918d170a6b1829ef9df2 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 16 Jul 2024 15:31:16 +0800 +Subject: [PATCH] pixman-combine-float.c: fix inlining failed in call to + always_inline +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Refer [1], always-inline is not suggested to be used if you have indirect +calls. so replace force_inline with inline to fix error: +In function ‘combine_inner’, + inlined from ‘combine_soft_light_ca_float’ at ../pixman/pixman-combine-float.c:655:511: +../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to ‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679 + +Upstream-Status: Submitted [https://www.mail-archive.com/pixman@lists.freedesktop.org/msg04812.html] + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + pixman/pixman-combine-float.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pixman/pixman-combine-float.c b/pixman/pixman-combine-float.c +index f5145bc..f65eb5f 100644 +--- a/pixman/pixman-combine-float.c ++++ b/pixman/pixman-combine-float.c +@@ -261,7 +261,7 @@ get_factor (combine_factor_t factor, float sa, float da) + } + + #define MAKE_PD_COMBINERS(name, a, b) \ +- static float force_inline \ ++ static float inline \ + pd_combine_ ## name (float sa, float s, float da, float d) \ + { \ + const float fa = get_factor (a, sa, da); \ +@@ -360,13 +360,13 @@ MAKE_PD_COMBINERS (conjoint_xor, ONE_MINUS_DA_OVER_SA, ONE_MINUS_SA_OVER_DA) + */ + + #define MAKE_SEPARABLE_PDF_COMBINERS(name) \ +- static force_inline float \ ++ static inline float \ + combine_ ## name ## _a (float sa, float s, float da, float d) \ + { \ + return da + sa - da * sa; \ + } \ + \ +- static force_inline float \ ++ static inline float \ + combine_ ## name ## _c (float sa, float s, float da, float d) \ + { \ + float f = (1 - sa) * d + (1 - da) * s; \ +-- +2.25.1 + diff --git a/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch b/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch deleted file mode 100644 index 782c1db022..0000000000 --- a/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0ccd906b904d21536d5ab41c6196760e3e5d72cb Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 17 May 2016 17:30:00 -0700 -Subject: [PATCH] test/utils: Check for FE_INVALID definition before use - -Some architectures e.g. nios2 do not support all exceptions - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted - - test/utils.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/test/utils.c b/test/utils.c -index f8e42a5..fe32b1e 100644 ---- a/test/utils.c -+++ b/test/utils.c -@@ -978,9 +978,11 @@ enable_invalid_exceptions (void) - { - #ifdef HAVE_FENV_H - #ifdef HAVE_FEENABLEEXCEPT -+#ifdef FE_INVALID - feenableexcept (FE_INVALID); - #endif - #endif -+#endif - } - - void * --- -2.8.2 - diff --git a/meta/recipes-graphics/xorg-lib/pixman/865e6ce00bb79a6b925ed4c2c436e1533e4472aa.patch b/meta/recipes-graphics/xorg-lib/pixman/865e6ce00bb79a6b925ed4c2c436e1533e4472aa.patch new file mode 100644 index 0000000000..927ca08cc2 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/pixman/865e6ce00bb79a6b925ed4c2c436e1533e4472aa.patch @@ -0,0 +1,104 @@ +From 865e6ce00bb79a6b925ed4c2c436e1533e4472aa Mon Sep 17 00:00:00 2001 +From: Mike Hommey <mh@glandium.org> +Date: Fri, 12 Jul 2024 11:11:17 -0400 +Subject: [PATCH] pixman: Adjust arm assembly for binutils change + +A change in the latest version of binutils broke building pixman for arm. + +The binutils change: +https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b + +Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/96 +--- + pixman/pixman-arm-simd-asm.S | 44 ++++++++++++++++++------------------ + 1 file changed, 22 insertions(+), 22 deletions(-) + +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> +Upstream-Status: Backport [865e6ce00bb79a6b925ed4c2c436e1533e4472aa] + +Index: pixman-0.42.2/pixman/pixman-arm-simd-asm.S +=================================================================== +--- pixman-0.42.2.orig/pixman/pixman-arm-simd-asm.S ++++ pixman-0.42.2/pixman/pixman-arm-simd-asm.S +@@ -818,13 +818,13 @@ generate_composite_function \ + .macro over_white_8888_8888_ca_1pixel_tail + mvn TMP0, WK1 + teq WK1, WK1, asr #32 +- bne 01f +- bcc 03f ++ bne 1f ++ bcc 3f + mov WK3, WK1 +- b 02f +-01: over_white_8888_8888_ca_combine WK1, WK3 +-02: pixst , 4, 3, DST +-03: ++ b 2f ++1: over_white_8888_8888_ca_combine WK1, WK3 ++2: pixst , 4, 3, DST ++3: + .endm + + .macro over_white_8888_8888_ca_2pixels_head +@@ -835,21 +835,21 @@ generate_composite_function \ + pixld , 8, 3, DST + mvn TMP0, WK1 + teq WK1, WK1, asr #32 +- bne 01f ++ bne 1f + movcs WK3, WK1 +- bcs 02f ++ bcs 2f + teq WK2, #0 +- beq 05f +- b 02f +-01: over_white_8888_8888_ca_combine WK1, WK3 +-02: mvn TMP0, WK2 ++ beq 5f ++ b 2f ++1: over_white_8888_8888_ca_combine WK1, WK3 ++2: mvn TMP0, WK2 + teq WK2, WK2, asr #32 +- bne 03f ++ bne 3f + movcs WK4, WK2 +- b 04f +-03: over_white_8888_8888_ca_combine WK2, WK4 +-04: pixst , 8, 3, DST +-05: ++ b 4f ++3: over_white_8888_8888_ca_combine WK2, WK4 ++4: pixst , 8, 3, DST ++5: + .endm + + .macro over_white_8888_8888_ca_process_head cond, numbytes, firstreg, unaligned_src, unaligned_mask, preload +@@ -1065,9 +1065,9 @@ generate_composite_function \ + .if offset != 0 + ldrb ORIG_W, [SRC, #offset] + .endif +- beq 01f ++ beq 1f + teq STRIDE_M, #0xFF +- beq 02f ++ beq 2f + .endif + uxtb16 SCRATCH, d /* rb_dest */ + uxtb16 d, d, ror #8 /* ag_dest */ +@@ -1077,13 +1077,13 @@ generate_composite_function \ + uxtab16 d, d, d, ror #8 + mov SCRATCH, SCRATCH, ror #8 + sel d, SCRATCH, d +- b 02f ++ b 2f + .if offset == 0 + 48: /* Last mov d,#0 of the set - used as part of shortcut for + * source values all 0 */ + .endif +-01: mov d, #0 +-02: ++1: mov d, #0 ++2: + .endm + + .macro in_reverse_8888_8888_tail numbytes, reg1, reg2, reg3, reg4 diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb b/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb deleted file mode 100644 index 82c2e73e50..0000000000 --- a/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb +++ /dev/null @@ -1,40 +0,0 @@ -SUMMARY = "Pixman: Pixel Manipulation library" - -DESCRIPTION = "Pixman provides a library for manipulating pixel regions \ --- a set of Y-X banded rectangles, image compositing using the \ -Porter/Duff model and implicit mask generation for geometric primitives \ -including trapezoids, triangles, and rectangles." - -require xorg-lib-common.inc - -# see http://cairographics.org/releases/ - only even minor versions are stable -UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" - -LICENSE = "MIT & MIT-style & PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \ - file://pixman/pixman-matrix.c;endline=21;md5=4a018dff3e4e25302724c88ff95c2456 \ - file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \ - " -DEPENDS += "zlib libpng" -BBCLASSEXTEND = "native nativesdk" - -PE = "1" - -IWMMXT = "--disable-arm-iwmmxt" -LOONGSON_MMI = "--disable-loongson-mmi" -# If target supports neon then disable the 'simd' (ie VFPv2) fallback, otherwise disable neon. -NEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--disable-arm-simd", "--disable-arm-neon" ,d)}" - -EXTRA_OECONF = "--disable-gtk ${IWMMXT} ${LOONGSON_MMI} ${NEON}" -EXTRA_OECONF_class-native = "--disable-gtk" -EXTRA_OECONF_class-nativesdk = "--disable-gtk" - -SRC_URI += "\ - file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \ - file://0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch \ -" - -SRC_URI[md5sum] = "16a350a8a40116ddf67632a1d2623711" -SRC_URI[sha256sum] = "84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550" - -REQUIRED_DISTRO_FEATURES = "" diff --git a/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb b/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb new file mode 100644 index 0000000000..4be72665f9 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb @@ -0,0 +1,49 @@ +SUMMARY = "Pixman: Pixel Manipulation library" +DESCRIPTION = "Pixman provides a library for manipulating pixel regions \ +-- a set of Y-X banded rectangles, image compositing using the \ +Porter/Duff model and implicit mask generation for geometric primitives \ +including trapezoids, triangles, and rectangles." +HOMEPAGE = "http://www.pixman.org" +SECTION = "x11/libs" +DEPENDS = "zlib" + +SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \ + file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \ + file://0001-pixman-combine-float.c-fix-inlining-failed-in-call-t.patch \ + file://865e6ce00bb79a6b925ed4c2c436e1533e4472aa.patch \ + " +SRC_URI[sha256sum] = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e" + +# see http://cairographics.org/releases/ - only even minor versions are stable +UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" + +PE = "1" + +LICENSE = "MIT & PD" +LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \ + file://pixman/pixman-matrix.c;endline=21;md5=4a018dff3e4e25302724c88ff95c2456 \ + file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \ + " + +inherit meson pkgconfig + +# These are for the tests and demos, which we don't install +EXTRA_OEMESON = "-Dgtk=disabled -Dlibpng=disabled" +# ld: pixman/libpixman-mmx.a(pixman-mmx.c.o): +# linking mips:loongson_2f module with previous mips:isa64 modules +EXTRA_OEMESON += "-Dloongson-mmi=disabled" +# disable iwmmxt due to compile fails on most arm platforms. +EXTRA_OEMESON += "-Diwmmxt=disabled" + +EXTRA_OEMESON:append:class-target:powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "-Dvmx=enabled", "-Dvmx=disabled", d)}" +EXTRA_OEMESON:append:class-target:powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "-Dvmx=enabled", "-Dvmx=disabled", d)}" +EXTRA_OEMESON:append:class-target:powerpc64le = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "-Dvmx=enabled", "-Dvmx=disabled", d)}" + +EXTRA_OEMESON:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon",""," -Dneon=disabled",d)}" +EXTRA_OEMESON:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon",""," -Dneon=disabled",d)}" + +EXTRA_OEMESON:append:class-native = " -Dopenmp=disabled" + +BBCLASSEXTEND = "native nativesdk" + +CVE_STATUS[CVE-2023-37769] = "not-applicable-config: stress-test is an uninstalled test" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb b/meta/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb new file mode 100644 index 0000000000..047697845c --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb @@ -0,0 +1,10 @@ +require recipes-graphics/xorg-lib/xcb-util.inc + +SUMMARY = "XCB port of libXcursor" + +DEPENDS += "xcb-util xcb-util-renderutil xcb-util-image" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=ce469b61c70ff8d7cce0547476891974" + +SRC_URI[sha256sum] = "28dcfe90bcab7b3561abe0dd58eb6832aa9cc77cfe42fcdfa4ebe20d605231fb" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-errors_1.0.1.bb b/meta/recipes-graphics/xorg-lib/xcb-util-errors_1.0.1.bb new file mode 100644 index 0000000000..dd76275b67 --- /dev/null +++ b/meta/recipes-graphics/xorg-lib/xcb-util-errors_1.0.1.bb @@ -0,0 +1,12 @@ +require recipes-graphics/xorg-lib/xcb-util.inc + +SUMMARY = "xcb-util-errors gives human readable names to error codes and event codes" + +DEPENDS += "xcb-util xorgproto" + +export PYTHON="python3" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c90ee77011043c608617f5323a523726" + +SRC_URI[sha256sum] = "5628c87b984259ad927bacd8a42958319c36bdf4b065887803c9d820fb80f357" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.0.bb b/meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.1.bb index c6bb5a61cd..018ac913bf 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.0.bb +++ b/meta/recipes-graphics/xorg-lib/xcb-util-image_0.4.1.bb @@ -9,5 +9,4 @@ LIC_FILES_CHKSUM = "file://image/xcb_image.c;endline=24;md5=eafdf965cfb89955fded SRC_URI += "file://clang.patch \ " -SRC_URI[md5sum] = "08fe8ffecc8d4e37c0ade7906b3f4c87" -SRC_URI[sha256sum] = "2db96a37d78831d643538dd1b595d7d712e04bdccf8896a5e18ce0f398ea2ffc" +SRC_URI[sha256sum] = "ccad8ee5dadb1271fd4727ad14d9bd77a64e505608766c4e98267d9aede40d3d" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.0.bb b/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb index bca64ed61f..f1a4c3e500 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.0.bb +++ b/meta/recipes-graphics/xorg-lib/xcb-util-keysyms_0.4.1.bb @@ -3,7 +3,6 @@ require xcb-util.inc LICENSE = "MIT" LIC_FILES_CHKSUM = "file://keysyms/keysyms.c;endline=30;md5=2f8de023ed823bb92f0b47900574ea9e \ " -SRC_URI[md5sum] = "1022293083eec9e62d5659261c29e367" -SRC_URI[sha256sum] = "0ef8490ff1dede52b7de533158547f8b454b241aa3e4dcca369507f66f216dd9" +SRC_URI[sha256sum] = "7c260a5294412aed429df1da2f8afd3bd07b7cba3fec772fba15a613a6d5c638" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.9.bb b/meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.10.bb index 25c22e5fa7..6590fa3301 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.9.bb +++ b/meta/recipes-graphics/xorg-lib/xcb-util-renderutil_0.3.10.bb @@ -6,5 +6,4 @@ LIC_FILES_CHKSUM = "file://renderutil/glyph.c;endline=24;md5=c517c483b8d726234ec file://renderutil/xcb_renderutil.h;endline=24;md5=d0ddab3052dd4949c93cfcb0891c96df \ " -SRC_URI[md5sum] = "468b119c94da910e1291f3ffab91019a" -SRC_URI[sha256sum] = "c6e97e48fb1286d6394dddb1c1732f00227c70bd1bedb7d1acabefdd340bea5b" +SRC_URI[sha256sum] = "3e15d4f0e22d8ddbfbb9f5d77db43eacd7a304029bf25a6166cc63caa96d04ba" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.1.bb b/meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.2.bb index 39f1383299..65d340f88c 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.1.bb +++ b/meta/recipes-graphics/xorg-lib/xcb-util-wm_0.4.2.bb @@ -7,5 +7,4 @@ LIC_FILES_CHKSUM = "file://ewmh/ewmh.c.m4;endline=27;md5=63fd80552d7dc886f4eb267 file://icccm/xcb_icccm.h;beginline=4;endline=31;md5=393772b7b07b9868d479d538238c1d8a \ " -SRC_URI[md5sum] = "87b19a1cd7bfcb65a24e36c300e03129" -SRC_URI[sha256sum] = "28bf8179640eaa89276d2b0f1ce4285103d136be6c98262b6151aaee1d3c2a3f" +SRC_URI[sha256sum] = "62c34e21d06264687faea7edbf63632c9f04d55e72114aa4a57bb95e4f888a0b" diff --git a/meta/recipes-graphics/xorg-lib/xcb-util.inc b/meta/recipes-graphics/xorg-lib/xcb-util.inc index 0e5ab70b2d..9898a6a13e 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util.inc +++ b/meta/recipes-graphics/xorg-lib/xcb-util.inc @@ -16,7 +16,7 @@ SECTION = "x11/libs" DEPENDS = "libxcb" DEPENDS += "gperf-native" -SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.bz2" +SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.xz" inherit autotools pkgconfig features_check diff --git a/meta/recipes-graphics/xorg-lib/xcb-util_0.4.0.bb b/meta/recipes-graphics/xorg-lib/xcb-util_0.4.1.bb index 206f07a65c..0da004f907 100644 --- a/meta/recipes-graphics/xorg-lib/xcb-util_0.4.0.bb +++ b/meta/recipes-graphics/xorg-lib/xcb-util_0.4.1.bb @@ -1,8 +1,9 @@ require xcb-util.inc +SRC_URI = "http://xcb.freedesktop.org/dist/${BPN}-${PV}.tar.xz" + LICENSE = "MIT" LIC_FILES_CHKSUM = "file://src/xcb_aux.c;endline=30;md5=ae305b9c2a38f9ba27060191046a6460 \ file://src/xcb_event.h;endline=27;md5=627be355aee59e1b8ade80d5bd90fad9" -SRC_URI[md5sum] = "2e97feed81919465a04ccc71e4073313" -SRC_URI[sha256sum] = "46e49469cb3b594af1d33176cd7565def2be3fa8be4371d62271fabb5eae50e9" +SRC_URI[sha256sum] = "5abe3bbbd8e54f0fa3ec945291b7e8fa8cfd3cccc43718f8758430f94126e512" diff --git a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.42.bb index 7a3d694bd6..cdc6422d46 100644 --- a/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb +++ b/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.42.bb @@ -9,23 +9,24 @@ systems." HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig" BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config" -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" +LICENSE = "MIT & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=8fc8ae699974c360e2e2e883a63ce264" -SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "5a968ab77846ff85a04242410b2a61de" -SRC_URI[sha256sum] = "69adb25b0fc64e4075f8ec0eab8d869892419f474f91fb69db1713de2062bdce" +SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "a6b06ebfc1f01fc505f2f05f265f95f67cc8873a54dd247e3c2d754b8f7e0807" SECTION = "x11/libs" DEPENDS = "util-macros libxslt-native" EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" -FILES_${PN} += "${datadir}/X11/xkb" +FILES:${PN} += "${datadir}/X11/xkb" -inherit autotools pkgconfig gettext +inherit meson pkgconfig gettext python3native -do_install_append () { +do_install:append () { install -d ${D}${datadir}/X11/xkb/compiled cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg } + +BBCLASSEXTEND += "native" diff --git a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc index a566eaa45e..15c7ecf782 100644 --- a/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc +++ b/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc @@ -2,12 +2,13 @@ HOMEPAGE = "http://www.x.org" BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" SECTION = "x11/libs" -LICENSE = "MIT-X" +LICENSE = "MIT" DEPENDS = "util-macros" XORG_PN = "${BPN}" +XORG_EXT ?= "tar.xz" -SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2" +SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.${XORG_EXT}" S = "${WORKDIR}/${XORG_PN}-${PV}" @@ -18,7 +19,7 @@ EXTRA_OECONF = "--disable-specs --without-groff --without-ps2pdf --without-fop" PACKAGECONFIG ??= "" PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" -UNKNOWN_CONFIGURE_WHITELIST += "--enable-malloc0returnsnull --disable-malloc0returnsnull \ +UNKNOWN_CONFIGURE_OPT_IGNORE += "--enable-malloc0returnsnull --disable-malloc0returnsnull \ --disable-specs --without-groff --without-ps2pdf --without-fop \ --without-xmlto --with-xmlto \ " diff --git a/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb b/meta/recipes-graphics/xorg-lib/xtrans_1.5.0.bb index 5bf134b5f8..781382e516 100644 --- a/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb +++ b/meta/recipes-graphics/xorg-lib/xtrans_1.5.0.bb @@ -9,18 +9,17 @@ except in the X Transport Interface code." require xorg-lib-common.inc -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=49347921d4d5268021a999f250edc9ca" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=bc875e1c864f4f62b29f7d8651f627fa" SRC_URI += "file://multilibfix.patch" PE = "1" -RDEPENDS_${PN}-dev = "" +DEV_PKG_DEPENDENCY = "" inherit gettext BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "ce2fb8100c6647ee81451ebe388b17ad" -SRC_URI[sha256sum] = "377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773" +SRC_URI[sha256sum] = "1ba4b703696bfddbf40bacf25bce4e3efb2a0088878f017a50e9884b0c8fb1bd" diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Fix-install-conflict-when-enable-multilib.patch b/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Fix-install-conflict-when-enable-multilib.patch new file mode 100644 index 0000000000..4209139da8 --- /dev/null +++ b/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Fix-install-conflict-when-enable-multilib.patch @@ -0,0 +1,32 @@ +From fc28149b6b198042c8d29e0931415adad7ed3231 Mon Sep 17 00:00:00 2001 +From: Wang Mingyu <wangmy@fujitsu.com> +Date: Thu, 16 Mar 2023 08:03:47 +0000 +Subject: [PATCH] Fix install conflict when enable multilib. + +Automake defines pythondir in terms of libdir (rather than hardcode 'lib' or query it from python as automake upstream does) +https://git.yoctoproject.org/poky/tree/meta/recipes-devtools/automake/automake/0001-automake-Update-for-python.m4-to-respect-libdir.patch + +So libdir needs to be defined when pythondir is defined. + +Upstream-Status: Inappropriate + +Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> +--- + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 8b57a83..580f5bc 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,6 +1,6 @@ + SUBDIRS = src xcbgen + +-pkgconfigdir = $(datarootdir)/pkgconfig ++pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = xcb-proto.pc + + EXTRA_DIST=doc xcb-proto.pc.in autogen.sh README.md +-- +2.34.1 + diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto/0001-xcb-proto.pc.in-reinstate-libdir.patch b/meta/recipes-graphics/xorg-proto/xcb-proto/0001-xcb-proto.pc.in-reinstate-libdir.patch new file mode 100644 index 0000000000..fe0a96c207 --- /dev/null +++ b/meta/recipes-graphics/xorg-proto/xcb-proto/0001-xcb-proto.pc.in-reinstate-libdir.patch @@ -0,0 +1,29 @@ +From ed499cffabe64fc1dc5898cb69ffa7e62c19e9d8 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 5 Jul 2022 21:19:20 +0200 +Subject: [PATCH] xcb-proto.pc.in: reinstate libdir + +Otherwise the following occurs when building libxcb: +| checking for xcb-proto >= 1.14... no +| configure: error: Package requirements (xcb-proto >= 1.14) were not met: +| +| Variable 'libdir' not defined in '/srv/work/alex/poky/build-64-alt/tmp/work/core2-64-poky-linux/libxcb/1.15-r0/recipe-sysroot/usr/share/pkgconfig/xcb-proto.pc' + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/merge_requests/31] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + xcb-proto.pc.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xcb-proto.pc.in b/xcb-proto.pc.in +index 0822b18..c7c8b47 100644 +--- a/xcb-proto.pc.in ++++ b/xcb-proto.pc.in +@@ -2,6 +2,7 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + datarootdir=@datarootdir@ + datadir=@datadir@ ++libdir=@libdir@ + xcbincludedir=${pc_sysrootdir}@xcbincludedir@ + PYTHON_PREFIX=@PYTHON_PREFIX@ + pythondir=${pc_sysrootdir}@pythondir@ diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto_1.13.bb b/meta/recipes-graphics/xorg-proto/xcb-proto_1.17.0.bb index 7467090920..2a78a87e77 100644 --- a/meta/recipes-graphics/xorg-proto/xcb-proto_1.13.bb +++ b/meta/recipes-graphics/xorg-proto/xcb-proto_1.17.0.bb @@ -11,19 +11,21 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7 \ file://src/dri2.xml;beginline=2;endline=28;md5=f8763b13ff432e8597e0d610cf598e65" -SRC_URI = "http://xcb.freedesktop.org/dist/${BP}.tar.bz2" -SRC_URI[md5sum] = "abe9aa4886138150bbc04ae4f29b90e3" -SRC_URI[sha256sum] = "7b98721e669be80284e9bbfeab02d2d0d54cd11172b72271e47a2fe875e2bde1" +SRC_URI = "https://xorg.freedesktop.org/archive/individual/proto/${BP}.tar.xz \ + file://0001-xcb-proto.pc.in-reinstate-libdir.patch \ + file://0001-Fix-install-conflict-when-enable-multilib.patch \ + " +SRC_URI[sha256sum] = "2c1bacd2110f4799f74de6ebb714b94cf6f80fb112316b1219480fd22562148c" inherit autotools pkgconfig python3native PACKAGES += "python-xcbgen" -FILES_${PN} = "" -FILES_${PN}-dev += "${datadir}/xcb/*.xml ${datadir}/xcb/*.xsd" -FILES_python-xcbgen = "${PYTHON_SITEPACKAGES_DIR}" +FILES:${PN} = "" +FILES:${PN}-dev += "${datadir}/xcb/*.xml ${datadir}/xcb/*.xsd" +FILES:python-xcbgen = "${PYTHON_SITEPACKAGES_DIR}" -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" +DEV_PKG_DEPENDENCY = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc b/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc deleted file mode 100644 index 7a417c9742..0000000000 --- a/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "X protocol headers: ${XORG_PN}" -HOMEPAGE = "http://www.x.org" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" - -SECTION = "x11/libs" -LICENSE = "MIT-X" - -XORG_PN = "${BPN}" - -SRC_URI = "${XORG_MIRROR}/individual/proto/${XORG_PN}-${PV}.tar.bz2" - -S = "${WORKDIR}/${XORG_PN}-${PV}" - -DEPENDS = "util-macros" - -inherit autotools pkgconfig -EXTRA_OECONF = "--without-fop" - -UNKNOWN_CONFIGURE_WHITELIST += "--without-fop --without-xmlto --with-xmlto" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" - -# ${PN} is empty so we need to tweak -dev and -dbg package dependencies -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb deleted file mode 100644 index 8acbe895aa..0000000000 --- a/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -require xorg-proto-common.inc - -SUMMARY = "X Window System unified protocol definitions" - -DESCRIPTION = "This package provides the headers and specification documents defining \ -the core protocol and (many) extensions for the X Window System" - -LICENSE = "MIT-style" -LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676" - -SRC_URI[md5sum] = "a02dcaff48b4141b949ac99dfc344d86" -SRC_URI[sha256sum] = "46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-proto/xorgproto_2024.1.bb b/meta/recipes-graphics/xorg-proto/xorgproto_2024.1.bb new file mode 100644 index 0000000000..3f56e21a55 --- /dev/null +++ b/meta/recipes-graphics/xorg-proto/xorgproto_2024.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "X Window System unified protocol definitions" +DESCRIPTION = "This package provides the headers and specification documents defining \ +the core protocol and (many) extensions for the X Window System" +HOMEPAGE = "http://www.x.org" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" + +SECTION = "x11/libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=0b9fe3db4015bcbe920e7c67a39ee3f1" + +SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.xz" +SRC_URI[sha256sum] = "372225fd40815b8423547f5d890c5debc72e88b91088fbfb13158c20495ccb59" + +inherit meson + +PACKAGECONFIG ??= "" +PACKAGECONFIG[legacy] = "-Dlegacy=true,-Dlegacy=false" + +# Datadir only used to install pc files, $datadir/pkgconfig +datadir="${libdir}" +# ${PN} is empty so we need to tweak -dev and -dbg package dependencies +DEV_PKG_DEPENDENCY = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-util/makedepend_1.0.6.bb b/meta/recipes-graphics/xorg-util/makedepend_1.0.9.bb index 2760edd173..6db7d04079 100644 --- a/meta/recipes-graphics/xorg-util/makedepend_1.0.6.bb +++ b/meta/recipes-graphics/xorg-util/makedepend_1.0.9.bb @@ -17,5 +17,4 @@ BBCLASSEXTEND = "native" LIC_FILES_CHKSUM = "file://COPYING;md5=43a6eda34b48ee821b3b66f4f753ce4f" -SRC_URI[md5sum] = "8a583055c84914060c35b6c2f963fc07" -SRC_URI[sha256sum] = "845f6708fc850bf53f5b1d0fb4352c4feab3949f140b26f71b22faba354c3365" +SRC_URI[sha256sum] = "bc94ffda6cd4671603a69c39dbe8f96b317707b9185b2aaa3b54b5d134b41884" diff --git a/meta/recipes-graphics/xorg-util/util-macros/0001-xorg-macros.m4.in-do-not-run-AC_CANONICAL_HOST-in-ma.patch b/meta/recipes-graphics/xorg-util/util-macros/0001-xorg-macros.m4.in-do-not-run-AC_CANONICAL_HOST-in-ma.patch new file mode 100644 index 0000000000..e08b586bf0 --- /dev/null +++ b/meta/recipes-graphics/xorg-util/util-macros/0001-xorg-macros.m4.in-do-not-run-AC_CANONICAL_HOST-in-ma.patch @@ -0,0 +1,28 @@ +From 6afaaf164ab9370204856961a92ad8ee523a8293 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Fri, 3 Mar 2023 13:24:58 +0100 +Subject: [PATCH] xorg-macros.m4.in: do not run AC_CANONICAL_HOST in manpage + section macro + +This doesn't work when building allarch items, as it calls into +config.sub with the host triplet, and config.sub can't match +it against any architeture it knows. + +Upstream-Status: Inappropriate [oe specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + xorg-macros.m4.in | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in +index 3b8b8e9..6541236 100644 +--- a/xorg-macros.m4.in ++++ b/xorg-macros.m4.in +@@ -111,7 +111,6 @@ AC_SUBST(TRADITIONALCPPFLAGS) + # Added AC_PROG_SED in version 1.8 + + AC_DEFUN([XORG_MANPAGE_SECTIONS],[ +-AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_PROG_SED]) + + case $host_os in diff --git a/meta/recipes-graphics/xorg-util/util-macros_1.19.2.bb b/meta/recipes-graphics/xorg-util/util-macros_1.19.2.bb deleted file mode 100644 index 268059935c..0000000000 --- a/meta/recipes-graphics/xorg-util/util-macros_1.19.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "X autotools macros" - -DESCRIPTION = "M4 autotools macros used by various X.org programs." - -require xorg-util-common.inc - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=1970511fddd439b07a6ba789d28ff662" - -PE = "1" - -SRC_URI[md5sum] = "5059b328fac086b733ffac6607164c41" -SRC_URI[sha256sum] = "9225c45c3de60faf971979a55a5536f3562baa4b6f02246c23e98ac0c09a75b7" - -# ${PN} is empty so we need to tweak -dev and -dbg package dependencies -RDEPENDS_${PN}-dev = "" -RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-util/util-macros_1.20.1.bb b/meta/recipes-graphics/xorg-util/util-macros_1.20.1.bb new file mode 100644 index 0000000000..8a0e7bec41 --- /dev/null +++ b/meta/recipes-graphics/xorg-util/util-macros_1.20.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "X autotools macros" + +DESCRIPTION = "M4 autotools macros used by various X.org programs." + +require xorg-util-common.inc + +LICENSE = "MIT & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=42ba50748cb7ccf8739424e5e2072b02" + +PE = "1" + +SRC_URI += "file://0001-xorg-macros.m4.in-do-not-run-AC_CANONICAL_HOST-in-ma.patch" + +SRC_URI[sha256sum] = "b373f72887b1394ce2193180a60cb0d1fb8b17bc96ddd770cfd7a808cb489a15" + +# ${PN} is empty so we need to tweak -dev and -dbg package dependencies +DEV_PKG_DEPENDENCY = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/xorg-util/xorg-util-common.inc b/meta/recipes-graphics/xorg-util/xorg-util-common.inc index 18d022c49f..a4c85a4ebc 100644 --- a/meta/recipes-graphics/xorg-util/xorg-util-common.inc +++ b/meta/recipes-graphics/xorg-util/xorg-util-common.inc @@ -2,7 +2,7 @@ HOMEPAGE = "http://www.x.org" BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" SECTION = "x11/utils" -LICENSE = "MIT-X" +LICENSE = "MIT" XORG_PN = "${BPN}" diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf index f4cd139e8d..3eb380a0a4 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf @@ -35,4 +35,8 @@ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" Option "AllowEmptyInput" "no" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf deleted file mode 100644 index 1d3c64f620..0000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf +++ /dev/null @@ -1,39 +0,0 @@ - -Section "Files" -EndSection - -Section "Device" - Identifier "Graphics Controller" - Driver "fbdev" -EndSection - -Section "Monitor" - Identifier "Generic Monitor" - Option "DPMS" - # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz - Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync - # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz - ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync - # 640x480 @ 72Hz (VESA) hsync: 37.9kHz - ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync - # 640x480 @ 75Hz (VESA) hsync: 37.5kHz - ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync - # 640x480 @ 85Hz (VESA) hsync: 43.3kHz - ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync -EndSection - -Section "Screen" - Identifier "Default Screen" - Device "Graphics Controller" - Monitor "Generic Monitor" - DefaultDepth 16 - SubSection "Display" - Modes "640x480" - EndSubSection -EndSection - -Section "ServerLayout" - Identifier "Default Layout" - Screen "Default Screen" - Option "AllowEmptyInput" "no" -EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf deleted file mode 100644 index 03b94dc3af..0000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf +++ /dev/null @@ -1,39 +0,0 @@ - -Section "Files" -EndSection - -Section "Device" - Identifier "Graphics Controller" - Driver "fbdev" -EndSection - -Section "Monitor" - Identifier "Generic Monitor" - Option "DPMS" - # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz - Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync - # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz - ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync - # 640x480 @ 72Hz (VESA) hsync: 37.9kHz - ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync - # 640x480 @ 75Hz (VESA) hsync: 37.5kHz - ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync - # 640x480 @ 85Hz (VESA) hsync: 43.3kHz - ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync -EndSection - -Section "Screen" - Identifier "Default Screen" - Device "Graphics Controller" - Monitor "Generic Monitor" - DefaultDepth 16 - SubSection "Display" - Modes "640x480" - EndSubSection -EndSection - -Section "ServerLayout" - Identifier "Default Layout" - Screen "Default Screen" - Option "AllowEmptyInput" "no" -EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf index f4cd139e8d..3eb380a0a4 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf @@ -35,4 +35,8 @@ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" Option "AllowEmptyInput" "no" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf index f4cd139e8d..3eb380a0a4 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf @@ -35,4 +35,8 @@ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" Option "AllowEmptyInput" "no" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf index c12d92c201..c01c3331c5 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf @@ -30,4 +30,8 @@ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" Option "AllowEmptyInput" "no" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf index c12d92c201..c01c3331c5 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf @@ -30,4 +30,8 @@ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" Option "AllowEmptyInput" "no" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" EndSection diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb index 5420b7d23e..0972a5dd78 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb +++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb @@ -1,22 +1,22 @@ SUMMARY = "X.Org X server configuration file" HOMEPAGE = "http://www.x.org" SECTION = "x11/base" -LICENSE = "MIT-X" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -PR = "r33" SRC_URI = "file://xorg.conf" -S = "${WORKDIR}" +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" -CONFFILES_${PN} = "${sysconfdir}/X11/xorg.conf" +CONFFILES:${PN} = "${sysconfdir}/X11/xorg.conf" PACKAGE_ARCH = "${MACHINE_ARCH}" -ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY:${PN} = "1" do_install () { - if test -s ${WORKDIR}/xorg.conf; then + if test -s ${S}/xorg.conf; then install -d ${D}/${sysconfdir}/X11 - install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/ + install -m 0644 ${S}/xorg.conf ${D}/${sysconfdir}/X11/ fi } diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc index a0ae65c785..e2754426cf 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc @@ -1,7 +1,7 @@ SUMMARY = "The X.Org X server" HOMEPAGE = "http://www.x.org" SECTION = "x11/base" -LICENSE = "MIT-X" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880" # xf86-*-* packages depend on an X server built with the xfree86 DDX @@ -13,21 +13,31 @@ PROVIDES = "virtual/xserver-xf86" PROVIDES += "virtual/xserver" PE = "2" -INC_PR = "r8" XORG_PN = "xorg-server" -SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2" +SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.xz" -CVE_PRODUCT = "xorg-server" +UPSTREAM_CHECK_REGEX = "xorg-server-(?P<pver>\d+(\.(?!99)\d+)+)\.tar" + +CVE_PRODUCT = "xorg-server x_server" + +CVE_STATUS[CVE-2011-4613] = "not-applicable-platform: This is specific to Debian's xserver-wrapper.c" +CVE_STATUS[CVE-2020-25697] = "upstream-wontfix: \ +As per upstream, exploiting this flaw is non-trivial and it requires exact \ +timing on the behalf of the attacker. Many graphical applications exit if their \ +connection to the X server is lost, so a typical desktop session is either \ +impossible or difficult to exploit. There is currently no upstream patch \ +available for this flaw." +CVE_STATUS[CVE-2022-3553] = "cpe-incorrect: This is specific to XQuartz, which is the macOS X server port" S = "${WORKDIR}/${XORG_PN}-${PV}" -inherit autotools pkgconfig +inherit meson pkgconfig inherit features_check REQUIRED_DISTRO_FEATURES = "x11" -LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess" +LIB_DEPS = "pixman libxfont2 xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess libxcvt libtirpc" DEPENDS = "xorgproto ${LIB_DEPS} font-util" # Split out some modules and extensions from the main package @@ -68,94 +78,80 @@ PACKAGES =+ "${PN}-sdl \ ${PN}-module-libxf4bpp \ xf86-video-modesetting" -SUMMARY_xf86-video-modesetting = "X.Org X server -- modesetting display driver" -INSANE_SKIP_${MLPREFIX}xf86-video-modesetting = "xorg-driver-abi" - -XSERVER_RRECOMMENDS = "xkeyboard-config rgb xserver-xf86-config xkbcomp xf86-input-libinput" -RRECOMMENDS_${PN} += "${XSERVER_RRECOMMENDS}" -RRECOMMENDS_${PN}-xwayland += "${XSERVER_RRECOMMENDS}" -RDEPENDS_${PN}-xvfb += "xkeyboard-config" -RDEPENDS_${PN}-module-exa = "${PN} (= ${EXTENDPKGV})" - -FILES_${PN} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules/*.so ${libdir}/xorg/modules/*.so /etc/X11 ${libdir}/xorg/protocol.txt ${datadir}/X11/xorg.conf.d" -FILES_${PN}-dev += "${libdir}/xorg/modules/*.la ${libdir}/xorg/modules/*/*.la" -FILES_${PN}-doc += "${libdir}/X11/doc ${datadir}/X11/xkb/compiled/README.compiled ${localstatedir}/lib/xkb/README.compiled" -FILES_${PN}-sdl = "${bindir}/Xsdl" -FILES_${PN}-fbdev = "${bindir}/Xfbdev" -FILES_${PN}-xvfb = "${bindir}/Xvfb" -FILES_${PN}-utils = "${bindir}/scanpci ${bindir}/pcitweak ${bindir}/ioport ${bindir}/in[bwl] ${bindir}/out[bwl] ${bindir}/mmap[rw] ${bindir}/gtf ${bindir}/getconfig ${bindir}/getconfig.pl" -FILES_${PN}-xephyr = "${bindir}/Xephyr" -FILES_${PN}-xwayland = "${bindir}/Xwayland" -FILES_${PN}-multimedia-modules = "${libdir}/xorg/modules/multimedia/*drv*" -FILES_${PN}-extension-dri = "${libdir}/xorg/modules/extensions/libdri.so" -FILES_${PN}-extension-dri2 = "${libdir}/xorg/modules/extensions/libdri2.so" -FILES_${PN}-extension-glx = "${libdir}/xorg/modules/extensions/libglx.so" -FILES_${PN}-extension-record = "${libdir}/xorg/modules/extensions/librecord.so" -FILES_${PN}-extension-extmod = "${libdir}/xorg/modules/extensions/libextmod.so" -FILES_${PN}-extension-dbe = "${libdir}/xorg/modules/extensions/libdbe.so" -FILES_${PN}-module-libint10 = "${libdir}/xorg/modules/libint10.so" -FILES_${PN}-module-libafb = "${libdir}/xorg/modules/libafb.so" -FILES_${PN}-module-libwfb = "${libdir}/xorg/modules/libwfb.so" -FILES_${PN}-module-libmfb = "${libdir}/xorg/modules/libmfb.so" -FILES_${PN}-module-libcfb = "${libdir}/xorg/modules/libcfb.so" -FILES_${PN}-module-exa = "${libdir}/xorg/modules/libexa.so" -FILES_${PN}-module-xaa = "${libdir}/xorg/modules/libxaa.so" -FILES_${PN}-module-libxf1bpp = "${libdir}/xorg/modules/libxf1bpp.so" -FILES_${PN}-module-libxf4bpp = "${libdir}/xorg/modules/libxf4bpp.so" -FILES_xf86-video-modesetting = "${libdir}/xorg/modules/drivers/modesetting_drv.so" - -EXTRA_OECONF += "--with-fop=no \ - --with-pic \ - --disable-static \ - --disable-record \ - --disable-dmx \ - --disable-xnest \ - --enable-xvfb \ - --enable-composite \ - --without-dtrace \ - --with-int10=x86emu \ - --sysconfdir=/etc/X11 \ - --localstatedir=/var \ - --with-xkb-output=/var/lib/xkb \ +SUMMARY:xf86-video-modesetting = "X.Org X server -- modesetting display driver" +INSANE_SKIP:${MLPREFIX}xf86-video-modesetting = "xorg-driver-abi" + +XSERVER_RDEPENDS = "xkeyboard-config rgb xserver-xf86-config xkbcomp xf86-input-libinput" +RDEPENDS:${PN} += "${XSERVER_RDEPENDS}" +RDEPENDS:${PN}-xwayland += "${XSERVER_RDEPENDS}" +RDEPENDS:${PN}-xvfb += "xkeyboard-config" +RDEPENDS:${PN}-module-exa = "${PN} (= ${EXTENDPKGV})" + +FILES:${PN} = "${bindir} ${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/modules/*.so ${libdir}/xorg/modules/input/*.so ${libdir}/xorg/modules/*.so /etc/X11 ${libdir}/xorg/protocol.txt ${datadir}/X11/xorg.conf.d" +FILES:${PN}-dev += "${libdir}/xorg/modules/*.la ${libdir}/xorg/modules/*/*.la" +FILES:${PN}-doc += "${libdir}/X11/doc ${datadir}/X11/xkb/compiled/README.compiled ${localstatedir}/lib/xkb/README.compiled" +FILES:${PN}-sdl = "${bindir}/Xsdl" +FILES:${PN}-fbdev = "${bindir}/Xfbdev" +FILES:${PN}-xvfb = "${bindir}/Xvfb" +FILES:${PN}-utils = "${bindir}/scanpci ${bindir}/pcitweak ${bindir}/ioport ${bindir}/in[bwl] ${bindir}/out[bwl] ${bindir}/mmap[rw] ${bindir}/gtf ${bindir}/getconfig ${bindir}/getconfig.pl" +FILES:${PN}-xephyr = "${bindir}/Xephyr" +FILES:${PN}-xwayland = "${bindir}/Xwayland" +FILES:${PN}-multimedia-modules = "${libdir}/xorg/modules/multimedia/*drv*" +FILES:${PN}-extension-dri = "${libdir}/xorg/modules/extensions/libdri.so" +FILES:${PN}-extension-dri2 = "${libdir}/xorg/modules/extensions/libdri2.so" +FILES:${PN}-extension-glx = "${libdir}/xorg/modules/extensions/libglx.so" +FILES:${PN}-extension-record = "${libdir}/xorg/modules/extensions/librecord.so" +FILES:${PN}-extension-extmod = "${libdir}/xorg/modules/extensions/libextmod.so" +FILES:${PN}-extension-dbe = "${libdir}/xorg/modules/extensions/libdbe.so" +FILES:${PN}-module-libint10 = "${libdir}/xorg/modules/libint10.so" +FILES:${PN}-module-libafb = "${libdir}/xorg/modules/libafb.so" +FILES:${PN}-module-libwfb = "${libdir}/xorg/modules/libwfb.so" +FILES:${PN}-module-libmfb = "${libdir}/xorg/modules/libmfb.so" +FILES:${PN}-module-libcfb = "${libdir}/xorg/modules/libcfb.so" +FILES:${PN}-module-exa = "${libdir}/xorg/modules/libexa.so" +FILES:${PN}-module-xaa = "${libdir}/xorg/modules/libxaa.so" +FILES:${PN}-module-libxf1bpp = "${libdir}/xorg/modules/libxf1bpp.so" +FILES:${PN}-module-libxf4bpp = "${libdir}/xorg/modules/libxf4bpp.so" +FILES:xf86-video-modesetting = "${libdir}/xorg/modules/drivers/modesetting_drv.so" + +EXTRA_OEMESON += " \ + -Dxnest=false \ + -Ddtrace=false \ + -Dint10=x86emu \ + -Dxkb_output_dir=/var/lib/xkb \ " -OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence" +OPENGL_PKGCONFIGS = "dri glx glamor dri3" PACKAGECONFIG ??= "dga dri2 udev ${XORG_CRYPTO} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'xwayland', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-logind', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-logind', '', d)} \ " -PACKAGECONFIG[udev] = "--enable-config-udev,--disable-config-udev,udev" -PACKAGECONFIG[dga] = "--enable-dga,--disable-dga" -PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,virtual/mesa" -PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2" -# DRI3 requires xshmfence to also be enabled -PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3" -PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,virtual/libgl virtual/libx11" -PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor,libepoxy virtual/libgbm,libegl" -PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind" -PACKAGECONFIG[xshmfence] = "--enable-xshmfence,--disable-xshmfence,libxshmfence" -PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" -PACKAGECONFIG[systemd-logind] = "--enable-systemd-logind=yes,--enable-systemd-logind=no,dbus," -PACKAGECONFIG[systemd] = "--with-systemd-daemon,--without-systemd-daemon,systemd" -PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama" -PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,wayland wayland-native wayland-protocols libepoxy" +PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" +PACKAGECONFIG[dga] = "-Ddga=true,-Ddga=false" +PACKAGECONFIG[dri] = "-Ddri1=true,-Ddri1=false,virtual/mesa" +PACKAGECONFIG[dri2] = "-Ddri2=true,-Ddri2=false" +PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false" +PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11" +PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl" +PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind" +PACKAGECONFIG[systemd-logind] = "-Dsystemd_logind=true,-Dsystemd_logind=false,dbus," +PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false" +PACKAGECONFIG[xvfb] = "-Dxvfb=true,-Dxvfb=false" # Xorg requires a SHA1 implementation, pick one XORG_CRYPTO ??= "openssl" -PACKAGECONFIG[openssl] = "--with-sha1=libcrypto,,openssl" -PACKAGECONFIG[nettle] = "--with-sha1=libnettle,,nettle" -PACKAGECONFIG[gcrypt] = "--with-sha1=libgcrypt,,libgcrypt" +PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl" +PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle" +PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt" -do_install_append () { - # Its assumed base-files creates this for us - rmdir ${D}${localstatedir}/log/ +do_install:append () { + sed -i -e 's,${libdir}/xorg/modules,${prefix}/lib*/xorg/modules,' ${D}${mandir}/man5/xorg.conf.5 } # Add runtime provides for the ABI versions of the video and input subsystems, # so that drivers can depend on the relevant version. -python populate_packages_prepend() { +python populate_packages:prepend() { import subprocess # Set PKG_CONFIG_PATH so pkg-config looks at the .pc files that are going @@ -176,6 +172,8 @@ python populate_packages_prepend() { return "%sxorg-abi-%s-%s" % (mlprefix, name, output) pn = d.getVar("PN") - d.appendVar("RPROVIDES_" + pn, " " + get_abi("input")) - d.appendVar("RPROVIDES_" + pn, " " + get_abi("video")) + d.appendVar("RPROVIDES:" + pn, " " + get_abi("input")) + d.appendVar("RPROVIDES:" + pn, " " + get_abi("video")) } + +CVE_STATUS[CVE-2023-5574] = "${@bb.utils.contains('PACKAGECONFIG', 'xvfb', 'unpatched', 'not-applicable-config: specific to Xvfb', d)}" diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch new file mode 100644 index 0000000000..e9cbc9b4da --- /dev/null +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch @@ -0,0 +1,28 @@ +From cedc797e1a0850039a25b7e387b342e54fffcc97 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 17 Aug 2020 10:50:51 -0700 +Subject: [PATCH] Avoid duplicate definitions of IOPortBase + +This fixed build with gcc10/-fno-common + +Fixes +compiler.h:528: multiple definition of `IOPortBase'; + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + hw/xfree86/os-support/linux/lnx_video.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c +index fd83022..1d0d96e 100644 +--- a/hw/xfree86/os-support/linux/lnx_video.c ++++ b/hw/xfree86/os-support/linux/lnx_video.c +@@ -78,6 +78,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem) + /***************************************************************************/ + /* I/O Permissions section */ + /***************************************************************************/ ++_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ + + #if defined(__powerpc__) + volatile unsigned char *ioBase = NULL; diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch deleted file mode 100644 index c0c242814b..0000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 8a382c015cd3c69fcfc146ef03dcbf30c77ff207 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 1 Mar 2019 09:47:57 -0800 -Subject: [PATCH] test/xtest: Initialize array with braces - -Fixes an error when extra warnings are enabled, this is caught with clang - -test/xtest.c:64:23: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces] - WindowRec root = {0}; - ^ - {} -1 error generated. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - test/xtest.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/xtest.c b/test/xtest.c -index fc5e433..d7e6620 100644 ---- a/test/xtest.c -+++ b/test/xtest.c -@@ -61,7 +61,7 @@ xtest_init_devices(void) - { - ScreenRec screen = {0}; - ClientRec server_client = {0}; -- WindowRec root = {0}; -+ WindowRec root = {{0}}; - WindowOptRec optional = {0}; - - /* random stuff that needs initialization */ --- -2.21.0 - diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch index d05eec5bb9..d1516c2f52 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch @@ -1,4 +1,4 @@ -From d77cdc5e1eee26821ab98c947abea53fb7b18fe5 Mon Sep 17 00:00:00 2001 +From ad8967de36e6e2a185b71ce1d701448cda4ef3e2 Mon Sep 17 00:00:00 2001 From: California Sullivan <california.l.sullivan@intel.com> Date: Fri, 16 Mar 2018 17:23:11 -0700 Subject: [PATCH] xf86pciBus.c: use Intel ddx only for pre-gen4 hardware @@ -20,10 +20,10 @@ Signed-off-by: California Sullivan <california.l.sullivan@intel.com> 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index e61ae0cd4..d70c99197 100644 +index aeeed8b..db705bf 100644 --- a/hw/xfree86/common/xf86pciBus.c +++ b/hw/xfree86/common/xf86pciBus.c -@@ -1173,7 +1173,23 @@ xf86VideoPtrToDriverList(struct pci_device *dev, +@@ -1174,7 +1174,23 @@ xf86VideoPtrToDriverList(struct pci_device *dev, XF86MatchedDrivers *md) case 0x0bef: /* Use fbdev/vesa driver on Oaktrail, Medfield, CDV */ break; @@ -48,6 +48,3 @@ index e61ae0cd4..d70c99197 100644 driverList[0] = "intel"; break; } --- -2.14.3 - diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch deleted file mode 100644 index 2ef9fa9fe4..0000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg/pkgconfig.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/22] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 5f65a6246fe752764045dd1e38912f1dccec71e4 Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Thu, 20 Sep 2018 20:12:24 +0100 -Subject: [PATCH] xorg-server.m4: just all cflags instead of just sdkdir - -Instead of fetching just the sdkdir variable of xorg-server using pkg-config, -simply get all of the CFLAGS. Aside from completeness, this helps builds in -sysroots as pkg-config knows what to do with --cflags but doesn't remap -arbitrary variables. - -Signed-off-by: Ross Burton <ross.burton@intel.com> ---- - xorg-server.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xorg-server.m4 b/xorg-server.m4 -index 18255b91a..195bda5d8 100644 ---- a/xorg-server.m4 -+++ b/xorg-server.m4 -@@ -31,7 +31,7 @@ dnl - AC_DEFUN([XORG_DRIVER_CHECK_EXT],[ - AC_REQUIRE([PKG_PROG_PKG_CONFIG]) - SAVE_CFLAGS="$CFLAGS" -- CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`" -+ CFLAGS="$CFLAGS `$PKG_CONFIG --cflags xorg-server`" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - #include "xorg-server.h" - #if !defined $1 --- -2.11.0 - diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch deleted file mode 100644 index be198ece49..0000000000 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch +++ /dev/null @@ -1,50 +0,0 @@ -Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/merge_requests/253] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From ca832598d38ba55a001088b57d73c6d7261dc9a7 Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Thu, 1 Aug 2019 15:24:51 +0100 -Subject: [PATCH] sdksyms.sh: don't embed the build path - -This script generates a header that has a comment containing the build path for -no real reason. As this source can end up deployed on targets in debug packages -this means there is both potentially sensitive information leakage about the -build environment, and a source of change for reproducible builds. ---- - hw/xfree86/sdksyms.sh | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh -index 39e33711d..bdf47a71a 100755 ---- a/hw/xfree86/sdksyms.sh -+++ b/hw/xfree86/sdksyms.sh -@@ -302,13 +302,16 @@ LC_ALL=C - export LC_ALL - ${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $? - ${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir ' -+function basename(file) { -+ sub(".*/", "", file) -+ return file -+} - BEGIN { - sdk = 0; - print("/*"); - print(" * These symbols are referenced to ensure they"); - print(" * will be available in the X Server binary."); - print(" */"); -- printf("/* topdir=%s */\n", topdir); - print("_X_HIDDEN void *xorg_symbols[] = {"); - - printf("sdksyms.c:") > "sdksyms.dep"; -@@ -337,7 +340,7 @@ BEGIN { - # remove quotes - gsub(/"/, "", $3); - line = $2; -- header = $3; -+ header = basename($3); - if (! headers[$3]) { - printf(" \\\n %s", $3) >> "sdksyms.dep"; - headers[$3] = 1; --- -2.20.1 - diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.6.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.13.bb index 9218b4f69d..1f18c22fa8 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.6.bb +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.13.bb @@ -1,29 +1,26 @@ require xserver-xorg.inc SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \ - file://pkgconfig.patch \ - file://0001-test-xtest-Initialize-array-with-braces.patch \ - file://sdksyms-no-build-path.patch \ - " -SRC_URI[md5sum] = "a98170084f2c8fed480d2ff601f8a14b" -SRC_URI[sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1" + file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \ + " +SRC_URI[sha256sum] = "b45a02d5943f72236a360d3cc97e75134aa4f63039ff88c04686b508a3dc740c" # These extensions are now integrated into the server, so declare the migration # path for in-place upgrades. -RREPLACES_${PN} = "${PN}-extension-dri \ +RREPLACES:${PN} = "${PN}-extension-dri \ ${PN}-extension-dri2 \ ${PN}-extension-record \ ${PN}-extension-extmod \ ${PN}-extension-dbe \ " -RPROVIDES_${PN} = "${PN}-extension-dri \ +RPROVIDES:${PN} = "${PN}-extension-dri \ ${PN}-extension-dri2 \ ${PN}-extension-record \ ${PN}-extension-extmod \ ${PN}-extension-dbe \ " -RCONFLICTS_${PN} = "${PN}-extension-dri \ +RCONFLICTS:${PN} = "${PN}-extension-dri \ ${PN}-extension-dri2 \ ${PN}-extension-record \ ${PN}-extension-extmod \ diff --git a/meta/recipes-graphics/xrestop/xrestop_0.4.bb b/meta/recipes-graphics/xrestop/xrestop_0.4.bb index c7b8716f6f..a6b6c4238d 100644 --- a/meta/recipes-graphics/xrestop/xrestop_0.4.bb +++ b/meta/recipes-graphics/xrestop/xrestop_0.4.bb @@ -5,12 +5,11 @@ DESCRIPTION = "top-like statistics of X11 server resource usage by clients" HOMEPAGE = "http://www.freedesktop.org/wiki/Software/xrestop" BUGTRACKER = "https://bugs.freedesktop.org/" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://xrestop.c;endline=18;md5=730876c30f0d8a928676bcd1242a3b35" SECTION = "x11/utils" -PR = "r3" DEPENDS = "libxres libxext virtual/libx11 ncurses" diff --git a/meta/recipes-graphics/xwayland/xwayland_24.1.2.bb b/meta/recipes-graphics/xwayland/xwayland_24.1.2.bb new file mode 100644 index 0000000000..a3ece64348 --- /dev/null +++ b/meta/recipes-graphics/xwayland/xwayland_24.1.2.bb @@ -0,0 +1,50 @@ +SUMMARY = "XWayland is an X Server that runs under Wayland." +DESCRIPTION = "XWayland is an X Server running as a Wayland client, \ +and thus is capable of displaying native X11 client applications in a \ +Wayland compositor environment. The goal of XWayland is to facilitate \ +the transition from X Window System to Wayland environments, providing \ +a way to run unported applications in the meantime." +HOMEPAGE = "https://fedoraproject.org/wiki/Changes/XwaylandStandalone" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880" + +SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz" +SRC_URI[sha256sum] = "141eb76e7e422a3661c08782c70be40931084755042c04506e0d97dd463ef7d2" + +UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar" + +inherit meson features_check pkgconfig +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy libxcvt" + +OPENGL_PKGCONFIGS = "glx glamor dri3" +PACKAGECONFIG ??= "${XORG_CRYPTO} ${XWAYLAND_EI} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \ +" +PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false,libxshmfence" +PACKAGECONFIG[libdecor] = "-Dlibdecor=true,-Dlibdecor=false,libdecor" +PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11" +PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl" +PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind" +PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false" + +# Xorg requires a SHA1 implementation, pick one +XORG_CRYPTO ??= "openssl" +PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl" +PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle" +PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt" +XWAYLAND_EI ??= "xwayland_ei_false" +PACKAGECONFIG[xwayland_ei_false] = "-Dxwayland_ei=false" +PACKAGECONFIG[xwayland_ei_portal] = "-Dxwayland_ei=portal,,libei" +PACKAGECONFIG[xwayland_ei_socket] = "-Dxwayland_ei=socket,,libei" + +do_install:append() { + # remove files not needed and clashing with xserver-xorg + rm -rf ${D}/${libdir}/xorg/ +} + +FILES:${PN} += "${libdir}/xorg/protocol.txt" + +RDEPENDS:${PN} += "xkbcomp" |