On Fri, Feb 02, 2024 at 05:27:02PM +0000, Scott Kitterman wrote:
> On February 2, 2024 4:43:52 PM UTC, Steve Langasek <vor...@debian.org> wrote:
> >Hello,

> >debian-devel-announce wouldn't let me attach the file, but for those on
> >debian-devel at least, you can find the dd-list of to-be-NMUed source
> >packages attached.

> Thanks,

> How are you handling the case where there's already a version of the
> package in experimental (this applies to clamav where we are tracking the
> latest, non-LTS version in experimental)?

If there is no new version in experimental, or there is a new version BUT
the patch against unstable applies cleanly to the version in experimental
(no fuzz), we upload to experimental.

Otherwise, patches are sent to the BTS but we skip uploading to experimental
and will NMU directly to unstable at the next stage (handling binary NEW
there).


Abridged citation from the code used, which probably explains as clearly as
anything:

        apt-get source --only-source "$src"/unstable
        cd "$src"-*
        oldsrcver=$(dpkg-parsechangelog -S Version)
        "$toolsdir"/time-t-me
        dch -n 'Rename libraries for 64-bit time_t transition.'
        dch -r -D experimental ''
        sudo env APT_CONFIG=$APT_CONFIG mk-build-deps -i -r
        dpkg-buildpackage -S -uc -us
        srcver=$(dpkg-parsechangelog -S Version)
        # make sure the package from unstable builds with the patch
        # before we send it to the BTS
        DEB_BUILD_OPTIONS="$DEB_BUILD_OPTIONS nocheck" \
                dpkg-buildpackage -uc -us
        cd ..
        debdiff "$src"_${oldsrcver#*:}.dsc "$src"_${srcver#*:}.dsc \
                > nmu_"$src".debdiff || true

        # maybe there's a new version, or maybe we fall back to
        # unstable
        apt-get source --only-source "$src"/experimental \
        || apt-get source --only-source "$src"/unstable
        cd "$src"-*

        # we filter out debian/changelog and regenerate it with
        # matching content, because if there is a new version then
        # that part of the diff will fail to apply; but if everything
        # else applies we should just upload to experimental anyway
        # with an appropriate bumped version.
        if ! filterdiff -x '*/debian/changelog' ../nmu_"$src".debdiff \
                | patch -p1 -f -F0
        then
                cd ..
                echo "$src: failed" >> upload-nmus.log
                rm -f nmu_"$src".debdiff
                rm -rf "$src"[_-]*
                continue
        fi

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slanga...@ubuntu.com                                     vor...@debian.org

Attachment: signature.asc
Description: PGP signature

Reply via email to