source: contrib/jhalfs-paco.patch@ e53b577

1.0 2.3 2.3.x 2.4 ablfs ablfs-more legacy new_features trunk
Last change on this file since e53b577 was afa32da, checked in by Manuel Canales Esparcia <manuel@…>, 19 years ago

Updated paco patch.

  • Property mode set to 100644
File size: 18.7 KB
  • LFS/master.sh

     
    179179      *stripping*) [[ "${STRIP}" = "0" ]] && continue ;;
    180180    esac
    181181
     182    # Install paco as the first package in ch6, before installing
     183    # linux-libc-headers, except in iterartive builds
     184    if [[ -z "$N" ]]; then
     185      case $this_script in
     186        *linux-libc-headers)
     187          TMP_SCRIPT="$this_script"
     188          this_script=`echo $this_script | sed -e 's/linux-libc-headers/a-paco/'`
     189          wrt_paco_inst "$this_script"
     190          this_script="$TMP_SCRIPT" ;;
     191      esac
     192    fi
     193
    182194    # Grab the name of the target
    183195    name=`echo ${this_script} | sed -e 's@[0-9]\{3\}-@@'`
    184196
     
    221233    # and not to use chroot.
    222234    case "${this_script}" in
    223235      *kernfs)  wrt_run_as_root    "${this_script}" "$file" ;;
    224       *)        wrt_run_as_chroot1 "${this_script}" "$file" ;;
     236      *)        wrt_paco_prep
     237                wrt_run_as_chroot1 "${this_script}" "$file"
     238                wrt_paco_log "$name" "$vrs" ;;
    225239    esac
    226240
    227241    # Remove the build directory(ies) except if the package build fails.
     
    241255    PREV=${this_script}${N}
    242256    # Set system_build envar for iteration targets
    243257    system_build=$chapter6
     258
     259    # Reinstalling paco after readsjusting the toolchain.
     260    case "${this_script}" in
     261      *readjusting)
     262        TMP_SCRIPT="$this_script"
     263        this_script=`echo ${this_script} | sed -e 's/readjusting/x-paco/'`
     264        wrt_paco_inst "$this_script"
     265        this_script="$TMP_SCRIPT" ;;
     266    esac
     267
    244268  done # end for file in chapter06/*
    245269}
    246270
     
    302326                wrt_run_as_chroot2 "$this_script" "$file"
    303327              fi
    304328        ;;
     329      *kernel)       wrt_paco_prep
     330                     wrt_run_as_chroot2 "$this_script" "$file"
     331                     wrt_paco_log "linux-kernel" "$vrs"
     332        ;;
     333      *bootscripts)  wrt_paco_prep
     334                     wrt_run_as_chroot2 "$this_script" "$file"
     335                     wrt_paco_log "lfs-bootscripts" "$vrs"
     336        ;;
    305337      *)        wrt_run_as_chroot2 "$this_script" "$file"
    306338        ;;
    307339    esac
  • LFS/lfs.xsl

     
    3232  <!-- Locale settings -->
    3333  <xsl:param name="lang" select="en_CA"/>
    3434
     35  <!-- Use paco? -->
     36  <xsl:param name="use_paco" select="1"/>
     37
    3538  <xsl:template match="/">
    3639    <xsl:apply-templates select="//sect1"/>
    3740  </xsl:template>
     
    190193        <xsl:apply-templates/>
    191194        <xsl:text> || true&#xA;</xsl:text>
    192195      </xsl:when>
     196      <!-- paco begin -->
     197      <!-- General rule -->
     198      <xsl:when test="$use_paco != '0' and
     199                ancestor::chapter[@id != 'chapter-temporary-tools'] and
     200                contains(string(),'make') and
     201                contains(string(),'install')">
     202        <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
     203        <xsl:apply-templates/>
     204        <xsl:text>&#xA;</xsl:text>
     205      </xsl:when>
     206      <!-- Linux-libc-headers -->
     207      <xsl:when test="$use_paco != '0' and
     208                ancestor::sect1[@id='ch-system-linux-libc-headers'] and
     209                contains(string(),'install ')">
     210        <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
     211        <xsl:apply-templates/>
     212        <xsl:text>&#xA;</xsl:text>
     213      </xsl:when>
     214      <!-- Unset LD_PRELOAD before second make in Zlib -->
     215      <xsl:when test="$use_paco != '0' and
     216                ancestor::sect1[@id='ch-system-zlib'] and
     217                contains(string(),'make clean')">
     218        <xsl:text>unset LD_PRELOAD&#xA;</xsl:text>
     219        <xsl:apply-templates/>
     220        <xsl:text>&#xA;</xsl:text>
     221      </xsl:when>
     222      <!-- paco end -->
    193223      <!-- The rest of commands -->
    194224      <xsl:otherwise>
    195225        <xsl:apply-templates/>
  • BLFS/master.sh

     
    7979EOF
    8080) >> $MKFILE
    8181
     82    if [[ $USE_PACO != 0 ]]; then
     83(
     84    cat << EOF
     85        @echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n" >logs/$this_script && \\
     86        source $JHALFSDIR/pacovars && \\
     87        rm -f $PACO_TMPFILE && \\
     88        $JHALFSDIR/${PROGNAME}-commands/$file >>logs/$this_script 2>&1 && \\
     89        echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n" >>logs/$this_script
     90EOF
     91) >> $MKFILE
     92    wrt_paco_log_blfs
     93
     94    else
    8295    # Insert date and disk usage at the top of the log file, the script run
    8396    # and date and disk usage again at the bottom of the log file.
    8497(
     
    88101        echo -e "\n\`date\`\n\nKB: \`du -sk --exclude=logs/* /\`\n" >>logs/$this_script
    89102EOF
    90103) >> $MKFILE
     104    fi
    91105
    92106    # Include a touch of the target name so make can check
    93107    # if it's already been made.
  • BLFS/blfs.xsl

     
    159159        <xsl:when test="@role = 'nodump'"/>
    160160        <xsl:otherwise>
    161161          <xsl:if test="@role = 'root'">
    162             <xsl:text>sudo </xsl:text>
     162            <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
    163163          </xsl:if>
    164164          <xsl:apply-templates select="userinput" mode="screen"/>
    165165        </xsl:otherwise>
  • common/paco-build-hlfs.sh

     
     1#!/bin/sh
     2set -e
     3
     4cd $PKGDIR
     5./configure --with-pic \
     6        --disable-static \
     7        --disable-gpaco \
     8        --sysconfdir=/etc &&
     9make &&
     10make install &&
     11make logme
  • common/config

     
    8080#--- Run farce testing 0(no)/1(yes)
    8181RUN_FARCE=0
    8282
     83#==== PACO VARIABLES ====
     84#--- Use paco? 0(no)/1(yes)
     85USE_PACO=1
     86PACO_VERSION=1.10.7
     87
     88#--- Name of the Paco source package
     89PACO_FILE=paco-$PACO_VERSION.tar.*
     90
    8391#==== INTERNAL VARIABLES ====
    8492# Don't edit it unless you know what you are doing
    8593
     
    92100
    93101#--- farce report log directory
    94102FARCELOGDIR=$LOGDIR/farce
     103
     104#--- Variables needed by paco
     105PACO_INCLUDE=/
     106PACO_EXCLUDE=/sys:/dev:/proc:/tmp:/usr/src:/usr/share/info/dir:/jhalfs
     107PACO_TMPFILE=/tmp/paco.tmp
     108LD_PRELOAD=/usr/lib/libpaco-log.so
  • common/func_validate_configs.sh

     
    8484inline_doc
    8585
    8686  # First internal variables, then the ones that change the book's flavour, and lastly system configuration variables
    87   local -r blfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE GETPKG         DEPEND                TEST"
    88   local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE GETPKG RUNMAKE MODEL GRSECURITY_HOST TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB             CONFIG KEYMAP         PAGE TIMEZONE LANG LC_ALL"
    89   local -r clfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE GETPKG RUNMAKE METHOD  ARCH  TARGET  TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG"
    90   local -r  lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE GETPKG RUNMAKE                       TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB             CONFIG        VIMLANG PAGE TIMEZONE LANG"
     87  local -r blfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO GETPKG         DEPEND                TEST"
     88  local -r hlfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO GETPKG RUNMAKE MODEL GRSECURITY_HOST TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB             CONFIG KEYMAP         PAGE TIMEZONE LANG LC_ALL"
     89  local -r clfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO GETPKG RUNMAKE METHOD  ARCH  TARGET  TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB BOOT_CONFIG CONFIG KEYMAP VIMLANG PAGE TIMEZONE LANG"
     90  local -r  lfs_PARAM_LIST="BOOK BUILDDIR SRC_ARCHIVE USE_PACO GETPKG RUNMAKE                       TEST REPORT COMPARE RUN_ICA RUN_FARCE ITERATIONS STRIP FSTAB             CONFIG        VIMLANG PAGE TIMEZONE LANG"
    9191
    9292  local -r ERROR_MSG_pt1='The variable \"${L_arrow}${config_param}${R_arrow}\" value ${L_arrow}${BOLD}${!config_param}${R_arrow} is invalid,'
    9393  local -r ERROR_MSG_pt2=' check the config file ${BOLD}${GREEN}\<$(echo $PROGNAME | tr [a-z] [A-Z])/config\> or \<common/config\>${OFF}'
     
    179179      # Validate general parameters..
    180180      GETPKG)     validate_against_str "x0x x1x" ;;
    181181      RUNMAKE)    validate_against_str "x0x x1x" ;;
     182      USE_PACO)   validate_against_str "x0x x1x" ;;
    182183      REPORT)     validate_against_str "x0x x1x"
    183184                  if [[ "${!config_param}" = "1" ]]; then
    184185                    if [[ `type -p bc` ]]; then
  • common/paco-functions

     
     1#!/bin/bash
     2
     3
     4#----------------------------#
     5wrt_paco_inst() {            #
     6#----------------------------#
     7
     8# Not using Paco with uClibc, even if requested
     9if [ $PROGNAME = "hlfs" ]; then
     10  if [ $MODEL = "uclibc" ]; then
     11    USE_PACO=0
     12  fi
     13fi
     14
     15if [ $USE_PACO != 0 ]; then
     16  paco_script="$1"
     17  paco_file="chapter06/$paco_script"
     18  chapter6="$chapter6 $paco_script"
     19
     20  # Copy the paco build script to the correct directory and make it executable
     21  cp $JHALFSDIR/paco-build-$PROGNAME.sh $JHALFSDIR/${PROGNAME}-commands/$paco_file &&
     22  chmod +x $JHALFSDIR/${PROGNAME}-commands/$paco_file
     23
     24  # Write target, dependency and unpack
     25  wrt_target "$paco_script" "$PREV"
     26  wrt_unpack2 "$PACO_FILE"
     27
     28  # Run the script
     29  wrt_run_as_chroot1 "${paco_script}" "${paco_file}"
     30
     31  # Clean up
     32  wrt_remove_build_dirs "paco"
     33  echo -e '\t@touch $@' >> $MKFILE.tmp
     34
     35  # Override the PREV variable
     36  PREV="$paco_script"
     37fi
     38}
     39
     40
     41#----------------------------------#
     42wrt_paco_prep() {                  # Export Paco variables
     43#----------------------------------# and remove tmpfile
     44
     45# Not using Paco with uClibc, even if requested
     46if [ $PROGNAME = "hlfs" ]; then
     47  if [ $MODEL = "uclibc" ]; then
     48    USE_PACO=0
     49  fi
     50fi
     51
     52if [ $USE_PACO != 0 ] && [ "$vrs" != "" ]; then
     53(
     54cat  << EOF
     55        @echo "export PACO_INCLUDE=$PACO_INCLUDE" >> envars && \\
     56        echo "export PACO_EXCLUDE=\$(SRC):$JHALFSDIR:$PACO_EXCLUDE" >> envars && \\
     57        echo "export PACO_TMPFILE=$PACO_TMPFILE" >> envars && \\
     58        rm -f \$(MOUNT_PT)$PACO_TMPFILE
     59EOF
     60) >> $MKFILE.tmp
     61fi
     62}
     63
     64
     65#----------------------------------#
     66wrt_paco_log() {                   # If the tmpfile exist, then log the current package
     67#----------------------------------# and remove tempfile
     68local PACKAGE
     69
     70# Allow packages to be logged without version
     71if [[ $2 != "" ]] ; then
     72  PACKAGE="$1-$2";
     73else
     74  PACKAGE="$1"
     75fi
     76
     77# Not using Paco with uClibc, even if requested
     78if [ $PROGNAME = "hlfs" ]; then
     79  if [ $MODEL = "uclibc" ]; then
     80    USE_PACO=0
     81  fi
     82fi
     83
     84if [ $USE_PACO != 0 ] && [ "$vrs" != "" ]; then
     85(
     86cat << EOF
     87        @if [ -e \$(MOUNT_PT)$PACO_TMPFILE ]; then \\
     88                \$(CHROOT1) 'paco -lp+ $PACKAGE < $PACO_TMPFILE' && \\
     89                rm -f \$(MOUNT_PT)$PACO_TMPFILE; \\
     90        fi;
     91EOF
     92) >> $MKFILE.tmp
     93fi
     94}
     95
     96
     97#----------------------------------#
     98wrt_paco_log_blfs() {              # If the tmpfile exist, then log the current package
     99#----------------------------------# and remove tempfile
     100if [ $USE_PACO != 0 ] ; then
     101(
     102cat << EOF
     103        @PACKAGE=\`head -n1 /tmp/unpacked | sed 's@^./@@;s@/.*@@'\` && \\
     104        if [ -e $PACO_TMPFILE ]; then \\
     105                paco -lp \$\$PACKAGE < $PACO_TMPFILE && \\
     106                rm -f $PACO_TMPFILE; \\
     107        fi;
     108EOF
     109) >> $MKFILE
     110fi
     111}
     112
  • common/paco-build-lfs.sh

     
     1#!/bin/sh
     2set -e
     3
     4cd $PKGDIR
     5./configure --disable-gpaco \
     6        --sysconfdir=/etc &&
     7make &&
     8make install &&
     9make logme
  • common/common-functions

     
    6060        in the configuration file has the proper packages and patches for the
    6161        book version being processed.
    6262
     63${BOLD}  --no-paco${OFF}
     64        dissables paco logging feature.
     65
    6366${BOLD}  -T, --testsuites N ${OFF}
    6467        Run test suites  [0-3]
    6568          0 = none
     
    567570                 --stringparam lc_all $LC_ALL \
    568571                 --stringparam keymap $KEYMAP \
    569572                 --stringparam grsecurity_host $GRSECURITY_HOST \
     573                 --stringparam use_paco $USE_PACO \
    570574                 -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1
    571575      ;;
    572576    lfs)
     
    578582                 --stringparam timezone $TIMEZONE \
    579583                 --stringparam page $PAGE \
    580584                 --stringparam lang $LANG \
     585                 --stringparam use_paco $USE_PACO \
    581586                 -o ./${PROGNAME}-commands/ $XSL $BOOK/index.xml >>$LOGDIR/$LOG 2>&1
    582587      ;;
    583588    blfs)
  • HLFS/hlfs.xsl

     
    3939  <xsl:param name="lang" select="en_CA"/>
    4040  <xsl:param name="lc_all" select="en_CA"/>
    4141
     42  <!-- Use paco? -->
     43  <xsl:param name="use_paco" select="1"/>
     44
    4245  <xsl:template match="/">
    4346    <xsl:apply-templates select="//sect1"/>
    4447  </xsl:template>
     
    191194      <!-- Fixing bootscripts installation -->
    192195      <xsl:when test="ancestor::sect1[@id='bootable-bootscripts'] and
    193196                string() = 'make install'">
     197        <!-- inserting LD_PRELOAD before installing bootscripts -->
     198        <xsl:if test="$use_paco != '0' and $model != 'uclibc'">
     199          <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
     200        </xsl:if>
    194201        <xsl:text>make install&#xA;</xsl:text>
    195202        <xsl:text>cd ../blfs-bootscripts-&blfs-bootscripts-version;&#xA;</xsl:text>
    196203      </xsl:when>
     
    248255        <xsl:apply-templates/>
    249256        <xsl:text> || true&#xA;</xsl:text>
    250257      </xsl:when>
     258      <!-- paco begin -->
     259      <!-- General rule -->
     260      <xsl:when test="$use_paco != '0' and $model != 'uclibc' and
     261                ancestor::chapter[@id != 'chapter-temporary-tools'] and
     262                contains(string(),'make') and
     263                contains(string(),'install')">
     264        <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
     265        <xsl:apply-templates/>
     266        <xsl:text>&#xA;</xsl:text>
     267      </xsl:when>
     268      <!-- Linux-libc-headers -->
     269      <xsl:when test="$use_paco != '0' and $model != 'uclibc' and
     270                ancestor::sect1[@id='ch-system-linux-libc-headers'] and
     271                contains(string(),'install ')">
     272        <xsl:text>export LD_PRELOAD=/usr/lib/libpaco-log.so&#xA;</xsl:text>
     273        <xsl:apply-templates/>
     274        <xsl:text>&#xA;</xsl:text>
     275      </xsl:when>
     276      <!-- paco end -->
    251277      <!-- The rest of commands -->
    252278      <xsl:otherwise>
    253279        <xsl:apply-templates/>
  • HLFS/master.sh

     
    253253      *-stripping* )  [[ "$STRIP" = "0" ]] && continue ;;
    254254    esac
    255255
     256    # Install paco as the first package in ch6, before installing
     257    # linux-libc-headers, except in iterartive builds
     258    if [[ -z "$N" ]]; then
     259      case $this_script in
     260        *linux-libc-headers)
     261          TMP_SCRIPT="$this_script"
     262          this_script=`echo $this_script | sed -e 's/linux-libc-headers/a-paco/'`
     263          wrt_paco_inst "$this_script"
     264          this_script="$TMP_SCRIPT" ;;
     265      esac
     266    fi
     267
    256268    # Grab the name of the target
    257269    name=`echo $this_script | sed -e 's@[0-9]\{3\}-@@'`
    258270
     
    322334        wrt_run_as_root "${this_script}" "${file}"
    323335        ;;
    324336      *)   # The rest of Chapter06
     337        wrt_paco_prep
    325338        wrt_run_as_chroot1 "${this_script}" "${file}"
     339        wrt_paco_log "$name" "$vrs"
    326340       ;;
    327341    esac
    328342    #
     
    355369    PREV=${this_script}${N}
    356370    # Set system_build envar for iteration targets
    357371    system_build=$chapter6
     372
     373    # Reinstall paco after the toolchain has been readjusted.
     374    case "${this_script}" in
     375      *readjusting)
     376        TMP_SCRIPT="$this_script"
     377        this_script=`echo $this_script | sed -e 's/readjusting/x-paco/'`
     378        wrt_paco_inst "$this_script"
     379        this_script="$TMP_SCRIPT" ;;
     380    esac
     381
    358382  done # end for file in chapter06/*
    359383
    360384}
     
    417441          wrt_run_as_chroot2 "${this_script}" "${file}"
    418442        fi
    419443        ;;
     444      *kernel)       wrt_paco_prep
     445                     wrt_run_as_chroot2 "$this_script" "$file"
     446                     version=`grep "^linux-version" $JHALFSDIR/packages | sed -e 's/.* //' -e 's/"//g'`
     447                     wrt_paco_log "linux-kernel" "$version"
     448        ;;
     449      *bootscripts)  wrt_paco_prep
     450                     wrt_run_as_chroot2 "$this_script" "$file"
     451                     wrt_paco_log "hlfs-bootscripts"
     452        ;;
    420453      *)  # All other scripts
    421454        wrt_run_as_chroot2 "${this_script}" "${file}"
    422455        ;;
  • master.sh

     
    7070source $MODULE
    7171[[ $? > 0 ]] && echo "$MODULE did not load.." && exit 2
    7272[[ $VERBOSITY > 0 ]] && echo "OK"
     73# Load paco-functions
     74[[ $VERBOSITY > 0 ]] && echo -n "Loading paco module..."
     75source $COMMON_DIR/paco-functions
     76[[ $? > 0 ]] && echo "$COMMON_DIR/paco-functions did not load.." && exit 2
     77[[ $VERBOSITY > 0 ]] && echo "OK"
    7378#
    7479[[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
    7580
     
    152157
    153158    --help | -h )  usage | more && exit  ;;
    154159
     160    --no-paco )            USE_PACO=0    ;;
     161
    155162    --testsuites | -T )
    156163      test $# = 1 && eval "$exit_missing_arg"
    157164      shift
     
    468475
    469476if [[ "$PWD" != "$JHALFSDIR" ]]; then
    470477  cp $COMMON_DIR/makefile-functions $JHALFSDIR/
     478  if [[ $USE_PACO != "0" ]] ; then
     479    if [[ $PROGNAME != "blfs" ]]; then
     480      cp $COMMON_DIR/paco-build-$PROGNAME.sh $JHALFSDIR/
     481    else
     482      echo -e "export PACO_INCLUDE=$PACO_INCLUDE" > $JHALFSDIR/pacovars
     483      echo -e "export PACO_EXCLUDE=~/sources:$JHALFSDIR:$PACO_EXCLUDE" >> $JHALFSDIR/pacovars
     484      echo -e "export PACO_TMPFILE=$PACO_TMPFILE" >> $JHALFSDIR/pacovars
     485    fi
     486  fi
    471487  if [[ "$COMPARE" != "0" ]] ; then
    472488    mkdir -p $JHALFSDIR/extras
    473489    cp extras/* $JHALFSDIR/extras
Note: See TracBrowser for help on using the repository browser.