3007 broken due to missing dependencies
tl;dr
Running pacman -S salt
on an empty machine, then installing pip
and running pip check
reveals several missing dependencies:
salt 3007.0 requires aiohttp, which is not installed.
salt 3007.0 requires cherrypy, which is not installed.
salt 3007.0 requires pyopenssl, which is not installed.
salt 3007.0 requires python-dateutil, which is not installed.
salt 3007.0 requires python-gnupg, which is not installed.
salt 3007.0 requires rpm-vercmp, which is not installed.
salt 3007.0 requires setproctitle, which is not installed.
salt 3007.0 requires timelib, which is not installed.
salt 3007.0 requires tornado, which is not installed.
Long version
I upgraded from 3006.5-1
to 3007.0-1
earlier, and ... everything exploded slightly.
Minion
The salt-minion didn't even start. All I got was a
salt-minion[284]: [ERROR ] An un-handled exception was caught by Salt's global exception handler:
salt-minion[284]: ModuleNotFoundError: No module named 'tornado'
salt-minion[284]: Traceback (most recent call last):
salt-minion[284]: File "/usr/bin/salt-minion", line 33, in <module>
salt-minion[284]: sys.exit(load_entry_point('salt==3007.0', 'console_scripts', 'salt-minion')())
salt-minion[284]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
salt-minion[284]: File "/usr/lib/python3.11/site-packages/salt/scripts.py", line 168, in salt_minion
salt-minion[284]: import salt.utils.process
salt-minion[284]: File "/usr/lib/python3.11/site-packages/salt/utils/process.py", line 23, in <module>
salt-minion[284]: from tornado import gen
salt-minion[284]: ModuleNotFoundError: No module named 'tornado'
This was fixable with a pacman -S python-tornado
, but I will note that salt requires tornado>=6.3.3
, and the python-tornado
package is still at 6.3.2
. However, the minion started and connected just fine after installing the package.
Master
The master also didn't start due to the missing tornado
dependency. Installing the package made it boot and connect, but it was not usable. Trying to run salt-run jobs.active
first presented me with a
pkg_resources.ContextualVersionConflict: (tornado 6.3.2 (/usr/lib/python3.11/site-packages), Requirement.parse('tornado>=6.3.3'), {'salt'})
So the repo-version of tornado is too old. Long story short, to get that salt call to run, I had to:
- Install
tornado>=6.3.3
via pip - Install the
python-gnupg
,python-dateutil
, andpython-aiohttp
package to resolve missing dependencies. - Install
rpm-vercmp
,cherrypy>=18.6.1
, andtimelib>=0.2.5
via pip - those packages are not available in the repo.
After that, the salt-master
appears to work, and pip check
also doesn't show any missing dependencies, but that might not cover everything.