Fedora 29 switched to python 3.7. It seems that there is no official way to build a RPM package that could works with 3.6 and 3.7. Building two different packages for each version could open the pandora box of packaging. With this commit an ugly hack is used: if python3.7 is found, the odoo directory is symlinked into its site-packages dir. fixes #30579 closes odoo/odoo#30618
68 lines
1.8 KiB
Bash
68 lines
1.8 KiB
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
ODOO_CONFIGURATION_DIR=/etc/odoo
|
|
ODOO_CONFIGURATION_FILE=$ODOO_CONFIGURATION_DIR/odoo.conf
|
|
ODOO_DATA_DIR=/var/lib/odoo
|
|
ODOO_GROUP="odoo"
|
|
ODOO_LOG_DIR=/var/log/odoo
|
|
ODOO_LOG_FILE=$ODOO_LOG_DIR/odoo-server.log
|
|
ODOO_USER="odoo"
|
|
|
|
if [ -d /usr/lib/python3.7 ]; then
|
|
SITE_PACK_DIR37=/usr/lib/python3.7/site-packages
|
|
[[ ! -d ${SITE_PACK_DIR37} ]] && mkdir -p ${SITE_PACK_DIR37}
|
|
ln -s /usr/lib/python3.6/site-packages/odoo ${SITE_PACK_DIR37}/odoo
|
|
fi
|
|
|
|
if ! getent passwd | grep -q "^odoo:"; then
|
|
groupadd $ODOO_GROUP
|
|
adduser --system --no-create-home $ODOO_USER -g $ODOO_GROUP
|
|
fi
|
|
# Register "$ODOO_USER" as a postgres user with "Create DB" role attribute
|
|
su - postgres -c "createuser -d -R -S $ODOO_USER" 2> /dev/null || true
|
|
# Configuration file
|
|
mkdir -p $ODOO_CONFIGURATION_DIR
|
|
# can't copy debian config-file as addons_path is not the same
|
|
if [ ! -f $ODOO_CONFIGURATION_FILE ]
|
|
then
|
|
echo "[options]
|
|
; This is the password that allows database operations:
|
|
; admin_passwd = admin
|
|
db_host = False
|
|
db_port = False
|
|
db_user = $ODOO_USER
|
|
db_password = False
|
|
addons_path = /usr/lib/python3.6/site-packages/odoo/addons
|
|
" > $ODOO_CONFIGURATION_FILE
|
|
chown $ODOO_USER:$ODOO_GROUP $ODOO_CONFIGURATION_FILE
|
|
chmod 0640 $ODOO_CONFIGURATION_FILE
|
|
fi
|
|
# Log
|
|
mkdir -p $ODOO_LOG_DIR
|
|
chown $ODOO_USER:$ODOO_GROUP $ODOO_LOG_DIR
|
|
chmod 0750 $ODOO_LOG_DIR
|
|
# Data dir
|
|
mkdir -p $ODOO_DATA_DIR
|
|
chown $ODOO_USER:$ODOO_GROUP $ODOO_DATA_DIR
|
|
|
|
INIT_FILE=/lib/systemd/system/odoo.service
|
|
touch $INIT_FILE
|
|
chmod 0700 $INIT_FILE
|
|
cat << EOF > $INIT_FILE
|
|
[Unit]
|
|
Description=Odoo Open Source ERP and CRM
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=odoo
|
|
Group=odoo
|
|
ExecStart=/usr/bin/odoo --config $ODOO_CONFIGURATION_FILE --logfile $ODOO_LOG_FILE
|
|
KillMode=mixed
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|