TomCallaway/SecondaryArchitectures

From FedoraProject

Jump to: navigation, search

Contents

Fedora Secondary Architectures

DRAFT

This document describes how Secondary Architectures should be handled in Fedora.

Author: Tom 'spot' Callaway
Revision: 0.05
Initial Draft: Tuesday May 15, 2007
Last Revised: Tuesday Jul 10, 2007


Purpose

As an open community, Fedora encourages motivated individuals who care about architectures which are currently unsupported. This policy outlines the requirements for how Secondary Architectures can be implemented.

Goals

The goals of this document are as follows:

Structure

There are two tiers of architectures with Fedora support:

Architecture Maintainer Teams

In order to manage and support secondary architectures, each secondary architecture will have a team responsible for the Fedora release on that architecture. Each team will assign a team lead, and will be responsible for the following:

Each secondary architecture maintainer team will have a dedicated mailing list (e.g. fedora-sparc-list) to serve as a contact point for architecture specific questions, bug notifications, build notifications, etc.

In addition, secondary architecture teams should do the following:


Logistics

Buildsystems

Secondary architectures will need to provide their own hardware, to act as build servers for the koji buildsystem. Neither Red Hat nor the Fedora Project is able to provide hosting space for Secondary architecture systems at this time. Secondary Architecture koji buildsystems need to be accessible via the internet, so that they can communicate with the primary Fedora koji infrastructure.

File Storage

Secondary architectures will need to provide their own file storage. Fedora mirrors can choose whether they wish to mirror secondary architecture trees on an arch-by-arch basis.

Tree Composition

Fedora Release Engineering will not have any responsibility for composing Secondary Architecture trees. Composing trees and install media is the responsibility of the Secondary Architecture team. Each team should expect to have a dedicated server for compose purposes (if possible).

Sandbox Systems

Secondary architecture teams are encouraged to make a "sandbox", or testing system publicly available for Fedora packagers. It is possible to configure a system so that only Fedora Account System users with cvsextras access can ssh into the box, using their FAS credentials.

***TODO*** Document how to set this up.

While sandbox systems are very useful for Fedora packagers who would not normally have access to the hardware architecture, they are not a requirement.

Packaging Issues

Divergence from Primary Architectures

Secondary architecture package trees should be as close to primary architecture package trees as possible. Secondary architectures should not use older versions or customized (hacked up) packages. Secondary architectures may include architecture specific packages where relevant (e.g. bootloaders, xorg drivers). Changes to support secondary architectures must be committed in CVS for each package.

ExcludeArch & ExclusiveArch

Fedora Packages should avoid using ExclusiveArch, except when absolutely correct. Only packages which are exclusively arch specific should use ExclusiveArch (e.g. a bootloader designed for only one architecture). ExcludeArch should only be set when the architecture is not relevant for the package, the package is non-functional on the architecture, or the code does not compile cleanly for the architecture.

By using ExcludeArch on an arch by arch basis, it enables the majority of packages to have the chance to build on new secondary architectures, rather than being immediately ignored by a blanket ExclusiveArch.

Tracker Bugs

Any packager which sets ExcludeArch for an architecture must open a bug against that package, and block that bug against the appropriate ExcludeArch blocker bug.

This will help the Secondary Architecture team track and fix packages for their architecture.

Discussion

Discussion points around this draft can be found here: [TomCallaway/SecondaryArchitecturesDiscussion]