%if 0%{?fedora} %global with_broadway 1 %endif %global glib2_version 2.66.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.25 %global wayland_version 1.20.0 %global epoxy_version 1.4 %global bin_version 4.0.0 # Filter provides for private modules %global __provides_exclude_from ^%{_libdir}/gtk-4.0 Name: gtk4 Version: 4.7.2 Release: 2%{?dist} 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 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 BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: docbook-style-xsl BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen BuildRequires: meson BuildRequires: python3-gobject BuildRequires: pkgconfig(avahi-gobject) BuildRequires: pkgconfig(cairo) >= %{cairo_version} BuildRequires: pkgconfig(cairo-gobject) >= %{cairo_version} 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(graphene-gobject-1.0) BuildRequires: pkgconfig(gstreamer-player-1.0) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: pkgconfig(rest-0.7) BuildRequires: pkgconfig(sysprof-4) BuildRequires: pkgconfig(sysprof-capture-4) 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(xcomposite) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xrender) BuildRequires: /usr/bin/rst2man # 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: cairo%{?_isa} >= %{cairo_version} Requires: cairo-gobject%{?_isa} >= %{cairo_version} Requires: glib2%{?_isa} >= %{glib2_version} Requires: libepoxy%{?_isa} >= %{epoxy_version} Requires: libwayland-client%{?_isa} >= %{wayland_version} Requires: libwayland-cursor%{?_isa} >= %{wayland_version} Requires: pango%{?_isa} >= %{pango_version} # required to support all the different image formats Requires: gdk-pixbuf2-modules%{?_isa} # make sure we have a reasonable gsettings backend Recommends: dconf%{?_isa} %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 4 of GTK. %package devel Summary: Development files for GTK Requires: gtk4%{?_isa} = %{version}-%{release} %description devel This package contains the libraries and header files that are needed for writing applications with version 4 of the GTK widget toolkit. %package devel-docs Summary: Developer documentation for GTK BuildArch: noarch Requires: gtk4 = %{version}-%{release} %description devel-docs This package contains developer documentation for version 4 of the GTK widget toolkit. %package devel-tools Summary: Developer tools for GTK Requires: gtk4%{?_isa} = %{version}-%{release} %description devel-tools This package contains helpful applications for developers using GTK. %prep %autosetup -p1 -n gtk-%{version} %build export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT %optflags' %meson \ %if 0%{?with_broadway} -Dbroadway-backend=true \ %endif -Dsysprof=enabled \ -Dtracker=enabled \ -Dcolord=enabled \ -Dgtk_doc=true \ -Dman-pages=true \ -Dinstall-tests=false %meson_build %install %meson_install %find_lang gtk40 %if !0%{?with_broadway} rm $RPM_BUILD_ROOT%{_mandir}/man1/gtk4-broadwayd.1* %endif mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-4.0 mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-4.0/modules install -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/gtk-4.0/ %check desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %files -f gtk40.lang %license COPYING %doc AUTHORS NEWS README.md %{_bindir}/gtk4-launch %{_bindir}/gtk4-update-icon-cache %{_libdir}/libgtk-4.so.1* %dir %{_libdir}/gtk-4.0 %dir %{_libdir}/gtk-4.0/%{bin_version} %{_libdir}/gtk-4.0/%{bin_version}/media/ %{_libdir}/gtk-4.0/%{bin_version}/printbackends/ %{_libdir}/gtk-4.0/modules %{_libdir}/girepository-1.0 %{_mandir}/man1/gtk4-launch.1* %{_mandir}/man1/gtk4-update-icon-cache.1* %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.ColorChooser.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.Debug.gschema.xml %{_datadir}/glib-2.0/schemas/org.gtk.gtk4.Settings.EmojiChooser.gschema.xml %{_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 %if 0%{?with_broadway} %{_bindir}/gtk4-broadwayd %{_mandir}/man1/gtk4-broadwayd.1* %endif %files devel %{_libdir}/libgtk-4.so %{_includedir}/* %{_libdir}/pkgconfig/* %{_bindir}/gtk4-builder-tool %{_bindir}/gtk4-encode-symbolic-svg %{_bindir}/gtk4-query-settings %{_datadir}/gettext/ %{_datadir}/gir-1.0 %{_datadir}/gtk-4.0/gtk4builder.rng %{_datadir}/gtk-4.0/valgrind/ %{_mandir}/man1/gtk4-builder-tool.1* %{_mandir}/man1/gtk4-encode-symbolic-svg.1* %{_mandir}/man1/gtk4-query-settings.1* %files devel-docs %{_datadir}/doc/gdk4/ %{_datadir}/doc/gdk4-wayland/ %{_datadir}/doc/gdk4-x11/ %{_datadir}/doc/gsk4/ %{_datadir}/doc/gtk4/ %files devel-tools %{_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}/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}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml %{_metainfodir}/org.gtk.gtk4.NodeEditor.appdata.xml %{_metainfodir}/org.gtk.Demo4.appdata.xml %{_metainfodir}/org.gtk.IconBrowser4.appdata.xml %{_metainfodir}/org.gtk.PrintEditor4.appdata.xml %{_metainfodir}/org.gtk.WidgetFactory4.appdata.xml %{_mandir}/man1/gtk4-demo.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 * Tue Aug 16 2022 Michael Catanzaro - 4.7.2-2 - Enable font hinting (#1943794) * Thu Aug 11 2022 Kalev Lember - 4.7.2-1 - Update to 4.7.2 * Mon Jul 25 2022 Kalev Lember - 4.7.1-3 - Work around broken rpm pkg-config dep extraction * Thu Jul 21 2022 Fedora Release Engineering - 4.7.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Fri Jul 15 2022 Kalev Lember - 4.7.1-1 - Update to 4.7.1 * Mon May 09 2022 David King - 4.7.0-1 - Update to 4.7.0 * Thu Apr 28 2022 David King - 4.6.3-1 - Update to 4.6.3 * Tue Apr 26 2022 Adam Williamson - 4.6.2-3 - Fix from Benjamin for gtk_widget_measure infinite loop issue (#2071228) * Thu Mar 31 2022 Adam Williamson - 4.6.2-2 - Backport MR #4605 to fix portal save/load dialogs on X (#2068041) * Sat Mar 19 2022 David King - 4.6.2-1 - Update to 4.6.2 * Wed Mar 02 2022 Adam Williamson - 4.6.1-2 - Backport MR#4366 to fix launching control-center panes from overview * Mon Feb 14 2022 David King - 4.6.1-1 - Update to 4.6.1 * Thu Jan 20 2022 Fedora Release Engineering - 4.6.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Dec 31 2021 David King - 4.6.0-1 - Update to 4.6.0 * Fri Dec 17 2021 David King - 4.5.1-1 - Update to 4.5.1 * Mon Nov 01 2021 Kalev Lember - 4.5.0-2 - Build -devel-docs as noarch (#2018991) * Mon Nov 01 2021 Kalev Lember - 4.5.0-1 - Update to 4.5.0 * Mon Sep 27 2021 Kalev Lember - 4.4.0-4 - Build with tracker support enabled (#1908874) * Mon Sep 20 2021 Kalev Lember - 4.4.0-3 - Stop creating empty theming-engines directory as it's no longer used * Thu Sep 02 2021 Michael Catanzaro - 4.4.0-2 - Split developer tools out to devel-tools subpackage * Mon Aug 23 2021 Kalev Lember - 4.4.0-1 - Update to 4.4.0 - Switch to using new gi-docgen package instead of the bundled copy - Remove cloudproviders support again, as per upstream suggestion * Thu Jul 22 2021 Fedora Release Engineering - 4.2.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Wed May 05 2021 Kalev Lember - 4.2.1-1 - Update to 4.2.1 * Mon May 03 2021 Marc-André Lureau - 4.2.0-5 - Re-enable documentation. * Tue Apr 20 2021 Kalev Lember - 4.2.0-4 - Enable cloudproviders support (#1951539) * Tue Apr 06 2021 Kalev Lember - 4.2.0-3 - Backport upstream fix for typing apostrophes / single quotes (#1946133) * Thu Apr 01 2021 Kalev Lember - 4.2.0-2 - Disable vulkan renderer * Tue Mar 30 2021 Kalev Lember - 4.2.0-1 - Update to 4.2.0 * Fri Mar 26 2021 Kalev Lember - 4.1.2-2 - Rebuild to fix sysprof-capture symbols leaking into libraries consuming it * Mon Mar 15 2021 Kalev Lember - 4.1.2-1 - Update to 4.1.2 - Disable gtk-doc support as we don't have gi-docgen in Fedora yet - Remove old obsoletes * Wed Feb 24 2021 Kalev Lember - 4.1.1-1 - Update to 4.1.1 - Enable sysprof support * Fri Feb 19 2021 Kalev Lember - 4.1.0-3 - Backport upstream patch to fix a settings schema loading issue on Wayland * Mon Feb 01 2021 Kalev Lember - 4.1.0-2 - Disable asserts and cast checks * Sun Jan 31 2021 Kalev Lember - 4.1.0-1 - Update to 4.1.0 * Tue Jan 26 2021 Fedora Release Engineering - 4.0.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Tue Jan 19 2021 Kalev Lember - 4.0.2-2 - Avoid rebuilding stylesheets with sassc during the build * Tue Jan 19 2021 Kalev Lember - 4.0.2-1 - Update to 4.0.2 * Sat Jan 09 2021 Kalev Lember - 4.0.1-1 - Update to 4.0.1 * Sat Jan 09 2021 Kalev Lember - 4.0.0-3 - Fix vulkan reference in pc file * Tue Dec 22 14:13:09 +04 2020 Marc-André Lureau - 4.0.0-2 - Add back gtk4-devel-docs * Wed Dec 16 2020 Kalev Lember - 4.0.0-1 - Update to 4.0.0 - Tighten soname globs * Fri Dec 11 2020 Kalev Lember - 3.99.5-1 - Update to 3.99.5 * Wed Dec 09 2020 Jeff Law - 3.99.4-3 - Avoid diagnostics for gcc-11 false positive out of bounds accesses * Sun Nov 15 2020 Jeff Law - 3.99.4-2 - Fix bogus volatile caught by gcc-11 * Thu Nov 5 2020 Kalev Lember - 3.99.4-1 - Update to 3.99.4 * Fri Oct 16 2020 Kalev Lember - 3.99.3-1 - Update to 3.99.3 * Thu Oct 01 2020 Kalev Lember - 3.99.2-2 - Update required pango and glib2 versions * Tue Sep 29 2020 Kalev Lember - 3.99.2-1 - Update to 3.99.2 * Mon Sep 28 2020 Jeff Law - 3.99.1-2 - Re-enable LTO as upstream GCC target/96939 has been fixed * Thu Sep 03 2020 Kalev Lember - 3.99.1-1 - Update to 3.99.1 - Drop wayland build conditionals * Mon Aug 17 2020 Jeff Law - 3.99.0-2 - Disable LTO on armv7hl * Sat Aug 01 2020 Kalev Lember - 3.99.0-1 - Update to 3.99.0 * Sat Aug 01 2020 Fedora Release Engineering - 3.98.5-3 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Tue Jul 28 2020 Fedora Release Engineering - 3.98.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Sun Jun 07 2020 Kalev Lember - 3.98.5-1 - Update to 3.98.5 * Tue May 19 2020 Kalev Lember - 3.98.4-1 - Update to 3.98.4 * Tue Apr 21 2020 Kalev Lember - 3.98.3-1 - Update to 3.98.3 - Temporarily disable built documentation as we don't have new enough gtk-doc * Wed Apr 01 2020 Kalev Lember - 3.98.2-1 - Update to 3.98.2 * Sun Mar 22 2020 Kalev Lember - 3.98.1-1 - Update to 3.98.1 * Thu Mar 12 2020 Kalev Lember - 3.98.0-2 - Install missing gtkemojichooser.h (#1806509) * Tue Feb 11 2020 Kalev Lember - 3.98.0-1 - Update to 3.98.0 - Use https for source URLs * Wed Jan 29 2020 Fedora Release Engineering - 3.96.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Thu Jul 25 2019 Fedora Release Engineering - 3.96.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Tue May 07 2019 Kalev Lember - 3.96.0-1 - Update to 3.96.0 - Use GTK instead of GTK+ in descriptions - Don't ship installed tests as they are currently broken * Fri Feb 01 2019 Fedora Release Engineering - 3.94.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Mon Oct 01 2018 Kalev Lember - 3.94.0-1 - Update to 3.94.0 - Remove and obsolete immodules subpackages - Build new gstreamer media backend * Fri Jul 13 2018 Fedora Release Engineering - 3.92.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Mar 07 2018 Adam Williamson - 3.92.1-3 - Rebuild to fix GCC 8 mis-compilation See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64") * Wed Feb 07 2018 Fedora Release Engineering - 3.92.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Thu Nov 02 2017 Kalev Lember - 3.92.1-1 - Update to 3.92.1 - Enable installed tests * Tue Aug 08 2017 Kalev Lember - 3.91.2-1 - Update to 3.91.2 * Thu Jul 20 2017 Kalev Lember - 3.91.1-1 - Update to 3.91.1 * Wed Jun 14 2017 Kalev Lember - 3.91.0-2 - Disable installed tests due to file conflicts between gtk3-tests and gtk4-tests * Wed Jun 14 2017 Kalev Lember - 3.91.0-1 - Initial Fedora packaging