計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
Solaris8 にて openssl-1.0.2u を構築する
環境
コンパイラには GCC 4.7.4 を使う (Solaris8にインストール可能な最後のGCC).
openssl-1.0.2u がこの環境でビルドできる最後のバージョンである.
openssl-1.1.0 以降はコンパイルできるが数多くのテストに失敗するため使えない.
準備
/dev/random に相当するデバイスファイルが必要だが, Solaris8 の場合,
かつて SunSolve から出ていたパッチ 112438-02 を当てる必要がある.
現在は, Sun の契約番号を持っていれば, Sun を買収した Oracle のサイトから
ダウンロードできるようである(未確認).
コンフィギュレーション
./Configure --prefix=/usr/local --openssldir=/usr/local/etc/openssl shared solaris-sparcv9-gcc
※ このオプションでバイナリは /usr/local/bin, /usr/local/lib に,
設定ファイルなどは /usr/local/etc/openssl に, それぞれインストールされる.
shared は動的ライブラリも作成するための引数.
※ Forte6 の cc ではインクルードファイルの検索でエラーが出て
コンパイルに失敗するので, GNU C コンパイラを使うよう設定すること.
Forte6 のコンパイラは, ソースプログラムの存在するディレクトリの外から
コンパイルを実行するとき, ソースと同じディレクトリのインクルードファイルを
相対パスの指定では読み込めない.
例: a.h と a.c が同じディレクトリ /source にあるとし,
a.c では a.h を
#include "a.h"
で呼んでいるものとする.
カレントディレクトリが /source の外であるとき, コンパイルの実行は当然
cc -c /source/a.c
とするが, このとき Forte6 の cc は a.h を探し出せない.
メイク
gmake depend
gmake
インストール
gmake INSTALL_PREFIX= install
※ 標準の make ではうまくインストールできない場合がある.
後処理
オンラインマニュアルは, 同じ内容のものが別の項目のマニュアルとして
シンボリックリンクで作成されるので, gzip 化をするには都合が悪い.
次のようにして別個のファイルとして作成し直す.
cd /usr/local/etc/openssl/man;
for i in `find . -type l -print`; do
eval `ls -l $i | awk '{printf "LINK=%s;FILE=%s;\n",$9,$11}'`;
DIR=`dirname $LINK`;
LINK=`basename $LINK`;
echo $DIR $LINK $FILE;
/bin/rm $DIR/$LINK; /bin/cp $DIR/$FILE $DIR/$LINK;
done
/usr/local/etc/openssl/openssl.cnf の編集
openssl-1.0.0? からのアップデートなら前のバージョンのをそのまま使えばよい
備考
OpenSSL のアップデートで影響をうけるもの
Apache, OpenSSH, sendmail, Gtk (mozilla, gimp)
ただし libssl.so.0.9.* と libcrypt.so.0.9.* の古いバージョンを
新しいものにシンボリックリンクしておけば大丈夫.
計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)