diff --git a/lib/entropy/client/interfaces/client.py b/lib/entropy/client/interfaces/client.py index 257b07245..79756c447 100644 --- a/lib/entropy/client/interfaces/client.py +++ b/lib/entropy/client/interfaces/client.py @@ -48,6 +48,16 @@ class ClientSystemSettingsPlugin(SystemSettingsPlugin): self.__package_repositories = [] self.__package_repositories_meta = {} + @staticmethod + def client_conf_path(): + """ + Return current client.conf path, this takes into account the current + configuration files directory path (which is affected by "root" path + changes [default: /]) + """ + # path to /etc/entropy/server.conf (usually, depends on systemroot) + return os.path.join(etpConst['confdir'], "client.conf") + def _add_package_repository(self, repository_id, repository_metadata): """ Internal method, used by Entropy Client. Add a package repository @@ -526,7 +536,7 @@ class ClientSystemSettingsPlugin(SystemSettingsPlugin): 'edelta_support': False, # disabled by default } - cli_conf = etpConst['clientconf'] + cli_conf = ClientSystemSettingsPlugin.client_conf_path() root = etpConst['systemroot'] try: mtime = os.path.getmtime(cli_conf) diff --git a/lib/entropy/const.py b/lib/entropy/const.py index 150e6ef9b..e7fa1bc22 100644 --- a/lib/entropy/const.py +++ b/lib/entropy/const.py @@ -244,8 +244,7 @@ def const_default_settings(rootdir): 'confsetsdirname': default_etp_setsdirname, # repositories.conf file 'repositoriesconf': default_etp_confdir+"/repositories.conf", - # client.conf file (generic entropy client side settings) - 'clientconf': default_etp_confdir+"/client.conf", + # used by entropy.spm to build pkgs relative URL metadata ("download", # returned by EntropyRepository.retrieveDownloadURL()) 'packagesrelativepath_basedir': "packages", diff --git a/lib/entropy/qa.py b/lib/entropy/qa.py index 268dd575a..b5687da85 100644 --- a/lib/entropy/qa.py +++ b/lib/entropy/qa.py @@ -1625,11 +1625,14 @@ class ErrorReportInterface: with open(etpConst['repositoriesconf'], "r") as rc_f: self.params['repositories.conf'] = rc_f.read() + from entropy.client.interfaces.client import ClientSystemSettingsPlugin + client_conf = ClientSystemSettingsPlugin.client_conf_path() self.params['client.conf'] = "---NA---" - if os.access(etpConst['clientconf'], os.R_OK) and \ - os.path.isfile(etpConst['clientconf']): - with open(etpConst['clientconf'], "r") as rc_f: + try: + with open(client_conf, "r") as rc_f: self.params['client.conf'] = rc_f.read() + except IOError: + pass self.generated = True diff --git a/sulfur/src/sulfur/__init__.py b/sulfur/src/sulfur/__init__.py index 0385ffbbf..69faaf7bc 100644 --- a/sulfur/src/sulfur/__init__.py +++ b/sulfur/src/sulfur/__init__.py @@ -51,6 +51,7 @@ from entropy.output import print_generic from entropy.db.exceptions import ProgrammingError, OperationalError from entropy.core.settings.base import SystemSettings from entropy.services.client import WebService +from entropy.client.interfaces.client import ClientSystemSettingsPlugin # Sulfur Imports import gtk, gobject @@ -1220,6 +1221,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): sys_settings_plg_id = \ etpConst['system_settings_plugins_ids']['client_plugin'] conf_files = self._settings.get_setting_files_data() + client_conf = ClientSystemSettingsPlugin.client_conf_path() self._preferences = { conf_files['system']: [ ( @@ -1268,7 +1270,7 @@ class SulfurApplication(Controller, SulfurApplicationEventsMixin): self.ui.niceSpinSelect.get_value_as_int, ) ], - etpConst['clientconf']: [ + client_conf: [ ( 'collision-protect', self._settings[sys_settings_plg_id]['misc']['collisionprotect'],