Handle cubes as packages in cwconfig
Rely on importlib.import_module in several places in cwconfig.py, so this
would not work with python 2.6.
Method available_cubes will not list cubes installed as package for now. I'm
not sure it's worth implementing this method (used in `cubicweb-ctl list
cubes` command) for new cubes layout as the same result can basically be
obtained with `pip freeze | grep cubicweb_`.
In unittest_cwconfig.py, duplicate CubicWebConfigurationTC test case to test
both the "cubes as packages" layout and the "legacy cubes" layout. The former
having a custom sys.path set (pointing to datapath('libpython') where all
cubes' packages live) and the latter having the previous config attribute
setup.
All test data cubes are moved to packages in libpython directory and symlinks
are introduced in the cubes directory.
Related to #13001466.
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: cubicweb
# Required-Start: $remote_fs $syslog $local_fs $network
# Required-Stop: $remote_fs $syslog $local_fs $network
# Should-Start: postgresql
# Should-Stop: postgresql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start cubicweb application at boot time
### END INIT INFO
# FIXME Seems to be inadequate here
cd /tmp
# FIXME Work-around about the following lintian error
# E: cubicweb-ctl: init.d-script-does-not-implement-required-option /etc/init.d/cubicweb start
#
# Check if we are sure to not want the start-stop-daemon machinery here
# Refer to Debian Policy Manual section 9.3.2 (Writing the scripts) for details.
case $1 in
force-reload)
python -W ignore /usr/bin/cubicweb-ctl reload --force
;;
status)
python -W ignore /usr/bin/cubicweb-ctl status
;;
start|stop|restart|*)
python -W ignore /usr/bin/cubicweb-ctl $1 --force
;;
esac