uwsgi: Do not autoload modules
We used to use uWSGI in emperor mode, which would run Ideascube as follows:
/usr/bin/uwsgi --ini ideascube.ini
But with the latest packaging changes, we moved to using plain uWSGI as it is packaged in Debian, which runs Ideascube with this command:
/usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini
--ini /etc/uwsgi/apps-enabled/ideascube.ini
The default.ini configuration file has the following line:
autoload = true
What happens with this is that when uWSGI parses ideascube.ini, it finds this line first:
module = ideascube.wsgi
At this point, uWSGI doesn't know how to interpret this module
option,
so it searches for a plugin that knows. It finds the python
plugin and
loads it, even though later on we ask for the python3
plugin.
As a result, Ideascube gets started with Python 2, which obviously fails.
We'd rather not keep fighting with the Debian packaging of uWSGI by going to our own custom uwsgi.service file.
In addition, we can't use the uwsgi-emperor package from Debian because it runs uWSGI as the www-data user, and thus can't switch to the ideascube user for our application.
Therefore, this is the simplest solution: it respects the Debian packaging of uWSGI, and only keeps configuration in our own files.