Author: pierre
Date: Sun Jun 14 00:08:19 2020
New Revision: 4172
Log:
Update ICA for new LFS/master.sh
Modified:
jhalfs/trunk/LFS/master.sh
jhalfs/trunk/common/libs/func_compare.sh
Modified: jhalfs/trunk/LFS/master.sh
==============================================================================
--- jhalfs/trunk/LFS/master.sh Thu Jun 11 13:43:33 2020 (r4171)
+++ jhalfs/trunk/LFS/master.sh Sun Jun 14 00:08:19 2020 (r4172)
@@ -17,23 +17,49 @@
# number:
printf -v dir chapter%02d $1
- echo "${tab_}${GREEN}Processing... ${L_arrow}Chapter $1${R_arrow}"
+# $2 contains the build number if rebuilding for ICA
+ if [[ -z "$2" ]] ; then
+ local N=""
+ else
+ local N=-build_$2
+ local CHROOT_TGT=""
+ mkdir ${dir}$N
+ cp ${dir}/* ${dir}$N
+ for script in ${dir}$N/* ; do
+ # Overwrite existing symlinks, files, and dirs
+ sed -e 's/ln *-sv/&f/g' \
+ -e 's/mv *-v/&f/g' \
+ -e 's/mkdir *-v/&p/g' -i ${script}
+ # Rename the scripts
+ mv ${script} ${script}$N
+ done
+ # Remove Bzip2 binaries before make install (LFS-6.2 compatibility)
+ sed -e 's@make install@rm -vf /usr/bin/bz*\n&@' -i ${dir}$N/*-bzip2$N
+ # Remove openssl-<version> from /usr/share/doc (LFS-9.x), because
+ # otherwise the mv command creates an openssl directory.
+ sed -e 's@mv -v@rm -rfv /usr/share/doc/openssl-*\n&@' \
+ -i ${dir}$N/*-openssl$N
+ fi
+
+ echo "${tab_}${GREEN}Processing... ${L_arrow}Chapter $1$N${R_arrow}"
- for file in $dir/* ; do
+ for file in ${dir}$N/* ; do
# Keep the script file name
this_script=`basename $file`
# Some scripts need peculiar actions:
- # - glibc chap 5: ix locales creation when running chapter05 testsuites
+ # - glibc chap 5: fix locales creation when running chapter05 testsuites
# - Stripping at the end of system build: lfs.xsl does not generate
# correct commands if the user does not want to strip, so skip it
# in this case
+ # - do not reinstall linux-headers when rebuilding
# - grub config: must be done manually; skip it
# - handle fstab and .config. Skip kernel if .config not supplied
case "${this_script}" in
5*glibc) [[ "${TEST}" = "3" ]] && \
sed -i 's@/usr/lib/locale@/tools/lib/locale@' $file ;;
*strippingagain) [[ "${STRIP}" = "n" ]] && continue ;;
+ *linux-headers*) [[ -n "$N" ]] && continue ;;
8*grub) (( nb_chaps == 5 )) && continue ;;
10*grub) continue ;;
*fstab) [[ -z "${FSTAB}" ]] ||
@@ -43,6 +69,24 @@
[[ ${CONFIG} == $BUILDDIR/sources/kernel-config ]] ||
cp ${CONFIG} $BUILDDIR/sources/kernel-config ;;
esac
+ # Grab the name of the target
+ name=`echo ${this_script} | sed -e 's@[0-9]\{3,4\}-@@' \
+ -e 's@-pass[0-9]\{1\}@@' \
+ -e 's@-libstdc++@@' \
+ -e 's,'$N',,'`
+
+ # Find the name of the tarball and the version of the package
+ # If it doesn't exist, we skip it in iterations rebuilds (except stripping
+ # and revisedchroot, where .a and .la files are removed).
+ pkg_tarball=$(sed -n 's/tar -xf \(.*\)/\1/p' $file)
+ pkg_version=$(sed -n 's/VERSION=\(.*\)/\1/p' $file)
+
+ if [[ "$pkg_tarball" = "" ]] && [[ -n "$N" ]] ; then
+ case "${this_script}" in
+ *stripping*|*revised*) ;;
+ *) continue ;;
+ esac
+ fi
# Append the name of the script to a list. The name of the
# list is contained in the variable Makefile_target. We adjust this
@@ -57,18 +101,9 @@
esac
eval $Makefile_target=\"\$$Makefile_target ${this_script}\"
- # Grab the name of the target
- name=`echo ${this_script} | sed -e 's@[0-9]\{3,4\}-@@' \
- -e 's@-pass[0-9]\{1\}@@' \
- -e 's@-libstdc++@@'`
-
#--------------------------------------------------------------------#
# >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< #
#--------------------------------------------------------------------#
- #
- # Find the name of the tarball and the version of the package
- pkg_tarball=$(sed -n 's/tar -xf \(.*\)/\1/p' $file)
- pkg_version=$(sed -n 's/VERSION=\(.*\)/\1/p' $file)
# Drop in the name of the target on a new line, and the previous target
# as a dependency. Also call the echo_message function.
@@ -80,8 +115,10 @@
# If $pkg_tarball isn't empty, we've got a package...
if [ "$pkg_tarball" != "" ] ; then
# Touch timestamp file if installed files logs shall be created.
- # But only for the final install chapter
- if [ "${INSTALL_LOG}" = "y" ] && (( 1+nb_chaps <= $1 )) ; then
+ # But only for the final install chapter and not when rebuilding it
+ if [ "${INSTALL_LOG}" = "y" ] &&
+ (( 1+nb_chaps <= $1 )) &&
+ [ "x$N" = x ] ; then
CHROOT_wrt_TouchTimestamp
fi
# Always initialize the test log file, since the test instructions may
@@ -152,7 +189,9 @@
# Write installed files log and remove the build directory(ies)
# except if the package build fails.
if [ "$pkg_tarball" != "" ] ; then
- if [ "${INSTALL_LOG}" = "y" ] && (( 1+nb_chaps <= $1 )) ; then
+ if [ "${INSTALL_LOG}" = "y" ] &&
+ (( 1+nb_chaps <= $1 )) &&
+ [ "x${N}" = "x" ] ; then
CHROOT_wrt_LogNewFiles "$name"
fi
fi
@@ -167,7 +206,17 @@
# Keep the script file name for Makefile dependencies.
PREV=${this_script}
+ # Set "system_build" var for iteration targets
+ if [ -z "$N" ] && (( 1+nb_chaps == $1 )); then
+ system_build="$system_build $this_script"
+ fi
+
done # end for file in $dir/*
+ # Set "system_build" when rebuilding: note the CHROOT_TGT is local
+ # in that case.
+ if [ -n "$N" ]; then
+ system_build="$CHROOT_TGT"
+ fi
}
# NOT USED -- NOT USED
@@ -534,8 +583,10 @@
# Add the save target, if needed
[[ "$SAVE_CH5" = "y" ]] && wrt_save_target $Makefile_target
fi
- # TODO Add the iterations targets, if needed
- # [[ "$COMPARE" = "y" ]] && wrt_compare_targets
+ if (( i == 1+nb_chaps )); then : # we have finished final system
+ # Add the iterations targets, if needed
+ [[ "$COMPARE" = "y" ]] && wrt_compare_targets $i
+ fi
done
# Add the CUSTOM_TOOLS targets, if needed
[[ "$CUSTOM_TOOLS" = "y" ]] && wrt_CustomTools_target
Modified: jhalfs/trunk/common/libs/func_compare.sh
==============================================================================
--- jhalfs/trunk/common/libs/func_compare.sh Thu Jun 11 13:43:33 2020
(r4171)
+++ jhalfs/trunk/common/libs/func_compare.sh Sun Jun 14 00:08:19 2020
(r4172)
@@ -8,8 +8,9 @@
# and "ITERATIONS" with no "$".
ITERATION=iteration-$N
if [ "$N" != "1" ] ; then
- wrt_system_build "$N" "$PREV_IT"
+ wrt_system_build "$1" "$N" "$PREV_IT"
fi
+ # add needed Makefile target
this_script=$ITERATION
CHROOT_wrt_target "$ITERATION" "$PREV"
wrt_compare_work "$ITERATION" "$PREV_IT"
@@ -18,31 +19,42 @@
PREV_IT=$ITERATION
PREV=$ITERATION
done
+ # We need to prevent "userdel" in all iterations but the last
+ # We need to access the scriptlets in "dir"
+ local dir
+ printf -v dir chapter%02d "$1"
+
+ sed -i '/userdel/d' $dir/*revised*
+ for (( N = 2; N < ITERATIONS; N++ )); do
+ sed -i '/userdel/d' $dir-build_$N/*revised*
+ done
+
}
#----------------------------------#
wrt_system_build() { #
#----------------------------------#
- local RUN=$1
- local PREV_IT=$2
+ local CHAP=$1
+ local RUN=$2
+ local PREV_IT=$3
if [[ "$PROGNAME" = "clfs" ]] ; then
final_system_Makefiles $RUN
else
- chapter6_Makefiles $RUN
+ chapter_targets $CHAP $RUN
fi
if [[ "$PROGNAME" = "clfs" ]] ; then
basicsystem="$basicsystem $PREV_IT $system_build"
else
- chapter6="$chapter6 $PREV_IT $system_build"
+ CHROOT_TGT="$CHROOT_TGT $PREV_IT $system_build"
fi
if [[ "$RUN" = "$ITERATIONS" ]] ; then
if [[ "$PROGNAME" = "clfs" ]] ; then
basicsystem="$basicsystem iteration-$RUN"
else
- chapter6="$chapter6 iteration-$RUN"
+ CHROOT_TGT="$CHROOT_TGT iteration-$RUN"
fi
fi
}
@@ -73,7 +85,6 @@
wrt_do_ica_work "$PREV_IT" "$ITERATION" "$DEST_ICA"
fi
fi
-
}
#----------------------------------#
--
http://lists.linuxfromscratch.org/listinfo/alfs-log
Unsubscribe: See the above information page