#!/usr/bin/env bash ERPLIBRE_VERSION=$(cat ".erplibre-semver-version" | xargs) #EL_USER="erplibre" EL_USER="${USER}" #EL_HOME="/${EL_USER}" EL_HOME="${HOME}" #EL_HOME_ERPLIBRE="${EL_HOME}/erplibre" EL_HOME_ERPLIBRE="${PWD}" EL_HOME_ODOO="${EL_HOME_ERPLIBRE}"/odoo$(cat ".odoo-version" | xargs)/odoo EL_ODOO_VERSION=$(cat ".odoo-version" | xargs) EL_POETRY_VERSION=$(cat ".poetry-version" | xargs) EL_PYTHON_ODOO_VERSION=$(cat ".python-odoo-version" | xargs) EL_PYTHON_ERPLIBRE_VERSION=$(cat "./conf/python-erplibre-version" | xargs) EL_ERPLIBRE_VERSION=$(cat ".erplibre-version" | xargs) # Fournisseur d'interpreteur Python : auto | mise | pyenv. # « auto » prend ce qui est DEJA pose, sinon mise s'il est present (Python # precompile, quelques secondes), sinon pyenv (compilation). Voir # script/install/lib_python_provider.sh. EL_PYTHON_PROVIDER="${EL_PYTHON_PROVIDER:-auto}" # Installateur de paquets Python : auto | uv | pip. # « auto » prend uv s'il est present et si le venv vise est en Python >= 3.8, # sinon pip ; un echec d'uv retombe sur pip. Voir # script/install/lib_pip_provider.sh. Note : « poetry install » n'est PAS # concerne, uv ne lit pas poetry.lock. EL_PIP_PROVIDER="${EL_PIP_PROVIDER:-auto}" # The default port where this Odoo instance will run under (provided you use the command -c in the terminal) # Set to true if you want to install it, false if you don't need it or have it already installed. EL_INSTALL_WKHTMLTOPDF="True" # Set the default Odoo port EL_PORT="8069" EL_LONGPOLLING_PORT="8072" # set the superadmin password EL_SUPERADMIN="admin" # The configuration systemctl service will be erplibre_dirname EL_CONFIG="erplibre_${PWD##*/}" EL_MINIMAL_ADDONS="False" # Set this to True if you want to install Nginx! EL_INSTALL_NGINX="False" # Set the website name EL_WEBSITE_NAME="localhost" EL_GITHUB_TOKEN="" EL_MANIFEST_PROD="./default.xml" EL_MANIFEST_DEV="./manifest/git_manifest_erplibre.xml" EL_LANG="fr" # Verbosité de l'installation (poetry install, repo sync, git daemon). # 0 = silencieux (défaut), 1 = logs détaillés. On respecte une valeur déjà # passée en environnement : EL_VERBOSE=1 make install_odoo_18 EL_VERBOSE="${EL_VERBOSE:-0}" # NixOS : donner aux roues manylinux les bibliotheques que nix-ld declare. # # nix-ld fournit l'editeur de liens (/lib64/ld-linux-x86-64.so.2) aux binaires # etrangers qu'il LANCE. Mais un « .so » de roue manylinux n'est pas lance : # il est charge par dlopen depuis le CPython du systeme, qui est un binaire de # Nix et ne lit pas NIX_LD_LIBRARY_PATH. Sans cette ligne, l'installation # reussit et « import psycopg2 » echoue APRES, sur « libz.so.1: cannot open # shared object file » -- une erreur qui ne parle ni de pip ni de Nix. # # Rien ailleurs : la variable n'est posee que la ou nix-ld existe, et ne # masque donc aucune bibliotheque sur les autres systemes. if [ -n "${NIX_LD_LIBRARY_PATH:-}" ]; then export LD_LIBRARY_PATH="${NIX_LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" fi # NixOS : les chemins de compilation, relus du SYSTEME DE FICHIERS. # # Le module declare CPATH, LIBRARY_PATH et PKG_CONFIG_PATH, mais une session # les recoit de pam_env a son OUVERTURE. Or l'installation applique le module # (« make install_os ») puis compile (« make install_odoo_18 ») dans la MEME # session : la sienne est plus vieille que ce qu'elle vient de declarer. Les # trois paquets du verrou qui n'ont pas de roue amont s'arretaient alors sur # « lber.h », « cups/http.h » et « mysql.h » -- au PREMIER passage seulement, # ce qui est la pire des pannes : le second reussit et donne raison a tort. # # « /run/current-system/sw » est le profil courant du systeme, un lien que le # rebuild vient de reposer : le lire ne depend d'aucune variable heritee. if [ -d /run/current-system/sw ]; then export CPATH="/run/current-system/sw/include${CPATH:+:${CPATH}}" export LIBRARY_PATH="/run/current-system/sw/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}" export PKG_CONFIG_PATH="/run/current-system/sw/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" fi