gtk2/gtk2.spec

364 lines
13 KiB
RPMSpec

#
# spec file for package gtk2 (Version 2.17.8)
#
# Copyright (c) 2009 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+
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: atk-devel
BuildRequires: cairo-devel
BuildRequires: cups-devel
BuildRequires: gnome-patch-translation
BuildRequires: gtk-doc
BuildRequires: libjasper-devel
BuildRequires: libtiff-devel
BuildRequires: pango-devel
Url: http://www.gtk.org/
License: LGPL v2.1 or later
Group: System/Libraries
# bug437293
%ifarch ppc64
Obsoletes: gtk2-64bit
%endif
#
PreReq: /usr/bin/touch /bin/rm /bin/rmdir
Version: 2.17.8
Release: 1
Summary: Library for Creation of Graphical User Interfaces (version 2)
Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.12/%{_name}-%{version}.tar.bz2
Source1: SuSEconfig.gtk2
Source2: README.SuSE
Source3: gtkrc
# PATCH-FIX-UPSTREAM gtk+-strict-aliasing.patch federico@novell.com - Fix compiler warnings. This is already in SVN trunk as of 2008/07/18
Patch: gtk+-strict-aliasing.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
BuildRoot: %{_tmppath}/%{name}-%{version}-build
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
# gail is part of gtk+ as of 2.13.x
Provides: gail = 1.22.1
Obsoletes: gail <= 1.22.1
%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.
Authors:
--------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
%package branding-upstream
License: LGPL v2.1 or later
Summary: Library for Creation of Graphical User Interfaces (version 2)
Group: System/Libraries
Provides: %{name}-branding = %{version}
Conflicts: otherproviders(%{name}-branding)
Supplements: packageand(branding-upstream:%{name})
%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.
Authors:
--------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
%package devel
License: LGPL v2.1 or later
Summary: Development environment for the Gtk2 GUI library
Group: Development/Libraries/X11
AutoReqProv: on
# 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
Obsoletes: gtk2-doc <= %{version}
Provides: 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.
Authors:
--------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
%lang_package
%prep
%setup -q -n %{_name}-%{version}
# This breaks due to bugs in a Makefile.am;
# gnome-patch-translation-prepare
%patch -p1
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
# gnome-patch-translation-update
%build
ACLOCAL="aclocal -I m4macros" autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS"
export CFLAGS="$CFLAGS -fstack-protector"
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
%if %suse_version <= 1030
# Do not believe glibc first weekday for glibc < 2.7:
# https://bugzilla.novell.com/show_bug.cgi?id=130787
# https://bugzilla.novell.com/show_bug.cgi?id=104417
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=2388
sed -i /HAVE__NL_TIME_FIRST_WEEKDAY/d config.h.in
%endif
%configure \
--enable-man \
--with-xinput=xfree
make %{?jobs:-j%jobs}
%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
%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