BazWin32Builds

BazWin32Builds

Status

Introduction

Baz should be built for Win32 and aggressively made usable on windows to expand its potential user base.

Rationale

Win32 support is very important - not having it blocks the use of baz in cross-platform projects, like Evolution. Having binary builds and an easy build process is a important step in the process of having robust Win32 support.

Scope and Use Cases

This BOF has a limited scope. Scope should be limited strictly to getting a native Windows bazaar binary created and distributed. The second step is providing a framework to allow for minimally audited third party contributions.

Use cases are very similar to other free software projects that have been ported to Windows natively. By creating a native port, a user can work on free software without having to have Linux, FreeBDS or Cygwin installed.

  • Use Case 1 - A user visits a publicly available web site to download bazaar binaries. Once he runs the install program, the software will provide a basic configuration to use bazaar. The user will be able to get branches and further work on source code in a native Windows environment.
  • Use Case 2 - A user downloads the sources from a public site. By using a compiler such as mingw32, the user can compile a local native implementation of bazaar. He or she would then perform the installation manually (or possibly emulate or replace the publicly described process that the bazaar team uses for building a distribution executable.
  • Use Case 3 - The user downloads the source code as per use case 2. This user then continues on, contributing Windows changes for bazaar back to bazaar by using bazaar, which would certainly not be bizarre (haha).

Implementation Plan

  • Current arch work is spread amongst many trees. The win32 codebase will become the amalgum of bazaar and the work of other developers that have focused on windows specific problems. Long term needs include addressing implementation details that are incompatible with windows design decisions, such as short path length.
    • The primary candidate win32 work is Johannes' port at http://wiki.gnuarch.org/UsingJohannesPort. This work was originally written for tla. This code certainly will not work under Bazaar without at least moderate modification, and will likely need substantial modification to port it to the new bazaar library code. This code focuses on building issues.

    • Lode Leroy has written path compression patches that are intended for cygwin. With a bit of tender love, they may be refitted for current bazaar after Johanne's work has been introduced into bazaar.
    • Code to handle long path tarballs. This exists in John Meinel's work.
  • Identify potential candidates for the two following roles:
    • Maintainers for the Win32 "port". These are people that are specifically interested in performing further development on Windows based systems. They may or may not be directly interested in migrating changes back into the official bazaar branch
    • One or more divergence minimizers, who will migrate reasonable code changes from the Win32 branch back into the official bazaar branch
  • Infrastructure
    • A patch queue manager, whether performed automatically or by a human, must be implemented immediately.
    • Various web pages must be created to monitor, describe and document the development process:
      • Availability (where to get it, download it)
      • Porting status (does it work at all? What parts don't work?)
      • Road map (Work not yet accomplished)
      • How to get involved
      • A subset of wiki.gnuarch.org
    • Mailing lists - The various arch projects have a longstanding tradition of hunkering down on the gnuarch mailing list. Continuing this tradition is ideal as many users/developers monitor the various arch interests. Currently, there are two lists; gnu-arch-users@gnu.org and gnu-arch-developers@seyza.com.

    • IRC - As with the mailing list the cohabitation tradition shall be maintained. Currently two channels exist; #arch on irc.freenode.net (high traffic) and #bazaar on irc.freenode.net (low/no traffic)
    • Ensure that the following binaries are packaged on win32 with bazaar
      • executables
        • tar
        • gzip
        • patch (currently)
        • gnu diff & diff3 (currently)

        • gnupg
      • libraries
        • libgpgme
        • libneon
      • packages
        • ssh

Data Preservation and Migration

  • Current data will not be directly affected by changes in the build process. Tangential issues (which are not covered here), such as porting, may or may not require migration changes.

Packages Affected

  • Bazaar
  • Libneon
  • libgpgme

User Interface Requirements

  • The installation process would be different for Windows users, who have a widespread expectation to download a single executable which performs full installation.

Outstanding Issues


CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/BazWin32Builds (last edited 2008-08-06 16:18:39 by localhost)