[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:6382] new netinstall



藤井です。

From: "M.Fujii" <boochang@xxxxxxxxxxxx>
Subject: Re: [MD:6382] new netinstall
Date: Sun, 13 Mar 2005 23:02:44 +0900 (JST)
> > 藤井さんは Meadow の commit 権限持ってるんですよね??
> > じゃあ netinstall repository もアクセスできるはずなので。
> > (URL は Meadow の隣りです)
> 
> ありがとうございます。遅ればせながら、ソースを commit しました。

commit したソースは一応動作するところまで作成しました。

インストール作業が単にファイルを展開するだけで良いパッケージならば、い
ままでどうりのパッケージと setup.ini が用意されていれば動作します。

あとの作業としては、こんなところだと思います。
  - 外見の調整
  - 日本語版
  - 機能改善・デバッグ

以下長文ですが、変更した。setup.exe についてまとめました。

<<< 実装の方針 >>>

なお、現状は従来の netinstall の仕組みをそのままキープするのではなく、
Cygwin setup の持つ機構をそのまま利用する方向で実装されています。

このあたりは、パッケージ作成者やユーザの皆さんとの議論を踏まえて改善し
ていければと思っています。

<<< ビルド方法 >>>

Cygwin を利用します。bash から以下のようにビルドできます。

$ ./configure -C --host=i686-pc-mingw32 --build=i686-pc-cygwin \
   'CC=gcc -mno-cygwin' 'CXX=g++ -mno-cygwin'
$ make

<<< ディレクトリ構成 >>>

ディレクトリ構成は以下のように、Meadow のバージョン番号を含まないツリー
となります。

Meadow
  + bin
  + bitmap
  + data
  + etc
  + info
  + leim
  + lisp
  + lock
  + packages        ------------- Netinstall用のdir
  |  + etc
  |  + info
  |  + lisp
  |    + default.el  ------------ auto-autoloads.elをロードする
  |  + pkginfo      
  |  |  + $PKGNAME   ------------ パッケージ名
  |  |  |  + MANIFEST  ---------- file list (?)
  |  |  |  + Makefile.pkg ------- makefile for package
  |  |  |  + _pkginfo     ------- オリジナル Elisp URL.
  |  |  |  + auto-autoloads.el -- パッケージ個々のdefault設定
  |  |    ...
  |  + postinstall  ------------- インストール後処理スクリプトを置く(New!!)
  |  + preremove  --------------- インストール前処理スクリプトを置く(New!!)
  |  + setup        ------------- Netinstall install DB and log
  + site-lisp

<<< パッケージの作り直しについて >>>

現状では、info 関連以外のパッケージはそのままでも利用可能です。
info 関連のパッケージは、スクリプト実行について従来の処理を実装してい
ないので、作り直しが必要です。

<<< レジストリの書き込み >>>

以下に書き込みます。

HKEY_LOCAL_MACHINE\Software\GNU\Meadow\netinstall3

したがって、setup.exe 本体の実行には Administrators (もしくは Power
Users) 権限を持つユーザで実行する必要があります。(従来どおり)

<<< スクリプト実行について >>>

以下のようにスクリプトをインストール後、アンインストール前にそれぞれ実
行することができます。バッチファイルが実行されるとき、カレントディレク
トリは Meadow のインストールディレクトリに設定されています。

[ インストール後のスクリプト実行について ]

パッケージに packages/postinstall/*.bat が存在すれば、インストール後
に実行されます。拡張子が bat であれば、ファイル名は任意です。
なお、実行されたスクリプトはファイル名末尾に .done が付加されます。

従来のインストール後処理は実装されていません。

[ アンインストール前のスクリプト実行について ]

アンインストール前に c:/Meadow/packages/preremove/<パッケージ名>.bat 
の呼び出しを試みます。インストール時に上記ファイルが展開されていればそ
れが実行されます。
なお、実行されたスクリプトはファイル名末尾に .done が付加されます。

従来のアンインストール前処理は実装されていません。

<<< MANIFEST について >>>

パッケージのアンインストール時にはパッケージ中の MANIFEST ファイルは参
照されません。setup.exe が自前で管理します。

<<< setup.ini について >>>

依存関係なども記述できます。
文法などについては以下を参照下さい。

http://sourceware.org/cygwin-apps/setup-head.ini.html

<<< 既知のバグ >>>

インストールの最後の画面で Meadow の install.exe を実行するかどうかを
選択できるようにしています。
現状この機能の実行時に問題があり、install.exe を -s オプション付きで起
動して、スタートメニューへのアイコン登録をしないようにさせています。

オプションなしで起動した場合には、以下のような問題が発生します。

この画面から Meadow の install.exe を実行すると、スタートメニューにア
イコンを登録するあたりで install.exe が固まります。setup.exe も 
install.exe の終了を待っているので同じく固まります。

とりあえず install.exe が動作している DOS 窓で CTRL-C で終了させる。
setup.exe 自体は一応終了するですが、しばらくすると Windows が不安定に
なり、再起動せざるを得なくなります。

以上です。

--
藤井 正行 / Masayuki FUJII ( boochang@xxxxxxxxxxxx )