+1 maintenance report

Steve Langasek steve.langasek at ubuntu.com
Tue Apr 5 05:35:36 UTC 2022


Thanks for your work on +1 maintenance!

One bit I want to call attention to:

On Mon, Apr 04, 2022 at 10:17:44PM -0700, Bryce Harrington wrote:
> ## NBS ##

> I uploaded no-change rebuilds of the 11 NBS packages to a PPA; 4 of
> these build successfully, so I uploaded the no-change rebuilds to jammy:

>  libosmocore - 1.6.0-3build1
>  osmo-pcu - 0.8.0-3build3
>  mbedtls - 2.28.0-1build1
>  ncbi-vdb - 2.11.2+dfsg-4build2

> libosmocore and mebdtls successfully transitioned.  The other two are
> still in proposed but I ran out of +1 maint time before I could
> investigate, so leaving for next person and hoping they're at least
> nudged forward.

ncbi-vdb and osmo-pcu were already present in -proposed and blocked by
autopkgtests; there was no need for a no-change rebuild here.

libosmocore and mbedtls also didn't need rebuilds, they were the source
packages whose binaries *are* NBS and it is the other reverse-dependencies
of these packages that need to be resolved.

I recommend using the attached script for no-change rebuilds, as it will
reliably calculate the set of packages that need uploading for a given old
NBS dependency and a new expected dependency; it just needs to be run in an
environment with a full set of sources for the dev series and the -proposed
pocket.  It will also tell you exactly *why* no-change uploads are not
needed for some packages (i.e.: package is already built in -proposed;
package present in -proposed but not built).

I unfortunately do not have a good place to publish it at the moment so that
it's more visible to developers.  Suggestions welcome.

-- 
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/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
#!/bin/sh

set -e

dry_run=false
excludes=""
changelog=""

while [ $# -gt 0 ]; do
	case $1 in
		--dry-run)
			dry_run=:
			;;
		--exclude)
			shift
			excludes="$1 $excludes"
			;;
		--changelog)
			shift
			changelog="$1"
			;;
		*)
			if [ -z "$olddep" ]; then
				olddep=$1
			elif [ -z "$newdep" ]; then
				newdep=$1
			else
				echo "Unknown argument: $1"
				exit 1
			fi
			;;
	esac
	shift
done

sudo apt-get install wget ubuntu-dev-tools grep-dctrl devscripts equivs dput \
	distro-info

release=$(distro-info -d)

if [ -z "$changelog" ]; then
	changelog="No-change rebuild against $newdep"
fi

echo "Transitioning $olddep -> $newdep"

oldre=$(echo "$olddep" | sed -e's/+/\\+/g')
newre=$(echo "$newdep" | sed -e's/+/\\+/g')

# don't include our own source package in the list of those needing rebuilds...
oursrc=$(grep-dctrl -n -sSource:Package -w -FPackage "$oldre" /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_"$release"_*Packages |head -n1)
for pkg in $(
	grep-dctrl -n -sSource:Package \( -w -FDepends "$oldre" \
		-o -w -FPre-Depends "$oldre" \) \
		-a '!' -X -FSource:Package "$oursrc" \
		/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_"$release"_*Packages \
		/var/lib/apt/lists/*.ubuntu.com_ubuntu*_dists_"$release"-proposed_*Packages \
	| sed -e's/(.*)//' | sort -u)
do
	# special-casing when needed
	skip_package=false
	for exclude in $excludes; do
		if [ "$pkg" = "$exclude" ]; then
			skip_package=:
		fi
	done
	if $skip_package; then
		continue
	fi

	if grep-dctrl -q -FSource:Package -X "$pkg" \
	              -a '!' -w -FDepends "$oldre" \
	              -a -w -FDepends "$newre" \
	              /var/lib/apt/lists/*.ubuntu.com_ubuntu*_dists_"$release"-proposed_*Packages
	then
		echo "Package $pkg already fixed in $release-proposed."
		continue
	fi

	if proposed_ver=$(grep-dctrl -sVersion -n -FPackage -X "$pkg" /var/lib/apt/lists/*.ubuntu.com_ubuntu*_dists_"$release"-proposed_*Sources)
	then
		echo "Package $pkg already present in $release-proposed (but not fixed)"
		if ! grep-dctrl -q -FSource:Package -X "$pkg" \
		                -a -FVersion -X "$proposed_ver" \
		                /var/lib/apt/lists/*.ubuntu.com_ubuntu*_dists_$release-proposed_*Packages
		then
			echo " (Package $pkg not built in $release-proposed)"
			continue
		fi
	fi

	echo "Rebuilding $pkg"
	if $dry_run; then
		continue
	fi
	apt-get source $pkg
	build_failed=false
	(cd ${pkg}-*
	 dch -R "$changelog"
	 update-maintainer
	 dch -r -D "$release" ''
	 debuild --no-lintian -S -nc
	) || build_failed=:

	if $build_failed; then
		rm -rf ${pkg}[-_]*
		continue
	fi
	dput ${pkg}*_source.changes
	rm -r ${pkg}[-_]*
done
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20220404/a8603405/attachment.sig>


More information about the ubuntu-devel mailing list