From a2115ef5443bb35d914e5a0575ac9bb8f2927174 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 5 Dec 2014 15:27:58 +0100 Subject: [PATCH] [FIX] ensure default addon paths are valid (existing) User-provided addons paths are checked for existence (and rejected), but default addons paths are not checked, and blow up when trying to listdir them (e.g. when http.py tries to load modules). This is an issue when using Odoo from the distributed tarballs, because the packaging currently moves all modules to openerp/addons and removes the root ("main") addons directory. --- openerp/tools/config.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 0e5cecb966c..5f8315fea6c 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -445,9 +445,14 @@ class configmanager(object): self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(openerp.__file__)))) if not self.options['addons_path'] or self.options['addons_path']=='None': + default_addons = [] base_addons = os.path.join(self.options['root_path'], 'addons') + if os.path.exists(base_addons): + default_addons.append(base_addons) main_addons = os.path.abspath(os.path.join(self.options['root_path'], '../addons')) - self.options['addons_path'] = '%s,%s' % (base_addons, main_addons) + if os.path.exists(main_addons): + default_addons.append(main_addons) + self.options['addons_path'] = ','.join(default_addons) else: self.options['addons_path'] = ",".join( os.path.abspath(os.path.expanduser(os.path.expandvars(x)))