import os import sys import jhbuild.config import sysdeps class Config(jhbuild.config.Config): def __init__(self, rc_file): scripts_dir = os.path.dirname(__file__) self._base_dir = os.path.dirname(scripts_dir) self._set_dir = os.path.join(self._base_dir, 'config', 'modulesets') jhbuild.config.Config.__init__(self, self._ensure_rc_file(rc_file)) self._setup() def get_user_path(self): user_path = os.path.expanduser('~/.sugar-jhbuild') if not os.path.exists(user_path): os.mkdir(user_path) return user_path def _ensure_rc_file(self, rc_file): if not os.path.exists(rc_file): f = open(rc_file, 'w') f.write('# Created by sugar-jhbuild') f.close return rc_file def _setup(self): self.autogenargs = '' self.moduleset = [] self._add_moduleset('glucose-external.modules') self._add_moduleset('tools.modules') self._add_moduleset('extra.modules') self._add_moduleset('extra-activities.modules') release_dir = None for f in os.listdir(self._set_dir): if f.startswith('release-'): release_dir = f self._add_moduleset('glucose.modules', release_dir) self._add_moduleset('fructose.modules', release_dir) self.modules = [ 'meta-tools', 'meta-glucose', 'meta-fructose' ] self.checkoutroot = os.path.join(self._base_dir, 'source') self.tarballdir = self.checkoutroot for package, source in sysdeps.get_packages(): if source and source not in self.skip: self.skip.append(source) def _add_moduleset(self, moduleset, release_dir=None): if release_dir: path = os.path.join(self._set_dir, release_dir) else: path = self._set_dir self.moduleset.append(os.path.join(path, moduleset)) def setup_env(self): # Hack to replace the default prefix if self.prefix == '/opt/gnome2': self.prefix = os.path.join(self._base_dir, 'install') jhbuild.config.Config.setup_env(self) jhbuild.config.addpath('XDG_DATA_DIRS', '/usr/share') jhbuild.config.addpath('XDG_DATA_DIRS', os.path.join(self.prefix, 'share')) if self.use_lib64: path = 'lib64/gtk-2.0/' else: path = 'lib/gtk-2.0/' jhbuild.config.addpath('GTK_PATH', os.path.join(self.prefix, path)) jhbuild.config.addpath('GTK_DATA_PREFIX', self.prefix) os.environ['SUGAR_PREFIX'] = self.prefix os.environ['SUGAR_PATH'] = os.path.join(self.prefix, 'share', 'sugar') os.environ['SUGAR_LOGGER_LEVEL'] = 'debug' # Enable debug log of the Telepathy components os.environ['GABBLE_DEBUG'] = 'all' os.environ['SALUT_DEBUG'] = 'all' os.environ['STREAM_ENGINE_DEBUG'] = 'all' # We need to add the gtk-2.0 directory explicitly to # the Python path since '.pth' files (here pygtk.pth) # only work properly in system directories pythonversion = 'python' + str(sys.version_info[0]) + '.' + \ str(sys.version_info[1]) if self.use_lib64: pythonpath = os.path.join(self.prefix, 'lib64', pythonversion, 'site-packages', 'gtk-2.0') else: pythonpath = os.path.join(self.prefix, 'lib', pythonversion, 'site-packages', 'gtk-2.0') jhbuild.config.addpath('PYTHONPATH', pythonpath) python_lib = os.path.join(self.prefix, 'lib', 'python2.5', 'site-packages') os.environ['PYTHON_LIB'] = python_lib if 'DBUS_SESSION_BUS_ADDRESS' in os.environ: del os.environ['DBUS_SESSION_BUS_ADDRESS'] if not 'SUGAR_PROFILE' in os.environ: os.environ['SUGAR_PROFILE'] = 'default'