Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/scripts/config.py
blob: 0d7a1b87f4c1f534a57cc2584d61e9365c99d83f (plain)
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'