+1 maintenance report

Bryce Harrington bryce.harrington at canonical.com
Tue Apr 5 05:17:44 UTC 2022


## +1 Maintenance Docs ##

I've collected notes about proposed migration here:

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

This provides some explanations of phrases on the update-excuses page
that may be unclear to new +1 maintainers, and some tips for circular
dependencies and so on.  Suggestions to improve are welcome.


## Node ##

- NOT FINISHED (AA attention needed)

These fail only on i386, and should probably be hinted.

  * node-domino/2.1.6~ds-4
  * node-n3/1.13.0+~1.2.3+~1.10.4-1
  * node-node-forge/1.2.1~dfsg-2
  * node-normalize-range/0.1.2-3
  * node-regenerate-unicode-properties/10.0.1+ds-2
  * node-regjsgen/0.7.0+ds-1
  * node-require-relative/0.8.7+~0.8.0-1
  * node-urlgrey/1.0.0+~1.1.3-1
  * node-which-module/2.0.0-3
  * node-regenerate-unicode-properties/10.0.1+ds-2


## node-configurable-http-proxy / 4.5.0+~cs15.1.4-3

One of the errors this was encountering was fixed by Debian in the -4
package, so I sync'd it in.  The remaining errors appear to be proxy
issues which I'm not certain how to resolve but filed update-excuse bug
#1967024.


## node-eslint-visitor-keys / 3.3.0+~0.0.51-1

There was a -2 version in Debian.  I was not able to reproduce the error
locally, but felt the Debian update would resolve the issue.  I sync'd
it in, and it did indeed resolve the issue and allowed the package to
migrate.


## node-espree / 9.3.1~dfsg-1

This was blocked by node-eslint-visitor-keys, and with that resolved
(above), this also migrated successfully.


## node-regenerate-unicode-properties / 10.0.1+ds-2

The error showed the test dependencies were out of date with the
archive.  I retriggered using excuses-kicker, and all the tests
succeeded except for i386; I added this package to the above list for
getting a hint added.


## node-regexpu-core / 4.8.0-4

This is blocked by node-regenerate-unicode-properties, which now just
needs its j386 build failure hinted (above), and then should migrate.


## node-puppeteer / 13.1.0+dfsg-4

node-puppetteer has a versioned dependency on chromium and
chromium-sandbox, neither of which we carry in main or universe.
I filed LP: #1967048 to remove the binaries (thanks Christian!)

I've also forwarded to Debian a request (Deb: #1008812) to adjust the
dependencies.  Depending on their response, this package may need to
have a sync block added in the future at some point.


## node-nan / 2.15.0-1 on s390x

One test case fails due to what looks to me like an endian issue with
the test's usage of node's Buffer() class.  I reported the issue
upstream, filed an update-excuse bug on our end (LP: #1967589), and
disabled the test case for now.


## node-babel7 / 7.17.5+~cs214.260.190-1

- NOT SOLVED

There's several newer versions available from Debian.
Debian saw the same issue in their CI against the same version:
https://ci.debian.net/data/autopkgtest/unstable/amd64/n/node-babel7/19570001/log.gz

There seem to be only a few versions where things worked properly,
(e.g. see also Deb: #1007845) and those seem to not be cases that
included chalk so maybe the underlying issue remains unaddressed.


## bbswitch ##

Was an 'Only Unknown' failure, resolved by a basic retrigger.


## exim4 / ppc64el ##

I suspect this was just hitting a flaky test, but was blocking a dozen
other packages.  A 12-package retrigger on this arch passed, and
unblocked those packages.


## apache2 ##

A lot of tests get triggered from apache2 updates, and invariably there
are some flaky tests.  I did basic retriggers until all of these
succeeded and allowed apache2 to migrate.


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

The PPA used for this (and the other 7 failures) can be viewed at:
  https://launchpad.net/~bryce/+archive/ubuntu/nbs-retry


----


Lastly, through the week I POC'd some code for parsing build logs,
gathering info into a more useful struct, and printing as JSON, YAML, or
text:


  ## Grab a build log
  $ curl <build-log> --output my_buildlog.txt.gz
  $ gunzip my_buildlog.txt.gz

  ## All data in text format
  $ parse-buildlog my_buildlog.txt
  ...
  ...

  ## Just the metadata info, in json
  $ parse-buildlog -r json -s metadata data/example-buildlog-00.txt
  {
      "metadata": {
          "Source Version": "0.10-3",
          "Distribution": "impish-proposed",
          "Build Architecture": "amd64",
          "Timestamp": "Thu, 27 May 2021 19:49:15 +0000",
          "Build Type": "binary",
          "Machine Architecture": "amd64",
          "Version": "0.10-3",
          "url": "https://launchpad.net/ubuntu/+source/ggcov/0.10-3/+build/21476022",
          "Host Architecture": "amd64",
          "Package": "ggcov"
      }
  }

  ## What version of, say, openssl was used for this build?  Tell me in YAML.
  $ parse-buildlog -r yaml -s in-target-update-debian-chroot -b openssl data/example-buildlog-00.txt
  !!python/object/apply:collections.OrderedDict
  - - - in-target-update-debian-chroot
      - openssl:
          arch: amd64
          distribution: impish
          old_version: 1.1.1j-1ubuntu3
          operations:
          - Get
          - Upgrading
          - Setting up
          pocket: main
          version: 1.1.1j-1ubuntu4

  ## Give me a list of dependencies and versions used
  $ parse-buildlog -r json \
      -s sbuild-package \
      -b install_ggcov_build_dependencies_apt-based_resolver \
      data/example-buildlog-00.txt \
      | jq '.[][] | keys_unsorted[] as $k | "\($k) \(.[$k] | .version)"' \
      | tr -d '\"'
  libpython3.9-minimal 3.9.5-3
  libexpat1 2.3.0-1
  python3.9-minimal 3.9.5-3
  python3-minimal 3.9.4-1
  media-types 4.0.0
  ...
  

  ## Print out the last few lines of the actual build log
  $ ./parse-buildlog -r json -s sbuild-package -b dpkg-buildpackage data/example-buildlog-00.txt | jq '.[][] | .[]' | tr -d '\"' | tail -n 10
  ERROR: (test026) no output files from tggcov
  ERROR: (test029) no output files from tggcov
  ERROR: (test030) no output files from tggcov
  ERROR: (test033) no output files from tggcov
  ERROR: (test034) no output files from tggcov
  Total: 1/21 tests passed
  make[1]: *** [debian/rules:35: override_dh_auto_test] Error 1
  make[1]: Leaving directory '/<<PKGBUILDDIR>>'
  make: *** [debian/rules:12: binary] Error 2
  dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2


I only consider this about half done, but it's as far as I could get in
the week.  It's been only lightly tested so probably still has many
bugs, and it needs jq a lot more than I'd like, but it's a start.
Hopefully I'll get time to work more on it some day, and meanwhile
patches of course welcomed.

bryce



More information about the ubuntu-devel mailing list