Actually, docker is used to test Linux packages once they are built.
The packaging process is done on the host system where package.py is
run.
Consequences:
* difficult to reproduce an exact same build on another host
* changing a Debian/Ubuntu target version means some upgrade steps
on the build host (mix that with the fact that the host also
could build old Odoo versions)
* Fedora rpm package is built on an Ubuntu system (which is not a
real problem but it could be)
With this commit, the package.py utility is refactored to use Docker
containers to build the Gnu/Linux packages.
Also, the Debian package is adapted for Debian Buster, the RPM package
is built based on Fedora 30.
Some minor changes are also made in the windows packaging system.
closes odoo/odoo#37766
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
62 lines
1.5 KiB
Bash
62 lines
1.5 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 ! 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.7/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
|