Hi,

2013/1/24 Martyn Russell <mar...@lanedo.com>:
> On 24/01/13 14:37, Frank Lahm wrote:
>> ---8<---
>> root@solaris:~# echo $DBUS_SESSION_BUS_ADDRESS
>> unix:path=/tmp/spotlight.ipc
>> root@solaris:~# /opt/tracker/bin/tracker-control -S
>> Store:
>> 24 Jan 2013, 15:32:37:  ✓     Store                - Idle
>>
>> Miners:
>> 24 Jan 2013, 15:32:37:  ✗     Dateisystem          - Not running or is
>> a disabled plugin
>> 24 Jan 2013, 15:32:37:  ✗     Anwendungen          - Not running or is
>> a disabled plugin
>>
>> root@solaris:~# ps auxwww | grep tracker
>> root      8223  0.1  0.23940019184 ?        S 15:32:03  0:00
>> /opt/tracker/libexec/tracker-store
>> root      8269  0.0  0.0 8908 1456 pts/3    S 15:32:57  0:00 grep tracker
>> ---8<---
>> Note that tracker-store IS running, just not the miners.
>
>
> Yea. Are you starting the store via the miner-fs instigation? or yourself?

With tracker-control -s.

>>> 3. Are you able to test other dbus programs with your session and can
>>> they
>>> "register"?
>>
>>
>> I'm really new to dbus, could you give me a hint at an example program?
>
>
> Yea, you can try the server/client here (might be out of date, and needs
> Python):
>
>   http://cgit.freedesktop.org/dbus/dbus-python/tree/examples

Thanks, learning Python and dbus on the fly, I was able to write
(well, really copy and paste) a simple tracker-miner-fs replacement
which can be activated and called from a python interactive shell.
This is the tracker-miner-fs replacement:
---8<---
#!/usr/bin/env python
import gobject
import dbus
import dbus.service
import dbus.mainloop.glib

class ExampleObject(dbus.service.Object):
    @dbus.service.method("org.freedesktop.Tracker1.Miner.Files",
                          in_signature='', out_signature='s')
    def Ping(self):
        return str("Hi. I am Alive")

if __name__ == '__main__':
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    session_bus = dbus.SessionBus()
    name = dbus.service.BusName("org.freedesktop.Tracker1.Miner.Files",
session_bus)
    name2 = dbus.service.BusName("org.freedesktop.Tracker1.Miner.Applications",
session_bus)
    object = ExampleObject(session_bus, '/ExampleObject')

    mainloop = gobject.MainLoop()
    mainloop.run()
---8<---

I can interact with this just fine from a Python shell:

root@solaris:~# env | egrep 'TRACKER|DBUS|XDG'
TRACKER_EXTRACTOR_RULES_DIR=/opt/tracker/share/tracker/extract-rules
TRACKER_DB_ONTOLOGIES_DIR=/opt/tracker/share/tracker/ontologies
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/spotlight.ipc
XDG_DATA_DIRS=/opt/tracker/share/:/usr/share/
TRACKER_LANGUAGE_STOPWORDS_DIR=/opt/tracker/share/tracker/languages

root@solaris:~# python
Python 2.6.8 (unknown, Aug 30 2012, 01:56:38) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbus
>>> bus = dbus.SessionBus()
>>> remote_object = 
>>> bus.get_object("org.freedesktop.Tracker1.Miner.Files","/ExampleObject")
>>> interface = 
>>> dbus.Interface(remote_object,'org.freedesktop.Tracker1.Miner.Files')
>>> reply = interface.Ping()
>>> print reply
Hi. I am Alive
>>>

>>> A test program to do this should be only a few lines of code.
>>
>>
>> Well, ok, lets get down and dirty. By chance, can you share a link to
>> a good online ressource or similar.
>
> Try the above first ;)

The Python examples from freedesktop work just fine too... :/

Would it help running tracker-miner-fs from gdb?

Thanks!
-f
_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
https://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to