Bug#545794: a proposed patch
Junichi Uekawa
dancer at netfort.gr.jp
Wed Sep 30 11:45:56 UTC 2009
Hi,
I've looked through this patch. I have a few questions for you.
> diff -urN pbuilder-0.189/pbuilder-buildpackage pbuilder-0.189+jackyf1/pbuilder-buildpackage
> --- pbuilder-0.189/pbuilder-buildpackage 2009-05-31 04:41:04.000000000 +0300
> +++ pbuilder-0.189+jackyf1/pbuilder-buildpackage 2009-09-27 22:02:57.288519614 +0300
> @@ -21,11 +21,13 @@
> export LC_ALL=C
> set -e
>
> +PACKAGENAME=$1
> +shift
> +
> . /usr/lib/pbuilder/pbuilder-checkparams
> . /usr/lib/pbuilder/pbuilder-runhooks
> . /usr/lib/pbuilder/pbuilder-buildpackage-funcs
>
> -PACKAGENAME="$1"
> if [ ! -f "$PACKAGENAME" ]; then
> log "E: Command line parameter [$PACKAGENAME] is not a valid .dsc file name"
> exit 1;
Why ?
> diff -urN pbuilder-0.189/pbuilder-buildpackage-funcs pbuilder-0.189+jackyf1/pbuilder-buildpackage-funcs
> --- pbuilder-0.189/pbuilder-buildpackage-funcs 2009-02-26 07:33:11.000000000 +0200
> +++ pbuilder-0.189+jackyf1/pbuilder-buildpackage-funcs 2009-09-27 22:37:20.494949826 +0300
> @@ -37,6 +37,11 @@
> yes) BUILDOPT="--binary-arch";;
> *) ;;
> esac
> +
> + if [ -n "$USE_CUPT" ]; then
> + PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-cupt
> + fi
> +
> if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --chroot "${BUILDPLACE}" --internal-chrootexec "${CHROOTEXEC}" "${BUILDOPT}" ; then
> :
> else
> @@ -50,7 +55,12 @@
> fi
> # install extra packages to the chroot
> if [ -n "$EXTRAPACKAGES" ]; then
> - $CHROOTEXEC usr/bin/apt-get -y --force-yes install ${EXTRAPACKAGES}
> + if [ -n "$USE_CUPT" ]; then
> + PACKAGE_MANAGER_COMMAND="echo 'y' | /usr/bin/cupt --no-auto-remove"
I think you should fix cupt to accept -y.
> + else
> + PACKAGE_MANAGER_COMMAND="/usr/bin/apt-get -y --force-yes"
> + fi
> + $CHROOTEXEC sh -c "$PACKAGE_MANAGER_COMMAND install ${EXTRAPACKAGES}"
> fi
> }
I'd rather have cupt wrapper accepting same command-line as apt-get than adding if's here...
> diff -urN pbuilder-0.189/pbuilder-updatebuildenv pbuilder-0.189+jackyf1/pbuilder-updatebuildenv
> --- pbuilder-0.189/pbuilder-updatebuildenv 2009-06-19 17:24:13.000000000 +0300
> +++ pbuilder-0.189+jackyf1/pbuilder-updatebuildenv 2009-09-27 22:00:41.283468835 +0300
> @@ -34,28 +34,46 @@
> extractbuildplace
> $TRAP umountproc_cleanbuildplace_trap exit sighup
>
> +recover_aptcache
> +
> +if [ -n "$USE_CUPT" ]; then
> + if ! $CHROOTEXEC /usr/bin/dpkg -l | grep "^ii" | grep cupt; then
> + log "I: installing cupt package manager";
> + $CHROOTEXEC apt-get update
> + $CHROOTEXEC apt-get -y install cupt
> + fi
> + PACKAGE_MANAGER=/usr/bin/cupt
> + PACKAGE_MANAGER_COMMAND="echo 'y' | /usr/bin/cupt -o apt::get::allowunauthenticated=1"
> +else
> + PACKAGE_MANAGER=/usr/bin/apt-get
> + PACKAGE_MANAGER_COMMAND="/usr/bin/apt-get -y --force-yes"
> +fi
> +
> loadhooks
> log "I: Refreshing the base.tgz "
> log "I: upgrading packages"
> -$CHROOTEXEC /usr/bin/apt-get update
> +$CHROOTEXEC $PACKAGE_MANAGER update
> if [ -n "$REMOVEPACKAGES" ]; then
> $CHROOTEXEC /usr/bin/dpkg --purge $REMOVEPACKAGES
> fi
> -recover_aptcache
>
> $TRAP saveaptcache_umountproc_cleanbuildplace_trap exit sighup
> -$CHROOTEXEC /usr/bin/apt-get -y --force-yes "${FORCE_CONFNEW[@]}" dist-upgrade
> +$CHROOTEXEC sh -c "$PACKAGE_MANAGER_COMMAND -o DPkg::Options::=--force-confnew dist-upgrade"
I don't generally like this change to 'sh -c' because it will need another layer
of having to care about quoting.
I guess you should fix cupt.
> # autoremove: Ignore error in case of etch because apt in etch doesn't
> # support autoremove. TODO: Do not ignore error when etch is no longer
> # supported.
> -$CHROOTEXEC /usr/bin/apt-get -y --force-yes autoremove || true
> -$CHROOTEXEC /usr/bin/apt-get -y --force-yes install build-essential dpkg-dev apt aptitude $EXTRAPACKAGES
> +if [ -z "$USE_CUPT" ]; then
> + $CHROOTEXEC /usr/bin/apt-get -y --force-yes autoremove || true
> +fi
> +
> +FULL_COMMAND="$PACKAGE_MANAGER_COMMAND install build-essential dpkg-dev apt aptitude $EXTRAPACKAGES"
> +$CHROOTEXEC sh -c "$FULL_COMMAND"
> save_aptcache
>
> # optionally auto-clean apt-cache
> if [ "${AUTOCLEANAPTCACHE}" = "yes" -a -n "$APTCACHE" ]; then
> log "I: Cleaning the cached apt archive"
> - $CHROOTEXEC /usr/bin/apt-get autoclean || true
> + $CHROOTEXEC $PACKAGE_MANAGER autoclean || true
> find "$APTCACHE/" -maxdepth 1 -name \*.deb | \
> while read A; do
> if [ ! -f "$BUILDPLACE/var/cache/apt/archives/"$(basename "$A") -a \
> @@ -71,7 +89,7 @@
> unloadhooks
>
> umountproc
> -$CHROOTEXEC /usr/bin/apt-get clean || true
> +$CHROOTEXEC $PACKAGE_MANAGER clean || true
>
> $TRAP cleanbuildplace_trap exit sighup
> if [ ! "${INTERNAL_BUILD_UML}" = "yes" ]; then
More information about the Pbuilder-maint
mailing list