diff options
Diffstat (limited to 'source/ap/linuxdoc-tools/linuxdoc-tools.build')
-rwxr-xr-x | source/ap/linuxdoc-tools/linuxdoc-tools.build | 946 |
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 00000000..8d28ea33 --- /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 |