From 8825e695928037d7fa0d1ca5f4b048bca3a53164 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Wed, 30 Mar 2022 17:45:35 +0200 Subject: [PATCH] Get completely rid of PROGNAME There is only one PROGNAME: lfs, so no need for a variable. --- Config.in | 6 +- common/libs/func_book_parser | 192 ++++++++++----------------- common/libs/func_download_pkgs | 24 ++-- common/libs/func_validate_configs.sh | 11 +- common/libs/func_wrt_Makefile | 2 - jhalfs | 4 +- 6 files changed, 88 insertions(+), 151 deletions(-) diff --git a/Config.in b/Config.in index 32dc293..1ecfe10 100644 --- a/Config.in +++ b/Config.in @@ -45,10 +45,6 @@ menu "BOOK Settings" default "sysv" if BOOK_LFS || BLFS_SYSV default "systemd" if BOOK_LFS_SYSD || BLFS_SYSD - config PROGNAME - string - default "lfs" if BOOK_LFS || BOOK_LFS_SYSD - config RUN_ME string default "./jhalfs run" if BOOK_LFS || BOOK_LFS_SYSD @@ -936,7 +932,7 @@ depends on !BOOK_BLFS config XSL string "XSL stylesheet" - default "$PROGNAME.xsl" + default "lfs.xsl" config PKG_LST string "Package contents list" diff --git a/common/libs/func_book_parser b/common/libs/func_book_parser index cf1390f..9460f19 100644 --- a/common/libs/func_book_parser +++ b/common/libs/func_book_parser @@ -10,7 +10,7 @@ get_book() { # test `type -p git` || eval "echo \"This feature requires Git.\" exit 1" - echo -n "Downloading the lfs document, $COMMIT commit... " + echo -n "Downloading the lfs document, $COMMIT branch/tag/commit... " # Grab a fresh book if it's missing, otherwise, update it from the # repo. If we've already extracted the commands, move on to getting the @@ -50,123 +50,82 @@ extract_commands() { # # Extract the commands echo -n "Extracting commands for" - case ${PROGNAME} in + echo -n " ${L_arrow}${BOLD}LFS${R_arrow} build... " + # The scripts pages are xincluded by the book, so must + # be generated for running xsltproc + pushd $BOOK > /dev/null + if [ -f process-scripts.sh ]; then + bash process-scripts.sh >> $LOGDIR/$LOG 2>&1 + fi + # Recent git versions need version.ent to be generated + if [ -f git-version.sh ]; then + bash git-version.sh "$INITSYS" >> $LOGDIR/$LOG 2>&1 + fi + popd > /dev/null - lfs) - echo -n " ${L_arrow}${BOLD}LFS${R_arrow} build... " - # The scripts pages are xincluded by the book, so must - # be generated for running xsltproc - pushd $BOOK > /dev/null - if [ -f process-scripts.sh ]; then - bash process-scripts.sh >> $LOGDIR/$LOG 2>&1 - fi - # Recent git versions need version.ent to be generated - if [ -f git-version.sh ]; then - bash git-version.sh "$INITSYS" >> $LOGDIR/$LOG 2>&1 - fi - popd > /dev/null + # First profile the book, for revision and arch. Note that + # MULTIBLIB is set to "default" if pure 64 bit book. In this case, + # profiling on arch is useless, but does not hurt either. + xsltproc --nonet \ + --xinclude \ + --stringparam profile.revision "$INITSYS" \ + --stringparam profile.arch "$MULTILIB" \ + --output prbook.xml \ + $BOOK/stylesheets/lfs-xsl/profile.xsl \ + $BOOK/index.xml >> $LOGDIR/$LOG 2>&1 - # First profile the book, for revision and arch. Note that - # MULTIBLIB is set to "default" if pure 64 bit book. In this - # profiling on arch is useless, but does not hurt either. - xsltproc --nonet \ - --xinclude \ - --stringparam profile.revision "$INITSYS" \ - --stringparam profile.arch "$MULTILIB" \ - --output prbook.xml \ - $BOOK/stylesheets/lfs-xsl/profile.xsl \ - $BOOK/index.xml >> $LOGDIR/$LOG 2>&1 - - # Use the profiled book for generating the scriptlets - xsltproc --nonet \ - --stringparam testsuite "$TEST" \ - --stringparam bomb-testsuite "$BOMB_TEST" \ - --stringparam ncurses5 "$NCURSES5" \ - --stringparam strip "$STRIP" \ - --stringparam del-la-files "$DEL_LA_FILES" \ - --stringparam full-locale "$FULL_LOCALE" \ - --stringparam timezone "$TIMEZONE" \ - --stringparam page "$PAGE" \ - --stringparam lang "$LANG" \ - --stringparam pkgmngt "$PKGMNGT" \ - --stringparam wrap-install "$WRAP_INSTALL" \ - --stringparam hostname "$HOSTNAME" \ - --stringparam interface "$INTERFACE" \ - --stringparam ip "$IP_ADDR" \ - --stringparam gateway "$GATEWAY" \ - --stringparam prefix "$PREFIX" \ - --stringparam broadcast "$BROADCAST" \ - --stringparam domain "$DOMAIN" \ - --stringparam nameserver1 "$DNS1" \ - --stringparam nameserver2 "$DNS2" \ - --stringparam font "$FONT" \ - --stringparam fontmap "$FONTMAP" \ - --stringparam unicode "$UNICODE" \ - --stringparam keymap "$KEYMAP" \ - --stringparam local "$LOCAL" \ - --stringparam log-level "$LOG_LEVEL" \ - --stringparam script-root "$SCRIPT_ROOT" \ - --output "./${COMMANDS}/" \ - $XSL \ - prbook.xml >> $LOGDIR/$LOG 2>&1 -# Remove flags requesting user action in some cases. Much easier here than -# in the stylesheet... - sed -i 's/-iv /-v /' "./${COMMANDS}/"chapter??/*kernel* - ;; - *) echo -n " ${L_arrow}${PROGNAME}${R_arrow} book invalid, terminate build... " - exit 1 ;; - esac + # Use the profiled book for generating the scriptlets + xsltproc --nonet \ + --stringparam testsuite "$TEST" \ + --stringparam bomb-testsuite "$BOMB_TEST" \ + --stringparam ncurses5 "$NCURSES5" \ + --stringparam strip "$STRIP" \ + --stringparam del-la-files "$DEL_LA_FILES" \ + --stringparam full-locale "$FULL_LOCALE" \ + --stringparam timezone "$TIMEZONE" \ + --stringparam page "$PAGE" \ + --stringparam lang "$LANG" \ + --stringparam pkgmngt "$PKGMNGT" \ + --stringparam wrap-install "$WRAP_INSTALL" \ + --stringparam hostname "$HOSTNAME" \ + --stringparam interface "$INTERFACE" \ + --stringparam ip "$IP_ADDR" \ + --stringparam gateway "$GATEWAY" \ + --stringparam prefix "$PREFIX" \ + --stringparam broadcast "$BROADCAST" \ + --stringparam domain "$DOMAIN" \ + --stringparam nameserver1 "$DNS1" \ + --stringparam nameserver2 "$DNS2" \ + --stringparam font "$FONT" \ + --stringparam fontmap "$FONTMAP" \ + --stringparam unicode "$UNICODE" \ + --stringparam keymap "$KEYMAP" \ + --stringparam local "$LOCAL" \ + --stringparam log-level "$LOG_LEVEL" \ + --stringparam script-root "$SCRIPT_ROOT" \ + --output "./${COMMANDS}/" \ + $XSL \ + prbook.xml >> $LOGDIR/$LOG 2>&1 + # Remove flags requesting user action in some cases. Much easier here than + # in the stylesheet... + sed -i 's/-iv /-v /' "./${COMMANDS}/"chapter??/*kernel* echo "done" # Make the scripts executable. chmod -R +x "$JHALFSDIR/${COMMANDS}" - - # Create the packages file. We need it for proper Makefile creation - # lfs does not use this anymore, but this is taken care in the - # function body - create_package_list - # On the other hand, lfs needs two auxiliary files - if [ "${PROGNAME}" = lfs ]; then - create_chroot_scripts - create_kernfs_scripts - fi + create_chroot_scripts + create_kernfs_scripts # we create the VERSION variable here. Should maybe go into its own # function. But at this point we can use the profiled xml to get # version from lfs-release in the lfs case. - case $PROGNAME in - lfs) - VERSION=$(grep 'echo.*lfs-release' prbook.xml | sed 's/.*echo[ ]*\([^ ]*\).*/\1/') - ;; - *) - VERSION=$(xmllint --noent $BOOK/prologue/bookinfo.xml 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;; - esac + VERSION=$(grep 'echo.*lfs-release' prbook.xml | sed 's/.*echo[ ]*\([^ ]*\).*/\1/') # Done. Moving on... get_sources } -#----------------------------# -create_package_list() { # -#----------------------------# - - # Create the packages file. We need it for proper Makefile creation - rm -f pkg_tarball_list - echo -n "Creating <${PROGNAME}> list of tarball names for $BOOK" - if [ ! -z "$ARCH" ] ; then echo -n " $ARCH" ; fi - echo -n "... " - case ${PROGNAME} in - lfs) - # lfs does not use the package list anymore - ;; - *) - esac - - echo "done" - -} - #----------------------------# create_chroot_scripts() { # #----------------------------# @@ -175,14 +134,9 @@ create_chroot_scripts() { # echo -n "Creating chroot commands scripts from $BOOK" if [ ! -z $ARCH ] ; then echo -n " $ARCH" ; fi echo -n "... " - case ${PROGNAME} in - lfs) - xsltproc --nonet --xinclude \ - -o chroot-scripts/ chroot.xsl \ - $BOOK/chapter0?/*chroot*.xml >> $LOGDIR/$LOG 2>&1 - ;; - *) - esac + xsltproc --nonet --xinclude \ + -o chroot-scripts/ chroot.xsl \ + $BOOK/chapter0?/*chroot*.xml >> $LOGDIR/$LOG 2>&1 echo "done" } @@ -196,17 +150,13 @@ create_kernfs_scripts() { # echo -n "Creating virtual kernel FS commands scripts from $BOOK" if [ ! -z $ARCH ] ; then echo -n " $ARCH" ; fi echo -n "... " - case ${PROGNAME} in - lfs) - xsltproc --nonet \ - -o kernfs-scripts/devices.sh kernfs.xsl \ - $BOOK/*/kernfs.xml >> $LOGDIR/$LOG 2>&1 - xsltproc --nonet \ - -o kernfs-scripts/teardown.sh kernfs.xsl \ - $BOOK/chapter??/reboot.xml >> $LOGDIR/$LOG 2>&1 - ;; - *) - esac + xsltproc --nonet \ + -o kernfs-scripts/devices.sh kernfs.xsl \ + $BOOK/*/kernfs.xml >> $LOGDIR/$LOG 2>&1 + xsltproc --nonet \ + -o kernfs-scripts/teardown.sh kernfs.xsl \ + $BOOK/chapter??/reboot.xml >> $LOGDIR/$LOG 2>&1 + echo "done" } diff --git a/common/libs/func_download_pkgs b/common/libs/func_download_pkgs index de6e218..f2b23c7 100644 --- a/common/libs/func_download_pkgs +++ b/common/libs/func_download_pkgs @@ -130,20 +130,16 @@ create_urls() { # #----------------------------# cd $JHALFSDIR - case ${PROGNAME} in - lfs) - echo -n "Creating LFS specific URLs file" - xsltproc --nonet --xinclude \ - --stringparam server "$SERVER" \ - --stringparam family lfs \ - --stringparam pkgmngt "$PKGMNGT" \ - --stringparam revision "$INITSYS" \ - --output ../sources/urls.lst \ - urls.xsl \ - $BOOK/chapter03/chapter03.xml >>$LOGDIR/$LOG 2>&1 - echo " ...OK" - ;; - esac + echo -n "Creating URLs file... " + xsltproc --nonet --xinclude \ + --stringparam server "$SERVER" \ + --stringparam family lfs \ + --stringparam pkgmngt "$PKGMNGT" \ + --stringparam revision "$INITSYS" \ + --output ../sources/urls.lst \ + urls.xsl \ + $BOOK/chapter03/chapter03.xml >>$LOGDIR/$LOG 2>&1 + echo "OK" cd $BUILDDIR/sources diff --git a/common/libs/func_validate_configs.sh b/common/libs/func_validate_configs.sh index 3ce8fff..5d0b784 100644 --- a/common/libs/func_validate_configs.sh +++ b/common/libs/func_validate_configs.sh @@ -5,12 +5,10 @@ declare -r dotSTR=".................." validate_config() { # Are the config values sane (within reason) #----------------------------# : <> \$(LOGDIR)/\$@$version 2>&1 && \\ - if [ "${PROGNAME}" != lfs ]; then \$(PRT_DU) >>logs/\$@$version; fi EOF ) >> $MKFILE.tmp } @@ -250,7 +249,6 @@ CHROOT_wrt_RunAsRoot() { # cat << EOF @source envars && \\ \$(crCMDSDIR)/`dirname $file`/\$@ >>\$(crLOGDIR)/\$@$version 2>&1 && \\ - if [ "${PROGNAME}" != lfs ]; then \$(PRT_DU_CR) >>logs/\$@$version; fi EOF ) >> $MKFILE.tmp diff --git a/jhalfs b/jhalfs index eaa58ae..3faf4a6 100755 --- a/jhalfs +++ b/jhalfs @@ -204,7 +204,7 @@ declare -r COMMANDS=lfs-commands # Set true internal variables COMMON_DIR="common" -PACKAGE_DIR=$(echo "$PROGNAME" | tr '[:lower:]' '[:upper:]') +PACKAGE_DIR=LFS MODULE=$PACKAGE_DIR/master.sh PKGMNGTDIR="pkgmngt" # The name packageManager.xml is hardcoded in *.xsl, so no variable. @@ -342,7 +342,7 @@ if [[ "$REBUILD_MAKEFILE" = "n" ]] ; then export XSL=$JHALFSDIR/${XSL} # Copy packageManager.xml, if needed - [[ "$PKGMNGT" = "y" ]] && [[ "$PROGNAME" = "lfs" ]] && { + [[ "$PKGMNGT" = "y" ]] && { sed s@BOOK@"$BOOK"@ "$PKGMNGTDIR/packageManager.xml" > \ "$JHALFSDIR/"packageManager.xml cp "$PKGMNGTDIR/packInstall.sh" "$JHALFSDIR/"