slackware-current/source/ap/linuxdoc-tools/linuxdoc-tools.build
Patrick J Volkerding 9664bee729 Slackware 14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!

We're perfectionists here at Slackware, so this release has been a long
time a-brewing.  But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

Thanks to everyone who helped make this happen.  The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.

Have fun!  :-)
2018-05-31 22:51:55 +02:00

982 lines
31 KiB
Bash
Executable file

#!/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=$PKGVERSION
# Bundled package versions:
SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
XSLSTYLESHEETSVER=1.76.1
DSSSLSTYLESHEETSVER=1.79
SGMLCOMMONVER=0.6.3
OPENJADEVER=1.3.3-pre1
OPENSPVER=1.5.2
GNOMEDOCUTILSVER=0.20.10
GTKDOCVER=1.18
SGMLSPLVER=1.03ii
XMLTOVER=0.0.25
ASCIIDOCVER=8.6.7
DOCBOOKUTILSVER=0.6.14
# Determine the general CFLAGS for the known architectures:
case $ARCH in
arm) export SLKCFLAGS="-O2 -march=armv5te"
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.*z*
cd asciidoc-$ASCIIDOCVER || 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 {} \;
# Revert a change that breaks processing the git documentation:
# xz -dc $CWD/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff.xz | patch --verbose -p1 || exit 1
# 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
mkdir sgml-common && cd sgml-common
rpm2cpio $CWD/sources/sgml-common-${SGMLCOMMONVER}*.src.rpm | cpio -div || exit 1
# The real source archive is stored inside the source RPM, you see:
tar xvf sgml-common-$SGMLCOMMONVER.tgz
cd sgml-common-$SGMLCOMMONVER || 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):
# Don't include the XML dir patch because we keep our stuff in /usr/share/sgml.
for i in \
sgml-common-quotes.patch \
sgml-common-umask.patch ; do
patch --verbose -p1 < ../$i
done || exit 1
# Configure:
# autoconf doesn't work anymore..
#aclocal
#automake --add-missing --copy
#autoreconf -vif
# but this does..
for file in COPYING INSTALL install-sh missing mkinstalldirs; do
rm -f $file
cp -fav /usr/share/automake-*/$file .
done
./configure \
--prefix=/usr \
--mandir=/usr/man \
--infodir=/usr/info \
--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 \
/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.*z*
cd docbook* || 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 {} \;
###############
## sgml-dtd3 ##
###############
( cd docbook-$SGMLDTD3VER
pwd
# 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
pwd
# 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 \
README \
/usr/doc/sgml-dtd4-$SGMLDTD4VER/
)
####################### Build OpenSP ############################
# Extract source:
cd $TMP
mkdir opensp && cd opensp
rpm2cpio $CWD/sources/opensp-${OPENSPVER}*.src.rpm | cpio -div || exit 1
tar xvf OpenSP-$OPENSPVER.tar.gz
cd OpenSP-$OPENSPVER || 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 {} \;
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. Apparently -O1 will work but
# let's just leave it as is.
#
# 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 )
# Create symlinks to binaries:
( cd /usr/bin
for file in nsgmls sgmlnorm spam spent sgml2xml ; do
rm -fv $file
ln -vfs o$file $file
done
)
# Fix man pages:
# Sorry, but OpenSP needs xmlto installed to create its man pages and documentation.
# Due to build dependency order, we build xmlto later on. I did try and move xmlto earlier
# in the build but didn't get the build order correct. If anybody REALLY misses this documentation,
# email mozes@slackware.com and I'll have another go at adjusting the build order.
#
# Building man pages has been disabled with ./configure --disable-doc-build.
#
#( cd /usr/man/man1
# mv -fv osx.1 osgml2xml.1
# ln -vfs osgml2xml.1 osx.1
# 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.*z*
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
# GCC 4.6 patch:
xz -dc $CWD/sources/openjade-1.3.2-gcc46.patch.xz | patch --verbose -p1 || exit 1
# Install the old Perl 4 'getopts' function. This has been deprecated in Perl 5.16
# and since it seems that OpenJade isn't being actively released by upstream, we'll
# work around by supplying it to OpenJade directly. It's only a build-time fix anyway
# so it's ok to have a dirty work-around:
xz -dc $CWD/sources/openjade-1.3-getopts.pl.xz > getopts.pl
# 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 (setting the perl library to be the PWD so it finds the old 'getopts.pl'):
make PERL5LIB=$PWD || 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 \
/usr/doc/openjade-$OPENJADEVER
####################### Build dsssl-stylesheets ####################
# Extract source:
cd $TMP
mkdir docbook-dsssl-$DSSSLSTYLESHEETSVER
cd docbook-dsssl-$DSSSLSTYLESHEETSVER
tar xvf $CWD/sources/docbook-dsssl-$DSSSLSTYLESHEETSVER.tar.*z* || exit 1
tar xvf $CWD/sources/docbook-dsssl-doc-$DSSSLSTYLESHEETSVER.tar.*z* || exit 1
cd docbook-dsssl-$DSSSLSTYLESHEETSVER || 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:
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
mkdir docbook-utils && cd docbook-utils
rpm2cpio $CWD/sources/docbook-utils-${DOCBOOKUTILSVER}*.src.rpm | cpio -div || exit 1
tar xvf docbook-utils-$DOCBOOKUTILSVER.tar.gz
cd docbook-utils-$DOCBOOKUTILSVER || 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:
for i in \
docbook-utils-spaces.patch \
docbook-utils-2ndspaces.patch \
docbook-utils-w3mtxtconvert.patch \
docbook-utils-grepnocolors.patch \
docbook-utils-sgmlinclude.patch \
docbook-utils-rtfmanpage.patch \
docbook-utils-papersize.patch \
docbook-utils-nofinalecho.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
# grep-2.7 demands [[:space:]] instead of [:space:]
if ! fgrep '[[:space:]]' /usr/bin/jw ; then
sed -i "s/\[:space:\]/\[\[:space:\]\]/g" /usr/bin/jw
fi
# 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-style-xsl && cd docbook-style-xsl
rpm2cpio $CWD/sources/docbook-style-xsl-${XSLSTYLESHEETSVER}*.src.rpm | cpio -div || 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 || 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:
for i in \
docbook-xsl-mandir.patch \
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
# Some Linux distributions have this here, so we install a compatibility symlink:
# (this convoluted way of doing it is for makepkg's benefit)
mkdir -vpm755 /usr/share/xml/docbook/stylesheet
( cd /usr/share/xml/docbook/stylesheet
rm -fv docbook-xsl
ln -vfs ../xsl-stylesheets-$XSLSTYLESHEETSVER docbook-xsl )
# 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
mkdir xmlto && cd xmlto
tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.*z*
#rpm2cpio $CWD/sources/xmlto-${XMLTOVER}*.src.rpm | cpio -div || exit 1
#tar xvvf xmlto-$XMLTOVER.tar.*z*
cd xmlto-$XMLTOVER || 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 {} \;
# 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.*z* || 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 {} \;
xz -dc $CWD/sources/libsgmls-perl_$SGMLSPLVER-*.diff.xz | 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
mkdir linuxdoc-tools && cd linuxdoc-tools
rpm2cpio $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm | cpio -div || exit 1
tar xvf 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 {} \;
# Remove Tex from the $PATH so that we don't build formats of the linuxdoc-tools
# guide which don't work with tetex-3. These do work with texlive, but Slackware doesn't
# ship that, and just how many alternate versions of the documentation do we need anyway? :-)
OPATH=$PATH
export PATH=$( echo $PATH | sed -e 's?:/usr/share/texmf/bin??g' -e 's?/usr/share/texmf/bin:??g' )
# 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
# 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 --prefix=/usr )
# 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
# Restore $PATH:
export PATH=$OPATH
####################### Build gnome-doc-utils #######################
# Extract source:
cd $TMP
tar xvf $CWD/sources/gnome-doc-utils-$GNOMEDOCUTILSVER.tar.*z*
cd gnome-doc-utils-* || 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 {} \;
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--disable-scrollkeeper \
--enable-build-utils \
--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.*z*
cd gtk-doc-$GTKDOCVER || 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 {} \;
# Configure:
./configure \
--prefix=/usr \
--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
#EOF