logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

pbuilder CVS update: pbuilder ChangeLog Makefile pbuilder-satisfydepends-ex: msg#00018

Subject: pbuilder CVS update: pbuilder ChangeLog Makefile pbuilder-satisfydepends-experimental pbuilderrc pbuilderrc.5
  User: lool    
  Date: 06/11/06 21:55:13

  Modified:    .        ChangeLog Makefile pbuilderrc pbuilderrc.5
  Added:       .        pbuilder-satisfydepends-experimental
  Log:
  * pbuilder-satisfydepends-experimental, Makefile: alternate
  implementation of pbuilder-satisfydepends which supports pulling
  build-deps with a version on the apt-get command-line; this is derived
  from pbuilder-satisfydepends with the following changes:
  - Add and use new package_versions() and candidate_version() helpers;
    the former returns all versions of a package available via APT, the
    later APT's candidate version.
  - For versionned build-deps, when building the "apt-get install"
    command, try APT's candidate version or all available versions
    available from APT in ascending order (the reverse order of
    apt-cache's output); checkbuilddep_versiondeps() isn't used for this
    part of the process anymore, but it is still used to honor
    build-conflicts.
  - Recover from APT errors caused by unsufficient dependencies
    ("libfoo-dev Depends: bar but baz is to be installed") and missing
    dependencies libfoo-dev Depends: bar but it is not going to be
    installed", or simply "libfoo-dev Depends: bar"); this permits
    simply listing build-deps when uploading to experimental; achieved
    by moving the version matching logic in the new
    versioneddep_to_aptcmd() helper.
  * pbuilderrc, pbuilderrc.5: document the availability of the alternate
  implementation.
  
  Revision  Changes    Path
  1.420     +23 -1     pbuilder/ChangeLog
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/ChangeLog?annotate=1.420&cvsroot=
  
  CVSWeb: View this file:             
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/ChangeLog?rev=1.420&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/ChangeLog.diff?r1=1.420&r2=1.419&cvsroot=
  
  -----------------------------------
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvsroot/pbuilder/pbuilder/ChangeLog,v
  retrieving revision 1.419
  retrieving revision 1.420
  diff -u -r1.419 -r1.420
  --- ChangeLog 6 Nov 2006 20:20:56 -0000       1.419
  +++ ChangeLog 6 Nov 2006 20:55:12 -0000       1.420
  @@ -14,6 +14,28 @@
        * pdebuild: pass --pbuildersatisfydepends to pdebuild-internal.
        * pbuilder-modules, pdebuild.1: document --pbuildersatisfydepends.
        * pbuilder-satisfydepends: drop an useless invocation of awk.
  +     * pbuilder-satisfydepends-experimental, Makefile: alternate
  +     implementation of pbuilder-satisfydepends which supports pulling
  +     build-deps with a version on the apt-get command-line; this is derived
  +     from pbuilder-satisfydepends with the following changes:
  +     - Add and use new package_versions() and candidate_version() helpers;
  +       the former returns all versions of a package available via APT, the
  +       later APT's candidate version.
  +     - For versionned build-deps, when building the "apt-get install"
  +       command, try APT's candidate version or all available versions
  +       available from APT in ascending order (the reverse order of
  +       apt-cache's output); checkbuilddep_versiondeps() isn't used for this
  +       part of the process anymore, but it is still used to honor
  +       build-conflicts.
  +     - Recover from APT errors caused by unsufficient dependencies
  +       ("libfoo-dev Depends: bar but baz is to be installed") and missing
  +       dependencies libfoo-dev Depends: bar but it is not going to be
  +       installed", or simply "libfoo-dev Depends: bar"); this permits
  +       simply listing build-deps when uploading to experimental; achieved
  +       by moving the version matching logic in the new
  +       versioneddep_to_aptcmd() helper.
  +     * pbuilderrc, pbuilderrc.5: document the availability of the alternate
  +     implementation.
   
   2006-11-03  Loic Minier <lool@xxxxxxxx>
   
  
  
  
  1.43      +2 -0      pbuilder/Makefile
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/Makefile?annotate=1.43&cvsroot=
  
  CVSWeb: View this file:             
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/Makefile?rev=1.43&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/Makefile.diff?r1=1.43&r2=1.42&cvsroot=
  
  -----------------------------------
  
  Index: Makefile
  ===================================================================
  RCS file: /cvsroot/pbuilder/pbuilder/Makefile,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- Makefile  29 Jan 2006 21:19:21 -0000      1.42
  +++ Makefile  6 Nov 2006 20:55:12 -0000       1.43
  @@ -15,6 +15,7 @@
        pbuilder-modules \
        pbuilder-runhooks \
        pbuilder-satisfydepends \
  +     pbuilder-satisfydepends-experimental \
        pbuilder-updatebuildenv \
        pbuilder-user-mode-linux \
        pbuilder \
  @@ -70,6 +71,7 @@
        $(INSTALL_EXECUTABLE) pdebuild-user-mode-linux $(DESTDIR)/usr/bin
        $(INSTALL_EXECUTABLE) debuild-pbuilder $(DESTDIR)/usr/bin
        $(INSTALL_EXECUTABLE) pbuilder-satisfydepends 
$(DESTDIR)/usr/lib/pbuilder/
  +     $(INSTALL_EXECUTABLE) pbuilder-satisfydepends-experimental 
$(DESTDIR)/usr/lib/pbuilder/
        $(INSTALL_EXECUTABLE) pdebuild-internal $(DESTDIR)/usr/lib/pbuilder/
        $(INSTALL_FILE) pbuilderrc $(DESTDIR)/etc
        $(INSTALL_FILE) pbuilderrc $(DESTDIR)/usr/share/pbuilder
  
  
  
  1.45      +4 -1      pbuilder/pbuilderrc
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc?annotate=1.45&cvsroot=
  
  CVSWeb: View this file:             
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc?rev=1.45&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc.diff?r1=1.45&r2=1.44&cvsroot=
  
  -----------------------------------
  
  Index: pbuilderrc
  ===================================================================
  RCS file: /cvsroot/pbuilder/pbuilder/pbuilderrc,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- pbuilderrc        6 Nov 2006 20:06:25 -0000       1.44
  +++ pbuilderrc        6 Nov 2006 20:55:12 -0000       1.45
  @@ -35,7 +35,10 @@
   PBUILDERROOTCMD="sudo"
   
   # command to satisfy build-dependencies; the default is an internal shell
  -# implementation which is relatively slow
  +# implementation which is relatively slow; there's an alternate experimental
  +# implementation, "pbuilder-satisfydepends-experimental", which might be 
useful
  +# to pull packages from experimental or from repositories with a low APT Pin
  +# Priority
   PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends"
   
   #default is to build everything. Passed on to dpkg-buildpackage
  
  
  
  1.59      +4 -1      pbuilder/pbuilderrc.5
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc.5?annotate=1.59&cvsroot=
  
  CVSWeb: View this file:             
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc.5?rev=1.59&content-type=text/x-cvsweb-markup&cvsroot=
  
  CVSWeb: Diff to previous version:   
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilderrc.5.diff?r1=1.59&r2=1.58&cvsroot=
  
  -----------------------------------
  
  Index: pbuilderrc.5
  ===================================================================
  RCS file: /cvsroot/pbuilder/pbuilder/pbuilderrc.5,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- pbuilderrc.5      6 Nov 2006 20:06:25 -0000       1.58
  +++ pbuilderrc.5      6 Nov 2006 20:55:12 -0000       1.59
  @@ -216,7 +216,10 @@
   .BI "PBUILDERSATISFYDEPENDSCMD=" "/usr/lib/pbuilder/pbuilder-satisfydepends"
   
   This option is used by various parts of pbuilder to satisfy (i.e. install) 
the
  -build-dependencies of a package.
  +build-dependencies of a package.  There is an alternate experimental
  +implementation, "pbuilder-satisfydepends-experimental", which might be useful
  +to pull packages from experimental or from repositories with a low APT Pin
  +Priority.
   
   .TP
   .BI "BUILDUSERID=" "1234"
  
  
  
  1.1                  pbuilder/pbuilder-satisfydepends-experimental
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilder-satisfydepends-experimental?annotate=1.1&cvsroot=
  
  CVSWeb: View this file:             
http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuilder/pbuilder-satisfydepends-experimental?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=
  
  -----------------------------------
  
  Index: pbuilder-satisfydepends-experimental
  ===================================================================
  #!/bin/bash
  #   pbuilder -- personal Debian package builder
  #   Copyright (C) 2001,2002,2003,2005-2006 Junichi Uekawa
  #
  #   This program is free software; you can redistribute it and/or modify
  #   it under the terms of the GNU General Public License as published by
  #   the Free Software Foundation; either version 2 of the License, or
  #   (at your option) any later version.
  #
  #   This program is distributed in the hope that it will be useful,
  #   but WITHOUT ANY WARRANTY; without even the implied warranty of
  #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  #   GNU General Public License for more details.
  #
  #   You should have received a copy of the GNU General Public License
  #   along with this program; if not, write to the Free Software
  #   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  
  #
  # module to satisfy dependency.
  
  set -e
  
  function package_versions() {
        local PACKAGE="$1"
        ( $CHROOTEXEC /usr/bin/apt-cache show "$PACKAGE" ) | sed -n 
's/^Version: \(.*\)$/\1/p'
  }
  
  function candidate_version() {
        local PACKAGE="$1"
        LC_ALL=C $CHROOTEXEC apt-cache policy "$PACKAGE" | sed -n 's/ 
*Candidate: *\(.*\)/\1/p'
  }
  
  function checkbuilddep_versiondeps () {
      local PACKAGE="$1"
      local COMPARESTRING="$2"
      local DEPSVERSION="$3"
      local PACKAGEVERSIONS=$( package_versions "$PACKAGE" | xargs)
      # no versioned provides.
      if [ "${FORCEVERSION}" = "yes" ]; then
        return 0;
      fi
      for PACKAGEVERSION in $PACKAGEVERSIONS ; do
        if dpkg --compare-versions "$PACKAGEVERSION" "$COMPARESTRING" 
"$DEPSVERSION"; then
        # satisfies depends
        return 0;
        fi
      done
      echo "      Tried versions: $PACKAGEVERSIONS"
      # cannot satisfy depends
      return 1;
  }
  
  function expand_arch () {
      local ARCH="$1"
      local EXPANDED_ARCH
      
      # just keep the original behavior.
      echo "$ARCH"
      return
  
      # the following may be used if dpkg change is set to stone.
      if echo "$ARCH" | grep "-" > /dev/null; then
          EXPANDED_ARCH=$ARCH
      else
          EXPANDED_ARCH="linux-$ARCH"
      fi
      local WC1=$(echo $EXPANDED_ARCH | sed 's/^[^-]*/any/')
      local WC2=$(echo $EXPANDED_ARCH | sed 's/[^-]*$/any/')
      echo "$ARCH\\|$EXPANDED_ARCH\\|$WC1\\|$WC2"
  }
  
  function checkbuilddep_archdeps () {
      # returns FALSE on INSTALL
      local INSTALLPKG="$1"
      local ARCH="$2"
      if echo "$INSTALLPKG" | sed 's/.*\(\[.*\]\)/\1/' | grep 
"[[/][!]\($(expand_arch $ARCH)\)[]/]" > /dev/null; then
        # if !$ARCH exists in there, ERROR.
        return 0;
      fi
      if ! echo "$INSTALLPKG" | sed 's/.*\(\[.*\]\)/\1/' | grep "[!]" > 
/dev/null; then
        if ! echo "$INSTALLPKG" | sed 's/.*\(\[.*\]\)/\1/' | grep 
"[[/]\($(expand_arch $ARCH)\)[]/]" > /dev/null; then
        # if $ARCH does not exist, ERROR.
            return 0;
        fi
      fi
      return 1;
  }
  
  function checkbuilddep_provides () {
      local PACKAGENAME="$1"
      # PROVIDED needs to be used outside of this function.
      PROVIDED=$($CHROOTEXEC /usr/bin/apt-cache showpkg $PACKAGENAME | awk 
'{p=0}/^Reverse Provides:/,/^$/{p=1}{if(p && ($0 !~ "Reverse 
Provides:")){PACKAGE=$1}} END{print PACKAGE}')
  }
  
  # returns either "package=version", to append to an apt-get install line, or
  # package
  function versioneddep_to_aptcmd () {
        local INSTALLPKG="$1"
  
        local PACKAGE
        local PACKAGE_WITHVERSION
        local PACKAGEVERSIONS
        local CANDIDATE_VERSION
        local COMPARESTRING
        local DEPSVERSION
  
        PACKAGE="$(echo "$INSTALLPKG" | sed -e 's/^[/]*//' -e 's/[[/(].*//')"
        PACKAGE_WITHVERSION="$PACKAGE"
  
        # if not versionned, we skip directly to outputting $PACKAGE
        if echo "$INSTALLPKG" | grep '[(]' > /dev/null; then
            # package versions returned by APT, in reversed order
            PACKAGEVERSIONS="$( package_versions "$PACKAGE" | tac | xargs )"
            CANDIDATE_VERSION="$( candidate_version "$PACKAGE" )"
  
            # try the candidate version, then all available versions (asc)
            for VERSION in $CANDIDATE_VERSION $PACKAGEVERSIONS; do
                COMPARESTRING=$(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ 
]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\1/')
                DEPSVERSION="$(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ 
]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\2/')"
                if dpkg --compare-versions "$VERSION" "$COMPARESTRING" 
"$DEPSVERSION"; then
                    if [ $VERSION != $CANDIDATE_VERSION ]; then
                        PACKAGE_WITHVERSION="$PACKAGE=$VERSION"
                    fi
                    break;
                fi
            done
        fi
  
        echo "$PACKAGE_WITHVERSION"
  }
  
  function checkbuilddep_internal () {
  # Use this function to fulfill the dependency (almost)
  
      local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
      local INSTALLPKG
      local INSTALLPKGLIST
      local INSTALLPKGMULTI
      local CURRENTREALPKGNAME
      local SATISFIED
      local PACKAGEVERSIONS
      local CANDIDATE_VERSION
      echo " -> Attempting to parse the build-deps $Id: 
pbuilder-satisfydepends-experimental,v 1.1 2006/11/06 20:55:12 lool Exp $"
      for INSTALLPKGMULTI in $(cat ${DEBIAN_CONTROL} | \
        awk '
  BEGIN{source=1} 
  /^$/      {source=0} 
  /^Source:/      {source=1} 
  /^[^ ]*:/ {p=0} 
  tolower($0) ~ /^'"${BD_REGEXP}"':/   {p=1} 
  {if(p && source) {print $0}}'  | \
        sed 's/^[^: ]*://' | \
        tr " " "/" | \
        awk 'BEGIN{RS=","} {print}'); do
        echo " -> Considering build-dep$(echo "$INSTALLPKGMULTI" | tr "/" " " )"
        SATISFIED="no"
        for INSTALLPKG in $(echo "$INSTALLPKGMULTI" | \
          awk 'BEGIN{RS="|"} {print}'); do
        CURRENTREALPKGNAME=$(echo "$INSTALLPKG" | sed -e 's/^[/]*//' -e 
's/[[/(].*//')
        if echo "$INSTALLPKG" | grep '\[' > /dev/null ; then
            if checkbuilddep_archdeps "$INSTALLPKG" "$ARCH"; then
                SATISFIED="yes"
                echo "   -> This package is not for this architecture"
                continue;
            fi
        fi
  
        CURRENT_APT_COMMAND="$(versioneddep_to_aptcmd "$INSTALLPKG")"
  
        while [ "$SATISFIED" = "no" ]; do
            echo "   -> Trying to add ${CURRENT_APT_COMMAND}"
            if APT_OUTPUT="$( exec 2>&1; LC_ALL=C $CHROOTEXEC /usr/bin/apt-get 
-s install ${INSTALLPKGLIST} ${CURRENT_APT_COMMAND} )"; then
                # success, we're done
                SATISFIED="yes"
                INSTALLPKGLIST="${INSTALLPKGLIST} ${CURRENT_APT_COMMAND}"
                break
            fi
            # try to parse APT's output to recognize lines such as:
            #   libfoo-dev: Depends: bar (>= xyz) but www is to be installed
            DEP_INSTALLPKG="$(echo "$APT_OUTPUT" | \
                sed -n \
                    -e "s/^ *.*: *Depends: *\(.*\) but.*is to be 
installed\$/\\1/p" \
                    -e "s/^ *.*: *Depends: *\(.*\) but it is not going to be 
installed\$/\\1/p" \
                    -e "s/^ *.*: *Depends: *\(.*\)\$/\\1/p" | \
                head -1 | \
                tr " " "/")"
            APT_ADD_COMMAND="$(versioneddep_to_aptcmd "$DEP_INSTALLPKG")"
            if echo "$CURRENT_APT_COMMAND" | grep -q "$APT_ADD_COMMAND"; then
                # loop detected, give up with real packages
                echo "   -> Loop detected, last APT error was: ======"
                echo "$APT_OUTPUT"
                echo "   -> ========================================="
                echo "   -> (not adding $APT_ADD_COMMAND to 
$CURRENT_APT_COMMAND)"
                break
            fi
            CURRENT_APT_COMMAND="$CURRENT_APT_COMMAND $APT_ADD_COMMAND"
        done
        if [ "$SATISFIED" = "yes" ]; then
            break;
        fi
  
        echo "       -> Cannot install ${CURRENT_APT_COMMAND}; apt errors 
follow:"
        if $CHROOTEXEC /usr/bin/apt-get -s install ${INSTALLPKGLIST} 
"${CURRENT_APT_COMMAND}"; then
            :
        fi
        # package could not be found. -- looking for alternative.
        PROVIDED=""
        checkbuilddep_provides "${CURRENTREALPKGNAME}"
        if [ -n "$PROVIDED" ]; then
            # something provides this package
            echo "     -> Considering $PROVIDED to satisfy the dependency "
            if $CHROOTEXEC /usr/bin/apt-get -s install ${INSTALLPKGLIST} 
${PROVIDED} >& /dev/null; then
                SATISFIED="yes";
                INSTALLPKGLIST="${INSTALLPKGLIST} ${PROVIDED}"
            else
                # show the error for diagnostic purposes
                echo "       -> Cannot install $PROVIDED; apt errors follow:"
                if $CHROOTEXEC /usr/bin/apt-get -s install ${INSTALLPKGLIST} 
${PROVIDED}; then
                    :
                fi
            fi
        fi
        if [ "$SATISFIED" = "yes" ]; then
            break;
        fi
        done;
        if [ "$SATISFIED" = "no" ]; then
          echo "E: Could not satisfy build-dependency." >&2
          if [ "$CONTINUE_FAIL" != "yes" ]; then
              exit 2
          fi
        fi
      done;
      
      # now actually install the packages
      echo " -> Installing ${INSTALLPKGLIST}"
      if ! $CHROOTEXEC apt-get -y --force-yes install ${INSTALLPKGLIST}; then
        echo " -> Trying to fix apt error"
        # Work around an apt bug which causes configure to fail.
        if $CHROOTEXEC dpkg --configure --pending && $CHROOTEXEC apt-get -y 
--force-yes install ${INSTALLPKGLIST}; then
            echo " -> Apt bug workaround succeeded"
        elif [ "$CONTINUE_FAIL" != "yes" ]; then
            echo "E: Unrecoverable error installing build-dependencies." >&2
            exit 1
        fi
      fi
  
      # start processing build-conflicts.
      for INSTALLPKG in $(cat "${DEBIAN_CONTROL}" | \
        awk 'BEGIN{source=1} 
  /^$/      {source=0} 
  /^Source:/      {source=1} 
  /^[^ ]*:/{p=0} 
  tolower($0) ~ /^'"${BC_REGEXP}"':/   {p=1} 
  {if(p && source) {print $0}}'  | \
        sed 's/^[^: ]*://' | \
        tr " " "/" | \
        awk 'BEGIN{RS=","} {print}'); do
        CURRENTREALPKGNAME=$(echo "$INSTALLPKG" | sed -e 's/^[/]*//' -e 
's/[[/(].*//')
        echo " -> Considering ${CURRENTREALPKGNAME}"
        
        if echo "$INSTALLPKG" | grep '\[' > /dev/null ; then
          # this package has arch-conflicts.
          if checkbuilddep_archdeps "$INSTALLPKG" "$ARCH"; then
              echo "I: Ignoring other-arch"
              continue;
          fi
        fi
        if echo "$INSTALLPKG" | grep '[(]' > /dev/null ; then
          # this package has version-conflicts
          if ! checkbuilddep_versiondeps ${CURRENTREALPKGNAME} \
                $(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ 
]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\1/') \
                $(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ 
]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\2/'); then
              echo "I: Satisfies version, not trying"
              continue;
          fi
        fi
  
        # if package exists, remove it.
        if $CHROOTEXEC /usr/bin/dpkg -s $(echo "$INSTALLPKG" | tr "/" " " | awk 
'{print $1}') 2>&1 | grep ^Package: > /dev/null; then
          if ! $CHROOTEXEC /usr/bin/apt-get -y remove ${CURRENTREALPKGNAME} ; 
then
              echo "E: Could not satisfy build-conflicts" >&2
              exit 1
          fi
        else
          echo "I: ${CURRENTREALPKGNAME} package is not installed, no need to 
remove"
        fi
      done
      echo " -> Finished parsing the build-deps"
  }
  
  
  function print_help () {
      # print out help message
      cat <<EOF
  pbuilder-satisfydepends -- satisfy dependencies
  Copyright 2002-2006  Junichi Uekawa <dancer@xxxxxxxxxx>
  
  --help:        give help
  --control:     specify control file (debian/control, *.dsc)
  --chroot:      operate inside chroot
  --binary-all:  include binary-all
  --binary-arch: include binary-arch only
  --echo:        echo mode, do nothing. (--force-version required for most 
operation)
  --force-version: skip version check.
  --continue-fail: continue even when failed.
  
  EOF
  }
  
  
  DEBIAN_CONTROL=debian/control
  CHROOTEXEC=""
  BD_REGEXP="build-(depends|depends-indep)"
  BC_REGEXP="build-(conflicts|conflicts-indep)"
  FORCEVERSION=""
  CONTINUE_FAIL="no"
  
  
  while [ -n "$1" ]; do
      case "$1" in
        --control|-c)
            DEBIAN_CONTROL="$2"
            shift; shift
            ;;
        --chroot)
            CHROOTEXEC="chroot $2 "
            shift; shift
            ;;
        --internal-chrootexec)
            CHROOTEXEC="$2"
            shift; shift 
            ;;
        --binary-all)
            BD_REGEXP='build-(depends|depends-indep)'
            BC_REGEXP='build-(conflicts|conflicts-indep)'
            shift
            ;;
        --binary-arch)
            BD_REGEXP='build-depends'
            BC_REGEXP='build-conflicts'
            shift
            ;;
        --echo)
            CHROOTEXEC="echo $CHROOTEXEC"
            shift
            ;;
        --continue-fail)
            CONTINUE_FAIL="yes"
            shift
            ;;
        --force-version)
            FORCEVERSION="yes"
            shift;
            ;;
        --help|-h|*)
            print_help
            exit 1
            ;;
      esac
  done
  
  
  checkbuilddep_internal


<Prev in Thread] Current Thread [Next in Thread>