gtk3/gtk3.spec

287 lines
9.9 KiB
RPMSpec

#
# spec file for package gtk3 (Version 2.90.7)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2010 Dominique Leuenebrger, Amsterdam, Netherlands
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: gtk3
%define _name gtk+
Version: 2.90.7
Release: 1
# FIXME: 2.90.5 doesn't compile with parallel build (bgo#624304). Check if this is still true for later versions.
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3)
Url: http://www.gtk.org/
Group: System/Libraries
Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.90/%{_name}-%{version}.tar.bz2
Source1: README.SUSE
Source2: gtkrc
Source3: macros.gtk3
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE gtk3-GTK_PATH64.patch sbrabec@novell.com - 64-bit dual install. Use GTK_PATH64 environment variable instead of GTK_PATH
Patch0: gtk3-GTK_PATH64.patch
# PATCH-FIX-OPENSUSE gtk3-path-local.patch Search in /usr/local/%{_lib} by default. bnc369696 bgo534474
Patch1: gtk3-path-local.patch
# PATCH-FEATURE-UPSTREAM gtk3-bnc129753-localize-font-style-name.patch bnc129753 bgo319484 mfabian@novell.com - Translate the font styles in the GUI
Patch2: gtk3-bnc129753-localize-font-style-name.patch
# PATCH-FIX-UPSTREAM gtk3-bnc130159-bgo319483-async-font-selection.patch bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages
Patch3: gtk3-bnc130159-bgo319483-async-font-selection.patch
# PATCH-FIX-OPENSUSE gtk3-no-gtkapplication.patch vuntz@opensuse.org -- Drop GtkApplication. This is needed to keep gtk3 building against glib 2.25/2.26
Patch4: gtk3-no-gtkapplication.patch
BuildRequires: fdupes
BuildRequires: cups-devel
BuildRequires: gnome-patch-translation
BuildRequires: pkgconfig(atk)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.21.0
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%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 projects to complete application suites.
%package -n libgtk-3_0-0
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3)
Group: System/Libraries
# Provide %{name} to make the lang package installable
Provides: %{name} = %{version}
Requires(post): %{name}-tools
Requires(postun): %{name}-tools
# gtk+ can work without branding/data/translations. Built in defaults will be used then.
Recommends: %{name}-branding
Recommends: %{name}-data = %{version}
Recommends: %{name}-lang = %{version}
Recommends: gvfs
Recommends: hicolor-icon-theme
%description -n libgtk-3_0-0
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 projects to complete application suites.
%package tools
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3) -- Tools
Group: System/Libraries
%description tools
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 projects to complete application suites.
%package data
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3) -- Data Files
Group: System/Libraries
BuildArch: noarch
%description data
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 projects to complete application suites.
%package branding-upstream
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3) -- Branding Files
Group: System/Libraries
Provides: %{name}-branding = %{version}
Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(%{name}:branding-upstream)
%description branding-upstream
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 projects to complete application suites.
%package devel
License: LGPLv2.1+
Summary: The GTK+ toolkit library (version 3) -- Development Files
Group: Development/Libraries/X11
Requires: libgtk-3_0-0 = %{version}
# gtk-builder-convert needs this.
Requires: pyxml
%description devel
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 projects to complete application suites.
This package contains the development files for GTK+ 3.x.
%lang_package
%prep
%setup -q -n %{_name}-%{version}
gnome-patch-translation-prepare
%if "%_lib" == "lib64"
cp -a %{S:1} .
%patch0 -p1
%endif
%patch1 -p0
%patch2 -p1
%patch3 -p1
# Hack to make sure we're right to remove GtkApplication
test ! -f %{_includedir}/glib-2.0/gio/gapplication.h
%patch4 -p1
gnome-patch-translation-update
%build
%configure \
--disable-static \
--enable-man \
--with-xinput=xfree \
--enable-introspection
# building of gobject-introspection seems to fail with -j 'n>1' (see bgo#624304)
#%{__make} %{?_smp_mflags}
%{__make}
%install
%makeinstall
find %{buildroot}%{_libdir} -name '*.la' -delete -print
%find_lang gtk30
%find_lang gtk30-properties
install -m 644 -D %{S:2} %{buildroot}%{_sysconfdir}/gtk-3.0/gtkrc
touch %{buildroot}%{_libdir}/gtk-3.0/3.0.0/immodules.cache
%if "%_lib" == "lib64"
mv %{buildroot}%{_bindir}/gtk-query-immodules-3.0 %{buildroot}%{_bindir}/gtk-query-immodules-3.0-64
mv %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0.1 %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0-64.1
%endif
# Install rpm macros
mkdir -p %{buildroot}%{_sysconfdir}/rpm
cp %{S:3} %{buildroot}%{_sysconfdir}/rpm
%fdupes %{buildroot}%{_datadir}
%fdupes %{buildroot}%{_libdir}
%clean
rm -rf %{buildroot}
# Convenient %define for the scriplets
%if "%_lib" == "lib64"
%define GTK_QUERY_IMMODULES %{_bindir}/gtk-query-immodules-3.0-64
%else
%define GTK_QUERY_IMMODULES %{_bindir}/gtk-query-immodules-3.0
%endif
# In case libgtk-3_0-0 gets installed before
# gtk3-tools, we don't want to fail. So we make the call to
# gtk-query-immodules-3.0 dependent on the existence of
# the binary. This is why we also have a %post for
# gtk3-tools.
%post -n libgtk-3_0-0
/sbin/ldconfig
if test -f %{GTK_QUERY_IMMODULES}; then
%{GTK_QUERY_IMMODULES} --update-cache
fi
# If we install gtk3-tools for the first time,
# then we should run it in case libgtk-3_0-0 was installed
# first (ie, if %{_libdir}/gtk-3.0/3.0.0 already exists) which means
# gtk-query-immodules-3.0 couldn't run there.
%post tools
if [ $1 == 1 ]; then
test -d %{_libdir}/gtk-3.0/3.0.0
if test $? -eq 0; then
%{GTK_QUERY_IMMODULES} --update-cache
fi
fi
# No need to call gtk-query-immodules-3.0 in postun:
# - if it's an upgrade, it will have been called in post
# - if it's an uninstall, we don't care about this anymore
%postun -n libgtk-3_0-0 -p /sbin/ldconfig
%files -n libgtk-3_0-0
%defattr(-, root, root)
%doc AUTHORS COPYING README NEWS ChangeLog
%if "%_lib" == "lib64"
%doc README.SUSE
%endif
%config %{_sysconfdir}/gtk-3.0/im-multipress.conf
%dir %{_libdir}/gtk-3.0
%dir %{_libdir}/gtk-3.0/3.0.0
%{_libdir}/gtk-3.0/modules/
%{_libdir}/gtk-3.0/3.0.0/engines/
%{_libdir}/gtk-3.0/3.0.0/immodules/
%{_libdir}/gtk-3.0/3.0.0/printbackends/
%ghost %{_libdir}/gtk-3.0/3.0.0/immodules.cache
%{_libdir}/libgailutil-3.0.so.*
%{_libdir}/libgdk-x11-3.0.so.*
%{_libdir}/libgtk-x11-3.0.so.*
%{_libdir}/girepository-1.0/*.typelib
%files tools
%defattr(-,root,root)
%{_bindir}/gtk-query-immodules-3.0*
%{_bindir}/gtk-update-icon-cache-3.0
%{_mandir}/man1/gtk-query-immodules-3.0*.1*
%{_mandir}/man1/gtk-update-icon-cache-3.0.1*
%files data
%defattr(-,root,root)
%{_datadir}/themes/Default/gtk-3.0-key/gtkrc
%{_datadir}/themes/Emacs/gtk-3.0-key/gtkrc
%{_datadir}/themes/Raleigh/gtk-3.0/gtkrc
%files branding-upstream
%defattr(-,root,root)
%config %{_sysconfdir}/gtk-3.0/gtkrc
%files lang -f gtk30.lang -f gtk30-properties.lang
%files devel
%defattr(-,root,root)
%doc %{_datadir}/gtk-doc/html/*
%{_bindir}/gtk3-demo
%{_bindir}/gtk-builder-convert-3.0
%{_mandir}/man1/gtk-builder-convert-3.0.1*
%{_datadir}/aclocal/gtk-3.0.m4
%dir %{_datadir}/gtk-3.0
%{_datadir}/gtk-3.0/demo/
%{_datadir}/gir-1.0/*.gir
%{_includedir}/gail-3.0/
%{_includedir}/gtk-3.0/
%{_libdir}/gtk-3.0/include/
%{_libdir}/pkgconfig/gail-3.0.pc
%{_libdir}/pkgconfig/gdk-3.0.pc
%{_libdir}/pkgconfig/gdk-x11-3.0.pc
%{_libdir}/pkgconfig/gtk+-3.0.pc
%{_libdir}/pkgconfig/gtk+-unix-print-3.0.pc
%{_libdir}/pkgconfig/gtk+-x11-3.0.pc
%{_libdir}/libgailutil-3.0.so
%{_libdir}/libgdk-x11-3.0.so
%{_libdir}/libgtk-x11-3.0.so
%{_sysconfdir}/rpm/macros.gtk3
%changelog