When I first came into contact with Mycroft and started playing with it on a raspbian stretch install, the information at hand told me pulseaudio was needed.
Later in time reading different feedback from the chat and forums showed me, pulseaudio was not needed and alsa audio should work just as fine.
For MycroftOS which is bare minimal, I do not want any packages if they are not really needed. At first I had pulseaudio installed, however removing it works just as good, so want to leave it out. However.
First I stopped pulseaudio and tested everything. All good. Confirmed: Pulseaudio is not needed.
I then rebuild the firmware without pulseaudio and tested it. ERROR in mycroft audio because it found python-pulsectl, loaded it but errored out because pulseaudio was no longer there.
Traceback (most recent call last):
File “/usr/lib/python3.6/runpy.py”, line 193, in _run_module_as_main
“main”, mod_spec)
File “/usr/lib/python3.6/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/usr/lib/python3.6/site-packages/mycroft/audio/main.py”, line 27, in
from .audioservice import AudioService
File “/usr/lib/python3.6/site-packages/mycroft/audio/audioservice.py”, line 27, in
import pulsectl
File “/usr/lib/python3.6/site-packages/pulsectl/init.py”, line 4, in
from . import _pulsectl
File “/usr/lib/python3.6/site-packages/pulsectl/_pulsectl.py”, line 620, in
pa = LibPulse()
File “/usr/lib/python3.6/site-packages/pulsectl/_pulsectl.py”, line 572, in init
p = CDLL(‘libpulse.so.0’)
File “/usr/lib/python3.6/ctypes/init.py”, line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: File not found
Removed python-pulsectl, rebuild the firmware. All good in mycroft audio, everything looked great.
Started the mycroft-cli-client; ERROR because python-pulsectl was not installed ?!?!
Traceback (most recent call last):
File “/usr/bin/mycroft-cli-client”, line 6, in
from pkg_resources import load_entry_point
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 3147, in
@_call_aside
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 3131, in _call_aside
f(*args, **kwargs)
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 3160, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 666, in _build_master
ws.require(requires)
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 984, in require
needed = self.resolve(parse_requirements(requirements))
File “/usr/lib/python3.6/site-packages/pkg_resources/init.py”, line 870, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The ‘pulsectl==17.7.4’ distribution was not found and is required by mycroft-core
So the question is; Pulseaudio, now do we need it or not?
Secondly, why does the CLI really needs it?