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
39 fix_python_install() {
40 logcmd mkdir -p $DESTDIR/usr/lib/python2.6/vendor-packages
41 logcmd mv $DESTDIR/usr/lib/python2.6/site-packages/* $DESTDIR/usr/lib/python2.6/vendor-packages/ || logerr "failed relocating python install"
42 logcmd rm -f $DESTDIR/usr/lib/python2.6/vendor-packages/64/drv_libxml2.py
43 logcmd rm -rf $DESTDIR/usr/lib/python2.6/site-packages || logerr "failed removing bad python install"
44 logcmd rm -rf $DESTDIR/usr/include/amd64 || logerr "failed removing bad includes install"
45 }
46
47 install_license(){
48 logcmd cp $TMPDIR/$BUILDDIR/COPYING $DESTDIR/license
49 }
50
51 make_prog64() {
52 logcmd perl -pi -e 's#(\$CC.*\$compiler_flags)#$1 -nostdlib#g;' libtool ||
53 logerr "libtool patch failed"
54 logcmd gmake || logerr "Make failed"
55 }
56
57 make_prog32() {
58 logcmd perl -pi -e 's#(\$CC.*\$compiler_flags)#$1 -nostdlib#g;' libtool ||
59 logerr "libtool patch failed"
60 logcmd gmake || logerr "Make failed"
61 }
62
63 make_install64() {
64 logmsg "--- make install"
65 logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/.libs/libxml2mod.la ||
66 logerr "libtool libxml2mod.la patch failed"
67 logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/libxml2mod.la ||
68 logerr "libtool libxml2mod.la patch failed"
69
70 logcmd perl -pi -e 's#(\/site-packages)#$1\/64#g;' python/.libs/libxml2mod.lai ||
71 logerr "libtool libxml2mod.la patch failed"
72
73 logcmd $MAKE DESTDIR=${DESTDIR} \
74 PYTHON_SITE_PACKAGES=/usr/lib/python2.6/site-packages/64 \
75 install || \
76 logerr "--- Make install failed"
77 }
78
79 # Relocate the libs to /lib, to match upstream
80 move_libs() {
81 logcmd mkdir -p $DESTDIR/lib/amd64
82 logcmd mv $DESTDIR/usr/lib/lib* $DESTDIR/lib || \
83 logerr "failed to move libs (32-bit)"
84 logcmd mv $DESTDIR/usr/lib/amd64/lib* $DESTDIR/lib/amd64 || \
85 logerr "failed to move libs (64-bit)"
86 pushd $DESTDIR/usr/lib >/dev/null
87 logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so
88 logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so.2
89 logcmd ln -s ../../lib/libxml2.so.$VER libxml2.so.$VER
90 popd >/dev/null
91 pushd $DESTDIR/usr/lib/amd64 >/dev/null
92 logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so
93 logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so.2
94 logcmd ln -s ../../../lib/64/libxml2.so.$VER libxml2.so.$VER
95 popd>/dev/null
96 }
97
98 init
99 download_source $PROG $PROG $VER
100 patch_source
101 prep_build
102 build
103 make_lintlibs xml2 /usr/lib /usr/include/libxml2 "libxml/*.h"
104 fix_python_install
105 make_isa_stub
106 install_license
107 move_libs
108 make_package
109 clean_up