%define _prefix /opt/freeware
%define _defaultdocdir %{_prefix}/doc
%define glib2_version 2.12.4
%define atk_version 1.12.3
%define pango_version 1.14.5
%define cairo_version 1.8.6
%define pixman_version 0.12.0
%define xcursor_version 1.0.2

# bin_version corresponds to GTK_BINARY_VERSION in configure.in
%define bin_version 2.*

Summary: 	The GIMP ToolKit (GTK+), a library for creating GUIs for X.
Name:  		gtk2
Version: 	2.10.6
Release: 	5
License: 	LGPL
Group: 		System Environment/Libraries
Source: 	gtk+-%{version}.tar.bz2

Patch0:		gtkplus-2.10.6-aix.patch
Patch1:		gtkplus-2.10.6-autotools.patch


Prereq: libpng
Prereq: libtiff
Prereq: libjpeg

BuildPrereq: atk-devel >= %{atk_version}
BuildPrereq: pango-devel >= %{pango_version}
BuildPrereq: glib2-devel >= %{glib2_version}
BuildPrereq: libtiff-devel
BuildPrereq: libjpeg-devel
BuildPrereq: libpng-devel
#BuildPrereq: /usr/bin/automake-1.4

BuildRoot: %{_tmppath}/gtk2-%{version}-root

URL: http://www.gtk.org

# We need to prereq these so we can run gtk-query-immodules-2.0
Prereq: glib2 >= %{glib2_version}
Prereq: atk >= %{atk_version}
Prereq: pango >= %{pango_version}
Prereq: xcursor >= %{xcursor_version}
Prereq: cairo >= %{cairo_version}
Prereq: pixman  >= %{pixman_version}

# Use --define 'no64 1' on the command line to disable 64bit build
%{!?no64:%define BUILD64 1}
%{?no64:%define BUILD64 0}
%define prefix64 %{_prefix}/64

%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.

%package devel
Summary: Development tools for GTK+ applications.
Group: Development/Libraries
Requires: gtk2 = %{version}
Requires: pango-devel >= %{pango_version}
Requires: atk-devel >= %{atk_version}
Requires: glib2-devel >= %{glib2_version}

%description devel
The gtk+-devel package contains the header files and developer
docs for the GTK+ widget toolkit.  

%prep
%setup -q -n gtk+-%{version}

if test x$PATCH = x ; then
  PATCH=patch ;
fi
$PATCH -p2 -s < %{_sourcedir}/gtkplus-2.10.6-aix.patch
$PATCH -p2 -s < %{_sourcedir}/gtkplus-2.10.6-autotools.patch

# Prep 64-bit build in 64bit subdirectory
%if %{BUILD64} == 1
mkdir 64bit
cd 64bit
bzip2 -dc %{SOURCE0} | tar -xf -
cd gtk+-2.10.6
$PATCH -p2 -s < %{_sourcedir}/gtkplus-2.10.6-aix.patch
$PATCH -p2 -s < %{_sourcedir}/gtkplus-2.10.6-autotools.patch
%endif

%build
# now build the 32-bit version
export OBJECT_MODE=32
export CC="xlc_r -q32"
export AR="/usr/bin/ar -X32_64"
LDFLAGS="-L%{_libdir}" CPPFLAGS="-I%{_includedir}" PATH=%{_bindir}:$PATH \
./configure --prefix=%{_prefix} --disable-gtk-doc --disable-largefile
PATH=%{_bindir}:$PATH make

# now build the 64-bit version
%if %{BUILD64} == 1
cd 64bit/gtk+-2.10.6
export OBJECT_MODE=64
export CC="xlc_r -q64"
export AR="/usr/bin/ar -X32_64"
LDFLAGS="-L%{_libdir}" CPPFLAGS="-I%{_includedir}" PATH=%{_bindir}:$PATH \
./configure --prefix=%{_prefix} --disable-gtk-doc --disable-largefile
PATH=%{_bindir}:$PATH make

# Go back to 32-bit library and add our 64bit shared object
# into same archive
cd ../..
pwd
rm -f ./gdk/.libs/libgdk-x11-2.0.a
/usr/bin/ar -X32_64 -r ./gdk/.libs/libgdk-x11-2.0.a  gdk/.libs/libgdk-x11-2.0.so.0 ./64bit/gtk+-2.10.6/gdk/.libs/libgdk-x11-2.0.so.0
rm -f ./gtk/.libs/libgtk-x11-2.0.a
/usr/bin/ar -X32_64 -r ./gtk/.libs/libgtk-x11-2.0.a ./gtk/.libs/libgtk-x11-2.0.so.0  ./64bit/gtk+-2.10.6/gtk/.libs/libgtk-x11-2.0.so.0
rm -f ./gdk-pixbuf/.libs/libgdk_pixbuf-2.0.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libgdk_pixbuf-2.0.a ./gdk-pixbuf/.libs/libgdk_pixbuf-2.0.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libgdk_pixbuf-2.0.so.0
rm -f ./contrib/gdk-pixbuf-xlib/.libs/libgdk_pixbuf_xlib-2.0.a
/usr/bin/ar -X32_64 -r ./contrib/gdk-pixbuf-xlib/.libs/libgdk_pixbuf_xlib-2.0.a ./contrib/gdk-pixbuf-xlib/.libs/libgdk_pixbuf_xlib-2.0.so.0 ./64bit/gtk+-2.10.6/contrib/gdk-pixbuf-xlib/.libs/libgdk_pixbuf_xlib-2.0.so.0
/usr/bin/ar -X32_64 -q ./modules/engines/pixbuf/.libs/libpixmap.a ./64bit/gtk+-2.10.6/modules/engines/pixbuf/.libs/libpixmap.a
rm -f ./modules/input/.libs/libim-am-et.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-am-et.a ./modules/input/.libs/libim-am-et.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-am-et.so.0
rm -f ./modules/input/.libs/libim-cedilla.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-cedilla.a ./modules/input/.libs/libim-cedilla.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-cedilla.so.0
rm -f ./modules/input/.libs/libim-cyrillic-translit.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-cyrillic-translit.a ./modules/input/.libs/libim-cyrillic-translit.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-cyrillic-translit.so.0
rm -f ./modules/input/.libs/libim-inuktitut.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-inuktitut.a ./modules/input/.libs/libim-inuktitut.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-inuktitut.a
rm -f ./modules/input/.libs/libim-ipa.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-ipa.a ./modules/input/.libs/libim-ipa.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-ipa.so.0
rm -f ./modules/input/.libs/libim-thai-broken.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-thai-broken.a ./modules/input/.libs/libim-thai-broken.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-thai-broken.so.0
rm -f ./modules/input/.libs/libim-ti-er.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-ti-er.a ./modules/input/.libs/libim-ti-er.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-ti-er.so.0
rm -f ./modules/input/.libs/libim-ti-et.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-ti-et.a ./modules/input/.libs/libim-ti-et.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-ti-et.so.0
rm -f ./modules/input/.libs/libim-viqr.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-viqr.a ./modules/input/.libs/libim-viqr.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-viqr.so.0
rm -f ./modules/input/.libs/libim-xim.a
/usr/bin/ar -X32_64 -r ./modules/input/.libs/libim-xim.a ./modules/input/.libs/libim-xim.so.0 ./64bit/gtk+-2.10.6/modules/input/.libs/libim-xim.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-ani.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-ani.a ./gdk-pixbuf/.libs/libpixbufloader-ani.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-ani.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-bmp.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-bmp.a ./gdk-pixbuf/.libs/libpixbufloader-bmp.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-bmp.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-gif.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-gif.a ./gdk-pixbuf/.libs/libpixbufloader-gif.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-gif.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-ico.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-ico.a ./gdk-pixbuf/.libs/libpixbufloader-ico.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-ico.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-jpeg.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-jpeg.a ./gdk-pixbuf/.libs/libpixbufloader-jpeg.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-jpeg.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-pcx.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-pcx.a ./gdk-pixbuf/.libs/libpixbufloader-pcx.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-pcx.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-png.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-png.a ./gdk-pixbuf/.libs/libpixbufloader-png.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-png.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-pnm.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-pnm.a ./gdk-pixbuf/.libs/libpixbufloader-pnm.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-pnm.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-ras.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-ras.a ./gdk-pixbuf/.libs/libpixbufloader-ras.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-ras.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-tga.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-tga.a ./gdk-pixbuf/.libs/libpixbufloader-tga.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-tga.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-tiff.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-tiff.a ./gdk-pixbuf/.libs/libpixbufloader-tiff.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-tiff.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-wbmp.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-wbmp.a ./gdk-pixbuf/.libs/libpixbufloader-wbmp.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-wbmp.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-xbm.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-xbm.a ./gdk-pixbuf/.libs/libpixbufloader-xbm.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-xbm.so.0
rm -f ./gdk-pixbuf/.libs/libpixbufloader-xpm.a
/usr/bin/ar -X32_64 -r ./gdk-pixbuf/.libs/libpixbufloader-xpm.a ./gdk-pixbuf/.libs/libpixbufloader-xpm.so.0 ./64bit/gtk+-2.10.6/gdk-pixbuf/.libs/libpixbufloader-xpm.so.0
/usr/bin/ar -X32_64 -q ./modules/printbackends/file/.libs/libprintbackend-file.a ./64bit/gtk+-2.10.6/modules/printbackends/file/.libs/libprintbackend-file.a ./64bit/gtk+-2.10.6/modules/printbackends/file/.libs/libprintbackend-file.so.0
/usr/bin/ar -X32_64 -q ./modules/printbackends/lpr/.libs/libprintbackend-lpr.a ./64bit/gtk+-2.10.6/modules/printbackends/lpr/.libs/libprintbackend-lpr.a ./64bit/gtk+-2.10.6/modules/printbackends/lpr/.libs/libprintbackend-lpr.so.0
%endif

%install
if test "%{buildroot}" != "/"; then
	rm -rf %{buildroot}
fi
mkdir -p %{buildroot}
# Remove the binaries so that the relink can take place
rm -f modules/input/.libs/*.so.0

make DESTDIR=%{buildroot} install-strip

# make links
cd %{buildroot}
for dir in bin lib include share
do
        mkdir -p usr/$dir
        cd usr/$dir
        ln -sf ../..%{_prefix}/$dir/* .
        cd -
done

#Add links for 64-bit library members
%if %{BUILD64} == 1
(
   mkdir -p $RPM_BUILD_ROOT/%{prefix64}/lib
   cd $RPM_BUILD_ROOT/%{prefix64}/lib
   ln -s ../../lib/*.a .
)
%endif


# Create the directory (empty)
mkdir -p %{buildroot}/%{_sysconfdir}/gtk-2.0/

%post
if test -e %{_sysconfdir}/gtk-2.0/gtk.immodules; then
	rm %{_sysconfdir}/gtk-2.0/gtk.immodules
fi
%{_bindir}/gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules
%{_bindir}/gdk-pixbuf-query-loaders > %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders

%files
%defattr(-, root, system)

%doc AUTHORS COPYING ChangeLog NEWS README
#%{_bindir}/testtext
#%{_bindir}/testgtk
%{_bindir}/gtk-demo
/usr/bin/gtk-demo
%{_bindir}/gtk-query-immodules-2.0
/usr/bin/gtk-query-immodules-2.0
%{_bindir}/gtk-update-icon-cache
/usr/bin/gtk-update-icon-cache
%{_bindir}/gdk-pixbuf-query-loaders
/usr/bin/gdk-pixbuf-query-loaders
%{_libdir}/libgtk-x11-2.0.a
%{_libdir}/libgdk-x11-2.0.a
%{_libdir}/libgdk_pixbuf-2.0.a
%{_libdir}/libgdk_pixbuf_xlib-2.0.a
#%{_prefix}/64/lib/lib*.a
%dir %{_libdir}/gtk-2.0
%{_libdir}/gtk-2.0/%{bin_version}
%{_datadir}/gtk-2.0
%{_datadir}/themes/Default
%{_datadir}/themes/Emacs
# The theme 'Raleigh' is not installed on AIX
#%{_datadir}/themes/Raleigh
%dir %{_sysconfdir}/gtk-2.0/
%{_datadir}/locale/*/LC_MESSAGES/gtk20.mo
%{_datadir}/locale/*/LC_MESSAGES/gtk20-properties.mo

/usr/lib/lib*.a
/usr/share/*

%files devel
%defattr(-, root, system)

%dir %{_libdir}/gtk-2.0
%{_libdir}/gtk-2.0/include
%{_libdir}/*.la
%{_datadir}/gtk-doc/
%{_mandir}/man1/*
%{_includedir}/*
/usr/include/*
%{_datadir}/aclocal/*
%{_bindir}/gdk-pixbuf-csource
/usr/bin/gdk-pixbuf-csource
%{_libdir}/pkgconfig/*
%doc docs/tutorial
%doc examples
/usr/share/*
%changelog
*  Fri Nov 17 2006  BULL
 - Release  1
 - New version  version: 2.10.6
 - gnome 2.16.1

*  Fri Sep 15 2006  BULL
 - Release  10
 - Added PreReq xcursor

*  Thu Sep 14 2006  BULL
 - Release  9

*  Tue Aug 29 2006  BULL
 - Release  8
 - added : gtk.immodules

*  Thu Jul 20 2006  BULL
 - Release  7
 - built with ORBit 2.14

*  Fri Feb 10 2006  BULL
 - Release  6
*  Tue Jan 17 2006  BULL
 - Release  5
 - Correct unresolve XRender symbols in libgdk-x11-2.0.a

*  Fri Dec 23 2005  BULL
 - Release 4 
 - Prototype gtk 64 bit
*  Thu Dec 01 2005  BULL
 - Release  3
 - Security update: Fix integer overflow in xpm loader

*  Wed Nov 30 2005  BULL
 - Release  2
 - Correct input method problem that for example prevent to connect from gdm.

*  Tue Nov 15 2005  BULL
 - Release  1
 - New version  version: 2.8.3

*  Wed Aug 10 2005  BULL
 - Release  5
 - Create symlinks between /usr/share/ and /opt/freeware/share

*  Tue Aug 02 2005  BULL
 - Release  4
 - enables wnn8 IM in japanese

*  Thu Jun 23 2005  BULL
 - Release  3
 -  Workaround to use Wnn7 im with Japanese Environment

*  Wed May 25 2005  BULL
 - Release  1
 - New version  version: 2.6.4

*  Fri Dec 03 2004  BULL
 - Release  2
 - Corrects problems with input methods using auxiliary windows such as the zh_CN input method

*  Tue Nov 23 2004  BULL
 - Release  1
 - New version  version: 2.4.13
 - Use the XIM input method by default for languages 'fr', 'ca' and 'pt'

*  Mon Sep 20 2004  BULL
 - Release  3
 - Fix bugzilla bug number 150601:
 - Fix bugzilla bug number 144808:

*  Wed Jul 28 2004  BULL
 - Release  2
 - bugfix causing core file

