Sorry, I mean to add: in the specific case of clamav, the source in
experimental has a new soname.  So the patch will definitely not apply; and
we will want to NMU clamav to unstable, with a rename of whatever runtime
library package is there at the time the NMUs happen; so the version of
clamav in experimental can ignore this transition and just use the new
soname once it finally lands (is superseded by the next LTS version?)

On Fri, Feb 02, 2024 at 09:46:10AM -0800, Steve Langasek wrote:
> 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

-- 
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