CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > mnews のインストール
mnews のインストール
since 2010.01.05 / CORY
軽い動作や様々なOSへの対応、古くからの安定した日本語対応などで、以前より mnews を愛用し、引き続き使ってゆきたいと考える方はおられるのではないでょうか。
ご利用の方にはすでにご存じのように、残念ながら mnews は開発・一次配布が終了しており、メンテナンスができないことを理由に FreeBSD の packages からも削除されていますが、今なお有志により機能拡張が行われており、自己責任で(当たり前ですが)使うことができます。
ここでは、筆者が 2010年 1月に FreeBSD へインストールした際の記録を備忘録として残しておきます。今時主流の pkg_add や configure でないとはいえ、手順を踏めばきちんとインストールできますので、ご入用の方は参考にしてください。
なお、ここでは FreeBSD/pc98 8.0-RELEASE での例を挙げていますが、7系列や i386 などでもおそらく同様になるでしょう。
目次
◆ mnews-1.22PL6 + IMAP4 patch ソースコードを入手する
◆ ソースコードからbuildする
◆ フィルタを使う(ファイルを添付する、PGP(GPG)署名をする)
■ mnews のソースパッケージ
■ 謝辞・参考文献
mnews-1.22PL6 + IMAP4 patch ソースコードを入手する
一次配布は終了していますので、ネットワーク上を探し回るしかありません。2010年1月時点で、ソースコードを入手できる場所はかなり限られており※、筆者は下記を見つけたのみでした。
※便宜的に、展開して抽出したソースコード・パッケージをここに置いておきます。
この2通りのうち、ここでは前者を使わせていただきました。
これに、DoGA の高津氏が開発・提供されている IMAP4・Unicode 対応パッチを適用しました。
% fetch -o mnews-1.22PL6-1vl1.src.rpm "http://ult.riise.hiroshima-u.ac.jp/~nagato/?c=plugin;plugin=attach_download;p=Linux%B4%D8%CF%A2%A4%BD%A4%CE%C2%BE;file_name=mnews-1.22PL6-1vl1.src.rpm"
# pkg_add -r ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/pc98/8.0-RELEASE/packages/archivers/rpm2cpio-1.2_2.tbz
% /usr/local/bin/rpm2cpio.pl mnews-1.22PL6-1vl1.src.rpm | cpio -id
% tar xzf mnews122PL6.tar.gz
% fetch http://www.doga.co.jp/~taka2/mnews/mnews1.22PL6-imap4-20030207.tar.gz
% tar xzf mnews1.22PL6-imap4-20030207.tar.gz
% cd mnews-1.22PL6
% patch -p1 < ../mnews1.22PL6-imap4-20030207.patch
% cd ..
% mv mnews-1.22PL6 mnews-1.22PL6-imap4
% cd mnews-1.22PL6-imap4
% jless doc/readme.doc
早速make……といきたいところですが、最近の autoconf (configure) を使った構築方法とは少々勝手が違いますので、まずはソースコードに添付の doc/readme.doc をひととおり読んでおきましょう。
ソースコードからbuildする
筆者はソースコードを入手するまでが苦労したのですが、それ以降も注意しておく点がいくつかあったので、以降簡単に。
% cd /path/to/mnews-1.22PL6-imap4/build
% ./config.sh
--- Mini News Reader Configuration Tool ---
Please answer some questions.
For example,'([y]/n)' means 'y' is default answer.
この間を表示する(長いけど。戻したいときは Reload してね。)
Checking echo to see how to suppress newlines...
Type carriage return to continue. Your cursor should be here-->
What is your system architecture?
Please select architecture number.
1.SUN 4.X for SUN SUN-OS 4.X(Solaris 1.X)
Solbourne OS-MP 4.X, Panasonic P-Series PanaOS/S 1.X
Toshiba AS-Series OS/AS V4.X
2.SUN 3.X for SUN SUN-OS 3.X, Toshiba AS-Series OS/AS V3.X
3.DEC for DECstation.(Ultrix 4.X)
4.NeXT for NeXT series.(NeXT STEP 2.X)
5.NEWS for NEWS series.(NEWS-OS 4.X)
6.BSD for 386BSD, NetBSD, FreeBSD on PC-AT/PC-9801.
7.Linux for Linux
8.LUNA for LUNA series.(UNIOS-B 1.X/2.X/3.X/MACH 2.X),BSD 4.3
9.RS6000 for IBM RS6000(AIX 3.X)
10.HP for HP-UX 8.X/9.X
11.ALPHA for DEC ALPHA-AXP
12.SGI for SGI IRIS Crimson,Indigo2,Indy IRIX 4.X/5.X
13.SVR4 for other System-V Release4.
NEC EWS4800(EWS UX/V Rel4.X), UP4800(UP-UX/V)
OKIstation, SUN SUN-OS 5.X(Solaris 2.X)...
14.WIN32 for Windows console, compile with cygwin.
Q.quit
Architecture number:6
Enable IPv6 feature? ([y]/n):n
Please input binary install directory.
Binary install directory(default:/usr/local/bin):
Please input library install directory.
Library install directory(default:/usr/local/lib):
Please input manual install directory.
Manual install directory(default:/usr/local/man):
Please input temporary directory.
Temporary directory(default:/tmp):
NNTP means TCP/IP communication for reading news.
Support NNTP mode(NNTP)? ([y]/n):
NSPL means looking at news spool for reading news.
Support NSPL mode(NSPL)? (y/[n]):
SMTP means TCP/IP communication for sending mail.
Support SMTP mode(SMTP)? ([y]/n):
MTAP means using MTA(sendmail) pipe for sending mail.
Support MTAP mode(MTAP)? (y/[n]):y
POP3 means TCP/IP communication for receiving mail.
Support POP3 mode(POP3)? ([y]/n):
MSPL means looking at mail spool for receiving mail.
Support MSPL mode(MSPL)? (y/[n]):y
Please input mail spool directory.
Mail spool directory(default:/var/mail):
Use posting news article(NEWSPOST)? ([y]/n):
Use sending mail article(MAILSEND)? ([y]/n):
Please input mail send program and options.
Mail send program and options(default:/usr/sbin/sendmail -t -om -oi):
Use Japanese user name conversion(JNAMES)? ([y]/n):
Hash algorithm JNHASH module use more memory as normal module.
Use hash module(JNHASH)? ([y]/n):
Warning:JNAMES database "/usr/local/lib/jnames" not found.
Use MH mode(MH)? ([y]/n):
Use built-in MMH (subset of MH)? ([y]/n):n
Please input MH command directory.
MH command directory(default:/usr/local/bin/mh):
/usr/local/bin
Use UCB-mail mode(UCBMAIL)? ([y]/n):n
Use RMAIL mode(RMAIL)? ([y]/n):n
Use IMAP4-mail mode(IMAP4)? ([y]/n):
Use board mode(BOARD)? (y/[n]):
If support MIME, performance will be affect.
Use Japanese header,multipart selection and multimedia article(MIME)? ([y]/n):
Please input MPEG player and options.
MPEG player and options(default:mpeg_play):
Please input JPEG viewer and options.
JPEG viewer and options(default:xv):
Please input GIF viewer and options.
GIF viewer and options(default:xv):
Please input AUDIO player and options.
AUDIO player and options(default:audioplay):
Please input Post Script viewer and options.
Post Script viewer and options(default:ghostview):
Use internal pager(PAGER)? ([y]/n):
If internal pager included, external pager used with only -p
option or pager_mode:off by setup-file.
Please input external pager program and options.
Pager program and options(default:/usr/local/bin/less):
/usr/local/bin/jless
Use file carbon copy function(FCC)? ([y]/n):
Use 'Youbin' protocol instead of spool for checking mail(YOUBIN)? (y/[n]):
If support termcap or terminfo, performance will be affect.
Use termcap(TERMCAP)? (y/[n]):
Use terminfo(TERMINFO)? (y/[n]):
Please input configuration options.
-DADD_DATE add Date: field before sending.
-DADD_HOSTNAME add hostname to your domain name.
-DADD_HOSTPATH add hostname to path field.
-DADD_MESSAGE_ID add Message-ID: field before sending.
-DBOARD_COUNT use .count file for speedup.
-DBUILTIN_MMH use internal MMH instead of MH.
-DCOLOR support color screen.
-DCOMPLETION support file and folder completion.
-DCTRL_L support ^L page break.
-DDELETE_FIELD delete useless field when news/mail sending.
-DDISPLAY_CTRL print control code as '^'+character.
-DEUC_SPOOL use EUC code for news/mail spool.
-DIGNORE_EDITOR ignore editor exit status.
-DINET6 support IPv6 with RFC2553 system.
-DLARGE support extend commands.
-DLOCAL_POST always post by inews.
-DMOUSE support mouse operation with xterm/kterm.
-DNNTP_AUTH support INN authority function.
-DNO_ASK don't ask when news post or mail send.
-DRECOVER_SUBJECT recover subject without ESC code.
-DREF_SORT support reference sort.
-DRESOLVE use resolver.
-DSAVE_PAGER support saving article with internal pager.
-DSELECT_EDITOR ask editor when writting article.
-DSEND_CONFIRM confirm when news post or mail send.
-DSJIS_SRC use SHIFT-JIS code for mnews source.
-DSMALL restrict function for small size.
-DSUPPORT_X0201 support JIS-X0201 kana character.
-DTRI use TRI tree-search algorithm for speedup.
-DUNICODE support UTF-8.
-DUSE_FCNTL_LOCK use fcntl for mail spool lock.
-DUSE_FLOCK use flock for mail spool lock.
-DUSE_LOCK_FILE use .lock for mail spool lock.
-DUSE_LONG_FNAME use long file name for DOS/X68K.
-DUSE_NLINK use link count for speedup MH/BOARD mode.
-DUSE_NNTP_DATE use NNTP DATE command for news server check.
-DWIN32_CONSOLE use Win32 console for terminal control.
-DWITHOUT_FOLDER_CREATE MH folder command don't have -create.
-DXOVER support NNTP XOVER for speedup.
Options (default:-DCTRL_L -DCOMPLETION -DREF_SORT -DLARGE -DDISPLAY_CTRL -DUNICODE):
Please select default display code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:4):3
Please select default unknown code.(not serious)
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:4):3
Please select default save code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:1):
Please select default edit code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:4):3
If your site don't allow Japanese subject, please select "No conversion".
Please select default subject input code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:1):3
Please select default fcc code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:1):
Please select default pipe code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:1):
Please select default print out code.
1:No conversion
2:JIS code
3:SJIS code
4:EUC code
5:UTF-8 code
Kanji code ? (default:1):
Please input default print out command and options.
Print out command and options(default:lpr):
[: -eq: unexpected operator
SMTP mode means use TCP/IP to sending mail instead of using MTA pipe.
If your machine doesn't have MTA(sendmail), please answer 'Y'.
For default, use SMTP mode(SMTP_MODE)? (y/[n]):
POP3 mode means use TCP/IP to receiving mail instead of reading mail spool.
If your machine doesn't have mail spool, please answer 'Y'.
For default, use POP3 mode(POP3_MODE)? (y/[n]):
For default, use Japanese message mode(JAPANESE_MODE)? ([y]/n):
If you support X-Nsubject field, you can send and receive Japanese subject
without changing news/mail system.
For default, support X-Nsubject field(X_NSUBJ_MODE)? (y/[n]):y
For default, print date in Japanese time zone? ([y]/n):
In DNAS mode mnews don't delete bogus news-group automatically.
For default, support DNAS mode? (y/[n]):
Please input compiler program.
Compiler(default:/usr/bin/cc):
Please input compiler optimize options.
Options(default:-O -DDONT_HAVE_FTIME -DUSE_TERMIOS):
Please input default editor and options.
Editor and options(default:/usr/local/bin/emacs -nw):
/usr/local/bin/kemacs
Target architecture = _386BSD
Target network option = -DNNTP -DSMTP -DMTAP -DPOP3 -DMSPL -DIMAP4
Target construction option = -DNEWSPOST -DMAILSEND -DJNAMES -DMH -DIMAP4 -DMIME -DPAGER -DFCC
Target configuration option = -DCTRL_L -DCOMPLETION -DREF_SORT -DLARGE -DDISPLAY_CTRL -DUNICODE
High speed Module option = -DJNHASH
Get domain name by resolver.
Is it correct? ([y]/n):
Making configuration files.
Using "Makefile.src".
OK, Please make sure "Makefile" and "site_dep.h".
And then, to create the executable, type "make".
このように、Makefile を生成するためのシェルスクリプトが付いており、最初にこれを動かします。細かい設定は readme.doc に説明があるので予め一読しておくことをお勧めします。
readme.doc ではこの後 make なのですが、今回の環境でそれを行うと
Missing dependency operator
Need an operator
と怒られてしまいました(;_;)。Makefile を見ると、どうやら tab が空白に置き換えられているのが原因になっているようです。
そこで、行頭の空白1つをタブに置換してやりましょう。
% mv Makefile Makefile.org
% printf '/^ /s//\t/' > sedcommand # sed では \t を tab(0x09) と認識してくれないため。
% sed -f sedcommand Makefile.org > Makefile
% rm sedcommand
また、この後で Makefile をエディタで開き、20行目の " # STRIP = echo" の行頭にある空白(タブ)を削除します。
この状態になるとひとまず make が始まるようになるのですが、その途中で
% make
...
Making "inst_inf.h"
touch inst_inf.h
/usr/bin/cc -DNEWSPOST -DMAILSEND -DJNAMES -DMH -DIMAP4 -DMIME -DPAGER -DFCC -I. -I../compat -I../tcplib -I../nntplib -I../smtplib -I../pop3lib -I../imap4lib -I../kanjilib -I../mimelib -I../termlib -I../src -DMNEWS -DJIS_INPUT -DCTRL_L -DCOMPLETION -DREF_SORT -DLARGE -DDISPLAY_CTRL -DUNICODE -D_386BSD -O -DDONT_HAVE_FTIME -DUSE_TERMIOS -DNNTP -DSMTP -DMTAP -DPOP3 -DMSPL -DIMAP4 -c ../src/config.c
../src/config.c:134: error: expected expression before ';' token
../src/config.c:412: error: 'smtp_mode' undeclared here (not in a function)
*** Error code 1
Stop in /path/to/mnews-1.22PL6-imap4/build.
となり止まってしまいました。調べていくうち、site_dep.h の中に
#define NNTP_MODE
という行があるのを見つけたので、これを
#define NNTP_MODE 1
に書き換えてやると最後まで無事に make できました(^^)。
あとは root で make install して(root 権限が無ければ cp mnews ~/bin/ とでもして)、~/.mnews_setup を書いて mnews を起動するだけです。
フィルタを使う
ファイルを添付する
以前の mnews では送信メールにファイルを添付できなかったのですが、1.22PL6 ではファイル添付ができるようになっているようです。ただし、ファイルの形式に関わらず application/octet-stream で添付されるので、画像なども含めて、受け取る側では一旦保存しないと参照できないといった不便な点があります。
以前の mnews でファイル添付のために使っていたのが、DoGA の高津氏が配布されている mmfilter。こちらはある程度、拡張子を見て MIME type を指定してくれるので、テキストファイルや画像などを添付するときに良いのと、後述の理由もあり、筆者の環境では今も現役で使い分けているところです。
PGP(GPG)署名をする
そんなこんなで最近の mnews は有り難いことにいろいろ拡張されていてとても便利なのですが、PGP 署名には対応していないようです。そこで、筆者が2003年に書いた gpgfilter を置いておきます。Perl スクリプトです。使い方はコード中のコメント欄に書いてあります。
※記載のメールアドレスはすでに使えなくなっています。何かありましたらこちらから連絡ください。
これを書いたときは FreeBSD(98) 4.7R + mnews 1.22 + Perl 5.005_03 で動作確認しましたが、今は FreeBSD/pc98 8.0-RELEASE + mnews 1.22PL6T1 + Perl 5.8.9 + GnuPG 2.0.14 + libassuan 1.0.5 でも動作しているので、まだ使えるのではと思います。
ただし、最近の FreeBSD では Perl を packages で入れている場合が多いと思いますが、この場合は 1行目の #!/usr/bin/perl を #!/usr/local/bin/perl に書き換えてください。他にもそうした細かな調整は要るかもしれません。
なお、GnuPG 1系列と組み合わせて使うと秘密鍵のパスフレーズ入力時にリターンキー (Enter) が効かず CTRL+J を入力する必要があったのですが、今は(パスフレーズ入力が libassuan に分離されたためか)特に問題無いようです。
一方、mnews 1.22PL6 のファイル添付を使うと、フィルタの前にファイルを添付してしまうため、その後に gpgfilter が作動すると誤動作します。この場合は前述の mmfilter を使うとファイル添付と併用できます。(このとき、.mnews_setup の send_filter には gpgfilter を先に書くこと。署名は本文のみに有効です。)
mnews のソースパッケージ
場合によっては問題があるかもしれませんが、一次配布元が無いことや、一部の Linux では今も packages が配布されている様子などから、配布そのものは問題なさそうだとの判断により、筆者のような苦労を繰り返さないためにここに置いておきます。
後段にあるように、営利利用は禁止されていますのでご注意ください。くれぐれもご利用は自己責任でお願いします。
以下に doc/read1ST.doc にある著作権に関する記述を載せておきます。
著作権
jnames.c は System-V でのコンパイルエラー回避のために一部改変した
以外はオリジナルのままです。著作権は原作者(實藤@ソニーさん?)にあり
ます。差出人の jnames ドメイン名の決定は vin の Kanjiname kit(大西
@松下電器さん)のものを参考にさせて頂いています。
jnames.c と等価な働きをする jnhash.c は私が記述したコードです。
inetbios.h, inetbios.c の著作権は原作者の沢田@ムライ電気さんにあり
無変更で MS-DOS 版に限って使用しています。
nntplib.c は nntp-1.5.11 に含まれる client.c を参考に書かれていま
す。
rmail.h, rmail.c は Emacs の rmail.el を多少参考にしましたが、コー
ドはオリジナルです。
mimelib.h, mimelib.c は metamail の codes.c を参考に書かれています。
変換テーブルは都合上同じですが、コードはオリジナルです。
youbin.c は伊藤@奈良先端科学技術大学院大学さんが書かれたものですが、
著作権は主張されていません。また mnews では YOUBIN プロトコルを使用
すると明示した場合のみ、youbin.c のコードが使用され、通常は使用され
ません。
jnames.c, inetbios.c, inetbios.h, youbin.c を除いてプログラムはオリ
ジナルです。著作権は宅間 顯が所有しています。
著作権については十分注意しておりますが、第三者の著作権侵害について
も、当該第三者(著作権保持者)以外については一切責任は持ちません。
配布規定
必要なファイルを削除したり、改変しない限り自由に配布して利用できま
す。営利目的での配布/使用はお断りします。
プログラムに不具合があり改変する場合は作者まで確認をとって下さい。
機能追加などの変更をされる際は作者まで変更点の確認をとって、変更後
は該当部分を知らせて下さい。そして変更したままで配布しないで下さい。
これは派生バージョンによる混乱を避けるためです。
謝辞・参考文献
mnews を開発された宅間顯氏、パッチ作成やパッケージなどでメンテナンスされてきた諸氏、および以下の有用なページを公開された皆様に、この場を借りて御礼申し上げます。
また、設定などは下記のページが参考になりそうです。
改版履歴
- 2010.01.12
- 初版掲載
- 2010.01.05
- 情報収集
更新日 : 2010年01月12日 (3834)
CORY's twilight zone > 98備忘録 (tips)[an error occurred while processing this directive] > mnews のインストール
[ CORY's twilight zone | PC-98, FreeBSD(98), Mac OS X, Android | 鉄道・街 | 自然 | | | | ]