Search This Blog

Friday, June 3, 2011

Plasma NM: NM-0.9 (status)

After answering a comment in bugs.kde.org I thought it would be usefull to make the text below more visible to everybody. Plasma NM version numbers are confusing users in this transition between NM-0.8.x and NM-0.9 so let me try to explain some things:

Today there are four Plasma NM versions:

1. Plasma NM for NM-0.8: this one have been in version 0.9 for several years now (even before NM-0.9 was announced), it is supported by us (Plasma NM developers) and is the Plasma NM version shipped by almost all distributions, usually with version 0.9 in its package version although it does *not* work with NM-0.9.

Plasma NM uses Solid's NetworkManager backend to talk to NetworkManager. The directory /usr/src/debug/kdebase-workspace-4.6.3/x86_64-redhat-linux-gnu/solid/networkmanager-0.7/ mentioned in the crash log in the bug entry is the Solid's backend, which is *not* part of Plasma NM source code. In despite of the 0.7 version number the Solid's backend works with both NM-0.7 and NM-0.8. I know, that is confusing already, but there is more...

2. Fedora's own solution to make Plasma NM (for *NM-0.8*) work with *NM-0.9*: this is an in house solution developed by Fedora to make #1 work with NM-0.9. This is the package the bug's reporter uses and it is not supported by us. Fedora guys created that solution because their release schedule did not allow them to wait for us (Plasma NM developers) to create an official solution and they had to ship NM-0.9 because gnome-shell's network management applet requires it. This version is a temporary solution and is going to be phased out when our official solution is ready.

So basicaly the bug's reporter's Plasma NM version 0.9, created to work with NetworkManager 0.8 and Solid's 0.7 backend, has been modified by Fedora guys to talk to NetworkManager 0.9 :-) That is confusing.

3. Plasma NM/branch nm09: this is our intermediate implementation for NM-0.9. Of course it is supported by us. As far as I know Fedora and Arch Linux are the only distributions that ship this version. Fedora 15 includes this one in kde-unstable repository and is the version they ship in Rawhide, the development branch of the next Fedora release.

Solid's 0.9 backend is included in Plasma NM/nm09 branch, so everything here is 0.9: Plasma NM version 0.9, created to work with NetworkManager 0.9 and Solid's 0.9 backend, talks to NetworkManager 0.9 :-) When everybody stops using NM-0.8 things are going to go back to normal, I hope.

4. Plasma NM/branch libnm-qt: this is going to be our official implemenation for NM-0.9. Of course this one is also supported by us, it is not ready yet, I have never tested it myself, and probably no distribution ships it. libnm-qt (version 0.9 I hope) is the replacement for Solid's NM backed 0.9 and simplifies the source code for us developers. There is no user visible differences between #3 and #4 since only the backend is different, the user interface is the same.

The last two are in development stage. I use #3 in my notebook with almost no problems. I just need to clean up the source code and fix one problem with system VPN connections (user VPN connections work). There is also some TODO's in #3 but most people probably do not need them yet and they can be implemented without disturbing users like we have been doing in master branch.

Some people asked me what version they should use. Well, #1 is the only one that works with NM-0.8 so there is no choice here. For NM-0.9 use #3, like me, since #4 is not ready yet. But there is a catch: #3 does not migrate NM-0.8 configuration to NM-0.9 format yet, so you will have to recreate all your connections, that is also the reason Fedora makes it available in kde-unstable instead of kde-testing repository. Since only Fedora ships #2, I think Fedora users should use #2 because there is no settings migration to be done like in #3 and #4. There is no migration between #3 to #4, they use the same configuration files.

I hope this explains the version number mess in Plasma NM. So basically NM-0.9 is our opportunity to make everything use the same version number.

Update: I have implemented in #3 the code to import the Plasma NM's configuration files used in #1 (NM-0.8), just do:

qdbus org.kde.networkmanagement /org/kde/networkmanagement org.kde.networkmanagement.ImportNm08Connections

The qdbus call above is one shot, you will have to restart kded4 to be able to trigger it again. The old configuration files are not deleted so that you can import the connections again, but if you delete the connection using Plasma NM's connection editor the secrets in kwallet will be deleted forever.

When the importer is well tested I am going to change the code to delete the old configuration files.

Update: importer is enabled by default now but old configuration files will not be deleted because of those two nasty bugs. NetworkManager calls our secret agent to save the wrong password, I do not know why that is happening. Last weekd I send an e-mail to NM mailing list asking for help but nobody has answered it yet.