Broken Binary Compatibility in 3.1.0

David Faure dfaure at klaralvdalens-datakonsult.se
Tue Feb 11 21:07:38 GMT 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tuesday 11 February 2003 21:50, Aaron J. Seigo wrote:
> On Tuesday 11 February 2003 01:05, George Staikos wrote:
> > - Renaming modules that are loaded by others (like KControl module names!
> > Yes this happened, and broke 3rd party applications!)
> 
> hrm... i wasn't aware that the names of kcontrol modules were guarenteed to
> remain constant, nor was it mentioned in any of the discussions around the
> (many) changes made (by many people) ... is this documented somewhere?

No, not more than we document anywhere that the binary name for Konqueror
is called "konqueror". Still, we can expect that people rely on it :)

> > (without breaking the new names too).  Third party apps that run "kcmshell
> > <modulename>" are the ones in question, not what the user sees in the
> > KControl GUI.
> 
> what is an accepted use of launching kcontrol modules directly via kcmshell
> from third party applications? 

kcmshell <modulename> is fine (if we stick to those names in the future).
kcmshell relative/path/modulename is wrong (since users and distros can move
items around). Which makes me think the output of kcmshell --list is misleading...

> i can understand programs doing this if the
> control panel belongs to that application, but am curious about these third
> party apps and which panels are relied on by third party apps...

For instance crossover used to launch "kcmshell plugins". But this broke
with KDE-3.1., where it has to launch "kcmshell khtml_plugins".

Of course I can't say if many more 3rd-party apps do the same, the crossover
case is the only one I heard about.

> given the rather non-static nature of kcontrol (one panel has already
> disappeared in HEAD since 3.1), would it be better to encourage a more
> dynamic method of launching KDE control panels akin to the startServiceBy
> methods?
? That's the same...
startServiceByDesktopName is exactly like kcmshell <modulename>
startServiceByDesktopPath  is exactly like kcmshell relative/path/modulename
startServiceByName - breaks with i18n, no go.

One needs a way to identify a kcontrol module in a unique way ... this is what
the modulename is used for in kcmshell, and the filename (usually that's the same)
in the case of startServiceBy*.

- -- 
David Faure -- faure at kde.org, dfaure at klaralvdalens-datakonsult.se
Klarälvdalens Datakonsult AB, Platform-independent software solutions
Contributing to: http://www.konqueror.org/, http://www.koffice.org/
KOffice-1.2.1 is available - http://download.kde.org/stable/koffice-1.2.1/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE+SWYa72KcVAmwbhARAoBXAJ9nowLwIClcW57Qmhb5FU4iII0UZQCeP5qY
bpNNxeQ0+VrXzvLvIihCf7Q=
=TED0
-----END PGP SIGNATURE-----





More information about the kde-core-devel mailing list