+1 Maintenance Report

Bryce Harrington bryce.harrington at canonical.com
Fri Jul 1 17:08:26 UTC 2022


On Fri, Jul 01, 2022 at 11:34:13AM -0500, William Wilson wrote:
> Greetings ubuntu-devel,
> 
> This week I was on +1 maintenance and I noticed an odd circular dependency
> between two packages.
> 
>    - Package golang-github-jackc-pgtype is in NEW and is dependency wait on
>    golang-github-jackc-pgx-v4-dev.
>    - Package golang-github-jackc-pgx-v4-dev is a new binary package to be
>    built from src:golang-github-jackc-pgx as it migrates from major version v3
>    to v4.
>    - src:golang-github-jackc-pgx can not build any v4 binaries without
>    golang-github-jackc-pgtype-dev, which is built from
>    src:golang-github-jackc-pgtype
> 
> 
> The TL;DR of this is that src:golang-github-jackc-pgtype cannot build
> without binaries from src:golang-github-jackc-pgx, which cannot build
> without binaries from src:golang-github-jackc-pgtype, and thus there is a
> circular dependency.
> 
> 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.

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.

If step #1 does *not* work, then the problem is more complex.  It might
be worth checking in with the Debian maintainer for ideas at that point.

Bryce

> I briefly thought about combining the packages, but that is not idea
> for a few reasons:
>
>    1. It breaks our golang-github-<username>-<repo> packaging convention.
>    2. It would install possibly un-needed source code on people's machines
>    if they install the combined package but really only needed one.
> 
> Now for the report of things I was able to solve: I usually focus mainly on
> failed tests, but I noticed there were quite a few FTBFS packages, so I
> decided to focus on those.
> 
> libdigidoc - openssl v3 related regression. This is fixed in Ubuntu and I
> have created a QA upload for Debian. This will be sponsored by ginggs.
> 
> rinutils - filed https://launchpad.net/bugs/1980243 and
> https://bugs.debian.org/1014169 to explain that it needs new dependencies
> packaged
> 
> golang-github-masterminds-sprig - I fixed a regression in this package
> which unblocked:
>     * golang-step-crypto
>     * golang-step-cli-utils
>     * golang-github-smallstep-certificates
> Thanks to seb128 for helping shepherd some of these binary packages through
> the NEW queue
> 
> golang-oras-oras-go - Fixed a regression in Ubuntu and forwarded to Debian
> 
> golang-mongodb-mongo-driver - Fixed a regression in Ubuntu (and forwarded
> to Debian) which unblocks:
>     * golang-github-go-openapi-strfmt
>     * golang-github-go-openapi-validate
>     * golang-github-go-openapi-runtime
> 
> golang-github-openshift-imagebuilder: Fixed regression in Ubuntu and
> forwarded to Debian
> 
> scamper - Fixed a regression in Ubuntu and forwarded to Debian
> 
> Thank you for reading,
> 
> William 'jawn-smith' Wilson

> -- 
> ubuntu-devel mailing list
> ubuntu-devel at lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel




More information about the ubuntu-devel mailing list