Author: pierre Date: Tue Apr 16 00:30:02 2019 New Revision: 4093 Log: BLFS: fix generation of install and test instructions (ticket #1721):
- add a gen-install.xsl stylesheet for grouping all cases - add a mode="installation" attribute for templates - rewrite sect2 template so that the right templates are applied - adapt other templates so that they are compatible - rewording of some comments (no direct relation with the ticket) Added: jhalfs/trunk/BLFS/xsl/gen-install.xsl (contents, props changed) Modified: jhalfs/trunk/BLFS/xsl/scripts.xsl Added: jhalfs/trunk/BLFS/xsl/gen-install.xsl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ jhalfs/trunk/BLFS/xsl/gen-install.xsl Tue Apr 16 00:30:02 2019 (r4093) @@ -0,0 +1,257 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- $Id$ --> + + + <xsl:template match="screen" mode="installation"> +<!-- "nature" variables: + - 'non-root': executable as user + - 'config': execute as root, with no special formatting + - 'install': execute as root, with PKG_DEST or escape instructions + - 'none': does not exist (for preceding of following uniquely) +--> + <xsl:variable name="my-nature"> + <xsl:choose> + <xsl:when test="not(@role)"> + <xsl:text>non-root</xsl:text> + </xsl:when> + <xsl:when test="contains(string(),'useradd') or + contains(string(),'groupadd') or + contains(string(),'usermod') or + contains(string(),'icon-cache') or + contains(string(),'desktop-database') or + contains(string(),'compile-schemas') or + contains(string(),'query-loaders') or + contains(string(),'pam.d') or + contains(string(),'query-immodules')"> + <xsl:text>config</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>install</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable + name="prec-string" + select="string(preceding-sibling::screen[not(@role='nodump') and + ./userinput][1])"/> +<!-- + <xsl:message> + <xsl:text> +============================== +List of preceding siblings for "</xsl:text> + <xsl:value-of select="./userinput"/> + <xsl:text>": +</xsl:text> + <xsl:for-each select="preceding-sibling::screen[not(@role='nodump') and + ./userinput] | + preceding-sibling::para/command"> + <xsl:copy-of select=".//text()"/> + <xsl:text> +=== +</xsl:text> + </xsl:for-each> + </xsl:message> +--> + <xsl:variable name="prec-nature"> + <xsl:choose> + <xsl:when + test="$prec-string='' or + (preceding-sibling::screen[not(@role='nodump') and + ./userinput] | + preceding-sibling::para/command[contains(text(),'check') or + contains(text(),'test')] + )[last()][self::command]"> + <xsl:text>none</xsl:text> + </xsl:when> + <xsl:when + test="preceding-sibling::screen + [not(@role='nodump') and ./userinput][1][not(@role)]"> + <xsl:text>non-root</xsl:text> + </xsl:when> + <xsl:when test="contains($prec-string,'useradd') or + contains($prec-string,'groupadd') or + contains($prec-string,'usermod') or + contains($prec-string,'icon-cache') or + contains($prec-string,'desktop-database') or + contains($prec-string,'compile-schemas') or + contains($prec-string,'query-loaders') or + contains($prec-string,'pam.d') or + contains($prec-string,'query-immodules')"> + <xsl:text>config</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>install</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable + name="follow-string" + select="string(following-sibling::screen[not(@role='nodump') and + ./userinput][1])"/> + + <xsl:variable name="follow-nature"> + <xsl:choose> + <xsl:when + test="$follow-string='' or + (following-sibling::screen[not(@role='nodump') and + ./userinput] | + following-sibling::para/command[contains(text(),'check') or + contains(text(),'test')] + )[1][self::command]"> + <xsl:text>none</xsl:text> + </xsl:when> + <xsl:when + test="following-sibling::screen + [not(@role='nodump') and ./userinput][1][not(@role)]"> + <xsl:text>non-root</xsl:text> + </xsl:when> + <xsl:when test="contains($follow-string,'useradd') or + contains($follow-string,'groupadd') or + contains($follow-string,'usermod') or + contains($follow-string,'icon-cache') or + contains($follow-string,'desktop-database') or + contains($follow-string,'compile-schemas') or + contains($follow-string,'query-loaders') or + contains($follow-string,'pam.d') or + contains($follow-string,'query-immodules')"> + <xsl:text>config</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>install</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$my-nature='non-root'"> + <xsl:if test="$prec-nature='install'"> + <xsl:call-template name="end-install"/> + <xsl:call-template name="end-root"/> + </xsl:if> + <xsl:if test="$prec-nature='config'"> + <xsl:call-template name="end-root"/> + </xsl:if> + <xsl:apply-templates/> + <xsl:text> +</xsl:text> + </xsl:when> + + <xsl:when test="$my-nature='config'"> + <xsl:if test="$prec-nature='none' or $prec-nature='non-root'"> + <xsl:call-template name="begin-root"/> + </xsl:if> + <xsl:if test="$prec-nature='install'"> + <xsl:call-template name="end-install"/> + </xsl:if> + <xsl:apply-templates mode="root"/> + <xsl:text> +</xsl:text> + <xsl:if test="$follow-nature='none'"> + <xsl:call-template name="end-root"/> + </xsl:if> + </xsl:when> + + <xsl:when test="$my-nature='install'"> + <xsl:if test="$prec-nature='none' or $prec-nature='non-root'"> + <xsl:if test="contains($list-stat-norm, + concat(' ',ancestor::sect1/@id,' '))"> + <xsl:call-template name="output-destdir"/> + </xsl:if> + <xsl:call-template name="begin-root"/> + <xsl:call-template name="begin-install"/> + </xsl:if> + <xsl:if test="$prec-nature='config'"> + <xsl:if test="contains($list-stat-norm, + concat(' ',ancestor::sect1/@id,' '))"> + <xsl:call-template name="end-root"/> + <xsl:call-template name="output-destdir"/> + <xsl:call-template name="begin-root"/> + </xsl:if> + <xsl:call-template name="begin-install"/> + </xsl:if> + <xsl:apply-templates mode="install"/> + <xsl:text> +</xsl:text> + <xsl:if test="$follow-nature='none'"> + <xsl:call-template name="end-install"/> + <xsl:call-template name="end-root"/> + </xsl:if> + </xsl:when> + + </xsl:choose> + </xsl:template> + + <xsl:template name="begin-root"> + <xsl:if test="$sudo='y'"> + <xsl:text>sudo -E sh << ROOT_EOF +</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template name="begin-install"> + <xsl:if test="$wrap-install = 'y'"> + <xsl:text>if [ -r "$JH_PACK_INSTALL" ]; then + source $JH_PACK_INSTALL + export -f wrapInstall + export -f packInstall +fi +wrapInstall ' +</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template name="end-root"> + <xsl:if test="$sudo='y'"> + <xsl:text>ROOT_EOF +</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template name="end-install"> + <xsl:if test="$del-la-files = 'y'"> + <xsl:call-template name="output-root"> + <xsl:with-param name="out-string" select="$la-files-instr"/> + </xsl:call-template> + </xsl:if> + <xsl:if test="$wrap-install = 'y'"> + <xsl:text>'
packInstall
</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template match="text()" mode="install"> + <xsl:call-template name="output-install"> + <xsl:with-param name="out-string" select="."/> + </xsl:call-template> + </xsl:template> + + <xsl:template name="output-install"> + <xsl:param name="out-string" select="''"/> + <xsl:choose> + <xsl:when test="contains($out-string,string($APOS)) + and $wrap-install = 'y'"> + <xsl:call-template name="output-root"> + <xsl:with-param + name="out-string" + select="substring-before($out-string,string($APOS))"/> + </xsl:call-template> + <xsl:text>'\''</xsl:text> + <xsl:call-template name="output-install"> + <xsl:with-param name="out-string" + select="substring-after($out-string,string($APOS))"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="output-root"> + <xsl:with-param name="out-string" select="."/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> Modified: jhalfs/trunk/BLFS/xsl/scripts.xsl ============================================================================== --- jhalfs/trunk/BLFS/xsl/scripts.xsl Sat Apr 13 09:33:38 2019 (r4092) +++ jhalfs/trunk/BLFS/xsl/scripts.xsl Tue Apr 16 00:30:02 2019 (r4093) @@ -9,7 +9,8 @@ <!-- XSLT stylesheet to create shell scripts from "linear build" BLFS books. --> -<!-- Check whether the book is sysv or systemd --> +<!-- parameters and global variables --> + <!-- Check whether the book is sysv or systemd --> <xsl:variable name="rev"> <xsl:choose> <xsl:when test="//bookinfo/title/phrase[@revision='systemd']"> @@ -80,64 +81,74 @@ </xsl:variable> -<xsl:variable name="list-stat-norm" - select="concat(' ', normalize-space($list-stat),' ')"/> + <xsl:variable name="list-stat-norm" + select="concat(' ', normalize-space($list-stat),' ')"/> + +<!-- To be able to use the single quote in tests --> + <xsl:variable name="APOS">'</xsl:variable> + +<!-- end parameters and global variables --> + +<!-- include the templates for the screen children of role="install" sect2 --> + <xsl:include href="gen-install.xsl"/> + +<!--=================== Begin processing ========================--> <xsl:template match="/"> - <xsl:apply-templates select="//sect1"/> + <xsl:apply-templates select="//sect1[@id != 'bootscripts' and + @id != 'systemd-units']"/> </xsl:template> <!--=================== Master chunks code ======================--> <xsl:template match="sect1"> - <xsl:if test="@id != 'bootscripts' and @id != 'systemd-units'"> - <!-- The file names --> - <xsl:variable name="filename" select="@id"/> - - <!-- The build order --> - <xsl:variable name="position" select="position()"/> - <xsl:variable name="order"> - <xsl:choose> - <xsl:when test="string-length($position) = 1"> - <xsl:text>00</xsl:text> - <xsl:value-of select="$position"/> - </xsl:when> - <xsl:when test="string-length($position) = 2"> - <xsl:text>0</xsl:text> - <xsl:value-of select="$position"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$position"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> + <!-- The file names --> + <xsl:variable name="filename" select="@id"/> + + <!-- The build order --> + <xsl:variable name="position" select="position()"/> + <xsl:variable name="order"> + <xsl:choose> + <xsl:when test="string-length($position) = 1"> + <xsl:text>00</xsl:text> + <xsl:value-of select="$position"/> + </xsl:when> + <xsl:when test="string-length($position) = 2"> + <xsl:text>0</xsl:text> + <xsl:value-of select="$position"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$position"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> <!-- Depuration code --> - <xsl:message> - <xsl:text>SCRIPT is </xsl:text> - <xsl:value-of select="concat($order,'-z-',$filename)"/> - <xsl:text>
 FTPDIR is </xsl:text> - <xsl:value-of select="$filename"/> - <xsl:text>

</xsl:text> - </xsl:message> - - <!-- Creating the scripts --> - <exsl:document href="{$order}-z-{$filename}" method="text"> - <xsl:text>#!/bin/bash + <xsl:message> + <xsl:text>SCRIPT is </xsl:text> + <xsl:value-of select="concat($order,'-z-',$filename)"/> + <xsl:text>
 FTPDIR is </xsl:text> + <xsl:value-of select="$filename"/> + <xsl:text>

</xsl:text> + </xsl:message> + + <!-- Creating the scripts --> + <exsl:document href="{$order}-z-{$filename}" method="text"> + <xsl:text>#!/bin/bash set -e unset MAKELEVEL - +<!-- the above is needed for some packages --> </xsl:text> - <xsl:choose> - <!-- Package page --> - <xsl:when test="sect2[@role='package']"> - <!-- We build in a subdirectory, whose name may be needed - if using package management (see envars.conf), so - "export" it --> - <xsl:text>export JH_PKG_DIR=</xsl:text> - <xsl:value-of select="$filename"/> - <xsl:text> + <xsl:choose> + <!-- Package page --> + <xsl:when test="sect2[@role='package']"> + <!-- We build in a subdirectory, whose name may be needed + if using package management (see envars.conf), so + "export" it --> + <xsl:text>export JH_PKG_DIR=</xsl:text> + <xsl:value-of select="$filename"/> + <xsl:text> SRC_DIR=${JH_SRC_ARCHIVE}${JH_SRC_SUBDIRS:+/${JH_PKG_DIR}} BUILD_DIR=${JH_BUILD_ROOT}${JH_BUILD_SUBDIRS:+/${JH_PKG_DIR}} mkdir -p $SRC_DIR @@ -146,54 +157,56 @@ </xsl:text> <!-- If stats are requested, include some definitions and intitializations --> - <xsl:if test="contains($list-stat-norm,concat(' ',@id,' '))"> - <xsl:text>INFOLOG=$(pwd)/info-${JH_PKG_DIR} + <xsl:if test="contains($list-stat-norm,concat(' ',@id,' '))"> + <xsl:text>INFOLOG=$(pwd)/info-${JH_PKG_DIR} TESTLOG=$(pwd)/test-${JH_PKG_DIR} unset MAKEFLAGS #MAKEFLAGS=-j4 echo MAKEFLAGS: $MAKEFLAGS > $INFOLOG -> $TESTLOG +: > $TESTLOG PKG_DEST=${BUILD_DIR}/dest rm -rf $PKG_DEST </xsl:text> - </xsl:if> - <!-- Download code and build commands --> - <xsl:apply-templates select="sect2"/> - <!-- Clean-up --> - <xsl:text>cd $BUILD_DIR + </xsl:if> + <!-- Download code and build commands --> + <xsl:apply-templates select="sect2"/> + <!-- Clean-up --> + <xsl:text>cd $BUILD_DIR [[ -n "$JH_KEEP_FILES" ]] || </xsl:text> - <!-- In some case, some files in the build tree are owned - by root --> - <xsl:if test="$sudo='y'"> - <xsl:text>sudo </xsl:text> - </xsl:if> - <xsl:text>rm -rf $JH_UNPACKDIR unpacked

</xsl:text> - </xsl:when> - <!-- Non-package page --> - <xsl:otherwise> - <xsl:apply-templates select=".//screen" mode="not-pack"/> - </xsl:otherwise> - </xsl:choose> - <xsl:text>exit</xsl:text> - </exsl:document> - </xsl:if><!-- id!=bootscript or id!=systemd-units --> + <!-- In some case, some files in the build tree are owned + by root --> + <xsl:if test="$sudo='y'"> + <xsl:text>sudo </xsl:text> + </xsl:if> + <xsl:text>rm -rf $JH_UNPACKDIR unpacked

</xsl:text> + </xsl:when> + <!-- Non-package page --> + <xsl:otherwise> + <xsl:apply-templates select=".//screen" mode="not-pack"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>exit</xsl:text> + </exsl:document> </xsl:template> <!--======================= Sub-sections code =======================--> <xsl:template match="sect2"> <xsl:choose> + <xsl:when test="@role = 'package'"> <xsl:text>cd $SRC_DIR </xsl:text> <!-- Download information is in bridgehead tags --> <xsl:apply-templates select="bridgehead[@renderas='sect3']"/> <xsl:text>
</xsl:text> - </xsl:when> + </xsl:when><!-- @role="package" --> + <xsl:when test="@role = 'qt4-prefix' or @role = 'qt5-prefix'"> <xsl:apply-templates select=".//screen[./userinput]"/> </xsl:when> + <xsl:when test="@role = 'installation'"> <xsl:text> cd $BUILD_DIR @@ -248,17 +261,21 @@ </xsl:if> <xsl:apply-templates + mode="installation" select=".//screen[not(@role = 'nodump') and ./userinput] | - .//para/command"/> + .//para/command[contains(text(),'check') or + contains(text(),'test')]"/> <xsl:if test="$sudo = 'y'"> <xsl:text>sudo /sbin/</xsl:text> </xsl:if> <xsl:text>ldconfig

</xsl:text> - </xsl:when> + </xsl:when><!-- @role="installation" --> + <xsl:when test="@role = 'configuration'"> <xsl:apply-templates mode="config" select=".//screen[not(@role = 'nodump') and ./userinput]"/> - </xsl:when> + </xsl:when><!-- @role="configuration" --> + </xsl:choose> </xsl:template> @@ -517,75 +534,30 @@ </xsl:choose> </xsl:template> <!--======================== Commands code ==========================--> +<!-- Code for installation instructions is in gen-install.xsl --> <xsl:template match="screen"> - <xsl:if test="child::* = userinput and not(@role = 'nodump')"> - <xsl:choose> -<!-- First the case of installation instructions --> - <xsl:when test="@role = 'root' and - ancestor::sect2[@role='installation'] and - not(contains(string(),'useradd')) and - not(contains(string(),'usermod')) and - not(contains(string(),'icon-cache')) and - not(contains(string(),'desktop-database')) and - not(contains(string(),'compile-schemas')) and - not(contains(string(),'groupadd'))"> - <xsl:if test="not(preceding-sibling::screen[1][@role='root'])"> - <xsl:if test="contains($list-stat-norm, - concat(' ', - ancestor::sect1/@id, - ' '))"> - <xsl:call-template name="output-destdir"/> - </xsl:if> - <xsl:if test="$sudo = 'y'"> - <xsl:text>sudo -E sh << ROOT_EOF
</xsl:text> - </xsl:if> - <xsl:if test="$wrap-install = 'y'"> - <xsl:text>if [ -r "$JH_PACK_INSTALL" ]; then - source $JH_PACK_INSTALL - export -f wrapInstall - export -f packInstall -fi -wrapInstall ' -</xsl:text> - </xsl:if> - </xsl:if> - <xsl:apply-templates mode="root"/> - <xsl:if test="not(following-sibling::screen[1][@role='root'])"> - <xsl:if test="$del-la-files = 'y'"> - <xsl:call-template name="output-root"> - <xsl:with-param name="out-string" select="$la-files-instr"/> - </xsl:call-template> - </xsl:if> - <xsl:if test="$wrap-install = 'y'"> - <xsl:text>'
packInstall</xsl:text> - </xsl:if> - <xsl:if test="$sudo = 'y'"> - <xsl:text>
ROOT_EOF</xsl:text> - </xsl:if> - </xsl:if> - </xsl:when> -<!-- then the case of other instructions run as root (configuration mainly) --> - <xsl:when test="@role = 'root'"> - <xsl:if test="not(preceding-sibling::screen[1][@role='root'])"> - <xsl:if test="$sudo = 'y'"> - <xsl:text>sudo -E sh << ROOT_EOF
</xsl:text> - </xsl:if> + <xsl:choose> +<!-- instructions run as root (configuration mainly) --> + <xsl:when test="@role = 'root'"> + <xsl:if test="not(preceding-sibling::screen[1][@role='root'])"> + <xsl:if test="$sudo = 'y'"> + <xsl:text>sudo -E sh << ROOT_EOF
</xsl:text> </xsl:if> - <xsl:apply-templates mode="root"/> - <xsl:if test="not(following-sibling::screen[1][@role='root'])"> - <xsl:if test="$sudo = 'y'"> - <xsl:text>
ROOT_EOF</xsl:text> - </xsl:if> + </xsl:if> + <xsl:apply-templates mode="root"/> + <xsl:if test="not(following-sibling::screen[1][@role='root'])"> + <xsl:if test="$sudo = 'y'"> + <xsl:text>
ROOT_EOF</xsl:text> </xsl:if> - </xsl:when> + </xsl:if> + </xsl:when> <!-- then all the instructions run as user --> - <xsl:otherwise> - <xsl:apply-templates select="userinput"/> - </xsl:otherwise> - </xsl:choose> - <xsl:text>
</xsl:text> - </xsl:if> + <xsl:otherwise> + <xsl:apply-templates select="userinput"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>
</xsl:text> </xsl:template> <xsl:template name="set-bootpkg-dir"> @@ -652,42 +624,61 @@ <xsl:text>
</xsl:text> </xsl:template> - <xsl:template match="para/command"> + <xsl:template match="command" mode="installation"> <xsl:variable name="ns" select="normalize-space(string())"/> - <xsl:if test="contains($ns,'test') or - contains($ns,'check')"> - <xsl:choose> - <xsl:when test="contains($list-stat-norm, - concat(' ',ancestor::sect1/@id,' '))"> + <xsl:variable name="first" + select="not( + boolean( + preceding-sibling::command[contains(text(),'check') or + contains(text(),'test')]))"/> + <xsl:variable name="last" + select="not( + boolean( + following-sibling::command[contains(text(),'check') or + contains(text(),'test')]))"/> + <xsl:choose> + <xsl:when test="contains($list-stat-norm, + concat(' ',ancestor::sect1/@id,' '))"> + <xsl:if test="$first"> <xsl:text> echo Time after make: ${SECONDS} >> $INFOLOG echo Size after make: $(sudo du -skx --exclude home /) >> $INFOLOG echo Time before test: ${SECONDS} >> $INFOLOG + </xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>#</xsl:text> - </xsl:otherwise> - </xsl:choose> - <xsl:choose> - <xsl:when test="contains($ns,'make')"> - <xsl:value-of select="substring-before($ns,'make ')"/> - <xsl:text>make </xsl:text> - <xsl:if test="not(contains($ns,'-k'))"> - <xsl:text>-k </xsl:text> - </xsl:if> - <xsl:value-of select="substring-after($ns,'make ')"/> - </xsl:when> - <xsl:otherwise> - <xsl:copy-of select="$ns"/> - </xsl:otherwise> - </xsl:choose> - <xsl:if test="contains($list-stat-norm, - concat(' ',ancestor::sect1/@id,' '))"> - <xsl:text> >> $TESTLOG 2>&1</xsl:text> - </xsl:if> - <xsl:text> || true
</xsl:text> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:text>#</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="contains($ns,'make')"> + <xsl:value-of select="substring-before($ns,'make ')"/> + <xsl:text>make </xsl:text> + <xsl:if test="not(contains($ns,'-k'))"> + <xsl:text>-k </xsl:text> + </xsl:if> + <xsl:value-of select="substring-after($ns,'make ')"/> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$ns"/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="contains($list-stat-norm, + concat(' ',ancestor::sect1/@id,' '))"> + <xsl:text> >> $TESTLOG 2>&1</xsl:text> </xsl:if> + <xsl:text> || true
</xsl:text> + <xsl:if test="contains($list-stat-norm, + concat(' ',ancestor::sect1/@id,' ')) and $last"> + <xsl:text> +echo Time after test: ${SECONDS} >> $INFOLOG +echo Size after test: $(sudo du -skx --exclude home /) >> $INFOLOG +echo Time before install: ${SECONDS} >> $INFOLOG + +</xsl:text> + </xsl:if> </xsl:template> <xsl:template match="userinput"> @@ -700,8 +691,6 @@ </xsl:call-template> </xsl:template> - <xsl:variable name="APOS">'</xsl:variable> - <xsl:template name="output-root"> <xsl:param name="out-string" select="''"/> <xsl:choose> @@ -749,19 +738,6 @@ select="substring-after($out-string,'\')"/> </xsl:call-template> </xsl:when> - <xsl:when test="contains($out-string,string($APOS)) - and $wrap-install = 'y' - and ancestor::sect2[@role='installation']"> - <xsl:call-template name="output-root"> - <xsl:with-param name="out-string" - select="substring-before($out-string,string($APOS))"/> - </xsl:call-template> - <xsl:text>'\''</xsl:text> - <xsl:call-template name="output-root"> - <xsl:with-param name="out-string" - select="substring-after($out-string,string($APOS))"/> - </xsl:call-template> - </xsl:when> <xsl:otherwise> <xsl:value-of select="$out-string"/> </xsl:otherwise> @@ -829,14 +805,6 @@ </xsl:template> <xsl:template name="output-destdir"> -<!-- Hopefully, the current node is the first screen with role equal to root. - We first output stats, since we are only called if stats are needed. - then we output DESTDIR instructions,etc --> - <xsl:text> -echo Time after tests: ${SECONDS} >> $INFOLOG -echo Size after tests: $(sudo du -skx --exclude home /) >> $INFOLOG -echo Time before install: ${SECONDS} >> $INFOLOG -</xsl:text> <xsl:apply-templates select="userinput|following-sibling::screen[@role='root']/userinput" mode="destdir"/> -- http://lists.linuxfromscratch.org/listinfo/alfs-log Unsubscribe: See the above information page