gtk3/gtk3.spec
2020-06-22 14:34:21 +08:00

265 lines
8.8 KiB
RPMSpec

#Global macro or variable
%define atk_version 2.15.1
%define glib2_version 2.49.4
%define cairo_version 1.14.0
%define pango_version 1.41.0
%define gdk_pixbuf_version 2.30.0
%define epoxy_version 1.4
%define wayland_version 1.9.91
%define wayland_protocols_version 1.12
%define bin_version 3.0.0
%define enable_immodules_package 0
%global __provides_exclude_from ^%{_libdir}/gtk-3.0
#Basic Information
Name: gtk3
Version: 3.24.20
Release: 3
Summary: GTK+ graphical user interface library
License: LGPLv2+
URL: http://www.gtk.org
Source0: http://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
#Dependency
BuildRequires: pkgconfig(atk) >= %{atk_version} pkgconfig(atk-bridge-2.0)
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(cairo) >= %{cairo_version} pkgconfig(cairo-gobject) >= %{cairo_version}
BuildRequires: pkgconfig(pango) >= %{pango_version} pkgconfig(gdk-pixbuf-2.0) >= %{gdk_pixbuf_version}
BuildRequires: pkgconfig(xi) pkgconfig(xrandr) pkgconfig(xinerama) pkgconfig(xcomposite) pkgconfig(xdamage)
BuildRequires: pkgconfig(xkbcommon) pkgconfig(epoxy) >= %{epoxy_version}
BuildRequires: wayland-devel >= %{wayland_version} wayland-protocols-devel >= %{wayland_protocols_version}
BuildRequires: pkgconfig(colord) pkgconfig(json-glib-1.0) pkgconfig(rest-0.7)
BuildRequires: gettext gtk-doc cups-devel libtool desktop-file-utils
Requires: adwaita-icon-theme hicolor-icon-theme
Requires: atk >= %{atk_version} glib2 >= %{glib2_version} pango >= %{pango_version}
Requires: cairo >= %{cairo_version} cairo-gobject >= %{cairo_version}
Requires: libepoxy >= %{epoxy_version}
Requires: libwayland-client >= %{wayland_version} libwayland-cursor >= %{wayland_version}
Requires: gdk-pixbuf2-modules libXrandr
Recommends: dconf
Obsoletes: adwaita-gtk3-theme < 3.13.3
Provides: adwaita-gtk3-theme = %{version}-%{release}
Obsoletes: gtk3-engines <= 2.91.5-5.fc15
Obsoletes: gtk-solidity-engine < 0.4.1-9
Obsoletes: oxygen-gtk3 < 2:1.4.1
%description
GTK+ is an object-oriented widget toolkit written in the programming language C;
it has a C-based object-oriented architecture that allows for maximum
flexibility. The GTK+ library contains a set of graphical control elements
(widgets)for creating graphical user interfaces. This package contains version 3
of GTK+.
%if 0%{?enable_immodules_package}
%package immodules
Summary: Input methods for GTK+
Requires: gtk3 = %{version}-%{release}
Requires: gtk2-immodules
%description immodules
The gtk3-immodules package contains standalone input methods that
are shipped as part of GTK+ 3.
%endif
%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+3
Requires: gtk3 = %{version}-%{release}
Obsoletes: gtk3-tests < %{version}-%{release}
Provides: gtk3-tests = %{version}-%{release}
Obsoletes: gtk3-engines-devel <= 2.91.5-5
%description devel
This package contains the libraries, header files other development files for
GTK+ 3.
%package help
Summary: Documents for gtk3
Requires: gtk3 = %{version}-%{release}
Obsoletes: gtk3-devel-docs < %{version}-%{release}
Provides: gtk3-devel-docs = %{version}-%{release}
%description help
This package contains man pages and other related documents for gtk3.
#Build sections
%prep
%autosetup -n gtk+-%{version} -p1
%build
export CFLAGS='-fno-strict-aliasing %optflags'
(if ! test -x configure; then NOCONFIGURE=1 ./autogen.sh; CONFIGFLAGS=--enable-gtk-doc; fi;
%configure $CONFIGFLAGS \
--enable-xkb \
--enable-xinerama \
--enable-xrandr \
--enable-xfixes \
--enable-xcomposite \
--enable-xdamage \
--enable-x11-backend \
--enable-wayland-backend \
--enable-broadway-backend \
--enable-colord \
--enable-installed-tests \
--with-included-immodules=wayland
)
# fight unused direct deps
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make %{?_smp_mflags}
%install
%make_install RUN_QUERY_IMMODULES_TEST=false
%find_lang gtk30
%find_lang gtk30-properties
(cd $RPM_BUILD_ROOT%{_bindir}
mv gtk-query-immodules-3.0 gtk-query-immodules-3.0-64
)
echo ".so man1/gtk-query-immodules-3.0.1" > $RPM_BUILD_ROOT%{_mandir}/man1/gtk-query-immodules-3.0-64.1
# rm unpackaged files
find $RPM_BUILD_ROOT -name '*.la' -delete
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
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/theming-engines
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
%transfiletriggerin -- %{_libdir}/gtk-3.0/3.0.0/immodules
gtk-query-immodules-3.0-64 --update-cache &>/dev/null || :
%transfiletriggerpostun -- %{_libdir}/gtk-3.0/3.0.0/immodules
gtk-query-immodules-3.0-64 --update-cache &>/dev/null || :
#Install and uninstall scripts
%pre
%preun
%post
%postun
#Files list
%files -f gtk30.lang
%license COPYING
%{_bindir}/broadwayd
%{_bindir}/gtk-launch
%{_bindir}/gtk-query-immodules-3.0*
%{_bindir}/gtk-update-icon-cache
%{_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 %{_datadir}/gtk-3.0
%{_libdir}/gtk-3.0/%{bin_version}/theming-engines
%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
%{_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
%if ! 0%{?enable_immodules_package}
%exclude %{_libdir}/gtk-3.0/%{bin_version}/immodules/*
%exclude %{_sysconfdir}/gtk-3.0/im-multipress.conf
%endif
%if 0%{?enable_immodules_package}
%files immodules
%config(noreplace) %{_sysconfdir}/gtk-3.0/im-multipress.conf
%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-am-et.so
%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-broadway.so
%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-cedilla.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
%endif
%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}/gtk-3.0/valgrind/gtk.supp
%{_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}/gtk-3.0/gtkbuilder.rng
%{_datadir}/gir-1.0
%{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
%{_libexecdir}/installed-tests/gtk+
%{_datadir}/installed-tests
%files help
%doc AUTHORS NEWS README
%{_datadir}/gtk-doc
%{_mandir}/man1/broadwayd.1*
%{_mandir}/man1/gtk-builder-tool.1*
%{_mandir}/man1/gtk-encode-symbolic-svg.1*
%{_mandir}/man1/gtk-launch.1*
%{_mandir}/man1/gtk-query-immodules-3.0*
%{_mandir}/man1/gtk-query-settings.1*
%{_mandir}/man1/gtk-update-icon-cache.1*
%{_mandir}/man1/gtk3-demo.1*
%{_mandir}/man1/gtk3-demo-application.1*
%{_mandir}/man1/gtk3-icon-browser.1*
%{_mandir}/man1/gtk3-widget-factory.1*
%changelog
* Sat Jun 20 2020 wangye <wangye70@huawei.com> - 3.24.1-4
- Package echancemen
* Sat Mar 14 2020 songnannan <songnannan2@huawei.com> - 3.24.1-3
- disable package
* Wed Sep 18 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.24.1-2
- Package init