gtk2/gtk2.spec

293 lines
11 KiB
RPMSpec

#
# spec file for package gtk2 (Version 2.20.1)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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: gtk2
%define _name gtk+
Version: 2.20.1
Release: 2
# FIXME: 2.19.3 doesn't compile with parallel build. Check if this is still true for later versions.
# FIXME: when updating to next version, check whether we can remove the workaround for bgo#596977 below (removing -fomit-frame-pointer)
License: LGPLv2.1+
Summary: Library for Creation of Graphical User Interfaces (version 2)
Url: http://www.gtk.org/
Group: System/Libraries
Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.12/%{_name}-%{version}.tar.bz2
Source1: SuSEconfig.gtk2
Source2: README.SuSE
Source3: gtkrc
Source4: baselibs.conf
# PATCH-FIX-UPSTREAM gtk2-potfiles.patch bgo599774 sbrabec@suse.cz - Fix POTFILES.in referring to missing file.
Patch1: gtk2-potfiles.patch
# PATCH-FIX-OPENSUSE gtk64.patch sbrabec@novell.com - 64-bit dual install. See also the Fedora patch for a simpler way of doing this.
Patch8: gtk64.patch
# PATCH-FIX-OPENSUSE gdk-modules-information.diff hhetter@suse.de - Info on how to manually regenerate modules information
Patch12: gdk-modules-information.diff
# PATCH-FEATURE-UPSTREAM bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff bnc129753 bgo319484 mfabian@novell.com - Translate the font styles in the GUI
Patch22: bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff
# PATCH-FIX-OPENSUSE bugzilla-131498-allow-xim-for-all-languages.patch bnc131498 mfabian@novell.com - Allow all languages to be run with the X Input Method
Patch23: bugzilla-131498-allow-xim-for-all-languages.patch
# PATCH-FIX-UPSTREAM gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages
Patch24: gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff
# Patches taken from upstream or slated to go upstream. We can expect these to become obsolete
# in future releases.
# Please don't delete this comment even if this section is empty -- "# empty" should
# be sufficient.
# FIXME: this section is incomplete, and that some of the patches listed earlier should
# be here instead.
# PATCH-FIX-OPENSUSE gtk-path-local.patch Search in /usr/local/%{_lib} by default. bnc369696 bgo534474
Patch53: gtk-path-local.patch
# PATCH-FIX-UPSTREAM gtk+-2.20.1-pngmess.patch fridrich.strba@bluewin.ch - Fix a memory allocation problem in png loader
Patch54: gtk+-2.20.1-pngmess.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: atk-devel
BuildRequires: cairo-devel
BuildRequires: cups-devel
# Needed for patches touching the build system
BuildRequires: gnome-common
BuildRequires: gnome-patch-translation
BuildRequires: gobject-introspection-devel
BuildRequires: libjasper-devel
BuildRequires: libtiff-devel
BuildRequires: pango-devel
BuildRequires: translation-update-upstream
PreReq: /usr/bin/touch /bin/rm /bin/rmdir
Requires: %{name}-lang = %{version}
Requires: hicolor-icon-theme
# gtk2 can exist without branding. Built in defaults will be used then.
Recommends: %{name}-branding
Recommends: gvfs
# bug437293
%ifarch ppc64
Obsoletes: gtk2-64bit
%endif
#
# gail is part of gtk+ as of 2.13.x
Provides: gail = 1.22.1
Obsoletes: gail < 1.22.1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This fast and versatile library is used all over the world for all
libgnome (GNOME) applications, gimp (The GIMP), and several others.
Originally, version 1 was written for the GIMP and hence has the name
GIMP ToolKit. Many people like it because it is small, efficient, and
very configurable.
Most applications which used gtk (GTK1) have since switched to GTK2.
Besides a more flexible API, it provides improved text rendering using
pango (Pango) and many other goodies, but GTK+ 2 lacks compatibility
with GTK1, so to switch, programmers have to port applications to it.
To develop applications with gtk, you need the package gtk2-devel.
%package branding-upstream
License: LGPLv2.1+
Summary: Library for Creation of Graphical User Interfaces (version 2)
Group: System/Libraries
Provides: %{name}-branding = %{version}
Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(%{name}:branding-upstream)
%description branding-upstream
This fast and versatile library is used all over the world for all
libgnome (GNOME) applications, gimp (The GIMP), and several others.
Originally, version 1 was written for the GIMP and hence has the name
GIMP ToolKit. Many people like it because it is small, efficient, and
very configurable.
Most applications which used gtk (GTK1) have since switched to GTK2.
Besides a more flexible API, it provides improved text rendering using
pango (Pango) and many other goodies, but GTK+ 2 lacks compatibility
with GTK1, so to switch, programmers have to port applications to it.
To develop applications with gtk, you need the package gtk2-devel.
%package devel
License: LGPLv2.1+
Summary: Development environment for the Gtk2 GUI library
Group: Development/Libraries/X11
# bug437293
%ifarch ppc64
Obsoletes: gtk2-devel-64bit
%endif
#
Requires: %{name} = %{version} atk-devel cairo-devel glibc-devel glib2-devel pango-devel %(rpm -q --whatprovides XFree86-devel --queryformat '%{NAME}')
# gtk-builder-convert needs this.
Requires: pyxml
# gail is part of gtk+ as of 2.13.x
Provides: gail-devel = 1.22.1
Obsoletes: gail-devel < 1.22.1
Provides: gtk2-doc = %{version}
Obsoletes: gtk2-doc < %{version}
%description devel
This package contains all necessary include files, libraries,
configuration files and development tools needed to compile and link
applications using the gtk2 library.
In addition, it contains a large set of demo applications in source
code and manual pages for the provided Gtk2 development tools.
Gtk2 is a fast and versatile library is used all over the world for all
GNOME applications, the GIMP, and several other applications.
Originally it was written for the GIMP and hence has the name Gimp
ToolKit. Many people like it because it is small, efficient, and very
configurable.
%lang_package
%prep
%setup -q -n %{_name}-%{version}
%patch1
translation-update-upstream
translation-update-upstream po-properties gtk20-properties
gnome-patch-translation-prepare
cp -a %{S:1} .
%if "%_lib" == "lib64"
cp -a %{S:2} .
# WARNING: This patch does not patch not installed demos and tests.
%patch8 -p1
%endif
%patch12 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch53
%patch54
gnome-patch-translation-update
%build
NOCONFIGURE=1 gnome-autogen.sh
export CFLAGS="$RPM_OPT_FLAGS"
export CFLAGS="$CFLAGS -fstack-protector"
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
# fix crash in gdm, nautilus, etc. (bgo#596977)
export CFLAGS=`echo $CFLAGS | sed -e 's/-fomit-frame-pointer//g'`
%configure \
--enable-man \
--with-xinput=xfree
#make %{?jobs:-j%jobs}
make
%install
%makeinstall
mkdir -p $RPM_BUILD_ROOT/sbin/conf.d
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0
install -m 755 SuSEconfig.gtk2 $RPM_BUILD_ROOT/sbin/conf.d
touch $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gtk.immodules $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/gtk-2.0
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/gtk-2.0/icon-theme.cache-list
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/{,2.10.0/}{engines,filesystems,immodules,loaders,modules,printbackends}
%find_lang gtk20
%find_lang gtk20-properties gtk20.lang
%if "%_lib" == "lib64"
mv $RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders\
$RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders-64
mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-2.0\
$RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-2.0-64
mv $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gtk.immodules\
$RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gtk64.immodules
mv $RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders\
$RPM_BUILD_ROOT%{_sysconfdir}/gtk-2.0/gdk-pixbuf64.loaders
%endif
rm $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/2*/*/*.la
rm $RPM_BUILD_ROOT/%{_libdir}/gtk-2.0/modules/*.la
%fdupes $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
touch var/adm/SuSEconfig/run-gtk
%preun
# Remove all old icon cache files created by SuSEconfig.gtk2.
# If it is an update, files will be re-created.
if test -f var/cache/gtk-2.0/icon-theme.cache-list ; then
for DIR in $(<var/cache/gtk-2.0/icon-theme.cache-list) ; do
rm -f $DIR/icon-theme.cache
rmdir --ignore-fail-on-non-empty $DIR
done
rm var/cache/gtk-2.0/icon-theme.cache-list
fi
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%if "%_lib" == "lib64"
%doc AUTHORS COPYING README README.SuSE NEWS ChangeLog
%else
%doc AUTHORS COPYING README NEWS ChangeLog
%endif
%{_bindir}/*query*
%{_bindir}/gtk-update-icon-cache
%{_datadir}/themes/*
%{_libdir}/lib*.so.*
%dir %{_libdir}/gtk-2.0
%dir %{_libdir}/gtk-2.0/[2me]*
%{_libdir}/gtk-2.0/modules/*.so
%dir %{_libdir}/gtk-2.0/immodules
%dir %{_libdir}/gtk-2.0/2*/*
%{_libdir}/gtk-2.0/2*/*/*.so
%dir %{_sysconfdir}/gtk-2.0
%dir %{_localstatedir}/cache/gtk-2.0
%ghost %{_localstatedir}/cache/gtk-2.0/icon-theme.cache-list
%if "%_lib" == "lib64"
%ghost %{_sysconfdir}/gtk-2.0/gtk64.immodules
%ghost %{_sysconfdir}/gtk-2.0/gdk-pixbuf64.loaders
%else
%ghost %{_sysconfdir}/gtk-2.0/gtk.immodules
%ghost %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
%endif
%{_sysconfdir}/gtk-2.0/im-multipress.conf
/sbin/conf.d/SuSEconfig.gtk2
%{_datadir}/gir-1.0/*.gir
%{_libdir}/girepository-1.0/*.typelib
%files branding-upstream
%defattr(-,root,root)
%config %{_sysconfdir}/gtk-2.0/gtkrc
%files lang -f gtk20.lang
%defattr(-,root,root)
%files devel
%defattr(-,root,root)
%{_bindir}/gtk-builder-convert
%{_bindir}/*-demo
%{_bindir}/*-csource
%{_datadir}/gtk-2.0
%{_datadir}/aclocal/*.m4
%{_includedir}/gail-1.0
%{_includedir}/gtk-2.0
%{_includedir}/gtk-unix-print-2.0
%{_libdir}/lib*.so
%{_libdir}/lib*a
%{_libdir}/gtk-2.0/include
%{_libdir}/pkgconfig/*.pc
%doc %{_mandir}/man*/*
%{_datadir}/gtk-doc/html/*
%changelog