Spotlight support

David Disseldorp ddiss at
Thu Apr 10 06:33:52 MDT 2014

Hi Ralph,

On Thu, 10 Apr 2014 13:42:48 +0200, Ralph Böhme wrote:

> Hi!
> For all interested in Samba supporting Spotlight for OS X clients:
> <>
> is already working as far as correctly replying to queries from
> clients. \o/

Great, nice work!

> Samba acts as a proxy fowarding search queries to Gnome Tracker after
> mapping Apple's Spotlight query language to SPARQL.

Oh, I naively thought that Spotlight made use of the Windows Search
Protocol (MS-WSP) to query the remote indexing service. Skimming through
the code it looks like a separate named pipe (mdssvc) is used, with
presumably a different protocol.  How does Apple's protocol differ?
Is it at all documented?

> IPC between Samba and the Tracker store is done via dbus in the
> relevant tracker library (libtracker-sparql). As all but the very
> latest Tracker version register services in DBUS user context, I have
> to use a bit of a hack in order to
> - run Tracker in root DBUS user context
> - pair every call to tracker in Samba within
>   become_root()/unbecome_root()
> Latest Tracker 1.0 adds support for registering Tracker in DBUS system
> context, which will allow for a cleaner integration in the future.
> Usage:
> - install tracker and libtracker-sparql-dev (or whatever it's called
>   on your system)
> - use a script like the following for starting Samba and a "private"
>   dbus instance: <>
> - install a dbus-session.conf file in the location referenced in the
>   start script and adust path in listen directive:
>   <>
> - configure samba with --enable-spotlight
> Comments welcome :-)

I'll take a closer look in the coming days. Just a comment from
skimming through: please avoid the macros added with

They're generally frowned upon, as they affect control-flow (by jumping
a magic label), and also rely on externally defined variables.

Cheers, David

More information about the samba-technical mailing list