From 059822cac1963bbb189e4d849a11cc68e81b69d0 Mon Sep 17 00:00:00 2001 From: Manuel Canales Esparcia Date: Sun, 9 Apr 2006 16:00:17 +0000 Subject: [PATCH] Added jhalfs-paco.patch. --- README.PACO | 70 ++++++ contrib/jhalfs-paco.patch | 466 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 536 insertions(+) create mode 100644 README.PACO create mode 100644 contrib/jhalfs-paco.patch diff --git a/README.PACO b/README.PACO new file mode 100644 index 0000000..ed3709f --- /dev/null +++ b/README.PACO @@ -0,0 +1,70 @@ +########################################### +# # +# README FILE FOR JHALFS PACO PATCH # +# # +########################################### + + +##### NOTES ##### + +Patch author: Tor Olav Stava (t-ol-sta@online.no) + +Any comments directly regarding the patch should be directed to the author +or the ALFS mailing list. + +The patch author is not a member of the ALFS team, and all work is done +on a voluntary basis. + + +##### GENERAL DESCRIPTION ##### + +This patch will enable the paco pacKAGE oRGANIZER to be used with jhalfs. +At the moment only the LFS, BLFS, and HLFS-glibc parts are supported. + + +##### PREREQUISITES ##### + +Before using jhalfs you should have some experience with LFS. + +If you don't know what LFS is about, then head over to +http://www.linuxfromscratch.org/lfs and start from there. + + +##### QUICK START ##### + +1. Apply the paco.patch. + (patch -Np0 -i contrib/jhalfs-paco.patch) + +2. Edit the configuration files to your preferences. + (common/config and LFS/config or HLFS/config) + +3. Run the wanted script. + (Only ./lfs ./hlfs --model glibc, and ./blfs if you want to use paco) + +4. Download the paco source package to the $BUILDDIR/sources dir. + paco-1.10.4 or later is recommended. + If using a newer paco version, remember to update also the + PACO_VERSION variable. + +5. Run make. + + +##### LINKS ##### + +Linux From Scratch homepage: +http://www.linuxfromscratch.org + +paco homepage: +http://paco.sourceforge.net/index.html + +nALFS + paco hint by David Rosal: +http://www.linuxfromscratch.org/hints/downloads/files/alfs_paco.txt + + +##### SUPPORT ##### + +Linux From Scratch Mailing Lists: +http://www.linuxfromscratch.org/mail.html + +paco Mailing List: +http://lists.sourceforge.net/lists/listinfo/paco-general diff --git a/contrib/jhalfs-paco.patch b/contrib/jhalfs-paco.patch new file mode 100644 index 0000000..6ab691c --- /dev/null +++ b/contrib/jhalfs-paco.patch @@ -0,0 +1,466 @@ +Index: LFS/master.sh +=================================================================== +--- LFS/master.sh (revision 2508) ++++ LFS/master.sh (working copy) +@@ -188,7 +188,9 @@ + # and not to use chroot. + case "${this_script}" in + *kernfs) wrt_run_as_root "${this_script}" "$file" ;; +- *) wrt_run_as_chroot1 "${this_script}" "$file" ;; ++ *) wrt_paco_prep ++ wrt_run_as_chroot1 "${this_script}" "$file" ++ wrt_paco_log "$name" "$vrs" ;; + esac + + # Remove the build directory(ies) except if the package build fails. +@@ -206,6 +208,13 @@ + + # Keep the script file name for Makefile dependencies. + PREV=${this_script} ++ ++ # Inserting paco build commands ++ case "${this_script}" in ++ *devices) wrt_paco_inst "065.5" ;; ++ *readjusting) wrt_paco_inst "069.5" ;; ++ esac ++ + done # end for file in chapter06/* + } + +@@ -267,6 +276,14 @@ + wrt_run_as_chroot2 "$this_script" "$file" + fi + ;; ++ *kernel) wrt_paco_prep ++ wrt_run_as_chroot2 "$this_script" "$file" ++ wrt_paco_log "linux-kernel" "$vrs" ++ ;; ++ *bootscripts) wrt_paco_prep ++ wrt_run_as_chroot2 "$this_script" "$file" ++ wrt_paco_log "lfs-bootscripts" "$vrs" ++ ;; + *) wrt_run_as_chroot2 "$this_script" "$file" + ;; + esac +Index: LFS/lfs.xsl +=================================================================== +--- LFS/lfs.xsl (revision 2508) ++++ LFS/lfs.xsl (working copy) +@@ -32,6 +32,9 @@ + + + ++ ++ ++ + + + +@@ -190,6 +193,33 @@ + + || true + ++ ++ ++ ++ export LD_PRELOAD=/usr/lib/libpaco-log.so ++ ++ ++ ++ ++ ++ export LD_PRELOAD=/usr/lib/libpaco-log.so ++ ++ ++ ++ ++ ++ unset LD_PRELOAD ++ ++ ++ ++ + + + +Index: master.sh +=================================================================== +--- master.sh (revision 2508) ++++ master.sh (working copy) +@@ -66,6 +66,11 @@ + source $MODULE + [[ $? > 0 ]] && echo "$MODULE did not load.." && exit 2 + [[ $VERBOSITY > 0 ]] && echo "OK" ++# Load paco-functions ++[[ $VERBOSITY > 0 ]] && echo -n "Loading paco module..." ++source $COMMON_DIR/paco-functions ++[[ $? > 0 ]] && echo "$COMMON_DIR/paco-functions did not load.." && exit 2 ++[[ $VERBOSITY > 0 ]] && echo "OK" + # + [[ $VERBOSITY > 0 ]] && echo "---------------${nl_}" + +@@ -146,6 +151,8 @@ + + --help | -h ) usage | more && exit ;; + ++ --no-paco ) USE_PACO=0 ;; ++ + --testsuites | -T ) + test $# = 1 && eval "$exit_missing_arg" + shift +@@ -455,6 +462,15 @@ + + if [[ "$PWD" != "$JHALFSDIR" ]]; then + cp $COMMON_DIR/makefile-functions $JHALFSDIR/ ++ if [[ $USE_PACO != "0" ]] ; then ++ if [[ $PROGNAME != "blfs" ]]; then ++ cp $COMMON_DIR/paco-build.sh $JHALFSDIR/ ++ else ++ echo -e "export PACO_INCLUDE=$PACO_INCLUDE" > $JHALFSDIR/pacovars ++ echo -e "export PACO_EXCLUDE=~/sources:$JHALFSDIR:$PACO_EXCLUDE" >> $JHALFSDIR/pacovars ++ echo -e "export PACO_TMPFILE=$PACO_TMPFILE" >> $JHALFSDIR/pacovars ++ fi ++ fi + if [[ -n "$FILES" ]]; then + # pushd/popd necessary to deal with mulitiple files + pushd $PACKAGE_DIR 1> /dev/null +Index: BLFS/master.sh +=================================================================== +--- BLFS/master.sh (revision 2508) ++++ BLFS/master.sh (working copy) +@@ -79,6 +79,19 @@ + EOF + ) >> $MKFILE + ++ if [[ $USE_PACO != 0 ]]; then ++( ++ cat << EOF ++ @echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n" >logs/$this_script && \\ ++ source $JHALFSDIR/pacovars && \\ ++ rm -f $PACO_TMPFILE && \\ ++ $JHALFSDIR/${PROGNAME}-commands/$file >>logs/$this_script 2>&1 && \\ ++ echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n" >>logs/$this_script ++EOF ++) >> $MKFILE ++ wrt_paco_log_blfs ++ ++ else + # Insert date and disk usage at the top of the log file, the script run + # and date and disk usage again at the bottom of the log file. + ( +Index: BLFS/blfs.xsl +=================================================================== +--- BLFS/blfs.xsl (revision 2508) ++++ BLFS/blfs.xsl (working copy) +@@ -159,7 +159,7 @@ + + + +- sudo ++ export LD_PRELOAD=/usr/lib/libpaco-log.so + + + +Index: common/config +=================================================================== +--- common/config (revision 2508) ++++ common/config (working copy) +@@ -74,3 +74,18 @@ + #--- Working directories + JHALFSDIR=$BUILDDIR/jhalfs + LOGDIR=$JHALFSDIR/logs ++ ++#==== PACO VARIABLES ==== ++#--- Use paco? 0/1 0(no)/1(yes) ++USE_PACO=1 ++PACO_VERSION=1.10.4 ++ ++#--- Name of the Paco source package ++PACO_FILE=paco-$PACO_VERSION.tar.* ++ ++#--- Variables needed ++# Don't change unless you know what you're doing ++PACO_INCLUDE=/ ++PACO_EXCLUDE=/sys:/dev:/proc:/tmp:/usr/src:/usr/share/info/dir ++PACO_TMPFILE=/tmp/paco.tmp ++LD_PRELOAD=/usr/lib/libpaco-log.so +Index: common/func_validate_configs.sh +=================================================================== +--- common/func_validate_configs.sh (revision 2508) ++++ common/func_validate_configs.sh (working copy) +@@ -85,10 +85,10 @@ + inline_doc + + # First internal variables, then the ones that change the book's flavour, and lastly system configuration variables +- local -r blfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG DEPEND TEST" +- local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG RUNMAKE MODEL GRSECURITY_HOST TEST STRIP FSTAB CONFIG KEYMAP PAGE TIMEZONE LANG LC_ALL" +- local -r clfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG RUNMAKE METHOD ARCH TARGET TEST STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG" +- local -r lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG RUNMAKE TEST STRIP FSTAB CONFIG VIMLANG PAGE TIMEZONE LANG" ++ local -r blfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO HPKG DEPEND TEST" ++ local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO HPKG RUNMAKE MODEL GRSECURITY_HOST TEST STRIP FSTAB CONFIG KEYMAP PAGE TIMEZONE LANG LC_ALL" ++ local -r clfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO HPKG RUNMAKE METHOD ARCH TARGET TEST STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG" ++ local -r lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO HPKG RUNMAKE TEST STRIP FSTAB CONFIG VIMLANG PAGE TIMEZONE LANG" + + local -r ERROR_MSG_pt1='The variable \"${L_arrow}${config_param}${R_arrow}\" value ${L_arrow}${BOLD}${!config_param}${R_arrow} is invalid,' + local -r ERROR_MSG_pt2=' check the config file ${BOLD}${GREEN}\<$(echo $PROGNAME | tr [a-z] [A-Z])/config\> or \${OFF}' +@@ -130,6 +130,7 @@ + continue ;; + TIMEZONE) continue;; + MKFILE) continue;; ++ USE_PACO) validation_str="x0x x1x"; validate_str; continue ;; + HPKG) validation_str="x0x x1x"; validate_str; continue ;; + RUNMAKE) validation_str="x0x x1x"; validate_str; continue ;; + TEST) validation_str="x0x x1x x2x x3x"; validate_str; continue ;; +Index: common/paco-build.sh +=================================================================== +--- common/paco-build.sh (revision 0) ++++ common/paco-build.sh (revision 0) +@@ -0,0 +1,9 @@ ++#!/bin/sh ++set -e ++ ++cd $PKGDIR ++./configure --disable-gpaco \ ++ --sysconfdir=/etc && ++make && ++make install && ++make logme + +Property changes on: common/paco-build.sh +___________________________________________________________________ +Name: svn:keywords + + Author Date Revision Id + +Index: common/paco-functions +=================================================================== +--- common/paco-functions (revision 0) ++++ common/paco-functions (revision 0) +@@ -0,0 +1,90 @@ ++#!/bin/bash ++ ++ ++#----------------------------# ++wrt_paco_inst() { # ++#----------------------------# ++if [ $USE_PACO != 0 ] && [ $MODEL != "uclibc" ]; then ++ name="paco" ++ this_script="$1-$name" ++ file="chapter06/$this_script" ++ chapter6="$chapter6 $this_script" ++ ++ # Write target, dependency and unpack ++ wrt_target "$this_script" "$PREV" ++ wrt_unpack2 "$PACO_FILE" ++ ++ # Copy the paco build script to the correct directory and make it executable ++ echo -e "\t@cp $JHALFSDIR/paco-build.sh $JHALFSDIR/${PROGNAME}-commands/$file && \\" >> $MKFILE.tmp ++ echo -e "\tchmod +x $JHALFSDIR/${PROGNAME}-commands/$file" >> $MKFILE.tmp ++ ++ # Run the script ++ wrt_run_as_chroot1 "${this_script}" "${file}" ++ ++ # Clean up ++ wrt_remove_build_dirs "$name" ++ echo -e '\t@touch $@' >> $MKFILE.tmp ++ ++ # Override the PREV variable ++ PREV="$this_script" ++fi ++} ++ ++ ++#----------------------------------# ++wrt_paco_prep() { # Export Paco variables ++#----------------------------------# and remove tmpfile ++if [ $USE_PACO != 0 ] && [ "$vrs" != "" ] && [ $MODEL != "uclibc" ]; then ++( ++cat << EOF ++ @echo "export PACO_INCLUDE=$PACO_INCLUDE" >> envars && \\ ++ echo "export PACO_EXCLUDE=\$(SRC):$JHALFSDIR:$PACO_EXCLUDE" >> envars && \\ ++ echo "export PACO_TMPFILE=$PACO_TMPFILE" >> envars && \\ ++ rm -f \$(MOUNT_PT)$PACO_TMPFILE ++EOF ++) >> $MKFILE.tmp ++fi ++} ++ ++ ++#----------------------------------# ++wrt_paco_log() { # If the tmpfile exist, then log the current package ++#----------------------------------# and remove tempfile ++ local PACKAGE ++ ++ if [[ $2 != "" ]] ; then ++ PACKAGE="$1-$2"; ++ else ++ PACKAGE="$1" ++ fi ++ ++if [ $USE_PACO != 0 ] && [ "$vrs" != "" ] && [ $MODEL != "uclibc" ]; then ++( ++cat << EOF ++ @if [ -e \$(MOUNT_PT)$PACO_TMPFILE ]; then \\ ++ \$(CHROOT1) 'paco -lp $PACKAGE < $PACO_TMPFILE' && \\ ++ rm -f \$(MOUNT_PT)$PACO_TMPFILE; \\ ++ fi; ++EOF ++) >> $MKFILE.tmp ++fi ++} ++ ++ ++#----------------------------------# ++wrt_paco_log_blfs() { # If the tmpfile exist, then log the current package ++#----------------------------------# and remove tempfile ++if [ $USE_PACO != 0 ] ; then ++( ++cat << EOF ++ @PACKAGE=\`head -n1 /tmp/unpacked | sed 's@^./@@;s@/.*@@'\` && \\ ++ if [ -e $PACO_TMPFILE ]; then \\ ++ paco -E ~/sources:$JHALFSDIR:$PACO_EXCLUDE \\ ++ -lp \$\$PACKAGE < $PACO_TMPFILE && \\ ++ rm -f $PACO_TMPFILE; \\ ++ fi; ++EOF ++) >> $MKFILE ++fi ++} ++ + +Property changes on: common/paco-functions +___________________________________________________________________ +Name: svn:keywords + + Author Date Revision Id + +Index: common/common-functions +=================================================================== +--- common/common-functions (revision 2508) ++++ common/common-functions (working copy) +@@ -60,6 +60,9 @@ + in the configuration file has the proper packages and patches for the + book version being processed. + ++${BOLD} --no-paco${OFF} ++ dissables paco logging feature. ++ + ${BOLD} -T, --testsuites N ${OFF} + Run test suites [0-3] + 0 = none +@@ -623,6 +626,7 @@ + --stringparam lc_all $LC_ALL \ + --stringparam keymap $KEYMAP \ + --stringparam grsecurity_host $GRSECURITY_HOST \ ++ --stringparam use_paco $USE_PACO \ + -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1 + ;; + lfs) +@@ -634,6 +638,7 @@ + --stringparam timezone $TIMEZONE \ + --stringparam page $PAGE \ + --stringparam lang $LANG \ ++ --stringparam use_paco $USE_PACO \ + -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1 + ;; + blfs) +Index: HLFS/hlfs.xsl +=================================================================== +--- HLFS/hlfs.xsl (revision 2508) ++++ HLFS/hlfs.xsl (working copy) +@@ -39,6 +39,9 @@ + + + ++ ++ ++ + + + +@@ -191,6 +194,10 @@ + + ++ ++ ++ export LD_PRELOAD=/usr/lib/libpaco-log.so ++ + make install + cd ../blfs-bootscripts-&blfs-bootscripts-version; + +@@ -248,6 +255,25 @@ + + || true + ++ ++ ++ ++ export LD_PRELOAD=/usr/lib/libpaco-log.so ++ ++ ++ ++ ++ ++ export LD_PRELOAD=/usr/lib/libpaco-log.so ++ ++ ++ ++ + + + +Index: HLFS/master.sh +=================================================================== +--- HLFS/master.sh (revision 2508) ++++ HLFS/master.sh (working copy) +@@ -376,7 +376,9 @@ + wrt_run_as_root "${this_script}" "${file}" + ;; + *) # The rest of Chapter06 ++ wrt_paco_prep + wrt_run_as_chroot1 "${this_script}" "${file}" ++ wrt_paco_log "$name" "$vrs" + ;; + esac + # +@@ -407,6 +409,13 @@ + + # Keep the script file name for Makefile dependencies. + PREV=$this_script ++ ++ # Inserting paco build commands ++ case "${this_script}" in ++ *devices) wrt_paco_inst "068.5" ;; ++ *readjusting) wrt_paco_inst "073.5" ;; ++ esac ++ + done # end for file in chapter06/* + + } +@@ -469,6 +478,15 @@ + wrt_run_as_chroot2 "${this_script}" "${file}" + fi + ;; ++ *kernel) wrt_paco_prep ++ wrt_run_as_chroot2 "$this_script" "$file" ++ version=`grep "^linux-version" $JHALFSDIR/packages | sed -e 's/.* //' -e 's/"//g'` ++ wrt_paco_log "linux-kernel" "$version" ++ ;; ++ *bootscripts) wrt_paco_prep ++ wrt_run_as_chroot2 "$this_script" "$file" ++ wrt_paco_log "hlfs-bootscripts" ++ ;; + *) # All other scripts + wrt_run_as_chroot2 "${this_script}" "${file}" + ;;