[Kde-bindings] Ruby Plasmoid article

Declan McGrath declan at frogface.org
Fri Aug 8 09:39:20 UTC 2008


On Friday 08 August 2008 10:32:34 Thomas Moenicke wrote:
> On Aug 8, 2008, at 10:11 AM, Declan McGrath wrote:
> > On Wednesday 06 August 2008 12:28:05 Richard Dale wrote:
> >> On Wednesday 06 August 2008 10:46:28 Richard Dale wrote:
> >>> On Wednesday 06 August 2008 03:33:39 Sebastian Sauer wrote:
> >>>> forwarded to kde-bindings at kde.org since probably someone there
> >>>> knows
> >>>> why Ruby Plasma Applets don't work any longer?! Looks as something
> >>>> essential was changed right after our bindings-sprint and before
> >>>> the
> >>>> 4.1.0 release (yay, I love feature-freezes).
> >>>>
> >>>> On Wednesday 06 August 2008, Sebastian Sauer wrote:
> >>>>> On Saturday 02 August 2008, Declan McGrath wrote:
> >>>>>> Hi Sebastian,
> >>>>>
> >>>>> and hi Declan,
> >>>>>
> >>>>> first sorry for the long time till I replied. I am atm quit busy
> >>>>> with
> >>>>> so much things that it's hard to react on more complex things in
> >>>>> realtime ;)
> >>>>>
> >>>>>> Loved your article on the Ruby Plasmoids at
> >>>>>> http://techbase.kde.org/Development/Tutorials/Plasma/RubyApplet.
> >>>>>> Thanks!
> >>>>>
> >>>>> Thank you too! Feedback is a rather useful thing since it shows
> >>>>> that
> >>>>> it's really worth and needed(!!!) to write such tutorials.
> >>>>>
> >>>>>> I had a couple of difficulties whilst trying to get the
> >>>>>> tutorial to
> >>>>>> work though. I've put up a blog post on my site at
> >>>>>> http://www.theirishpenguin.com/2008/08/02/getting-ruby-plasmoids-up
> >>>>>> -a nd -r un ning-in-kde-41-on-kubuntu
> >>>>>
> >>>>> wow.
> >>>>>
> >>>>>> The main issue I had was around the CMakeLists.txt file
> >>>>>> initially.
> >>>>>> But now I'm stuck getting a 'findServiceByDesktopPath:  not
> >>>>>> found'
> >>>>>> error when trying to run the plasmoid? Everything seems to have
> >>>>>> installed correctly.
> >>>>>>
> >>>>>> Once I get it working I can tidy up my blog post or perhaps
> >>>>>> better
> >>>>>> still migrate some of the content into your Techbase wiki article
> >>>>>> to add a little more explananation to things like cmake and how
> >>>>>> to
> >>>>>> install the plasmoid.
> >>>>>
> >>>>> uhm, seems I get something similar now;
> >>>>>
> >>>>> plasmoidviewer(20804)/libplasma Plasma::isPluginVersionCompatible:
> >>>>> plugin is compiled against incompatible Plasma version
> >>>>> 4294967295
> >>>>> plasmoidviewer(20804)/libplasma
> >>>>> Plasma::ContainmentPrivate::addApplet: Applet
> >>>>> "plasma-ruby-web-applet" could not be loaded.
> >>>>> findServiceByDesktopPath:  not found
> >>>>>
> >>>>> The interesting part here is the "incompatible Plasma version"
> >>>>> which
> >>>>> was not the case ~2 weeks ago :-/
> >>>>> hmmm... since I use trunk I try to recompile bindings right now
> >>>>> what
> >>>>> may take a while. Else I would suggest to ask at the kde-bindings
> >>>>> mailinglist (http://www.kde.org/mailinglists/) where more
> >>>>> developers
> >>>>> hang around ;)
> >>>>
> >>>> I keep to get that error in trunk too :-/
> >>>
> >>> The C++ clock .desktop file has this line in it:
> >>>
> >>> X-KDE-PluginInfo-Version=pre0.1
> >>>
> >>> Does adding that to the ruby applet's .desktop make it work? But we
> >>> really should be switching to the ScriptEngine based api for Ruby
> >>> applets. I haven't had time to convert some examples and generally
> >>> try it
> >>> out yet though.
> >>
> >> I've confirmed that script engine based ruby plasmoids don't have any
> >> versioning problem at the moment, although C++ style Ruby plasmoids
> >> do.
> >>
> >> I've done some more investigating and found out what the problem
> >> is. There
> >> is a macro you can add to a compiled C++ plugin that gives its
> >> version
> >> number. But the krubypluginfactory.cpp source doesn't have it
> >> because it is
> >> supposed to work for any KDE plugin. Which is a bit of a problem.
> >> So as a
> >> workround you can add these lines to kpluginfactory.cpp to get just
> >> plasma
> >> plugins working:
> >>
> >> Index: krubypluginfactory.cpp
> >> ===================================================================
> >> --- krubypluginfactory.cpp      (revision 842545)
> >> +++ krubypluginfactory.cpp      (working copy)
> >> @@ -93,6 +93,8 @@
> >>         static QByteArray camelize(QByteArray name);
> >> };
> >> K_EXPORT_PLUGIN(KRubyPluginFactory)
> >> +#include <plasma/version.h>
> >> +K_EXPORT_PLUGIN_VERSION(PLASMA_VERSION)
> >>
> >> KRubyPluginFactory::KRubyPluginFactory()
> >>
> >>     : KPluginFactory() // no useful KComponentData object for now
> >>
> >> The macro looks like this:
> >>
> >> #define K_EXPORT_PLUGIN_VERSION(version) \
> >> Q_EXTERN_C KDE_EXPORT const quint32 kde_plugin_version = version;
> >>
> >> So what we will need to do is to be able to set
> >> 'kde_plugin_version' for an
> >> individual plugin at runtime, by reading the value from somewhere
> >> in the
> >> directory where the plugin Ruby code is installed. Maybe a one line
> >> text
> >> file called 'KDE_PLUGIN_VERSION' or something? We have the same
> >> problem
> >> with C# plugins too.
> >
> > Hi all,
> >
> > Thanks for the update on this which was confusing the hell out of
> > me. What do
> > I need to do to get the Ruby bindings working on my desktop (running
> > Kubuntu
> > Hardy with KDE 4.1.0)? As you are mentioning .cpp files I take it
> > that some
> > sort of a recompile would be necessary. As I'm not familiar with
> > doing that
> > will this fix be released soon into a future version of KDE?
> >
> > Also, you mentioned Script Engine vs C++ style plasmoids. Am I
> > correct in
> > assuming that the the problems mentioned above affect only the C++
> > style?
> >
> > If the Script Engine style is better is there any good resources
> > that I can
> > use to switch to using this for my Ruby plasmids? I'd be happy to
> > help out
> > with a TechBase tutorial article or two, time permitting.
> >
> > Anyway, keep up the great work. KDE 4.1.0 is fantastic (despite my
> > Ruby
> > binding issues :-)
> >
> > All the best,
> > Declan
>
> how about I explain that to you next time at the Longstone Pub :)


Ha ha! Small world eh? We'll have to start a special KDE-bindings nite at the 
Longstone :)



More information about the Kde-bindings mailing list