openSUSE:Zypper の開発

移動先: 案内, 検索
独自の zypper を構築する際の基本的な手順が書かれています。

ソースコード

Zypper のソースコードは GIT のリポジトリである github で管理しています。最新の zypper のソースコードのコピーを取得するには、下記のように実行します:

git clone git://github.com/openSUSE/zypper.git

上記を実行することで、現在の作業ディレクトリ以下の zypper ディレクトリ内に、リポジトリのローカルコピーが作成されます。


開発者との連絡

  • zypper の開発者と連絡を取るには、 irc.freenode.net 内にある #zypp IRC チャンネル (英語) をお使いください (mlandres or duncanmv の各ユーザに連絡を取ってください) 。
  • zypp-devel@opensuse.org - Zypp 開発用メーリングリスト
Subscribe | Unsubscribe | Help | Archives (英語)

ドキュメンテーション

Zypper には詳細なマニュアルページ doc/zypper.8 が用意されています。コマンドラインインターフェイスや動作に対して何らかの変更を行なったときは、必ず更新してください。

groff マークアップ言語に慣れていない方の場合は、純粋にテキストのみで記述してかまいません。こちら側で整形作業を実施します。


開発ブランチ

Zypper の開発ブランチは libzypp のものとほとんど同じですが、いくつかの例外があります。一般的にメインの開発作業は trunk で実施しますが、ブランチは特定の製品とともに提供される zypper バージョンのメンテナンスや開発用に、 SUSE の開発者が内部的に使用します。


Zypper の構築

zypper を構築するには、下記のパッケージをインストールする必要があります:

libzypp-devel, augeas-devel, cmake, gcc-c++, pkg-config, boost-devel, gettext-devel, and readline-devel.

zypper を構築するには、構築用のディレクトリを作成 (zypper のソースツリーまたは他のディレクトリ内に _build という名前のディレクトリを作成) し、 cmake と make を下記のように実行します:

mkdir <build ディレクトリ>
cd <build ディレクトリ>
cmake <zypper のソースディレクトリ>
make

最後に make install を実行すると、 zypper を /usr ディレクトリ以下にインストールすることができます。 zypper を開発している場合など、異なるインストールプレフィクスにインストールしたい場合は、下記のようにして cmake コマンドにディレクトリを設定します:

cmake -DCMAKE_INSTALL_PREFIX=/my/devel/usr <zypper_src_dir>

あとは通常通りに make を実行するだけです。

構築が成功したら、 zypper の実行ファイルが <build ディレクトリ>/src 内に作成されます。ここから直接バイナリを実行することができるほか、指定したインストールプレフィクス内の bin にインストールすることもできます (上記を参照) 。

ソースコードの tar ボールを作成するには、下記のように実行します:

make srcpackage

下記のように実行することもできます:

make srcpackage_local

前者のコマンドでは、ソースツリー内でコミットされていない変更をチェックしますが、後者ではチェックを行ないません。生成される tar ボールは <build_dir>/package 内に作成され、 zypper.spec も生成されます。

その他の cmake 変数

  • ZYPP_PREFIX - 非標準の場所に libzypp をインストールしている場合の、 libzypp のインストールプレフィクス
  • SYSCONFDIR - logrotate.d/zypper.lr をインストールする先の /etc ディレクトリに代わるディレクトリ
  • MANDIR - マニュアルページのインストール先ディレクトリ

スタイル

タブとスペース、インデント

ソースコード内では、 2 文字インデントが使われています。タブやスペースは自由に使っていただいてかまいませんが、お使いのエディタでのタブの 表示 が 8 文字に設定されていることをお確かめください。 vim エディタをお使いの場合は、下記のように実行することで実現できます:

set tabstop=8 shiftwidth=2 softtabstop=2

上記のように設定することで、タブの代わりにスペースをわざわざ挿入しなくても、 TAB キーでインデントを設定することができます。すべてのエディタで上記のような設定ができるとは限りませんが、少なくとも vim, emacs, cream と、最近の Eclipse CDT で対応しています。