Web拍手:
Cygwin 上で sshfs を使うために,FUSE のソースを修正してコンパイルする.
でも,FUSE のコンパイルをできるようにした時点で,この先の作業量を考えたら,なんだか,面倒になってきてしまった(^^;).
Dokan ライブラリのほうがいいような気がしてきた(^^;).
Cygwin 上で sshfs を使うためのソースの修正は,やらないかもしれない.
--
SSH Filesystem(sshfs)
http://fuse.sourceforge.net/sshfs.html
SSH Filesystem を使うためには,Filesystem in Userspace(FUSE) が必要.
ます FUSE をインストールする.
Filesystem in Userspace(FUSE)
http://fuse.sourceforge.net/
FUSE のソースは,そのままでは Cygwin 上でコンパイルできないので,次の小細工を加えてごまかす.
lib/fuse_misc.h の 14 行目付近を変更
#define FUSE_SYMVER(x) __asm__(x)
↓
#ifndef __CYGWIN__
#define FUSE_SYMVER(x) __asm__(x)
#else
#define FUSE_SYMVER(x)
#endif
lib/mount.c の 40 行目付近に追加
#ifdef __CYGWIN__
#include
#include
#endif
lib/mount.c の 40 行目付近に追加
#ifndef MS_RDONLY
#define MS_RDONLY 1
#endif
#ifndef MS_NOSUID
#define MS_NOSUID 2
#endif
#ifndef MS_NODEV
#define MS_NODEV 4
#endif
#ifndef MS_NOEXEC
#define MS_NOEXEC 8
#endif
#ifndef MS_SYNCHRONOUS
#define MS_SYNCHRONOUS 16
#endif
#ifndef MS_NOATIME
#define MS_NOATIME 1024
#endif
lib/mount.c の 328 行目付近を変更
res = umount2(mountpoint, 2);
↓
#ifndef __CYGWIN__
res = umount2(mountpoint, 2);
#else
res = cygwin_umount(mountpoint, 2);
#endif
lib/mount.c の 542 行目付近を変更
umount2(mnt, 2); /* lazy umount */
↓
#ifndef __CYGWIN__
umount2(mnt, 2); /* lazy umount */
#else
cygwin_umount(mnt, 2); /* lazy umount */
#endif
lib/mount.c の 483 行目付近を変更
res = mount(source, mnt, type, mo->flags, mo->kernel_opts);
↓
#ifndef __CYGWIN__
res = mount(source, mnt, type, mo->flags, mo->kernel_opts);
#else
res = mount(source, mnt, mo->flags);
#endif
lib/mount.c の 498 行目付近を変更
res = mount(source, mnt, type, mo->flags, mo->kernel_opts);
↓
#ifndef __CYGWIN__
res = mount(source, mnt, type, mo->flags, mo->kernel_opts);
#else
res = mount(source, mnt, mo->flags);
#endif
lib/mount_util.h: の 11 行目付近に追加
#ifndef _PATH_MOUNTED
#define _PATH_MOUNTED "/var/lib/misc/mtab"
#endif
lib/mount_util.c: の 97 行目付近を変更
res = umount2(mnt, lazy ? 2 : 0);
↓
#ifndef __CYGWIN__
res = umount2(mnt, lazy ? 2 : 0);
#else
res = cygwin_umount(mnt, lazy ? 2 : 0);
#endif
lib/ulockmgr.c: の 23 行目付近に追加
#ifdef __CYGWIN__
#include
#endif
lib/ulockmgr.h: の 1 行目付近に追加
#ifndef MSG_WAITALL
#define MSG_WAITALL 0x8
#endif
#ifndef F_UNLCK
#define F_UNLCK 2
#endif
#ifndef F_GETLK
#define F_GETLK 5
#endif
#ifndef F_SETLK
#define F_SETLK 6
#endif
#ifndef F_SETLKW
#define F_SETLKW 7
#endif
example/fusexmp.c の 86 行目付近を変更
st.st_mode = de->d_type << 12;
↓
#ifndef __CYGWIN__
st.st_mode = de->d_type << 12;
#endif
example/fusexmp_fh.c の 107 行目付近を変更
st.st_mode = de->d_type << 12;
↓
#ifndef __CYGWIN__
st.st_mode = de->d_type << 12;
#endif
型変換の警告がわんさか出るけれど,だいじょーぶなのかしら?(^^;).
とりあえず,./configure; make; make install.
これで,FUSE がインストールできた.
次は,sshfs のコンパイルができるようにソースを修正するのだけど,最初に書いたとおりで,なんだか面倒になってきてしまったので,やらないかもしれない(^^;).
ちなみに,sshfs は,addrinfo 構造体まわりの使い方を Cygwin 向けに直せば動きそうなので,この続きを誰かやってくれると,ちょっと嬉しい.
==
Dokan sshfs
http://cancoffee2.at.webry.info/200809/article_37.html
--
【コンピュータの最新記事】
- このブログ「とり茶」を,Seesaaブログから自宅サーバーの WordPress..
- メロディを入力することで楽譜を検索できるシステム,「musiconn.score..
- いつのまにか,MuseScore のモバイルアプリが Freemiumモデルに移..
- 「blogramサービス終了のお知らせ」 どこが運営しているブログシステムかを問..
- noike.info サイトの内容を WordPress で管理することにしまし..
- A 様から,「SMF to MP3 with ぼーか郎」に Amazon ギフト..
- noike.info ドメインの有効期限を 1年延長した.去年と変わらず 160..
- MuseScore の 2.3.2 がリリースされたそうです.
- 「MusicXML to MP3 with ぼーか郎」で,拡張子が .music..
- MuseScore の 2.3.1 がリリースされました.同梱されている言語ファ..
- Windows 用の MuseScore 2.3 で,ストレージ(ディスク)に十..
- MuseScore の 2.3 が公式にリリースされました.個人的には,新機能の..
- MEI, MusicXML, PAE(RISM) のデータを WordPress..
- 池添 彰 様から,noike.info のサービスに Amazon ギフト券での..
- 先日の Windows Update 適用後から Emacs(NTEmacs) ..
- 「東芝コミュニケーションAI「RECAIUS」(リカイアス)の音声合成技術」「音..
- TVアニメ版の「紅殻のパンドラ」を観終えた.全 12 話.「攻殻機動隊」の世界観..
- Android タブレットを PC のマルチディスプレイのひとつにすることを思い..
- MuseScore が 2.2.1 にアップデートされました.2.2 のリリース..
- MuseScore の 2.2 がリリースされました.いままでと同様に無料で使え..