slackware-current/source/ap/linuxdoc-tools/linuxdoc-tools.build
Patrick J Volkerding 5a12e7c134 Slackware 13.0
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86_64 is released as stable!  Thanks to everyone who
helped make this release possible -- see the RELEASE_NOTES for the
credits.  The ISOs are off to the replicator.  This time it will be a
6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.
We're taking pre-orders now at store.slackware.com.  Please consider
picking up a copy to help support the project.  Once again, thanks to
the entire Slackware community for all the help testing and fixing
things and offering suggestions during this development cycle.
As always, have fun and enjoy!  -P.
2018-05-31 22:41:17 +02:00

946 lines
29 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=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