FDclone なページ


拙作のファイル&ディレクトリ管理ツール FDclone のページです。
読み物 FDclone って何?
FreeBSD で FDclone なページ
Samba に優しい FDclone なページ
掲載誌なページ
旧版なページ
ソース FD-3.01j.tar.gz (MD5: 81f4b5a2aa50afac8c1677d34a646a7e)
差分(3.01i → 3.01j) FD-3.01j.patch.gz (MD5: 8f792693aeced1070431469e90f7f2c8)
実行ファイル (DOS/V) FD301J-B.LZH (MD5: 5f6ff827a58b8c427feecdb4b479c44d)
実行ファイル (PC-98x1) FD301J-9.LZH (MD5: 412c122f451a3ac4f5ce6c6a762dcbd1)
FTP アーカイブ ftp.unixusers.net (MD5: 一覧)
各種ドキュメント README(英文)
HISTORY(英文)
FAQ(英文)
マニュアル(英文)
Install(英文)
TECHKNOW(英文)
LICENSES(英文)
ToAdmin(英文)

FDclone-users ML について:

bug 報告や機能リクエストなどの user support と開発用を兼ねた ML を開設しました。 ML 参加希望の方は、 ML 案内 page の手順に従って申込み手続きをして下さい。
尚、 FDclone-users ML の開設に伴い、 これまで頒布関係者の方々に個別にお送りしてきた release announcement mail は廃止します。 今後の release announcement mail を希望される頒布関係者の方は、 是非 FDclone-users ML にご参加下さい。


最新版 FD-3.xx について:

FD-2.00 で shell 機能を内蔵するという大きな変更を行なって以降、 細かな変更は毎年のように行なって来たのですが、 major version を更新する程の大きな変更はありませんでした。 しかし、 兼ねてからリクエストの多かったネットワーク対応を行なうにあたり、 source file の構成や必須 library の変更など大きな変更が伴い、 FD-2.00 の release から 7 年の歳月を経て FD-3.00 という形で release することとなりました。
FD-1.xx から FD-2.xx への version up 時とは異なり、 FD-2.xx から FD-3.xx への version up では、 設定ファイルも含めて上位互換性を保てないような変更はありませんが、 変更点の多さのために、 環境によっては FD-2.xx で可能だったことが FD-3.xx では不可能になっていることもあるかも知れません。 FD-3.xx の使用に際して何か支障があるようでしたら、 遠慮なく作者までご相談下さい。

各 version での主な変更点:
2.00 system(3) を使わず shell 機能を内蔵しました。
2.01 POSIX 規格に準拠した shell 機能を追加しました。
2.02 POSIX 規格に合わせて組込みコマンドや shell 変数仕様を追加しました。
2.03 これまで希望の多かった FTP client 実装について簡易的な解を示すべく、 組込みコマンド browse を設けました。
2.04 主に端末表示周りの設定を充実しました。
2.05 Mac OS X 環境に配慮したほか、 オリジナル版の『FD』に対する敬意を込めて幾つかの設定項目を追加しています。
2.06 シェル機能利用時に便利な機能を充足しました。
2.07 擬似端末を実装しマルチウィンドウで独立した子プロセスの実行を実現しました。
2.08 擬似端末機能を強化すると共に、 管理者権限での操作に対する親和性を強化しました。
2.09 文字列入力時のかな漢字入力モードを実装し、 またこれまでユーザから貰ったリクエストの数々を実装しました。
3.00 URL ドライブやソケットリダイレクト等のネットワーク対応を行ない、 またメッセージカタログ機能も実装しました。
3.01 IME 関連の管理を充実させ、 またユーザからのリクエストを幾つか実装しました。

各種 OS 環境の対応状況:
2.01 Linux/ia64 に対応。
2.02b Embedix(OpenPDA) に対応。
2.04c Cygwin に対応。
2.08a NetBSD 3.0 に対応。
3.00i MINIX 3.1 に対応。
NetBSD 5.0 に対応。
3.00l Android 4.0 に対応。
MINIX 3.2 に対応。
3.01f FreeBSD 11.1 に対応。
NetBSD 7.1 に対応。
OpenBSD 6.2 に対応。
MINIX 3.3 に対応。
3.01i Android 9.0 に対応。


MS-DOS 版実行ファイルについて:

ここに用意されているのは飽くまでも MS-DOS 用の実行ファイルであって、 決して MS-Windows の MS-DOS プロンプトやコマンドプロンプト用のものではありません。 ですから、 そういった非 MS-DOS 環境で起動した場合の動作保証は致しません。
また、 real mode 実行ファイルであるために利用可能なメモリが限られています。 FDclone から起動する外部コマンドによっては、 メモリ不足で起動出来ないこともあるでしょう。 ハイメモリ環境用にそういう制限を取り払った実行ファイルが欲しい場合は、 protected mode 実行ファイルとして compile したものを各自で用意して下さい。 現状の support では DJGPP を用いて protected mode 実行ファイルに compile 出来ます。

但し、 DJGPP は GPL の束縛を受けるので、 その compile 済実行ファイルは作者の手では配布しません。 GPL は感染性のある license ですので、 FDclone が不必要に GPL に汚染されるのを避けるための配慮です。 ご理解下さい。
source package に同梱されている makefile.dpc や makefile.d98 を用いれば、 source に一切変更を施すことなくそのまま make 可能なことは確認済です。 DJGPP v1.xx の場合は makefile.gpc や makefile.g98 を用います。 手順詳細は、 同梱ドキュメントの Install を参照して下さい。
DJGPP で compile した実行ファイルは、 DJGPP の CWSDPMI.EXE を用いれば従来の MS-DOS 環境でも実行可能です。 この CWSDPMI.EXE は DJGPP の各ミラーサイトにある v2misc/csdpmi?b.zip (最新版は csdpmi7b.zip) に含まれています。 その辺りの DJGPP 詳細については DJGPP サイトの各種ドキュメントを参照して下さい。

これだけでは余りに不親切かと思いまして、 DJGPP の official release site から最新版の DJGPP を自動的に取得して make を行なうような shell script を用意しました。 このパッケージの中には、 MS-DOS で動く Bourne shell 互換の FDBSH.EXE (後述: このパッケージ同梱のものは LSI C-86 Ver. 3.5 にて compile してあります。)、 その上で動く shell script である DJMAKE.SH、 そしてその script を shell に渡すバッチファイル DJMAKE.BAT が納められています。
これらを FDclone のソースと同じディレクトリに展開し「djmake」と入力すれば、 FTP.EXE を用いて Internet から DJGPP の compile 環境一式を download し、 その後 compile を実行してくれます。 回線の太さや PC の性能にもよりますが、 相当劣悪な環境でも十数分程度で完了すると思います。 詳しい手順は同梱の README.DJM を参照して下さい。

MD5 (DJMK301J.LZH) = f924ecdbda03b3f8f81729cd57fbbfd2


Linux Zaurus 版実行ファイルについて:

Linux(Embedix) を搭載した Zaurus 用に、 クロスコンパイル環境及びセルフコンパイル環境が提供されていますが、 実機でのコンパイルには時間がかかり本体メモリも少ないため、 クロスコンパイル環境を構築した方が賢明でしょう。 Zaurus 用クロスコンパイルには arm-linux-gcc を用いますので、 コンパイルの手順は以下のようになります。

  1. Linux(i386) 機にコンパイル環境を構築する。
  2. make CC=arm-linux-gcc HOSTCC=cc PREFIX=/usr
  3. make STRIP=arm-linux-strip ipk
これで binary パッケージまで作成されるようにしてあります。 あとは作成されたパッケージを実機に持って行って「ソフトウェアの追加/削除」でインストールして下さい。
Zaurus 本機でコンパイルする場合は普通に make 一発で大丈夫です。 また、 「make STRIP=strip ipk」とすれば Zaurus 本機でも binary パッケージまで作成されます。 但し、 コンパイル環境は標準では実装されていませんので別途用意する必要があります。

追記: 下記 URL にて ipk 形式の package が公開されています。 この binary package は正規に頒布登録されたものです。
http://www.areanine.gr.jp/~nyano/fdclone.html


Linux には優しくない FDclone:

FD-3.00 から RPM 用の spec ファイルが配布パッケージに同梱されるようになりました。 RPM を採用している distribution では普通に使えると思います。

因みに、 各種 Linux パッケージ用にはこんな感じのランチャ登録が有用なので、 ~/.fd2rc に追加しておくと幸せになれるかも知れません。
  1. RPM の場合 (上記 fd.spec では /etc/fd2rc 内に登録済)
    launch ".rpm"	"rpm2cpio %C|cpio -tv"	"%a %l %u %g %s %m %d %{yt} %*f"
    arch ".rpm"	"echo ERROR; false"	"rpm2cpio %C|cpio -id %TA"
    
  2. deb の場合
    launch ".deb"	"ar -p %C data.tar.gz|gzip -cd|tar tvf -"	"%a %u/%g %s %y-%m-%d %t %*f"
    arch ".deb"	"echo ERROR; false"	"ar -p %C data.tar.gz|gzip -cd|tar xf - %TA"
    
あと、 最近の Linux では色々とトラブルが頻発しているようなので FAQ 代わりに幾つか挙げておきます。
  1. library がない。
    「/usr/bin/ld: cannot find -lncurses」とか言われて compile が止まることがありますが、 これは必要な library が見つからないので compile に失敗したことを示しています。 Linux では libncurses を使うことになっていますので、 apt-get なり yum なりで「ncurses」とか「ncurses-devel」とか install してから compile し直して下さい。
  2. WRITE_DIR で書込んでも変化がない。
    TECHKNOW にも書きましたが、 ext2/ext3 は「dir_index」属性を有効にしてあると directory 内の並び順を一切変更することが出来なくなります。 tune2fs(8) を使うとこの属性設定を変更出来ますので、 man page の記述を参考に設定変更してみて下さい。

fdsh: Bourne shell 互換 shell:

FDclone 3.xx の package を install すると、 「fd」以外に「fdsh」という実行 file が作成されます。 (MS-DOS binary package では、 FDC.EXE または FDC98.EXE を FDSH.EXE という名前に copy することで作成出来ます。) これは FDclone の shell 形態で、 FDclone の各種機能を保ちながら command line で実行出来るという代物です。 但し、 program の実体は FDclone そのものですので、 Bourne shell 互換 shell としてはいささか肥大化したものになっています。

このうち、 FDclone 特有の機能を排除し、 Bourne shell 互換 shell としてのみ機能させるための実行 file も作成することが可能です。
FDclone 3.xx の source を展開し、 「make sh」とすれば「fdsh」という名前の実行 file が作成されます。 shell の機能チェックのためにはこちらの方が軽いので、 これを用いて検証を行なって下さい。

また、 MS-DOS でも compile 可能です。 LSI C-86 試食版では compile 出来ませんが、 LSI C-86 製品版や Borland C++ 等で compile 出来ます。 生 DOS 用の Bourne shell は他に見当たらないので実は希少価値があるかも知れません。 COMMAND.COM に飽きた時にお試し下さい。


fdbsh: もっとコンパクトな Bourne shell 互換 shell:

fdsh よりも更にコンパクトな shell を作るために、 4.3BSD 以降にオリジナルの Bourne shell に対してベンダー拡張された機能 (主に Korn shell による実装) を全部排除してみました。 shell script 用にはこの程度の最低限の機能でも十分だと思います。
FDclone 3.xx の source を展開し、 「make bsh」とすれば「fdbsh」という名前の実行 file が作成されます。 MS-DOS 環境では LSI C-86 試食版でも compile 可能になっています。 makefile.lpc/makefile.l98 の「CC」の値を「lcc86」から「lcc」に置き換えてから compile してみて下さい。

但し、 現実的な用途を踏まえた上で、 以下の二点のみ Bourne shell から機能拡張してあります。

  1. echo を内部コマンドで用意した。
  2. MS-DOS 版に COMMAND.COM の内部コマンドを実装した。
    (但し、Windows 拡張機能である dir の /V, /4 option はサイズの問題から割愛)


FD-3.xx のライセンスについて:

1.03 で適用したライセンスに若干支障があったため、 これを 2.00 以降では大きく見直し改定しました。
私は旧世代の UNIX を触ってきた世代なので、 最近の PC-UNIX で主流になっている binary 配布という形態に馴染めず、 その辺りの意思疎通の悪さのせいもあって、 残念ながら 1.03 のライセンス条件は大きく誤解を招いてしまっていたようです。

そんなこんなで、 3.xx のライセンス(英文)は 1.03 までのものと違って明示的な記述を増やして曖昧性を極力排除しました。 関係各方面の方々はご一読下さい。


苦情・問い合わせはこちらまで。 shirai@unixusers.net

トップページ