Contents |
Avahi Integration for Beagle Network Search
This project was merged with beagle and is available since 0.3.0. Checkout the details at Network Backend.
What is this project about?
Avahi Integration is Kyle Ambroff's Summer of Code project. Networked search is being implemented as two projects. Alexis Christoforides will be implementing the protocol, while Kyle will be focusing on broadcasting and automatic service discovery, in addition to updating the user applications to support network searches.
This project has several specific goals:
- Integrate Avahi into beagle to allow the broadcast its availability and automatically discover other remote beagle indexes.
- Allow the user to easily enable index advertizement, and set up secure search relationships between known hosts.
- Update the beagle user programs such as beagle-search to allow users to search indexes on multiple computers over the network.
The origional proposal is here.
Summer of Code Program Results
Google Summer of Code projects were due by 08:00 PST on August 21, 2006. I am not entirely satisfied with the work that I have produced, especially in the user interface components. But parts of it are working. The Beagle daemon will advertise its availability if you choose to share your search index, and will also advertise its authentication requirements if you choose to protect your index with a password.
The search preferences utility now has a simplified networking tab, that lets the user share his/her index with a custom name, and optionally protect it with a password. The user can also add and remove hosts that will be searched when available. The user can enter static hosts, or select any number of hosts from the dynamically populated icon_view. If the user tries to add a host without the avahi-daemon running, everything on the AddHostDialog is hidden except the area to enter static host information.
The BeagleClient library will now discover new hosts on the network every time you create a query. If the host matches an entry in the network configuration, then it will added to the query. Otherwise, it is ignored.
In the beagle graphical search tool, a message area can be shown to let the user know if there are new hosts on the network that are not registered in the configuration file. Users will also be able to search other computers at any time by performing a search of "All Computers" from the Search menu.
Getting the code
A tarball of the code that was submitted on the SoC deadline is available here, which contains a patch agains CVS, and some additional required files. I am still working on my development branch of beagle in the form of a bzr branch, which you can get by issuing the following command:
$ bzr branch http://icculus.org/beagle-avahi beagle-avahi
In addition to the normal dependencies, this branch also depends on Avahi, and the avahi-sharp bindings for Mono. To enable networking support, run the configure script with the '--enable-networking' option.
You can subscribe to my weblog, which is also syndicated on Planet Beagle, or see the Beagle Summer of Code mailing list for updates.
What now?
We are working to merge the code from Alexis Christoforides' Summer of Code project, and finishing up any loose ends. What is currently lacking is mature integration of networked searches into the beagle-search user interface. This is soon to come.
--Kwa 18:17, 27 May 2006 (EDT)






