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