10 Jun 2026
Planet Debian
Mike Gabriel: Future of libayatana-appindicator (v0.6.0 released today)

Some of you might have noticed that the recent (or rather: previous) version of libayatana-appindicator (v0.5.94) notified users and developers of the library being deprecated.
This short post is to notify you, that with today's libayatana-appindicator v0.6.0 release [1] this deprecation warning has now been removed again. Another new feature (added to AppIndicator without ABI breakage) is tooltip support. The new package version has just been uploaded to Debian experimental. Please test if your application (if it gets linked against libayatana-appindicator) continues to work flawlessly. Thanks!
libayatana-appindicator will receive continued support until GTK-3 becomes end-of-life (because libayatana-appindicator has a baked-in GTK-3 dependency which should not be ported to GTK-4 imho). That said, in the future, GTK-3 applications can continue using libayatana-appindicator for sending AppIndicator-like icons and menus over DBus to KStatusNotifierItem-based system tray renderers.
If you are looking for an AppIndicator implementation for GTK-4 applications (or other), I'd like to encourage you to help making libayatana-appindicator-glib [2] a new standard (can be used in GTK and Qt applications alike, implementation is using pure Glib-2.0). Currently, there is only one renderer (ayatana-indicator-application), so more work needs to be done on the renderers' side. (One of the next work items here is to get AppIndicator-Glib support working in Lomiri's desktop/windowed mode).
[1] https://github.com/AyatanaIndicators/libayatana-appindicator/releases/ta...
[2] https://github.com/AyatanaIndicators/libayatana-appindicator-glib/
10 Jun 2026 8:15pm GMT
Colin Watson: Free software activity in May 2026

My Debian contributions this month were all sponsored by Freexian.
You can also support my work directly via Liberapay or GitHub Sponsors.
OpenSSH
I backported various security fixes from 10.3 to trixie, bookworm, bullseye, buster, and stretch. For trixie, I also backported several IPQoS fixes to line up with upstream's traffic management settings and drop a rather hacky Debian-specific patch; this needed a quick follow-up fix.
I upgraded trixie-backports to 10.3.
I fixed openssh uses pidof but does not depend on procps.
PuTTY
I upgraded from 0.83 to 0.84.
Python packaging
New upstream versions:
- bitstruct
- ormar
- pdm (fixing a build failure)
- pydantic
- pydantic-core
- pydantic-settings
- pyglet (fixing a build failure)
- python-asyncssh
- python-bitarray
- python-btrees
- python-build
- python-certifi
- python-charset-normalizer (fixing a build failure)
- python-fakeredis (contributed supporting fix upstream)
- python-holidays
- python-jsonschema-path
- python-memray (fixing a build failure and CVE-2026-32722)
- python-openapi-schema-validator
- python-pathable
- python-persistent
- python-pyftpdlib
- python-pytest-run-parallel
- sorl-thumbnail
- twisted
- zope.interface
- zope.proxy
Other build/test failures:
- beets
- buildbot (contributed upstream)
- dep-logic (contributed upstream)
- diskcache
- khard
- matplotlib
- mkdocs-rss-plugin
- ormar: compatibility with fastapi 0.125 and pydantic 2.13
- pgzero
- py7zr
- pydantic-extra-types (contributed upstream)
- pydata-sphinx-theme
- python-invocations (contributed upstream)
- python-localzone
- python-maturin
- python-nacl
- python-pampy
- python-treq (contributed upstream, including fixing some CI bitrot)
- python-txrequests (contributed upstream)
Other bugs:
- buildbot: (Build-)depends on deprecated module python3-pkg-resources (contributed upstream)
- pysodium: Depends on cruft package libsodium
- python-fakeredis: lua support not working, breaking django-redis cache locking
- python3.14: Drop libnsl-dev build-dependency
I updated python-treq upstream to stop vendoring multipart, now that the packaging issues with that have been sorted out.
Code reviews
- debmirror: User-Agent blocked by Ubuntu/Launchpad repositories (uploaded, and cherry-picked into trixie)
- pydantic: Fix CVE-2024-3772 in bookworm (merged and uploaded)
- pyodbc: Run SQLite tests (merged and uploaded)
- python-jsonschema-path: Transition to starlette 1.0 (merged and uploaded)
- python-maison: FTBFS with the nocheck build profile (followed up to fix the
nodocbuild profile as well) - python-openapi-core: Transition to starlette 1.0
- python-openapi-schema-validator: Transition to starlette 1.0 (merged and uploaded)
- python-openapi-spec-validator: Transition to starlette 1.0 (merged and uploaded)
- python-pathable: Transition to starlette 1.0 (merged and uploaded)
- python-rich-argparse: New upstream version 1.8.0 (merged and uploaded)
Other bits and pieces
I contributed a debian-policy patch to fix several links related to build profiles.
10 Jun 2026 3:10pm GMT
09 Jun 2026
Planet Debian
Vincent Bernat: Blogging with LLMs as a non-native speaker
AI slop is invading the web. A recent story about disallowing LLM-generated submissions on Lobsters triggered a lot of debate. My personal worst offenders are LinkedIn articles with AI-generated images and uninspired articles filled with emojis from people trying to masquerade as experts on a subject they don't care enough to write themselves. While I am unhappy about this situation, I rely on LLMs for grammar, copyediting, and translation. I don't see this as a contradiction.
I am a native French speaker, but I blog in both English and French. When I started writing this blog in 2011, I was composing in French and translating to English, but I found it was better to work in the reverse order to avoid unnatural and non-idiomatic constructions. One of my goals is to write "good" English but I never felt it was my strong point.1 For example, verb tenses are often an issue, even if I mostly stick with the present tense. I learn the rules and forget them right away. I also don't feel like hiring an editor for something I see as an hobby.
As an example, I have kept the history of the successive iterations when writing "Scaling Akvorado BMP RIB with sharding":
- the first draft, authored with the help of a thesaurus,2
- the edited copy revised by the copyediting skill,
- the translation to French generated with the translation skill, and
- the human proofread of the French translation, with minor edits to the English version.
I know that LLMs may alter the author's voice when editing, but the corrections in the second step are minor. The prompt asks to "apply light stylistic edits," with some guidance around avoiding passive voice, long sentences, bland verbs, and filler words. It also defines the target audience: technical with a B2 level in English.
In the following excerpt, I used "long time" instead of "long-standing." The former is missing an hyphen and applies to people-a long-time friend, while the later relates to a situation-a long-standing agreement. I had a hard time understanding the reason of the second change: the LLM prefers a defining relative clause to provide the definition of "RIB sharding."
As the Internet routing table contains more than 1 million routes, Akvorado needs to scale to tens of millions of routes. This has been a
long timelong-standing challenge, but I expect this issue is now fixed by using RIB sharding, a methodto splitthat splits the routing database into several parts to enable concurrent updates.
In the next modification, the LLM puts "device" instead of "equipment." This is correct as "equipment" is an uncountable noun. I know that, but I still fall into this trap.
When Akvorado does not find a route from a specific device, it falls back to a route sent by another
equipmentdevice.
I ask the LLM to use "descriptive verbs" and it complies by replacing a multi-word predicate with a lexically rich verb:
The benchmarks demonstrate it
has better performance thanoutperforms otherpackages, bothpackages for lookups, insertions, and memory usage.
It also fixes grammar errors. In the next excerpt, a "list of routes" is a singular expression. Moreover, "stored" is a state and I should not use "into" as it expresses a change.
The list of routes for each prefix
areis not stored directlyintoin the prefix tree.
As a last example, consider the following snippet. The "require" verb accepts a noun or an object followed by a to-infinitive. I can't use it with just a to-infinitive.
An alternative would be to have one prefix tree for each peer but it would require
to configureconfiguring all routers to export their routes.
As someone who didn't grow up speaking English, I struggle with these grammar rules despite reading a lot of English material.3 French is more complex to get started but more systematic. English is full of irregularities.
On each page, I disclose in the footer whether an AI modified the content. There are three levels:
- đź§ : no AI or almost no AI (e.g., grammar corrections)
- ✨: enhanced (e.g., copyediting)
- 🤖: generated (e.g., translated from another language, even if human-edited)
Hover or tap the icon to reveal the AI's name and its role in the document.

The graph below shows which tool altered each post, year by year. Recently, I applied the grammar skill to past articles. Since 2018, French articles have been translated with the help of DeepL first, then of an LLM. Since 2024, English articles are copyedited.
If you are strongly against any usage of LLMs specifically for writing, I hope you accept my more nuanced position on the usage of these tools as a trade-off to provide clearer and more engaging articles. Years of literature on improving English told us it is important to choose the right word to keep the reader engaged.
[…] Good writing consists of mastering the fundamentals (vocabulary, grammar, the elements of style) and then filling the third level of your toolbox with the right instruments.
― Stephen King, On Writing
Note
Unlike other recent articles, I did not use an LLM to edit this post: an unnamed person kindly accepted to proofread it. I translated it to French without using an LLM either.
-
I recently read cover to cover "Writing for Developers" and I found it stimulating. Michael Lynch is currently writing "Refactoring English" on the same topic and I have subscribed to the early access. ↩
-
I am quite happy with the writing tools provided by Kagi. Both the translate tool and the dictionary are a valuable help to find different wordings. I also lean on Kagi's research assistant when researching a topic. ↩
-
When I was ten, I played Monkey Island 2 in English without having taken any classes. I used a dictionary to translate word by word and I found the irregular verbs confusing-and not in the dictionary. ↩
09 Jun 2026 8:15pm GMT