From: Thomas L. <ta...@ec...> - 2006-02-27 08:09:40
|
D-BUS is causing lots of problems with the constantly-changing API. And now, Debian/unstable no longer contains Python bindings for the default Python! I've been thinking about replacing it with a system like the one used in ROX-Filer (SOAP-over-X). I spent a few minutes looking at it, and it should be pretty trivial to support this in ROX-Lib using XML-RPC-over-X (XML-RPC is easier because a) Python includes support built-in and b) SOAP has become rather bloated over the years). Using X instead of a separate message bus process saves us a daemon, and using X rather than sockets avoids some security problems. It also means that programs running on different machines can communicate. It will be a little slower than D-BUS, but for our use (logging out and setting configuration values) it won't any difference. The ROX-Filer mechanism has worked very well, and we've been able to add new methods and new arguments over the years without breaking backwards compatibility. If we make the API similar to D-BUS (with namespaced services and objects) then we should be able to switch to D-BUS later if it ever stabilises. Thoughts? -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Tony H. <h...@re...> - 2006-02-27 12:45:34
Attachments:
forcepy2.4
|
In <pan...@ec...>, Thomas Leonard wrote: > D-BUS is causing lots of problems with the constantly-changing API. And > now, Debian/unstable no longer contains Python bindings for the default > Python! I've managed to make it work by forcing all the ROX scripts to use Python 2.4. The attached script helps if everything's in Apps; it would need changing slightly for 0install users. -- TH * http://www.realh.co.uk |
From: Ken H. <ke...@ha...> - 2006-02-27 15:34:54
|
Thomas Leonard wrote: > D-BUS is causing lots of problems with the constantly-changing API. And > now, Debian/unstable no longer contains Python bindings for the default > Python! > > I've been thinking about replacing it with a system like the one used in > ROX-Filer (SOAP-over-X). I spent a few minutes looking at it, and it > should be pretty trivial to support this in ROX-Lib using XML-RPC-over-X > (XML-RPC is easier because a) Python includes support built-in and b) SOAP > has become rather bloated over the years). > > Using X instead of a separate message bus process saves us a daemon, and > using X rather than sockets avoids some security problems. It also means > that programs running on different machines can communicate. It will be a > little slower than D-BUS, but for our use (logging out and setting > configuration values) it won't any difference. > > The ROX-Filer mechanism has worked very well, and we've been able to add > new methods and new arguments over the years without breaking backwards > compatibility. > > If we make the API similar to D-BUS (with namespaced services and objects) > then we should be able to switch to D-BUS later if it ever stabilises. > > Thoughts I implemented a minimal python version of ROX's X-rpc in case you need it. It's on my web site and inside MusicBox. I tried python xml-rpc for MusicBox but it didn't work very well. Don't remember what part(s). I certainly understand the motivation for this. I think dbus itself has stabilized and is soon to go 1.0; the problem is most distros are WAY behind. Also, the coolest parts of the the python bindings require python 2.4, which also isn't exactly taking the distros by storm either. |
From: Thomas L. <ta...@gm...> - 2006-02-28 21:40:15
|
On 2/27/06, Ken Hayber <ke...@ha...> wrote: > Thomas Leonard wrote: > > D-BUS is causing lots of problems with the constantly-changing API. And > > now, Debian/unstable no longer contains Python bindings for the default > > Python! > I implemented a minimal python version of ROX's X-rpc in case you need > it. It's on my web site and inside MusicBox. > I tried python xml-rpc for MusicBox but it didn't work very well. Don't > remember what part(s). I'm only using xmlrpclib (dumps and loads). The code is actually very simple. I've made some changes so that ROX-Session will use it now. D-BUS should still be supported if present.Please test! -- Dr Thomas Leonard=09=09http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Matsumoto Y. <mat...@ho...> - 2006-03-01 04:20:05
|
>On 2/27/06, Ken Hayber <ke...@ha...> wrote: > > Thomas Leonard wrote: > > > D-BUS is causing lots of problems with the constantly-changing API. And > > > now, Debian/unstable no longer contains Python bindings for the default > > > Python! > > > I implemented a minimal python version of ROX's X-rpc in case you need > > it. It's on my web site and inside MusicBox. > > I tried python xml-rpc for MusicBox but it didn't work very well. Don't > > remember what part(s). > >I'm only using xmlrpclib (dumps and loads). The code is actually very >simple. I've made some changes so that ROX-Session will use it now. >D-BUS should still be supported if present.Please test! ROX-Session still not work with dbus-0.33 and python 2.4. # python mydbus.py Traceback (most recent call last): File "mydbus.py", line 10, in ? if hasattr(dbus, 'version') and dbus.version >= (0, 40, 0): NameError: name 'dbus' is not defined This should be checked with following? if 'version' in globals() and version >= (0, 40, 0): Thanks. - Yasuhiro Matsumoto |
From: Thomas L. <ta...@ec...> - 2006-03-02 21:06:04
|
On Wed, 01 Mar 2006 13:19:55 +0900, Matsumoto Yasuhiro wrote: >X-Session still not work with dbus-0.33 and python 2.4. > > # python mydbus.py > Traceback (most recent call last): > File "mydbus.py", line 10, in ? > if hasattr(dbus, 'version') and dbus.version >= (0, 40, 0): > NameError: name 'dbus' is not defined > > This should be checked with following? > > if 'version' in globals() and version >= (0, 40, 0) Oops. Fixed - thanks! -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Matsumoto Y. <mat...@ho...> - 2006-03-03 00:47:29
|
Thomas Leonard - > >X-Session still not work with dbus-0.33 and python 2.4. > > > > # python mydbus.py > > Traceback (most recent call last): > > File "mydbus.py", line 10, in ? > > if hasattr(dbus, 'version') and dbus.version >= (0, 40, 0): > > NameError: name 'dbus' is not defined > > > > This should be checked with following? > > > > if 'version' in globals() and version >= (0, 40, 0) > >Oops. Fixed - thanks! Thanks for fix it. But still not work... http://hp.vector.co.jp/authors/VA020411/patches/rox-dbus-error.jpg dbus 0.33 don't have sys.modules['dbus.service']. Thanks. - Yasuhiro Matsumoto |
From: Matsumoto Y. <mat...@ho...> - 2006-03-03 01:51:28
|
>Thomas Leonard - >> >X-Session still not work with dbus-0.33 and python 2.4. >> > >> > # python mydbus.py >> > Traceback (most recent call last): >> > File "mydbus.py", line 10, in ? >> > if hasattr(dbus, 'version') and dbus.version >= (0, 40, 0): >> > NameError: name 'dbus' is not defined >> > >> > This should be checked with following? >> > >> > if 'version' in globals() and version >= (0, 40, 0) >> >>Oops. Fixed - thanks! > >Thanks for fix it. >But still not work... > >http://hp.vector.co.jp/authors/VA020411/patches/rox-dbus-error.jpg > >dbus 0.33 don't have sys.modules['dbus.service']. I wrote a patch for this problem. It seems 0.33 is broken? http://hp.vector.co.jp/authors/VA020411/patches/rox-session-dbus-0.33-v4.diff Please check. If you accept and include this patch, please change the name of "settings33.py". Thanks. - Yasuhiro Matsumoto |
From: Thomas L. <ta...@ec...> - 2006-03-04 11:10:42
|
On Fri, 03 Mar 2006 10:51:21 +0900, Matsumoto Yasuhiro wrote: > I wrote a patch for this problem. > It seems 0.33 is broken? > > http://hp.vector.co.jp/authors/VA020411/patches/rox-session-dbus-0.33-v4.diff > > Please check. Looks good. > If you accept and include this patch, please change the name of > "settings33.py". What should it be called, then? -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Matsumoto Y. <mat...@ho...> - 2006-03-04 14:15:12
|
>From: Thomas Leonard <ta...@ec...> >To: rox...@li... >Subject: [rox-devel] RE: Re: D-BUS replacement >Date: Sat, 04 Mar 2006 11:10:18 +0000 > >On Fri, 03 Mar 2006 10:51:21 +0900, Matsumoto Yasuhiro wrote: > > > I wrote a patch for this problem. > > It seems 0.33 is broken? > > > > http://hp.vector.co.jp/authors/VA020411/patches/rox-session-dbus-0.33-v4.diff > > > > Please check. > >Looks good. > > > If you accept and include this patch, please change the name of > > "settings33.py". > >What should it be called, then? This patch will work with 0.32 and 0.34. Hmm, how about 'settings3b.py' what mean broken? :-) Thanks. - Yasuhiro Matsumoto |
From: Thomas L. <ta...@ec...> - 2006-03-04 15:50:44
|
On Sat, 04 Mar 2006 23:15:04 +0900, Matsumoto Yasuhiro wrote: > This patch will work with 0.32 and 0.34. Hmm, how about 'settings3b.py' > what mean broken? :-) OK, I've used settings3b.py. Please test... I'll try to make a new release tomorrow. Other problems we might want to fix: - Need to kill D-BUS on logout. - Probably should have methods to get/set multiple properties at once, since XML-RPC over X is slower than D-BUS. -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Ken H. <ke...@ha...> - 2006-03-04 17:02:20
|
Thomas Leonard wrote: > On Sat, 04 Mar 2006 23:15:04 +0900, Matsumoto Yasuhiro wrote: > > >> This patch will work with 0.32 and 0.34. Hmm, how about 'settings3b.py' >> what mean broken? :-) >> > > OK, I've used settings3b.py. > > Please test... I'll try to make a new release tomorrow. > > Other problems we might want to fix: > > - Need to kill D-BUS on logout. > > - Probably should have methods to get/set multiple properties at once, > since XML-RPC over X is slower than D-BUS. > I just grabbed the svn latest and it contains the settings3b.py, so I guess it is current. I'm on Gentoo x86 with dbus 0.60. When I try this ROX-Session I get an error in main.py:134 that dbus does not have 'broken_dbus3x'. I tracked the problem down to this Python 2.4.2 (#1, Feb 14 2006, 07:55:13) [GCC 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import session_dbus >>> import mydbus as dbus >>> dbus.broken_dbus3x False >>> import dbus.service >>> dbus.broken_dbus3x Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'module' object has no attribute 'broken_dbus3x' >>> So, later at line 134, broken_dbus3x no longer exists and I get the error. I have no idea how to fix this. Is there a simple way to make this new version just ignore dbus and just use the new xxmlrpc? Thx, Ken |
From: Thomas L. <ta...@ec...> - 2006-03-04 17:15:54
|
On Sat, 04 Mar 2006 09:02:04 +0000, Ken Hayber wrote: > So, later at line 134, broken_dbus3x no longer exists and I get the error. > I have no idea how to fix this. > > Is there a simple way to make this new version just ignore dbus and just > use the new xxmlrpc? I think you're right. This is becoming unmanagable. Would anyone seriously object if I removed D-BUS support completely for the next version? To answer your question, just replace mydbus.py with: broken_dbus3x = False dbus_version = None -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Ken H. <ke...@ha...> - 2006-03-04 17:41:48
|
Thomas Leonard wrote: > On Sat, 04 Mar 2006 09:02:04 +0000, Ken Hayber wrote: > > >> So, later at line 134, broken_dbus3x no longer exists and I get the error. >> I have no idea how to fix this. >> >> Is there a simple way to make this new version just ignore dbus and just >> use the new xxmlrpc? > > I think you're right. This is becoming unmanagable. Would anyone seriously > object if I removed D-BUS support completely for the next version? > Well, we also have to think about the Configlets. Can you make a ROX-Settings module (Tony H's settings.py?) that can be switched between xxmlrpc and some future theoretically stable dbus? > To answer your question, just replace mydbus.py with: > > broken_dbus3x = False > dbus_version = None > I also had to remove ~8 lines from main.py starting with 'try:\n\timport dbus.service...' but it is running OK now. |
From: Thomas L. <ta...@gm...> - 2006-03-04 18:18:16
Attachments:
settings.py
|
On 3/4/06, Ken Hayber <ke...@ha...> wrote: > Thomas Leonard wrote: [...] > > I think you're right. This is becoming unmanagable. Would anyone seriou= sly > > object if I removed D-BUS support completely for the next version? > > > Well, we also have to think about the Configlets. Can you make > a ROX-Settings module (Tony H's settings.py?) that can be switched > between xxmlrpc and some future theoretically stable dbus? Attached is one that works with xxmlrpc. It exposes the same interface as the D-BUS one to config applets. This is from LookAndFeel. Some applet have added extra functions to their copies, so dropping it over the top might not work without a bit of merging. We should move this stuff to ROX-Lib anyway. -- Dr Thomas Leonard=09=09http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Stephen W. <st...@ke...> - 2006-03-04 18:31:52
|
Thomas Leonard <ta...@ec...> wrote: > This is becoming unmanagable. Would anyone seriously > object if I removed D-BUS support completely for the next version? Given that the problem is supporting multiple versions of D-Bus, but that 0.35 onwards seems stable (code written under 0.35.2 works unchanged under 0.50 for example), how about dropping support for pre 0.35 (dbus.version>=(0,42,0))? Assuming the plan is still to support D-Bus when it is stable. In any case, starting (and stopping!) the session daemon, whether or not we use it, would be a good idea. -- Stephen Watson http://www.kerofin.demon.co.uk/ If you read this on a mailing list, send any reply back to the list and not to me. Not even CC. I'm really glad that worked. Those would have been terrible last words. |
From: Thomas L. <ta...@gm...> - 2006-03-05 14:01:09
|
On 3/4/06, Stephen Watson <st...@ke...> wrote: > Given that the problem is supporting multiple versions of D-Bus, but that > 0.35 onwards seems stable (code written under 0.35.2 works unchanged unde= r > 0.50 for example), how about dropping support for pre 0.35 > (dbus.version>=3D(0,42,0))? Assuming the plan is still to support D-Bus = when > it is stable. OK, done! > In any case, starting (and stopping!) the session daemon, whether or not = we > use it, would be a good idea. Also fixed (hopefully). Please test... -- Dr Thomas Leonard=09=09http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Ken H. <ke...@ha...> - 2006-03-05 02:09:53
|
Thomas Leonard wrote: > On 3/4/06, Ken Hayber <ke...@ha...> wrote: > >> Thomas Leonard wrote: >> > [...] > >>> I think you're right. This is becoming unmanagable. Would anyone seriously >>> object if I removed D-BUS support completely for the next version? >>> >>> >> Well, we also have to think about the Configlets. Can you make >> a ROX-Settings module (Tony H's settings.py?) that can be switched >> between xxmlrpc and some future theoretically stable dbus? >> > > Attached is one that works with xxmlrpc. It exposes the same interface > as the D-BUS one to config applets. This is from LookAndFeel. Some > applet have added extra functions to their copies, so dropping it over > the top might not work without a bit of merging. We should move this > stuff to ROX-Lib anyway. > Did I miss something somewhere? I dragged xxmlrpc.py from Session to ROX-Lib2/python/rox and settings.py into LookAndFeel. But I get a 'can't connect to Session' error message. Is there another xxmlrpc.py that I should be using? |
From: Thomas L. <ta...@gm...> - 2006-03-06 08:32:48
|
On 3/4/06, Ken Hayber <ke...@ha...> wrote: > Did I miss something somewhere? I dragged xxmlrpc.py from Session to > ROX-Lib2/python/rox It should already be there (in the svn copy). > and settings.py into LookAndFeel. But I get a > 'can't connect to Session' error message. Sorry, settings.py should say: =09rox_session =3D xxmlrpc.XXMLProxy('net.sf.rox.Session') I changed the name of the service to match the D-BUS one. -- Dr Thomas Leonard=09=09http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Thomas L. <ta...@gm...> - 2006-02-27 18:13:26
|
I've put a little proof-of-concept in ROX-Lib (subversion). To test it: $ cd ROX-Lib2/tests/python ./testxxmlrpc.py It doesn't return values yet, but that should be simple enough. With that, it would probably enough for ROX-Session. I think we could support both at once (and if dbus fails to initialise then silently ignore it). -- Dr Thomas Leonard=09=09http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |
From: Lars H. <la...@un...> - 2006-02-28 02:37:13
|
I'm kinda split on the issue. On one hand DBUS is a really nice concept that has some really nice possibilities. On the other hand it's a royal pain for applications to keep up with the API changes and I cant get the Python bindings to build on OpenBSD anymore (something with type declarations that I dont know how to fix within Pyrex. Why isnt it a pure Python implementation anyway?). DBUS also feels a bit overengineered to me. If the xml-rpc stuff is designed to match DBUS (namespaces and such) closely I dont see any problem though and xml-arpc sure is a lot easier to work with from a Python standpoint. --- Lars Hansson |