#!/bin/bash ####################################################################################### # Script: linuxdoc-tools.build # Purpose: Build & install all components that form the linuxdoc-tools # Slackware Package. # Author: Stuart Winter , 2005-2024 # 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! :-) ####################################################################################### # Misc notes # 1. Bug: Problem when validating docbook 4.5 documents # Res: Won't Fix: Address such problems locally. # See this thread for a discussion on this subject. # https://www.linuxquestions.org/questions/showthread.php?p=5820741#post5820741 ####################################################################################### # Version of LDT (which is also the .t?z package version) LINUXDOCTOOLSVER=$PKGVERSION # Bundled package versions: ASCIIDOCVER=10.2.0 DSSSLSTYLESHEETSVER=1.79 # docbook-dsssl-*.tar.xz (plus -doc- source archive), not SRPM. XSLSTYLESHEETSVER=1.79.2 # docbook-style-xsl-*src.rpm ("DocBook XSL Stylesheets" in our ChangeLog.txt) DOCBOOKUTILSVER=0.6.14 SGMLDTD3VER=3.1 SGMLDTD4VER=4.5 XMLDTDVER=4.5 GNOMEDOCUTILSVER=0.20.10 GTKDOCVER=1.34.0 SGMLSPLVER=1.03ii OPENJADEVER=1.3.2 OPENSPVER=1.5.2 SGMLCOMMONVER=0.6.3 XMLTOVER=0.0.28 DOCBOOK2XVER=0.8.8 # Global settings: XML_CATALOG=/etc/xml/catalog XML_DOCBOOKCATALOG=/etc/xml/docbook # Determine the general CFLAGS for the known architectures: case $ARCH in arm*) export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -mtune=generic-armv7-a -mabi=aapcs-linux" export LIBDIRSUFFIX="" export HOSTTARGET="-gnueabihf" ;; aarch64) export SLKCFLAGS="-O2" export LIBDIRSUFFIX="64" export HOSTTARGET="" ;; riscv64) export SLKCFLAGS="-O2" export LIBDIRSUFFIX="64" export HOSTTARGET="" ;; i?86) export SLKCFLAGS="-O2 -march=pentium4 -mtune=generic" export LIBDIRSUFFIX="" export HOSTTARGET="" ;; x86_64) export SLKCFLAGS="-O2 -fPIC" export LIBDIRSUFFIX="64" export HOSTTARGET="" ;; esac # Hack for GCC: SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-int" # 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: Pass 1 of 2 ################# function build_asciidoc() { # Extract source: cd $TMP rm -rf asciidoc mkdir -p asciidoc{,-collect} && cd asciidoc rpm2cpio $CWD/sources/asciidoc-${ASCIIDOCVER}*.src.rpm | cpio -div || exit 1 tar xvf asciidoc-py-*.tar.*z cd asciidoc-py-*/ || 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: # Assemble patch list from spec file: # grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}' for i in \ \ asciidoc-table-separator.patch \ \ ; do patch -p1 --verbose < ../${i} || exit 1 done || exit 1 # Configure: autoreconf -v CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --docdir=/usr/doc/asciidoc-$ASCIIDOCVER \ --mandir=/usr/man || exit 1 # Install: if [ "$1" = "nodocs" ]; then echo "*********************************************************************" echo "*** Building asciidoc without documentation - expect errors below ***" echo "*********************************************************************" make -i install echo "******************************************************************" echo "*** Built asciidoc without documentation - expect errors above ***" echo "******************************************************************" else # It's the full build and installation: # Install the documentation into a temporary location so that we can # filter it manually, as it does not respect --mandir and there's a good # amount of superfluous stuff that we don't want to package: make install docs DESTDIR=$TMP/asciidoc-collect || exit 1 # "make install" target doesn't include the docs, so we can install # everything else for collection by slacktrack directly: make install || exit 1 [ ! -x /usr/bin/asciidoc ] && { echo "*** Error: asciidoc wasn't installed! ***" ; exit 1;} # Copy docs: mkdir -vpm755 /usr/doc/asciidoc-$ASCIIDOCVER cp -fav \ BUGS.adoc CHANGELOG.adoc COPYRIGHT LICENSE README.md \ /usr/doc/asciidoc-$ASCIIDOCVER/ # Collect what we want and place it into the file system for collection # by slacktrack: pushd $TMP/asciidoc-collect/usr/doc/asciidoc-*/ # Man pages: mv -fv doc/{asciidoc.1,a2x.1} /usr/man/man1/ rm -fv doc/*.1.txt # wipe the sources # Other stuff: # We're omitting these dirs: dblatex/ docbook-xsl/ mv -fv doc images /usr/doc/asciidoc-$ASCIIDOCVER/ popd fi } # Build asciidoc without any documentation (man pages). We'll have # a 2nd pass once we have the pre-requisites installed (docbook-style-xsl) later on: build_asciidoc nodocs ####################### 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 'sgml-common-xmldir.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 CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --mandir=/usr/man \ --infodir=/usr/info \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --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 # Inconsistency between help & man page: patch --verbose -p1 < ../opensp-manpage.patch || exit 1 patch --verbose -p1 < ../opensp-nodeids.patch || exit 1 # Fix build with recent clang: patch --verbose -p1 < ../opensp-configure-c99.patch || exit 1 # Refresh libtool for new architecture definitions: find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}' find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}' # 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. CXXFLAGS="$SLKCFLAGS -fno-lifetime-dse" \ ./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: # https://www.linuxfromscratch.org/blfs/view/stable/pst/openjade.html # Extract source: cd $TMP tar xvf $CWD/sources/openjade-${OPENJADEVER}.tar.xz cd openjade*/ || 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: # # GCC >=4.6 patch: xz -dc $CWD/sources/openjade-1.3.2-gcc46.patch.xz | patch -p1 --verbose || exit 1 # Migrate from Perl 4 'getopts' function which was deprecated in Perl 5.16: sed -i -e '/getopts/{N;s#&G#g#;s#do .getopts.pl.;##;}' -e '/use POSIX/ause Getopt::Std;' msggen.pl # Refresh libtool for new architecture definitions: find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}' find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}' # Configure: CXXFLAGS="$SLKCFLAGS -fno-lifetime-dse" \ ./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.*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 {} \; # Extract patch set from Spec file: # grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}' # # 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 \ docbook-utils-newgrep.patch \ \ ; do patch --verbose -p1 < ../$i done || exit 1 # Refresh libtool for new architecture definitions: find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}' find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}' # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CPPFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --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 ! grep -F '[[: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 $XML_DOCBOOKCATALOG ]; then xmlcatalog --noout --create $XML_DOCBOOKCATALOG fi && xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML V${XMLDTDVER}//EN" \ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}/docbookx.dtd" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//DTD DocBook XML CALS Table Model V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/calstblx.dtd" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/soextblx.dtd" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Information Pool V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbpoolx.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbhierx.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ELEMENTS DocBook XML HTML Tables V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/htmltblx.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Notations V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbnotnx.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Character Entities V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbcentx.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "public" \ "-//OASIS//ENTITIES DocBook XML Additional General Entities V${XMLDTDVER}//EN" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}/dbgenent.mod" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \ $XML_DOCBOOKCATALOG && xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/${XMLDTDVER}" \ "file:///usr/share/xml/docbook/xml-dtd-${XMLDTDVER}" \ $XML_DOCBOOKCATALOG || exit 1 # # Populate /etc/xml/catalog: # if [ ! -e $XML_CATALOG ]; then xmlcatalog --noout --create $XML_CATALOG fi && xmlcatalog --noout --add "delegatePublic" \ "-//OASIS//ENTITIES DocBook XML" \ "file:///etc/xml/docbook" \ $XML_CATALOG && xmlcatalog --noout --add "delegatePublic" \ "-//OASIS//DTD DocBook XML" \ "file:///etc/xml/docbook" \ $XML_CATALOG && xmlcatalog --noout --add "delegateSystem" \ "http://www.oasis-open.org/docbook/" \ "file:///etc/xml/docbook" \ $XML_CATALOG && xmlcatalog --noout --add "delegateURI" \ "http://www.oasis-open.org/docbook/" \ "file:///etc/xml/docbook" \ $XML_CATALOG || exit 1 # 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" \ $XML_DOCBOOKCATALOG || exit 1 xmlcatalog --noout --add "rewriteSystem" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \ $XML_DOCBOOKCATALOG || exit 1 xmlcatalog --noout --add "rewriteURI" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \ "file:///usr/share/xml/docbook/xml-dtd-$XMLDTDVER" \ $XML_DOCBOOKCATALOG || exit 1 xmlcatalog --noout --add "delegateSystem" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ "file:///etc/xml/docbook" \ $XML_CATALOG || exit 1 xmlcatalog --noout --add "delegateURI" \ "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \ "file:///etc/xml/docbook" \ $XML_CATALOG || exit 1 done # Copy docs: mkdir -pm755 /usr/doc/xml-dtd-$XMLDTDVER cp -favv \ ChangeLog README \ /usr/doc/xml-dtd-$XMLDTDVER ############################### ## docbook-xsl (stylesheets) ## ############################### # Build receipes: # [1] http://www.linuxfromscratch.org/blfs/view/8.1/pst/docbook-xsl.html # [2] Fedora's .spec file - included witin the SRPM we extract. # # Extract source: cd $TMP mkdir docbook-style-xsl && cd docbook-style-xsl # This directory holds the sources and patches extracted from the SRPM: rpm2cpio $CWD/sources/docbook-style-xsl-*.src.rpm | cpio -div || exit 1 # Create a build directory to contain the two source archives: # # Rename the "-nons-" package name back to the original, "docbook-xsl-" mkdir -p build/docbook-xsl-$XSLSTYLESHEETSVER ; cd build/docbook-xsl-$XSLSTYLESHEETSVER tar xvf ../../docbook-xsl-nons-$XSLSTYLESHEETSVER.tar.bz2 || exit 1 mv -fv docbook-xsl-nons-$XSLSTYLESHEETSVER/* . cd .. # Merge doc package into a single source tree (unpacks in to docbook-xsl-$XSLSTYLESHEETSVER) tar xvf ../docbook-xsl-doc-$XSLSTYLESHEETSVER.tar.bz2 || exit 1 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 {} \; # Assemble patch list from spec file (and see individual level-2 patch outside of 'for' loop below): # grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}' # Apply patches: # Note: 'docbook-style-xsl-non-recursive-string-subst.patch' is applied separately # as it needs a different patch level. # We don't apply 'docbook-style-xsl-1.79.2-fix-gtk-doc-multilib.patch' for i in \ \ docbook-xsl-pagesetup.patch \ docbook-xsl-marginleft.patch \ docbook-xsl-newmethods.patch \ docbook-xsl-non-constant-expressions.patch \ docbook-xsl-list-item-body.patch \ docbook-xsl-mandir.patch \ \ ; do patch --verbose -p1 < ../../$i done || exit 1 patch --verbose -p2 < ../../docbook-style-xsl-non-recursive-string-subst.patch || exit 1 cp -fav ../../docbook-style-xsl.Makefile Makefile # Switch to UTF-8 files: for fhtml in $(find ./doc -name '*.html' -type f) ; do iconv -f ISO-8859-1 -t UTF-8 "$fhtml" -o "$fhtml".tmp mv -f "$fhtml".tmp "$fhtml" sed -i 's/charset=ISO-8859-1/charset=UTF-8/' "$fhtml" done for f in $(find -name "*'*") ; do mv -fv "$f" $(echo "$f" | tr -d "'") done # Build and install: make install \ BINDIR=/usr/bin \ DESTDIR=/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER || exit 1 install -vpm644 \ VERSION.xsl \ /usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER/ || exit 1 ln -vfs xsl-stylesheets-$XSLSTYLESHEETSVER \ /usr/share/xml/docbook/xsl-stylesheets # Don't ship the extensions (https://bugzilla.redhat.com/show_bug.cgi?id=177256) rm -rf /usr/share/xml/docbook/xsl-stylesheets/extensions/* # 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 # Some stylesheets will look for 'VERSION.xsl' or 'VERSION' # Migrating from docbook-xsl to docbook-xsl-nons has meant both are # now present, and differ by a couple of lines. # However, if 'VERSION' ceases to exist, let's symlink it to .xsl # (which will be present, since we put it there during the install phase above). cd docbook-xsl [ ! -r VERSION ] && ln -vsf VERSION.xsl VERSION ) # Copy docs: mkdir -vpm755 /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER cp -fav doc/* README* RELEASE-NOTES* NEWS* \ /usr/doc/docbook-xsl-$XSLSTYLESHEETSVER # Create config files: mkdir -vpm755 /etc/xml if [ ! -f $XML_CATALOG ]; then xmlcatalog --noout --create $XML_CATALOG fi # Configure system: xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl-nons/$XSLSTYLESHEETSVER" \ "file://usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl-nons/$XSLSTYLESHEETSVER" \ "file://usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 xmlcatalog --noout --add "rewriteSystem" \ "http://cdn.docbook.org/release/xsl-nons/current" \ "file://usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 xmlcatalog --noout --add "rewriteURI" \ "http://cdn.docbook.org/release/xsl-nons/current/" \ "file://usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 ## Note: ## These are the sourceforge URIs, for the previous package before ## it was renamed to "-nons". We'll keep these around for a while, but ## check that they still exist when next updating this package. xmlcatalog --noout --add "rewriteSystem" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 xmlcatalog --noout --add "rewriteURI" \ "http://docbook.sourceforge.net/release/xsl/current" \ "/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER" \ $XML_CATALOG || exit 1 ####################### 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: CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ --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 {} \; tar xvvf $CWD/sources/libsgmls-perl_$SGMLSPLVER-*.debian.tar.xz || exit 1 # Apply patches from Debian: cat debian/patches/series | while read dpf ; do patch -p1 --verbose < debian/patches/$dpf || exit 1 done || 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 mv -fv /usr/bin/sgmlspl{.pl,} # 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 tar xvf $CWD/sources/linuxdoc-tools-$LINUXDOCTOOLSVER.tar.?z cd linuxdoc-tools*/ || 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 were originally taken from the Fedora SRPM but broken out later # when the 'original' source from Debian began to be used) # We used to apply 'linuxdoc-tools-0.9.13-letter.patch.xz' but it won't apply to the # latest linuxdoc-tools source. It simply changed the default page size to 'Letter'. # Probably not too much to worry about there. for i in \ linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch.xz ; do xzcat $CWD/sources/$i | patch --verbose -p1 || exit 1 done || exit 1 # Find out what our Vendor perl directory is: eval $(perl '-V:installvendorlib') mkdir -p $PKG/$installvendorlib # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CPPFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --with-perllibdir=$installvendorlib \ --mandir=/usr/man \ --with-installed-nsgmls \ --infodir=/usr/info \ --enable-docs="txt html 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 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 mkdir gnome-doc-utils && cd gnome-doc-utils rpm2cpio $CWD/sources/gnome-doc-utils-*.src.rpm | cpio -div || exit 1 tar xvf 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 {} \; # Apply patches: # Extract patch set from Spec file: # grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}' # # Note: exclude patch 'gnome-doc-utils-0.14.0-package.patch' as it's an RH bug from 2008 # and we've never included it. for i in \ \ gnome-doc-utils-0.20.10-python3.patch \ gnome-doc-utils-0.20.10-configure-py312.patch \ \ ; do patch --verbose -p1 < ../$i done || exit 1 # Refresh libtool for new architecture definitions: find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}' find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}' # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CPPFLAGS="$SLKCFLAGS" \ PYTHON=/usr/bin/python3 \ ./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 mkdir gtk-doc && cd gtk-doc rpm2cpio $CWD/sources/gtk-doc-*.src.rpm | cpio -div || exit 1 tar xvf gtk-doc-$GTKDOCVER.tar.*z* cd gtk-doc-*/ || 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: # Extract patch set from Spec file: # grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}' # Note: exclude patch 'gnome-doc-utils-0.14.0-package.patch' as it's an RH bug from 2008 # and we've never included it. for i in \ \ 74.patch \ \ ; do patch --verbose -p1 < ../$i done || exit 1 # Configure: mkdir meson-build pushd meson-build CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CPPFLAGS="$SLKCFLAGS" \ meson setup \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --libexecdir=/usr/libexec \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --includedir=/usr/include \ --datadir=/usr/share \ --mandir=/usr/man \ --sysconfdir=/etc \ --localstatedir=/var \ .. || exit 1 # Build: "${NINJA:=ninja}" $NUMJOBS --verbose || exit 1 # Install: DESTDIR=/ $NINJA install --verbose || exit 1 popd # Copy docs: mkdir -vpm755 /usr/doc/gtk-doc-$GTKDOCVER cp -fav \ AUTHORS COPYING INSTALL MAINTAINERS NEWS README TODO \ /usr/doc/gtk-doc-$GTKDOCVER ####################### Build docbook2X ############################### cd $TMP # Build supporting PERL libraries first: ( mkdir XML-NamespaceSupport && cd XML-NamespaceSupport rpm2cpio $CWD/sources/perl-XML-NamespaceSupport-*.src.rpm | cpio -di tar xvf XML-NamespaceSupport-*.tar.gz cd XML-NamespaceSupport*/ || exit 1 perl Makefile.PL INSTALLDIRS=vendor # Make sure the man pages go where we want them: grep -Flr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g' make || exit 1 make test || exit 1 make pure_install || exit 1 || exit 1 ) || exit 1 ( mkdir perl-XML-SAX-Base && cd perl-XML-SAX-Base rpm2cpio $CWD/sources/perl-XML-SAX-Base-*.src.rpm | cpio -di tar xvf XML-SAX-Base-*z cd XML-SAX-Base-*/ || exit 1 perl Makefile.PL INSTALLDIRS=vendor grep -Flr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g' make || exit 1 make test || exit 1 make pure_install || exit 1 ) || exit 1 ( mkdir XML-SAX && cd XML-SAX rpm2cpio $CWD/sources/perl-XML-SAX-[0-9]*.src.rpm | cpio -di tar xvf XML-SAX-*nopatents.tar* cd XML-SAX-*/ || exit 1 patch -p1 < ../perl-XML-SAX-0.99-rt20126.patch || exit 1 # Answer Y to updating ParserDetails.ini: yes | perl Makefile.PL INSTALLDIRS=vendor grep -Flr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g' make || exit 1 make test || exit 1 make pure_install || exit 1 # We need to make a ParserDetails.ini file, as suggested here: # http://perl-xml.sourceforge.net/faq/#parserdetails.ini perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()" ) || exit 1 # Build docbook2X: # Extract source: tar xvf $CWD/sources/docbook2x*.orig.tar.xz cd docbook2X-*/ || 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: tar xvvf $CWD/sources/docbook2x*debian*z || exit 1 for i in \ 01_fix_static_datadir_evaluation.patch \ 02_fix_418703_dont_use_abbreviated_sfnet_address.patch \ 03_fix_420153_filename_whitespace_handling.patch \ 04_fix_442782_preprocessor_declaration_syntax.patch \ 05_fix_439214_error_on_missing_refentry.patch \ 06_fix_man_typo.patch ; do patch --verbose -p1 < debian/patches/$i || exit 1 done # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ CPPFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ --infodir=/usr/info \ --docdir=/usr/doc/docbook2X-$DOCBOOK2XVER \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-dependency-tracking \ --program-transform-name="s/^docbook2/docbook2x-/" \ --with-html-xsl \ --build=$ARCH-slackware-linux$HOSTTARGET || exit 1 # Build: make || exit 1 # Install: make install || exit 1 mv -fv /usr/share/doc/docbook2X /usr/doc/docbook2X-$DOCBOOK2XVER # Copy docs: mkdir -vpm755 /usr/doc/docbook2X-$DOCBOOK2XVER cp -fav \ AUTHORS COPYING ChangeLog NEWS README THANKS TODO \ /usr/doc/docbook2X-$DOCBOOK2XVER ####################### Build AsciiDoc: Pass 2 of 2 ################# # Now build asciidoc with documentation: build_asciidoc ####################################################################### # Install the package description and post installation script: rm -rf /install mkdir -vpm755 /install install -vpm644 $CWD/slack-desc /install #zcat $CWD/doinst.sh.gz > /install/doinst.sh