top page > PC unix > here

FreeBSD における XEmacs


概要

FreeBSD 6, 7, 8 系にて,ports/packages からなくなった ja-xemacs-mule-freewnn-21.4 を導入する方法を提示します. 既にこれをお使いで,今後も使い続けたいという方は参考にして下さい.

検討した環境は次のようなものです.

  1. OS は FreeBSD/i386 6.2, 7.2, 7.4, 8.2, 8.3, 8.4 および FreeBSD/amd64 8.4 です.
  2. xemacs の version は 21.4 です. (比較のために,一部 21.5 にも言及します.)

目次

1. 概況
2. FreeBSD/i386
3. FreeBSD/amd64
4. カスタマイズ
5. UTF-8 対応

1. 概況

FreeBSD 6, 7, 8 系においては,ja-xemacs-mule-freewnn-21.4 が ports/packages からなくなっています.[1][2] ここでは,これらを ports を利用して導入する方法を提示します.

ただし,個人では十分に動作の確認ができませんので,何か問題が生じるかもしれません.

このページは,xemacs に格段の思い入れなり使い続けねばならない理由がある方,もしくは別の環境に乗り換える準備 (乗り換え先の検討とか,試用とか) の間のつなぎとして以前から使っている環境を踏襲したいという方のために書きました. ちなみに私は後者なのですが,動作に問題がなければこのまま使い続けてしまうかもしれません.

[1] ja-xemacs-mule-freewnn の削除の理由ですが,pkg-plist の不備で uninstall がちゃんとできないことだそうです. 例え動作に問題がなくても,それだけの理由で ports としては BROKEN に扱いにされるので,もったいないです.

[2] 2014.6.30 に,xemacs 自体が ports/packages からなくなりました.

2. FreeBSD/i386

ja-xemacs-mule-freewnn-21.4 は,次のような手順により容易に導入することができます.

(1) 作業用の directory を作成する.

# cd /usr/ports/japanese
# cp -pR xemacs21-canna xemacs21-freewnn

(2) Makefile を修正する.

# cd xemacs21-freewnn
# vi Makefile           ← vi でなくてもかまいません.

修正箇所は以下の通りです.(COMMENT の方は直さなくても支障はありません.気持ちの問題です.)

--- Makefile.orig        2008-06-06 22:37:37.000000000 +0900
+++ Makefile    2009-09-11 20:19:16.000000000 +0900
@@ -9,11 +9,11 @@
 CATEGORIES=    japanese

 MAINTAINER=    nokubi@ff.iij4u.or.jp
-COMMENT=       XEmacs(stable version) text editor(SJ3, SKK and Canna)
+COMMENT=       XEmacs(stable version) text editor(SJ3, SKK and FreeWnn)

 MASTERDIR=     ${.CURDIR}/../../editors/xemacs21-mule

-CANNA=         yes
+FREEWNN=       yes

 DESCR=         ${.CURDIR}/pkg-descr

(3) xemacs-packages を導入するための下ごしらえをする.[1] (これは少なくとも mew のために必要です.)
  /usr/ports/editors/xemacs21-mule/Makefile を次のように修正すれば,(4) の実行時に導入されます.
  (これは FreeBSD-users-jp 93193 にて提示されたものをそのまま引用しました.)

--- Makefile.orig        2008-10-27 07:48:16.000000000 +0900
+++ Makefile    2011-04-09 16:31:29.000000000 +0900
@@ -88,6 +88,10 @@
 USE_GNOME+=    gtk12
 .endif

+.if !defined(WITHOUT_XEMACS_PACKAGES)
+RUN_DEPENDS+=  ${LOCALBASE}/lib/xemacs/xemacs-packages/etc/enriched.doc:${PORTSDIR}/editors/xemacs-packages
+.endif
+
 PKGDIR=                ${.CURDIR}/../../editors/xemacs21-mule

 PLIST_SUB=     XEMACS_VER=${XEMACS_VER} XEMACS_ARCH=${XEMACS_ARCH}

(4) 通常の ports の流儀で導入作業を行なう.

# make
# make install

かくも容易なのは,環境が整備されているからです. /usr/ports/editors/xemacs21-mule/pkg-descr.ja を御覧下さい.

(5) FreeBSD の version によっては,/tmp にある user 用の directory の所有者 (owner) が root の状態で作成されます. これを各々の user に変更します. (そうしないと,~/tmp が作成されて xemacs の一時的なファイルはそこに置かれます. それで良ければこの作業は不要です.)

# cd /tmp
# chown user_name user_name

(6) 必要に応じてカスタマイズを行なう. 4 節 を参照.

(7) 必要に応じて,その他の ports/packages を導入する.

/usr/ports/editors/semi-xemacs21-mule
/usr/ports/editors/flim-xemacs21-mule

[1] 既に xemacs が導入されているところに xemacs-packages を追加したいのならば,次のようにします.
  ports ならば,以下のところで make, make install します.

/usr/ports/editors/xemacs-packages/

packages ならば以下の名前なので,ファイルを取得して pkg_add します.

xemacs-packages-10.0    : FreeBSD 4.10
xemacs-packages-14.1_1  : FreeBSD 6.2
xemacs-packages-14.2    : FreeBSD 7.2, 7.4, 8.2, 8.3, 8.4

(補足) ja-xemacs-devel-mule-freewnn-21.5 も,同様にして導入することができます. (21.4 との共存はできません.)

# /usr/ports/japanese
# cp -pR xemacs21-canna xemacs-devel-freewnn

Makefile は以下のように書き換えます. 以後の作業は上記の ja-xemacs-mule-freewnn-21.4 と同じです.

PORTREVISION=   1
CATEGORIES=     japanese

COMMENT=        XEmacs(beta version) text editor with mule(SJ3, SKK and FreeWnn)

MASTERDIR=      ${.CURDIR}/../../editors/xemacs-devel-mule

FREEWNN=        yes

.include        "${MASTERDIR}/Makefile"

3. FreeBSD/amd64

FreeBSD/i386 と同一の手順で導入することができます. ただし,.Xresources による本文のフォントの設定が効かないなど,細かい部分で挙動が i386 と異なります.[1][2][3]

それに加えて,Wnn 7 の動作が,ほんの少し緩慢です.[4]

現在は emacs を試用中で,この結果次第では amd64 の環境ではそれを使うという選択をするかもしれません. (xemacsemacs とを混在させることはできないので,両者を並行して検討することが困難なのです.)

[1] xemacs を amd64 の環境で動くようにする作業は行なわれていました. ですから,設定次第で解決するかもしれません.
  ただ,make の際に「pointer を integer に代入している」というような警告も少なからず出るので,とても心配です.

[2] FreeBSD/i386, /amd64 共に 8.4 にそろえて比較をしています. .xemacs/init.el.Xresources も変更しておりませんので,これは amd64 の環境に固有の問題のようです.

[3] 本文のフォントは .xemacs/init.el で細かく設定することができます.

[4] これが痛いのは,あくまで Wnn 7 を使いたい人にとってです. amd64 対応に関しては FreeBSD における Wnn 7 もご覧下さい.

4. カスタマイズ

初期化を制御するファイルは ~/.xemacs/init.el です. ~/.emacs は効きません.

表示に関する初期化は ~/.Xresources を用います. (init.el でも設定可能な項目もあります.) 以下は設定例です. (バッファもメニュー・バーも同じフォントに設定しています.)

! バッファの背景の色
XEmacs*EmacsFrame.default.attributeBackground: cornsilk
! 生成される Window の大きさと位置
XEmacs.geometry: 80x49-0-0
! バッファのフォント
XEmacs*EmacsFrame*attributeFont: -misc-fixed-medium-r-*-*-*-130-*-*-*-*-*
! メニュー・バーのフォント
XEmacs*fontList:\
-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1; \
-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0; \
-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0:

バッファにてより細かい指定をするために以下のようなリソースもありますが,私は使っておりません.

XEmacs*EmacsFrame.default.attributeFont:
XEmacs*EmacsFrame.bold.attributeFont:
XEmacs*EmacsFrame.italic.attributeFont:
XEmacs*EmacsFrame.bold-italic.attributeFont:

5. UTF-8 対応

xemacs-21.4 は,ports/packages 名に -mule の付いた xemacs を導入すれば,~/.xemacs/init.el に次のように記述することにより UTF-8 を扱うことができるようになります. (私が導入したのは ja-xemacs-mule-freewnn-21.4.14 です.) この場合,emacs とは異なり ports/converters/mule-ucs を導入する必要はありません. (同等のものが xemacs-mule-packages に含まれているので.)

(set-language-environment 'japanese)          ; これらを設定した後で
(set-default-file-coding-system 'euc-jp-unix) ; 下記の 3 行を設定して下さい.
;
(require 'un-define)
(set-coding-category-system 'utf-8 'utf-8)
(set-coding-priority-list '(utf-8))

xemacs-21.5 は既に UTF-8 に対応しておりますので,これらの設定は不要です. ただし,こちらの場合には EUC の文書は,平文は正しく EUC と認識されるのですが TeX の文書は Raw 扱いにされてしまいます. (先頭の数文字だけ読んで判断するのか?)