--- /dev/null
+Title: Free software activity in October 2024
+Slug: activity-2024-10
+Date: 2024-11-01 12:19:04 +00:00
+Category: columbiform
+Tags: activity, columbiform, freexian, planet-debian, planet-ubuntu
+Summary: Ansible, OpenSSH, and lots of Python.
+Mastodon-ID: 113407659872939632
+
+Almost all of my Debian contributions this month were
+[sponsored](https://www.freexian.com/about/debian-contributions/) by
+Freexian.
+
+You can also support my work directly via
+[Liberapay](https://liberapay.com/cjwatson).
+
+## Ansible
+
+I noticed that [Ansible](https://www.ansible.com/) had fallen out of Debian
+testing due to autopkgtest failures. This seemed like a problem worth
+fixing: in common with many other people, we use Ansible for configuration
+management at Freexian, and it probably wouldn't make our sysadmins too
+happy if they upgraded to trixie after its release and found that Ansible
+was gone.
+
+The problems here were really just slogging through test failures in both
+the `ansible-core` and `ansible` packages, but their test suites are large
+and take a while to run so this took some time. I was able to contribute a
+few small fixes to various upstreams in the process:
+
+* [test: Make git archive prefix fit in 32-bit
+ `ssize_t`](https://github.com/ansible/ansible/pull/84129) (though upstream
+ went for a different approach)
+* [test: replace more deprecated
+ `assertEquals`](https://github.com/ansible-collections/community.grafana/pull/406)
+* [Fix import error on Python
+ 3.13](https://github.com/ansible-collections/community.mongodb/pull/684)
+* [Make `test_start_daemon_with_no_mock` less
+ flaky](https://github.com/ansible-collections/cloud.common/pull/162)
+
+This should now get back into testing tomorrow.
+
+## OpenSSH
+
+Martin-Éric Racine
+[reported](https://github.com/jtesta/ssh-audit/issues/291) that `ssh-audit`
+didn't list the `ext-info-s` feature as being available in Debian's OpenSSH
+9.2 packaging in bookworm, contrary to what OpenSSH upstream said on their
+[specifications page](https://www.openssh.com/specs.html) at the time. I
+spent some time looking into this and realized that upstream was mistakenly
+saying that implementations of `ext-info-c` and `ext-info-s` were added at
+the same time, while in fact `ext-info-s` was added rather later.
+`ssh-audit` now has clearer output, and the OpenSSH maintainers have
+corrected their specifications page.
+
+I looked into a [report](https://bugs.debian.org/1041521) of an `ssh`
+failure in certain cases when using GSS-API key exchange (which is a Debian
+patch). Once again, having [integration
+tests]({filename}/activity-2024-05.md) was a huge win here: the affected
+scenario is quite a fiddly one, but I was able to set it up in the
+[test](https://salsa.debian.org/ssh-team/openssh/-/blob/master/debian/tests/ssh-gssapi),
+and thereby make sure it doesn't regress in future. It still took me a
+couple of hours to get all the details right, but in the past this sort of
+thing took me much longer with a much lower degree of confidence that the
+fix was correct.
+
+On upstream's
+[advice](https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-October/041682.html),
+I cherry-picked some key exchange fixes needed for big-endian architectures.
+
+## Python team
+
+I packaged [python-evalidate](https://bugs.debian.org/1085206), needed for a
+new upstream version of buildbot.
+
+The Python 3.13 transition rolls on. I fixed problems related to it in
+[htmlmin](https://bugs.debian.org/1084575),
+[humanfriendly](https://bugs.debian.org/1084718),
+[postgresfixture](https://bugs.debian.org/1082143) ([contributed
+upstream](https://code.launchpad.net/~cjwatson/postgresfixture/py313/+merge/474603)),
+[pylint](https://bugs.debian.org/1084621),
+[python-asyncssh](https://bugs.debian.org/1084679) ([contributed
+upstream](https://github.com/ronf/asyncssh/pull/697)),
+[python-oauthlib](https://bugs.debian.org/1082235),
+[python3-simpletal](https://bugs.debian.org/1084589),
+[quodlibet](https://bugs.debian.org/1084610),
+[zope.exceptions](https://bugs.debian.org/1082339), and
+[zope.interface](https://bugs.debian.org/1081541).
+
+A trickier Python 3.13 issue involved the `cgi` module. Years ago I [ported
+zope.publisher to the multipart module]({filename}/lp-python3.md) because
+`cgi.FieldStorage` was broken in some situations, and as a result I got a
+[recommendation](https://github.com/python/peps/pull/2306) into Python's
+["dead batteries" PEP 594](https://peps.python.org/pep-0594/).
+Unfortunately there turns out to be a [name conflict between multipart and
+python-multipart on
+PyPI](https://github.com/pypa/packaging-problems/issues/818);
+python-multipart upstream has been [working to disentangle
+this](https://github.com/Kludex/python-multipart/pull/166), though we still
+need to [work out what to do in Debian](https://bugs.debian.org/1085728).
+All the same, I needed to fix
+[python-wadllib](https://bugs.debian.org/1082280) and multipart seemed like
+the best fit; I [contributed a port
+upstream](https://code.launchpad.net/~cjwatson/wadllib/+git/wadllib/+merge/474861)
+and temporarily copied multipart into Debian's python-wadllib source package
+to allow its tests to pass. I'll come back and fix this properly once we
+sort out the multipart vs. python-multipart packaging.
+
+tzdata
+[moved](https://tracker.debian.org/news/1573095/accepted-tzdata-2024b-3-source-into-unstable/)
+some timezone definitions to tzdata-legacy, which has broken a number of
+packages. I added tzdata-legacy build-dependencies to
+[alembic](https://bugs.debian.org/1086253) and
+[python-icalendar](https://bugs.debian.org/1086374) to deal with this in
+those packages, though there are still some other instances of this left.
+
+I tracked down an [nltk regression](https://bugs.debian.org/1084385) that
+caused build failures in many other packages.
+
+I fixed Rust crate versioning issues in
+[pydantic-core](https://bugs.debian.org/1084322),
+[python-bcrypt](https://bugs.debian.org/1084329), and
+[python-maturin](https://bugs.debian.org/1081875) (mostly fixed by Peter
+Michael Green and Jelmer Vernooij, but it needed a little extra work).
+
+I fixed other build failures in
+[entrypoints](https://bugs.debian.org/1052826),
+[mayavi2](https://bugs.debian.org/1082685),
+[python-pyvmomi](https://bugs.debian.org/1052793) (mostly fixed by Alexandre
+Detiste, but it needed a little extra work), and
+[python-testing.postgresql](https://bugs.debian.org/1018589) (ditto).
+
+I fixed [python3-simpletal](https://bugs.debian.org/1080724) to tolerate
+future versions of dh-python that will drop their dependency on
+python3-setuptools.
+
+I fixed broken symlinks in [python-treq](https://bugs.debian.org/988773).
+
+I removed (build-)depends on python3-pkg-resources from
+[alembic](https://bugs.debian.org/1083301),
+[autopep8](https://bugs.debian.org/1083309),
+[buildbot](https://bugs.debian.org/1083325),
+[celery](https://bugs.debian.org/1083331),
+[flufl.enum](https://bugs.debian.org/1083398),
+[flufl.lock](https://bugs.debian.org/1083400),
+[python-public](https://bugs.debian.org/1083685),
+[python-wadllib](https://bugs.debian.org/1083718) ([contributed
+upstream](https://code.launchpad.net/~cjwatson/wadllib/+git/wadllib/+merge/474798)),
+[pyvisa](https://bugs.debian.org/1083732),
+[routes](https://bugs.debian.org/1083757),
+[vulture](https://bugs.debian.org/1083983), and
+[zodbpickle](https://bugs.debian.org/1084003) ([contributed
+upstream](https://github.com/zopefoundation/zodbpickle/pull/99)).
+
+I upgraded astroid, asyncpg (fixing a [Python 3.13
+failure](https://bugs.debian.org/1081995) and a [build
+failure](https://bugs.debian.org/1084240)), buildbot (noticing an [upstream
+test bug](https://github.com/buildbot/buildbot/pull/8137) in the process),
+dnsdiag, frozenlist, netmiko (fixing a [Python 3.13
+failure](https://bugs.debian.org/1084527)), psycopg3, pydantic-settings,
+pylint, python-asyncssh, python-bleach, python-btrees, python-cytoolz,
+python-django-pgtrigger, python-django-test-migrations, python-gssapi,
+python-icalendar, python-json-log-formatter, python-pgbouncer,
+python-pkginfo, python-plumbum, python-stdlib-list, python-tokenize-rt,
+python-treq (fixing a [Python 3.13
+failure](https://bugs.debian.org/1084541)), python-typeguard, python-webargs
+(fixing a [build failure](https://bugs.debian.org/1082393)), pyupgrade,
+[pyvisa](https://bugs.debian.org/1084175),
+[pyvisa-py](https://bugs.debian.org/1084176) (fixing a [Python 3.13
+failure](https://bugs.debian.org/1084620)), toolz, twisted, vulture,
+waitress (fixing [CVE-2024-49768](https://bugs.debian.org/1086467) and
+[CVE-2024-49769](https://bugs.debian.org/1086468)), wtf-peewee, wtforms,
+zodbpickle, zope.exceptions, zope.interface, zope.proxy, zope.security, and
+zope.testrunner to new upstream versions.
+
+I tried to fix a [regression](https://bugs.debian.org/1081851) in
+python-scruffy, but I need testing feedback.
+
+I requested removal of
+[python-testing.mysqld](https://bugs.debian.org/1018588).