%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 2.90.0-5 - Some more package review feedback * Thu May 20 2010 Matthias Clasen 2.90.0-4 - Remove %%check again, it causes trouble * Mon May 17 2010 Matthias Clasen 2.90.0-3 - More review feedback * Wed May 12 2010 Matthias Clasen 2.90.0-2 - Incorporate review feedback * Wed May 11 2010 Matthias Clasen 2.90.0-1 - Update to the 2.90.0 release - Complete parallel installability * Mon May 10 2010 Richard Hughes 2.90.0-0.0.20100510git - Update from git