diff options
author | Loïc Minier <lool@dooz.org> | 2007-03-31 15:20:26 +0200 |
---|---|---|
committer | Loïc Minier <lool@dooz.org> | 2007-03-31 15:20:26 +0200 |
commit | 6de7a42e5278688ae51cddd6aa0812f43b361787 (patch) | |
tree | 67005a6a323391350b98dd622124dcd3d9543460 /pbuilder-satisfydepends-experimental | |
parent | c5b67b75809d6f37030f8c3abd008b5005d95b47 (diff) | |
download | pbuilder-6de7a42e5278688ae51cddd6aa0812f43b361787.tar pbuilder-6de7a42e5278688ae51cddd6aa0812f43b361787.tar.gz |
* Move functions used in pbuilder-satisfydepends* into
pbuilder-satisfydepends-funcs.
Diffstat (limited to 'pbuilder-satisfydepends-experimental')
-rwxr-xr-x | pbuilder-satisfydepends-experimental | 114 |
1 files changed, 1 insertions, 113 deletions
diff --git a/pbuilder-satisfydepends-experimental b/pbuilder-satisfydepends-experimental index 7f5f73d..4fb80b3 100755 --- a/pbuilder-satisfydepends-experimental +++ b/pbuilder-satisfydepends-experimental @@ -21,119 +21,7 @@ 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" )" - - COMPARESTRING="$(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ ]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\1/')" - DEPSVERSION="$(echo "$INSTALLPKG" | tr "/" " " | sed 's/^.*([ ]*\(<<\|<=\|>=\|=\|<\|>>\|>\)[ ]*\(.*\)).*$/\2/')" - # if strictly versionned, we skip to outputting that version - if [ "=" = "$COMPARESTRING" ]; then - PACKAGE_WITHVERSION="$PACKAGE=$DEPSVERSION" - else - # try the candidate version, then all available versions (asc) - for VERSION in $CANDIDATE_VERSION $PACKAGEVERSIONS; do - if dpkg --compare-versions "$VERSION" "$COMPARESTRING" "$DEPSVERSION"; then - if [ $VERSION != $CANDIDATE_VERSION ]; then - PACKAGE_WITHVERSION="$PACKAGE=$VERSION" - fi - break; - fi - done - fi - fi - - echo "$PACKAGE_WITHVERSION" -} +. /usr/lib/pbuilder/pbuilder-satisfydepends-funcs function checkbuilddep_internal () { # Use this function to fulfill the dependency (almost) |