Index: LFS/master.sh
===================================================================
--- LFS/master.sh (revision 2598)
+++ LFS/master.sh (working copy)
@@ -183,6 +183,16 @@
*stripping*) [[ "${STRIP}" = "0" ]] && continue ;;
esac
+ # Install paco as the first package in ch6, before installing
+ # linux-libc-headers, except in iterartive builds
+ if [[ -z "$N" ]]; then
+ case $this_script in
+ *linux-libc-headers)
+ PACO_NUM=`echo $this_script | sed -e 's/linux-libc-headers/a-paco/'`
+ wrt_paco_inst "$PACO_NUM" ;;
+ esac
+ fi
+
# Grab the name of the target
name=`echo ${this_script} | sed -e 's@[0-9]\{3\}-@@'`
@@ -225,7 +235,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.
@@ -245,6 +257,14 @@
PREV=${this_script}${N}
# Set system_build envar for iteration targets
system_build=$chapter6
+
+ # Reinstalling paco after readsjusting the toolchain.
+ case "${this_script}" in
+ *readjusting)
+ PACO_NUM=`echo ${this_script} | sed -e 's/readjusting/x-paco/'`
+ wrt_paco_inst "$PACO_NUM" ;;
+ esac
+
done # end for file in chapter06/*
}
@@ -306,6 +326,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 2598)
+++ 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: BLFS/master.sh
===================================================================
--- BLFS/master.sh (revision 2598)
+++ 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 2598)
+++ BLFS/blfs.xsl (working copy)
@@ -159,7 +159,7 @@
- sudo
+ export LD_PRELOAD=/usr/lib/libpaco-log.so
Index: common/config
===================================================================
--- common/config (revision 2598)
+++ common/config (working copy)
@@ -75,6 +75,14 @@
#--- Run farce testing 0(no)/1(yes)
RUN_FARCE=0
+#==== PACO VARIABLES ====
+#--- Use paco? 0(no)/1(yes)
+USE_PACO=1
+PACO_VERSION=1.10.4
+
+#--- Name of the Paco source package
+PACO_FILE=paco-$PACO_VERSION.tar.*
+
#==== INTERNAL VARIABLES ====
# Don't edit it unless you know what you are doing
@@ -87,3 +95,9 @@
#--- farce report log directory
FARCELOGDIR=$LOGDIR/farce
+
+#--- Variables needed by paco
+PACO_INCLUDE=/
+PACO_EXCLUDE=/sys:/dev:/proc:/tmp:/usr/src:/usr/share/info/dir:/jhalfs
+PACO_TMPFILE=/tmp/paco.tmp
+LD_PRELOAD=/usr/lib/libpaco-log.so
Index: common/func_validate_configs.sh
===================================================================
--- common/func_validate_configs.sh (revision 2598)
+++ common/func_validate_configs.sh (working copy)
@@ -84,10 +84,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 REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB CONFIG KEYMAP PAGE TIMEZONE LANG LC_ALL"
- local -r clfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG RUNMAKE METHOD ARCH TARGET TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG"
- local -r lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE HPKG RUNMAKE TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS 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 REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS 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 REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG"
+ local -r lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO HPKG RUNMAKE TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS 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}'
@@ -179,6 +179,7 @@
# Validate general parameters..
HPKG) validate_against_str "x0x x1x" ;;
RUNMAKE) validate_against_str "x0x x1x" ;;
+ USE_PACO) validate_against_str "x0x x1x" ;;
REPORT) validate_against_str "x0x x1x"
if [[ "${!config_param}" = "1" ]]; then
if [[ `type -p bc` ]]; then
Index: common/paco-functions
===================================================================
--- common/paco-functions (revision 0)
+++ common/paco-functions (revision 0)
@@ -0,0 +1,112 @@
+#!/bin/bash
+
+
+#----------------------------#
+wrt_paco_inst() { #
+#----------------------------#
+
+# Not using Paco with uClibc, even if requested
+if [ $PROGNAME = "hlfs" ]; then
+ if [ $MODEL = "uclibc" ]; then
+ USE_PACO=0
+ fi
+fi
+
+if [ $USE_PACO != 0 ]; then
+ paco_script="$1"
+ paco_file="chapter06/$paco_script"
+ chapter6="$chapter6 $paco_script"
+
+ # Copy the paco build script to the correct directory and make it executable
+ cp $JHALFSDIR/paco-build.sh $JHALFSDIR/${PROGNAME}-commands/$paco_file &&
+ chmod +x $JHALFSDIR/${PROGNAME}-commands/$paco_file
+
+ # Write target, dependency and unpack
+ wrt_target "$paco_script" "$PREV"
+ wrt_unpack2 "$PACO_FILE"
+
+ # Run the script
+ wrt_run_as_chroot1 "${paco_script}" "${paco_file}"
+
+ # Clean up
+ wrt_remove_build_dirs "paco"
+ echo -e '\t@touch $@' >> $MKFILE.tmp
+
+ # Override the PREV variable
+ PREV="$paco_script"
+fi
+}
+
+
+#----------------------------------#
+wrt_paco_prep() { # Export Paco variables
+#----------------------------------# and remove tmpfile
+
+# Not using Paco with uClibc, even if requested
+if [ $PROGNAME = "hlfs" ]; then
+ if [ $MODEL = "uclibc" ]; then
+ USE_PACO=0
+ fi
+fi
+
+if [ $USE_PACO != 0 ] && [ "$vrs" != "" ]; 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
+
+# Allow packages to be logged without version
+if [[ $2 != "" ]] ; then
+ PACKAGE="$1-$2";
+else
+ PACKAGE="$1"
+fi
+
+# Not using Paco with uClibc, even if requested
+if [ $PROGNAME = "hlfs" ]; then
+ if [ $MODEL = "uclibc" ]; then
+ USE_PACO=0
+ fi
+fi
+
+if [ $USE_PACO != 0 ] && [ "$vrs" != "" ]; 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 -lp \$\$PACKAGE < $PACO_TMPFILE && \\
+ rm -f $PACO_TMPFILE; \\
+ fi;
+EOF
+) >> $MKFILE
+fi
+}
+
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
Index: common/common-functions
===================================================================
--- common/common-functions (revision 2598)
+++ common/common-functions (working copy)
@@ -59,6 +59,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
@@ -630,6 +633,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)
@@ -641,6 +645,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 2598)
+++ 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 2598)
+++ HLFS/master.sh (working copy)
@@ -342,6 +342,16 @@
*-stripping* ) [[ "$STRIP" = "0" ]] && continue ;;
esac
+ # Install paco as the first package in ch6, before installing
+ # linux-libc-headers, except in iterartive builds
+ if [[ -z "$N" ]]; then
+ case $this_script in
+ *linux-libc-headers)
+ PACO_NUM=`echo $this_script | sed -e 's/linux-libc-headers/a-paco/'`
+ wrt_paco_inst "$PACO_NUM" ;;
+ esac
+ fi
+
# Grab the name of the target
name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'`
@@ -411,7 +421,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
#
@@ -444,6 +456,14 @@
PREV=${this_script}${N}
# Set system_build envar for iteration targets
system_build=$chapter6
+
+ # Reinstall paco after the toolchain has been readjusted.
+ case "${this_script}" in
+ *readjusting)
+ PACO_NUM=`echo $this_script | sed -e 's/readjusting/x-paco/'`
+ wrt_paco_inst "$PACO_NUM" ;;
+ esac
+
done # end for file in chapter06/*
}
@@ -506,6 +526,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}"
;;
Index: master.sh
===================================================================
--- master.sh (revision 2598)
+++ master.sh (working copy)
@@ -70,6 +70,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_}"
@@ -152,6 +157,8 @@
--help | -h ) usage | more && exit ;;
+ --no-paco ) USE_PACO=0 ;;
+
--testsuites | -T )
test $# = 1 && eval "$exit_missing_arg"
shift
@@ -480,6 +487,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 [[ "$COMPARE" != "0" ]] ; then
mkdir -p $JHALFSDIR/extras
cp extras/* $JHALFSDIR/extras