diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5a66e9ec..5208da7c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - odoo_serie: ["12.0", "13.0", "14.0", "15.0", "16.0", "17.0", "18.0"] + odoo_serie: ["17.0"] steps: - uses: actions/checkout@v4 diff --git a/12.0/Dockerfile b/12.0/Dockerfile deleted file mode 100644 index 7474962a..00000000 --- a/12.0/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -FROM python:3.9-slim-bookworm -ARG UID=999 -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Moved because there was a bug while installing `odoo-autodiscover`. There is -# an accent in the contributor name -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - gcc \ - libevent-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libpng-dev \ - zlib1g-dev \ - git - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - /install/package_odoo.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/kwkhtml_client_force_python3.sh \ - && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ - && pip3 install -r /odoo/base_requirements.txt --ignore-installed \ - && /install/purge_dev_package_and_cache.sh - -# grab dockerize to generate template and -# wait on postgres -RUN /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo/odoo-bin -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /odoo/before-migrate-entrypoint.d -COPY ./start-entrypoint.d /odoo/start-entrypoint.d -COPY ./MANIFEST.in /odoo -RUN adduser --disabled-password -u $UID --gecos '' odoo \ - && touch /odoo/odoo.cfg \ - && mkdir -p /odoo/data/odoo/{addons,filestore,sessions} \ - && chown -R odoo:odoo /odoo && usermod odoo --home /odoo \ - && chown -R odoo:odoo /var/log/odoo - -VOLUME ["/data/odoo", "/var/log/odoo"] -USER odoo -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=12.0 \ - PATH=/odoo/odoo-bin:/odoo/.local/bin:$PATH \ - LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/odoo/addons,/odoo/odoo/src/odoo/addons \ - OPENERP_SERVER=/odoo/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/12.0/MANIFEST.in b/12.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/12.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/12.0/base_requirements.txt b/12.0/base_requirements.txt deleted file mode 100644 index 3c38aaba..00000000 --- a/12.0/base_requirements.txt +++ /dev/null @@ -1,95 +0,0 @@ -# Odoo dependencies -# python_version = 3.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -# unused official dependencies are commented to avoid dependabot alerts -Babel==2.6.0 -chardet==3.0.4 -decorator==4.3.0 -docutils==0.14 -ebaysdk==2.1.5 -gevent==22.10.2 -greenlet==2.0.2 -html2text==2018.1.9 -Jinja2==3.1.4 # official 2.10.1 -libsass==0.17.0 -# lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml==4.6.3 ; sys_platform != 'win32' and python_version >= '3.7' # official 4.3.2 -# lxml ; sys_platform == 'win32' -Mako==1.3.5 -MarkupSafe==2.1.5 # official 1.1.0 -mock==2.0.0 -num2words==0.5.10 # official 0.5.6 -ofxparse==0.19 -passlib==1.7.2 # official 1.7.1 -Pillow==8.3.2 ; python_version < '3.7' or sys_platform != 'win32' # official 5.4.1 -# Pillow==6.1.0 ; sys_platform == 'win32' and python_version >= '3.7' -polib==1.1.0 -psutil==5.7.0; sys_platform != 'win32' -psycopg2==2.9.9; sys_platform == 'win32' or python_version >= '3.8' -pydot==1.4.1 -python-ldap==3.2.0; sys_platform != 'win32' # official 3.1.0 -pyparsing==2.2.0 -PyPDF2==1.26.0 -pyserial==3.4 -python-dateutil==2.7.3 -pytz==2024.1 -pyusb==1.0.2 -qrcode==6.1 -reportlab==3.6.9 -requests==2.25.1 # official 2.21.0 -zeep==3.2.0 -vatnumber==1.2 -vobject==0.9.6.1 -Werkzeug==0.16.1 ; sys_platform != 'win32' # official 0.14.1 -# Werkzeug==0.16.0 ; sys_platform == 'win32' -XlsxWriter==1.1.2 -xlwt==1.3.* -xlrd==1.1.0 -# pypiwin32 ; sys_platform == 'win32' - -# last version compatible with 2to3 (for vatnumber) -setuptools<58 - -# Not part of official requirements, but used by some addons -# colorama==0.3.9 -gdata==2.0.18 -html5lib==1.0.1 -odfpy==1.4.1 -pyinotify==0.9.6 -python-stdnum==1.13 -simplejson==3.17.0 -urllib3==1.26.7 - -# Migration tools -marabunta==0.12.0 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==7.4.4 -pluggy -coverage -pytest-odoo -pytest-cov -watchdog - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -future==0.16.0 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pbr==4.0.4 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.5.0 -pyflakes==2.1.1 -unicodecsv==0.14.1 -wrapt==1.10.11 diff --git a/12.0/extra_requirements.txt b/12.0/extra_requirements.txt deleted file mode 100644 index 81a7e3bf..00000000 --- a/12.0/extra_requirements.txt +++ /dev/null @@ -1,46 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -cffi==1.11.5 -cryptography==2.3.0 -dateparser==0.7.0 -idna==2.7 -jmespath==0.9.3 -multidict==4.3.1 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -tzlocal==1.5.1 -Unidecode==1.0.22 -yarl==1.2.6 diff --git a/12.0/src_requirements.txt b/12.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/12.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/12.0/templates/odoo.cfg.tmpl b/12.0/templates/odoo.cfg.tmpl deleted file mode 100644 index 17989b6d..00000000 --- a/12.0/templates/odoo.cfg.tmpl +++ /dev/null @@ -1,51 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /odoo/data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -db_sslmode = {{ default .Env.DB_SSLMODE "prefer" }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -limit_time_real_cron = {{ default .Env.LIMIT_TIME_REAL_CRON "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }} -; db_sslmode = -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; http_port = 8069 -; http_enable = True -; http_interface = -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/13.0/Dockerfile b/13.0/Dockerfile deleted file mode 100644 index f9363162..00000000 --- a/13.0/Dockerfile +++ /dev/null @@ -1,80 +0,0 @@ -FROM python:3.9-slim-bookworm -ARG UID=999 -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install -# Moved because there was a bug while installing `odoo-autodiscover`. There is -# an accent in the contributor name -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - gcc \ - libevent-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libpng-dev \ - zlib1g-dev \ - git - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - sh -c /install/package_odoo.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/kwkhtml_client_force_python3.sh \ - && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ - && pip install -r /odoo/base_requirements.txt --ignore-installed \ - && /install/purge_dev_package_and_cache.sh - -# grab dockerize to generate template and -# wait on postgres -RUN /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo/odoo-bin -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /odoo/before-migrate-entrypoint.d -COPY ./start-entrypoint.d /odoo/start-entrypoint.d -COPY ./MANIFEST.in /odoo -RUN adduser --disabled-password -u $UID --gecos '' odoo \ - && touch /odoo/odoo.cfg \ - && mkdir -p /odoo/data/odoo/{addons,filestore,sessions} \ - && chown -R odoo:odoo /odoo && usermod odoo --home /odoo \ - && chown -R odoo:odoo /var/log/odoo - -VOLUME ["/data/odoo", "/var/log/odoo"] -USER odoo -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=13.0 \ - PATH=/odoo/odoo-bin:/odoo/.local/bin:$PATH \ - LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/odoo/addons,/odoo/odoo/src/odoo/addons \ - OPENERP_SERVER=/odoo/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/13.0/MANIFEST.in b/13.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/13.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/13.0/base_requirements.txt b/13.0/base_requirements.txt deleted file mode 100644 index 261062e8..00000000 --- a/13.0/base_requirements.txt +++ /dev/null @@ -1,96 +0,0 @@ -# Odoo dependencies -# python_version = 3.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -# unused official dependencies are commented to avoid dependabot alerts -Babel==2.6.0 -chardet==3.0.4 -decorator==4.3.0 -docutils==0.14 -ebaysdk==2.1.5 -gevent==22.10.2 -greenlet==2.0.2 -html2text==2018.1.9 -Jinja2==3.1.4 # official 2.10.1 -libsass==0.17.0 -# lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml==4.6.3 ; sys_platform != 'win32' and python_version >= '3.7' # official 4.3.2 -# lxml ; sys_platform == 'win32' -Mako==1.3.5 -MarkupSafe==2.1.5 # official 1.1.0 -mock==2.0.0 -num2words==0.5.10 # official 0.5.6 -ofxparse==0.19 -passlib==1.7.2 # official 1.7.1 -Pillow==8.3.2 ; python_version < '3.7' or sys_platform != 'win32' # official 5.4.1 -# Pillow==6.1.0 ; sys_platform == 'win32' and python_version >= '3.7' -polib==1.1.0 -psutil==5.7.0; sys_platform != 'win32' -psycopg2==2.9.9; sys_platform == 'win32' or python_version >= '3.8' -pydot==1.4.1 -python-ldap==3.2.0; sys_platform != 'win32' # official 3.1.0 -pyparsing==2.2.0 -PyPDF2==1.26.0 -pyserial==3.4 -python-dateutil==2.7.3 -pytz==2024.1 -pyusb==1.0.2 -qrcode==6.1 -reportlab==3.6.9 -requests==2.25.1 # official 2.21.0 -zeep==3.2.0 -vatnumber==1.2 -vobject==0.9.6.1 -Werkzeug==0.16.1 ; sys_platform != 'win32' # official 0.14.1 -# Werkzeug==0.16.0 ; sys_platform == 'win32' -XlsxWriter==1.1.2 -xlwt==1.3.* -xlrd==1.1.0 -# pypiwin32 ; sys_platform == 'win32' - -# last version compatible with 2to3 (for vatnumber) -setuptools<58 - - -# Not part of official requirements, but used by some addons -# colorama==0.3.9 -gdata==2.0.18 -html5lib==1.0.1 -odfpy==1.4.1 -pyinotify==0.9.6 -python-stdnum==1.13 -simplejson==3.17.0 -urllib3==1.26.7 - -# Migration tools -marabunta==0.12.0 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==7.4.4 -pluggy -coverage -pytest-odoo -pytest-cov -watchdog - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -future==0.16.0 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pbr==4.0.4 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.5.0 -pyflakes==2.1.1 -unicodecsv==0.14.1 -wrapt==1.10.11 diff --git a/13.0/extra_requirements.txt b/13.0/extra_requirements.txt deleted file mode 100644 index 81a7e3bf..00000000 --- a/13.0/extra_requirements.txt +++ /dev/null @@ -1,46 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -cffi==1.11.5 -cryptography==2.3.0 -dateparser==0.7.0 -idna==2.7 -jmespath==0.9.3 -multidict==4.3.1 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -tzlocal==1.5.1 -Unidecode==1.0.22 -yarl==1.2.6 diff --git a/13.0/src_requirements.txt b/13.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/13.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/13.0/templates/odoo.cfg.tmpl b/13.0/templates/odoo.cfg.tmpl deleted file mode 100644 index 17989b6d..00000000 --- a/13.0/templates/odoo.cfg.tmpl +++ /dev/null @@ -1,51 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /odoo/data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -db_sslmode = {{ default .Env.DB_SSLMODE "prefer" }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -limit_time_real_cron = {{ default .Env.LIMIT_TIME_REAL_CRON "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }} -; db_sslmode = -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; http_port = 8069 -; http_enable = True -; http_interface = -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/14.0/Dockerfile b/14.0/Dockerfile deleted file mode 100644 index 1707a556..00000000 --- a/14.0/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -FROM python:3.9-slim-bookworm -ARG UID=999 -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Moved because there was a bug while installing `odoo-autodiscover`. There is -# an accent in the contributor name -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - gcc \ - libevent-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libpng-dev \ - zlib1g-dev \ - git - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - sh -c /install/package_odoo.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/kwkhtml_client_force_python3.sh \ - && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ - && pip install -r /odoo/base_requirements.txt --ignore-installed \ - && /install/purge_dev_package_and_cache.sh - -# grab dockerize to generate template and -# wait on postgres -RUN /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo/odoo-bin -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /odoo/before-migrate-entrypoint.d -COPY ./start-entrypoint.d /odoo/start-entrypoint.d -COPY ./MANIFEST.in /odoo -RUN adduser --disabled-password -u $UID --gecos '' odoo \ - && touch /odoo/odoo.cfg \ - && mkdir -p /odoo/data/odoo/{addons,filestore,sessions} \ - && chown -R odoo:odoo /odoo && usermod odoo --home /odoo \ - && chown -R odoo:odoo /var/log/odoo - -VOLUME ["/data/odoo", "/var/log/odoo"] -USER odoo -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=14.0 \ - PATH=/odoo/odoo-bin:/odoo/.local/bin:$PATH \ - LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/odoo/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/14.0/MANIFEST.in b/14.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/14.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/14.0/base_requirements.txt b/14.0/base_requirements.txt deleted file mode 100644 index 1b9316bf..00000000 --- a/14.0/base_requirements.txt +++ /dev/null @@ -1,94 +0,0 @@ -# Odoo dependencies -# python_version = 3.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -# unused official dependencies are commented to avoid dependabot alerts -Babel==2.6.0 -chardet==3.0.4 -decorator==4.3.0 -docutils==0.14 -ebaysdk==2.1.5 -freezegun==0.3.15; python_version >= '3.8' -# gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7' -gevent==22.10.2 ; python_version >= '3.8' -greenlet==2.0.2 ; python_version > '3.7' -html2text==2018.1.9 -idna==2.6 -Jinja2==2.11.3; python_version < '3.8' # official 2.10.1 -# bullseye version, focal patched 2.10 -Jinja2==2.11.3; python_version >= '3.8' # official 2.11.2 -libsass==0.17.0 -# lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml_html_clean -lxml==4.8.0 -# lxml ; sys_platform == 'win32' -Mako==1.0.7 -MarkupSafe==1.1.0 -num2words==0.5.6 -ofxparse==0.19 -passlib==1.7.1 -# Pillow==6.1.0 ; python_version <= '3.7' and sys_platform == 'win32' -Pillow==8.3.2 ; python_version > '3.7' # official 8.1.1 -polib==1.1.0 -psutil==5.6.6 -psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8' # official 2.8.5 -pydot==1.4.1 -python-ldap==3.1.0; sys_platform != 'win32' -PyPDF2==1.26.0 -pyserial==3.4 -python-dateutil==2.7.3 -pytz==2024.1 -pyusb==1.0.2 -qrcode==6.1 -reportlab==3.6.9 -requests==2.25.1 # official 2.21.0 -zeep==3.2.0 -python-stdnum==1.13 # official 1.8 -vobject==0.9.6.1 -Werkzeug==0.16.1 -XlsxWriter==1.1.2 -xlwt==1.3.* -xlrd==1.2.0; python_version >= '3.8' -# pypiwin32 ; sys_platform == 'win32' - -# Not part of official requirements, but used by some addons -# colorama==0.3.9 -gdata==2.0.18 -html5lib==1.0.1 -odfpy==1.4.1 -pyinotify==0.9.6 -simplejson==3.17.0 -urllib3==1.26.7 - -# Migration tools -marabunta==0.12.0 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==7.4.4 -pluggy -coverage -pytest-odoo>=0.4.7 -pytest-cov>=2.10.0 -watchdog - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -future==0.16.0 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pbr==4.0.4 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.5.0 -pyflakes==2.1.1 -unicodecsv==0.14.1 -wrapt==1.10.11 diff --git a/14.0/extra_requirements.txt b/14.0/extra_requirements.txt deleted file mode 100644 index ae5d56a3..00000000 --- a/14.0/extra_requirements.txt +++ /dev/null @@ -1,45 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -cffi==1.11.5 -dateparser==0.7.0 -idna==2.7 -jmespath==0.9.3 -multidict==4.3.1 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -tzlocal==1.5.1 -Unidecode==1.0.22 -yarl==1.2.6 diff --git a/14.0/src_requirements.txt b/14.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/14.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/14.0/templates/odoo.cfg.tmpl b/14.0/templates/odoo.cfg.tmpl deleted file mode 100644 index 17989b6d..00000000 --- a/14.0/templates/odoo.cfg.tmpl +++ /dev/null @@ -1,51 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /odoo/data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -db_sslmode = {{ default .Env.DB_SSLMODE "prefer" }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -limit_time_real_cron = {{ default .Env.LIMIT_TIME_REAL_CRON "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }} -; db_sslmode = -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; http_port = 8069 -; http_enable = True -; http_interface = -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/15.0/Dockerfile b/15.0/Dockerfile index ab485f0d..bd3a5469 100644 --- a/15.0/Dockerfile +++ b/15.0/Dockerfile @@ -3,8 +3,8 @@ ARG UID=999 # create the working directory and a place to set the logs (if wanted) RUN mkdir -p /odoo /var/log/odoo -COPY ./base_requirements.txt /odoo COPY ./install /install +COPY ./base_requirements.txt /odoo # Moved because there was a bug while installing `odoo-autodiscover`. There is # an accent in the contributor name @@ -27,10 +27,12 @@ ENV BUILD_PACKAGE \ zlib1g-dev \ git + # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf # wkhtml-buster is kept as in official image, no deb available for bullseye RUN set -x; \ - sh -c /install/package_odoo.sh \ + sh -c /install/package_odoo_common.sh \ + && /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ diff --git a/15.0/base_requirements.txt b/15.0/base_requirements.txt index e5a4a9eb..bec09db6 100644 --- a/15.0/base_requirements.txt +++ b/15.0/base_requirements.txt @@ -1,46 +1,3 @@ -Babel==2.9.1 # min version = 2.6.0 (Focal with security backports) -chardet==3.0.4 -cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes -decorator==4.4.2 -docutils==0.16 -ebaysdk==2.1.5 -freezegun==0.3.15; python_version >= '3.8' -gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -idna==2.8 -Jinja2==3.1.2 ; python_version >= '3.12' # (Noble) compatibility with markupsafe -libsass==0.22.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) -lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) -MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -num2words==0.5.6 -ofxparse==0.21; python_version > '3.9' # (Jammy) -Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -polib==1.1.0 -psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -pydot==1.4.1 -pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches -PyPDF2==2.12.1 ; python_version >= '3.12' # (Noble) Compatibility with cryptography -pyserial==3.4 -python-dateutil==2.7.3 -python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package -python-stdnum==1.13 -pytz # no version pinning to avoid OS perturbations -pyusb==1.2.1 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -qrcode==6.1 -reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -requests==2.31.0 ; python_version >= '3.12' # (Noble) Compatibility with i -rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package -urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography -vobject==0.9.6.1 -Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy) -xlrd==1.2.0; python_version >= '3.8' -XlsxWriter==1.1.2 -xlwt==1.3.0 -zeep==3.4.0 - - # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 @@ -48,6 +5,8 @@ html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 simplejson==3.19.3 +lxml-html-clean==0.4.1 + # Migration tools marabunta==0.12.0 @@ -56,7 +15,6 @@ marabunta==0.12.0 # test / lint # those libs and their dependencies are unpinned # to always test with the last version of it - flake8 pytest==8.3.2 pluggy diff --git a/15.0/extra_requirements.txt b/15.0/extra_requirements.txt deleted file mode 100644 index e753fc32..00000000 --- a/15.0/extra_requirements.txt +++ /dev/null @@ -1,44 +0,0 @@ -# Extra python dependencies -algoliasearch==4.1.1 -Adyen==12.3.0 -cachetools==5.5.0 -cerberus==1.3.5 -boto3==1.35.6 -factur-x==3.1 -invoice2data==0.4.5 -mailjet-rest==1.3.4 -openupgradelib==3.6.1 -paramiko==3.4.1 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.3 -phonenumbers==8.13.44 -pyquerystring==1.1 -pyOpenSSL==24.2.1 -pyquerystring==1.1 -pysimplesoap==1.16.2 -requests-mock==1.12.1 -slugify==0.0.1 -stripe==10.8.0 -unidecode==1.3.8 -vcrpy==6.0.1 - -# Library dependency -asn1crypto==1.5.1 -bcrypt==4.2.0 -botocore==1.35.6 -cffi==1.17.0 -dateparser==1.2.0 -idna==3.8 -jmespath==1.0.1 -multidict==6.0.5 -pdfminer.six==20240706 -pyasn1==0.6.0 -pycparser==2.22 -pycryptodome==3.20.0 -PyNaCl==1.5.0 -pytesseract==0.3.13 -regex==2024.7.24 -s3transfer==0.10.2 -tzlocal==5.2 -Unidecode==1.3.8 -yarl==1.9.4 diff --git a/16.0/base_requirements.txt b/16.0/base_requirements.txt index d584bceb..bec09db6 100644 --- a/16.0/base_requirements.txt +++ b/16.0/base_requirements.txt @@ -1,50 +1,3 @@ -# The officially supported versions of the following packages are their -# python3-* equivalent distributed in Ubuntu 22.04 and Debian 11 -Babel==2.9.1 # min version = 2.6.0 (Focal with security backports) -chardet==4.0.0 -cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes -decorator==4.4.2 -docutils==0.16 -ebaysdk==2.1.5 -freezegun==0.3.15; python_version >= '3.8' -gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -idna==2.10 -Jinja2==3.1.2 ; python_version > '3.10' -libsass==0.22.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) -lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) -MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -num2words==0.5.9 -ofxparse==0.21; python_version > '3.9' # (Jammy) -passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) -Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -polib==1.1.0 -psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -pydot==1.4.2 -pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches -PyPDF2==2.12.1 ; python_version > '3.10' -pyserial==3.5 -python-dateutil==2.8.1 -python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package -python-stdnum==1.16 -pytz # no version pinning to avoid OS perturbations -pyusb==1.2.1 ; python_version > '3.10' -qrcode==6.1 -reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -requests==2.31.0 ; python_version >= '3.12' # (Noble) Compatibility with i -rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package -urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography -vobject==0.9.6.1 -Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy) -xlrd==1.2.0; python_version >= '3.8' -XlsxWriter==1.1.2 -xlwt==1.3.0 -zeep==4.0.0 - -setuptools==73.0.1 - # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 @@ -52,6 +5,8 @@ html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 simplejson==3.19.3 +lxml-html-clean==0.4.1 + # Migration tools marabunta==0.12.0 diff --git a/16.0/extra_requirements.txt b/16.0/extra_requirements.txt deleted file mode 100644 index e753fc32..00000000 --- a/16.0/extra_requirements.txt +++ /dev/null @@ -1,44 +0,0 @@ -# Extra python dependencies -algoliasearch==4.1.1 -Adyen==12.3.0 -cachetools==5.5.0 -cerberus==1.3.5 -boto3==1.35.6 -factur-x==3.1 -invoice2data==0.4.5 -mailjet-rest==1.3.4 -openupgradelib==3.6.1 -paramiko==3.4.1 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.3 -phonenumbers==8.13.44 -pyquerystring==1.1 -pyOpenSSL==24.2.1 -pyquerystring==1.1 -pysimplesoap==1.16.2 -requests-mock==1.12.1 -slugify==0.0.1 -stripe==10.8.0 -unidecode==1.3.8 -vcrpy==6.0.1 - -# Library dependency -asn1crypto==1.5.1 -bcrypt==4.2.0 -botocore==1.35.6 -cffi==1.17.0 -dateparser==1.2.0 -idna==3.8 -jmespath==1.0.1 -multidict==6.0.5 -pdfminer.six==20240706 -pyasn1==0.6.0 -pycparser==2.22 -pycryptodome==3.20.0 -PyNaCl==1.5.0 -pytesseract==0.3.13 -regex==2024.7.24 -s3transfer==0.10.2 -tzlocal==5.2 -Unidecode==1.3.8 -yarl==1.9.4 diff --git a/17.0/Dockerfile b/17.0/Dockerfile index b8474a09..95238f2e 100644 --- a/17.0/Dockerfile +++ b/17.0/Dockerfile @@ -11,26 +11,19 @@ COPY ./install /install ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 +# build and dev packages # build and dev packages ENV BUILD_PACKAGE \ - build-essential \ - gcc \ - libevent-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libpng-dev \ - zlib1g-dev \ git +# run in a virtualenv +RUN python3 -m venv .venv +RUN . .venv/bin/activate # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf # wkhtml-buster is kept as in official image, no deb available for bullseye RUN set -x; \ - sh -c /install/package_odoo.sh \ + sh -c /install/package_odoo_common.sh \ + && /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ diff --git a/17.0/base_requirements.txt b/17.0/base_requirements.txt index 1855f5ad..d8620d79 100644 --- a/17.0/base_requirements.txt +++ b/17.0/base_requirements.txt @@ -1,49 +1,3 @@ -Babel==2.10.3 ; python_version >= '3.11' -chardet==5.2.0 ; python_version >= '3.11' -cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes -decorator==5.1.1 ; python_version >= '3.11' -docutils==0.20.1 ; python_version >= '3.11' -ebaysdk==2.1.5 -freezegun==1.2.1 ; python_version >= '3.11' -geoip2==2.9.0 -gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -idna==3.6 ; python_version >= '3.12' -Jinja2==3.1.2 ; python_version > '3.10' -libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package -lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) -lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) -MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -num2words==0.5.13 ; python_version >= '3.12' -ofxparse==0.21 -passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) -Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -polib==1.1.1 -psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -pydot==1.4.2 -pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches -PyPDF2==2.12.1 ; python_version > '3.10' -pyserial==3.5 -python-dateutil==2.8.2 ; python_version >= '3.11' -python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package -python-stdnum==1.19 ; python_version >= '3.11' -pytz # no version pinning to avoid OS perturbations -pyusb==1.2.1 -qrcode==7.4.2 ; python_version >= '3.11' -reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -requests==2.31.0 ; python_version >= '3.11' # (Noble) -rjsmin==1.2.0 ; python_version >= '3.11' -rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package -urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography -vobject==0.9.6.1 -Werkzeug==3.0.1 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings -xlrd==2.0.1 ; python_version >= '3.12' -XlsxWriter==3.1.9 ; python_version >= '3.12' -xlwt==1.3.0 -zeep==4.2.1 ; python_version >= '3.11' -setuptools==73.0.1 - # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 @@ -51,7 +5,7 @@ html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 simplejson==3.19.3 - +lxml-html-clean==0.4.1 # Migration tools marabunta==0.12.0 diff --git a/17.0/extra_requirements.txt b/17.0/extra_requirements.txt deleted file mode 100644 index 619600eb..00000000 --- a/17.0/extra_requirements.txt +++ /dev/null @@ -1,45 +0,0 @@ -# Extra python dependencies -algoliasearch==4.1.1 -Adyen==12.3.0 -cachetools==5.5.0 -cerberus==1.3.5 -boto3==1.35.6 -factur-x==3.1 -invoice2data==0.4.5 -mailjet-rest==1.3.4 -openupgradelib==3.6.1 -paramiko==3.4.1 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.3 -phonenumbers==8.13.44 -pyquerystring==1.1 -pyOpenSSL==24.2.1 -pyquerystring==1.1 -pysimplesoap==1.16.2 -requests-mock==1.12.1 -slugify==0.0.1 -stripe==10.8.0 -unidecode==1.3.8 -vcrpy==6.0.1 - -# Library dependency -asn1crypto==1.5.1 -bcrypt==4.2.0 -botocore==1.35.6 -cffi==1.17.0 -cryptography==43.0.0 -dateparser==1.2.0 -idna==3.8 -jmespath==1.0.1 -multidict==6.0.5 -pdfminer.six==20240706 -pyasn1==0.6.0 -pycparser==2.22 -pycryptodome==3.20.0 -PyNaCl==1.5.0 -pytesseract==0.3.13 -regex==2024.7.24 -s3transfer==0.10.2 -tzlocal==5.2 -Unidecode==1.3.8 -yarl==1.9.4 diff --git a/18.0/base_requirements.txt b/18.0/base_requirements.txt index 91d44e16..1f76bbd1 100644 --- a/18.0/base_requirements.txt +++ b/18.0/base_requirements.txt @@ -1,58 +1,3 @@ -# The officially supported versions of the following packages are their -# python3-* equivalent distributed in Ubuntu 24.04 and Debian 12 -asn1crypto==1.5.1 ; python_version >= '3.11' -Babel==2.10.3 ; python_version >= '3.11' -cbor2==5.6.2 ; python_version >= '3.12' -chardet==5.2.0 ; python_version >= '3.11' -cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes -decorator==5.1.1 ; python_version >= '3.11' -docutils==0.20.1 ; python_version >= '3.11' -freezegun==1.2.1 ; python_version >= '3.11' -geoip2==2.9.0 -gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) -idna==3.7 ; python_version >= '3.12' -Jinja2==3.1.3 ; python_version > '3.10' -libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package -lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) -lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) -MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -num2words==0.5.13 ; python_version >= '3.12' -ofxparse==0.21 -openpyxl==3.1.2 ; python_version >= '3.12' -passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) -Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -polib==1.1.1 -psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12' -psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches -PyPDF2==2.12.1 ; python_version > '3.10' -pyserial==3.5 -python-dateutil==2.8.2 ; python_version >= '3.11' -python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package -python-stdnum==1.19 ; python_version >= '3.11' -pytz # no version pinning to avoid OS perturbations -pyusb==1.2.1 -qrcode==7.4.2 ; python_version >= '3.11' -reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package -requests==2.32.0 ; python_version >= '3.11' # (Noble) -rjsmin==1.2.0 ; python_version >= '3.11' -urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography -vobject==0.9.6.1 -Werkzeug==3.0.3 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings -xlrd==2.0.1 ; python_version >= '3.12' -XlsxWriter==3.1.9 ; python_version >= '3.12' -xlwt==1.3.0 -zeep==4.2.1 ; python_version >= '3.11' - - - - - - -setuptools==73.0.1 - # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 @@ -60,6 +5,7 @@ html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 simplejson==3.19.3 +lxml-html-clean==0.4.1 # Migration tools diff --git a/18.0/extra_requirements.txt b/18.0/extra_requirements.txt deleted file mode 100644 index 619600eb..00000000 --- a/18.0/extra_requirements.txt +++ /dev/null @@ -1,45 +0,0 @@ -# Extra python dependencies -algoliasearch==4.1.1 -Adyen==12.3.0 -cachetools==5.5.0 -cerberus==1.3.5 -boto3==1.35.6 -factur-x==3.1 -invoice2data==0.4.5 -mailjet-rest==1.3.4 -openupgradelib==3.6.1 -paramiko==3.4.1 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.3 -phonenumbers==8.13.44 -pyquerystring==1.1 -pyOpenSSL==24.2.1 -pyquerystring==1.1 -pysimplesoap==1.16.2 -requests-mock==1.12.1 -slugify==0.0.1 -stripe==10.8.0 -unidecode==1.3.8 -vcrpy==6.0.1 - -# Library dependency -asn1crypto==1.5.1 -bcrypt==4.2.0 -botocore==1.35.6 -cffi==1.17.0 -cryptography==43.0.0 -dateparser==1.2.0 -idna==3.8 -jmespath==1.0.1 -multidict==6.0.5 -pdfminer.six==20240706 -pyasn1==0.6.0 -pycparser==2.22 -pycryptodome==3.20.0 -PyNaCl==1.5.0 -pytesseract==0.3.13 -regex==2024.7.24 -s3transfer==0.10.2 -tzlocal==5.2 -Unidecode==1.3.8 -yarl==1.9.4 diff --git a/README.md b/README.md index af05f6a9..81da61fc 100644 --- a/README.md +++ b/README.md @@ -45,26 +45,10 @@ https://github.com/camptocamp/docker-odoo-project/pkgs/container/odoo-project There are 4 flavors of the image: - normal: `odoo-project:${odoo_version}-${tag_version}` -- normal-onbuild: `odoo-project:${odoo_version}-${tag_version}-onbuild` -- batteries-included: `odoo-project:${odoo_version}-${tag_version}-batteries` -- batteries-included-onbuild: `odoo-project:${odoo_version}-${tag_version}-batteries-onbuild` Note: in production, we strongly recommend to never use the "latest" tag. Instead use a specific version in order to be able to rebuild identical images. -### Normal or Batteries-included? - -The batteries-included image is exactly the same image, with a list of -additional pre-installed python packages. The packages have been chosen because -of their prevalent usage in OCA addons. - -The list of package (with their version) is defined in the extra_requirements.txt file. - -* [9.0/extra_requirements.txt](9.0/extra_requirements.txt) -* [10.0/extra_requirements.txt](10.0/extra_requirements.txt) -* [11.0/extra_requirements.txt](11.0/extra_requirements.txt) - -you can also see the Dockerfile that generate this image here: [common/Dockerfile-batteries](common/Dockerfile-batteries) ### With or without onbuild? @@ -99,15 +83,6 @@ $ make VERSION=11.0 $ make VERSION=10.0 ``` -Batteries-included flavors: -``` -# generate image camptocamp/odoo-project:11.0-batteries-latest and camptocamp/odoo-project:11.0-latest-batteries-onbuild -$ make VERSION=11.0 BATTERIES=True -# generate image camptocamp/odoo-project:10.0-batteries-latest and camptocamp/odoo-project:10.0-latest-batteries-onbuild -$ make VERSION=10.0 BATTERIES=True -``` - - ## Configuration The host for the database is in `$DB_HOST` (`db` by default). diff --git a/bin/check_package b/bin/check_package index 46f304d3..074bd20c 100755 --- a/bin/check_package +++ b/bin/check_package @@ -4,10 +4,6 @@ set -e cat /odoo/base_requirements.txt > requirements.txt -if [ "$BATTERIES" = "True" ] - then cat /odoo/extra_requirements.txt >> requirements.txt -fi - sed -i '/^\s*$/d' requirements.txt pip freeze -r requirements.txt | grep -v odoo > installed_package.txt diff --git a/install/package_odoo_common.sh b/install/package_odoo_common.sh new file mode 100755 index 00000000..59f89456 --- /dev/null +++ b/install/package_odoo_common.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -eo pipefail + +apt-get update -o Acquire::AllowInsecureRepositories=true +apt-get install -y --no-install-recommends \ + adduser \ + fonts-dejavu-core \ + fonts-freefont-ttf \ + fonts-freefont-otf \ + fonts-noto-core \ + fonts-inconsolata \ + fonts-font-awesome \ + fonts-roboto-unhinted \ + gsfonts \ + libjs-underscore \ + lsb-base \ + postgresql-client \ + python3-babel \ + python3-chardet \ + python3-dateutil \ + python3-decorator \ + python3-docutils \ + python3-freezegun \ + python3-pil \ + python3-jinja2 \ + python3-libsass \ + python3-lxml \ + python3-num2words \ + python3-ofxparse \ + python3-passlib \ + python3-polib \ + python3-psutil \ + python3-psycopg2 \ + python3-pydot \ + python3-openssl \ + python3-pypdf2 \ + python3-qrcode \ + python3-renderpm \ + python3-reportlab \ + python3-requests \ + python3-stdnum \ + python3-tz \ + python3-vobject \ + python3-werkzeug \ + python3-xlsxwriter \ + python3-xlrd \ + python3-zeep diff --git a/setup.sh b/setup.sh index 99cf4aea..0686e974 100644 --- a/setup.sh +++ b/setup.sh @@ -24,10 +24,6 @@ echo "Creating $SRC" cp -r ${VERSION}/. $SRC/ cp -r bin/ $SRC cp -rT common/ $SRC -cp common/Dockerfile-onbuild $SRC/Dockerfile-batteries-onbuild -sed -i "1i FROM ${BUILD_TAG}" $SRC/Dockerfile-onbuild -sed -i "1i FROM ${BUILD_TAG}" $SRC/Dockerfile-batteries -sed -i "1i FROM ${BUILD_TAG}-batteries" $SRC/Dockerfile-batteries-onbuild cp -r install/ $SRC cp -r start-entrypoint.d/ $SRC cp -r before-migrate-entrypoint.d/ $SRC