#contents();
SHのGentoo開発計画
~SHにおいてGentooLinuxの利用を進めるために行うこと。
*前提 [#s977e868]
**私たちをとりまく環境 [#od4624c1]
-成果物をコミュニティに還流させる方針。
-ユーザランドを独自で維持することのコスト。
-BSPの展開とコストの増大。
-顧客へのサービスはカーネルだけでは不十分。
**ディストリビューションへの期待 [#wbf266c6]
- BSPのベースにする(上記の特殊解(自分にガイドして自分の製品のベースにする))
- ユーザにガイドしてその製品のベースにする。
- サポートの前提にする。
- Linuxカーネルのユーザランド側からのテストのベースにする(現在のカーネル開発中心の立場からの視点)。
*現状の問題 [#md39fa0c]
**Gentoo SHで問題なもの [#kdc8ff3a]
- サポートされていないパッケージが多い(gcc等根幹にかかわるものも含む)
- バージョンが古いパッケージが多い(本質的に上と同じ)
- stableの条件が明確でない
- アーキテクチャチームが弱い(Mike Frysinger氏(gentoo開発者vapier氏)ひとり)
**Gentoo全体で心配なもの [#h872d5de]
- 組み込みCPUにおいてもPCと同じように開発/利用できるか不明
- ビルド/テストシステムの不在
- デベロッパの数とパッケージの数がバランスしているだろうか
*必要なこと [#kc18183c]
**Gentooに対して必要なこと。 [#j40343c6]
- gcc/binutils/glibc/kernel-headersのバージョンそろえとパッチマージ。
- portageいろいろでshのテストしてkeywordを増やす。
- SHアーキテクチャチームの組織。stableの基準づくり
- バイナリ互換の問題を解決してstage用のバイナリを決める
**開発体制 [#kf990b86]
- 人。デベロッパであるとやりやすい。
- 安定して動くハードとカーネル
- 常時通電、常時接続の環境。
- ml/bugzillaへの投稿ができること。
- svn/cvsの操作ができること(デベロッパの場合)
**次の技術として欲しいもの [#g19b709d]
- テスト自動化
- 高速コンパイル技術(シミュレータ含む)
- クロスコンパイル
*作業手順 [#x17b3156]
**フェーズ [#hb028947]
その時々に応じてできることを明確にするために、全体の作業を以下のフェーズにわけて計画する。
*** フェーズ1: 内部の開発者が作業できるようになるために [#m7f2fb10]
目標: ツールチェインをstableにする
~特にGentooにおいてはツールチェイン(gcc/binutils/glibc/kernel-headers)が重要。~
この機能を先に確保する。その過程で作業の仕方もドキュメント化する。
// # ボードとかアーキとかも決定必要。だけどあまり悩まずスパッときめる。
- ボード、アーキ、ツールバージョンを決定してテストに入る。アーキは悩まず決める。
- ネイティブでstage3のパッケージを個々にビルドしつつテスト。
- stage3の全部パッケージがビルドできたら合格。ツールをstableにして終わり。
-終わるまでは
-- 開発者以外は成果物を利用すべきでない。困難が多いだろう。
-- 個別案件、特定アーキテクチャ対応等の作業を混入させない。
-終わると
-- 他の開発者(坂戸さんとかAtomさんとか)がgentooの開発をできるようになる。
//-- BSPを作って提供することができる。サポートは提供者が行う。
//# できないんじゃないか。途中のをだすと、その対応で嵌る。
-- Gentooとしてのドキュメントは十分でない。やり方のドキュメントに注力。
//# 効果としては、「これがこれからの開発の布石だ。これでやりかたのドキュメントを残す」という方向。
*** フェーズ2: ユーザに紹介できるようになるために [#l8d67d8e]
目標: stage3のパッケージをstableにする
- インストール関連ドキュメントをgentooの基準にあわせて記述
- stage3を生成する(個々のビルドとはちょっとだけ別)
- stage3できたら、gentooHandBookの通りにインストールする。これがテスト。
- できたら、stage3のパッケージをstableにして終わり。
-終わると
-- 新しいstage3が準備できる。
-- ユーザにSHで使えるディストリとして紹介できる。
-- BSPを作って提供することができる。
-- ユーザサポートが必要になってくる
*** フェーズ3: 正式サポートのために [#y9599c19]
目標: リリース
- ml稼動
- リリース条件検討。
- 基準にあったドキュメントを記述(可能ならばコミュニティの力を導入)。
// gentoo-jp とかつかえるんじゃないか
- パッケージ追加とstablizeとリリースバージョン追従
- 正式releaseで終わり。
-終わると
-- SHが正式にサポートされる。
-- それなりに作業が定型化されて手がかからなくなる。ことを期待。
*** フェーズ4: 継続維持のために [#n34c022e]
目標: 終わらない
- 開発者はコンスタントに働いて、バージョンアップに追従する。
- 開発者が増えるかもしれない。ハードがあれば。
- 終わらないのが成功?
**作業詳細 [#u32b82bd]
- ツールチェインの選定。
- vapier氏に開発開始を打診。デベロッパがひろわない限りレポジトリは変更されないのだから、結局は彼にやってもらわないといけない。
- ツールチェインのebuild/パッチ作成。
- 人を決める(将来デベロッパーとして育てるために、今後この人の露出を増やす?)。
- ツールチェインをBTSする。
- ツールはローカルで更新してテスト。stableにできるまで。
平行して
- vapier氏とtesting/stable基準について協議。
- vapier氏にgentoo-shサブプロジェクトとmlの作成を依頼する。
- stage3プログラムのビルド、テスト、BTS(testing or stable化)。
- それ以上のプログラムのビルド、テスト、BTS(testing or stable化)。
平行して
- バイナリ互換性の検討。
- リリース形態の決定。
- ビルド・テストしつつバイナリの積み上げ。stable化。
- 2008/3月近辺のリリースにのせる(要日程確認)
**スケジュール [#bf3e8400]
|1| |25|25|25|25|25|25|25|25|25|25|25|25|c
|>|作業項目\月 |>|10 |>|11 |>|12 |>|1 |>|2 |>|3 |h
|>|vapierに開発開始打診 | |* | | | | | | | | | | |
|>|人を決める | | |* | | | | | | | | | |
|ツールチェイン|選定 |~ | | | | | | | | | | | |
|~|作成 | |>|~ | | | | | | | | | |
|~|BTS/テスト | | |>|>|>|~ | | | | | | |
|他のEbuild整備|基準協議| |~ | | | | | | | | | | |
|~|テスト検討 | |>|~ | | | | | | | | | |
|~|ビルド/テスト/BTS | | | |>|>|>|>|>|>|>|>|~ |
|バイナリ|バイナリ検討 | | | |~ | | | | | | | | |
|~|リリース形態検討 | | | | |>|~ | | | | | | |
|~|バイナリの積み上げ | | | | | | |>|>|>|>|~ | |
|>|ドキュメント | | | | | | | | |>|>|~ | |
|>|フェーズ |>|>|>|>|>|1 |>|>|>|>|2 |3 |f
//|~|2008.1リリース | | | | | | | | | | | |* |
//#comment
*** VMWare Player image [#idb85fa7]
- http://www.gentoovm.com/wiki/index.php/Main_Page