Skip to content

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, and python-aiohttp package to resolve missing dependencies.
  • Install rpm-vercmp, cherrypy>=18.6.1, and timelib>=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.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information