#!/bin/bash ############################################################################### # Script: linuxdoc-tools.build # Purpose: Build & install all components that form the linuxdoc-tools # Slackware Package. # Credit: written by Stuart Winter # with the docbook build code by Jerome Pinot # 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.75.2 DSSSLSTYLESHEETSVER=1.79 SGMLCOMMONVER=0.6.3 OPENJADEVER=1.3.3-pre1 OPENSPVER=1.5.2 GNOMEDOCUTILSVER=0.19.1 GTKDOCVER=1.13 SGMLSPLVER=1.03ii XMLTOVER=0.0.23 ASCIIDOCVER=8.5.2 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.*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 {} \; # 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 rpm2tgz $CWD/sources/sgml-common-${SGMLCOMMONVER}*.src.rpm tar xvf sgml-common-*src.tgz || 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): 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 \ /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 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 rpm2tgz $CWD/sources/opensp-${OPENSPVER}*.src.rpm tar xvf opensp*src.tgz 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 # 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 \ /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.bz2 || exit 1 tar xvf $CWD/sources/docbook-dsssl-doc-$DSSSLSTYLESHEETSVER.tar.bz2 || 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 rpm2tgz $CWD/sources/docbook-utils-${DOCBOOKUTILSVER}*.src.rpm tar xvf docbook-utils-*src.tgz 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-rtfmanpage.patch \ docbook-utils-sgmlinclude.patch \ 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-style-xsl && cd docbook-style-xsl rpm2tgz $CWD/sources/docbook-style-xsl-${XSLSTYLESHEETSVER}*.src.rpm tar xvf docbook-style-xsl*.tgz 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-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.*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.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 mkdir linuxdoc-tools && cd linuxdoc-tools rpm2tgz $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm tar xvf linuxdoc-tools*.src.tgz 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.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 {} \; # Apply an upstreamed fix for gtk-doc-1.13: bzcat $CWD/sources/gtkdoc-1.13-fixref.patch.bz2 | patch --verbose -p1 || exit 1 # 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 #EOF