From f33756b8abec04898f9242f439eae3a0a0973009 Mon Sep 17 00:00:00 2001 From: Pierre Labastie Date: Sat, 5 Oct 2013 17:52:45 +0000 Subject: [PATCH] merge trunk r3730:3732 --- LFS/master.sh | 29 +++++------ common/libs/func_book_parser | 5 +- common/libs/func_wrt_Makefile | 93 +++++++++++++++++++++++++++++------ jhalfs | 2 +- 4 files changed, 96 insertions(+), 33 deletions(-) diff --git a/LFS/master.sh b/LFS/master.sh index e408465..b29abf4 100644 --- a/LFS/master.sh +++ b/LFS/master.sh @@ -113,20 +113,20 @@ chapter5_Makefiles() { # >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< # #--------------------------------------------------------------------# # + # Find the name of the tarball and the version of the package + pkg_tarball=$(get_package_tarball_name $name) + pkg_version=$(get_package_version $pkg_tarball) + # Drop in the name of the target on a new line, and the previous target # as a dependency. Also call the echo_message function. - LUSER_wrt_target "${this_script}" "$PREV" - - # Find the version of the command files, if it corresponds with the building of - # a specific package - pkg_tarball=$(get_package_tarball_name $name) + LUSER_wrt_target "${this_script}" "$PREV" "$pkg_version" # If $pkg_tarball isn't empty, we've got a package... if [ "$pkg_tarball" != "" ] ; then # Insert instructions for unpacking the package and to set the PKGDIR variable. LUSER_wrt_unpack "$pkg_tarball" # If the testsuites must be run, initialize the log file - [[ "$TEST" = "3" ]] && LUSER_wrt_test_log "${this_script}" + [[ "$TEST" = "3" ]] && LUSER_wrt_test_log "${this_script}" "$pkg_version" # If using optimizations, write the instructions [[ "$OPTIMIZE" = "2" ]] && wrt_optimize "$name" && wrt_makeflags "$name" fi @@ -135,8 +135,8 @@ chapter5_Makefiles() { # and date and disk usage again at the bottom of the log file. # The changingowner script must be run as root. case "${this_script}" in - *changingowner) wrt_RunAsRoot "$file" ;; - *) LUSER_wrt_RunAsUser "$file" ;; + *changingowner) wrt_RunAsRoot "$file" "$pkg_version" ;; + *) LUSER_wrt_RunAsUser "$file" "$pkg_version" ;; esac # Remove the build directory(ies) except if the package build fails @@ -213,6 +213,7 @@ chapter6_Makefiles() { # a specific package. We need this here to can skip scripts not needed for # iterations rebuilds pkg_tarball=$(get_package_tarball_name $name) + pkg_version=$(get_package_version $pkg_tarball) if [[ "$pkg_tarball" = "" ]] && [[ -n "$N" ]] ; then case "${this_script}" in @@ -238,8 +239,8 @@ chapter6_Makefiles() { # In the mount of kernel filesystems we need to set LFS # and not to use chroot. case "${this_script}" in - *kernfs) LUSER_wrt_target "${this_script}" "$PREV" ;; - *) CHROOT_wrt_target "${this_script}" "$PREV" ;; + *kernfs) LUSER_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; + *) CHROOT_wrt_target "${this_script}" "$PREV" "$pkg_version" ;; esac # If $pkg_tarball isn't empty, we've got a package... @@ -254,10 +255,10 @@ chapter6_Makefiles() { # If the testsuites must be run, initialize the log file case $name in binutils | gcc | glibc | gmp | mpfr ) - [[ "$TEST" != "0" ]] && CHROOT_wrt_test_log "${this_script}" + [[ "$TEST" != "0" ]] && CHROOT_wrt_test_log "${this_script}" "$pkg_version" ;; * ) - [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && CHROOT_wrt_test_log "${this_script}" + [[ "$TEST" = "2" ]] || [[ "$TEST" = "3" ]] && CHROOT_wrt_test_log "${this_script}" "$pkg_version" ;; esac # If using optimizations, write the instructions @@ -267,8 +268,8 @@ chapter6_Makefiles() { # In the mount of kernel filesystems we need to set LFS # and not to use chroot. case "${this_script}" in - *kernfs) wrt_RunAsRoot "$file" ;; - *) CHROOT_wrt_RunAsRoot "$file" ;; + *kernfs) wrt_RunAsRoot "$file" "$pkg_version" ;; + *) CHROOT_wrt_RunAsRoot "$file" "$pkg_version" ;; esac # Write installed files log and remove the build directory(ies) diff --git a/common/libs/func_book_parser b/common/libs/func_book_parser index c653b41..9262268 100644 --- a/common/libs/func_book_parser +++ b/common/libs/func_book_parser @@ -31,13 +31,12 @@ get_book() { # if [ ! $TREE == "development" ]; then cd ${PROGNAME}-$LFSVRS echo "Checking out $LFSVRS at $PWD in $TREE" - git checkout -b ${TREE} ${TREE} >>$LOGDIR/$LOG 2>&1 + git checkout ${TREE} >>$LOGDIR/$LOG 2>&1 fi else cd ${PROGNAME}-$LFSVRS case $PROGNAME in - clfs*) git checkout master >>$LOGDIR/$LOG 2>&1 - git pull >>$LOGDIR/$LOG 2>&1 + clfs*) git pull >>$LOGDIR/$LOG 2>&1 if [ ! $TREE == "development" ]; then git checkout ${TREE} >>$LOGDIR/$LOG 2>&1 fi diff --git a/common/libs/func_wrt_Makefile b/common/libs/func_wrt_Makefile index 9bd0e8e..5ec77da 100644 --- a/common/libs/func_wrt_Makefile +++ b/common/libs/func_wrt_Makefile @@ -58,7 +58,7 @@ EOF #======================= -#==== PACKAGES NAMES === +#==== PACKAGES NAMES AND VERSIONS ==== #----------------------------------# get_package_tarball_name() { # @@ -116,6 +116,41 @@ get_package_tarball_name() { # } +#----------------------------------# +get_package_version() { # +#----------------------------------# +# Those hacks may change depending on the invention of devs for tarball names. +# Normally, we expect -digit to signal the beginning of the version field +# but it may happen that there is no '-' (tcl, expect), that the version +# field is ddd-d (pkg-config-lite-028-1, since sed is greedy, it finds only +# the second dash) or that the first character of the version is not a digit +# (iputils-s20121221)... + case ${1} in + tcl*|expect*|tzdata*|xmlts*|unzip*|lynx*) + echo ${1} | sed -e 's@^[^[:digit:]]*@@' \ + -e 's@\(-src\)*\.tar.*@@' + ;; + iputils*) echo ${1} | sed -e 's@^.*-@@' \ + -e 's@\.tar.*@@' + ;; + LVM*) echo ${1} | sed -e 's@^[^.]*\.@@' \ + -e 's@\.tgz.*@@' + ;; + iproute*) echo ${1} | sed -e 's@^[^-]*-@@' \ + -e 's@\.tar.*@@' + ;; + pkg*|udev*|Singular*) + echo ${1} | sed -e 's@^.*[a-z]-\([[:digit:]]\)@\1@' \ + -e 's@\.tar.*@@' \ + -e 's@\.zip.*@@' + ;; + *) echo ${1} | sed -e 's@^.*[-_]\([[:digit:]]\)@\1@' \ + -e 's@\.tar.*@@' \ + -e 's@\.zip.*@@' + ;; + esac + +} #======================= @@ -126,14 +161,18 @@ LUSER_wrt_target() { # Create target and initialize log file #----------------------------------# local i=$1 local PREV=$2 + local version + if [ "$3" != "" ]; then + version=-$3 + fi ( cat << EOF $i: $PREV @\$(call echo_message, Building) ${NO_PROGRESS} @export BASHBIN=\$(SHELL) && \$(SHELL) progress_bar.sh \$@ \$\$PPID & - @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@ - @\$(PRT_DU) >>logs/\$@ + @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@$version + @\$(PRT_DU) >>logs/\$@$version EOF ) >> $MKFILE.tmp } @@ -143,14 +182,18 @@ CHROOT_wrt_target() { # Create target and initialize log file #----------------------------------# local i=$1 local PREV=$2 + local version + if [ "$3" != "" ]; then + version=-$3 + fi ( cat << EOF $i: $PREV @\$(call echo_message, Building) ${NO_PROGRESS} @export BASHBIN=\$(SHELL) && \$(SHELL) progress_bar.sh \$@ \$\$PPID & - @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@ - @\$(PRT_DU_CR) >>logs/\$@ + @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@$version + @\$(PRT_DU_CR) >>logs/\$@$version EOF ) >> $MKFILE.tmp } @@ -211,11 +254,15 @@ EOF #----------------------------------# LUSER_wrt_test_log() { # Initialize testsuite log file #----------------------------------# - local TESTLOGFILE=$1 + local version + if [ "$2" != "" ]; then + version=-$2 + fi + local TESTLOGFILE=$1$version ( cat << EOF @echo "export TEST_LOG=\$(TESTLOGDIR)/$TESTLOGFILE" >> envars && \\ - echo "\$(nl_)\`date\`\$(nl_)" >\$(TESTLOGDIR)/\$@ + echo "\$(nl_)\`date\`\$(nl_)" >\$(TESTLOGDIR)/$TESTLOGFILE EOF ) >> $MKFILE.tmp } @@ -223,11 +270,15 @@ EOF #----------------------------------# CHROOT_wrt_test_log() { # #----------------------------------# - local TESTLOGFILE=$1 + local version + if [ "$2" != "" ]; then + version=-$2 + fi + local TESTLOGFILE=$1$version ( cat << EOF @echo "export TEST_LOG=\$(crTESTLOGDIR)/$TESTLOGFILE" >> envars && \\ - echo "\$(nl_)\`date\`\$(nl_)" >test-logs/\$@ + echo "\$(nl_)\`date\`\$(nl_)" >\$(crTESTLOGDIR)/$TESTLOGFILE EOF ) >> $MKFILE.tmp } @@ -241,6 +292,10 @@ EOF wrt_RunAsRoot() { # Some scripts must be run as root.. #----------------------------------# local MOUNT_ENV + local version + if [ "$2" != "" ]; then + version=-$2 + fi local file=$1 case ${PROGNAME} in @@ -255,8 +310,8 @@ wrt_RunAsRoot() { # Some scripts must be run as root.. ( cat << EOF @export ${MOUNT_ENV}=\$(MOUNT_PT) && \\ - ${PROGNAME}-commands/`dirname $file`/\$@ >>logs/\$@ 2>&1 && \\ - \$(PRT_DU) >>logs/\$@ + ${PROGNAME}-commands/`dirname $file`/\$@ >>logs/\$@$version 2>&1 && \\ + \$(PRT_DU) >>logs/\$@$version EOF ) >> $MKFILE.tmp } @@ -265,12 +320,16 @@ EOF LUSER_wrt_RunAsUser() { # Calculate time with perl, footer to log file #----------------------------------# local file=$1 + local version + if [ "$2" != "" ]; then + version=-$2 + fi ( cat << EOF @source ~/.bashrc && \\ - \$(CMDSDIR)/`dirname $file`/\$@ >> logs/\$@ 2>&1 && \\ - \$(PRT_DU) >>logs/\$@ + \$(CMDSDIR)/`dirname $file`/\$@ >> logs/\$@$version 2>&1 && \\ + \$(PRT_DU) >>logs/\$@$version EOF ) >> $MKFILE.tmp } @@ -279,11 +338,15 @@ EOF CHROOT_wrt_RunAsRoot() { # #----------------------------------# local file=$1 + local version + if [ "$2" != "" ]; then + version=-$2 + fi ( cat << EOF @source envars && \\ - \$(crCMDSDIR)/`dirname $file`/\$@ >>logs/\$@ 2>&1 && \\ - \$(PRT_DU_CR) >>logs/\$@ + \$(crCMDSDIR)/`dirname $file`/\$@ >>logs/\$@$version 2>&1 && \\ + \$(PRT_DU_CR) >>logs/\$@$version EOF ) >> $MKFILE.tmp diff --git a/jhalfs b/jhalfs index f61b341..8ebade0 100755 --- a/jhalfs +++ b/jhalfs @@ -179,7 +179,7 @@ case $BRANCH_ID in ;; clfs* ) LFSVRS=${BRANCH_ID} - TREE=tags/clfs-${BRANCH_ID} + TREE=clfs-${BRANCH_ID} ;; * ) esac