Comment 0 for bug 1991022

Revision history for this message
Nathan Teodosio (nteodosio) wrote : Feature freeze exception: Socket activation

[Description]

Systemd socket activation for Speech Dispatcher.

  - Creates the speech-dispatcher.socket;
  - Modifies the server so that it can detect it was automatically launched by that socket activation; and
  - Modifies the Autotools files accordingly.

[Rationale]

It's relevance is described in [1], of which I quote the essential parts [my notes in brackets]:

> Sandboxed applications [snaps] that use Speech Dispatcher currently bundle it inside of the sandbox, so that each application has its own "private" instance of Speech Dispatcher running. This works more or less, but it has the downside that speech dispatcher cannot coordinate simultaneous messages from multiple apps. When multiple sandboxed apps use Speech Dispatcher at the same time, the text reading overlaps.
>
> In order to solve this issue, I would really like to give sandboxed apps access to the Speech Dispatcher instance of the host.

And then,

> The only issue I see is having it auto launch. I think it would probably be a good step forward for speech-dispatcher to be auto launched by a systemd socket like other daemons already do on demand. That way the host speech-dispatcher with it's configuration would be used by all snaps,

[Additional information]

The change was already proposed upstream[2], but it is on hold because the build with undefined sanitizer CI failed two times out of four. In the words of the maintainer,

> That's not systematic, but that's often enough that it'll be a pain in the CI, and is a sign of some subtle bug creeping in there.

I then opened my own fork with debugging enabled[3] to track down the problem, but the CI succeeded all the six times I executed it[4], so at this point I'd assume it was a transient issue more than a subtle bug.

I have built and installed the package in Kinetic and verified that spd-say still causes the dispatcher spawn and emits sound. Upstream test can also confirm this.

[1]: https://github.com/brailcom/speechd/issues/335
[2]: https://github.com/brailcom/speechd/pull/763
[3]: https://github.com/brailcom/speechd/commit/a63a5f7fe187edd5bf60c12a9c8e078cd2234e73
[4]: https://github.com/nteodosio/speechd/actions/runs/3129483607