r2941 - in jhalfs/branches/experimental: . BLFS BLFS/libs

manuel at linuxfromscratch.org manuel at linuxfromscratch.org
Sun Aug 13 11:24:18 PDT 2006


Author: manuel
Date: 2006-08-13 12:24:16 -0600 (Sun, 13 Aug 2006)
New Revision: 2941

Added:
   jhalfs/branches/experimental/BLFS/update_book.sh
   jhalfs/branches/experimental/README.BLFS
Removed:
   jhalfs/branches/experimental/BLFS/packages.sh
Modified:
   jhalfs/branches/experimental/BLFS/blfs-parser.sh
   jhalfs/branches/experimental/BLFS/libs/book.xsl
   jhalfs/branches/experimental/BLFS/libs/func_parser
   jhalfs/branches/experimental/BLFS/libs/scripts.xsl
   jhalfs/branches/experimental/Config.in
   jhalfs/branches/experimental/blfs
Log:
Merged r2936:2940 from trunk

Modified: jhalfs/branches/experimental/BLFS/blfs-parser.sh
===================================================================
--- jhalfs/branches/experimental/BLFS/blfs-parser.sh	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/BLFS/blfs-parser.sh	2006-08-13 18:24:16 UTC (rev 2941)
@@ -10,10 +10,13 @@
 declare VERBOSITY=1
 
 # Grab and name the command line options
-    optTARGET=$1
-optDEPENDENCY=$2
+    optTARGET=$1  # Package target
+optDEPENDENCY=$2  # Dependencies level, 1/2/3
+         SUDO=$3  # Build as user (y) or as root (n)
 
+[[ -z $SUDO ]] && SUDO=y
 
+
 #---------------------
 # Constants
 source libs/constants.inc
@@ -113,4 +116,4 @@
 generate_dependency_tree
 generate_TARGET_xml
 generate_target_book
-create_build_scripts
+create_build_scripts "${SUDO}"

Modified: jhalfs/branches/experimental/BLFS/libs/book.xsl
===================================================================
--- jhalfs/branches/experimental/BLFS/libs/book.xsl	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/BLFS/libs/book.xsl	2006-08-13 18:24:16 UTC (rev 2941)
@@ -6,8 +6,8 @@
 
 <!-- $Id$ -->
 
-  <!-- NOTE: the base dir (blfs-xml) must be changed to FAKEDIR on the
-  final version and set it to the proper dir via a sed in ./blfs -->
+  <!-- NOTE: the base dir (blfs-xml) is set to the proper dir
+  via a sed in ./blfs -->
   <xsl:import href="../blfs-xml/stylesheets/blfs-chunked.xsl"/>
 
   <xsl:param name="mail_server" select="sendmail"/>

Modified: jhalfs/branches/experimental/BLFS/libs/func_parser
===================================================================
--- jhalfs/branches/experimental/BLFS/libs/func_parser	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/BLFS/libs/func_parser	2006-08-13 18:24:16 UTC (rev 2941)
@@ -126,7 +126,7 @@
 #-------------------------#
 : <<inline_doc
     function:   Create shell scripts of the requested TARGET.
-    input vars: nothing
+    input vars: $1 use sudo n/y
     externals:  TARGET
     modifies:   nothing
     returns:    nothing
@@ -140,6 +140,7 @@
 
   echo -en "\n\tGenerating the build scripts ..."
   xsltproc --xinclude --nonet \
+           --stringparam sudo $SUDO \
            -o ./scripts/ ../libs/scripts.xsl \
            $TARGET-index.xml >> xsltproc.log 2>&1
   echo -e "done\n"

Modified: jhalfs/branches/experimental/BLFS/libs/scripts.xsl
===================================================================
--- jhalfs/branches/experimental/BLFS/libs/scripts.xsl	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/BLFS/libs/scripts.xsl	2006-08-13 18:24:16 UTC (rev 2941)
@@ -9,6 +9,9 @@
 
 <!-- XSLT stylesheet to create shell scripts from "linear build" BLFS books. -->
 
+  <!-- Build as user (y) or as root (n)? -->
+  <xsl:param name="sudo" select="y"/>
+
   <xsl:template match="/">
     <xsl:apply-templates select="//sect1"/>
   </xsl:template>
@@ -344,11 +347,11 @@
 
   <xsl:template match="screen">
     <xsl:if test="child::* = userinput and not(@role = 'nodump')">
-      <xsl:if test="@role = 'root'">
+      <xsl:if test="@role = 'root' and $sudo = 'y'">
         <xsl:text>sudo sh -c "</xsl:text>
       </xsl:if>
       <xsl:apply-templates select="userinput"/>
-      <xsl:if test="@role = 'root'">
+      <xsl:if test="@role = 'root' and $sudo = 'y'">
         <xsl:text>"</xsl:text>
       </xsl:if>
       <xsl:text>&#xA;</xsl:text>

Deleted: jhalfs/branches/experimental/BLFS/packages.sh
===================================================================
--- jhalfs/branches/experimental/BLFS/packages.sh	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/BLFS/packages.sh	2006-08-13 18:24:16 UTC (rev 2941)
@@ -1,97 +0,0 @@
-#!/bin/bash
-#
-# $Id$
-#
-set -e
-
-declare -r SVN="svn://svn.linuxfromscratch.org"
-
-BLFS_XML=$1  # Book directory
-DOC_MODE=$2  # Action to take, only update at the moment
-
-#---------------------
-# packages module
-source libs/func_packages
-[[ $? > 0 ]] && echo -e "\n\tERROR: func_packages did not load..\n" && exit
-
-#----------------------------#
-BOOK_Source() {              #
-#----------------------------#
-: <<inline_doc
-    function:   Retrieve a fresh copy or upate an existing copy of the BLFS svn tree
-    input vars: $1 BLFS_XML directory
-                $2 DOC_MODE action get/update
-    externals:  none
-    modifies:   $BLFS_XML directory tree
-    returns:    nothing
-    output:     
-    on error:   exit
-    on success: text messages
-inline_doc
-
-    # Redundant definitions but this function may be reused
-  local BLFS_XML=$1
-  local DOC_MODE=$2
-  
-  if [[ -z "$BLFS_XML" ]] ; then
-    echo -e "\n\tYou must to provide the name of the BLFS book sources directory.\n"
-    exit 1
-  fi
-
-  if [[ -n "$DOC_MODE" ]] ; then
-    case $DOC_MODE in
-      update )
-        if [[ ! -d $BLFS_XML ]] ; then
-          echo -e "\n\t$BLFS_XML is not a directory\n"
-          exit 1
-        fi
-        if [[ ! -f $BLFS_XML/x/x.xml ]] ; then
-          echo -e "\n\tLooks like $BLFS_XML is not a BLFS book sources directory\n"
-          exit 1
-        fi
-
-        if [[ -d $BLFS_XML/.svn ]] ; then
-          echo -e "\n\tUpdating the $BLFS_XML book sources ...\n"
-          pushd $BLFS_XML 1> /dev/null
-            svn up
-          popd 1> /dev/null
-          echo -e "\n\tBook sources updated."
-        else
-          echo -e "\n\tLooks like $BLFS_XML is not a svn working copy."
-          echo -e "\tSkipping BLFS sources update.\n"
-        fi
-        ;;
-      
-      get )
-        [[ ! -d $BLFS_XML ]] && mkdir -pv $BLFS_XML
-        svn co $SVN/BLFS/trunk/BOOK $BLFS_XML 2>&1
-       ;;
-      * )
-         echo -e "\n\tUnknown option ${DOC_MODE} ignored.\n"
-      ;;
-    esac
-  fi
-}
-
-BOOK_Source $BLFS_XML $DOC_MODE
-
-echo -en "\n\tGenerating packages file ..."
-generate_packages
-echo "done."
-
-echo -en "\tGenerating gnome-core dependencies list ..."
-generate_gnome_core
-echo "done."
-
-echo -en "\tGenerating gnome-full dependencies list ..."
-generate_gnome_full
-echo "done."
-
-echo -en "\tGenerating kde-core dependencies list ..."
-generate_kde_core
-echo "done."
-
-echo -en "\tGenerating kde-full dependencies list ..."
-generate_kde_full
-echo -e "done.\n"
-

Copied: jhalfs/branches/experimental/BLFS/update_book.sh (from rev 2940, jhalfs/trunk/BLFS/update_book.sh)
===================================================================
--- jhalfs/branches/experimental/BLFS/update_book.sh	                        (rev 0)
+++ jhalfs/branches/experimental/BLFS/update_book.sh	2006-08-13 18:24:16 UTC (rev 2941)
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# $Id$
+#
+set -e
+
+declare -r SVN="svn://svn.linuxfromscratch.org"
+
+BLFS_XML=$1  # Book directory
+DOC_MODE=$2  # Action to take, update or get
+TREE=$3      # SVN tree for the BLFS book version
+
+[[ -z $BLFS_XML ]] && BLFS_XML=blfs-xml
+[[ -z $DOC_MODE ]] && DOC_MODE=update
+[[ -z $TREE ]] && TREE=trunk/BOOK
+
+#---------------------
+# packages module
+source libs/func_packages
+[[ $? > 0 ]] && echo -e "\n\tERROR: func_packages did not load..\n" && exit
+
+#----------------------------#
+BOOK_Source() {              #
+#----------------------------#
+: <<inline_doc
+    function:   Retrieve or upate a copy of the BLFS book
+    input vars: $1 BLFS_XML book sources directory
+                $2 DOC_MODE action get/update
+                $3 TREE     SVN tree when $2=get
+    externals:  none
+    modifies:   $BLFS_XML directory tree
+    returns:    nothing
+    output:
+    on error:   exit
+    on success: text messages
+inline_doc
+
+  case $DOC_MODE in
+    update )
+      if [[ ! -d $BLFS_XML ]] ; then
+        echo -e "\n\t$BLFS_XML is not a directory\n"
+        exit 1
+      fi
+      if [[ ! -f $BLFS_XML/x/x.xml ]] ; then
+        echo -e "\n\tLooks like $BLFS_XML is not a BLFS book sources directory\n"
+        exit 1
+      fi
+
+      if [[ -d $BLFS_XML/.svn ]] ; then
+        echo -e "\n\tUpdating the $BLFS_XML book sources ...\n"
+        pushd $BLFS_XML 1> /dev/null
+          svn up
+        popd 1> /dev/null
+        echo -e "\n\tBook sources updated."
+      else
+        echo -e "\n\tLooks like $BLFS_XML is not a svn working copy."
+        echo -e "\tSkipping BLFS sources update.\n"
+      fi
+      ;;
+
+    get )
+      [[ ! -d $BLFS_XML ]] && mkdir -pv $BLFS_XML
+      svn co $SVN/BLFS/$TREE $BLFS_XML 2>&1
+      ;;
+    * )
+        echo -e "\n\tUnknown option ${DOC_MODE} ignored.\n"
+    ;;
+  esac
+}
+
+BOOK_Source
+
+echo -en "\n\tGenerating packages file ..."
+generate_packages
+echo "done."
+
+echo -en "\tGenerating gnome-core dependencies list ..."
+generate_gnome_core
+echo "done."
+
+echo -en "\tGenerating gnome-full dependencies list ..."
+generate_gnome_full
+echo "done."
+
+echo -en "\tGenerating kde-core dependencies list ..."
+generate_kde_core
+echo "done."
+
+echo -en "\tGenerating kde-full dependencies list ..."
+generate_kde_full
+echo -e "done.\n"
+


Property changes on: jhalfs/branches/experimental/BLFS/update_book.sh
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Author Date Revision Id

Modified: jhalfs/branches/experimental/Config.in
===================================================================
--- jhalfs/branches/experimental/Config.in	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/Config.in	2006-08-13 18:24:16 UTC (rev 2941)
@@ -22,8 +22,8 @@
 		config	BOOK_HLFS
 			bool "Hardened Linux From Scratch"
 
-#		config	BOOK_BLFS
-#			bool "Beyond Linux From Scratch"
+		config	BOOK_BLFS
+			bool "Beyond Linux From Scratch"
 	endchoice
 
 	config	RUN_ME
@@ -33,7 +33,7 @@
 		default	"./clfs2"	if BOOK_CLFS2
 #		default	"./clfs3"	if BOOK_CLFS3
 		default	"./hlfs"	if BOOK_HLFS
-#		default	"./blfs"	if BOOK_BLFS
+		default	"./blfs"	if BOOK_BLFS
 	#--- End BOOK/script
 
 	#--- Book version
@@ -47,6 +47,7 @@
 
 		config	WORKING_COPY
 			bool	"Working Copy"
+			depends on !BOOK_BLFS
 			help
 				#-- A local working copy
 
@@ -277,10 +278,29 @@
 		default "uclibc"	if LIB_UCLIBC
 	#--- End HLFS specific params
 
+	#--- BLFS specific params
+	config	BLFS_ROOT
+		string "Directory root"
+		default "$HOME/blfs_root"
+		depends on BOOK_BLFS
+		help
+			#-- Full path to the directory where all required
+			#   files and scripts will be stored.
+
+	config	BLFS_XML
+		string "BLFS sources directory"
+		default "blfs-xml"
+		depends on BOOK_BLFS
+		help
+			#-- The directory name where BLFS book sources
+			#   will be checkout.
+	#--- End BLFS specific params
+
 #--- End BOOK Settings
 endmenu
 
 menu "--- General Settings"
+	depends on !BOOK_BLFS
 
 	#--- Set User Account
 	config	CONFIG_USER
@@ -383,6 +403,7 @@
 endmenu
 
 menu "--- Build Settings"
+	depends on !BOOK_BLFS
 
 	#--- Test Suites
 	config	CONFIG_TESTS
@@ -549,6 +570,7 @@
 endmenu
 
 menu "--- Advanced Features"
+	depends on !BOOK_BLFS
 
 	config	REPORT
 		bool "Create SBU and disk usage report"

Copied: jhalfs/branches/experimental/README.BLFS (from rev 2940, jhalfs/trunk/README.BLFS)
===================================================================
--- jhalfs/branches/experimental/README.BLFS	                        (rev 0)
+++ jhalfs/branches/experimental/README.BLFS	2006-08-13 18:24:16 UTC (rev 2941)
@@ -0,0 +1,94 @@
+$Id$
+
+1. INTRODUCTION::
+
+     To automatize packages build from the BLFS book instructions is a huge
+  task. The BLFS book isn't linear, some package pages need to use a non
+  defaul layout, there are circular dependencies, several packages can be
+  installed on a non default prifix, build commands can change based on what
+  dependencies will be used, etc.
+
+     Said that, the goal of jhalfs is try to help you solving packages
+  dependencies and creating your own build scripts/Makefile. Some of the
+  auto-generated build scripts and Makefile could work "as is", but as a
+  general rule you will need to review and edit the scripts while reading
+  the book.
+
+  NOTE:: The code is yet under development a may contains several bugs
+
+
+2. USAGE::
+
+     Due the complexity of the BLFS book, the scripts/Mafile generation is
+  done in several steps:
+
+  2.1  INSTALLATION::
+       Run "make" to launch the menuconfig interface. Select the BLFS book
+    and it version. Then set the installation directory (default
+    $HOME/blfs_root) and the BLFS sources directory (default blfs-xml).
+
+       All required files will be placed in the installation directory and
+    BLFS XML sources will be checkout to the named sub-directory.
+
+       Installed files:
+
+    lib/*              functions, xsl, and auto-generates dependencies tree files
+    README.BLFS        this file
+    TODO               developers notes
+    packages           auto-generated file with packages info
+    alternatives.conf  configuration files for alternative packages
+    makefile.conf      envars needed when running the generated Makefile
+    update_book.sh     update the XML book sources and regenerate packages file
+                       and GNOME and KDE dependencies tree
+    blfs-parser.sh     generates linear BLFS books and build scripts
+    gen-makefile.sh    generates Makefile
+    progress_bar.sh    the Makefile progress bar
+
+       From now on, all the work must be done from inside the installation
+    root directory.
+
+  2.2  UPDATING BOOK SOURCES::
+       If using the SVN book version, from time to time you may want to update
+    the XML sources. To do that run "./update_book.sh"
+
+  2.3  PARSING THE BOOK::
+       Next step is to create a book and build scripts in dependencies build order
+    for a target package. A target package can be any of the ones listed in the
+    packages file. That is done using the blfs-parser.sh script, but we are triying
+    to make a menuconfig based system.
+
+       The script need three arguments:
+
+    package name         as listed in packages file
+    dependencies level   1 for required, 2 for required an recommendedand,
+                         3 for required, recommended, and optional
+    sudo usage           y if sudo will be used (you will build as normal user)
+                         n if sudo isn't needed (you will build as root)
+
+       For example:
+
+       ./blfs-parser galeon 3 y
+
+    will create a directory named "galeon". Inside that directory you find a
+    directory named "HTML" that contains a galeon-based HTML book with all
+    dependencies in build order and a "scripts" directory with build scripts
+    that uses sudo for commands that need root priviledges.
+
+    There is also two other directories that contains files generated while
+    resolving dependencies trees.
+
+    Now is the time to review the generated book and scripts, making in the
+    scripts any changes you want to fit your needs. Scripts for aditional
+    packages (i.e., for non-BLFS packages) can be inserted in an easy way.
+
+  2.4  CREATING THE MAKEFILE
+       When the build scripts will be ready to be run, the Makefile can be
+  created. Be sure that you are into the "package" directory and run
+
+      ../gen_makefile.sh
+
+  Review the Makefile and if all look sane, start the build.
+
+
+(Text is needed for the installed packages tracking system and like)
+


Property changes on: jhalfs/branches/experimental/README.BLFS
___________________________________________________________________
Name: svn:keywords
   + Author Date Revision Id

Modified: jhalfs/branches/experimental/blfs
===================================================================
--- jhalfs/branches/experimental/blfs	2006-08-13 18:21:55 UTC (rev 2940)
+++ jhalfs/branches/experimental/blfs	2006-08-13 18:24:16 UTC (rev 2941)
@@ -1,6 +1,69 @@
 #!/bin/bash
+# $Id$
+
 set -e
 
-echo -e "\n  BLFS support has been dissabled for now.\n"
 
-exit 0
+#>>>>>>>>>>>>>>>ERROR TRAPPING >>>>>>>>>>>>>>>>>>>>
+#-----------------------#
+simple_error() {        # Basic error trap.... JUST DIE
+#-----------------------#
+  # If +e then disable text output
+  if [[ "$-" =~ "e" ]]; then
+    echo -e "\n${RED}ERROR:${GREEN} basic error trapped!${OFF}\n" >&2
+  fi
+}
+
+see_ya() {
+    echo -e "\n\t${BOLD}Goodbye and thank you for choosing ${L_arrow}jhalfs${R_arrow}\n"
+}
+##### Simple error TRAPS
+# ctrl-c   SIGINT
+# ctrl-y
+# ctrl-z   SIGTSTP
+# SIGHUP   1 HANGUP
+# SIGINT   2 INTRERRUPT FROM KEYBOARD Ctrl-C
+# SIGQUIT  3
+# SIGKILL  9 KILL
+# SIGTERM 15 TERMINATION
+# SIGSTOP 17,18,23 STOP THE PROCESS
+#####
+set -e
+trap see_ya 0
+trap simple_error ERR
+trap 'echo -e "\n\n${RED}INTERRUPT${OFF} trapped\n" &&  exit 2'  1 2 3 15 17 18 23
+#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+
+VERBOSITY=1
+
+[[ $VERBOSITY > 0 ]] && echo -n "Loading config params from <configuration>..."
+source configuration
+[[ $? > 0 ]] && echo "file:configuration did not load.." && exit 1
+[[ $VERBOSITY > 0 ]] && echo "OK"
+
+[[ -z $BOOK_BLFS ]] && echo -e "\nNo BLFS configuration found. Please configure it." && exit 1
+
+TREE=trunk/BOOK
+
+if [[ ! -z ${BRANCH_ID} ]]; then
+  case $BRANCH_ID in
+    dev* | SVN | trunk )  TREE=trunk/BOOK ;;
+              branch-* )  TREE=branches/${BRANCH_ID#branch-}/BOOK ;;
+                     * )  TREE=tags/${BRANCH_ID}/BOOK ;;
+  esac
+fi
+
+[[ ! -d $BLFS_ROOT ]] && mkdir -p $BLFS_ROOT
+
+cp -r BLFS/* $BLFS_ROOT
+cp common/progress_bar.sh $BLFS_ROOT
+# cp -r menu $BLFS_ROOT
+
+cd $BLFS_ROOT
+
+sed -i 's,blfs-xml,'$BLFS_XML',' update_book.sh
+sed -i 's,blfs-xml,'$BLFS_XML',' libs/book.xsl
+
+./update_book.sh $BLFS_XML get $TREE
+# make
+




More information about the alfs-log mailing list