VNC 4.0 のRPM ファイルを作ってみる(RHL9 用)

ちょうど新しいバージョンも出たことだしいい機会なのでLinux に入れてみることにしてみました。当然RedHat からのRHL9 用RPM ファイルのリリースはありませんし、いつまでもソースから手動でインストールするのも芸がないので、今回は「エンタープライズ:特集:第2回 RPM活用のステップアップ-SRPMリビルドとコンパイルマスター」 の記事を参考にして、自分でRPM ファイルを作ってみることにしました。
まずはファイル配布元であるRealVNC のサイトから必要なファイルをダウンロードします。名前やメールアドレスの登録が必要なように見えますが、必要なファイルの種類のチェックさえ入れればダウンロードページに進むことができます。でも一応本名とまともなメールアドレスで登録しておきました。
今回使用したのは、"x86 Linux Redhat 7.3 RPM" の"Source RPM (.nosrc.rpm) (473K)" です。同じRedHat とはいえ、バージョンが違うので、ドキドキですが、ダメならば完全にソースからインストールするまでです。出来る限りのことはやってみましょう。
さて、落としてきたファイルを


# rpm -ivh vnc-4.0-1.nosrc.rpm

でインストールすると"/usr/src/redhat/SPECS/vnc.spec" と"/usr/src/redhat/SOURCES/vnc-4.0-unixsrc.tar.gz" が展開されます。後は"/usr/src/redhat/SPECS/vnc.spec" をなんとか弄り回してパッケージ作成まで粘ってみます。


ちょっと長いですが、"/usr/src/redhat/SPECS/vnc.spec" の中身を以下に示します。
VNC のコンパイルにはXFree86 関係のソースファイルが必要のようなので、SPEC ファイルの記述にしたがってxfree86.org から"X420src-1.tgz" をダウンロードして"/usr/src/redhat/SOURCES/" 以下に放り込んでおきます。
ただ、パッチあてはXFree86 のバージョンが異なるため、コメントアウトしています(太字の部分)。ここ以外の変更点は特に必要ありませんでした。


%define moduledir /usr/X11R6/lib/modules/extensions
Summary: The original open-source cross-platform remote control solution
Name: vnc
Version: 4.0
Release: 1
Source0: %{name}-%{version}-unixsrc.tar.gz
Source1: X420src-1.tgz
NoSource: 1
License: GPL
Group: User Interface/X
BuildRoot: %{_tmppath}/%{name}-root
Vendor: RealVNC Ltd
Obsoletes: vnc-server
%description
VNC stands for Virtual Network Computing. It is remote control software which
allows you to view and interact with one computer (the "server") using a simple
program (the "viewer") on another computer anywhere on the Internet. The two
computers don't even have to be the same type, so for example you can use VNC
to view an office Linux machine on your Windows PC at home. VNC is freely and
publicly available and is in widespread active use by millions throughout
industry, academia and privately.
%prep
%setup -q -n %{name}-%{version}-unixsrc -a 1
# apply XFree86 4.2.1 patch if it's there
#if [ -f $RPM_SOURCE_DIR/4.2.0-4.2.1.diff.gz ]; then
#  gzip -d -c $RPM_SOURCE_DIR/4.2.0-4.2.1.diff.gz | (patch -p0 -E -f ; true)
#fi
%build
./configure
make
patch -Np0 

あとはビルドのオプションを下の順で変えていって、途中でエラーになったりしないか確認しながら一歩ずつ進めていきます。順番が逆ですがこの手順の結果が上記SPEC ファイルになっています。


# rpmbuild -bp /usr/src/redhat/SPECS/vnc.spec # パッチをあてる
# rpmbuild -bc /usr/src/redhat/SPECS/vnc.spec # コンパイルを行う
# rpmbuild -bi /usr/src/redhat/SPECS/vnc.spec # インストールテスト
# rpmbuild -ba /usr/src/redhat/SPECS/vnc.spec # パッケージを作成する

コンパイルの時間もものすごくかかるのですが根気よく待ち続け、そしてに上手にRPM ファイルが焼け
ました、いや、できました!! あとは


# rpm -ivh /usr/src/redhat/RPMS/i386/vnc-4.0-1.rpm

でインスト完了!! さてお次は接続テストです。というわけで、つづく。