openSUSE: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 で対応しています。