wiki:self-build-creation

Version 3 (modified by kazutaka, 19 years ago) (diff)

--

self-build パッケージについて

仕組みの概要

  • 事前にターゲットの rpm パッケージを作成するのに必要な、spec と patch やその他のファイルを用意しておきます。
  • 上記のファイル類を self-build-%{pkgname} な rpm パッケージに含めておきます。
  • %post で以下の処理を一括して行います。
    • まず rpm ビルド用のテンポラリディレクトリと作成
    • 次に patch やその他のファイルを /テンポラリ/rpm/SOURCES にコピー
    • 続いて wget を使ってソースをダウンロード
    • 後は、rpmbuild -bb でターゲットのパッケージを所定のディレクトリにビルド
  • apt/synaptic を使ってインストールされた場合は、Scripts::PM::Post:: というスロットを使って、rpm の DB に変更がコミットされた(= self-build-%{name} 自体のインストールが完了した)直後に、ヘルパースクリプトを呼び出して、所定のディレクトリに置かれたターゲットの rpm ファイルをインストールします。

作り方

  1. 最初にターゲットのプログラム の rpm パッケージが作成できる spec ファイルを用意します。
    もし patch やその他のファイルが必要な場合は、これも一緒に準備しておきます。
  2. 上記の spec ファイルを使って rpm のバイナリパッケージが作成できることを確認したら、次に self-buiild-%{name} 用の spec を作成します。 2-1. ターゲットのプログラム用の spec や patch、その他のファイルを Source? で定義しておきます。 2-2. PreReq?: にターゲットのプログラムの BuildRequires?: と同じものを書いておきます。
    こうすることで、%post でコンパイルする時に必要となるパッケージが一緒にインストールされます。 2-3. %install で Source? で定義した各種ファイルを全て ${RPM_BUILD_ROOT}/%{_datadir}/self-build-sample