Sylvestre, one of the problems with fuse itself is that it's GPL
licensed, and not appropriate
for inclusion in base. If you've got interets and talent in this area,
you might want to consider
having a peek at puffs (and refuse) from netbsd which has a workable
license and could
be included in base.   I would definitely help if you're interested...

-Bob


On Tue, Mar 5, 2013 at 5:43 AM, Sylvestre Gallon <ccna....@gmail.com> 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.
>
> 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

Reply via email to