[tpm] DBus woes

Scott Elcomb psema4 at gmail.com
Thu Jan 27 12:19:13 PST 2011

Hi all,

I'd like to start working with Desktop Couch[1], the DBus + CouchDB
service behind Ubuntu One[2].

As I haven't really worked with DBus before I'm a bit stuck; before I
go off to bug the desktopcouch list I'd like to make sure I understand
the Perl side of the issue.

Here's a really simple little script that is supposed to retrieve the
port # on which the current user's desktopcouch instance is listening.

[-- sample starts --]
#!/usr/bin/env perl

use strict;
use warnings;
use Net::DBus;

# shell example:
#   dbus-send --session \
#   --dest=org.desktopcouch.CouchDB \
#   --print-reply \
#   --type=method_call / org.desktopcouch.CouchDB.getPort

my $port_number = -1;

my $svc_object = Net::DBus->session

# Doesn't work because $svc_object has no interface
# $port_number = $svc_object->getPort();

print "Desktop CouchDB is running on port: $port_number\n";
[-- sample ends --]

The desktopcouch specs page[1] refers developers to couchdb-glib[3]
and (for Perl devs) to Glib::Object::Introspection[4].  On the surface
it looks to me like [4] should fix the missing interface issue but I'm
unsure on how to proceed... I much prefer working with pure perl
modules and have never needed to wrap a C library before.

Any help or pointers would be most appreciated.

- Scott.

[1] <http://freedesktop.org/wiki/Specifications/desktopcouch>
[2] <https://one.ubuntu.com/>
[3] <https://launchpad.net/couchdb-glib>
[4] <http://live.gnome.org/GTK2-Perl/Introspection>
  Scott Elcomb
  http://www.psema4.com/   @psema4

  Member of the Pirate Party of Canada

More information about the toronto-pm mailing list