gtk2/gtk2.spec
Vincent Untz 358f081c67 Accepting request 43658 from home:vuntz:branches:GNOME:Factory
Copy from home:vuntz:branches:GNOME:Factory/gtk2 via accept of submit request 43658 revision 2.
Request was accepted with message:
auto-approving myself, to make it easier for the next batch of reviews

OBS-URL: https://build.opensuse.org/request/show/43658
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk2?expand=0&rev=109
2010-07-22 21:44:11 +00:00

278 lines
9.9 KiB
RPMSpec

#
# spec file for package gtk2 (Version 2.21.4)
#
# 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.21.4
Release: 1
# 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-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-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
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: atk-devel
BuildRequires: cairo-devel
BuildRequires: cups-devel
BuildRequires: gdk-pixbuf-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 gdk-pixbuf-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}
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
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch53
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 \
--disable-static \
--enable-man \
--with-xinput=xfree
#make %{?jobs:-j%jobs}
make
%install
%makeinstall
find %{buildroot}%{_libdir} -name '*.la' -delete -print
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
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,modules,printbackends}
%find_lang gtk20
%find_lang gtk20-properties gtk20.lang
%if "%_lib" == "lib64"
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
%endif
%fdupes $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
test -d var/adm/SuSEconfig/ || mkdir -p var/adm/SuSEconfig/
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)
%doc AUTHORS COPYING README NEWS ChangeLog
%if "%_lib" == "lib64"
%doc README.SuSE
%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
%else
%ghost %{_sysconfdir}/gtk-2.0/gtk.immodules
%endif
%{_sysconfdir}/gtk-2.0/im-multipress.conf
/sbin/conf.d/SuSEconfig.gtk2
%{_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
%{_datadir}/gir-1.0/*.gir
%dir %{_datadir}/gtk-2.0
%{_datadir}/gtk-2.0/demo
%{_datadir}/aclocal/*.m4
%{_includedir}/gail-1.0
%{_includedir}/gtk-2.0
%{_includedir}/gtk-unix-print-2.0
%{_libdir}/lib*.so
%{_libdir}/gtk-2.0/include
%{_libdir}/pkgconfig/*.pc
%doc %{_mandir}/man*/*
%doc %{_datadir}/gtk-doc/html/*
%changelog