summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ellis <rellis@dp100.com>2014-01-20 00:50:11 +0700
committerErik Hanson <erik@slackbuilds.org>2014-01-29 23:21:07 -0600
commit1165f82869fa1719a7aa8a44beedcb4499df813f (patch)
treec7c1d39bf1adbdd40f196b2498b1f70c7e5a654b
parent03172f817bb8da51d64553a0fbc5997313ec151c (diff)
downloadslackbuilds-1165f82869fa1719a7aa8a44beedcb4499df813f.tar.gz
libraries/tDOM: License Update + Build New Extensions.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--libraries/tDOM/README6
-rw-r--r--libraries/tDOM/tDOM.SlackBuild90
2 files changed, 79 insertions, 17 deletions
diff --git a/libraries/tDOM/README b/libraries/tDOM/README
index c27d137aa9..27d7d01af4 100644
--- a/libraries/tDOM/README
+++ b/libraries/tDOM/README
@@ -4,3 +4,9 @@ manipulate XML with a scripting language and uses very little memory in the
process (for example the DOM tree of the XML recommendation in XML (160K)
needs only about 450K in memory)! The tDOM project was started by Jochen
Löwer. It is currently maintained by Rolf Ade.
+
+Note, tDOM ships with two extensions: tnc, an XML validation module and
+tdomhtml, a set of definitions for creating html documents using tDOM. The
+slackbuild script builds and installs both by default. If you do not wish
+to build one or both of these extensions then set the BUILD_TNC and
+BUILD_TDOMHTML variables to false as appropriate.
diff --git a/libraries/tDOM/tDOM.SlackBuild b/libraries/tDOM/tDOM.SlackBuild
index 5c79457397..d10ce9af66 100644
--- a/libraries/tDOM/tDOM.SlackBuild
+++ b/libraries/tDOM/tDOM.SlackBuild
@@ -2,15 +2,35 @@
# Slackware build script for tDOM
-# Written by Richard Ellis <rellis@dp100.com>
-
-# Released to the public domain, January 2011
+# Copyright 2013-2014 by Richard Ellis (USA)
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=tDOM
VERSION=${VERSION:-0.8.3}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
+# set these to false to omit building each as part of tDOM build
+BUILD_TNC=${BUILD_TNC:-true} ; # build tnc XML validator module
+BUILD_TDOMHTML=${BUILD_TDOMHTML:-true} ; # build tdomhtml html generation module
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
@@ -56,19 +76,54 @@ find -L . \
# Upstream patch
# https://github.com/tDOM/tdom/commit/3dd529139d2f44bb9ecfdcddd27b3d6a8df5ff41#diff-0
patch -p1 < $CWD/tDOM-tcl8.6-compat.patch
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --build=$ARCH-slackware-linux
-
-make
-make test
-make install DESTDIR=$PKG
+
+set -x
+# since we are building up to three different packages, reuse the build process
+function build {
+ case $1 in
+ tnc|tdomhtml)
+ local EXTRA="--with-tdom=$PKG/usr/lib${LIBDIRSUFFIX}"
+ local LINK="-L$PKG/usr/lib${LIBDIRSUFFIX}/tdom0.8.3/" ;;
+ *)
+ local EXTRA=""
+ local LINK="" ;;
+ esac
+ LDFLAGS="$LINK" \
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ $EXTRA \
+ --build=$ARCH-slackware-linux
+
+ make
+ if [[ $1 == "tdom" ]] ; then
+ make test ; # tests are broken for tnc - bug reported to upstream
+ # tests do not exist for tdomhtml
+ fi
+ make install DESTDIR=$PKG
+}
+
+build tdom ; # always build tDOM
+
+if [[ $BUILD_TNC == "true" ]] ; then
+ pushd extensions/tnc
+ build tnc
+ popd
+fi
+
+if [[ $BUILD_TDOMHTML == "true" ]] ; then
+ pushd extensions/tdomhtml
+ build tdomhtml
+ popd
+ rm $PKG/usr/man/mann/tdomhtml.n ; # this is an empty file in the src tarball - bug reported to upstream
+fi
+
+set +x
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
@@ -82,6 +137,7 @@ cp -a \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+# Copy the slack-desc (and a custom doinst.sh if necessary) into ./install
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc