[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1996] Would anyone like to release Meadow immediately?
- X-ml-count: 1996
- Subject: [MD:1996] Would anyone like to release Meadow immediately?
- From: Shuichi KITAGUCHI <ki@xxxxxxxxxxxxxx>
- Date: Mon, 22 Jan 2001 01:19:30 +0900 (JST)
- X-mailer: xcite1.39> Mew version 1.95b99 on Emacs 20.7 / Mule 4.1 (AOI)
北口です。まだちゃんと頭の中でまとまっていませんので、つらつらと...
圭一> 私としては、いわゆる binary package ではなく、 ports みたいな
圭一> make の自動化というほうが、うれしいかなと思います。
圭一> Elisp の場合、純粋に *.elc だけを install するって言うのは、個人
圭一> 的には考えられませんし、 GNU Emacs の流儀ではありませんので、
圭一> package のサイズのことも考えると、 make の自動化がうれしいのでは
圭一> ないかと思います。
北口> ports は私も好きなのでそれができるに越したことはないと思うのです
北口> けど、make 時にいろいろなツールを要求されると嬉しくないなと思います。
北口> だから、ports 的動作があってもいいけど配布物としては packages 的に
北口> なっている方が良いかな、と。ただ、
圭一> 私は基本的に...
圭一> Elisp コードは source 配布、 Windows binary は binary 配布という
圭一> 方針にしたいと思っています。
圭一> ;; 前者のコンパイル環境は絶対にあるはずだけれど、後者のものはそ
圭一> ;; うとは限りませんし、いろんなものがありますので。
Meadow のバージョンアップを考慮に入れるなら、.el をコンパイル時に何か
処理を行うもののことを考えてこの方が良さそうですね。
圭一> で、自分で Windows binary を作りたい人以外には、 make.exe 等を要
圭一> 求しないようにする。というのが望ましいと思っています。
圭一> 問題点の洗い出しも含めて、必要なこと、および私の考えをあげてみま
圭一> す。
圭一> ;; (技術的な|コストの)問題はとりあえず置いておきます。
圭一> 1. パッケージ管理パッケージ
圭一> Meadow の core package に含めてしまうという手もありますが、 core
圭一> package を小さくするという意味と、バージョンアップのことを考えて、
圭一> ange-ftp を使った boot strap を Meadow の core package に含めて
圭一> おいて、パッケージを使いたい人は、これをインストールするようにす
圭一> るというのが良いのではないかと思います。
圭一> ;; gzip, tar, patch, wget 辺りを含めることになるのではないでしょ
圭一> ;; うか。
これは確かに必要ですね(もしかすると、make もかも)。
圭一> 2. パッケージ選択
圭一> 特定の URI に対応パッケージ情報のリスト置いておき、それを取得し
圭一> て一覧選択できるような elisp アプリケーションを作る。
圭一> ;; リストファイルの内容は、パッケージ名、バージョン、配布元の
圭一> ;; URI 位でしょうか。
上記に加えて、パッケージのバージョン、簡単な(一行程度の)説明、あたりが
欲しいかなと思います。
圭一> 3. パッケージ情報取得
圭一> リストで選択したパッケージの URI から、 ports 的なものを取得する。
圭一> パッケージ本体は、別経路での取得、要不要の判断の機会のことを考え
圭一> て、この中には URI を記述するようにする。
圭一> この中には...
圭一> 1) 必要なファイルの URI list
圭一> 2) パッケージ依存情報
圭一> 3) Document (なにをするものか、および、 patch による変更箇所位は
~~~~~~~~~~~~~~~~~~~~
これ重要ですね。Linux でも FreeBSD でも、「げ、なんでデフォルトと
違うんだ?」と思う時がありますし。
圭一> 書いておく)
圭一> 4) Make / install のための elisp code
5) 作成されるディレクトリ & install されるファイル一覧
が、Uninstall のことを考えると必要だと思います。
たいていはディレクトリまるごと、で大丈夫でしょうけど。
圭一> を含める。
圭一> 1) がの内容が小さいものであれば、本体もこの中に入れてしまって、
圭一> URI を current direcotry にしておくというのも良いかもしれません。
圭一> 4. Make / install
圭一> 1) 3. 4) の elisp code は、 uninstall 情報を特定のファイルに出力
圭一> する。
圭一> 5. Uninstall
圭一> 4. 1) の情報と、インストール済みパッケージの依存情報を元に不
圭一> 要なものを削除する。
圭一> 6. その他
圭一> 自分でインストールしたものもパッケージの依存情報として使える
圭一> ようにする。
これは何か方法を用意したいですよね。自分で入れたがために、依存関係が
ボロボロになるのは避けたいですから...
北口> 個人的には
北口> Meadow/pkg/lisp/app-name (本体)
北口> doc/app-name (ドキュメント類)
北口> db/app-name (uninstall 用情報)
北口> こんなのかなぁ、と思ってます。
北口> もっとも、.exe は Meadow/x.xx/bin に入れるしかないと思いますが。
北口> # pkg/bin を作ってパスを通しておくのもいいかもしれませんね。
北口> ただ、SKK などデフォルトでは Meadow/x.xx/site-lisp に入るものは
北口> どうしたものだろう...
圭一> Compile 時に emacs 環境による最適化を行うものもありますので、
圭一> Meadow/x.xx/pkg/lisp/app-name というのもやはり必要かもしれません。
圭一> あまりディレクトリを増やしたくないというのであれば、subdirs.el
圭一> が recursive にディレクトリを検索するという特徴を生かして、各
圭一> site-lisp の下に pkg/app-name というのを作るというのも、良いので
圭一> はないかと思います。
なるほど、その方法が良さそうですね。すると、
Meadow/x.xx/site-lisp/pkg/app-name
site-lisp/pkg/app-name
pkg/doc/app-name
pkg/db/app-name
こんな感じでしょうか(あと info もあると思うけど)。
次は、生贄^H^H試験用アプリをいくつかピックアップして具体案を
煮詰めながら検討、というところでしょうか。
--
Shuichi Kitaguchi // ki@xxxxxxxxxxxxxx kit@xxxxxxx