michael@273: ## michael@454: ## glib.spec -- OpenPKG RPM Package Specification michael@454: ## Copyright (c) 2000-2012 OpenPKG Foundation e.V. michael@273: ## michael@273: ## Permission to use, copy, modify, and distribute this software for michael@273: ## any purpose with or without fee is hereby granted, provided that michael@273: ## the above copyright notice and this permission notice appear in all michael@273: ## copies. michael@273: ## michael@273: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@273: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@273: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@273: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@273: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@273: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@273: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@273: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@273: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@273: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@273: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@273: ## SUCH DAMAGE. michael@273: ## michael@273: michael@273: # package version michael@769: %define V_major 2.37 michael@454: %define V_minor 3 michael@273: michael@273: # package information michael@454: Name: glib michael@273: Summary: The Gtk Utility Library michael@273: URL: http://www.gtk.org/ michael@273: Vendor: The Gtk Project michael@273: Packager: OpenPKG Foundation e.V. michael@273: Distribution: OpenPKG Community michael@273: Class: BASE michael@273: Group: Algorithm michael@273: License: GPL michael@454: Version: %{V_major}.%{V_minor} michael@769: Release: 20130000 michael@273: michael@273: # package options michael@273: %option with_threads yes michael@273: michael@273: # list of sources michael@454: Source0: http://ftp.gnome.org/pub/gnome/sources/glib/%{V_major}/glib-%{version}.tar.xz michael@454: Patch0: glib.patch michael@273: michael@273: # build information michael@671: BuildPreReq: OpenPKG, openpkg >= 20100101, perl, make michael@671: PreReq: OpenPKG, openpkg >= 20100101, perl michael@454: BuildPreReq: gettext, libiconv, pcre, pcre::with_utf8 = yes, libffi michael@454: PreReq: gettext, libiconv, pcre, pcre::with_utf8 = yes, libffi michael@273: michael@273: %description michael@273: GLib is the low-level core library that originally was split out michael@273: from Gtk+. It provides data structure handling for C, portability michael@273: wrappers, and interfaces for such runtime functionality as an event michael@273: loop, threads, dynamic loading, and an object system. michael@273: michael@273: %track michael@454: prog glib = { michael@273: version = %{version} michael@454: url = http://ftp.gnome.org/pub/gnome/sources/glib/%{V_major}/ michael@273: regex = glib-(__VER__)\.tar\.(gz|bz2) michael@273: } michael@273: michael@273: %prep michael@273: %setup -q -n glib-%{version} michael@273: %patch -p0 michael@273: michael@273: %build michael@273: # configure package michael@273: %{l_shtool} subst \ michael@273: -e 's;\$export_dynamic_flag_spec;;g' \ michael@273: -e 's;eval echo \\\\;eval echo ;' \ michael@273: configure michael@273: %{l_shtool} subst \ michael@273: -e 's;/glib-2\.0\.pc;/glib-x.x.pc;g' \ michael@273: -e 's;/gobject-2\.0\.pc;/gobject-x.x.pc;g' \ michael@273: -e 's;/gthread-2\.0\.pc;/gthread-x.x.pc;g' \ michael@273: -e 's;/gmodule-2\.0\.pc;/gmodule-x.x.pc;g' \ michael@273: -e 's;/gio-unix-2\.0\.pc;/gio-unix-x.x.pc;g' \ michael@273: -e 's;/gio-2\.0\.pc;/gio-x.x.pc;g' \ michael@454: -e 's;/glib-2\.0;/glib;g' \ michael@454: -e 's;/gobject-2\.0;/gobject;g' \ michael@454: -e 's;/gthread-2\.0;/gthread;g' \ michael@454: -e 's;/gmodule-2\.0;/gmodule;g' \ michael@454: -e 's;/gio-unix-2\.0;/gio-unix;g' \ michael@454: -e 's;/gio-2\.0;/gio;g' \ michael@273: -e 's;/glib-x\.x\.pc;/glib-2.0.pc;g' \ michael@273: -e 's;/gobject-x\.x\.pc;/gobject-2.0.pc;g' \ michael@273: -e 's;/gthread-x\.x\.pc;/gthread-2.0.pc;g' \ michael@273: -e 's;/gmodule-x\.x\.pc;/gmodule-2.0.pc;g' \ michael@273: -e 's;/gio-unix-x\.x\.pc;/gio-unix-2.0.pc;g' \ michael@273: -e 's;/gio-x\.x\.pc;/gio-2.0.pc;g' \ michael@454: -e 's;lib\(g[a-z]*\)-2\.0;lib\1;g' \ michael@776: -e 's; *@GLIB_WARN_CFLAGS@;;g' \ michael@273: `find . -name Makefile.in -print` \ michael@273: m4macros/glib-2.0.m4 michael@273: %{l_shtool} subst \ michael@454: -e 's;/glib-2\.0;/glib;g' \ michael@454: -e 's;/gobject-2\.0;/gobject;g' \ michael@454: -e 's;/gthread-2\.0;/gthread;g' \ michael@454: -e 's;/gmodule-2\.0;/gmodule;g' \ michael@454: -e 's;/gio-unix-2\.0;/gio-unix;g' \ michael@454: -e 's;/gio-2\.0;/gio;g' \ michael@454: -e 's;-l\(g[a-z]*\)-2\.0;-l\1;g' \ michael@273: *-2.0.pc.in michael@455: %{l_shtool} subst \ michael@455: -e 's;\(#define _XOPEN_SOURCE\) 600;\1 601;' \ michael@455: glib/tests/strfuncs.c michael@665: %{l_shtool} subst \ michael@665: -e 's;\(completiondir =\) \$(sysconfdir)/bash_completion.d;\1 $(pkgdatadir)/giobash;' \ michael@665: gio/Makefile.in michael@455: case "%{l_platform -t}" in michael@769: *-sunos* ) michael@455: %{l_shtool} subst \ michael@455: -e 's;^\(LIBELF_LIBS =\);\1 -lelf;' \ michael@455: gio/Makefile.in michael@526: %{l_shtool} subst \ michael@526: -e 's;\(Libs.private:.*\) *$;\1 -lsocket -lnsl;' \ michael@526: glib-2.0.pc.in michael@455: ;; michael@455: esac michael@474: case "%{l_platform -t}" in michael@474: *sun4[uv]-* ) l_cflags="$l_cflags -march=v9" ;; michael@474: *sun*-* ) l_cflags="$l_cflags -march=v8" ;; michael@474: *i?86-* | *amd64-* | *ia64-* ) l_cflags="$l_cflags -march=native" ;; michael@474: esac michael@273: libs="" michael@769: case "%{l_platform -t}" in michael@769: *-sunos* ) libs="-lnsl -lsocket" ;; michael@769: esac michael@273: %if "%{with_threads}" == "yes" michael@273: case "%{l_platform -t}" in michael@273: *-netbsd* ) libs="-lpthread" ;; michael@455: *-sunos* ) libs="-lnsl -lsocket" ;; michael@273: esac michael@273: %endif michael@273: CC="%{l_cc}" \ michael@474: CFLAGS="%{l_cflags -O} $l_cflags" \ michael@273: CPPFLAGS="%{l_cppflags}" \ michael@273: LDFLAGS="%{l_ldflags}" \ michael@273: LIBS="$libs" \ michael@454: LIBFFI_CFLAGS="%{l_cppflags}" \ michael@454: LIBFFI_LIBS="%{l_ldflags} -lffi" \ michael@454: PCRE_CFLAGS="%{l_cppflags pcre .}" \ michael@454: PCRE_LIBS="%{l_ldflags} -lpcre" \ michael@273: PERL="%{l_prefix}/bin/perl" \ michael@273: PERL_PATH="%{l_prefix}/bin/perl" \ michael@273: GREP="grep" \ michael@273: ./configure \ michael@273: --prefix=%{l_prefix} \ michael@273: --mandir=%{l_prefix}/man \ michael@273: --with-libiconv=gnu \ michael@273: --with-pcre=system \ michael@273: %if "%{with_threads}" == "yes" michael@454: --with-threads=posix \ michael@273: %endif michael@273: --disable-gtk-doc \ michael@454: --disable-dtrace \ michael@454: --disable-fam \ michael@454: --disable-debug \ michael@454: --disable-shared michael@273: michael@273: # build package michael@455: %{l_make} %{l_mflags -O} michael@273: michael@273: %install michael@273: # install package michael@526: %{l_make} %{l_mflags} install DESTDIR="$RPM_BUILD_ROOT" michael@273: michael@273: # strip down installation michael@273: rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir michael@273: rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/charset.alias michael@273: rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/locale michael@273: rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/glib-2.0 michael@273: rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gtk-doc michael@273: rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gdb michael@273: strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true michael@273: rm $RPM_BUILD_ROOT%{l_prefix}/lib/*.la michael@273: michael@273: # determine installation files michael@273: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} michael@273: michael@273: %files -f files michael@273: michael@273: %clean michael@273: