1 #!/usr/bin/bash
   2 #
   3 # CDDL HEADER START
   4 #
   5 # The contents of this file are subject to the terms of the
   6 # Common Development and Distribution License, Version 1.0 only
   7 # (the "License").  You may not use this file except in compliance
   8 # with the License.
   9 #
  10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  11 # or http://www.opensolaris.org/os/licensing.
  12 # See the License for the specific language governing permissions
  13 # and limitations under the License.
  14 #
  15 # When distributing Covered Code, include this CDDL HEADER in each
  16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  17 # If applicable, add the following below this CDDL HEADER, with the
  18 # fields enclosed by brackets "[]" replaced with your own identifying
  19 # information: Portions Copyright [yyyy] [name of copyright owner]
  20 #
  21 # CDDL HEADER END
  22 #
  23 #
  24 # Copyright 2011-2012 OmniTI Computer Consulting, Inc.  All rights reserved.
  25 # Use is subject to license terms.
  26 #
  27 # Load support functions
  28 . ../../lib/functions.sh
  29 
  30 PROG=libxml2        # App name
  31 VER=2.9.4           # App version
  32 PKG=library/libxml2 # Package name (without prefix)
  33 SUMMARY="$PROG - XML C parser and toolkit"
  34 DESC="$SUMMARY"
  35 
  36 DEPENDS_IPS="compress/xz system/library/gcc-5-runtime library/zlib"
  37 BUILD_DEPENDS_IPS="$DEPENDS_IPS developer/sunstudio12.1"
  38 # Keep python tied to the version we're supporting, to aid future changes.
  39 CONFIGURE_OPTS="--with-python=/usr/bin/python2.7"
  40 
  41 fix_python_install() {
  42     logcmd mkdir -p $DESTDIR/usr/lib/python2.7/vendor-packages
  43     logcmd mv $DESTDIR/usr/lib/python2.7/site-packages/* $DESTDIR/usr/lib/python2.7/vendor-packages/ || logerr "failed relocating python install"
  44     logcmd rm -f $DESTDIR/usr/lib/python2.7/vendor-packages/64/drv_libxml2.py
  45     logcmd rm -rf $DESTDIR/usr/lib/python2.7/site-packages || logerr "failed removing bad python install"
  46     logcmd rm -rf $DESTDIR/usr/include/amd64 || logerr "failed removing bad includes install"
  47 }
  48 
  49 install_license(){
  50     logcmd cp $TMPDIR/$BUILDDIR/COPYING $DESTDIR/license
  51 }
  52 
  53 make_prog64() {
  54     logcmd perl -pi -e 's#(\$CC.*\$compiler_flags)#$1 -nostdlib#g;' libtool ||
  55         logerr "libtool patch failed"
  56     logcmd gmake || logerr "Make failed"
  57 }
  58 
  59 make_prog32() {
  60     logcmd perl -pi -e 's#(\$CC.*\$compiler_flags)#$1 -nostdlib#g;' libtool ||
  61         logerr "libtool patch failed"
  62     logcmd gmake || logerr "Make failed"
  63 }
  64 
  65 make_install64() {
  66     logmsg "--- make install"
  67     logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/.libs/libxml2mod.la ||
  68         logerr "libtool libxml2mod.la patch failed"
  69     logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/libxml2mod.la ||
  70         logerr "libtool libxml2mod.la patch failed"
  71 
  72     logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/.libs/libxml2mod.lai ||
  73         logerr "libtool libxml2mod.la patch failed"
  74 
  75     logcmd $MAKE DESTDIR=${DESTDIR} \
  76         PYTHON_SITE_PACKAGES=/usr/lib/python2.7/site-packages/64 \
  77         install || \
  78         logerr "--- Make install failed"
  79 }
  80 
  81 # Relocate the libs to /lib, to match upstream
  82 move_libs() {
  83     logcmd mkdir -p $DESTDIR/lib/amd64
  84     logcmd mv $DESTDIR/usr/lib/lib* $DESTDIR/lib || \
  85         logerr "failed to move libs (32-bit)"
  86     logcmd mv $DESTDIR/usr/lib/amd64/lib* $DESTDIR/lib/amd64 || \
  87         logerr "failed to move libs (64-bit)"
  88     pushd $DESTDIR/usr/lib >/dev/null
  89     logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so
  90     logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so.2
  91     logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so.$VER
  92     popd >/dev/null
  93     pushd $DESTDIR/usr/lib/amd64 >/dev/null
  94     logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so
  95     logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so.2
  96     logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so.$VER
  97     popd>/dev/null
  98 }
  99 
 100 init
 101 download_source $PROG $PROG $VER
 102 patch_source
 103 prep_build
 104 build
 105 make_lintlibs xml2 /usr/lib /usr/include/libxml2 "libxml/*.h"
 106 fix_python_install
 107 make_isa_stub
 108 install_license
 109 move_libs
 110 make_package
 111 clean_up