Hi there!
Here's an updated paco-patch to fix two annoyances:
1. Symlinks installed by Glibc-2.x.x in /lib doesn't get logged by paco.
This isn't a bug in paco because paco can't follow statically linked
binaries, and the glibc-install uses 'sln' to install those symlinks.
2. When re-running the master scripts, the paco scripts got included,
and thus ended up with two entries in the final Makefile. At least that
happens for lazy people like me that don't clean up the target dir
before re-running the scripts ;)
Tor Olav
Index: LFS/master.sh
===================================================================
--- LFS/master.sh (revision 2697)
+++ LFS/master.sh (working copy)
@@ -173,6 +173,11 @@
# Keep the script file name
this_script=`basename $file`
+ # If $this_script corresponds to a paco script, then skip it
+ case "${this_script}" in
+ *paco) continue ;;
+ esac
+
# We'll run the chroot commands differently than the others, so skip them
in the
# dependencies and target creation.
case "${this_script}" in
@@ -180,6 +185,18 @@
*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)
+ TMP_SCRIPT="$this_script"
+ this_script=`echo $this_script | sed -e
's/linux-libc-headers/a-paco/'`
+ wrt_paco_inst "$this_script"
+ this_script="$TMP_SCRIPT" ;;
+ esac
+ fi
+
# Grab the name of the target
name=`echo ${this_script} | sed -e '[EMAIL PROTECTED]@@'`
@@ -223,7 +240,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.
@@ -243,6 +262,16 @@
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)
+ TMP_SCRIPT="$this_script"
+ this_script=`echo ${this_script} | sed -e 's/readjusting/x-paco/'`
+ wrt_paco_inst "$this_script"
+ this_script="$TMP_SCRIPT" ;;
+ esac
+
done # end for file in chapter06/*
}
@@ -304,6 +333,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 2697)
+++ LFS/lfs.xsl (working copy)
@@ -32,6 +32,9 @@
<!-- Locale settings -->
<xsl:param name="lang" select="en_CA"/>
+ <!-- Use paco? -->
+ <xsl:param name="use_paco" select="1"/>
+
<xsl:template match="/">
<xsl:apply-templates select="//sect1"/>
</xsl:template>
@@ -190,6 +193,33 @@
<xsl:apply-templates/>
<xsl:text> || true
</xsl:text>
</xsl:when>
+ <!-- paco begin -->
+ <!-- General rule -->
+ <xsl:when test="$use_paco != '0' and
+ ancestor::[EMAIL PROTECTED] != 'chapter-temporary-tools'] and
+ contains(string(),'make') and
+ contains(string(),'install')">
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>
</xsl:text>
+ </xsl:when>
+ <!-- Linux-libc-headers -->
+ <xsl:when test="$use_paco != '0' and
+ ancestor::[EMAIL PROTECTED]'ch-system-linux-libc-headers'] and
+ contains(string(),'install ')">
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>
</xsl:text>
+ </xsl:when>
+ <!-- Unset LD_PRELOAD before second make in Zlib -->
+ <xsl:when test="$use_paco != '0' and
+ ancestor::[EMAIL PROTECTED]'ch-system-zlib'] and
+ contains(string(),'make clean')">
+ <xsl:text>unset LD_PRELOAD
</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>
</xsl:text>
+ </xsl:when>
+ <!-- paco end -->
<!-- The rest of commands -->
<xsl:otherwise>
<xsl:apply-templates/>
Index: BLFS/master.sh
===================================================================
--- BLFS/master.sh (revision 2697)
+++ 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.
(
@@ -88,6 +101,7 @@
echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n"
>>logs/$this_script
EOF
) >> $MKFILE
+ fi
# Include a touch of the target name so make can check
# if it's already been made.
Index: BLFS/blfs.xsl
===================================================================
--- BLFS/blfs.xsl (revision 2697)
+++ BLFS/blfs.xsl (working copy)
@@ -159,7 +159,7 @@
<xsl:when test="@role = 'nodump'"/>
<xsl:otherwise>
<xsl:if test="@role = 'root'">
- <xsl:text>sudo </xsl:text>
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
</xsl:if>
<xsl:apply-templates select="userinput" mode="screen"/>
</xsl:otherwise>
Index: common/paco-build-hlfs.sh
===================================================================
--- common/paco-build-hlfs.sh (revision 0)
+++ common/paco-build-hlfs.sh (revision 0)
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -e
+
+cd $PKGDIR
+./configure --with-pic \
+ --disable-static \
+ --disable-gpaco \
+ --sysconfdir=/etc &&
+make &&
+make install &&
+make logme
Index: common/config
===================================================================
--- common/config (revision 2697)
+++ common/config (working copy)
@@ -88,6 +88,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.7
+
+#--- 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
@@ -100,3 +108,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 2697)
+++ 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 GETPKG DEPEND
TEST OPTIMIZE"
- local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE GETPKG RUNMAKE MODEL
GRSECURITY_HOST TEST OPTIMIZE 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 GETPKG RUNMAKE METHOD
ARCH TARGET TEST OPTIMIZE 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 GETPKG RUNMAKE
TEST OPTIMIZE 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 GETPKG
DEPEND TEST OPTIMIZE"
+ local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO GETPKG RUNMAKE
MODEL GRSECURITY_HOST TEST OPTIMIZE 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 GETPKG RUNMAKE
METHOD ARCH TARGET TEST OPTIMIZE 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 GETPKG RUNMAKE
TEST OPTIMIZE 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 \<common/config\>${OFF}'
@@ -174,6 +174,7 @@
# Validate general parameters..
GETPKG) 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,123 @@
+#!/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-$PROGNAME.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 '[EMAIL PROTECTED] $@' >> $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
+
+# Glibc uses 'sln' to install symlinks in /lib
+# add these to the log since paco can't track statically linked executables
+# Glibc is the first package to install into /lib, so a simple 'find' will
suffice
+if [ $USE_PACO != 0 ] && [ "$name" = "glibc" ]; then
+(
+cat << EOF
+ @\$(CHROOT1) 'find /lib -type l | paco -lp+ $PACKAGE'
+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 '[EMAIL
PROTECTED]/@@;s@/.*@@'\` && \\
+ if [ -e $PACO_TMPFILE ]; then \\
+ paco -lp \$\$PACKAGE < $PACO_TMPFILE && \\
+ rm -f $PACO_TMPFILE; \\
+ fi;
+EOF
+) >> $MKFILE
+fi
+}
+
Index: common/paco-build-lfs.sh
===================================================================
--- common/paco-build-lfs.sh (revision 0)
+++ common/paco-build-lfs.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 2697)
+++ common/common-functions (working copy)
@@ -65,6 +65,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} -O, --optimize${OFF}
Optimize [0-2]
0 = no optimization
@@ -581,6 +584,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)
@@ -592,6 +596,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 2697)
+++ HLFS/hlfs.xsl (working copy)
@@ -39,6 +39,9 @@
<xsl:param name="lang" select="en_CA"/>
<xsl:param name="lc_all" select="en_CA"/>
+ <!-- Use paco? -->
+ <xsl:param name="use_paco" select="1"/>
+
<xsl:template match="/">
<xsl:apply-templates select="//sect1"/>
</xsl:template>
@@ -191,6 +194,10 @@
<!-- Fixing bootscripts installation -->
<xsl:when test="ancestor::[EMAIL PROTECTED]'bootable-bootscripts'] and
string() = 'make install'">
+ <!-- inserting LD_PRELOAD before installing bootscripts -->
+ <xsl:if test="$use_paco != '0' and $model != 'uclibc'">
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
+ </xsl:if>
<xsl:text>make install
</xsl:text>
<xsl:text>cd
../blfs-bootscripts-&blfs-bootscripts-version;
</xsl:text>
</xsl:when>
@@ -248,6 +255,25 @@
<xsl:apply-templates/>
<xsl:text> || true
</xsl:text>
</xsl:when>
+ <!-- paco begin -->
+ <!-- General rule -->
+ <xsl:when test="$use_paco != '0' and $model != 'uclibc' and
+ ancestor::[EMAIL PROTECTED] != 'chapter-temporary-tools'] and
+ contains(string(),'make') and
+ contains(string(),'install')">
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>
</xsl:text>
+ </xsl:when>
+ <!-- Linux-libc-headers -->
+ <xsl:when test="$use_paco != '0' and $model != 'uclibc' and
+ ancestor::[EMAIL PROTECTED]'ch-system-linux-libc-headers'] and
+ contains(string(),'install ')">
+ <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so
</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>
</xsl:text>
+ </xsl:when>
+ <!-- paco end -->
<!-- The rest of commands -->
<xsl:otherwise>
<xsl:apply-templates/>
Index: HLFS/master.sh
===================================================================
--- HLFS/master.sh (revision 2697)
+++ HLFS/master.sh (working copy)
@@ -245,6 +245,11 @@
# Keep the script file name
this_script=`basename $file`
+ # If this script is *-paco, then skip it
+ case $this_script in
+ *paco ) continue ;;
+ esac
+
# Skip this script depending on jhalfs.conf flags set.
case $this_script in
# We'll run the chroot commands differently than the others, so skip
them in the
@@ -254,6 +259,18 @@
*-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)
+ TMP_SCRIPT="$this_script"
+ this_script=`echo $this_script | sed -e
's/linux-libc-headers/a-paco/'`
+ wrt_paco_inst "$this_script"
+ this_script="$TMP_SCRIPT" ;;
+ esac
+ fi
+
# Grab the name of the target
name=`echo $this_script | sed -e '[EMAIL PROTECTED]@@'`
@@ -324,7 +341,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
#
@@ -357,6 +376,16 @@
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)
+ TMP_SCRIPT="$this_script"
+ this_script=`echo $this_script | sed -e 's/readjusting/x-paco/'`
+ wrt_paco_inst "$this_script"
+ this_script="$TMP_SCRIPT" ;;
+ esac
+
done # end for file in chapter06/*
}
@@ -419,6 +448,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 2697)
+++ master.sh (working copy)
@@ -147,6 +147,8 @@
--help | -h ) usage | more && exit ;;
+ --no-paco ) USE_PACO=0 ;;
+
--optimize | -O )
test $# = 1 && eval "$exit_missing_arg"
shift
@@ -463,6 +465,14 @@
[[ $VERBOSITY > 0 ]] && echo "OK"
fi
#
+# paco module
+if [[ "$USE_PACO" = "1" ]]; then
+ [[ $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"
+fi
+#
# optimize module
if [[ "$OPTIMIZE" != "0" ]]; then
[[ $VERBOSITY > 0 ]] && echo -n "Loading optimization module..."
@@ -507,6 +517,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-$PROGNAME.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
[[ "$OPTIMIZE" != "0" ]] && cp optimize/opt_override $JHALFSDIR/
if [[ "$COMPARE" != "0" ]] ; then
mkdir -p $JHALFSDIR/extras
--
http://linuxfromscratch.org/mailman/listinfo/alfs-discuss
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page