+1 Maintenance Report

Steve Langasek steve.langasek at canonical.com
Fri Jul 1 18:28:25 UTC 2022


On Fri, Jul 01, 2022 at 10:08:26AM -0700, Bryce Harrington wrote:

> > Are there any methods for dealing with this type of circular dependency? 
> > In Debian I can see they did a binary-only upload to fix this, but as
> > far as I know there is no such thing in Ubuntu.

> Right, that's not generally an available option for us.  The two
> approaches I've had success with are a) bypassing test-during-build, and
> b) bootstrapping from earlier versions.  Towards the end of this page is
> a section on handling circular dependencies that explain these two:

>     https://github.com/canonical/ubuntu-maintainers-handbook/blob/main/ProposedMigration.md1

> In this case, it doesn't look like the dependency is due to testing so
> option (b) may be worth looking at.  It appears that g-g-j-pgtype
> used to depend on g-g-j-pgx-dev, at version 1.10.0-3, which is currently
> available in kinetic.

For the record, Launchpad does have the concept of a bootstrap archive and a
bootstrap build, which is how we bootstrap new architectures; it can also be
used to bootstrap circular build-dep loops like this.  However, it requires
the intercession of both an archive admin and a Launchpad admin to make use
of, so while I have a certain preference for it wrt centralized auditability
of where bootstraps came from, I understand if developers prefer to avoid
this - so long as any ppa-based bootstraps get done in properly
configured/vetted ppas (devirtualized ppas).

> So, I think the bootstrap solution might be:

>   1. Verify that g-g-j-pgtype (1.10.0-3) actually does build
>      successfully against g-g-j-pgx-dev (3.6.2-2).  (This is probably
>      best to verify in a PPA.)  If so, then...

>   2. Request an Archive Admin to delete from -proposed:
>      - golang-github-jackc-pgtype (1.10.0-4) source & binary
>      - golang-github-jackc-pgx (4.15.0-4) source & binary

>   3. Prepare and upload g-g-j-pgtype (1.10.0-3), and verify it
>      builds ok.  Then proceed with syncpackage on both packages to pull
>      in the newer versions.

Of course, when an in-archive bootstrap is possible, this is always nicer!

Since William has already confirmed that the above works, I'm not waiting
for him to ask on Monday and have done the above.

Also, rather than "prepare and upload", step 3) should be "use syncpackage
with the -V option" to keep the launchpad package history clean.  And I'm
not sure if syncpackage works to re-copy from Debian the same source
packages that had previously been published?  I use "copy-package -e
$version --force-same-destination "for this.

-- 
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 --------------
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/20220701/79ae7b4c/attachment.sig>


More information about the ubuntu-devel mailing list