修正したパッケージを commit するには Subversion サーバにアカウントが必要です。 現在は申請方法など整備している最中ですが、 アカウント 発行のルール(仮)にルールを記載していますので、一読の上申請してください。
Subversion からファイルを取り出したりする際に ssh を経由します。NOPASSWD で slogin できるようにしておいた方がなにかと便利です。
$ eval `ssh-agent`
$ ssh-add ~/.ssh/id_dsa
Momonga Linux では X を起動する際に eval `ssh-agent`
は実行されるようになっています。
また、~/.xinit.d/hook が存在し、
かつ実行属性を持つ場合このファイルを実行するようになっていますので
$ touch ~/.xinit.d/hook
$ chmod +x ~/.xinit.d/hook
して、中に
ssh-add ~/.ssh/id_dsa < /dev/null
と記述しておくと良いでしょう。
シェルに bash を使用している場合
bash$ export SVN_EDITOR=jed
bash$ svn co svn+ssh://svn.momonga-linux.org/home/svnroot/svnroot_pkgs/trunk/pkgs
シェルに tcsh を使用している場合
tcsh% setenv SVN_EDITOR jed
tcsh% svn co svn+ssh://svn.momonga-linux.org/home/svnroot/svnroot_pkgs/trunk/pkgs
前述のように、以下のコマンドを実行して最新のものをもってくる。 HEAD をメンテナンスしたいなら trunk に移動しておく。
$ svn co svn+ssh://svn.momonga-linux.org/home/svnroot/svnroot_pkgs/trunk/tools
$ cd tools
次に以下のコマンドを実行。
$ make
時々以下のコマンドを実行して、(特にOmoiKondaraを)
最新のものにするのを忘れないように。
$ cd ..
$ svn update tools
なお pkgs と tools は常に同一 revision にしておくことが望ましいので
全体を一度に update することをお勧めします。
$ cd pkgs
$ ../tools/OmoiKondara パッケージ名
設定ファイルがデフォルトのままなら、ビルドが成功すると
$HOME/PKGS 以下に
パッケージが出来上がります。
以下の作業は pkgs/
で実行します。
新バージョン(または新リリース番号)のパッケージをリリースしたい時は、 spec ファイルを必ず Specfile-Guidance にそってメンテナンスしてください。
また、新しいパッチを追加する時は、そのパッチの項目も spec ファイルに追加 する必要があります。
まず、あなたのローカルな環境でパッケージのビルドが可能か確認します。
$ ../tools/OmoiKondara -r "-bp" hoge
$ cd hoge
$ rpm -ba --rcfile rpmrc hoge.spec
とすると、pkgs/hoge/RPMS/{arch}
以下にビルドされたパッケージが置かれます。
spec ファイルの更新だけでよいもの
$ ../tools/commit hoge
パッチなどを追加する場合
$ svn add hoge/hoge.patch
$ ../tools/commit hoge
なお、依存するライブラリの API が変更された等の理由で 複数のパケジを commit する際には、個別に commit せず
$ ../tools/commit hoge fuga ...
などとして、一度に commit してください。
atomicな変更は、1回で同時にcommit してください。
また、こうすると revision の増加が 1 で済みますので巻き戻すのが簡単です。
逆に、関係のない変更を一つの commit に混在させると
何が起きたか判断に困りますし、
必要な部分だけ巻き戻すのが面倒になりますので、注意が必要です。
また、新規のコミットではない場合(changelogの修正など)は、
tools/commitを使わずに、手動でsvn commitしてください。
Momonga Linux に新たにアプリケーションを追加したい時は、 OmoiKondara の Subversion リポジトリに登録する事が必要になります。
pkgs/ 以下に、
新たにアプリケーションのディレクトリを作成します。
例えば以下のようにsvn mkdirを実行します。
$ svn mkdir newapp
そしてそこに、spec ファイルやパッチなど必要なファイルを配置します。
この際アプリケーションにより、必要に応じてそのディレクトリにて以下の
作業をします。
$ touch TO.Orphan とし、バイナリパッケージを Orphan に配置するように指定します。 デフォルトではビルドされません。
$ touch TO.Alter とし、バイナリパッケージを Alter に配置するように指定します。 デフォルトではビルドされません。
$ touch TO.Nonfree とし、バイナリパッケージを作成しないように指定します。
また、下記に該当するアプリケーションも指定する作業をしてください。
$ touch SU.PLEASE
$ touch LANG=ja_JP.EUC-JP
等号以降はアプリケーションに応じて変えてください。
$ touch TIMEOUT.PLEASE
$ touch SRPMS.ONLY
$ touch JAVA