Pierre Labastie wrote:
On 26/05/2016 21:53, Bruce Dubbs wrote:
Pierre Labastie wrote:
I've received a private message from Bruce about the adaptation of jhalfs
to the upcoming merged sysv-systemd books.
I think it is better to start a public thread. But I wait for his approval
for publishing his message.

I do not have much time today, but I'll try to look at Bruce's patch
later. But please, to anybody who would like to contribute the code, may I
suggest you produce patches against the most recent version (r3861 fixed
the hostreqs.xml move problem)?

I have no objection to putting my patch here, but it is broken.  I'll be
working on it today.  When I come up with a better one I'll post it here.


The problem is with the VERSION variable in jhalfs. We used to have only one
line with "subtitle" in bookinfo.xml, but now with have two (one for each
revision). And it needs some bash/sed/grep skill to extract only one version...

It is getting late here, and I'll try to work on it tomorrow, unless you beat
me on this.

Well it is late there tonight, but mid evening for me. Here is my latest. I fixed VERSION in two places.

Tho old version tried to figure out VERSION from bookinfo.xml by running xmllint, but the new version has two different copies if version differentiated bu a revision="sysd|systemd" attribute. The file would need to be run through xsltproc profile.xml process first. The easier way is to just go directly to the original source, general.ent.

That change needed to be in two files: common/libs/func_book_parser and jhalfs.

The new process works and I'm testing the build right now. My first test failed because I had a typo in the book's sources. I'll report back on this only if the test fails.

  -- Bruce

Index: Config.in
===================================================================
--- Config.in   (revision 3861)
+++ Config.in   (working copy)
@@ -8,8 +8,11 @@
                        #-- Select the BOOK/Build style you wish to configure.
 
                config  BOOK_LFS
-                       bool "Linux From Scratch"
+                       bool "Linux From Scratch sysv"
 
+               config  BOOK_LFS_SYSD
+                       bool "Linux From Scratch systemd"
+
                config  BOOK_CLFS
                        bool "Cross-Compiled Linux From Scratch"
 
@@ -23,9 +26,14 @@
 #                      bool "Hardened Linux From Scratch"
        endchoice
 
+   config REV
+      string
+      default  "sysv"    if BOOK_LFS
+      default  "systemd" if BOOK_LFS_SYSD
+
        config  PROGNAME
                string
-               default "lfs"           if BOOK_LFS
+               default "lfs"              if BOOK_LFS || BOOK_LFS_SYSD
                default "clfs"          if BOOK_CLFS
                default "clfs2"         if BOOK_CLFS2
                default "clfs3"         if BOOK_CLFS3
@@ -39,11 +47,11 @@
        #--- Book version
        choice
                prompt  "Release"
-               default relSVN  if BOOK_LFS || BOOK_HLFS
+               default relSVN  if BOOK_LFS || BOOK_HLFS || BOOK_LFS_SYSD
                default relGIT  if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
                config  relSVN
                        bool    "SVN"
-                       depends on BOOK_LFS || BOOK_HLFS
+                       depends on BOOK_LFS || BOOK_HLFS || BOOK_LFS_SYSD
                        help
                                #-- Current development version as in trunk
 
@@ -624,7 +632,7 @@
 
        config  DEF_USER
                string
-               default "lfs"   if BOOK_LFS
+               default "lfs"   if BOOK_LFS || BOOK_LFS_SYSD
                default "clfs"  if BOOK_CLFS || BOOK_CLFS2 || BOOK_CLFS3
                default "hlfs"  if BOOK_HLFS
 
@@ -817,7 +825,7 @@
        #--- Package Management
        config  PKGMNGT
                bool    "Package management"
-               depends BOOK_LFS
+               depends BOOK_LFS || BOOK_LFS_SYSD
                default n
                help
                        #-- Use package management
Index: common/libs/func_book_parser
===================================================================
--- common/libs/func_book_parser        (revision 3861)
+++ common/libs/func_book_parser        (working copy)
@@ -23,9 +23,11 @@
     # 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
     # sources.
-    if [ $PROGNAME == "lfs" ] || [ $PROGNAME == "hlfs" ] && [ ! -d 
${PROGNAME}-${LFSVRS}/.svn ]; then
+    if [ $PROGNAME == "lfs" ] || [ $PROGNAME == "hlfs" ] && 
+       [ ! -d ${PROGNAME}-${LFSVRS}/.svn ]; then
         svn co $SVN/${svn_root}/${TREE} ${PROGNAME}-$LFSVRS >>$LOGDIR/$LOG 2>&1
-    elif [ $PROGNAME == "clfs" ]  || [ $PROGNAME == "clfs2" ] || [ $PROGNAME 
== "clfs3" ] && [ ! -d ${PROGNAME}-${LFSVRS}/.git ]; then
+    elif [ $PROGNAME == "clfs" ]  || [ $PROGNAME == "clfs2" ] || 
+         [ $PROGNAME == "clfs3" ] && [ ! -d ${PROGNAME}-${LFSVRS}/.git ]; then
         echo $TREE
         git clone $GIT ${PROGNAME}-$LFSVRS >>$LOGDIR/$LOG 2>&1
         if [ ! $TREE == "development" ]; then
@@ -60,6 +62,13 @@
   case $PROGNAME in
     clfs*)
       VERSION=$(xmllint --noent $BOOK/BOOK/prologue/$ARCH/bookinfo.xml 
2>/dev/null | grep subtitle | sed -e 's/^.*ion //'  -e 's/<\/.*//') ;;
+    lfs)
+      if [[ "$REV" = "sysv" ]] ; then
+        VERSION=$(grep 'ENTITY version ' /$BOOK/general.ent| cut -d\" -f2)
+      else
+        VERSION=$(grep 'ENTITY versiond' /$BOOK/general.ent| cut -d\" -f2)
+      fi
+      ;;
     *)
       VERSION=$(xmllint --noent $BOOK/prologue/bookinfo.xml 2>/dev/null | grep 
subtitle | sed -e 's/^.*ion //'  -e 's/<\/.*//')  ;;
   esac
@@ -84,7 +93,9 @@
                  --stringparam sparc $SPARC64_PROC \
                  --stringparam x86 $TARGET \
                  --stringparam mips $TARGET \
-                 -o ./${PROGNAME}-commands/ $XSL $BOOK/BOOK/$ARCH-index.xml 
>>$LOGDIR/$LOG 2>&1
+                 -o ./${PROGNAME}-commands/ \
+                 $XSL \
+                 $BOOK/BOOK/$ARCH-index.xml >>$LOGDIR/$LOG 2>&1
       ;;
 
     clfs2)
@@ -131,17 +142,28 @@
           bash process-scripts.sh >> $LOGDIR/$LOG 2>&1
         fi
         popd > /dev/null
+
+        xsltproc --nonet                               \
+                 --xinclude                            \
+                 --output /tmp/lfs-html.xml            \
+                 --stringparam profile.revision $REV   \
+                 $BOOK/stylesheets/lfs-xsl/profile.xsl \
+                 $BOOK/index.xml
+
         xsltproc --nonet \
-                 --xinclude \
-                 --stringparam testsuite $TEST \
-                 --stringparam bomb-testsuite $BOMB_TEST \
-                 --stringparam vim-lang $VIMLANG \
-                 --stringparam full-locale $FULL_LOCALE \
-                 --stringparam timezone $TIMEZONE \
-                 --stringparam page $PAGE \
-                 --stringparam lang $LANG \
-                 --stringparam pkgmngt $PKGMNGT \
-                 -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml 
>>$LOGDIR/$LOG 2>&1
+                 --stringparam testsuite      $TEST        \
+                 --stringparam bomb-testsuite $BOMB_TEST   \
+                 --stringparam vim-lang       $VIMLANG     \
+                 --stringparam full-locale    $FULL_LOCALE \
+                 --stringparam timezone       $TIMEZONE    \
+                 --stringparam page           $PAGE        \
+                 --stringparam lang           $LANG        \
+                 --stringparam pkgmngt        $PKGMNGT     \
+                 -o ./${PROGNAME}-commands/                \
+                 $XSL                                      \
+                 /tmp/lfs-html.xml >>$LOGDIR/$LOG 2>&1
+
+         rm -f /tmp/lfs-html.xml
       ;;
     *)  echo -n " ${L_arrow}${PROGNAME}${R_arrow} book invalid, terminate 
build... "
         exit 1 ;;
Index: jhalfs
===================================================================
--- jhalfs      (revision 3861)
+++ jhalfs      (working copy)
@@ -434,6 +434,7 @@
 
 fi
 
+
 # When regenerating the Makefile, we need to know also the
 # canonical book version
 if [[ "$REBUILD_MAKEFILE" = "y" ]] ; then
@@ -440,8 +441,15 @@
   case $PROGNAME in
     clfs* )
       VERSION=$(xmllint --noent $JHALFSDIR/$BOOK/prologue/$ARCH/bookinfo.xml 
2>/dev/null | grep subtitle | sed -e 's/^.*ion //'  -e 's/<\/.*//') ;;
+    lfs)
+      if [[ "$REV" = "sysv" ]] ; then
+        VERSION=$(grep 'ENTITY version ' /$BOOK/general.ent| cut -d\" -f2)
+      else
+        VERSION=$(grep 'ENTITY versiond' /$BOOK/general.ent| cut -d\" -f2)
+      fi
+      ;;
     *)
-      VERSION=$(xmllint --noent $JHALFSDIR/$BOOK/prologue/bookinfo.xml 
2>/dev/null | grep subtitle | sed -e 's/^.*ion //'  -e 's/<\/.*//')  ;;
+      VERSION=$(xmllint --noent $JHALFSDIR/$BOOK/prologue/bookinfo.xml 
2>/dev/null | grep subtitle | grep $REV | sed -e 's/^.*ion //'  -e 's/<\/.*//') 
 
   esac
 fi
 
-- 
http://lists.linuxfromscratch.org/listinfo/alfs-discuss
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to