On Tue, Mar 05, 2013 at 01:43:24PM +0100, Sylvestre Gallon wrote: > Hi tech@ > > I send you this mail because a few months ago I tried to dabble with fuse > filesystem and OpenBSD. After some time working on this subject I have > succeeded to create something that works. It is not even near to be perfect > but with some changes and adaptions I think it could do the job.
Before anyone flame you for whatever reason, let me say that I am *very* happy that some work in done in this area. I'll try and play with this and see what comes out of it; may take a little bit of time though. > In order to use these patches you will need to follow this procedure: > > * apply the ports patch : > root # cd /usr/ports > root # ftp http://www.pmbsd.org/patch-fuse-ports > root # patch -p0 < patch-fuse-ports > > * apply the src patch > root # cd /usr/src > root # ftp http://www.pmbsd.org/patch-fuse-src > root # patch -p0 < patch-fuse-src > > * upgrade your system mount.h > root # cp /usr/src/sys/sys/mount.h /usr/include/sys/mount.h > > * compile all mount and umount binaries > root # cd /usr/src/sbin/mount && make && make install > root # cd /usr/src/sbin/mount_ffs && make && make install > root # cd /usr/src/sbin/mount_fusefs && make && make install (there are > warning for a missing manpage) > ... > root # cd /usr/src/sbin/umount && make && make install > > * build a new kernel > root # cd /usr/src/sys/arch/i386/conf > root # config GENERIC > root # cd ../compile/GENERIC > root # make && make install > > * update MAKEDEV script and launch it to create the fuse device > root # cd /dev > root # ftp http://www.pmbsd.org/patch-fuse-MAKEDEV > root # patch MAKEDEV < patch-fuse-MAKEDEV > root # ./MAKEDEV > root # ./MAKEDEV fuse > > * install devel/fuse and sysutils/sshfs-fuse packages > root # cd /usr/ports/devel/fuse && make && make install > root # cd /usr/ports/sysutils/sshfs-fuse && make && make install > > * reboot and try sshfs > root # reboot > root # sshfs s...@pmbsd.org:/home/syl/code /mnt > root # ls /mnt > > > As I said before, this is not perfect... There are some outstanding > features to implement and bugs or architectural mistakes to solve... > > There is some work to do to implement these missing vnops and vfs features : > > * vptof > * fhtovp > * checkexp > * sysctl > * strategy > * fsync > * symlink > * rename vnop > * you could only mount one filesystem at once. > > I think some security improvement could be done on these patches like : > - fix some panics and tsleep hole that could produce DoS... > - allow the use of fuse with a securelevel equal to -1... > - other security stuff that I'm surely missing :) > > I will not explain all the fuse protocol in this mail but if you want > information on how it works I will answer your questions in a private mail. > > If you have any questions about these patches or want me to change or > rework something in this code I will be happy to do it. > > Thanks for your time, > > Cheers, > > -- > Sylvestre Gallon -- Antoine