Jirka Klimes
2011-03-21 09:46:09 UTC
Hello,
I'd like to bring your attention to KNM and to the effort to make it work
with new NM 0.9.
As you probably know NetworkManager 0.9 will be released shortly.
It changes its API and KNM has to be adapted to work with that.
http://projects.gnome.org/NetworkManager/developers/migrating-to-09/
The migration document describes what has changed and what should be done
in applications.
The main change is removing user setting service and using just one (system)
setting service. But KNM doesn't support system connections. Luckily G?k?en
Eraslan implemented that some time ago in his clone:
http://quickgit.kde.org/?p=clones%2Fnetworkmanagement%2Fgokcen%2Fnetworkmanagement.git&a=shortlog&h=refs/heads/systemwide
The branch also contains other changes/fixes that may be interesting.
I did some tests to try whether KNM could work with new KNM and has been
successful to some extent (basic functionality work: listing connections,
activating, deactivating).
I cherry-picked some commits relating to system-wide connections from the
G?k?en repo and applied them on KNM master branch and tested them a bit. They
appear to work.
And then I started to do some changes related to migration for NM 0.9.
I basically did this:
* generated proxy for org.freedesktop.NetworkManager interface
(Activate/DeactivateConnection(), ...)
- the methods removes "service" argument
* updated introspection and generated proxy for
org.freedesktop.NetworkManager.Connection.Active interface
* accomodate device/connection states
* fix listing connecions
* some other fixes
* I did *not* removeed unnecessary code (yeah, there will be more removals
then additions)
* I did *not* implement a secrets agent
Basically, I bypasses Solid::Control where things changed instead of adapting
it.
All what I did are just quick changes trying to make things work. And it is by
no means complete.
It is also quite hard for me to follow the code due to many abstractions
layers, backends, unnecessary complexity. And due tomy lack of familiarity
with KDE/Qt stuff, of course. I feel that I'm not able to do the transition to
NM 0.9 myself. Also i's not clear how the changes should be managed because
the KNM design will probably (and hopefully) change. So, it would be helpful
if some KDE guys could step in and drive the adaption of design and transition
to NM 0.9.
Luckily, Will Stephenson already started a libnm-qt (similar to libnm-glib),
that will hopefully remove Solid::Control, backends and other redundant
layers, and will simplify the design. Also Likas Tinkl expressed a will to
work on libnm-qt to get it into shape. The library is not public yet, though
and I haven't seen it.
Cheers,
Jirka
PS:
- Please see attached patches with my changes and test (based on master
branch)
- Sorry for not pushing that to a branch, but I don't have an account yet.
(Is it possible to create some scratch branches on anongit or something?)
I'd like to bring your attention to KNM and to the effort to make it work
with new NM 0.9.
As you probably know NetworkManager 0.9 will be released shortly.
It changes its API and KNM has to be adapted to work with that.
http://projects.gnome.org/NetworkManager/developers/migrating-to-09/
The migration document describes what has changed and what should be done
in applications.
The main change is removing user setting service and using just one (system)
setting service. But KNM doesn't support system connections. Luckily G?k?en
Eraslan implemented that some time ago in his clone:
http://quickgit.kde.org/?p=clones%2Fnetworkmanagement%2Fgokcen%2Fnetworkmanagement.git&a=shortlog&h=refs/heads/systemwide
The branch also contains other changes/fixes that may be interesting.
I did some tests to try whether KNM could work with new KNM and has been
successful to some extent (basic functionality work: listing connections,
activating, deactivating).
I cherry-picked some commits relating to system-wide connections from the
G?k?en repo and applied them on KNM master branch and tested them a bit. They
appear to work.
And then I started to do some changes related to migration for NM 0.9.
I basically did this:
* generated proxy for org.freedesktop.NetworkManager interface
(Activate/DeactivateConnection(), ...)
- the methods removes "service" argument
* updated introspection and generated proxy for
org.freedesktop.NetworkManager.Connection.Active interface
* accomodate device/connection states
* fix listing connecions
* some other fixes
* I did *not* removeed unnecessary code (yeah, there will be more removals
then additions)
* I did *not* implement a secrets agent
Basically, I bypasses Solid::Control where things changed instead of adapting
it.
All what I did are just quick changes trying to make things work. And it is by
no means complete.
It is also quite hard for me to follow the code due to many abstractions
layers, backends, unnecessary complexity. And due tomy lack of familiarity
with KDE/Qt stuff, of course. I feel that I'm not able to do the transition to
NM 0.9 myself. Also i's not clear how the changes should be managed because
the KNM design will probably (and hopefully) change. So, it would be helpful
if some KDE guys could step in and drive the adaption of design and transition
to NM 0.9.
Luckily, Will Stephenson already started a libnm-qt (similar to libnm-glib),
that will hopefully remove Solid::Control, backends and other redundant
layers, and will simplify the design. Also Likas Tinkl expressed a will to
work on libnm-qt to get it into shape. The library is not public yet, though
and I haven't seen it.
Cheers,
Jirka
PS:
- Please see attached patches with my changes and test (based on master
branch)
- Sorry for not pushing that to a branch, but I don't have an account yet.
(Is it possible to create some scratch branches on anongit or something?)