1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
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'
|