From f27ab9ffcd900261f166937db2a798697ab3d03a Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Tue, 15 Aug 2023 16:52:18 +0200 Subject: gtk4: upgrade 4.10.5 -> 4.12.0 gtk.h: gtkscrollinfo.h was added, no change of license gdk.h: gdkpixbuf.h was deprecated, no change of license update renamed build-options Overview of Changes in 4.12.0, 05-08-2023 ========================================= * List widgets: - Add scroll_to APIs * GtkFileLauncher: - Add an always-ask property * GtkTextView: - Make backspace behavior match GtkEntry * gsk: - Fix handling of luminance in mask nodes * Text rendering: - Automate the setting of gtk-hint-font-metrics from the scale factor. This improves font rendering in flatpaks * Wayland: - Fix behavior of stylus buttons - Support suspended window state * Vulkan: - Many improvements * Tools: - Add gtk4-rendernode-tool * Debugging: - Drop the GTK_DEBUG_TOUCHSCREEN flag * Build: - Some build options have been renamed: gtk_doc -> documentation update_screenshots -> screenshots The old names still work Overview of Changes in 4.11.4, 03-07-2023 ========================================= * GtkFileChooser: - Default to sorting folders first - Fix a crash when visiting recent files * GtkTextView: - Fix corner cases in word navigation * GtkMenuButton: - Normalize label layout * GtkDropDown: - Add support for sections * GtkVideo: - Make the overlay icon clickable * GtkWindow: - Clear the resize cursors to avoid artifacts * GtkFileDialog: - Always set initial-folder * GtkDropDown: - Update on expression changes * GtkMapListModel: - Implement GtkSectionModel * Accessibility: - Improvements all over the place: GtkButton, GtkPasswordEntry, GtkFontChooserDialog, GtkColorChooserDialog, GtkShortcutsWindow, GtkMenuButton, GtkAboutDialog, GtkFileChooserDialog, GtkStackSidebar, GtkStackSwitcher, GtkMediaControls, GtkColorDialogButton, GtkDropDown, GtkInfoBar, GtkNotebook, GtkPrintUnixDialog, GtkModelButton - Make name computation follow the ARIA spec more closely - Adapt name computation for the common 'nested button' scenario - Change many containers to use `generic` instead of `group` - Use `generic` as the default role - Use `application` instead of `window` for windows - Add properties for accessible names of not directly exposed widgets in GtkListView, GtkGridView and GtkColumnView * DND: - Fix criticals when drops are rejected * X11: - Fix regressions in GLX setup * Windows: - Center newly created transient windows * Vulkan: - Add antialising for gradients - Do less work on clipped away nodes - Redo image uploading - Support different image depths and formats - Add a pipeline cache * Demos: - gtk4-demo: Improve window sizing - gtk4-demo: Improve focus behavior - gtk4-demo: Add many missing a11y properties * Tools: - gtk4-builder-tool: Make render an alias screenshot * Inspector: - Show more information in the a11y tab - Add an accessibility overlay with warnings and recommendations - Limit the width of the a11y tab * Build: - Require GLib 2.76 - Make asan builds work again - Fix the build if ld is not ld.bdf Overview of Changes in 4.11.3, 05-06-2023 ========================================= * GtkGridView: - Respect css border-spacing - Don't leak the factories * GtkListView: - Don't leak the factories * GtkColumnView: - Support displaying sections * GtkNotebook: - Make the pages model implement GtkSelectionModel * GtkScrolledWindow: - Propagate child measure size whenever possible * GtkPopoverMenu: - Avoid unnecessary left padding * GtkSearchEntry: - Improve size allocation for the clear icon * GtkBoxLayout: - Fix a regression from recent baseline work * CSS: - Add new binding-friendly css provider apis * Theme: - Show focus in the shortcuts window * GDK: - Support grayscale and alpha texture formats for loading and saving to png and tiff, and in GL - Fix some regressions in GL context initialization * GSK: - Support grayscale and alpha texture formats in the GL renderer - Support straight alpha textures in the GL renderer - Many improvements to the experimental Vulkan renderer * Wayland: - Make exporting surface handles more flexible * X11: - Trap XRandr errors - Stop using passive grabs during DND * Windows: - Many cleanups and simplifications * Tests: - Improve test coverage * Build: - Some build options have been renamed: demos -> build-demos profile -> demo-profile The old names still work * Deprecations: - gtk_css_provider_load_from_data - gdk_wayland_toplevel_unexport_handle - gdk_pixbuf_get_from_surface - gdk_pixbuf_get_from_texture - gtk_image_new_from_pixbuf - gtk_image_set_from_pixbuf - gtk_picture_new_for_pixbuf - gtk_picture_set_pixbuf Overview of Changes in 4.11.2, 09-05-2023 ========================================= * GtkGLArea: - Add an allowed-apis property * GtkListBox: - Fix a problem with gtk_list_box_remove_all * Add the GtkSectionModel interface, and implement it in most of our list models * GtkListView: - Support displaying sections * GtkCenterBox: - Add a shrink-center-last property * GtkButton, GtkMenuButton: - Add a can-shrink property * GtkPopover: - Fix problems with grabs * GtkFileChooser: - Fix a problem with removing files - Make the date, time and location columns work - Fix filtering in the save entry popup - A few memory leak fixes - Handle webdav in the pathbar * GtkBox: - Support baselines in vertical orientation with GtkBox:baseline-child * Dialogs: - Destroy windows promptly when the async callback finishes - Detect absence of the OpenURI portal and fall back * Theme: - Add explicit style classes to a number of widgets - Fix some contrast issues in the dark theme * Accessibility: - Fix alert dialogs in the a11y tree - Improve accessibility of GtkShortcutsWindow * Layout: - Some fixes to baseline alignment - Separate GTK_ALIGN_BASELINE_CENTER and _FILL * CSS: - Fix a crash with color transitions * GSK: - Fix problems with negative scales - Improve scaling of offscreens for (cross-fades, masks, blends) * GL: - Add GdkGLTextureBuilder, a more flexible api for creating textures - Support setting update regions for GL textures - Ensure that we work with GLES 2 * Vulkan: - More fixes to the experimental Vulkan renderer - Rework glyph caching * Wayland: - Don't destroy wl_surfaces on hide - Plug leaks of compositor-side resources * X11: - Fix artifacts in gnome-shell frame decorations * Windows: - Fix GL context initialization * Inspector: - Improve the action list - Improve the accessibility pane - Fix a crash * Tools: - gtk4-node-editor: Improve scaling - gtk4-node-editor: Preserve aspect ratio of textures - gtk4-node-editor: Add some smarter editing - gtk4-demo: Make the stylus demo work with mice * Deprecations: - gtk_widget_get_allocated_width/height/baseline - GTK_ALIGN_BASELINE Overview of Changes in 4.11.1, 03-04-2023 ========================================= * GtkLabel, GtkLinkButton: - Make file:// uris work again * GtkListView/GtkColumnView/GtkGridView: - Fix clipping issues - Handle focus movement better - Introduce ::tab-behavior properties - Introduce GtkListItem::focusable - Introduce GtkColumnViewCell - Introduce row factories in GtkColumnView - Make list grid and column views inert when not rendering * Drag-and-Drop: - Support resizing drag surfaces, using the new GdkDragSurface::compute-size signal * Theme: - Port .boxed-list style from Adwaita - Make insensitive pictures appear grayed out * Accessibility: - Fix memory leaks - Fix a crash * GDK: - Add gdk_surface_get_scale to get the fractional scale - Use fractional scales on Wayland with cairo - Use fractional scales on Wayland with GL if GDK_DEBUG=gl-fractional is set. This support is still experimental * GSK: - Allow limiting texture sizes with GSK_MAX_TEXTURE_SIZE - Use samplers for GL texture filtering - Fix problems with texture slicing - Avoid re-uploading textures when possible - Use mipmaps when it is beneficial * Wayland: - Fix handling of Drag hotspots - Fix a crash with cursor size 0 - Support absolute paths in WAYLAND_DISPLAY - Use the fractional scale protocol - Use a viewporter to set buffer scale * Windows: - Fix problems with WGL * Vulkan: - Some fixes to the experimental Vulkan renderer - Support fractional scaling * Debugging: - Show more Wayland-specific information in the inspector * Deprecations: - gtk_widget_translate_coordinates - gdk_surface_create_similar_surface * Documentation: - Add a section on coordinate systems * Build: - Require wayland-protocols 1.31 (From OE-Core rev: e65da672a022ff0e1bc16c7e423e588f765afc7c) Signed-off-by: Markus Volk Signed-off-by: Richard Purdie --- meta/recipes-gnome/gtk+/gtk4_4.10.5.bb | 129 --------------------------------- meta/recipes-gnome/gtk+/gtk4_4.12.0.bb | 129 +++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 129 deletions(-) delete mode 100644 meta/recipes-gnome/gtk+/gtk4_4.10.5.bb create mode 100644 meta/recipes-gnome/gtk+/gtk4_4.12.0.bb (limited to 'meta/recipes-gnome') diff --git a/meta/recipes-gnome/gtk+/gtk4_4.10.5.bb b/meta/recipes-gnome/gtk+/gtk4_4.10.5.bb deleted file mode 100644 index 85fff6c61e..0000000000 --- a/meta/recipes-gnome/gtk+/gtk4_4.10.5.bb +++ /dev/null @@ -1,129 +0,0 @@ -SUMMARY = "Multi-platform toolkit for creating GUIs" -DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ -set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites." -HOMEPAGE = "http://www.gtk.org" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "libs" - -DEPENDS = " \ - atk \ - cairo \ - fribidi \ - gdk-pixbuf \ - gdk-pixbuf-native \ - gi-docgen \ - glib-2.0 \ - graphene \ - harfbuzz \ - jpeg \ - libepoxy \ - libpng \ - librsvg \ - libxkbcommon \ - pango \ - tiff \ -" - -LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ - file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ - file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \ -" - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -UPSTREAM_CHECK_REGEX = "gtk-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz" -SRC_URI[sha256sum] = "9bd5e437e41d48e3d6a224c336b0fd3fd490036dceb8956ed74b956369af609b" - -S = "${WORKDIR}/gtk-${PV}" - -inherit meson gettext pkgconfig gi-docgen update-alternatives gsettings features_check gobject-introspection - -# TBD: nativesdk -# gobject-introspection.bbclass pins introspection off for nativesk. As long as -# we do not remove this wisdom or hack gtk4, it is not possible to build -# nativesdk-gtk4 -BBCLASSEXTEND = "native" - -GSETTINGS_PACKAGE:class-native = "" - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -REQUIRED_DISTRO_FEATURES = "opengl" -GTKDOC_MESON_OPTION = "gtk_doc" -GIR_MESON_ENABLE_FLAG = 'enabled' -GIR_MESON_DISABLE_FLAG = 'disabled' - -EXTRA_OEMESON = " -Dbuild-tests=false -Dbuild-testsuite=false -Ddemos=false" - -PACKAGECONFIG ??= "gstreamer ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}" -PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" -PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" - -PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama" -PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols virtual/egl virtual/libgles2 wayland-native" -PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=enabled,-Dcloudproviders=disabled,libcloudproviders" -PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups" -PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord" -PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes" -PACKAGECONFIG[ffmpeg] = "-Dmedia-ffmpeg=enabled,-Dmedia-ffmpeg=disabled,ffmpeg" -# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad -PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad" -PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners" -PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulkan-headers shaderc-native" - -LIBV = "4.0.0" - -FILES:${PN}:append = " \ - ${datadir}/glib-2.0/schemas/ \ - ${datadir}/gtk-4.0/emoji/ \ - ${datadir}/metainfo/ \ - ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \ - ${libdir}/gtk-4.0/${LIBV}/media \ - ${bindir}/gtk4-update-icon-cache \ - ${bindir}/gtk4-launch \ -" - -FILES:${PN}-dev += " \ - ${datadir}/gtk-4.0/gtk4builder.rng \ - ${datadir}/gtk-4.0/include \ - ${datadir}/gtk-4.0/valgrind \ - ${datadir}/gettext/its \ - ${bindir}/gtk4-builder-tool \ - ${bindir}/gtk4-encode-symbolic-svg \ - ${bindir}/gtk4-query-settings \ -" - -GTKBASE_RRECOMMENDS ?= " \ - liberation-fonts \ - gdk-pixbuf-loader-png \ - gdk-pixbuf-loader-jpeg \ - gdk-pixbuf-loader-gif \ - gdk-pixbuf-loader-xpm \ - shared-mime-info \ - adwaita-icon-theme-symbolic \ -" - -GTKBASE_RRECOMMENDS:class-native ?= "" - -GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" - -RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}" -RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}" -RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" - -PACKAGES_DYNAMIC += "^gtk4-printbackend-.*" -python populate_packages:prepend () { - import os.path - - gtk_libdir = d.expand('${libdir}/gtk-4.0/${LIBV}') - printmodules_root = os.path.join(gtk_libdir, 'printbackends'); - - do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s') - - if (d.getVar('DEBIAN_NAMES')): - d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0') -} diff --git a/meta/recipes-gnome/gtk+/gtk4_4.12.0.bb b/meta/recipes-gnome/gtk+/gtk4_4.12.0.bb new file mode 100644 index 0000000000..4f38e0cb2c --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk4_4.12.0.bb @@ -0,0 +1,129 @@ +SUMMARY = "Multi-platform toolkit for creating GUIs" +DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ +set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites." +HOMEPAGE = "http://www.gtk.org" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "libs" + +DEPENDS = " \ + atk \ + cairo \ + fribidi \ + gdk-pixbuf \ + gdk-pixbuf-native \ + gi-docgen \ + glib-2.0 \ + graphene \ + harfbuzz \ + jpeg \ + libepoxy \ + libpng \ + librsvg \ + libxkbcommon \ + pango \ + tiff \ +" + +LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=61900d77e8d5bc67cf15ad93de9a3490 \ + file://gdk/gdk.h;endline=25;md5=a0fb26c1f6b94e66d148279e192c333f \ + file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \ +" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +UPSTREAM_CHECK_REGEX = "gtk-(?P\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz" +SRC_URI[sha256sum] = "a6d10829f405b1afc0b65e2a9642c04126a1d1b638d11c6d97426da4f84f1f6f" + +S = "${WORKDIR}/gtk-${PV}" + +inherit meson gettext pkgconfig gi-docgen update-alternatives gsettings features_check gobject-introspection + +# TBD: nativesdk +# gobject-introspection.bbclass pins introspection off for nativesk. As long as +# we do not remove this wisdom or hack gtk4, it is not possible to build +# nativesdk-gtk4 +BBCLASSEXTEND = "native" + +GSETTINGS_PACKAGE:class-native = "" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "opengl" +GTKDOC_MESON_OPTION = "documentation" +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +EXTRA_OEMESON = " -Dbuild-tests=false -Dbuild-testsuite=false -Dbuild-demos=false" + +PACKAGECONFIG ??= "gstreamer ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11 vulkan', d)}" +PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama" +PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols virtual/egl virtual/libgles2 wayland-native" +PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=enabled,-Dcloudproviders=disabled,libcloudproviders" +PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups" +PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord" +PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes" +PACKAGECONFIG[ffmpeg] = "-Dmedia-ffmpeg=enabled,-Dmedia-ffmpeg=disabled,ffmpeg" +# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad +PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad" +PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulkan-headers shaderc-native" + +LIBV = "4.0.0" + +FILES:${PN}:append = " \ + ${datadir}/glib-2.0/schemas/ \ + ${datadir}/gtk-4.0/emoji/ \ + ${datadir}/metainfo/ \ + ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \ + ${libdir}/gtk-4.0/${LIBV}/media \ + ${bindir}/gtk4-update-icon-cache \ + ${bindir}/gtk4-launch \ +" + +FILES:${PN}-dev += " \ + ${datadir}/gtk-4.0/gtk4builder.rng \ + ${datadir}/gtk-4.0/include \ + ${datadir}/gtk-4.0/valgrind \ + ${datadir}/gettext/its \ + ${bindir}/gtk4-builder-tool \ + ${bindir}/gtk4-encode-symbolic-svg \ + ${bindir}/gtk4-query-settings \ +" + +GTKBASE_RRECOMMENDS ?= " \ + liberation-fonts \ + gdk-pixbuf-loader-png \ + gdk-pixbuf-loader-jpeg \ + gdk-pixbuf-loader-gif \ + gdk-pixbuf-loader-xpm \ + shared-mime-info \ + adwaita-icon-theme-symbolic \ +" + +GTKBASE_RRECOMMENDS:class-native ?= "" + +GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" + +RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}" +RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}" +RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" + +PACKAGES_DYNAMIC += "^gtk4-printbackend-.*" +python populate_packages:prepend () { + import os.path + + gtk_libdir = d.expand('${libdir}/gtk-4.0/${LIBV}') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + + do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s') + + if (d.getVar('DEBIAN_NAMES')): + d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0') +} -- cgit v1.2.3-54-g00ecf