Winter 2011 Handout - Package the Weave Server

From CDOT Wiki
Jump to: navigation, search

Status

This page status is: DONE.

Title

Package the Weave Server

Participants

Justin Morgan

Introduction

Weave is the server used by Mozilla Sync for synchronizing personal data (bookmarks, passwords, form values, and cookies) across multiple machines and architectures (Windows/Linux, Android, etc). It consists of two server components: sync-server and reg-server. Sync handles the data synchronization while Reg handles user registration and management.

The project has involved packaging Weave for the purposes of getting it included with the official Fedora repos. In order to do this the package has to successfully pass through the package review process.

Packaging Weave is significant as it allows individuals, groups, and companies to more easily run their own private weave server.

The goals for the project milestones thus far have been:

  • 0.1 - Documentation for the manual installation of Weave server.
  • 0.2 - Initial package release tested with mock and koji. Bugzilla request submitted for package review process.
  • 0.3 - Package completes review process and is ready for inclusion in the official Fedora repos.

Approach

The approach all along for the project has been to avoid separate installation of the sync-server and reg-server components and streamline the MySQL and Apache configuration required for setting up Weave. Because of this certain functionality is not enabled in the config files, such as SSL and Captcha.

For the MySQL streamlining a script has been developed for inclusion in the package to automate the creation of a database, three tables, and service account required for Weave to function. You can download/view the script here: [1].

The approach for the Apache config was to avoid touching the main httpd.conf file. To do this the package installs the weave.conf file in /etc/httpd/conf.d/ which the service will pick up after a successful restart. As SSL is not enabled in the packaged version the weave.conf consists only of Alias configuration and not SSL virtualhost.

Challenges

The initial challenge for the project was getting a manual installation of Weave to work. The current documentation for the Weave components sync-server and reg-server does not give exact dependencies required or certain client quirks. This is why milestone 0.1 dealt with creating new documentation for the install process.

The first versions of the Weave package did not experience many challenges as they used a custom-made tarball source with all of the necessary configurations and unneeded files stripped out. However, as the Fedora review process progressed it was made clear that the package needed to use the original upstream sources in order to pass the initial review. This was a challenge as the components have separate Mercurial upstream sources. To fix this the SPEC file had to be modified to pull and uncompress the upstream sources for both components and insert proper configurations (and removed what wasn't needed).

The current challenge the project faces is successfully completing the review process so Fedora users can download and use it.

Results

The results so far include the 0.1 milestone documentation, and the current version of the package developed thus far.

You can find links below to the Project Wiki which always includes the latest package release, as well a link to the documentation. In addition you can find a link to the Bugzilla package review so you can keep up to date with the latest progress/results.

Links

Project Wiki - Package the Weave Server

Bugzilla ID: 690360 - Package Review

Manually Installing Weave Documentation

Justin's Blog

Building Weave (Toby Elliot)

Acknowledgments

Pictures / Graphics

Configuring Sync with Custom Server.png Sync Configured with Custom Server.png