diff --git a/0001-fix-build-failed-with-array-bound.patch b/0001-fix-build-failed-with-array-bound.patch new file mode 100644 index 0000000000000000000000000000000000000000..c7dac89ecf4d1557cebf8887bdf887344e9d2130 --- /dev/null +++ b/0001-fix-build-failed-with-array-bound.patch @@ -0,0 +1,31 @@ +From 80f3a1c7dd27ecf72060f1622ba110ae1339baba Mon Sep 17 00:00:00 2001 +From: Chunmei Xu +Date: Mon, 11 Apr 2022 19:26:54 +0800 +Subject: [PATCH] fix build failed with array-bound + +Signed-off-by: Chunmei Xu +--- + gtk/gtkimagedefinition.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/gtk/gtkimagedefinition.c b/gtk/gtkimagedefinition.c +index bd59420..dcb8903 100644 +--- a/gtk/gtkimagedefinition.c ++++ b/gtk/gtkimagedefinition.c +@@ -20,6 +20,8 @@ + #include "gtkimagedefinitionprivate.h" + + #include "deprecated/gtkiconfactory.h" ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Warray-bounds" + + typedef struct _GtkImageDefinitionEmpty GtkImageDefinitionEmpty; + typedef struct _GtkImageDefinitionPixbuf GtkImageDefinitionPixbuf; +@@ -374,3 +376,4 @@ gtk_image_definition_get_surface (const GtkImageDefinition *def) + + return def->surface.surface; + } ++#pragma GCC diagnostic pop +-- +2.34.1 + diff --git a/gtk+-3.24.33.tar.xz b/gtk+-3.24.33.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..6faa55ebb9933a321b1d66662e2f567e0649a1f2 Binary files /dev/null and b/gtk+-3.24.33.tar.xz differ diff --git a/gtk3.spec b/gtk3.spec new file mode 100644 index 0000000000000000000000000000000000000000..3f579638ca4063afc6633719283ae10922f864c9 --- /dev/null +++ b/gtk3.spec @@ -0,0 +1,299 @@ +%define anolis_release 1 +%global with_broadway 1 + +%global glib2_version 2.57.2 +%global pango_version 1.41.0 +%global atk_version 2.35.1 +%global cairo_version 1.14.0 +%global gdk_pixbuf_version 2.30.0 +%global xrandr_version 1.5.0 +%global wayland_protocols_version 1.17 +%global wayland_version 1.14.91 +%global epoxy_version 1.4 + +%global bin_version 3.0.0 + +%global __provides_exclude_from ^%{_libdir}/gtk-3.0 + +Name: gtk3 +Version: 3.24.33 +Release: %{anolis_release}%{?dist} +Summary: GTK+ graphical user interface library + +License: LGPLv2+ +URL: https://gtk.org +Source0: https://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz +Patch1: 0001-fix-build-failed-with-array-bound.patch + +BuildRequires: pkgconfig(atk) >= %{atk_version} +BuildRequires: pkgconfig(atk-bridge-2.0) +BuildRequires: pkgconfig(avahi-gobject) +BuildRequires: pkgconfig(cairo) >= %{cairo_version} +BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version} +BuildRequires: pkgconfig(cloudproviders) +BuildRequires: pkgconfig(colord) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version} +BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: pkgconfig(tracker-sparql-3.0) +BuildRequires: pkgconfig(wayland-client) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-egl) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version} +BuildRequires: pkgconfig(xi) +BuildRequires: pkgconfig(xrandr) >= %{xrandr_version} +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xinerama) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: gettext +BuildRequires: gtk-doc +BuildRequires: meson + +# standard icons +Requires: adwaita-icon-theme +# required for icon theme apis to work +Requires: hicolor-icon-theme +# split out in a subpackage +Requires: gtk-update-icon-cache + +Requires: atk >= %{atk_version} +Requires: cairo >= %{cairo_version} +Requires: cairo-gobject >= %{cairo_version} +Requires: glib2 >= %{glib2_version} +Requires: libepoxy >= %{epoxy_version} +Requires: libwayland-client >= %{wayland_version} +Requires: libwayland-cursor >= %{wayland_version} +Requires: libXrandr% >= %{xrandr_version} +Requires: pango >= %{pango_version} + +# required to support all the different image formats +Requires: gdk-pixbuf2-modules + +# make sure we have a reasonable gsettings backend +Recommends: dconf + +# For sound theme events in gtk3 apps +Recommends: libcanberra-gtk3 + +# For Tracker search in the file chooser. +Recommends: tracker-miners + +%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 tools to complete application +suites. + +This package contains version 3 of GTK+. + +%package -n gtk-update-icon-cache +Summary: Icon theme caching utility + +%description -n gtk-update-icon-cache +GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot of +system call and disk seek overhead when the application starts. Since the +format of the cache files allows them to be mmap()ed shared between multiple +applications, the overall memory consumption is reduced as well. + +%package immodules +Summary: Input methods for GTK+ +Requires: gtk3 = %{version}-%{release} +# for im-cedilla.conf +Requires: gtk2-immodules + +%description immodules +The gtk3-immodules package contains standalone input methods that +are shipped as part of GTK+ 3. + +%package immodule-xim +Summary: XIM support for GTK+ +Requires: gtk3 = %{version}-%{release} + +%description immodule-xim +The gtk3-immodule-xim package contains XIM support for GTK+ 3. + +%package devel +Summary: Development files for GTK+ +Requires: gtk3 = %{version}-%{release} + +%description devel +This package contains the libraries and header files that are needed +for writing applications with version 3 of the GTK+ widget toolkit. If +you plan to develop applications with GTK+, consider installing the +gtk3-devel-docs package. + +%package devel-docs +Summary: Developer documentation for GTK+ +Requires: gtk3 = %{version}-%{release} + +%description devel-docs +This package contains developer documentation for version 3 of the GTK+ +widget toolkit. + +%package tests +Summary: Tests for the %{name} package +Requires: %{name} = %{version}-%{release} + +%description tests +The %{name}-tests package contains tests that can be used to verify +the functionality of the installed %{name} package. + +%prep +%autosetup -n gtk+-%{version} -p1 + +%build +export CFLAGS='-fno-strict-aliasing %optflags' +%meson \ +%if 0%{?with_broadway} + -Dbroadway_backend=true \ +%endif + -Dbuiltin_immodules=wayland,waylandgtk \ + -Dcolord=yes \ + -Dcloudproviders=true \ + -Dgtk_doc=true \ + -Dinstalled_tests=true \ + -Dman=true \ + -Dtracker3=true \ + -Dxinerama=yes \ +%meson_build + +%install +%meson_install + +%find_lang gtk30 +%find_lang gtk30-properties + +(cd $RPM_BUILD_ROOT%{_bindir} + mv gtk-query-immodules-3.0 gtk-query-immodules-3.0-%{__isa_bits} +) + +echo ".so man1/gtk-query-immodules-3.0.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk-query-immodules-3.0-%{__isa_bits}.1 + +%if !0%{?with_broadway} +rm $RPM_BUILD_ROOT%{_mandir}/man1/broadwayd.1* +%endif + +touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache + +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0 +mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules +mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/immodules + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop + +%transfiletriggerin -- %{_libdir}/gtk-3.0/3.0.0/immodules +gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : + +%transfiletriggerpostun -- %{_libdir}/gtk-3.0/3.0.0/immodules +gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : + +%files -f gtk30.lang +%license COPYING +%doc AUTHORS NEWS README +%{_bindir}/gtk-query-immodules-3.0* +%{_bindir}/gtk-launch +%{_libdir}/libgtk-3.so.* +%{_libdir}/libgdk-3.so.* +%{_libdir}/libgailutil-3.so.* +%dir %{_libdir}/gtk-3.0 +%dir %{_libdir}/gtk-3.0/%{bin_version} +%dir %{_libdir}/gtk-3.0/%{bin_version}/immodules +%{_libdir}/gtk-3.0/%{bin_version}/printbackends +%{_libdir}/gtk-3.0/modules +%{_libdir}/gtk-3.0/immodules +%{_datadir}/themes/Default +%{_datadir}/themes/Emacs +%{_libdir}/girepository-1.0 +%ghost %{_libdir}/gtk-3.0/%{bin_version}/immodules.cache +%{_mandir}/man1/gtk-query-immodules-3.0* +%{_mandir}/man1/gtk-launch.1* +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml +%{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml +%dir %{_datadir}/gtk-3.0 +%{_datadir}/gtk-3.0/emoji/ +%if 0%{?with_broadway} +%{_bindir}/broadwayd +%{_mandir}/man1/broadwayd.1* +%endif + +%files -n gtk-update-icon-cache +%license COPYING +%{_bindir}/gtk-update-icon-cache +%{_mandir}/man1/gtk-update-icon-cache.1* + +%files immodules +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-cedilla.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-am-et.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-cyrillic-translit.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-inuktitut.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-ipa.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-multipress.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-thai.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-ti-er.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-ti-et.so +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-viqr.so +%if 0%{?with_broadway} +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-broadway.so +%endif +%config(noreplace) %{_sysconfdir}/gtk-3.0/im-multipress.conf + +%files immodule-xim +%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-xim.so + +%files devel -f gtk30-properties.lang +%{_libdir}/lib*.so +%{_includedir}/* +%{_datadir}/aclocal/* +%{_libdir}/pkgconfig/* +%{_bindir}/gtk3-demo +%{_bindir}/gtk3-icon-browser +%{_bindir}/gtk-builder-tool +%{_bindir}/gtk-encode-symbolic-svg +%{_bindir}/gtk-query-settings +%{_datadir}/applications/gtk3-demo.desktop +%{_datadir}/applications/gtk3-icon-browser.desktop +%{_datadir}/applications/gtk3-widget-factory.desktop +%{_datadir}/icons/hicolor/*/apps/gtk3-demo.png +%{_datadir}/icons/hicolor/*/apps/gtk3-demo-symbolic.symbolic.png +%{_datadir}/icons/hicolor/*/apps/gtk3-widget-factory.png +%{_datadir}/icons/hicolor/*/apps/gtk3-widget-factory-symbolic.symbolic.png +%{_bindir}/gtk3-demo-application +%{_bindir}/gtk3-widget-factory +%{_datadir}/gettext/ +%{_datadir}/gir-1.0 +%{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml +%{_datadir}/gtk-3.0/gtkbuilder.rng +%{_datadir}/gtk-3.0/valgrind/ +%{_mandir}/man1/gtk3-demo.1* +%{_mandir}/man1/gtk3-demo-application.1* +%{_mandir}/man1/gtk3-icon-browser.1* +%{_mandir}/man1/gtk3-widget-factory.1* +%{_mandir}/man1/gtk-builder-tool.1* +%{_mandir}/man1/gtk-encode-symbolic-svg.1* +%{_mandir}/man1/gtk-query-settings.1* + +%files devel-docs +%{_datadir}/gtk-doc + +%files tests +%{_libexecdir}/installed-tests/ +%{_datadir}/installed-tests/ + +%changelog +* Mon Apr 11 2022 Chunmei Xu - 3.24.33-1 +- init from upstream +- fix build failed with array-bound error