| Newsgroups |
gmane.linux.lfs.automated |
| Message-ID |
<[email protected]> |
This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch trunk
in repository jhalfs.
commit 9daa20265429c1fa7d27252c20690003fd6ea994
Author: Pierre Labastie <[email protected]>
AuthorDate: Sat Nov 6 15:43:58 2021 +0100
BLFS tools: Take variables from config instead of envars.conf
Get them in gen_pkg_book, and pass them to sripts.xsl
use them in scripts.xsl. We set them at the beginning of
of the scriptlet, so that it is easy to modify them.
---
BLFS/gen_pkg_book.sh | 53 ++++++++++++++----
BLFS/xsl/scripts.xsl | 152 ++++++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 174 insertions(+), 31 deletions(-)
diff --git a/BLFS/gen_pkg_book.sh b/BLFS/gen_pkg_book.sh
index 93fd575..7acbbb6 100755
--- a/BLFS/gen_pkg_book.sh
+++ b/BLFS/gen_pkg_book.sh
@@ -30,8 +30,18 @@ declare DEP_LEVEL
declare SUDO
declare LANGUAGE
declare WRAP_INSTALL
+declare PACK_INSTALL
declare DEL_LA_FILES
declare STATS
+declare SRC_ARCHIVE
+declare SRC_SUBDIRS
+declare BUILD_ROOT
+declare BUILD_SUBDIRS
+declare KEEP_FILES
+declare -i JOBS
+declare CFG_CFLAGS
+declare CFG_CXXFLAGS
+declare CFG_LDFLAGS
#--------------------------#
parse_configuration() { #
@@ -51,10 +61,20 @@ parse_configuration() { #
optDependency=* | \
MAIL_SERVER=* | \
WRAP_INSTALL=* | \
+ PACK_INSTALL=* | \
DEL_LA_FILES=* | \
STATS=* | \
LANGUAGE=* | \
- SUDO=* ) eval ${REPLY} # Define/set a global variable..
+ SUDO=* | \
+ SRC_ARCHIVE=* | \
+ SRC_SUBDIRS=* | \
+ BUILD_ROOT=* | \
+ BUILD_SUBDIRS=* | \
+ KEEP_FILES=* | \
+ JOBS=* | \
+ CFG_CFLAGS=* | \
+ CFG_CXXFLAGS=* | \
+ CFG_LDFLAGS=* ) eval ${REPLY} # Define/set a global variable..
continue ;;
esac
@@ -75,13 +95,15 @@ parse_configuration() { #
WRAP_INSTALL=${WRAP_INSTALL:-n}
DEL_LA_FILES=${DEL_LA_FILES:-n}
STATS=${STATS:-n}
+# Other boolean variables are supposed to be either set or unset. Their values
+# are not relevant
}
#--------------------------#
validate_configuration() { #
#--------------------------#
local -r dotSTR=".................."
- local -r PARAM_LIST="DEP_LEVEL SUDO LANGUAGE MAIL_SERVER WRAP_INSTALL DEL_LA_FILES STATS"
+ local -r PARAM_LIST="DEP_LEVEL SUDO LANGUAGE MAIL_SERVER WRAP_INSTALL PACK_INSTALL DEL_LA_FILES STATS SRC_ARCHIVE SRC_SUBDIRS BUILD_ROOT BUILD_SUBDIRS KEEP_FILES JOBS CFG_CFLAGS CFG_CXXFLAGS CFG_LDFLAGS"
local -r PARAM_VALS='${config_param}${dotSTR:${#config_param}} ${L_arrow}${BOLD}${!config_param}${OFF}${R_arrow}'
local config_param
local -i index
@@ -208,14 +230,25 @@ if test $STATS = y; then
else
LIST_STAT=""
fi
-xsltproc --xinclude --nonet \
- --stringparam sudo "$SUDO" \
- --stringparam wrap-install "$WRAP_INSTALL" \
- --stringparam del-la-files "$DEL_LA_FILES" \
- --stringparam list-stat "$LIST_STAT" \
- --stringparam language "$LANGUAGE" \
- --stringparam fqdn "$(hostname -f)" \
- -o ./scripts/ ${MakeScripts} \
+xsltproc --xinclude --nonet \
+ --stringparam language "$LANGUAGE" \
+ --stringparam sudo "$SUDO" \
+ --stringparam wrap-install "$WRAP_INSTALL" \
+ --stringparam pack-install "$PACK_INSTALL" \
+ --stringparam del-la-files "$DEL_LA_FILES" \
+ --stringparam list-stat "$LIST_STAT" \
+ --stringparam src-archive "$SRC_ARCHIVE" \
+ --stringparam src-subdirs "$SRC_SUBDIRS" \
+ --stringparam build-root "$BUILD_ROOT" \
+ --stringparam build-subdirs "$BUILD_SUBDIRS" \
+ --stringparam keep-files "$KEEP_FILES" \
+ --param jobs "$JOBS" \
+ --stringparam cfg-cflags "$CFG_CFLAGS" \
+ --stringparam cfg-cxxflags "$CFG_CXXFLAGS" \
+ --stringparam cfg-ldflags "$CFG_LDFLAGS" \
+ --stringparam fqdn "$(hostname -f)" \
+ --output ./scripts/ \
+ ${MakeScripts} \
${BookXml}
# Make the scripts executable.
chmod -R +x scripts
diff --git a/BLFS/xsl/scripts.xsl b/BLFS/xsl/scripts.xsl
index 20fa41c..45acb3e 100644
--- a/BLFS/xsl/scripts.xsl
+++ b/BLFS/xsl/scripts.xsl
@@ -23,6 +23,7 @@
<!-- Wrap "root" commands inside a wrapper function, allowing
"porg style" package management -->
<xsl:param name="wrap-install" select="'n'"/>
+ <xsl:param name="pack-install" select="'$HOME/blfs_root/packInstall.sh'"/>
<!-- list of packages needing stats -->
<xsl:param name="list-stat" select="''"/>
@@ -33,6 +34,26 @@
<!-- Build as user (y) or as root (n)? -->
<xsl:param name="sudo" select="'y'"/>
+ <!-- Root of sources directory -->
+ <xsl:param name="src-archive" select="'/sources'"/>
+
+ <!-- Download and archive tarballs to subdirs. Can be 'y' or '',
+ not 'n' -->
+ <xsl:param name="src-subdirs" select="''"/>
+
+ <!-- Root of build directory -->
+ <xsl:param name="build-root" select="'/sources'"/>
+
+ <!-- extract sources and build into subdirs. Can be 'y' or '',
+ not 'n' -->
+ <xsl:param name="build-subdirs" select="''"/>
+
+ <!-- Keep files in the build directory after building. Can be 'y' or '',
+ not 'n' -->
+ <xsl:param name="keep-files" select="''"/>
+
+ <!-- Number of parallel jobs; type integer, not string -->
+ <xsl:param name="jobs" select="0"/>
<!-- simple instructions for removing .la files. -->
<!-- We'll use the rule that any text output begins with a linefeed if needed
so that we do not need to output one at the end-->
@@ -109,15 +130,100 @@ done</xsl:variable>
<exsl:document href="{$order}-z-{$filename}" method="text">
<xsl:text>#!/bin/bash
set -e
-unset MAKELEVEL
+# Variables coming from configuration
+export JH_PACK_INSTALL="</xsl:text>
+ <xsl:copy-of select="$pack-install"/>
+ <xsl:text>"
+export JH_SRC_ARCHIVE="</xsl:text>
+ <xsl:copy-of select="$src-archive"/>
+ <xsl:text>"
+export JH_SRC_SUBDIRS="</xsl:text>
+ <xsl:copy-of select="$src-subdirs"/>
+ <xsl:text>"
+export JH_BUILD_ROOT="</xsl:text>
+ <xsl:copy-of select="$build-root"/>
+ <xsl:text>"
+export JH_BUILD_SUBDIRS="</xsl:text>
+ <xsl:copy-of select="$build-subdirs"/>
+ <xsl:text>"
+export JH_KEEP_FILES="</xsl:text>
+ <xsl:copy-of select="$keep-files"/>
+ <xsl:text>"
+</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$cfg-cflags = 'EMPTY'">
+ <xsl:text>unset CFLAGS
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>export CFLAGS="</xsl:text>
+ <xsl:copy-of select="$cfg-cflags"/>
+ <xsl:text>"
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$cfg-cxxflags = 'EMPTY'">
+ <xsl:text>unset CXXFLAGS
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>export CXXFLAGS="</xsl:text>
+ <xsl:copy-of select="$cfg-cxxflags"/>
+ <xsl:text>"
</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$cfg-ldflags = 'EMPTY'">
+ <xsl:text>unset LDFLAGS
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>export LDFLAGS="</xsl:text>
+ <xsl:copy-of select="$cfg-ldflags"/>
+ <xsl:text>"
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+<!-- We use MAKEFLAGS and NINJAJOBS for setting the number of
+ parallel jobs. This supposes that ninja has been build with
+ support for NINJAJOBS in lfs. We'll have to change that code
+ if lfs changes its policy for ninja. -->
+ <xsl:text>export MAKEFLAGS="-j</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$jobs = 0">
+ <xsl:text>$(nproc)"
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$jobs"/>
+ <xsl:text>"
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$jobs = 0">
+ <xsl:text>unset NINJAJOBS
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>export NINJAJOBS="</xsl:text>
+ <xsl:value-of select="$jobs"/>
+ <xsl:text>"
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
<!-- Unsetting MAKELEVEL is needed for some packages which assume that
their top level Makefile is at level zero -->
+ <xsl:text>unset MAKELEVEL
+# End of environment</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
+ if using package management, so
"export" it -->
<xsl:text>
export JH_PKG_DIR=</xsl:text>
@@ -129,19 +235,23 @@ mkdir -p $SRC_DIR
mkdir -p $BUILD_DIR
</xsl:text>
-<!-- If stats are requested, include some definitions and intitializations -->
+<!-- If stats are requested, include some definitions and initializations -->
<xsl:if test="$want-stats">
<xsl:text>
INFOLOG=$(pwd)/info-${JH_PKG_DIR}
TESTLOG=$(pwd)/test-${JH_PKG_DIR}
-unset MAKEFLAGS
-#MAKEFLAGS=-j4
-echo MAKEFLAGS: $MAKEFLAGS > $INFOLOG
+echo MAKEFLAGS: $MAKEFLAGS > $INFOLOG
+echo NINJAJOBS: $NINJAJOBS >> $INFOLOG
: > $TESTLOG
PKG_DEST=${BUILD_DIR}/dest
-rm -rf $PKG_DEST
</xsl:text>
- </xsl:if>
+<!-- in some cases, DESTDIR may have been populated by root -->
+ <xsl:if test="$sudo = 'y'">
+ <xsl:text>sudo </xsl:text>
+ </xsl:if>
+ <xsl:text>rm -rf $PKG_DEST
+</xsl:text>
+ </xsl:if><!-- want-stats -->
<!-- Download code and build commands -->
<xsl:apply-templates select="sect2">
<xsl:with-param name="want-stats" select="$want-stats"/>
@@ -333,33 +443,33 @@ echo Start Time: ${SECONDS} >> $INFOLOG
<xsl:text>
if [[ ! -f $</xsl:text>
<xsl:value-of select="$varname"/>
<xsl:text> ]] ; then
- if [[ -f $JH_SRC_ARCHIVE/$</xsl:text>
+ if [ -f "$JH_SRC_ARCHIVE/$</xsl:text>
<xsl:value-of select="$varname"/>
- <xsl:text> ]] ; then
</xsl:text>
- <xsl:text> cp $JH_SRC_ARCHIVE/$</xsl:text>
+ <xsl:text>" ] ; then
</xsl:text>
+ <xsl:text> cp "$JH_SRC_ARCHIVE/$</xsl:text>
<xsl:value-of select="$varname"/>
- <xsl:text> $</xsl:text>
+ <xsl:text>" "$</xsl:text>
<xsl:value-of select="$varname"/>
- <xsl:text>
+ <xsl:text>"
else
</xsl:text>
<!-- Download from upstream http -->
<xsl:if test="string-length($httpurl) > 10">
- <xsl:text> wget -T 30 -t 5 </xsl:text>
+ <xsl:text> wget -T 30 -t 5 "</xsl:text>
<xsl:value-of select="$httpurl"/>
- <xsl:text> ||
</xsl:text>
+ <xsl:text>" ||
</xsl:text>
</xsl:if>
<!-- Download from upstream ftp -->
<xsl:if test="string-length($ftpurl) > 10">
- <xsl:text> wget -T 30 -t 5 </xsl:text>
+ <xsl:text> wget -T 30 -t 5 "</xsl:text>
<xsl:value-of select="$ftpurl"/>
- <xsl:text> ||
</xsl:text>
+ <xsl:text>" ||
</xsl:text>
</xsl:if>
<!-- The FTP_SERVER mirror as a last resort -->
- <xsl:text> wget -T 30 -t 5 ${JH_FTP_SERVER}svn/</xsl:text>
+ <xsl:text> wget -T 30 -t 5 "${JH_FTP_SERVER}svn/</xsl:text>
<xsl:value-of select="$first_letter"/>
<xsl:text>/$</xsl:text>
<xsl:value-of select="$varname"/>
- <xsl:text>
+ <xsl:text>"
fi
fi</xsl:text>
<xsl:if test="string-length($md5) > 10">
@@ -374,9 +484,9 @@ echo "</xsl:text>
be there-->
<xsl:if test="string($varname) != 'PACKAGE'">
<xsl:text>
-[[ "$SRC_DIR" != "$BUILD_DIR" ]] && ln -sf $SRC_DIR/$</xsl:text>
+[ "$SRC_DIR" != "$BUILD_DIR" ] && ln -sf "$SRC_DIR/$</xsl:text>
<xsl:value-of select="$varname"/>
- <xsl:text> $BUILD_DIR</xsl:text>
+ <xsl:text>" "$BUILD_DIR"</xsl:text>
</xsl:if>
<xsl:text>
</xsl:text>
</xsl:template>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
--
http://lists.linuxfromscratch.org/sympa/info/alfs-discuss
Unsubscribe: See the above information page