Build Service

移動先: 案内, 検索

openSUSE ビルド・サービスは、今後の openSUSE ディストリビューション開発のための基盤を提供する、オープンで完全なディストリビューション開発プラットフォームです。

このサービスは、異なったハードウェア・アーキテクチャ上で動き、幅広いユーザが使える openSUSE 及び他の Linux ディストリビューション用のオープンソースソフトウェアを容易に作成し、リリースするためのツールをソフトウェア開発者に提供します。ユーザは、探していた最新のオープンソースパッケージを容易に探し出し、カスタマイズすることが可能になります。このサービスは、フィードバックと評価機能を持つことにより、開発者とユーザをつなぐ架け橋となるでしょう。開発者にとってこのサービスは、グループを作り、そのプロジェクトモデルにしたがって共同作業するための効率的な場となるでしょう。


特徴


上記のイントロダクション・セクションで我々は、ビルド・サービスは将来のopenSUSE をベースとしたディストリビューションの開発に必要なインフラストラクチャを提供する、完全なディストリビューション開発プラットフォームであると述べました。

加えて、Fedora や Debian、Ubuntu をはじめとする他の多くの Linux ディストリビューション用にもソフトウェアをコンパイルし、パッケージ化することができるサービスでもあります。

openSUSE のユーザは、http://software.opensuse.org/ というユーザーサイドの WEB インタフェースを通じて簡単に最新のパッケージを閲覧し、ダウンロードすることができます。

インタフェースがオープンなので、外部のサービス(たとえば Source Forge)がビルド・サービスと互いにやり取りしてそのリソースを利用することもできます。

さらに次の段階で、ビルド・サービスはユーザ認証を経れば誰でもアクセスが可能となり、更なるビルドターゲット(たとえば LSB や Xen イメージ)を作成することもできるようになるでしょう。

利点


ユーザにとって

  • 自分の使っているディストリビューション向けの最新のソフトウェアが常に手に入ります。ビルド・サービス の信頼関係を使うことによってユーザは「xy プロジェクトを信頼する」と宣言することができ、その後、このプロジェクトからのみパッケージをインストールできるようになります。
  • 古いディストリビューションのためのアップグレード(SL 10.0 に新しい KDE 3.5.7 を入れる、など)が入手できます。
  • 異なったディストリビューションをより統合化できます。ビルド・サービスで手に入るパッケージは人々を結び付けます - こう思ったことはありませんか?「彼らは何でこんなことするの? 何でこのディレクトリを使うの? - 僕はこのソフトを自分のディストリビューションにも入れたいのに」(ただし、これはまだ先の話です... :-) )

あなたはこのエンドユーザ・インタフェースから簡単にソフトウェアを見つけて、インストール出来ます。さらに、任意のパッケージ・マネージャーによって手動で入れるにはコチラをご覧ください

BS ビデオはこちら。

開発者にとって


  • さまざまなアーキテクチャに向けてパッケージをビルドするために、山ほどのハードウェアや"コンパイル環境(compiler farms)"は用意する必要がなくなります。
  • より良いソフトウェアを作ることができる: まだ 16 ビットのプロセスを使用しているソフトウェア・プロジェクトが存在しており、いまだにそれらのコードが 32 bit や 64 bit のプラットフォームではコンパイルされていないこともあります。
  • 他のパッケージへの依存関係の自動解決。あるパッケージが他のパッケージに依存している場合、このパッケージは、依存している他のパッケージがリビルドされると自動的にリビルドのきっかけを与えられます。
  • 他のプロジェクトへのリンク。パッチは他のプロジェクトの最新パッケージを使ってテストされます。たとえば、 ある開発者が Amarok へのパッチを持っていて、それをある決まった環境でテストしたいとします。彼は KDE プロジェクトへのリンクを作成して自分のパッチのテスト環境としてそれを使うことができます。その結果、彼のパッチが適用されたバージョンの Amarok は、KDE project が新しいビルドを開始するたびに常にリビルドのきっかけを与えられます。
  • 複数のLinuxディストリビューション用にソフトウェアを構築できます。現在、サポートされたディストリビューションのリストは以下の通りです。
    • SUSE
      • openSUSE 11.1
      • openSUSE 11.0
      • openSUSE 10.3
      • openSUSE 10.2
      • SUSE Linux 10.1
      • SUSE Linux Enterprise 10
      • SUSE Linux Enterprise 9
      • openSUSE Factory
    • Debian
      • Debian Etch
    • Red Hat
      • Fedora 10
      • Fedora 9
      • Fedora 8
      • Fedora 7
      • Fedora 6 + Extras
      • Red Hat Enterprise Linux 5
      • Red Hat Enterprise Linux 4
      • CentOS 5
    • Mandriva Linux
      • Mandriva 2009
      • Mandriva 2008
      • Mandriva 2007
      • Mandriva 2006
    • Ubuntu (Ubuntu、Kubuntu、Xubuntu 他も含む)
      • Ubuntu 8.10
      • Ubuntu 8.04
      • Ubuntu 7.10
      • Ubuntu 7.04
      • Ubuntu 6.06

組み込み開発者にとって

  • 開発したソフトウェアを異なるプロセッサのプラットフォーム向けに構築できます。現在サポートされているディストリビューションは以下の通りです:
    • openSUSE
      • openSUSE 10.2 @ powerpc
      • openSUSE 10.3 @ powerpc
      • openSUSE 11.0 @ powerpc
    • Debian
      • Debian Etch @ arm4l, powerpc
      • Debian Lenny @ arm4l, arm5el, powerpc
      • Debian Sid @ arm4l, arm5el, powerpc
    • Fedora (Fedora の Linux UK にある ftp サーバよりの情報)
      • Fedora 8 @ arm5el, powerpc
      • Fedora 9 @ powerpc
    • Ubuntu (Mojo プロジェクトの情報)
      • Ubuntu 7.10 @ arm5el
      • Ubuntu 8.04 @ arm5el, arm7el (VFP サポート/サポート無しいずれのバージョンも可)
      • Ubuntu 8.10 @ arm5el
      • Ubuntu 9.04 @ arm7el (ubuntu ディレクトリの alpha リリース)

QEMU エミュレータを用いたクロス開発をサポートする OBS のバージョンは、現在のところ OBS 開発者用バージョン内にのみ存在しています。コードは、今後リリースされる公式 OBS に同梱されていく予定です。技術的な情報についてはクロス開発のコンセプトおよび事例を参照してください。QEMU が使えるのは、ARMv7 EABI および VFPv3 までとなっています。ARM 向けスケジューラには、armv4l、armv5el および armv7el の3種類のクラスがあります。

PowerPC アーキテクチャ用としては、別のアプローチ方法も存在しています。PowerPC はサーバ用アーキテクチャとしてのサポートが厚く、OBS もネイティブなローカルでの構築および PowerPC マシン上でのワーカー構築の両方をサポートしています。セキュリティ上の制限により、公開 OBS 内ではまだ PowerPC のワーカーは一般の人が使用できるようになっていません。現在まだできないことや、それがいつできるようになっていくかの詳細については OBS ロードマップで確認してください。とはいえ、OBS ワーカーもしくはローカルでの構築プロセス(chroot 環境での OBS ワーカー、ローカル構築)のために Linux を稼働させている PowerPC のマシンがあって、自前で OBS をインストールしていれば、現時点でも PowerPC 用のパッケージを構築することもできるようになっています。

ディストリビュータにとって

  • ビルド・サービスにより、さまざまな形で使うことのできる完全なディストリビューションや修正イメージを簡単に作成することができます。ネットワークブート用イメージ、あるいは Xen や VMware 用として使えるイメージを作成できるKIWI の最初のバージョンがリリースされています。

ロードマップ


ロードマップについてはこちらを、また小さな変更点についてはこちらを、グリーンフィールドコンセプトについてはこちらをご覧ください。

提案されているフィーチャーの一覧が openFATE で参照できるようになっています。

どのように利用するか


現在も整備が進められているビルド・サービス・マニュアルがオンラインで参照できます。マニュアルの DocBook ソースへも SVN 経由で(下記をご覧ください)アクセスすることができますので、是非パッチも提供してください。

ビルド・サービスはWeb インタフェース経由でも、コマンドラインツール経由でも、さらにはパブリックなAPIを使った他のツールからでも利用することができます。またパッケージャならクロス・ディストリビューション・ハウ・ツゥービルド・サービス・チュートリアルにも目を通しておきたいところでしょう。

ビルド・サービスにログインするためには、あなたの Novell アカウントを使用する必要があります。ログイン手順についての追加情報は、チュートリアルの中のログインセクションをご覧になってください。

その他いくつかのヒントはビルドサービス Tips & Tricksサイトからも見つけられると思います。

Google Summer of Code


2009 年の Google Summer of Code に向けたビルド・サービス関連プロジェクトの提案がいくつか挙がっています。GSoC ページビルド・サービスのアイデアを参照してください。

過去のプロジェクト:

ビルド・サービス ソースコード


SVN リポジトリ

ビルド・サービス用ツールのソースとドキュメントは、こちらにあります。このリポジトリにはクライアントツールのみならずサーバのソースも置かれています。

現在のソースコードに check out するには、以下のコマンドを使用してください。

svn co https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice

パッケージ

Packages are around in the buildserver. パッケージは、ビルド・サーバに配置されています。パッケージを見つけるには openSUSE:/Tools リポジトリを覗いてみてください。名前が obs-(openSUSE Build Server)から始まるパッケージがそれにあたります。

貢献するには

ほとんどのオープンソースプロジェクトに関わる場合と同様に、まずはパッチや開発プランのコンセプトを書くことから始めてください。ちゃんと動くコードを提供できる人だと認められれば svn リポジトリへの書き込み権限が与えられます。

小さなプロジェクトがいくつかありますので、コードを探したり、開発チームに参加したりするうえで、そこに参加してみることから始めてみるといいでしょう。

ドキュメント

  • チュートリアル では、自分のプロジェクトおよびパッケージを作成する第一歩が紹介されています。
  • Tips & Tricks では、いくつかの特徴およびトリックが説明されています。
  • 最新の情報を探しているのであればNewsサイトをご覧になってください。
  • ビルド・サービスについて、FOSDEM での二つの講演を紹介します。一つ目の講演では、ビルド・サービスの考えとそのアーキテクチャについての概観が紹介されています。二つ目の講演では、プロジェクトのモデルが詳細に紹介され、どうやって openSUSE や Fedora、Mandriva、Debian といった複数のディストリビューションに対してビルドするのかについて説明されています。
  • APIについてのドキュメントは重要なものです。API は、ビルド・サーバと連携して働くシンプルで包括的なインターフェイスです。これを自分のツールに統合してコードをアップデートしたり、自分のプロジェクトの現在の状態をチェックしたりできますし、何かまったく違ったクールなことができるかもしれません。
  • 用意されている Web フロントエンドやコマンドラインツールが気に入りませんか? もしそうなら改良することも、自分で新たに書くこともできます。どちらのソースも、forge (訳注: forge.novell.com) のリポジトリで手に入れることができます。

連絡先

opensuse-buildservice メーリングリストから会員登録してください (アーカイブはこちら)。あなたからのフィードバックを歓迎します。特に、パッチや新しいツール、新しいアイデアは大歓迎です。

私たちのうちの何人かは、freenode の#openSUSE-buildserviceチャンネルにたむろしています。

Bugzilla にビルド・サービスのバグレポートを投稿することも可能です。

openSUSE ビルド・サービス チームより。

ビルド・サービス・クライアント


REST API に基づくアーキテクチャを使えば、簡単に異なったクライアントに書くことができます。 これにより、異なる経験を持つユーザそれぞれのニーズに応えられるようになるチャンスが広がります。 複数のクライアントを持つことで、それぞれのユースケースごとに何を重視するか変えることができるようになります。

Web クライアント

openSUSE ビルド・サービス 用 Web ベース・クライアントは、ビルド・サービスのすべての機能に容易にアクセスできる、最も完全なグラフィカル・インタフェースです。

コマンドライン・クライアント

osc から始まるコマンドライン・クライアントで、ビルド・サービスのすべての機能にアクセスすることができます。これは、もっとも完成したコマンドライン・インタフェイスです。

さらに、あなたがビルド・サービスの開発者であるならば、ビルド・サービスのReST(Representational State Transfer) API を curl から直接使ってみたいと思うかもしれません。

KDE リッチ・クライアント

KDE のリッチ・クライアントの組み込みを開始した Google Summer of Code プロジェクトがありますので、詳細についてはリッチクライアントを見てください。

=== グラフィカル・ユーザ・インタフェイス (GUI) 及びフレームワーク === Robert Lihm <rlihm@suse.de> による MonoOSC プロジェクトのロゴ

openSUSE ビルドサービス開発者グラフィカル・ユーザ・インタフェイス

MonoOSC は MonoOSC フレームワークを使うための GUI で、100% C# による API 接続のためのプロジェクトです。追加情報については以下をご覧ください(現在開発中)。 http://sourceforge.net/projects/monoosc/

openSuse ビルド・サービス内のリポジトリ: http://download.opensuse.org/repositories/home:/surfzoid/

ユーザ

Powered By - openSUSE ビルド・サービスのローカル・バージョンを稼働させている人たちの一覧