[Piuparts-devel] Bug#766543: fails upgrading real to virtual packages (missing --auto-deconfigure)

Andreas Beckmann anbe at debian.org
Fri Nov 21 15:44:36 UTC 2014


On 2014-11-21 16:03, Holger Levsen wrote:
> On Freitag, 21. November 2014, Andreas Beckmann wrote:
>> Please use the --testdebs-repo approach for complex¹ upgrade scenarios.
>> The 'pass multiple .deb files' and 'pass .changes' approaches are not
>> able to do realistic updates (or even installation). So let's not add
>> another hack to a broken feature (using dpkg to manually install packages)
>>
>> ¹ involving more than one package
> 
> shouldn't we then a.) either remove the feature or b.) more clearly spell out 
> the problems?

b), and offer an easy way to do this: hand one (or more) .changes
file(s) or a local repository to a wrapper script and have that torture
all the packages found in there with piuparts. Maybe give a hint if you
are interested in testing upgrades from something else than stable,
testing and unstable to your packages.

once that works sufficiently well, we can do a), too.

Andreas

PS: I sometimes use something based on this script, but it is in no way
automatic

MIRROR=http://ftp.de.debian.org/debian
TARBALLDIR=/srv/piuparts/slave/basetgz

LOCAL=/tmp/000
#URL=http://
SUBDIR=.
logprefix=xx000

#FROM=lenny
#FROM=squeeze
FROM=wheezy

#VIA=squeeze
#VIA=squeeze-backports
#VIA=wheezy
#VIA=wheezy-backports
#VIA=jessie

#TO=squeeze
#TO=wheezy
#TO=jessie
TO=sid

#NO_UPGRADE_TEST=--no-upgrade-test
#WARN_ON_LEFTOVERS_AFTER_PURGE=--warn-on-leftovers-after-purge
#INSTALL_RECOMMENDS=--install-recommends

ARCH=amd64
#ARCH=i386

DISTRO=${FROM:-$TO}

if [ -n "$LOCAL" ]; then
        URL=file://$LOCAL
        GET_PACKAGES="cat $LOCAL/Packages"
else
        GET_PACKAGES="wget $URL/$SUBDIR/Packages -O -"
fi

DEBS=$($GET_PACKAGES | perl -ne '$p = $1 if /^Package: (.*)/; print
"$p=$1\n" if /^Version: (.*)/;')

for p in $DEBS
do
        v=${p#*=}
        p=${p%=*}
        l=${logprefix}${FROM:+-$FROM}${VIA:+-$VIA}${TO:+-$TO}_$p
        test ! -f $l.log || continue
        rm -f $l.log $l.faillog
        sudo nice \
                env
PYTHONPATH=/org/piuparts.debian.org/lib/python2.7/dist-packages \
                ~/bin/piuparts \
                --skip-logrotatefiles-test \
                --scriptsdir /etc/piuparts/scripts \
                --warn-on-others \
                --allow-database \
                --proxy http://localhost:3128 \
                ${MIRROR:+--mirror $MIRROR} \
                --tmpdir /tmp/piupartss \
                -b ${TARBALLDIR:-.}/${DISTRO}_${ARCH}.tar.gz \
                ${FROM:+-d $FROM} \
                ${VIA:+-d $VIA} \
                ${TO:+-d $TO} \
                --log-file $l.log \
                ${LOCAL:+--bindmount $LOCAL} \
                --testdebs-repo "deb $URL $SUBDIR/" \
                --do-not-verify-signatures \
                --distupgrade-to-testdebs \
                --dpkg-noforce-unsafe-io \
                $NO_UPGRADE_TEST \
                $WARN_ON_LEFTOVERS_AFTER_PURGE \
                $INSTALL_RECOMMENDS \
                --apt $p=$v
        test $? = 0 || mv $l.log $l.faillog
done



More information about the Piuparts-devel mailing list