Mosaic2.6l10n+
文書番号:J8042
NetBSD/mac68kではmozillaは動作が重く(特に起動時。フォントの初期化に時間がかかっているみたい?)、あまり実用的ではありません。
ですんで、本文と共に画像を表示する事のできるWebブラウザとしては、Mosaic2.6l10n+が一番実用的かと思われます。
#でも個人的にはLynxとかw3mで十分だと思ふ。
Mosaic2.6l10n+でも起動時にはかなり待たされますが、これはapp-defaultファイルで沢山のフォント指定を行っているからで、そこら辺をシェイプアップする事で、軽やかに起動してくれるようになります。
ソースの入手
まず、以下の物を用意します。
ftp://ftp.tut.ac.jp/.h2/Net/www/Mosaic-I18N/Mosaic-2.6-l10n+.patch.tar.gz
ftp://ftp.tut.ac.jp/.h2/Net/www/Mosaic-I18N/Mosaic-2.6-l10n+.patch2.gz
ftp://ftp.tut.ac.jp/.h2/Net/www/Mosaic-I18N/sources/Mosaic-src-2.6.tar.Z
ftp://ftp.etl.go.jp/pub/mime/mimekit1.7.tar.gz
jpeg-6b.tgz
lesstif-0.87.1.tgz
xpm-3.4k.tgz
このうちの、
jpeg-6b.tgz
lesstif-0.87.1.tgz
xpm-3.4k.tgz
なモノは、NetBSDの場合、packageがあるのでそれを利用すると手間暇かからずでよろしいでしょう。
#すすんで苦労したいという「努力のヒト」には、あえておすすめはしませんが。:-)
細々とした作業
Mosaic2.6のソースアーカイブを~/src/へ解きます、でL10N+なアーカイブをMosaic2.6のソースディレクトリへ解き、パッチをあてます。
patch -p0 < Mosaic-2.6-l10n+.patch
patch -p0 < Mosaic-2.6-l10n+.patch2
ここでMosaicの作業を一旦やめて、先にMosaicで使うmimekitライブラリを作ることにします。
mimekit1.7のソースアーカイブを~/src/へ解き、makeします。
これは特に何をせずともmakeできます。:)
make
Mosaic本体のmake
これが終ったら、再度Mosaic本体の作業に戻ります。Mosaic-srcにあるMakefileに修正を加えます。
diffの結果を以下に示しますので、参考程度にどうぞ。
-----------------------------------------------
--- Makefile.yanai.original Mon Dec 28 05:48:41 1998
+++ Makefile Mon Dec 28 19:08:19 1998
@@ -39,7 +39,9 @@
#### For NEC EWS4800 SVR4.2 /usr/necccs/bin/cc,
#### do -DSVR4 -DMOTIF1_2 -ZXNd=10000 -ZXNl=4000 -ZPNa=250000 -ZPNb=50
#### For NEC EWS4800 SVR4.2 /usr/abiccs/bin/cc, do -DSVR4 -DMOTIF1_2 -ZXNd=10000
-sysconfigflags =
+
+#NetBSD/mac68k
+sysconfigflags = -I/usr/pkg/include -L/usr/pkg/lib
#### System libraries.
# syslibs = -lPW -lsun -lmalloc
@@ -80,10 +82,14 @@
#### BSD/386
# xinc = -I/usr/X11/include
+#NetBSD/mac68k
+xinc = -I/usr/X11R6/include
+
+
#### X library locations.
# xlibs = -lXm_s -lXmu -lXt_s -lX11_s
#### For Sun's (at least running stock X/Motif as installed on our machines):
-xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
+#xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
#### For HP-UX 8.00:
# xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
#### For HP-UX 9.01: The X11R5 libraries are here on our systems
@@ -114,6 +120,10 @@
# xlibs = -L/usr/abiccs/lib/X11R5 -lXm -lXmu -lXt -lXext -lX11 -lgen -lm
# xlibs = -L/usr/abiccs/lib/X11R6 -lXm -lXmu -lXt -lXext -lX11 -lSM -lICE -lgen -lm
+#NetBSD/mac68k
+xlibs = -L/usr/X11R6/lib -lXm -lXmu -lXt -lX11
+
+
#### DTM AND HDF SUPPORT; READ CAREFULLY
@@ -149,6 +159,12 @@
#jpeglibs = $(jpegdir)/libjpeg.a
#jpegflags = -I$(jpegdir) -DHAVE_JPEG
+#NetBSD/mac68k
+jpegdir = /usr/pkg
+jpeglibs = $(jpegdir)/lib/libjpeg.a
+jpegflags = -I$(jpegdir)/include -DHAVE_JPEG
+
+
#### DIRECT WAIS SUPPORT
@@ -228,7 +244,14 @@
#### set -DDOCMENU_EXTENDER and you can use keyword "[CURRENT]" in Menufile.
#### . If you want to disable (suspicious)TABLE support,
#### set -DDISABLE_TABLE
-customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+#NetBSD/mac68k
+
+#customflags = -DL10N # -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+customflags = -DL10N -DMOTIF_I18N -DNEWS_SELECT -DHTML3 -DNETSCAPE_EXT -D_USE_REAL_ACCESS_DATE -DSECURE -DDOCMENU_EXTENDER -DDISABLE_TABLE
+
+
#### MIME HEADER SUPPORT
#### . If you set -DMIME_HEAD
@@ -238,6 +261,13 @@
#mmslibs = $(mmslibdir)/libmms.a
#mmsflags = -DMIME_HEAD
+#NetBSD/mac68k
+mmsroot = ../../mimekit1.7
+mmslibdir = $(mmsroot)
+mmslibs = $(mmslibdir)/libmimekit.a
+mmsflags = -DMIME_HEAD
+
+
#### SSL SUPPORT
#### . If you set -DUSE_SSL
#### sert following variables
@@ -278,8 +308,8 @@
# ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
-CFLAGS = -g $(sysconfigflags) $(socksflags)
-#CFLAGS = -O $(sysconfigflags) $(socksflags)
+#CFLAGS = -g $(sysconfigflags) $(socksflags)
+CFLAGS = -O2 $(sysconfigflags) $(socksflags)
# Don't worry about these -- for development purposes only.
PURIFY = purify
-----------------------------------------------
あと、このままだとMosaicのsrcディレクトリにある、readJPEG.cでエラーが出るので、
次のように修正します。
METHODDEF void -> METHODDEF(void)
ここまでできたら、あとはMosaic本体をmakeするだけです。
make
これでおしまい。
Mosaic2.6l10n+をご利用の際には、「Hacker != Crakcer」のお願いをお忘れなく。:-)
SSL(Secure Socket Layer)な機能も加える
まずはSSLeay-0.6.6bのmakeを参照して、SSLeay-0.6.6bなライブラリをこしらえておいてください。
SSL関係のライブラリ構築作業が終りましたら、MosaicのMakefileに修正を加えます。
#### SSL SUPPORT
#### . If you set -DUSE_SSL
#### sert following variables
sslflags = -I/usr/local/ssl/include -DUSE_SSL
ssllibs = -L/usr/local/ssl/lib -lssl -lcrypto
のようにしてください。
「これで後はmakeするだけ...」というワケなんですが、Mosaicソースディレクトリ内の、libwww2/HTTPS.cは、現在入手することができる一番古いSSLeay(SSLeay-0.6.6b)でもライブラリが新しすぎるようで、コンパイルがうまく通りません。
そこで、ソースを適当に修正し、コンパイルが通るようにデッチ上げる事にします(Mosaic-2.7b2-SSLeayのソース等が参考になります)。
--- ./HTTPS.c.yan.orig Fri Feb 19 09:32:42 1999
+++ ./HTTPS.c Thu Jun 3 07:42:45 1999
@@ -58,10 +58,14 @@
SSL *ssl_con;
+SSL_CTX *ssl_ctx;
static int ssl_init_done = 0;
int ssl_active_flag = 0;
int ssl_debug_flag = 0;
int ssl_verify_flag = SSL_VERIFY_NONE;
+char *cipher_list=NULL;
+char *cert_file=NULL;
+char *key_file=NULL;
/* Load Document from HTTPS Server HTLoadHTTPS()
** ===============================
@@ -176,13 +180,39 @@
SSL_LOG = SSL_ERR = NULL;
}
- ssl_con = (SSL *)SSL_new();
+ ssl_ctx = (SSL_CTX *)SSL_CTX_new();
+ ssl_con = (SSL *)SSL_new(ssl_ctx);
SSL_set_fd(ssl_con, s);
SSL_set_verify(ssl_con, ssl_verify_flag, NULL);
+ if (cipher_list==NULL)
+ SSL_set_pref_cipher(ssl_con,getenv("SSL_CIPHER"));
+ else
+ SSL_set_pref_cipher(ssl_con,cipher_list);
+
+ /* Add in any certificates if you want to here ... */
+ if (cert_file) {
+ if (!SSL_use_certificate_file(ssl_con, cert_file,
+ X509_FILETYPE_PEM)) {
+ fprintf(stderr,"%s: ",cert_file);
+ ERR_print_errors(stderr);
+ exit(1);
+ } else {
+ if (!key_file)
+ key_file = cert_file;
+ if (!SSL_use_RSAPrivateKey_file(ssl_con, key_file,
+ X509_FILETYPE_PEM)) {
+ fprintf(stderr,"%s: ", key_file);
+ ERR_print_errors(stderr);
+ exit(1);
+ }
+ }
+ } /* cert_file */
+
+
ssl_init_done = 1;
- if (!X509_set_default_verify_paths())
+ if (!X509_set_default_verify_paths(ssl_ctx->cert))
{
fprintf(stderr,"HTTPS: cannot load certificates via X509_set_default_verify_paths\n");
HTProgress ("Unable to X509_set_default_verify_paths.");
@@ -191,7 +221,7 @@
}
}
- if ( !SSL_connect(ssl_con) )
+ if ( SSL_connect(ssl_con) <= 0)
{
if (TRACE)
fprintf(stderr,
後は再度makeして完了です(HTTPS.oを消去してmakeするか、適当にmake cleanをかましてからmakeしてください)。
HTTPS.cはかなりいい加減な修正しかしてませんので、SSLがうまく機能しているのか甚だ疑問なのですが、一応、https://なWebサイトも閲覧できるようになりますから、至極個人的にではありますが、「とりあえずはこれでよし」ということにしています。^^;;
もどる
fk200329@fsinet.or.jp
Last modified: Tue Jun 22 04:37:03 1999