2009年12月4日金曜日

Emacsのパッケージング事情

debian emacs policyを理解できてきたところで、他のパッケージ管理機構についてざっと調べてみた。結構いろいろな情報がある。

何かひとつをちゃんと知るということは、やっぱり大変なことだなぁと再認識した。


* Emacsのパッケージング事情
** ヘッダ等の慣習
*** Conventional Headers for Emacs Libraries
- http://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Headers.html#Library-Headers
- GNU Emacs Lisp Referenceの一部。
- Elispファイルを書くときの慣習。
- ライブラリのメタデータ(著者等)をコメントとして
記述するための慣習。
- ライブラリの中身をコメントで構造化するための慣習。
- 例:メタデータ

;;; lisp-mnt.el --- minor mode for Emacs Lisp maintainers

;; Copyright (C) 1992 Free Software Foundation, Inc.

;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: Eric S. Raymond <esr@snark.thyrsus.com>
;; Created: 14 Jul 1992
;; Version: 1.2
;; Keywords: docs

;; This file is part of GNU Emacs.
...
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.

ここに本体コード。

;;; filename --- description

- 例:構造化コメント

;;; Commentary:
;;; Documentation:
;;; Change Log:
;;; Code:
;;; filename ends here

*** Elisp Area Conventions
- http://www.emacswiki.org/cgi-bin/wiki/ElispAreaConventions
- EmacsWikiのElisp Areaに置くelispのかきぶりの慣
習の説明。
- GNU Emacs Lispの慣習をベースにして、詳細化や拡
張を実施している。

** ヘッダツール
*** Automatic File Headers
- http://www.emacswiki.org/emacs/AutomaticFileHeaders
**** auto insert mode
- ユーザが定義したテンプレートにしたがって、ファイ
ル作成時にヘッダを自動的に挿入する。
auto-insert-alistでファイル名パターンとテンレプー
トを紐付ける。
**** header2.el
- Elisp Area Conventionsに対応したヘッダを自動挿入
や自動更新するelisp。
- そのライブラリが必要とするfeaturesを記述する欄を
設けている。(これは他のConventionsでは定義されて
いない)
- ;; Features that might be required by this library:
**** lib-requires.el
- ライブラリの依存情報を調査して、木構造をつくる
elisp。
**** elisp-depend.el
- elispファイルをparseして、そのelispで依存してい
るライブラリを探索し、それぞれについて、それが
providedならば、require式を出力し、そうでなけれ
ばautoload式を出力する。
**** checkdoc
- http://www.emacswiki.org/emacs/CheckDoc
- elispファイルのヘッダをチェックする。GNU慣習と
EmacsArea慣習の双方に対応している。

** パッケージ管理機構
*** Emacs Lisp List
- http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html
- http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.xml
- http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.el
- パッケージ一覧ファイル(ell.xml)とそれを参照する
ローダ(ell.el)を提供。
- ell.elではavltreeをつかってパッケージのキャッシュ
を作成し管理している。興味深い。

*** Auto Install
- http://www.emacswiki.org/emacs/AutoInstall
- フルセットのパッケージ管理が可能。
- パッケージの取得先はEmacsWiki他、いくつか指定可
能。
- パッケージの依存関係の管理などがどうなっている
のかは要調査。

*** ELPA
- http://tromey.com/elpa/
- パッケージアーカイブとそれを参照するローダを提
供。
- Web上の説明が簡素なため、理解するためには使って
みる必要がありそう。
- パッケージアーカイブの仕様を調べてみたい。

*** Install Lisp
- http://www.emacswiki.org/emacs/InstallElisp
- Auto Installの前身と考えてよさそう。

*** XEmacs package system
- http://www.xemacs.org/Documentation/packageGuide.html
- XEmacsはパッケージ管理機構を組み込みでもってい
る。専用のパッケージアーカイブも存在する。
- debian-emacs-policyとはどういう関係になるのだろ
う。
- 詳細は要調査。


こつこつ。

0 件のコメント: