From 6acd26fe3766f62803f0e77a8a6966d33eb18eca Mon Sep 17 00:00:00 2001 From: ZiyangZhang Date: Fri, 14 Apr 2023 14:18:33 +0800 Subject: [PATCH] Optimize spec file Signed-off-by: ZiyangZhang --- gtk3.spec | 222 ++++++++++++++++++++++++++---------------------------- 1 file changed, 106 insertions(+), 116 deletions(-) diff --git a/gtk3.spec b/gtk3.spec index da5f93e..d777ee8 100644 --- a/gtk3.spec +++ b/gtk3.spec @@ -1,16 +1,5 @@ -%define anolis_release 1 +%define anolis_release 2 %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 @@ -25,26 +14,20 @@ URL: https://gtk.org Source0: https://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz Patch0: 0001-fix-build-failed-with-array-bound.patch -BuildRequires: pkgconfig(atk) >= %{atk_version} +BuildRequires: desktop-file-utils, gettext, gtk-doc, meson, cmake > 3.3.0 +BuildRequires: cups-devel + +BuildRequires: pkgconfig(atk) >= 2.35.1 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(cairo) >= 1.14.0 +BuildRequires: pkgconfig(cairo-gobject) >= 1.14.0 +BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.0 +BuildRequires: pkgconfig(glib-2.0) >= 2.57.2 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(pango) >= 1.41.0 BuildRequires: pkgconfig(xi) -BuildRequires: pkgconfig(xrandr) >= %{xrandr_version} +BuildRequires: pkgconfig(xrandr) >= 1.5.0 BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xcursor) @@ -53,49 +36,61 @@ 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 +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(colord) +BuildRequires: pkgconfig(tracker-sparql-3.0) +BuildRequires: pkgconfig(wayland-client) >= 1.14.91 +BuildRequires: pkgconfig(wayland-cursor) >= 1.14.91 +BuildRequires: pkgconfig(wayland-egl) >= 1.14.91 +BuildRequires: pkgconfig(wayland-protocols) >= 1.17 +BuildRequires: pkgconfig(cloudproviders) +BuildRequires: pkgconfig(epoxy) + +Requires: adwaita-icon-theme, hicolor-icon-theme, gtk-update-icon-cache +Requires: atk >= 2.35.1 +Requires: cairo >= 1.14.0 +Requires: cairo-gobject >= 1.14.0 +Requires: glib2 >= 2.57.2 +Requires: libepoxy >= 1.4 +Requires: libwayland-client >= 1.14.91 +Requires: libwayland-cursor >= 1.14.91 +Requires: libXrandr >= 1.5.0 +Requires: pango >= 1.41.0 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. +GTK is a widget toolkit. Each user interface created by GTK consists of UI elements +known as widgets. The GTK programming interface is based on Object Orientation; +widgets are organized in a hierarchy of classes—for instance, the window widget +is also a specialised container, called a “bin”, that can hold at most one child +widget. A window will be able to use functions that pertain to the widget, container, +bin, and window classes. Each user interface is built by adding buttons, text labels, +input fields, drop down menus, and other widgets to a window. This package contains version 3 of GTK+. +%package devel +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 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: %{name} = %{version}-%{release} + +%description devel-docs +This package contains developer documentation for version 3 of the GTK+ +widget toolkit. + %package -n gtk-update-icon-cache Summary: Icon theme caching utility @@ -107,8 +102,7 @@ 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: %{name} = %{version}-%{release} Requires: gtk2-immodules %description immodules @@ -117,29 +111,11 @@ are shipped as part of GTK+ 3. %package immodule-xim Summary: XIM support for GTK+ -Requires: gtk3 = %{version}-%{release} +Requires: %{name} = %{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} @@ -148,6 +124,14 @@ Requires: %{name} = %{version}-%{release} The %{name}-tests package contains tests that can be used to verify the functionality of the installed %{name} package. +%package doc +Summary: Documentation files for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +The %{name}-doc package contains documentation files for %{name}. + %prep %autosetup -n gtk+-%{version} -p1 @@ -173,21 +157,21 @@ export CFLAGS='-fno-strict-aliasing %optflags' %find_lang gtk30 %find_lang gtk30-properties -(cd $RPM_BUILD_ROOT%{_bindir} +(cd %{buildroot}/%{_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 +echo ".so man1/gtk-query-immodules-3.0.1" > %{buildroot}/%{_mandir}/man1/gtk-query-immodules-3.0-%{__isa_bits}.1 %if !0%{?with_broadway} -rm $RPM_BUILD_ROOT%{_mandir}/man1/broadwayd.1* +rm %{buildroot}/%{_mandir}/man1/broadwayd.1* %endif -touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/immodules.cache +touch %{buildroot}/%{_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 +mkdir -p %{buildroot}/%{_sysconfdir}/gtk-3.0 +mkdir -p %{buildroot}/%{_libdir}/gtk-3.0/modules +mkdir -p %{buildroot}/%{_libdir}/gtk-3.0/immodules %generate_compatibility_deps @@ -200,7 +184,6 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : %files -f gtk30.lang %dir %{abidir} %license COPYING -%doc NEWS README.md %{_bindir}/gtk-query-immodules-3.0* %{_bindir}/gtk-launch %{_libdir}/libgtk-3.so.* @@ -238,32 +221,6 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : %{_mandir}/man1/broadwayd.1* %endif -%files -n gtk-update-icon-cache -%license COPYING -%{_bindir}/gtk-update-icon-cache -%{abidir}/gtk-update-icon-cache-option.list -%{_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 -%{abidir}/im-*.dump -%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}/* @@ -303,11 +260,44 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : %files devel-docs %{_datadir}/gtk-doc +%files -n gtk-update-icon-cache +%license COPYING +%{_bindir}/gtk-update-icon-cache +%{abidir}/gtk-update-icon-cache-option.list +%{_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 +%{abidir}/im-*.dump +%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 tests %{_libexecdir}/installed-tests/ %{_datadir}/installed-tests/ +%files doc +%doc NEWS README.md + + %changelog +* Tue Apr 11 2023 Ziyang Zhang -3.24.37-2 +- Optimize spec file + * Sun Mar 5 2023 Funda Wang - 3.24.37-1 - New version 3.24.37 -- Gitee