[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:10327] Re: canuum (was Re: rxvt で kinput2 が使いたいのですが)



こんにちは。松田陽一@PAL-NET三鷹です。

[Q]
canuum をdeb 化させたい場合、ソースパッケージとパッチの扱いはどのよう
にすれば良いのでしょうか?

[説明]
かなり以前のネタですが、

From: MATSUDA Yoh-ichi / 松田陽一 <matsuda@xxxxxxxxxxxx>
Subject: [debian-users:02924] canuum (was Re: rxvt で kinput2 が使いたいのですが)
Date: Wed, 19 Nov 1997 22:46:45 +0900

> 私は自宅ではLinux を主に非X 環境で使っていまして、canuum+lynx
> を常用しています。
> 過去ログを検索しました所、
> 
> From: Susumu OSAWA <susumu-o@xxxxxxxxxxxxxxx>
> Subject: [debian-users:02302] Re: rxvt で  kinput2  	  が使いたいのですが
> Date: 16 Oct 1997 02:57:28 +0900
> 
> >   大沢です。
> (中略)
> > > canuumはどうでしょう、...と自分でやってみようと思ったら、ない。
> > > Debianのcannaパッケージ(3.5b2-2)にcanuumは入ってない?
> > 
> >   これはcanuumがuumへのパッチで提供されているから、パッケージに含めて
> > いなのかなと思ってるんですが、どうなんでしょうね?
> 
> Debianのパッケージにcanuumがないようなのですが、canuumは需要の
> 少ない物なのでしょうか…。
> canna のソースからmakeして、deb 化すれば良いのでしょうか。

上記投稿から反応が無く、諦めていました。
先日、とある方から質問を頂きまして、 canuum の必要性を再認識し、
無謀にも make に挑戦してみました。
以下、私が行った事を記します。

(1) wnn_4.2.orig.tar.gz 及び canna_3.5b2.orig.tar.gz  を夫々入手
    する。
ftp://ftp.debian.or.jp/pub/Linux/debian-jp/dists/unstable/main/source/utils/canna_3.5b2.orig.tar.gz
ftp://ftp.debian.or.jp/pub/Linux/debian-jp/dists/unstable/main-jp/source/utils/wnn_4.2.orig.tar.gz 

(2) 夫々のアーカイヴを展開し、以下を実行。
    $ cd canna-3.5b2.orig
    $ xmkmf; make Makefile; make canna  ←ここでムチャムチャ時間が掛かる^^;
    $ cd canuum
    $ Bring.sh ../../wnn-4.2.orig/Xsi/Wnn
    $ cp -v ../../wnn-4.2.orig/Xsi/Wnn/include/wnn_os.h .
    $ patch < Canuum.patch &>patcherr

(3) jhlp.c  の reject された patch 部分を手作業で書き直す。
    以下の部分だけを修正すれば OK 。
    
*** 65,77 ****
  #ifdef UX386
  #include <sys/kdef.h>
  #endif
  
  struct passwd *getpwuid();
  
- #ifdef SYSVR2
  #     include <setjmp.h>
  /*    don't define bcopy!!!!          */
- #endif /* SYSVR2 */
  /* jlib.hの中でsetjmp.hがincludeされている!! */
  
  jmp_buf kk_env;
--- 64,77 ----
  #ifdef UX386
  #include <sys/kdef.h>
  #endif
+ #ifdef __MACHTEN__
+ #include <stdlib.h>
+ #endif
  
  struct passwd *getpwuid();
  
  #     include <setjmp.h>
  /*    don't define bcopy!!!!          */

(4) jhlp.c  の 57行目に以下を足す。

#include <stdio.h>
#include <signal.h>
#include "commonhd.h"
#include "sdefine.h"
#include "sheader.h"
#include "config.h"
#include "wnn_os.h"  ←これ

#include <sys/types.h>

(5) Imakefile の以下の行を変更。

/* $Id: Imakefile,v 1.11 1994/04/19 11:38:45 kon Exp $ */
#include "../Canna.conf"

#if SystemV || SystemV4    ←削除
SYS_LIBRARIES = -lcurses
#else                      ←削除
SYS_LIBRARIES = -ltermcap  ←削除
#endif                     ←削除

(6) 以下を実行。
    $ xmkmf;make Makefile;make depend;make

(7) suになって、以下を実行。
    # ln -s /usr/lib/libcanna16.so.1 /usr/lib/libcanna16.so
    # ldconfig
    # chown root.root canuum
    # chmod 4755 canuum

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
(2): jhlp.c 内で wnn_os.h を参照している箇所が幾つか見受けられま
    したので、これを取り込みました。
(4): wnn_os.h を参照する #include 文を追加しました。
(5): -ltermcap  では何故か make に失敗するので、仕方なく強制的に
    -lcurses  に書き換えました。
(7): canuum 実行時に 'libcanna16.so がない' と怒られるので、仕方
    なくシンボリックリンクを追加しました。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

以上のように、何とか make し、取り敢えず動作する所までこぎ着ける
事ができました。
しかし、かなり強引な点が多々有ります。
特に、 termcap-compat を install  済みなのにもかかわらず、
-ltermcap では正常に make できなかったのが何故なのか、判りません。
「-ltermcap ぅ? そんなファイルはねぇよ」と、ld に怒られました。
Imakefile 辺りのどこかを修正すれば良いのかも知れませんが、私には
判りませんでした。

これをdeb 化させようかと考えているのですが、このように複数の既存
のパッケージのソースを参照して作成されるユーティリティの場合は、
パッケージの作成方法、ソースとの関係の取扱い等をどのようにすれば
良いのでしょうか。
deb 化は未経験で、右も左も判らない状態です。
参照するべきポインタだけでもご教示頂ければ幸いです。
--
松田 陽一(yoh)
mailto:matsuda@xxxxxxxxxxxx
http://www.palnet.or.jp/~matsuda/index.htm