1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 from twisted.internet import defer
19
20 from flumotion.common import messages
21 from flumotion.common.i18n import N_, gettexter
22
23 __version__ = "$Rev$"
24 T_ = gettexter()
25
26
28 if hasattr(gst, 'get_gst_version'):
29 return gst.get_gst_version()
30 elif hasattr(gst, 'version'):
31 return gst.version()
32 else:
33 return gst.gst_version + (0, )
34
35
37 if hasattr(gst, 'get_pygst_version'):
38 return gst.get_pygst_version()
39 else:
40 return gst.pygst_version + (0, )
41
42
44 """
45 Check for a recent enough PyGTK to not leak python integers in message
46 processing (mostly affects soundcard, firewire)
47 """
48 result = messages.Result()
49 import pygtk
50 pygtk.require('2.0')
51 import gobject
52
53
54 (major, minor, nano) = gobject.pygtk_version
55 if (major, minor, nano) < (2, 8, 6):
56 m = messages.Warning(T_(
57 N_("Version %d.%d.%d of the PyGTK library contains "
58 "a memory leak.\n"),
59 major, minor, nano),
60 mid='ticket-347')
61 m.add(T_(N_("The Soundcard and Firewire sources may leak a lot of "
62 "memory as a result, and would need to be restarted "
63 "frequently.\n")))
64 m.add(T_(N_("Please upgrade '%s' to version %s or later."),
65 'pygtk', '2.8.6'))
66 result.add(m)
67
68 result.succeed(None)
69 return defer.succeed(result)
70
71
73 result = messages.Result()
74 import pygst
75 pygst.require('0.10')
76 import gst
77 (major, minor, nano) = gst.pygst_version
78 if (major, minor, nano) < (0, 10, 3):
79 m = messages.Warning(T_(
80 N_("Version %d.%d.%d of the gst-python library contains "
81 "a large memory leak.\n"),
82 major, minor, nano),
83 mid='ticket-348')
84 m.add(T_(N_("The Soundcard and Firewire sources may leak a lot of "
85 "memory as a result, and need to be restarted frequently.\n")))
86 m.add(T_(N_("Please upgrade '%s' to version %s or later."),
87 'gst-python', '0.10.3'))
88 result.add(m)
89
90 result.succeed(None)
91 return defer.succeed(result)
92
93
95 result = messages.Result()
96 import pygst
97 pygst.require('0.10')
98 import gst
99
100 if get_gst_version(gst) < (0, 10, 4, 1):
101 major, minor, micro, nano = get_gst_version(gst)
102 m = messages.Error(T_(
103 N_("Version %d.%d.%d of the GStreamer library is too old.\n"),
104 major, minor, micro),
105 mid='ticket-349')
106 m.add(T_(N_("The '%s' component needs a newer version of '%s'.\n"),
107 'looper', 'gstreamer'))
108 m.add(T_(N_("Please upgrade '%s' to version %s or later."),
109 'gstreamer', '0.10.5'))
110 result.add(m)
111
112 if get_pygst_version(gst) < (0, 10, 3, 1):
113 major, minor, micro, nano = get_pygst_version(gst)
114 m = messages.Error(T_(
115 N_("Version %d.%d.%d of the gst-python library is too old.\n"),
116 major, minor, micro),
117 mid='ticket-349')
118 m.add(T_(N_("The '%s' component needs a newer version of '%s'.\n"),
119 'looper', 'gst-python'))
120 m.add(T_(N_("Please upgrade '%s' to version %s or later."),
121 'gst-python', '0.10.4'))
122 result.add(m)
123
124 result.succeed(None)
125 return defer.succeed(result)
126