Update to 4.9.1

This commit is contained in:
dwl301 2023-02-01 15:53:29 +08:00
parent 88c548532c
commit ebd69d7051
5 changed files with 190 additions and 24 deletions

View File

@ -0,0 +1,120 @@
From 5f5fd77f096174c45f8335afe6efd6745796d9a5 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Mon, 25 Jul 2022 16:21:50 +0200
Subject: [PATCH] Revert "Meson: Simplify pkgconfig file generator"
Temporarily revert this until we figure out how to best restore
private requires that are needed for rpm automatic dep extraction.
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4756
This reverts commit 802bf4199911c811938b0454a876089bafa97dba.
---
meson.build | 47 +++++++++++++++++++++++++++++++++--------------
1 file changed, 33 insertions(+), 14 deletions(-)
diff --git a/meson.build b/meson.build
index 1b8f2d0248..4fc808dbd4 100644
--- a/meson.build
+++ b/meson.build
@@ -471,6 +471,9 @@ if not os_win32
endif
endif
+
+pc_gdk_extra_libs = []
+
cairo_backends = []
foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled],
['cairo-win32', cairo_req, win32_enabled],
@@ -601,14 +604,26 @@ if x11_enabled
cdata.set('HAVE_RANDR15', xrandr15_dep.found())
endif
+if broadway_enabled
+ pc_gdk_extra_libs += ['-lz']
+endif
+
+if macos_enabled
+ pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon']
+endif
+
extra_demo_ldflags = []
if win32_enabled
+ pc_gdk_extra_libs += ['-lgdi32', '-limm32', '-lshell32', '-lole32']
if cc.get_id() == 'msvc'
# Since the demo programs are now built as pure GUI programs, we
# need to pass in /entry:mainCRTStartup so that they will properly
# link on Visual Studio builds
extra_demo_ldflags = ['/entry:mainCRTStartup']
+ else
+ pc_gdk_extra_libs += ['-Wl,-luuid']
endif
+ pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32', '-lhid']
# Check whether libepoxy is built with EGL support on Windows
endif
@@ -826,7 +841,16 @@ gsk_private_packages = [] # all already in gdk_private_packages
pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
gtk_private_packages = pangoft2_pkgs
-pkgs = []
+gdk_extra_libs = pc_gdk_extra_libs
+gsk_extra_libs = []
+gtk_extra_libs = []
+
+gdk_extra_cflags = []
+gsk_extra_cflags = []
+gtk_extra_cflags = []
+
+pkgs = [ 'gtk4' ]
+
pkg_targets = []
display_backends = []
foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ]
@@ -843,23 +867,18 @@ common_pc_variables = [
'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME
]
-pkg_config.generate(libgtk,
- filebase: 'gtk4',
- unescaped_variables: common_pc_variables,
- name: 'GTK',
- description: 'GTK Graphical UI Library',
- requires: gdk_packages + gsk_packages + gtk_packages,
- subdirs: ['gtk-@0@'.format(gtk_api_version)],
-)
-meson.override_dependency('gtk4', libgtk_dep)
-
foreach pkg: pkgs
pkg_config.generate(
filebase: pkg,
unescaped_variables: common_pc_variables,
name: 'GTK',
description: 'GTK Graphical UI Library',
- requires: 'gtk4',
+ requires: gdk_packages + gsk_packages + gtk_packages,
+ requires_private: gdk_private_packages + gsk_private_packages + gtk_private_packages,
+ libraries: ['-L${libdir}', '-lgtk-4'],
+ libraries_private: gdk_extra_libs + gsk_extra_libs + gtk_extra_libs,
+ subdirs: ['gtk-@0@'.format(gtk_api_version)],
+ extra_cflags: gdk_extra_cflags + gsk_extra_cflags + gtk_extra_cflags,
)
meson.override_dependency(pkg, libgtk_dep)
endforeach
@@ -870,10 +889,10 @@ if os_unix
unescaped_variables: common_pc_variables,
name: 'GTK',
description: 'GTK Unix print support',
- requires: 'gtk4',
+ requires: ['gtk4'] + gtk_packages,
+ libraries: [],
subdirs: ['gtk-@0@/unix-print'.format(gtk_api_version)],
)
- meson.override_dependency('gtk4-unix-print', libgtk_dep)
endif
subdir('po')
--
2.37.1

View File

@ -0,0 +1,34 @@
From e07f8ef50657dab0d5184d4c6927acc0683bc07d Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 1 Nov 2022 17:26:29 -0700
Subject: [PATCH] focus: fall back to old behaviour if we didn't focus anything
8455b9ac74 seems to have introduced a problem where we can wind
up focusing no widget at all if the `while (parent)` loop doesn't
find a widget it can successfully move the focus to. This 'fixes'
that by falling back to doing the previous thing if we make it
all the way through that loop without moving the focus. Thanks to
@coreyberla for a hint to improve the implementation.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
gtk/gtkwindow.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index a7cbde18bc..21dfb49880 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -4703,6 +4703,9 @@ maybe_unset_focus_and_default (GtkWindow *window)
parent = _gtk_widget_get_parent (parent);
}
+ if (!parent)
+ gtk_widget_child_focus (GTK_WIDGET (window), GTK_DIR_TAB_FORWARD);
+
priv->move_focus = FALSE;
g_clear_object (&priv->move_focus_widget);
}
--
2.38.1

View File

@ -1,21 +1,31 @@
%global glib2_version 2.66.0
%global glib2_version 2.72.0
%global pango_version 1.50.0
%global cairo_version 1.14.0
%global gdk_pixbuf_version 2.30.0
%global wayland_protocols_version 1.23
%global wayland_version 1.20.0
%global wayland_protocols_version 1.25
%global wayland_version 1.21.0
%global epoxy_version 1.4
%global bin_version 4.0.0
%global __provides_exclude_from ^%{_libdir}/gtk-4.0
Name: gtk4
Version: 4.7.0
Release: 3
Version: 4.9.1
Release: 1
Summary: GTK graphical user interface library
License: LGPLv2+
URL: https://www.gtk.org
Source0: https://download.gnome.org/sources/gtk/4.7/gtk-%{version}.tar.xz
Source0: https://download.gnome.org/sources/gtk/4.9/gtk-%{version}.tar.xz
Source1: settings.ini
# Temporarily revert this until we figure out how to best restore
# private requires that are needed for rpm automatic dep extraction.
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4756
Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5189
# https://gitlab.gnome.org/GNOME/nautilus/-/issues/2574
# Fix a problem which could lead to no element being focused
# (so keyboard shortcuts don't work) in some cases
Patch1: 0001-focus-fall-back-to-old-behaviour-if-we-didn-t-focus-.patch
BuildRequires: cups-devel desktop-file-utils docbook-style-xsl gcc
BuildRequires: sassc libxslt gcc-c++ gettext meson
@ -36,7 +46,7 @@ BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(pango) >= %{pango_version}
BuildRequires: pkgconfig(rest-0.7)
BuildRequires: pkgconfig(rest-1.0)
BuildRequires: pkgconfig(sysprof-4)
BuildRequires: pkgconfig(sysprof-capture-4)
BuildRequires: pkgconfig(tracker-sparql-3.0)
@ -56,12 +66,14 @@ BuildRequires: pkgconfig(xrender)
Requires: adwaita-icon-theme
Requires: hicolor-icon-theme
Requires: gtk-update-icon-cache
Requires: cairo%{?_isa} >= %{cairo_version}
Requires: cairo-gobject%{?_isa} >= %{cairo_version}
Requires: glib2%{?_isa} >= %{glib2_version}
Requires: libepoxy%{?_isa} >= %{epoxy_version}
Requires: wayland%{?_isa} >= %{wayland_version}
Requires: libwayland-client%{?_isa} >= %{wayland_version}
Requires: libwayland-cursor%{?_isa} >= %{wayland_version}
Requires: pango%{?_isa} >= %{pango_version}
Requires: gdk-pixbuf2-modules%{?_isa}
Recommends: dconf%{?_isa}
@ -88,16 +100,13 @@ for writing applications with version 4 of the GTK widget toolkit.
%build
export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT %optflags'
%meson \
-Dx11-backend=true \
-Dwayland-backend=true \
-Dbroadway-backend=true \
-Dsysprof=enabled \
-Dtracker=enabled \
-Dcolord=enabled \
-Dgtk_doc=false \
-Dgtk_doc=true \
-Dman-pages=true \
-Dinstall-tests=false \
-Dmedia-ffmpeg=disabled
-Dinstall-tests=false
%meson_build
@ -105,11 +114,10 @@ export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT %
%meson_install
%find_lang gtk40
%find_lang gtk40-properties
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-4.0
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/modules
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/%{bin_version}/theming-engines
install -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/gtk-4.0/
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
@ -136,17 +144,17 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.FileChooser.gschema.xml
%dir %{_datadir}/gtk-4.0
%{_datadir}/gtk-4.0/emoji/
%{_datadir}/gtk-4.0/settings.ini
%{_bindir}/gtk4-broadwayd
%{_mandir}/man1/gtk4-broadwayd.1*
%files devel -f gtk40-properties.lang
%files devel
%{_libdir}/libgtk-4.so
%{_includedir}/*
%{_libdir}/pkgconfig/*
%{_bindir}/gtk4-builder-tool
%{_bindir}/gtk4-encode-symbolic-svg
%{_bindir}/gtk4-query-settings
%{_bindir}/gtk4-node-editor
%{_datadir}/gettext/
%{_datadir}/gir-1.0
%{_datadir}/gtk-4.0/gtk4builder.rng
@ -154,37 +162,39 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%{_mandir}/man1/gtk4-builder-tool.1*
%{_mandir}/man1/gtk4-encode-symbolic-svg.1*
%{_mandir}/man1/gtk4-query-settings.1*
%{_datadir}/doc/gtk4/
%{_datadir}/doc/
%{_bindir}/gtk4-demo
%{_bindir}/gtk4-demo-application
%{_bindir}/gtk4-icon-browser
%{_bindir}/gtk4-node-editor
%{_bindir}/gtk4-print-editor
%{_bindir}/gtk4-widget-factory
%{_datadir}/applications/org.gtk.gtk4.NodeEditor.desktop
%{_datadir}/applications/org.gtk.Demo4.desktop
%{_datadir}/applications/org.gtk.IconBrowser4.desktop
%{_datadir}/applications/org.gtk.PrintEditor4.desktop
%{_datadir}/applications/org.gtk.WidgetFactory4.desktop
%{_datadir}/applications/org.gtk.gtk4.NodeEditor.desktop
%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor*.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor.Devel.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor.svg
%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor-symbolic.svg
%{_datadir}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
%{_datadir}/metainfo/org.gtk.gtk4.NodeEditor.appdata.xml
%{_datadir}/metainfo/org.gtk.Demo4.appdata.xml
%{_datadir}/metainfo/org.gtk.IconBrowser4.appdata.xml
%{_datadir}/metainfo/org.gtk.PrintEditor4.appdata.xml
%{_datadir}/metainfo/org.gtk.WidgetFactory4.appdata.xml
%{_datadir}/metainfo/org.gtk.gtk4.NodeEditor.appdata.xml
%{_mandir}/man1/gtk4-demo.1*
%{_mandir}/man1/gtk4-node-editor.1*
%{_mandir}/man1/gtk4-demo-application.1*
%{_mandir}/man1/gtk4-icon-browser.1*
%{_mandir}/man1/gtk4-node-editor.1*
%{_mandir}/man1/gtk4-widget-factory.1*
%changelog
* Mon Jan 02 2023 lin zhang <lin.zhang@turbolinux.com.cn> - 4.9.1-1
- update to 4.9.1
* Thu Jan 19 2023 yaoxin <yaoxin30@h-partners.com> - 4.7.0-3
- Fix error pkgconfig(rest-1.0) due to rest revert to 0.8.1

2
settings.ini Normal file
View File

@ -0,0 +1,2 @@
[Settings]
gtk-hint-font-metrics=1