migration to NM 0.9 and ask for help

Jirka Klimes jklimes at redhat.com
Mon Mar 21 10:46:09 CET 2011


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?)


More information about the kde-networkmanager mailing list