## ## gtk2.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2005 OpenPKG Foundation e.V. ## Copyright (c) 2000-2005 Ralf S. Engelschall ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package version %define V_gtk 2.8.6 %define V_gtk_major 2.8 %define V_glib_major 2.8 %define V_pango_major 1.10 %define V_atk_major 1.10 # package information Name: gtk2 Summary: The Gtk Toolkit Library (%{V_gtk_major}) URL: http://www.gtk.org/ Vendor: The Gtk Project Packager: OpenPKG Distribution: OpenPKG Class: PLUS Group: XWindow License: GPL Version: %{V_gtk} Release: 20051006 # list of sources Source0: ftp://ftp.gtk.org/pub/gtk/v%{V_gtk_major}/gtk+-%{V_gtk}.tar.gz Patch0: gtk2.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20040130, make, pkgconfig PreReq: OpenPKG, openpkg >= 20040130 BuildPreReq: X11, png, jpeg, tiff, gettext PreReq: X11, png, jpeg, tiff, gettext BuildPreReq: glib2 >= %{V_glib_major}, pango >= %{V_pango_major}, atk >= %{V_atk_major} PreReq: glib2 >= %{V_glib_major}, pango >= %{V_pango_major}, atk >= %{V_atk_major} AutoReq: no AutoReqProv: no %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 projects to complete application suites. %track prog gtk2 = { version = %{version} url = ftp://ftp.gtk.org/pub/gtk/ regex = (v2\.[2468]) url = ftp://ftp.gtk.org/pub/gtk/__NEWVER__/ regex = gtk\+-(__VER__)\.tar\.(gz|bz2) } %prep %setup -q -n gtk+-%{version} %patch -p0 # avoid including static libraries into convenience libraries %{l_shtool} subst \ -e 's;^LIBS =.*;LIBS =;' \ gdk-pixbuf/Makefile.in \ gdk-pixbuf/pixops/Makefile.in \ gtk/xdgmime/Makefile.in \ gdk/x11/Makefile.in # avoid searching for shared libraries %{l_shtool} subst \ -e 's;echo eval echo \\\$export_dynamic_flag_spec;;g' \ -e 's;^\(LIBS="-lintl\)\ *\($LIBS"\);\1 -liconv \2;g' \ configure # build binaries from static libraries %{l_shtool} subst \ -e 's;\(gtk_demo_LDFLAGS *=\);\1 -static;' \ demos/gtk-demo/Makefile.in %{l_shtool} subst \ -e 's;\(gtk_query_immodules_2_0_LDFLAGS *=\);\1 -static;' \ -e 's;^\(gtk_query_immodules_2_0_LDADD *=.*\);\1 -lpangoft2;' \ gtk/Makefile.in %{l_shtool} subst \ -e 's;\(gdk_pixbuf_csource_LDFLAGS *=\);\1 -static;' \ -e 's;\(gdk_pixbuf_csource_LDADD .*\);\1 -lintl;' \ -e 's;\(gdk_pixbuf_query_loaders_LDFLAGS *=\);\1 -static;' \ -e 's;\(gdk_pixbuf_query_loaders_LDADD .*\);\1 -lintl;' \ gdk-pixbuf/Makefile.in # remove version from paths %{l_shtool} subst \ -e 's;/gtk-2\.0;/gtk2;g' \ -e 's;lib\(g[-_a-z]*\)-2\.0;lib\12;g' \ -e 's;/@PACKAGE@;;g' \ -e 's;-\$(GTK_API_VERSION);2;g' \ -e 's;/\$(GTK_BINARY_VERSION);;g' \ `find . -name Makefile.in -print` %{l_shtool} subst \ -e 's;/gtk-2\.0;/gtk2;g' \ -e 's;-l\(g[-_a-z]*\)-@GTK_API_VERSION@;-l\12;g' \ -e 's;-l\(g[-_a-z]*\)-\${target}-@GTK_API_VERSION@;-l\12;g' \ -e 's;\(@GDK_EXTRA_LIBS@\);@X_LIBS@ \1;' \ -e 's;\(@GDK_EXTRA_CFLAGS@\);@X_CFLAGS@ \1;' \ *-2.0.pc.in %{l_shtool} subst \ -e 's;gtk-2.0;gtk2;g' \ gtk/gtkrc.c # adjust path to locale and doc files %{l_shtool} subst \ -e 's;\${libdir}/locale;\${datadir}/locale;' \ -e 's;/gtk-doc/html;/gtk2/html;g' \ configure %{l_shtool} subst \ -e 's;\$(libdir)/locale;\$(datadir)/locale;' \ po/Makefile.in.in %build # set x11 paths xinc=`%{l_rc} --query x11_incdir` xlib=`%{l_rc} --query x11_libdir` # configure package CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags tiff} -I$xinc" \ LDFLAGS="%{l_ldflags}" \ ./configure \ --prefix=%{l_prefix} \ --with-x \ --x-includes=$xinc \ --x-libraries=$xlib \ --with-glib-prefix=%{l_prefix} \ --with-libpng=%{l_prefix} \ --with-libjpeg=%{l_prefix} \ --with-libtiff=%{l_prefix} \ --disable-modules \ --with-included-loaders=yes \ --enable-nls \ --with-native-locale=no \ --enable-shm \ --disable-debug \ --disable-rebuilds \ --enable-shared \ --enable-static # create a libtool for building without shared libs cp -fp libtool libtool_noshared %{l_shtool} subst \ -e 's;\(build_libtool_libs\)=yes;\1=no;g' \ libtool_noshared # build libgtk-x11-2.0, libgdk_pixbuf2, and libgdk-x11-2.0 only statically %{l_shtool} subst \ -e 's;^LIBTOOL = \(.*\)libtool;LIBTOOL = \1libtool_noshared;' \ gdk-pixbuf/Makefile.in \ gdk-pixbuf/Makefile \ gdk/Makefile.in \ gdk/Makefile \ gtk/Makefile.in \ gtk/Makefile # build package %{l_make} %{l_mflags} %install # install package rm -rf $RPM_BUILD_ROOT %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/gtk2 %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT" # provide config file %{l_shtool} install -c -m 644 \ /dev/null \ $RPM_BUILD_ROOT%{l_prefix}/etc/gtk2/gtk.immodules # use generic library name mv $RPM_BUILD_ROOT%{l_prefix}/lib/libgtk-x11-2.0.a \ $RPM_BUILD_ROOT%{l_prefix}/lib/libgtk2.a mv $RPM_BUILD_ROOT%{l_prefix}/lib/libgdk-x11-2.0.a \ $RPM_BUILD_ROOT%{l_prefix}/lib/libgdk2.a # clean up installation area rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/themes rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gtk2 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/locale rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/locale rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.s[ol] rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.s[ol].* rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/*.la rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/gtk2/engines/*.a rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/gtk2/engines/*.la rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/gtk2/immodules/*.a rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/gtk2/immodules/*.la rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*-[0-9][0-9.]* strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%not %dir %{l_prefix}/share/aclocal' \ '%not %dir %{l_prefix}/lib/pkgconfig' %files -f files %clean rm -rf $RPM_BUILD_ROOT