diff --git a/gtk4.spec b/gtk4.spec index ec54f3c0c1d69c9150fac3c8e8054b7524dfa026..5b409cd537a8dbf9f9d4fe4932344965ddc2eb40 100644 --- a/gtk4.spec +++ b/gtk4.spec @@ -1,130 +1,102 @@ -%define anolis_release 2 +%define anolis_release 3 + +%global __provides_exclude_from ^%{_libdir}/gtk-4.0 %global glib2_version 2.72.0 %global pango_version 1.50.6 %global cairo_version 1.14.0 +%global epoxy_version 1.4 +%global bin_version 4.0.0 %global gdk_pixbuf_version 2.30.0 %global wayland_protocols_version 1.25 %global wayland_version 1.21.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 + %define url_ver %(echo %{version}|cut -d. -f1,2) -Name: gtk4 -Version: 4.10.1 -Release: %{anolis_release}%{?dist} -Summary: GTK graphical user interface library - -License: LGPLv2+ -URL: https://www.gtk.org -Source0: https://download.gnome.org/sources/gtk/%{url_ver}/gtk-%{version}.tar.xz - -BuildRequires: sassc -BuildRequires: cups-devel -BuildRequires: desktop-file-utils -BuildRequires: docbook-style-xsl -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: gettext -BuildRequires: gi-docgen -BuildRequires: meson >= 0.60.0 -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(fribidi) >= 1.0.6 -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) >= 1.10.0 -BuildRequires: pkgconfig(gstreamer-player-1.0) -BuildRequires: pkgconfig(harfbuzz) >= 2.6.0 -BuildRequires: pkgconfig(json-glib-1.0) -BuildRequires: pkgconfig(libjpeg) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(libtiff-4) -BuildRequires: pkgconfig(pango) >= %{pango_version} -BuildRequires: pkgconfig(sysprof-4) >= 3.38.0 -BuildRequires: pkgconfig(sysprof-capture-4) >= 3.38.0 -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) >= 0.2.0 -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 >= %{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: pango >= %{pango_version} - -# required to support all the different image formats -Requires: gdk-pixbuf2-modules - -# make sure we have a reasonable gsettings backend +Name: gtk4 +Version: 4.10.1 +Release: %{anolis_release}%{?dist} +Summary: GTK graphical user interface library +License: LGPLv2+ +URL: https://www.gtk.org +Source0: https://download.gnome.org/sources/gtk/%{url_ver}/gtk-%{version}.tar.xz + + +BuildRequires: gcc gcc-c++ autoconf automake meson >= 0.60.0 +BuildRequires: sassc cups-devel desktop-file-utils docbook-style-xsl +BuildRequires: gettext gi-docgen python3-gobject +BuildRequires: pkgconfig(avahi-gobject) pkgconfig(egl) pkgconfig(colord) +BuildRequires: pkgconfig(cairo) >= %{cairo_version} pkgconfig(cairo-gobject) >= %{cairo_version} +BuildRequires: pkgconfig(epoxy) pkgconfig(fribidi) >= 1.0.6 pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version} +BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} pkgconfig(pango) >= %{pango_version} +BuildRequires: pkgconfig(graphene-gobject-1.0) >= 1.10.0 pkgconfig(gstreamer-player-1.0) +BuildRequires: pkgconfig(harfbuzz) >= 2.6.0 pkgconfig(json-glib-1.0) +BuildRequires: pkgconfig(libjpeg) pkgconfig(libpng) pkgconfig(libtiff-4) +BuildRequires: pkgconfig(sysprof-4) >= 3.38.0 pkgconfig(sysprof-capture-4) >= 3.38.0 +BuildRequires: pkgconfig(tracker-sparql-3.0) pkgconfig(wayland-egl) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-client) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-cursor) >= %{wayland_version} +BuildRequires: pkgconfig(wayland-protocols) >= %{wayland_protocols_version} +BuildRequires: pkgconfig(xcomposite) pkgconfig(xcursor) pkgconfig(xdamage) +BuildRequires: pkgconfig(xfixes) pkgconfig(xi) pkgconfig(xinerama) +BuildRequires: pkgconfig(xkbcommon) >= 0.2.0 +BuildRequires: pkgconfig(xrandr) pkgconfig(xrender) +BuildRequires: /usr/bin/rst2man + +Requires: adwaita-icon-theme hicolor-icon-theme gtk-update-icon-cache + +Requires: cairo >= %{cairo_version} cairo-gobject >= %{cairo_version} gdk-pixbuf2-modules +Requires: glib2 >= %{glib2_version} libepoxy >= %{epoxy_version} pango >= %{pango_version} +Requires: libwayland-client >= %{wayland_version} libwayland-cursor >= %{wayland_version} + Recommends: dconf %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. - +GTK is a library for creating graphical user interfaces. It works on many UNIX-like +platforms, Windows, and macOS. GTK is released under the terms of the GNU Library +General Public License, which allows for flexible licensing of client applications. +GTK has a C-based, object-oriented architecture that allows for maximum flexibility +and portability; there are bindings for many other languages, including C++, Objective-C, +Guile/Scheme, Perl, Python, JavaScript, Rust, Go, TOM, Ada95, Free Pascal, and Eiffel. This package contains version 4 of GTK. + + +%package doc +Summary: Documentary files for GTK +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +This package contains developer documentation for the GTK4. %package devel -Summary: Development files for GTK -Requires: gtk4 = %{version}-%{release} +Summary: Development files for GTK +Requires: %{name} = %{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. +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} +Summary: Developer documentation for GTK +Requires: %{name} = %{version}-%{release} +BuildArch: noarch %description devel-docs -This package contains developer documentation for version 4 of the GTK -widget toolkit. +This package contains developer documentation for version 4 of the GTK widget toolkit. %package devel-tools -Summary: Developer tools for GTK -Requires: gtk4 = %{version}-%{release} +Summary: Developer tools for GTK +Requires: %{name} = %{version}-%{release} %description devel-tools This package contains helpful applications for developers using GTK. - + + %prep -%autosetup -p1 -n gtk-%{version} +%autosetup -n gtk-%{version} -p1 %build export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT %optflags' @@ -132,12 +104,8 @@ export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT % %if 0%{?with_broadway} -Dbroadway-backend=true \ %endif - -Dsysprof=enabled \ - -Dtracker=enabled \ - -Dcolord=enabled \ - -Dgtk_doc=true \ - -Dman-pages=true - + -Dsysprof=enabled -Dtracker=enabled -Dcolord=enabled \ + -Dgtk_doc=true -Dman-pages=true %meson_build %install @@ -145,89 +113,101 @@ export CFLAGS='-fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT % %find_lang gtk40 %if !0%{?with_broadway} -rm $RPM_BUILD_ROOT%{_mandir}/man1/gtk4-broadwayd.1* +rm %{buildroot}%{_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 +mkdir -p %{buildroot}%{_sysconfdir}/gtk-4.0 +mkdir -p %{buildroot}%{_libdir}/gtk-4.0/modules + +%generate_compatibility_deps + %files -f gtk40.lang -%license COPYING -%doc AUTHORS NEWS README.md +%dir %{abidir} +%dir %{_libdir}/gtk-4.0 +%dir %{_libdir}/gtk-4.0/%{bin_version} +%dir %{_datadir}/gtk-4.0 +%{_datadir}/gtk-4.0/emoji/ +%{_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 %{_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/modules %{_libdir}/gtk-4.0/%{bin_version}/media/ %{_libdir}/gtk-4.0/%{bin_version}/printbackends/ -%{_libdir}/gtk-4.0/modules %{_libdir}/girepository-1.0 +%{abidir}/*.dump +%{abidir}/*-option.list %{_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/ +%license COPYING %if 0%{?with_broadway} %{_bindir}/gtk4-broadwayd %{_mandir}/man1/gtk4-broadwayd.1* %endif + +%files doc +%doc README.md AUTHORS NEWS %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/ +%{_datadir}/gtk-4.0/gtk4builder.rng +%{_bindir}/gtk4-builder-tool +%{_bindir}/gtk4-query-settings +%{_bindir}/gtk4-encode-symbolic-svg +%{_libdir}/libgtk-4.so +%{_libdir}/pkgconfig/* %{_mandir}/man1/gtk4-builder-tool.1* -%{_mandir}/man1/gtk4-encode-symbolic-svg.1* %{_mandir}/man1/gtk4-query-settings.1* +%{_mandir}/man1/gtk4-encode-symbolic-svg.1* %files devel-docs +%{_datadir}/doc/gtk4/ %{_datadir}/doc/gdk4/ -%{_datadir}/doc/gdk4-wayland/ -%{_datadir}/doc/gdk4-x11/ %{_datadir}/doc/gsk4/ -%{_datadir}/doc/gtk4/ +%{_datadir}/doc/gdk4-x11/ +%{_datadir}/doc/gdk4-wayland/ %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}/glib-2.0/schemas/org.gtk.Demo4.gschema.xml %{_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}/applications/org.gtk.PrintEditor4.desktop +%{_datadir}/applications/org.gtk.IconBrowser4.desktop %{_datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.svg +%{_datadir}/icons/hicolor/*/apps/org.gtk.gtk4.NodeEditor*.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 +%{_datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.svg +%{_bindir}/gtk4-demo +%{_bindir}/gtk4-demo-application +%{_bindir}/gtk4-node-editor +%{_bindir}/gtk4-print-editor +%{_bindir}/gtk4-widget-factory +%{_bindir}/gtk4-icon-browser %{_metainfodir}/org.gtk.IconBrowser4.appdata.xml %{_metainfodir}/org.gtk.PrintEditor4.appdata.xml +%{_metainfodir}/org.gtk.gtk4.NodeEditor.appdata.xml %{_metainfodir}/org.gtk.WidgetFactory4.appdata.xml +%{_metainfodir}/org.gtk.Demo4.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-icon-browser.1* +%{_mandir}/man1/gtk4-demo-application.1* %{_mandir}/man1/gtk4-widget-factory.1* + %changelog +* Fri Apr 14 2023 chen_yu_ao - 4.10.1-3 +- change spec file format + * Tue Apr 04 2023 Chunmei Xu - 4.10.1-2 - remove unnecessary BuildRequires