summaryrefslogtreecommitdiffstats
path: root/source/ap/linuxdoc-tools/linuxdoc-tools.build
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/linuxdoc-tools/linuxdoc-tools.build')
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build946
1 files changed, 946 insertions, 0 deletions
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
new file mode 100755
index 000000000..8d28ea332
--- /dev/null
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -0,0 +1,946 @@
+#!/bin/bash
+
+###############################################################################
+# Script: linuxdoc-tools.build
+# Purpose: Build & install all components that form the linuxdoc-tools
+# Slackware Package.
+# Credit: written by Stuart Winter <mozes@slackware.com>
+# with the docbook build code by Jerome Pinot <ngc891@gmail.com>
+# and some script code taken from Debian, Red Hat/Fedora &
+# Linux From Scratch documentation
+# http://www.linuxfromscratch.org/blfs/view/svn/index.html
+# http://cblfs.cross-lfs.org/index.php/Category:DocBook_SGML
+# Thanks guys! :-)
+###############################################################################
+
+# Version of LDT (which is also the .t?z package version)
+LINUXDOCTOOLSVER=0.9.56
+
+# Bundled package versions:
+SGMLDTD3VER=3.1
+SGMLDTD4VER=4.5
+XMLDTDVER=4.5
+XSLSTYLESHEETSVER=1.75.1
+DSSSLSTYLESHEETSVER=1.79
+SGMLCOMMONVER=0.6.3
+OPENJADEVER=1.3.3-pre1
+OPENSPVER=1.5.2
+GNOMEDOCUTILSVER=0.17.2
+GTKDOCVER=1.11
+SGMLSPLVER=1.03ii
+XMLTOVER=0.0.22
+ASCIIDOCVER=8.4.5
+DOCBOOKUTILSVER=0.6.14
+
+# Determine the general CFLAGS for the known architectures:
+case $ARCH in
+ arm) export SLKCFLAGS="-O2 -march=armv4t"
+ export LIBDIRSUFFIX=""
+ export HOSTTARGET="-gnueabi"
+ ;;
+ i486) export SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ export LIBDIRSUFFIX=""
+ export HOSTTARGET=""
+ ;;
+ s390) export SLKCFLAGS="-O2"
+ export LIBDIRSUFFIX=""
+ export HOSTTARGET=""
+ ;;
+ x86_64) export SLKCFLAGS="-O2 -fPIC"
+ export LIBDIRSUFFIX="64"
+ export HOSTTARGET=""
+ ;;
+esac
+
+# The build order is purposive.
+# The build order for the XML style sheets & docbook stuff comes from
+# the Linux from Scratch documentation; the other rest is because of
+# dependency build order.
+
+####################### Build AsciiDoc ##############################
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/asciidoc-$ASCIIDOCVER.tar.gz || exit 1
+cd asciidoc-$ASCIIDOCVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --docdir=/usr/doc/asciidoc-$ASCIIDOCVER \
+ --mandir=/usr/man || exit 1
+
+# Install:
+make install && make docs || exit 1
+find /etc/asciidoc -type f -print0 | xargs -0 chmod 644
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/asciidoc-$ASCIIDOCVER
+cp -fav \
+ BUGS CHANGELOG COPY* README \
+ /usr/doc/asciidoc-$ASCIIDOCVER/
+
+####################### Build sgml-common ############################
+
+# Extract source. We're using a source RPM since it contains a number of
+# patches that we need:
+cd $TMP
+rpm2tgz $CWD/sources/sgml-common-${SGMLCOMMONVER}*.src.rpm
+tar xvf sgml-common-*src.tgz
+cd sgml-common-$SGMLCOMMONVER-* || exit 1
+# The real source archive is stored inside the source RPM, you see:
+tar xvf sgml-common-$SGMLCOMMONVER.tgz || exit 1
+cd sgml-common-$SGMLCOMMONVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches (these are included in the source rpm):
+for i in \
+ sgml-common-0.6.3-docdir.patch \
+ sgml-common-automake.patch \
+ sgml-common-quotes.patch \
+ sgml-common-umask.patch ; do
+ patch --verbose -p1 < ../$i
+done || exit 1
+
+# Configure:
+#aclocal
+#automake --add-missing --copy
+autoreconf -vif
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --with-docdir=/usr/doc \
+ --sysconfdir=/etc \
+ || exit 1
+
+# Build & install:
+make -e 'mkdir_p=mkdir -p' install || exit 1
+
+# Create catalog:
+install-catalog --add /etc/sgml/sgml-ent.cat \
+ /usr/share/sgml/sgml-iso-entities-8879.1986/catalog
+install-catalog --add /etc/sgml/sgml-docbook.cat \
+ /etc/sgml/sgml-ent.cat
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/sgml-common-$SGMLCOMMONVER
+cp -fav \
+ COPYING AUTHORS INSTALL NEWS README ChangeLog ../sgml-common-CHANGES \
+ /usr/doc/sgml-common-$SGMLCOMMONVER
+
+####################### Install docbooks ############################
+
+# Extract source:
+cd $TMP
+mkdir sgml-dtd
+cd sgml-dtd
+# Debian handily package all docbooks past and present in one archive
+# but they version number the archive with the latest version.
+tar xvf $CWD/sources/docbook_*orig*.tar.gz
+cd docbook* || exit 1
+zcat $CWD/sources/docbook_*.diff.gz | patch -p1 || exit 1
+# Don't apply the patches because whilst I know that the problem we have
+# on Slackware does not exist on Debian, I want to keep the Slackware
+# build in line with Linux From Scratch, since their documentation is
+# excellent.
+#for i in debian/patches/*.dpatch ; do patch --verbose -p1 < $i ; done
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+
+###############
+## sgml-dtd3 ##
+###############
+
+( cd docbook-$SGMLDTD3VER
+
+ # Remove the ENT definitions from the catalog file:
+ sed -i -e '/ISO 8879/d' docbook.cat
+ # Replace the DTDDECL catalog entry, which is not supported by Linux SGML tools,
+ # with the SGMLDECL catalog entry
+ sed -i -e 's|DTDDECL "-//OASIS//DTD Docbook V3.1//EN"|SGMLDECL|g' docbook.cat
+
+ # Install:
+ mkdir -vpm755 /etc/sgml
+ mkdir -vpm755 /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER
+ install -vpm644 docbook.cat /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog
+ install -vpm644 *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/
+
+ # Update SGML catalog:
+ install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD3VER.cat \
+ /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog
+ install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD3VER.cat \
+ /etc/sgml/sgml-docbook.cat
+
+# Use only the most current 3.x version of DocBook SGML DTD:
+cat >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD3VER/catalog << "EOF"
+ -- Begin Single Major Version catalog changes --
+
+PUBLIC "-//Davenport//DTD DocBook V3.0//EN" "docbook.dtd"
+
+ -- End Single Major Version catalog changes --
+EOF
+
+ # Copy docs:
+ mkdir -vpm755 /usr/doc/sgml-dtd-$SGMLDTD3VER
+ cp -fav \
+ ChangeLog *.txt \
+ /usr/doc/sgml-dtd-$SGMLDTD3VER/
+)
+
+###############
+## sgml-dtd4 ##
+###############
+# For reference:
+# http://cblfs.cross-lfs.org/index.php/DocBook_SGML_DTD-4.x
+# http://www.linuxfromscratch.org/blfs/view/svn/pst/sgml-dtd.html
+
+
+( cd docbook-$SGMLDTD4VER
+
+ # Remove the ENT definitions from the catalog file:
+ sed -i -e '/ISO 8879/d' -e '/gml/d' docbook.cat
+
+ # Install:
+ mkdir -vpm755 /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER
+ install -vpm644 docbook.cat /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog
+ cp -fav *.dtd *.mod *.dcl /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER
+ # Update SGML catalog:
+ install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD4VER.cat \
+ /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog
+ install-catalog --add /etc/sgml/sgml-docbook-dtd-$SGMLDTD4VER.cat \
+ /etc/sgml/sgml-docbook.cat
+
+ # Use only the most current 4.x version of DocBook SGML DTD :
+ # When you upgrade sgml-dtd4, put the PREVIOUS version number in
+ # with the lines below.
+cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog
+ -- Begin Single Major Version catalog changes --
+EOF
+for i in 4.4 4.3 4.2 4.1 4.0; do
+cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog
+PUBLIC "-//OASIS//DTD DocBook V${i}//EN" "docbook.dtd"
+EOF
+done
+cat << EOF >> /usr/share/sgml/docbook/sgml-dtd-$SGMLDTD4VER/catalog
+
+ -- End Single Major Version catalog changes --
+EOF
+
+ # Copy docs:
+ mkdir -vpm755 /usr/doc/sgml-dtd4-$SGMLDTD4VER
+ cp -fav \
+ ChangeLog README \
+ /usr/doc/sgml-dtd4-$SGMLDTD4VER/
+
+)
+
+####################### Build OpenSP ############################
+
+# Extract source:
+cd $TMP
+rpm2tgz $CWD/sources/opensp-${OPENSPVER}*.src.rpm
+tar xvf opensp*src.tgz
+cd opensp-${OPENSPVER}* || exit 1
+tar xvf OpenSP-$OPENSPVER.tar.gz || exit 1
+cd OpenSP-$OPENSPVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+sed -i 's:32,:253,:' lib/Syntax.cxx
+sed -i 's:LITLEN 240 :LITLEN 8092:' unicode/{gensyntax.pl,unicode.syn}
+
+# Stop OpenJade from segfaulting:
+patch --verbose -p1 < ../opensp-sigsegv.patch || exit 1
+
+# Configure without optimisation. OpenSP & OpenJade
+# are sensitive to optimisations, resulting in segfaults,
+# particularly on the ARM platform.
+#
+# This is configured not to build the documentation. If anybody really needs
+# it, let me know and I'll adjust the build script - it's just a PITA to
+# get working.
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --datadir=/usr/share \
+ --infodir=/usr/info \
+ --disable-dependency-tracking \
+ --disable-static \
+ --disable-doc-build \
+ --enable-http \
+ --enable-default-catalog=/etc/sgml/catalog \
+ --enable-default-search-path=/usr/share/sgml \
+ || exit 1
+
+# Build:
+make pkgdatadir=/usr/share/sgml/OpenSP-$OPENSPVER || exit 1
+
+# Install:
+make install DESTDIR=/ || exit 1
+
+# This allows OpenJade to link with OpenSP.
+( cd /usr/lib${LIBDIRSUFFIX} && ln -vsf libosp.so libsp.so )
+
+# Rename sx to sgml2xml & create symlinks:
+mv -f /usr/bin/osx /usr/bin/osgml2xml
+( cd /usr/bin ; ln -vfs osgml2xml osx )
+mv -f /usr/man/man1/osx.1 /usr/man/man1/osgml2xml.1
+( cd /usr/man/man1 ; ln -vfs osgml2xml.1 osx.1 )
+
+# Create symlinks to binaries:
+( cd /usr/bin
+ for file in nsgmls sgmlnorm spam spent sgml2xml ; do
+ rm -f $file
+ ln -vfs o$file $file
+ done
+)
+
+# Fix man pages:
+( cd /usr/man/man1
+ for file in nsgmls sgmlnorm spam spent sgml2xml ; do
+ rm -f ${file}.1*
+ ln -vfs o${file}.1 ${file}.1
+ done
+)
+
+# Rename docs directory:
+mv -fv /usr/doc/OpenSP /usr/doc/OpenSP-$OPENSPVER
+
+####################### Build OpenJade ############################
+# Reference:
+# http://cblfs.cross-lfs.org/index.php/OpenJade
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/openjade-${OPENJADEVER}.tar.gz
+cd openjade-${OPENJADEVER} || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches:
+sed -i "s/iostream.h/iostream/g" style/MultiLineInlineNote.cxx
+
+# Configure without optimisation.
+# OpenSP & OpenJade are sensitive to optimisations and can result
+# in segfaults with anything other than O2 - particularly on the ARM
+# platform.
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-splibdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-static \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-static \
+ --enable-http \
+ --enable-default-catalog=/etc/sgml/catalog \
+ --enable-default-search-path=/usr/share/sgml \
+ --datadir=/usr/share/sgml/openjade-$OPENJADEVER \
+ || exit 1
+
+# Build:
+make || exit 1
+
+# Install:
+mkdir -p /etc/sgml
+make install || exit 1
+make install-man || exit 1
+( cd /usr/bin && ln -vfs openjade jade )
+( cd /usr/man/man1 && ln -vfs openjade.1 jade.1 )
+ln -vsf libogrove.so /usr/lib${LIBDIRSUFFIX}/libgrove.so
+ln -vsf libospgrove.so /usr/lib${LIBDIRSUFFIX}/libspgrove.so
+ln -vsf libostyle.so /usr/lib${LIBDIRSUFFIX}/libstyle.so
+install -vpm644 dsssl/catalog /usr/share/sgml/openjade-$OPENJADEVER
+install -vpm644 dsssl/*.{dtd,dsl,sgm} /usr/share/sgml/openjade-$OPENJADEVER
+
+# Update SGML catalog:
+install-catalog --add /etc/sgml/openjade-$OPENJADEVER.cat \
+ /usr/share/sgml/openjade-$OPENJADEVER/catalog
+install-catalog --add /etc/sgml/sgml-docbook.cat \
+ /etc/sgml/openjade-$OPENJADEVER.cat
+
+# Update system configuration:
+echo "SYSTEM \"http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd\" \
+ \"/usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/docbookx.dtd\"" >> \
+ /usr/share/sgml/openjade-${OPENJADEVER}/catalog
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/openjade-$OPENJADEVER
+cp -fav \
+ COPYING NEWS README VERSION \
+ doc/* dsssl/README.jadetex pubtext jadedoc unicode \
+ /usr/doc/openjade-$OPENJADEVER
+
+# The original package has this file, but it has most of the world's
+# documentation too; we'll leave it in for the time being but I don't like it.
+#rm -f /usr/doc/openjade-$OPENJADEVER/doc/Makefile
+
+####################### Build dsssl-stylesheets ####################
+
+# Extract source:
+cd $TMP
+mkdir docbook-dsssl-$DSSSLSTYLESHEETSVER
+cd docbook-dsssl-$DSSSLSTYLESHEETSVER
+tar xvf $CWD/sources/docbook-dsssl-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1
+tar xvf $CWD/sources/docbook-dsssl-doc-$DSSSLSTYLESHEETSVER.tar.bz2 || exit 1
+cd docbook-dsssl-$DSSSLSTYLESHEETSVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Install:
+install -pm755 bin/collateindex.pl /usr/bin
+install -pm644 bin/collateindex.pl.1 /usr/man/man1
+# Eeek! Debian trim this down but we'll leave it for the moment:
+mkdir -vpm755 /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/common
+cp -fav * /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER
+
+# Update catalog:
+install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
+ /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/catalog
+install-catalog --add /etc/sgml/dsssl-docbook-stylesheets.cat \
+ /usr/share/sgml/docbook/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/common/catalog
+install-catalog --add /etc/sgml/sgml-docbook.cat \
+ /etc/sgml/dsssl-docbook-stylesheets.cat
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER
+cp -fav \
+ WhatsNew VERSION RELEASE-NOTES.txt README ChangeLog BUGS \
+ /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER
+cp -fav \
+ frames/README \
+ /usr/doc/dsssl-stylesheets-$DSSSLSTYLESHEETSVER/README.frames
+
+####################### Build docbook-utils ########################
+
+# docbook-utils requires some of the docbook docs to be installed
+# prior to being built.
+
+# Extract source:
+cd $TMP
+rpm2tgz $CWD/sources/docbook-utils-${DOCBOOKUTILSVER}*.src.rpm
+tar xvf docbook-utils-*src.tgz
+cd docbook-utils-${DOCBOOKUTILSVER}* || exit 1
+tar xvf docbook-utils-$DOCBOOKUTILSVER.tar.gz || exit 1
+cd docbook-utils-$DOCBOOKUTILSVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches:
+for i in \
+ docbook-utils-2ndspaces.patch \
+ docbook-utils-grepnocolors.patch \
+ docbook-utils-spaces.patch \
+ docbook-utils-w3mtxtconvert.patch ; do
+ patch --verbose -p1 < ../$i
+done || exit 1
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ || exit 1
+
+# Build:
+make || exit 1
+
+# Install:
+make install htmldir=/usr/doc/docbook-utils-$DOCBOOKUTILSVER/html || exit 1
+
+# db2html is not just a symlink, as it has to create the output directory:
+rm -f /usr/bin/db2html
+install -vpm755 ../db2html /usr/bin
+install -vpm644 ../gdp-both.dsl /usr/share/sgml/docbook/utils-$DOCBOOKUTILSVER/docbook-utils.dsl
+
+# Make binary symlinks:
+( cd /usr/bin
+ for util in dvi html pdf ps rtf ; do
+ rm -f db2$util
+ ln -vfs docbook2$util db2$util
+ done
+)
+
+# Make man page symlinks:
+( cd /usr/man/man1
+ for util in dvi html pdf ps rtf ; do
+ rm -f db2$util.1*
+ ln -vfs jw.1 db2$util.1
+ done
+)
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/docbook-utils-$DOCBOOKUTILSVER
+cp -fav \
+ AUTHORS NEWS README TODO \
+ /usr/doc/docbook-utils-$DOCBOOKUTILSVER
+
+############################
+## xml-dtd / docbook-xml ##
+############################
+
+# Extract source:
+cd $TMP
+mkdir xml-dtd-$XMLDTDVER
+cd xml-dtd-$XMLDTDVER
+unzip $CWD/sources/docbook-xml-$XMLDTDVER.zip || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Install 4.x catalog:
+mkdir -vpm755 /usr/share/xml/docbook/xml-dtd-$XMLDTDVER
+cp -fav docbook.cat *.dtd *.mod ent/ \
+ /usr/share/xml/docbook/xml-dtd-$XMLDTDVER
+
+# Use the Unicode-4 entities from sgml-common to fix errors such as
+# "1D6C2" is not a character number in the document character set
+( cd /usr/share/xml/docbook/xml-dtd-$XMLDTDVER/ent
+ rm -fv isogrk4.ent
+ ln -vfs ../../../../sgml/xml-iso-entities-*.*/ISOgrk4.ent isogrk4.ent )
+
+# Create config files:
+mkdir -vpm755 /etc/xml
+
+# This code is taken directly from:
+# http://www.linuxfromscratch.org/blfs/view/svn/pst/xml.html#DocBook
+#
+# Populate /etc/xml/docbook:
+#
+if [ ! -e /etc/xml/docbook ]; then
+ xmlcatalog --noout --create /etc/xml/docbook
+fi &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD DocBook XML V${XMLDTDVER}//EN" \
+ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD DocBook XML CALS Table Model V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/calstblx.dtd" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/soextblx.dtd" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML Information Pool V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbpoolx.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbhierx.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML HTML Tables V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/htmltblx.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Notations V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbnotnx.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Character Entities V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbcentx.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Additional General Entities V${XMLDTDVER}//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbgenent.mod" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \
+ /etc/xml/docbook &&
+xmlcatalog --noout --add "rewriteURI" \
+ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \
+ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \
+ /etc/xml/docbook
+
+#
+# Populate /etc/xml/catalog:
+#
+if [ ! -e /etc/xml/catalog ]; then
+ xmlcatalog --noout --create /etc/xml/catalog
+fi &&
+xmlcatalog --noout --add "delegatePublic" \
+ "-//OASIS//ENTITIES DocBook XML" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog &&
+xmlcatalog --noout --add "delegatePublic" \
+ "-//OASIS//DTD DocBook XML" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog &&
+xmlcatalog --noout --add "delegateSystem" \
+ "http://www.oasis-open.org/docbook/" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog &&
+xmlcatalog --noout --add "delegateURI" \
+ "http://www.oasis-open.org/docbook/" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog
+
+# Rewrites for older docbooks. This allows older docbooks to be referenced.
+# It means, however, that you __*shouldn't* have these older docbooks__
+# installed on your system;
+# so if you just keep the Slackware linuxdoc-tools package you'll be fine:
+#
+for DTDVERSION in 4.1.2 4.2 4.3 4.4
+do
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \
+ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \
+ /etc/xml/docbook
+ xmlcatalog --noout --add "rewriteSystem" \
+ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
+ "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \
+ /etc/xml/docbook
+ xmlcatalog --noout --add "rewriteURI" \
+ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \
+ "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \
+ /etc/xml/docbook
+ xmlcatalog --noout --add "delegateSystem" \
+ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog
+ xmlcatalog --noout --add "delegateURI" \
+ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \
+ "file:///etc/xml/docbook" \
+ /etc/xml/catalog
+done
+
+# Copy docs:
+mkdir -pm755 /usr/doc/xml-dtd-$XMLDTDVER
+cp -favv \
+ ChangeLog README \
+ /usr/doc/xml-dtd-$XMLDTDVER
+
+###############################
+## docbook-xsl (stylesheets) ##
+###############################
+
+# Extract source:
+cd $TMP
+mkdir docbook-xsl-$XSLSTYLESHEETSVER
+cd docbook-xsl-$XSLSTYLESHEETSVER
+rpm2tgz $CWD/sources/docbook-style-xsl-${XSLSTYLESHEETSVER}*.src.rpm
+tar xvf docbook-style-xsl*.tgz
+cd docbook-style-xsl-$XSLSTYLESHEETSVER* || exit 1
+tar xvf docbook-xsl-$XSLSTYLESHEETSVER.tar.bz2
+# This unpacks atop of the main tree:
+tar xvf docbook-xsl-doc-$XSLSTYLESHEETSVER.tar.bz2
+
+# Enter unpacked sources:
+cd docbook-xsl-$XSLSTYLESHEETSVER
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches:
+for i in \
+ docbook-xsl-list-item-body.patch \
+ docbook-xsl-marginleft.patch \
+ docbook-xsl-newmethods.patch \
+ docbook-xsl-non-constant-expressions.patch \
+ docbook-xsl-pagesetup.patch ; do
+ patch --verbose -p1 < ../$i
+done || exit 1
+
+# Install:
+mkdir -vpm755 /usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER
+cp -fav \
+ VERSION common eclipse extensions fo highlighting html \
+ htmlhelp images javahelp lib manpages params profiling \
+ slides template tools website wordml xhtml \
+ /usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER
+
+# Create config files:
+if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi
+if [ ! -f /etc/xml/catalog ]; then
+ xmlcatalog --noout --create /etc/xml/catalog
+fi
+
+# Configure system:
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/$XSLSTYLESHEETSVER" \
+ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \
+ /etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/$XSLSTYLESHEETSVER" \
+ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \
+ /etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteSystem" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \
+ /etc/xml/catalog
+
+xmlcatalog --noout --add "rewriteURI" \
+ "http://docbook.sourceforge.net/release/xsl/current" \
+ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \
+ /etc/xml/catalog
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER
+cp -fav doc/* README* RELEASE-NOTES* NEWS* \
+ /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER
+
+####################### Build xmlto ################################
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.bz2 || exit 1
+cd xmlto-$XMLTOVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ || exit 1
+
+# Build:
+make || exit 1
+
+# Install:
+make install || exit 1
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/xmlto-$XMLTOVER
+cp -fav \
+ AUTHORS COPYING ChangeLog FAQ INSTALL NEWS README \
+ /usr/doc/xmlto-$XMLTOVER
+
+####################### Build SGMLSPL ##############################
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/libsgmls-perl_$SGMLSPLVER.orig.tar.gz || exit 1
+cd libsgmls-perl-$SGMLSPLVER.orig
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+zcat $CWD/sources/libsgmls-perl_$SGMLSPLVER-*.diff.gz | patch -p1 || exit 1
+
+# Configure:
+perl Makefile.PL INSTALLDIRS=vendor || exit 1
+sed -i 's?/share/man?/man/?g' Makefile
+
+# Build:
+make OPTIMIZE="$SLKCFLAGS" || exit 1
+
+# Install:
+make install PREFIX=/usr
+sed 's?usr/share/doc/sgmls-doc/?usr/doc/sgmlspl-'"$SGMLSPLVER"'/?g' sgmlspl.1 > /usr/man/man1/sgmlspl.1
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/sgmlspl-$SGMLSPLVER
+cp -fav \
+ BUGS COPYING README TODO \
+ /usr/doc/sgmlspl-$SGMLSPLVER
+cp -fav \
+ DOC/HTML/{SGMLSpm,sgmlspl} \
+ /usr/doc/sgmlspl-$SGMLSPLVER
+
+####################### Build linuxdoc-tools ########################
+
+# Extract source:
+cd $TMP
+#rpm2tgz $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm
+#tar xvf linuxdoc-tools-$LINUXDOCTOOLSVER*.tgz
+#cd linuxdoc-tools-$LINUXDOCTOOLSVER* || exit 1
+#tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz
+tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER*.tar.gz
+cd linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply patches (these are included in the source rpm):
+#for i in \
+# linuxdoc-tools-0.9.13-letter.patch \
+# linuxdoc-tools-0.9.20-lib64.patch ; do
+# patch --verbose -p1 < ../$i
+#done || exit 1
+# Add lib64 in Perl's path on a 64bit machine:
+patch --verbose -p1 < $CWD/sources/linuxdoc-tools.lib64.diff || exit 1
+
+# Find out what our Vendor perl directory is:
+eval $(perl '-V:installvendorlib')
+mkdir -p $PKG/$installvendorlib
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --with-perllibdir=$installvendorlib \
+ --mandir=/usr/man \
+ --with-installed-nsgmls \
+ --infodir=/usr/info \
+ || exit 1
+# --with-installed-iso-entities \
+# --with-texdir=/usr/share/texmf/tex/latex/ \
+
+# Adjust doc dir location:
+sed -i 's?share/doc/linuxdoc-tools?doc/linuxdoc-tools-'"$$LINUXDOCTOOLSVER"'?g' Makefile
+
+#( cd entity-map && autoconf && ./configure )
+
+# Build serial. This does build in parallel but
+# I find linuxdoc-tools to be fragile between versions:
+make \
+ perl5libdir=$PKG/$installvendorlib \
+ OPTIMIZE="$SLKCFLAGS" \
+ PERL=/usr/bin/perl \
+ DESTDIR=/ \
+ LINUXDOCDOC=/usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
+
+# Install:
+make install \
+ PERL=/usr/bin/perl \
+ perl5libdir=$PKG/$installvendorlib \
+ DESTDIR=/ \
+ LINUXDOCDOC=/usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
+
+# Install shell scripts for sgml2{txt,latex,info}
+for i in txt latex info; do \
+ install -vpm755 debian/addition/sgml2$$i \
+ /usr/bin/sgml2$$i; \
+done
+
+# Install info page:
+cat debian/linuxdoc-tools.info-base doc/guide.info > /usr/info/linuxdoc-sgml.info
+
+# This package contains a number of programs.
+# We maintain our own change log for this package. Since the package name is
+# 'linuxdoc-tools', let's put our changelog into here:
+install -vpm644 $CWD/ChangeLog.txt /usr/doc/linuxdoc-tools-$LINUXDOCTOOLSVER/Slackware-ChangeLog.txt
+
+####################### Build gnome-doc-utils #######################
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/gnome-doc-utils-$GNOMEDOCUTILSVER.tar.bz2
+cd gnome-doc-utils-*
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --disable-scrollkeeper \
+ --build=$ARCH-slackware-linux$HOSTTARGET || exit 1
+
+# No parallel build here because it doesn't work:
+make || exit 1
+
+# Install:
+make install DESTDIR=/ || exit 1
+
+# Copy docs:
+mkdir -p $PKG/usr/doc/gnome-doc-utils-$GNOMEDOCUTILSVER
+cp -fav \
+ AUTHORS ChangeLog COPYING* INSTALL NEWS README \
+ /usr/doc/gnome-doc-utils-$GNOMEDOCUTILSVER
+
+####################### Build gtk-doc ###############################
+
+# Extract source:
+cd $TMP
+tar xvf $CWD/sources/gtk-doc-$GTKDOCVER.tar.bz2 || exit 1
+cd gtk-doc-$GTKDOCVER
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --enable-public-id \
+ --disable-scrollkeeper \
+ || exit 1
+
+# Build:
+make || exit 1
+
+# Install:
+make install || exit 1
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/gtk-doc-$GTKDOCVER
+cp -fav \
+ AUTHORS COPYING INSTALL MAINTAINERS NEWS README TODO \
+ /usr/doc/gtk-doc-$GTKDOCVER
+
+#######################################################################
+
+# Install the package description:
+rm -rf /install
+mkdir -vpm755 /install
+install -vpm644 $CWD/slack-desc /install