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