2026-08-08 20:54:29 +02:00
|
|
|
# callaudiod replacement for the FP6. Stock callaudiod 0.1.99 never finds a
|
|
|
|
|
# voice-capable card on this hardware (UCM exposes HiFi with Speaker+Mic, no
|
|
|
|
|
# Earpiece port), leaving plasma-dialer's mute button dead and blocking
|
|
|
|
|
# kde-telephony-daemon 25s per call; see the script header for the full
|
|
|
|
|
# write-up. The callaudiod package stays installed (plasma-mobile depends on
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
# it); this package replaces its D-Bus activation file, so activating
|
|
|
|
|
# org.mobian_project.CallAudio starts the shim in any session. Phosh
|
|
|
|
|
# activates the name at startup, before autostart runs, and the stock daemon
|
|
|
|
|
# used to win there (1-r0). Removing this package removes the activation file
|
|
|
|
|
# too; 'apk fix callaudiod' restores callaudiod's. Deployed and tested on the
|
|
|
|
|
# development FP6.
|
2026-08-08 20:54:29 +02:00
|
|
|
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
|
|
|
|
pkgname=callaudioshim
|
|
|
|
|
pkgver=1
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
pkgrel=1
|
2026-08-08 20:54:29 +02:00
|
|
|
pkgdesc="callaudiod replacement shim: working in-call mic mute on the FP6"
|
|
|
|
|
url="https://forgejo.catcrafts.net/Catcrafts/fp6-img"
|
|
|
|
|
arch="noarch"
|
|
|
|
|
license="GPL-3.0-only"
|
|
|
|
|
depends="python3 py3-dbus py3-gobject3 wireplumber"
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
replaces="callaudiod"
|
2026-08-08 20:54:29 +02:00
|
|
|
options="!check"
|
|
|
|
|
source="
|
|
|
|
|
callaudioshim.py
|
|
|
|
|
callaudioshim.desktop
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
org.mobian_project.CallAudio.service
|
2026-08-08 20:54:29 +02:00
|
|
|
"
|
|
|
|
|
|
|
|
|
|
package() {
|
|
|
|
|
install -Dm755 "$srcdir"/callaudioshim.py \
|
|
|
|
|
"$pkgdir"/usr/libexec/callaudioshim.py
|
|
|
|
|
install -Dm644 "$srcdir"/callaudioshim.desktop \
|
|
|
|
|
"$pkgdir"/etc/xdg/autostart/callaudioshim.desktop
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
install -Dm644 "$srcdir"/org.mobian_project.CallAudio.service \
|
|
|
|
|
"$pkgdir"/usr/share/dbus-1/services/org.mobian_project.CallAudio.service
|
2026-08-08 20:54:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sha512sums="
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
05995f0f732319559ccd9a7f3891c6363261e52ddbdf13b812fce580dbb816c362bd76da36cb9f1c7ee203d5ce2486762ffe46a7660dd4bc10c8bf2b4cd1a8ca callaudioshim.py
|
2026-08-08 20:54:29 +02:00
|
|
|
060b76660398115af26463425db5a6a2d634b6bdbf48a8ae488528403f8e086a9ef23470316196e6ccd8cb65e0ebd09bbc0df2ff5f8a830407d98404f439c706 callaudioshim.desktop
|
callaudioshim 1-r1: own callaudiod's activation file, so Phosh gets the shim
Phosh D-Bus-activates org.mobian_project.CallAudio at startup (cui_init ->
call_audio_init), before any autostart runs. So the stock callaudiod took
the name, segfaulted once, and then refused every mute ("card has no usable
source"): Calls' mute did nothing and Calls asserted on each refusal. Under
Plasma the shim won only because its phase-1 autostart ran first.
The package now installs the activation file at callaudiod's path
(replaces="callaudiod"), pointing at the shim, so whoever asks first gets
the shim. apk keeps the file through callaudiod reinstalls and upgrades,
including both packages upgrading in one transaction (tested in
alpine:edge). Removing the shim removes the file; 'apk fix callaudiod'
restores the stock one. A second instance exits quietly instead of
tracing back.
Tested on the dev phone: Phosh (activation at login, mute silences the
uplink, no Calls assertions) and Plasma (autostart owns the name, the
dialer's mute button follows the mic state).
2026-09-23 17:20:26 +02:00
|
|
|
6b44134e3f3ed0a8c3314b0b0cf9a9e5483850cdfb54f486d23199dd9f5f1ee66d674a391126e803796db69182f980b30a714457a81c9a447e146bc9ba5992bd org.mobian_project.CallAudio.service
|
2026-08-08 20:54:29 +02:00
|
|
|
"
|