diff --git a/baselibs.conf b/baselibs.conf index 657f03e..548c82b 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -2,33 +2,4 @@ gtk4-devel requires -gtk4- requires "libgtk-4-0- = " libgtk-4-0 - provides "gtk4- = " - post "if test -f %{_bindir}/gtk4-query-immodules; then %{_bindir}/gtk4-query-immodules --update-cache; fi" -gtk4-immodule-amharic - requires "gtk4-" - post "%{_bindir}/gtk-query4-immodules --update-cache" - postun "%{_bindir}/gtk-query4-immodules --update-cache" -gtk4-immodule-inuktitut - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" -gtk4-immodule-multipress - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" -gtk4-immodule-thai - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" -gtk4-immodule-tigrigna - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" -gtk4-immodule-vietnamese - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" -gtk4-immodule-xim - requires "gtk4-" - post "%{_bindir}/gtk4-query-immodules --update-cache" - postun "%{_bindir}/gtk4-query-immodules --update-cache" + provides "gtk4- = " \ No newline at end of file diff --git a/gtk+-3.93.0.tar.xz b/gtk+-3.93.0.tar.xz deleted file mode 100644 index 9780796..0000000 --- a/gtk+-3.93.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4215d724c751b4999348d812d30261bcdfe52e41db1e20e8f3cefc7e80736251 -size 13180936 diff --git a/gtk+-3.94.0.tar.xz b/gtk+-3.94.0.tar.xz new file mode 100644 index 0000000..39dcdd1 --- /dev/null +++ b/gtk+-3.94.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a947caa5296610b0f1d7a03b58df34765c227c577c78e683e75eea3251a67035 +size 13505016 diff --git a/gtk4-fix-dependency-error.patch b/gtk4-fix-dependency-error.patch new file mode 100644 index 0000000..45651e7 --- /dev/null +++ b/gtk4-fix-dependency-error.patch @@ -0,0 +1,52 @@ +https://gitlab.gnome.org/GNOME/gtk/commit/5df4d277527858481ca6eb7af0762c73d804f19d + +Fix build + +broadway-server.c requires broadwayjs.h +this failed osc build -j1 + +Fixes #1218 + +Index: gtk+-3.94.0/gdk/broadway/meson.build +=================================================================== +--- gtk+-3.94.0.orig/gdk/broadway/meson.build ++++ gtk+-3.94.0/gdk/broadway/meson.build +@@ -43,8 +43,19 @@ clienthtml_h = custom_target('clienthtml + ], + ) + ++broadwayjs_h = custom_target('broadwayjs.h', ++ input : ['broadway.js'], ++ output : 'broadwayjs.h', ++ command : [ ++ gen_c_array, ++ '--array-name=broadway_js', ++ '--output=@OUTPUT@', ++ '@INPUT0@', ++ ], ++) ++ + libgdk_broadway = static_library('gdk-broadway', +- clienthtml_h, ++ clienthtml_h, broadwayjs_h, + gdk_broadway_sources, gdkconfig, gdkenum_h, + include_directories: [confinc, gdkinc], + c_args: [ +@@ -58,17 +69,6 @@ libgdk_broadway = static_library('gdk-br + + broadwayd_syslib = os_win32 ? find_library('ws2_32') : shmlib + +-broadwayjs_h = custom_target('broadwayjs.h', +- input : ['broadway.js'], +- output : 'broadwayjs.h', +- command : [ +- gen_c_array, +- '--array-name=broadway_js', +- '--output=@OUTPUT@', +- '@INPUT0@', +- ], +-) +- + executable('gtk4-broadwayd', + clienthtml_h, broadwayjs_h, + 'broadwayd.c', 'broadway-server.c', 'broadway-output.c', diff --git a/gtk4.changes b/gtk4.changes index f81b2f4..5afc89c 100644 --- a/gtk4.changes +++ b/gtk4.changes @@ -1,7 +1,88 @@ +------------------------------------------------------------------- +Tue Sep 18 00:10:04 UTC 2018 - luc14n0@linuxmail.org + +- Add gtk4-fix-dependency-error.patch upstream patch to fix build + error with few threads raised by missing dependency on + broadwayjs.h (glgo#GNOME/gtk#1218). +- Update spec: + + Drop gtk4 subpackages and respective Recommends/Requires/\ + Provides tags to follow upstream changes: immodule-amharic, + immodule-broadway, immodule-inuktitut, immodule-multipress, + immodule-thai, immodule-tigrigna, immodule-vietnamese, + immodule-xim and data. + + Drop gtk4-tools Requires(post): this no longer needed. + + Drop lang subpackage Recommends: the main package is already + being supplemented by the lang subpackage due to RPM automatic + setting. + + Drop gtk4-data Provides: there's no such subpackage anymore. + + Drop glib2_gsettings_schema_requires macro: this is no longer + needed since RPM file triggers (version > 4.13). + ------------------------------------------------------------------- Thu Aug 9 11:33:37 UTC 2018 - tchvatal@suse.com -- Fix package name to be uniform immodules -> immodule bsc#1104264 +- Fix package name to be uniform immodules -> immodule + (bsc#1104264). + +------------------------------------------------------------------- +Tue Jul 24 11:49:38 UTC 2018 - bjorn.lie@gmail.com + +- Update to version 3.94.0: + + GdkPaintable is a new, powerful abstraction for drawable + content. + + gtk4-demo has a new "Paint" demo to show some of its + capabilities. + + There is support for displaying media, with GtkVideo, + GtkMediaFile, GtkMediaStream and GtkMediaControls. + + GtkFontChooser now supports OpenType font variations and + features. + + The Ctrl-Shift-E support in the simple IM context has been + replaced by an optional completion popup for Emoji alpha codes. + This can be enabled with the GtkEntry::enable-emoji-completion + property. + + Wayland has an input method based on the text protocol now. + + Input methods, print backends and media backends have been + converted to GIOModules and extension points, and support for + generic loadable modules has been dropped. Platform im modules + are always included. + + GdkWindow has been renamed to GdkSurface. + + Applications can now create their own GtkSnapshot objects for + intermediate rendering. + + Widget event signals have been replaced by event controllers, + and some new event controllers have been introduced for this: + GtkEventControllerMotion, GtkEventControllerKey and + GtkGestureStylus. + + Event controllers can now be created in .ui files. + + Invalidation tracking has been changed, only + gtk_widget_queue_draw is left. + + Observing widget contents and size is now done by using the + GtkWidgetPaintable object instead of connecting to widget + signals. + + The GtkWidget::draw signal has been removed, widgets need to + implement GtkWidget::snapshot. + + GdkTexture now has GdkMemoryTexture and GdkGLTexture + subclasses. + + The Vulkan support in GDK can now use a particular device that + is specified by the GDK_VULKAN_DEVICE environment variable. Use + GDK_VULKAN_DEVICE=list to see them all. + + GTK+ Inspector: + - has logging support, and the logging settings have been + cleaned up. + - has an fps overlay. + + Removed APIs and features: Individual event signals such as + ::proximity-in-event The ::draw signal threading support + non-platform IM modules papi and test print backends + GtkPlacesSidebar GtkRecentChooser GtkToolPalette + GdkStatus gtk_true, gtk_false gtk_widget_show_now + gtk_widget_draw gtk_render_icon_surface. + + Incomplete transitions: + - The ::event signal is not still there, but it will be + removed. + - The DND apis are not finalized yet. + + Updated translations. +- Drop gtkmm.patch: Fixed upstream. +- Add pkgconfig(gstreamer-player-1.0) BuildRequires: New + dependency. ------------------------------------------------------------------- Tue Mar 20 17:10:11 UTC 2018 - dimstar@opensuse.org diff --git a/gtk4.spec b/gtk4.spec index d1be1cb..30aa845 100644 --- a/gtk4.spec +++ b/gtk4.spec @@ -21,18 +21,20 @@ %define gtk_binary_version 4.0.0 %define _name gtk+ Name: gtk4 -Version: 3.93.0 +Version: 3.94.0 Release: 0 Summary: The GTK+ toolkit library (version 4) License: LGPL-2.1-or-later Group: Development/Libraries/X11 URL: http://www.gtk.org/ -Source: http://download.gnome.org/sources/gtk+/3.93/%{_name}-%{version}.tar.xz +Source: http://download.gnome.org/sources/gtk+/3.94/%{_name}-%{version}.tar.xz Source2: settings.ini Source3: macros.gtk4 Source98: gtk4-rpmlintrc Source99: baselibs.conf -Patch0: gtkmm.patch +# PATCH-FIX-UPSTREAM gtk4-fix-dependency-error.patch luc14n0@linuxmail.org glgo#GNOME/gtk#1218 fix build failure when using few threads. +Patch0: gtk4-fix-dependency-error.patch + BuildRequires: cups-devel >= 1.2 BuildRequires: docbook-xsl-stylesheets BuildRequires: fdupes @@ -60,12 +62,13 @@ BuildRequires: pkgconfig(gobject-2.0) >= 2.53.7 BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.39.0 BuildRequires: pkgconfig(graphene-1.0) >= 1.5.1 BuildRequires: pkgconfig(graphene-gobject-1.0) >= 1.5.1 +BuildRequires: pkgconfig(gstreamer-player-1.0) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(pango) >= 1.37.3 BuildRequires: pkgconfig(pangocairo) >= 1.14.0 BuildRequires: pkgconfig(pangoft2) BuildRequires: pkgconfig(rest-0.7) -BuildRequires: pkgconfig(wayland-client) >= 1.9.91 +BuildRequires: pkgconfig(wayland-client) >= 1.14.91 BuildRequires: pkgconfig(wayland-cursor) >= 1.9.91 BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-protocols) >= 1.9 @@ -89,7 +92,6 @@ ranging from small one-off projects to complete application suites. Summary: The GTK+ toolkit library (version 4) # gtk4-data is currently not being built, might be an upstream oversight though Group: System/Libraries -Requires: %{name}-data >= %{version} Requires: %{name}-schema >= %{version} # Require Adwaita Icon Theme: It's GTKs icon set, that's guaranteed to be there Requires: adwaita-icon-theme @@ -98,20 +100,20 @@ Requires: adwaita-icon-theme # assume it's there and we need to have a low-level package to # bring it in. Requires: hicolor-icon-theme -Requires(post): %{name}-tools # gtk+ can work without branding/translations. Built in defaults will be used then. Recommends: %{name}-branding -# it's nice to have input modules for various locales installed by default -Recommends: %{name}-immodule-amharic = %{version} -Recommends: %{name}-immodule-inuktitut = %{version} -Recommends: %{name}-immodule-thai = %{version} -Recommends: %{name}-immodule-tigrigna = %{version} -Recommends: %{name}-immodule-vietnamese = %{version} -Recommends: %{name}-lang Recommends: gvfs -Obsoletes: %{name}-data < %{version} -Provides: %{name}-data = %{version} -# Provide %%{name} to make the lang and immodules packages installable +Obsoletes: %{name}-data +# IM modules have been dropped in 3.94.0 +Obsoletes: immodule-amharic +Obsoletes: immodule-broadway +Obsoletes: immodule-inuktitut +Obsoletes: immodule-multipress +Obsoletes: immodule-thai +Obsoletes: immodule-tigrigna +Obsoletes: immodule-vietnamese +Obsoletes: immodule-xim +# Provide main package to make the lang subpackage installable Provides: %{name} = %{version} %description -n libgtk-4-0 @@ -130,131 +132,6 @@ ranging from small one-off projects to complete application suites. This package provides the GObject Introspection bindings for GTK+. -%package immodule-amharic -Summary: Amharic input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: locale(%{name}:am) - -%description immodule-amharic -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. - -This package provides an input method for Amharic. - -%package immodule-broadway -Summary: Broadway input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools - -%description immodule-broadway -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. - -This package provides an input method for Broadway. - -%package immodule-inuktitut -Summary: Inuktitut input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: locale(%{name}:iu) - -%description immodule-inuktitut -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. - -This package provides an input method for Inuktitut. - -%package immodule-multipress -Summary: Multipress input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools - -%description immodule-multipress -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. - -This package provides an input method which allows text entry via the -multi-press method, as on a mobile phone. - -%package immodule-thai -Summary: Thai-Lao input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: locale(%{name}:lo) -Provides: locale(%{name}:th) - -%description immodule-thai -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. - -This package provides an input method for Thai-Lao. - -%package immodule-tigrigna -Summary: Tigrigna input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: %{name}-immodules-tigrigna = %{version} -Provides: locale(%{name}:ti) -Obsoletes: %{name}-immodules-tigrigna < %{version} - -%description immodule-tigrigna -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. - -This package provides two input methods for Tigrigna. - -%package immodule-vietnamese -Summary: Vietnamese input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: locale(%{name}:vi) - -%description immodule-vietnamese -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. - -This package provides an input method for Vietnamese. - -%package immodule-xim -Summary: X input method for the GTK+ toolkit library v4 -Group: System/Libraries -Requires: %{name} = %{version} -Requires(post): %{name}-tools -Requires(postun): %{name}-tools -Provides: locale(%{name}:ja) -Provides: locale(%{name}:ko) -Provides: locale(%{name}:th) -Provides: locale(%{name}:zh) - -%description immodule-xim -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. - -This package provides an input method based on the X Input Method. - %package tools Summary: Auxiliary utilities for the GTK+ toolkit library v4 Group: System/Libraries @@ -264,16 +141,6 @@ 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. -%package data -Summary: Data files for the GTK+ toolkit library v4 -Group: System/Libraries -BuildArch: noarch - -%description data -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. - %package schema Summary: Config schema for the GTK+ toolkit library v4 # The schema is shared between gtk3 and gtk4 - gtk4 wins @@ -281,7 +148,6 @@ Group: System/Libraries Provides: gtk3-schema = %{version} Obsoletes: gtk3-schema < %{version} BuildArch: noarch -%glib2_gsettings_schema_requires %description schema GTK+ is a multi-platform toolkit for creating graphical user interfaces. @@ -364,124 +230,38 @@ translation-update-upstream %find_lang gtk40 %find_lang gtk40-properties install -m 644 -D %{SOURCE2} %{buildroot}%{_datadir}/gtk-4.0/settings.ini -touch %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules.cache # create modules directory that should have been created during the build -test ! -d %{buildroot}%{_libdir}/gtk-4.0/modules -mkdir %{buildroot}%{_libdir}/gtk-4.0/modules +if test ! -d %{buildroot}%{_libdir}/gtk-4.0/modules; then + mkdir %{buildroot}%{_libdir}/gtk-4.0/modules +else + echo 'Remove this no-longer-needed modulesdir hack.' +fi # create theming-engines directory that should have been created during the build -test ! -d %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines -mkdir %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines +if test ! -d %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines; then + mkdir %{buildroot}%{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines +else + echo 'Remove this no-longer-needed themingdir hack.' +fi # Install rpm macros mkdir -p %{buildroot}%{_sysconfdir}/rpm cp %{SOURCE3} %{buildroot}%{_sysconfdir}/rpm %fdupes %{buildroot}%{_datadir} %fdupes %{buildroot}%{_libdir} -########################################################################### -# Note: when updating scriptlets, don't forget to also update baselibs.conf -########################################################################### - -# Convenient %%define for the scriplets -%define _gtk_query_immodules %{_bindir}/gtk4-query-immodules -%define _gtk_query_immodules_update_cache %{_gtk_query_immodules} --update-cache - -%post -n libgtk-4-0 -/sbin/ldconfig -%if 0 -# In case libgtk-4-0 gets installed before gtk4-tools, we don't want to fail. -# So we make the call to gtk4-query-immodules dependent on the existence of -# the binary. This is why we also have a %%post for gtk4-tools. -%endif -if test -f %{_gtk_query_immodules}; then - %{_gtk_query_immodules_update_cache} -fi - -%post immodule-amharic -%{_gtk_query_immodules_update_cache} - -%post immodule-broadway -%{_gtk_query_immodules_update_cache} - -%post immodule-inuktitut -%{_gtk_query_immodules_update_cache} - -%post immodule-multipress -%{_gtk_query_immodules_update_cache} - -%post immodule-thai -%{_gtk_query_immodules_update_cache} - -%post immodule-tigrigna -%{_gtk_query_immodules_update_cache} - -%post immodule-vietnamese -%{_gtk_query_immodules_update_cache} - -%post immodule-xim -%{_gtk_query_immodules_update_cache} - -%post tools -%if 0 -# If we install gtk4-tools for the first time, then we should run it in case -# libgtk-4-0 was installed first (ie, if -# %%{_libdir}/gtk-4.0/%%{gtk_binary_version} already exists) which means -# gtk4-query-immodules couldn't run there. -%endif -if [ $1 = 1 ]; then - test -d %{_libdir}/gtk-4.0/%{gtk_binary_version} - if test $? -eq 0; then - %{_gtk_query_immodules_update_cache} - fi -fi - -%if 0 -# No need to call gtk-query-immodules-3.0 in postun: -# - if it's an upgrade, it will have been called in post -# - if it's an uninstall, we don't care about this anymore -%endif - +%post -n libgtk-4-0 -p /sbin/ldconfig %postun -n libgtk-4-0 -p /sbin/ldconfig -%postun immodule-amharic -%{_gtk_query_immodules_update_cache} - -%postun immodule-broadway -%{_gtk_query_immodules_update_cache} - -%postun immodule-inuktitut -%{_gtk_query_immodules_update_cache} - -%postun immodule-multipress -%{_gtk_query_immodules_update_cache} - -%postun immodule-thai -%{_gtk_query_immodules_update_cache} - -%postun immodule-tigrigna -%{_gtk_query_immodules_update_cache} - -%postun immodule-vietnamese -%{_gtk_query_immodules_update_cache} - -%postun immodule-xim -%{_gtk_query_immodules_update_cache} %files -n libgtk-4-0 %license COPYING %doc AUTHORS NEWS -%dir %{_sysconfdir}/gtk-4.0 %dir %{_libdir}/gtk-4.0 %dir %{_libdir}/gtk-4.0/%{gtk_binary_version} -%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/ -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-cedilla.so -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-cyrillic-translit.so -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ipa.so %dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/ -%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cloudprint.so %{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cups.so %{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-file.so -#%%{_libdir}/gtk-4.0/%%{gtk_binary_version}/printbackends/libprintbackend-lpr.so +%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/media/ +%{_libdir}/gtk-4.0/%{gtk_binary_version}/media/libmedia-gstreamer.so %dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/theming-engines/ -%ghost %{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules.cache %dir %{_libdir}/gtk-4.0/modules %{_libdir}/libgtk-4.so.* @@ -491,40 +271,11 @@ fi %{_libdir}/girepository-1.0/Gsk-4.0.typelib %{_libdir}/girepository-1.0/Gtk-4.0.typelib -%files immodule-amharic -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-am-et.so - -%files immodule-broadway -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-broadway.so - -%files immodule-inuktitut -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-inuktitut.so - -%files immodule-multipress -%doc modules/input/README.multipress -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-multipress.so -%config %{_sysconfdir}/gtk-4.0/im-multipress.conf - -%files immodule-thai -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-thai.so - -%files immodule-tigrigna -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ti-er.so -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-ti-et.so - -%files immodule-vietnamese -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-viqr.so - -%files immodule-xim -%{_libdir}/gtk-4.0/%{gtk_binary_version}/immodules/im-xim.so - %files tools -%{_bindir}/gtk4-broadwayd %{_bindir}/gtk4-icon-browser %{_bindir}/gtk4-builder-tool %{_bindir}/gtk4-encode-symbolic-svg %{_bindir}/gtk4-launch -%{_bindir}/gtk4-query-immodules %{_bindir}/gtk4-query-settings %{_bindir}/gtk4-update-icon-cache %{_datadir}/applications/gtk4-icon-browser.desktop @@ -533,15 +284,9 @@ fi %{_mandir}/man1/gtk4-builder-tool.1%{?ext_man} %{_mandir}/man1/gtk4-encode-symbolic-svg.1%{?ext_man} %{_mandir}/man1/gtk4-launch.1%{?ext_man} -%{_mandir}/man1/gtk4-query-immodules.1%{?ext_man} %{_mandir}/man1/gtk4-query-settings.1%{?ext_man} %{_mandir}/man1/gtk4-update-icon-cache.1%{?ext_man} -#files data -#defattr(-,root,root) -#{_datadir}/themes/Default/ -#{_datadir}/themes/Emacs/ - %files schema %{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml @@ -553,7 +298,7 @@ fi %{_datadir}/gtk-4.0/settings.ini %files devel -%doc CONTRIBUTING.md NEWS.pre-1-0 README.commits +%doc CONTRIBUTING.md README.commits %doc %{_datadir}/gtk-doc/html/gdk4/ %doc %{_datadir}/gtk-doc/html/gsk4/ %doc %{_datadir}/gtk-doc/html/gtk4/ @@ -564,7 +309,9 @@ fi %{_mandir}/man1/gtk4-demo-application.1%{?ext_man} %{_mandir}/man1/gtk4-widget-factory.1%{?ext_man} %{_datadir}/applications/gtk4-demo.desktop +%{_datadir}/metainfo/org.gtk.Demo.appdata.xml %{_datadir}/applications/gtk4-widget-factory.desktop +%{_datadir}/metainfo/org.gtk.WidgetFactory.appdata.xml %{_datadir}/gir-1.0/*.gir %dir %{_datadir}/gtk-4.0 %{_datadir}/gtk-4.0/gtkbuilder.rng @@ -574,7 +321,6 @@ fi %{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory-symbolic.symbolic.png %{_includedir}/gtk-4.0/ %{_libdir}/pkgconfig/gtk+-4.0.pc -%{_libdir}/pkgconfig/gtk+-broadway-4.0.pc %{_libdir}/pkgconfig/gtk+-wayland-4.0.pc %{_libdir}/pkgconfig/gtk+-unix-print-4.0.pc %{_libdir}/pkgconfig/gtk+-x11-4.0.pc diff --git a/gtkmm.patch b/gtkmm.patch deleted file mode 100644 index 6d9c95b..0000000 --- a/gtkmm.patch +++ /dev/null @@ -1,423 +0,0 @@ -From 2cbe094b919442471b54685a0fef0d6f83ce44b3 Mon Sep 17 00:00:00 2001 -From: Emmanuele Bassi -Date: Thu, 1 Feb 2018 17:43:15 +0100 -Subject: [PATCH] Allow binding GdkContentFormatsBuilder - -GdkContentFormatsBuilder is currently not introspectable, as it does not -have a GType. We can turn it into a boxed type, but we need to implement -memory management for it. - -The current gdk_content_formats_builder_free() function returns a newly -constructed value, so we cannot use it as a GBoxedFreeFunc; additionally -copying a GdkContentFormatsBuilder contents would make it a bit odd, as -you could get multiple identical GdkContentFormats out of the copies. - -A simple approach is to model the GdkContentFormatsBuilder API to follow -the GBytes one: use reference counting for memory management, and have -a function to release a reference, return a GdkContentFormats, and reset -the GdkContentFormatsBuilder state. - -For language bindings, we can provide a get_formats() function that -returns the GdkContentFormats instance and resets the builder instance, -leaving the reference count untouched. - -For C convenience we can keep gdk_content_formats_builder_free(), and -make it a wrapper around gdk_content_formats_builder_get_formats(), with -the guarantee that it'll free the builder instance regardless of its -current reference count. - -https://bugzilla.gnome.org/show_bug.cgi?id=793097 -https://blogs.gnome.org/otte/2018/02/03/builders/ ---- - docs/reference/gdk/gdk4-sections.txt | 7 ++++++- - gdk/gdkclipboard.c | 2 +- - gdk/gdkcontentdeserializer.c | 4 ++-- - gdk/gdkcontentformats.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- - gdk/gdkcontentformats.h | 15 +++++++++++++-- - gdk/gdkcontentproviderimpl.c | 2 +- - gdk/gdkcontentserializer.c | 4 ++-- - gdk/wayland/gdkprimary-wayland.c | 4 ++-- - gdk/wayland/gdkselection-wayland.c | 2 +- - gdk/win32/gdkdnd-win32.c | 2 +- - gdk/x11/gdkclipboard-x11.c | 2 +- - gtk/gtkselection.c | 6 +++--- - 12 files changed, 138 insertions(+), 27 deletions(-) - -diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt -index d492279..cf58129 100644 ---- a/docs/reference/gdk/gdk4-sections.txt -+++ b/docs/reference/gdk/gdk4-sections.txt -@@ -438,11 +438,16 @@ gdk_content_formats_union_deserialize_mime_types - - GdkContentFormatsBuilder - gdk_content_formats_builder_new --gdk_content_formats_builder_free -+gdk_content_formats_builder_free_to_formats - gdk_content_formats_builder_add_formats - gdk_content_formats_builder_add_gtype - gdk_content_formats_builder_add_mime_type - -+ -+gdk_content_formats_builder_ref -+gdk_content_formats_builder_unref -+gdk_content_formats_builder_to_formats -+ - - GDK_TYPE_FILE_LIST - gdk_file_list_get_type -diff --git a/gdk/gdkclipboard.c b/gdk/gdkclipboard.c -index ee9d8e9..df82147 100644 ---- a/gdk/gdkclipboard.c -+++ b/gdk/gdkclipboard.c -@@ -820,7 +820,7 @@ gdk_clipboard_read_value_internal (GdkClipboard *clipboard, - - builder = gdk_content_formats_builder_new (); - gdk_content_formats_builder_add_gtype (builder, type); -- formats = gdk_content_formats_builder_free (builder); -+ formats = gdk_content_formats_builder_free_to_formats (builder); - formats = gdk_content_formats_union_deserialize_mime_types (formats); - - gdk_clipboard_read_internal (clipboard, -diff --git a/gdk/gdkcontentdeserializer.c b/gdk/gdkcontentdeserializer.c -index c9df08d..b0df54c 100644 ---- a/gdk/gdkcontentdeserializer.c -+++ b/gdk/gdkcontentdeserializer.c -@@ -458,7 +458,7 @@ gdk_content_formats_union_deserialize_gtypes (GdkContentFormats *formats) - - gdk_content_formats_unref (formats); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - /** -@@ -493,7 +493,7 @@ gdk_content_formats_union_deserialize_mime_types (GdkContentFormats *formats) - - gdk_content_formats_unref (formats); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - static void -diff --git a/gdk/gdkcontentformats.c b/gdk/gdkcontentformats.c -index 04bd064..cd3293f 100644 ---- a/gdk/gdkcontentformats.c -+++ b/gdk/gdkcontentformats.c -@@ -307,7 +307,7 @@ gdk_content_formats_union (GdkContentFormats *first, - gdk_content_formats_unref (first); - gdk_content_formats_builder_add_formats (builder, second); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - static gboolean -@@ -510,12 +510,22 @@ gdk_content_formats_get_mime_types (GdkContentFormats *formats, - - struct _GdkContentFormatsBuilder - { -+ int ref_count; -+ -+ /* (element-type GType) */ - GSList *gtypes; - gsize n_gtypes; -+ -+ /* (element-type utf8) (interned) */ - GSList *mime_types; - gsize n_mime_types; - }; - -+G_DEFINE_BOXED_TYPE (GdkContentFormatsBuilder, -+ gdk_content_formats_builder, -+ gdk_content_formats_builder_ref, -+ gdk_content_formats_builder_unref) -+ - /** - * gdk_content_formats_builder_new: - * -@@ -528,19 +538,106 @@ struct _GdkContentFormatsBuilder - GdkContentFormatsBuilder * - gdk_content_formats_builder_new (void) - { -- return g_slice_new0 (GdkContentFormatsBuilder); -+ GdkContentFormatsBuilder *builder; -+ -+ builder = g_slice_new0 (GdkContentFormatsBuilder); -+ builder->ref_count = 1; -+ -+ return builder; - } - - /** -- * gdk_content_formats_builder_free: -+ * gdk_content_formats_builder_ref: - * @builder: a #GdkContentFormatsBuilder - * -- * Frees @builder and creates a new #GdkContentFormats from it. -+ * Acquires a reference on the given @builder. - * -- * Returns: a new #GdkContentFormats with all the formats added to @builder -- **/ -+ * This function is intended primarily for bindings. #GdkContentFormatsBuilder objects -+ * should not be kept around. -+ * -+ * Returns: (transfer none): the given #GdkContentFormatsBuilder with -+ * its reference count increased -+ */ -+GdkContentFormatsBuilder * -+gdk_content_formats_builder_ref (GdkContentFormatsBuilder *builder) -+{ -+ g_return_val_if_fail (builder != NULL, NULL); -+ g_return_val_if_fail (builder->ref_count > 0, NULL); -+ -+ builder->ref_count += 1; -+ -+ return builder; -+} -+ -+static void -+gdk_content_formats_builder_clear (GdkContentFormatsBuilder *builder) -+{ -+ g_clear_pointer (&builder->gtypes, g_slist_free); -+ g_clear_pointer (&builder->mime_types, g_slist_free); -+} -+ -+/** -+ * gdk_content_formats_builder_unref: -+ * @builder: a #GdkContentFormatsBuilder -+ * -+ * Releases a reference on the given @builder. -+ */ -+void -+gdk_content_formats_builder_unref (GdkContentFormatsBuilder *builder) -+{ -+ g_return_if_fail (builder != NULL); -+ g_return_if_fail (builder->ref_count > 0); -+ -+ builder->ref_count -= 1; -+ -+ if (builder->ref_count > 0) -+ return; -+ -+ gdk_content_formats_builder_clear (builder); -+ g_slice_free (GdkContentFormatsBuilder, builder); -+} -+ -+/** -+ * gdk_content_formats_builder_free_to_formats: (skip) -+ * @builder: a #GdkContentFormatsBuilder -+ * -+ * Creates a new #GdkContentFormats from the current state of the -+ * given @builder, and frees the @builder instance. -+ * -+ * Returns: (transfer full): the newly created #GdkContentFormats -+ * with all the formats added to @builder -+ */ -+GdkContentFormats * -+gdk_content_formats_builder_free_to_formats (GdkContentFormatsBuilder *builder) -+{ -+ GdkContentFormats *res; -+ -+ g_return_val_if_fail (builder != NULL, NULL); -+ -+ res = gdk_content_formats_builder_to_formats (builder); -+ -+ gdk_content_formats_builder_unref (builder); -+ -+ return res; -+} -+ -+/** -+ * gdk_content_formats_builder_to_formats: -+ * @builder: a #GdkContentFormatsBuilder -+ * -+ * Creates a new #GdkContentFormats from the given @builder. -+ * -+ * The given #GdkContentFormatsBuilder is reset once this function returns; -+ * you cannot call this function multiple times on the same @builder instance. -+ * -+ * This function is intended primarily for bindings. C code should use -+ * gdk_content_formats_builder_free_to_formats(). -+ * -+ * Returns: (transfer full): the newly created #GdkContentFormats -+ * with all the formats added to @builder -+ */ - GdkContentFormats * --gdk_content_formats_builder_free (GdkContentFormatsBuilder *builder) -+gdk_content_formats_builder_to_formats (GdkContentFormatsBuilder *builder) - { - GdkContentFormats *result; - GType *gtypes; -@@ -567,9 +664,7 @@ gdk_content_formats_builder_free (GdkContentFormatsBuilder *builder) - result = gdk_content_formats_new_take (gtypes, builder->n_gtypes, - mime_types, builder->n_mime_types); - -- g_slist_free (builder->gtypes); -- g_slist_free (builder->mime_types); -- g_slice_free (GdkContentFormatsBuilder, builder); -+ gdk_content_formats_builder_clear (builder); - - return result; - } -diff --git a/gdk/gdkcontentformats.h b/gdk/gdkcontentformats.h -index 58bbb10..a383434 100644 ---- a/gdk/gdkcontentformats.h -+++ b/gdk/gdkcontentformats.h -@@ -77,12 +77,23 @@ GDK_AVAILABLE_IN_3_94 - gboolean gdk_content_formats_contain_mime_type (const GdkContentFormats *formats, - const char *mime_type); - -+#define GDK_TYPE_CONTENT_FORMATS_BUILDER (gdk_content_formats_builder_get_type ()) -+ - typedef struct _GdkContentFormatsBuilder GdkContentFormatsBuilder; - - GDK_AVAILABLE_IN_3_94 --GdkContentFormatsBuilder*gdk_content_formats_builder_new (void); -+GType gdk_content_formats_builder_get_type (void) G_GNUC_CONST; -+ -+GDK_AVAILABLE_IN_3_94 -+GdkContentFormatsBuilder *gdk_content_formats_builder_new (void); -+GDK_AVAILABLE_IN_3_94 -+GdkContentFormatsBuilder *gdk_content_formats_builder_ref (GdkContentFormatsBuilder *builder); -+GDK_AVAILABLE_IN_3_94 -+void gdk_content_formats_builder_unref (GdkContentFormatsBuilder *builder); -+GDK_AVAILABLE_IN_3_94 -+GdkContentFormats * gdk_content_formats_builder_free_to_formats (GdkContentFormatsBuilder *builder) G_GNUC_WARN_UNUSED_RESULT; - GDK_AVAILABLE_IN_3_94 --GdkContentFormats * gdk_content_formats_builder_free (GdkContentFormatsBuilder *builder) G_GNUC_WARN_UNUSED_RESULT; -+GdkContentFormats * gdk_content_formats_builder_to_formats (GdkContentFormatsBuilder *builder) G_GNUC_WARN_UNUSED_RESULT; - GDK_AVAILABLE_IN_3_94 - void gdk_content_formats_builder_add_formats (GdkContentFormatsBuilder *builder, - const GdkContentFormats *formats); -diff --git a/gdk/gdkcontentproviderimpl.c b/gdk/gdkcontentproviderimpl.c -index 9ae14e0..e7b70c2 100644 ---- a/gdk/gdkcontentproviderimpl.c -+++ b/gdk/gdkcontentproviderimpl.c -@@ -168,7 +168,7 @@ gdk_content_provider_bytes_ref_formats (GdkContentProvider *provider) - - builder = gdk_content_formats_builder_new (); - gdk_content_formats_builder_add_mime_type (builder, content->mime_type); -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - static void -diff --git a/gdk/gdkcontentserializer.c b/gdk/gdkcontentserializer.c -index 843c613..92cbb2d 100644 ---- a/gdk/gdkcontentserializer.c -+++ b/gdk/gdkcontentserializer.c -@@ -461,7 +461,7 @@ gdk_content_formats_union_serialize_gtypes (GdkContentFormats *formats) - - gdk_content_formats_unref (formats); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - /** -@@ -496,7 +496,7 @@ gdk_content_formats_union_serialize_mime_types (GdkContentFormats *formats) - - gdk_content_formats_unref (formats); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - static void -diff --git a/gdk/wayland/gdkprimary-wayland.c b/gdk/wayland/gdkprimary-wayland.c -index 89f02e6..62a6941 100644 ---- a/gdk/wayland/gdkprimary-wayland.c -+++ b/gdk/wayland/gdkprimary-wayland.c -@@ -58,7 +58,7 @@ gdk_wayland_primary_discard_pending (GdkWaylandPrimary *cb) - { - if (cb->pending_builder) - { -- GdkContentFormats *ignore = gdk_content_formats_builder_free (cb->pending_builder); -+ GdkContentFormats *ignore = gdk_content_formats_builder_free_to_formats (cb->pending_builder); - gdk_content_formats_unref (ignore); - cb->pending_builder = NULL; - } -@@ -178,7 +178,7 @@ primary_selection_selection (void *data, - return; - } - -- formats = gdk_content_formats_builder_free (cb->pending_builder); -+ formats = gdk_content_formats_builder_free_to_formats (cb->pending_builder); - cb->pending_builder = NULL; - cb->pending = NULL; - -diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c -index 0db6bad..9f7826e 100644 ---- a/gdk/wayland/gdkselection-wayland.c -+++ b/gdk/wayland/gdkselection-wayland.c -@@ -124,7 +124,7 @@ data_offer_offer (void *data, - gdk_content_formats_builder_add_formats (builder, info->targets); - gdk_content_formats_builder_add_mime_type (builder, type); - gdk_content_formats_unref (info->targets); -- info->targets = gdk_content_formats_builder_free (builder); -+ info->targets = gdk_content_formats_builder_free_to_formats (builder); - } - - static inline GdkDragAction -diff --git a/gdk/win32/gdkdnd-win32.c b/gdk/win32/gdkdnd-win32.c -index 190386c..1d844a8 100644 ---- a/gdk/win32/gdkdnd-win32.c -+++ b/gdk/win32/gdkdnd-win32.c -@@ -552,7 +552,7 @@ query_targets (LPDATAOBJECT pDataObj, - for (p = g_list_reverse (result); p; p = p->next) - gdk_content_formats_builder_add_mime_type (builder, (const gchar *) p->data); - -- result_formats = gdk_content_formats_builder_free (builder); -+ result_formats = gdk_content_formats_builder_free_to_formats (builder); - g_list_free (result); - - return result_formats; -diff --git a/gdk/x11/gdkclipboard-x11.c b/gdk/x11/gdkclipboard-x11.c -index 02a0b4e..c7b3780 100644 ---- a/gdk/x11/gdkclipboard-x11.c -+++ b/gdk/x11/gdkclipboard-x11.c -@@ -243,7 +243,7 @@ gdk_x11_clipboard_formats_from_atoms (GdkDisplay *display, - } - } - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - static void -diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c -index 66dbd02..5dc56a7 100644 ---- a/gtk/gtkselection.c -+++ b/gtk/gtkselection.c -@@ -176,7 +176,7 @@ gtk_content_formats_add_text_targets (GdkContentFormats *list) - gdk_content_formats_builder_add_mime_type (builder, text_plain_locale_atom); - gdk_content_formats_builder_add_mime_type (builder, text_plain_atom); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - /** -@@ -243,7 +243,7 @@ gtk_content_formats_add_image_targets (GdkContentFormats *list, - - g_slist_free (formats); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - /** -@@ -270,7 +270,7 @@ gtk_content_formats_add_uri_targets (GdkContentFormats *list) - - gdk_content_formats_builder_add_mime_type (builder, text_uri_list_atom); - -- return gdk_content_formats_builder_free (builder); -+ return gdk_content_formats_builder_free_to_formats (builder); - } - - /** --- -libgit2 0.26.0 - -