gtk3/gtk3.spec
2010-05-26 03:26:26 +00:00

349 lines
11 KiB
RPMSpec

%global glib2_version 2.23.6-1
%global pango_version 1.20.0-1
%global atk_version 1.29.4-2
%global cairo_version 1.6.0-1
%global libpng_version 2:1.2.2-16
%global xrandr_version 1.2.99.4-2
%global gobject_introspection_version 0.6.7
%global gir_repository_version 0.6.5-5
%global bin_version 3.0.0
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk3
Version: 2.90.0
Release: 5%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
URL: http://www.gtk.org
#VCS: git:git://git.gnome.org/gtk+
Source: http://download.gnome.org/sources/gtk+/2.90/gtk+-%{version}.tar.bz2
Source1: update-gdk-pixbuf-loaders-3.0
Source2: update-gtk-immodules-3.0
Source3: im-cedilla.conf
# Biarch changes
Patch0: gtk-lib64.patch
Patch1: system-python.patch
BuildRequires: atk-devel >= %{atk_version}
BuildRequires: pango-devel >= %{pango_version}
BuildRequires: glib2-devel >= %{glib2_version}
BuildRequires: libtiff-devel
BuildRequires: libjpeg-devel
BuildRequires: jasper-devel
BuildRequires: libXi-devel
BuildRequires: libpng-devel >= %{libpng_version}
BuildRequires: gettext
BuildRequires: gtk-doc
BuildRequires: cups-devel
BuildRequires: cairo-devel >= %{cairo_version}
BuildRequires: libXrandr-devel >= %{xrandr_version}
BuildRequires: libXrender-devel
BuildRequires: libXcursor-devel
BuildRequires: libXfixes-devel
BuildRequires: libXinerama-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXdamage-devel
BuildRequires: gobject-introspection-devel >= %{gobject_introspection_version}
BuildRequires: gir-repository-devel >= %{gir_repository_version}
# required for icon theme apis to work
Requires: hicolor-icon-theme
# We need to prereq these so we can run gtk-query-immodules-3.0
Requires(post): glib2 >= %{glib2_version}
Requires(post): atk >= %{atk_version}
Requires(post): pango >= %{pango_version}
# and these for gdk-pixbuf-query-loaders
Requires(post): libtiff >= 3.6.1
Requires: libXrandr >= %{xrandr_version}
%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 tools to complete application
suites.
This package contains version 3 of GTK+.
%package immodules
Summary: Input methods for GTK+
Group: System Environment/Libraries
Requires: gtk3 = %{version}-%{release}
# for /etc/X11/xinit/xinput.d
Requires: imsettings
%description immodules
The gtk3-immodules package contains standalone input methods that are shipped
as part of GTK+ 3.
%package immodule-xim
Summary: XIM support for GTK+
Group: System Environment/Libraries
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+
Group: Development/Libraries
Requires: gtk3 = %{version}-%{release}
Requires: libX11-devel, libXcursor-devel, libXinerama-devel
Requires: libXext-devel, libXi-devel, libXrandr-devel
Requires: libXfixes-devel, libXcomposite-devel
# for /usr/share/aclocal
Requires: automake
%description devel
This package contains the libraries and header files that are needed
for writing applications with version 3 of the GTK+ widget toolkit. If
you plan to develop applications with GTK+, consider installing the
gtk3-devel-docs package.
%package devel-docs
Summary: Developer documentation for GTK+
Group: Development/Libraries
Requires: gtk3 = %{version}-%{release}
# for /usr/share/gtk-doc/html
Requires: gtk-doc
%description devel-docs
This package contains developer documentation for version 3 of the GTK+
widget toolkit.
%prep
%setup -q -n gtk+-%{version}
%patch0 -p1 -b .lib64
%patch1 -p1 -b .system-python
%build
%configure --with-xinput=xfree \
--enable-debug \
--disable-gtk-doc \
--disable-rebuilds \
--enable-introspection \
--with-libjasper \
--with-included-loaders=png
# fight unused direct deps
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make %{?_smp_mflags}
# truncate NEWS
awk '/^Overview of Changes/ { seen+=1 }
{ if (seen < 2) print }
{ if (seen == 2) { print "For older news, see http://git.gnome.org/cgit/gtk+/plain/NEWS"; exit } }' NEWS > tmp; mv tmp NEWS
%install
# Deriving /etc/gtk-3.0/$host location
# NOTE: Duplicated below
#
# autoconf changes linux to linux-gnu
case "%{_host}" in
*linux) host="%{_host}-gnu"
;;
*) host="%{_host}"
;;
esac
# autoconf uses powerpc not ppc
host=`echo $host | sed "s/^ppc/powerpc/"`
# autoconf uses ibm-linux not redhat-linux (s390x)
host=`echo $host | sed "s/^s390\(x\)*-redhat/s390\1-ibm/"`
# Make sure that the host value that is passed to the compile
# is the same as the host that we're using in the spec file
#
compile_host=`grep 'host_triplet =' gtk/Makefile | sed "s/.* = //"`
if test "x$compile_host" != "x$host" ; then
echo 1>&2 "Host mismatch: compile='$compile_host', spec file='$host'" && exit 1
fi
make install DESTDIR=$RPM_BUILD_ROOT \
RUN_QUERY_IMMODULES_TEST=false \
RUN_QUERY_LOADER_TEST=false
%find_lang gtk30
%find_lang gtk30-properties
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0
#
# Make cleaned-up versions of tutorials, examples, and faq for installation
#
mkdir -p tmpdocs
cp -aR docs/tutorial/html tmpdocs/tutorial
cp -aR docs/faq/html tmpdocs/faq
for dir in examples/* ; do
if [ -d $dir ] ; then
mkdir -p tmpdocs/$dir
for file in $dir/* ; do
install -m 0644 $file tmpdocs/$dir
done
fi
done
# We need to have separate 32-bit and 64-bit binaries
# for places where we have two copies of the GTK+ package installed.
# (we might have x86_64 and i686 packages on the same system, for example.)
case "$host" in
alpha*|ia64*|powerpc64*|s390x*|x86_64*)
mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0 $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0-64
mv $RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders-3.0 $RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders-3.0-64
;;
*
mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0 $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0-32
mv $RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders-3.0 $RPM_BUILD_ROOT%{_bindir}/gdk-pixbuf-query-loaders-3.0-32
;;
esac
# Install wrappers for the binaries
cp %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/update-gdk-pixbuf-loaders-3.0
cp %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/update-gtk-immodules-3.0
# Input method frameworks want this
install -D %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/X11/xinit/xinput.d
# Remove unpackaged files
rm $RPM_BUILD_ROOT%{_libdir}/*.la
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/*/*.la
rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{bin_version}/*/*.la
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0/$host
touch $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0/$host/gtk.immodules
touch $RPM_BUILD_ROOT%{_sysconfdir}/gtk-3.0/$host/gdk-pixbuf.loaders
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules
mkdir -p $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/immodules
#
# We need the substitution of $host so we use an external
# file list
#
echo %dir %{_sysconfdir}/gtk-3.0/$host >> gtk30.lang
echo %ghost %{_sysconfdir}/gtk-3.0/$host/gtk.immodules >> gtk30.lang
echo %ghost %{_sysconfdir}/gtk-3.0/$host/gdk-pixbuf.loaders >> gtk30.lang
%post
/sbin/ldconfig
/usr/bin/update-gdk-pixbuf-loaders-3.0 %{_host}
/usr/bin/update-gtk-immodules-3.0 %{_host}
%post immodules
/usr/bin/update-gtk-immodules-3.0 %{_host}
%post immodule-xim
/usr/bin/update-gtk-immodules-3.0 %{_host}
%postun
/sbin/ldconfig
if [ $1 -gt 0 ]; then
/usr/bin/update-gdk-pixbuf-loaders-3.0 %{_host}
/usr/bin/update-gtk-immodules-3.0 %{_host}
fi
%postun immodules
/usr/bin/update-gtk-immodules-3.0 %{_host}
%postun immodule-xim
/usr/bin/update-gtk-immodules-3.0 %{_host}
%files -f gtk30.lang
%defattr(-, root, root, -)
%doc AUTHORS COPYING NEWS README
%{_bindir}/gdk-pixbuf-query-loaders-3.0*
%{_bindir}/gtk-query-immodules-3.0*
%{_bindir}/gtk-update-icon-cache-3.0
%{_bindir}/update-gdk-pixbuf-loaders-3.0
%{_bindir}/update-gtk-immodules-3.0
%{_libdir}/libgtk-x11-3.0.so.*
%{_libdir}/libgdk-x11-3.0.so.*
%{_libdir}/libgdk_pixbuf-3.0.so.*
%{_libdir}/libgdk_pixbuf_xlib-3.0.so.*
%{_libdir}/libgailutil-3.0.so.*
%dir %{_libdir}/gtk-3.0
%dir %{_libdir}/gtk-3.0/%{bin_version}
%{_libdir}/gtk-3.0/%{bin_version}/engines
%dir %{_libdir}/gtk-3.0/%{bin_version}/immodules
%{_libdir}/gtk-3.0/%{bin_version}/loaders
%{_libdir}/gtk-3.0/%{bin_version}/printbackends
%{_libdir}/gtk-3.0/modules
%{_libdir}/gtk-3.0/immodules
%{_datadir}/themes/Default
%{_datadir}/themes/Emacs
%{_datadir}/themes/Raleigh
%dir %{_sysconfdir}/gtk-3.0
%{_libdir}/girepository-1.0
# TODO: fix man page installation upstream
#%{_mandir}/man1/gdk-pixbuf-query-loaders-3.0.1
#%{_mandir}/man1/gtk-query-immodules-3.0.1
#%{_mandir}/man1/gtk-update-icon-cache-3.0.1
%files immodules
%defattr(-, root, root, -)
%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-am-et.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
%{_sysconfdir}/X11/xinit/xinput.d/im-cedilla.conf
%config(noreplace) %{_sysconfdir}/gtk-3.0/im-multipress.conf
%files immodule-xim
%defattr(-, root, root, -)
%{_libdir}/gtk-3.0/%{bin_version}/immodules/im-xim.so
%files devel -f gtk30-properties.lang
%defattr(-, root, root, -)
%{_libdir}/lib*.so
%{_libdir}/gtk-3.0/include
%{_includedir}/*
%{_datadir}/aclocal/*
%{_bindir}/gdk-pixbuf-csource-3.0
%{_bindir}/gtk-builder-convert-3.0
%{_libdir}/pkgconfig/*
%{_bindir}/gtk3-demo
%{_datadir}/gtk-3.0
%{_datadir}/gir-1.0
%files devel-docs
%defattr(-, root, root, -)
%{_datadir}/gtk-doc/html/*
#%{_mandir}/man1/gdk-pixbuf-csource-3.0.1
#%{_mandir}/man1/gtk-builder-convert-3.0.1
%doc tmpdocs/tutorial
%doc tmpdocs/faq
%doc tmpdocs/examples
%changelog
* Fri May 21 2010 Matthias Clasen <mclasen@redhat.com> 2.90.0-5
- Some more package review feedback
* Thu May 20 2010 Matthias Clasen <mclasen@redhat.com> 2.90.0-4
- Remove %%check again, it causes trouble
* Mon May 17 2010 Matthias Clasen <mclasen@redhat.com> 2.90.0-3
- More review feedback
* Wed May 12 2010 Matthias Clasen <mclasen@redhat.com> 2.90.0-2
- Incorporate review feedback
* Wed May 11 2010 Matthias Clasen <mclasen@redhat.com> 2.90.0-1
- Update to the 2.90.0 release
- Complete parallel installability
* Mon May 10 2010 Richard Hughes <richard@hughsie.com> 2.90.0-0.0.20100510git
- Update from git