glib2/glib2.spec

Sun, 03 Apr 2011 13:34:55 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sun, 03 Apr 2011 13:34:55 +0200
changeset 337
f71e028eb3e2
parent 273
ea0bfdfbb4ad
permissions
-rw-r--r--

Correct and improve several packaging aspects including...
Correct datadir path for python modules, correct jar(1) path for
building libgcj classes, strip libexecdir path of version numbers,
improve name of oblbld build path, clean whitespace from as(1) and
ld(1) GNU detection, remove seemingly discarded '--with-local-prefix'
configure argument, and correct hardcoded lto plugin libtool archive
dependency information.

Most importantly, correct IA32 architecture detection logic in
config.gcc to correctly emit SSE2 instructions conditionally, leading
to the removal of all '-march' bootstrap options and replacement with
unconditional (for IA32/AMD64) '-mtune=native' options. Comments and
buildtime warnings are corrected appropriately. In theory these changes
cause a more portable, orthoganal, and optimal bootstrap to be built.

michael@273 1 ##
michael@273 2 ## glib2.spec -- OpenPKG RPM Package Specification
michael@273 3 ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@273 4 ##
michael@273 5 ## Permission to use, copy, modify, and distribute this software for
michael@273 6 ## any purpose with or without fee is hereby granted, provided that
michael@273 7 ## the above copyright notice and this permission notice appear in all
michael@273 8 ## copies.
michael@273 9 ##
michael@273 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@273 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@273 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@273 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@273 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@273 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@273 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@273 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@273 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@273 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@273 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@273 21 ## SUCH DAMAGE.
michael@273 22 ##
michael@273 23
michael@273 24 # package version
michael@273 25 %define V_glib2_major 2.25
michael@273 26 %define V_glib2_minor 13
michael@273 27
michael@273 28 # package information
michael@273 29 Name: glib2
michael@273 30 Summary: The Gtk Utility Library
michael@273 31 URL: http://www.gtk.org/
michael@273 32 Vendor: The Gtk Project
michael@273 33 Packager: OpenPKG Foundation e.V.
michael@273 34 Distribution: OpenPKG Community
michael@273 35 Class: BASE
michael@273 36 Group: Algorithm
michael@273 37 License: GPL
michael@273 38 Version: %{V_glib2_major}.%{V_glib2_minor}
michael@274 39 Release: 20101020
michael@273 40
michael@273 41 # package options
michael@273 42 %option with_threads yes
michael@273 43
michael@273 44 # list of sources
michael@273 45 Source0: ftp://ftp.gnome.org/pub/gnome/sources/glib/%{V_glib2_major}/glib-%{version}.tar.gz
michael@273 46 Patch0: glib2.patch
michael@273 47
michael@273 48 # build information
michael@274 49 Prefix: %{l_prefix}
michael@274 50 BuildRoot: %{l_buildroot}
michael@273 51 BuildPreReq: OpenPKG, openpkg >= 20100101, perl, make, pkgconfig
michael@273 52 PreReq: OpenPKG, openpkg >= 20100101, perl
michael@273 53 BuildPreReq: gettext, libiconv, pcre, pcre::with_utf8 = yes
michael@273 54 PreReq: gettext, libiconv, pcre, pcre::with_utf8 = yes
michael@273 55
michael@273 56 %description
michael@273 57 GLib is the low-level core library that originally was split out
michael@273 58 from Gtk+. It provides data structure handling for C, portability
michael@273 59 wrappers, and interfaces for such runtime functionality as an event
michael@273 60 loop, threads, dynamic loading, and an object system.
michael@273 61
michael@273 62 %track
michael@273 63 prog glib2 = {
michael@273 64 version = %{version}
michael@273 65 url = ftp://ftp.gnome.org/pub/gnome/sources/glib/%{V_glib2_major}/
michael@273 66 regex = glib-(__VER__)\.tar\.(gz|bz2)
michael@273 67 }
michael@273 68
michael@273 69 %prep
michael@273 70 %setup -q -n glib-%{version}
michael@273 71 %patch -p0
michael@273 72
michael@273 73 %build
michael@273 74 # configure package
michael@273 75 %{l_shtool} subst \
michael@273 76 -e 's;\$export_dynamic_flag_spec;;g' \
michael@273 77 -e 's;eval echo \\\\;eval echo ;' \
michael@273 78 configure
michael@273 79 %{l_shtool} subst \
michael@273 80 -e 's;/glib-2\.0\.pc;/glib-x.x.pc;g' \
michael@273 81 -e 's;/gobject-2\.0\.pc;/gobject-x.x.pc;g' \
michael@273 82 -e 's;/gthread-2\.0\.pc;/gthread-x.x.pc;g' \
michael@273 83 -e 's;/gmodule-2\.0\.pc;/gmodule-x.x.pc;g' \
michael@273 84 -e 's;/gio-unix-2\.0\.pc;/gio-unix-x.x.pc;g' \
michael@273 85 -e 's;/gio-2\.0\.pc;/gio-x.x.pc;g' \
michael@273 86 -e 's;/glib-2\.0;/glib2;g' \
michael@273 87 -e 's;/gobject-2\.0;/gobject2;g' \
michael@273 88 -e 's;/gthread-2\.0;/gthread2;g' \
michael@273 89 -e 's;/gmodule-2\.0;/gmodule2;g' \
michael@273 90 -e 's;/gio-unix-2\.0;/gio-unix2;g' \
michael@273 91 -e 's;/gio-2\.0;/gio2;g' \
michael@273 92 -e 's;/glib-x\.x\.pc;/glib-2.0.pc;g' \
michael@273 93 -e 's;/gobject-x\.x\.pc;/gobject-2.0.pc;g' \
michael@273 94 -e 's;/gthread-x\.x\.pc;/gthread-2.0.pc;g' \
michael@273 95 -e 's;/gmodule-x\.x\.pc;/gmodule-2.0.pc;g' \
michael@273 96 -e 's;/gio-unix-x\.x\.pc;/gio-unix-2.0.pc;g' \
michael@273 97 -e 's;/gio-x\.x\.pc;/gio-2.0.pc;g' \
michael@273 98 -e 's;lib\(g[a-z]*\)-2\.0;lib\12;g' \
michael@273 99 `find . -name Makefile.in -print` \
michael@273 100 m4macros/glib-2.0.m4
michael@273 101 %{l_shtool} subst \
michael@273 102 -e 's;/glib-2\.0;/glib2;g' \
michael@273 103 -e 's;/gobject-2\.0;/gobject2;g' \
michael@273 104 -e 's;/gthread-2\.0;/gthread2;g' \
michael@273 105 -e 's;/gmodule-2\.0;/gmodule2;g' \
michael@273 106 -e 's;/gio-unix-2\.0;/gio-unix2;g' \
michael@273 107 -e 's;/gio-2\.0;/gio2;g' \
michael@273 108 -e 's;-l\(g[a-z]*\)-2\.0;-l\12;g' \
michael@273 109 *-2.0.pc.in
michael@273 110 libs=""
michael@273 111 %if "%{with_threads}" == "yes"
michael@273 112 case "%{l_platform -t}" in
michael@273 113 *-netbsd* ) libs="-lpthread" ;;
michael@273 114 esac
michael@273 115 %endif
michael@273 116 CC="%{l_cc}" \
michael@273 117 CFLAGS="%{l_cflags -O}" \
michael@273 118 CPPFLAGS="%{l_cppflags}" \
michael@273 119 LDFLAGS="%{l_ldflags}" \
michael@273 120 LIBS="$libs" \
michael@273 121 PERL="%{l_prefix}/bin/perl" \
michael@273 122 PERL_PATH="%{l_prefix}/bin/perl" \
michael@273 123 GREP="grep" \
michael@273 124 ./configure \
michael@273 125 --prefix=%{l_prefix} \
michael@273 126 --mandir=%{l_prefix}/man \
michael@273 127 --with-libiconv=gnu \
michael@273 128 --disable-debug \
michael@273 129 --disable-shared \
michael@273 130 --with-pcre=system \
michael@273 131 %if "%{with_threads}" == "yes"
michael@273 132 --enable-threads \
michael@273 133 %else
michael@273 134 --disable-threads \
michael@273 135 %endif
michael@273 136 --disable-gtk-doc \
michael@273 137 --disable-dtrace
michael@273 138
michael@273 139 # build package
michael@273 140 %{l_make} %{l_mflags}
michael@273 141
michael@273 142 %install
michael@274 143 rm -rf $RPM_BUILD_ROOT
michael@274 144
michael@273 145 # install package
michael@274 146 %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
michael@273 147
michael@273 148 # strip down installation
michael@273 149 rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
michael@273 150 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/charset.alias
michael@273 151 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/locale
michael@273 152 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/glib-2.0
michael@273 153 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gtk-doc
michael@273 154 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/gdb
michael@273 155 strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
michael@273 156 rm $RPM_BUILD_ROOT%{l_prefix}/lib/*.la
michael@273 157
michael@273 158 # determine installation files
michael@273 159 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
michael@273 160
michael@273 161 %files -f files
michael@273 162
michael@273 163 %clean
michael@274 164 rm -rf $RPM_BUILD_ROOT
michael@273 165

mercurial