PERFORCE change 84876 for review
soc-chenk
soc-chenk at FreeBSD.org
Wed Oct 5 18:12:30 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=84876
Change 84876 by soc-chenk at soc-chenk_leavemealone on 2005/10/06 01:12:09
Upgrade userspace to 2.4.0
Submitted by: soc-chenk
Affected files ...
.. //depot/projects/soc2005/fuse4bsd2/Changelog#15 edit
.. //depot/projects/soc2005/fuse4bsd2/README.html#8 edit
.. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-rc1.diff#3 delete
.. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0.diff#1 add
Differences ...
==== //depot/projects/soc2005/fuse4bsd2/Changelog#15 (text+ko) ====
@@ -1,3 +1,6 @@
+Thu Oct 6 03:01:20 CEST 2005 at node: creo.hu, nick: csaba
+ * Upgrade userspace to 2.4.0
+
Tue Oct 4 23:16:26 CEST 2005 at node: creo.hu, nick: csaba
* Fixes in library patch
- trying again to get mknod right
==== //depot/projects/soc2005/fuse4bsd2/README.html#8 (text+ko) ====
@@ -32,7 +32,7 @@
The main part of Fuse for FreeBSD is a kernel module which provides a kernel messaging interface to the Fuse library in userspace which is compatible with that of the Linux module. The userspace part is pretty portable. A lightweight patch is enough to get that compile and work.
</p>
<p>
-The module was written for and tested with CURRENT, aka FreeBSD-7.0. I'd guess it will work fine with RELENG 6 too, but currently it's not usable with 5.x (or lower) versions. The module will work with 7.0-CURRENT snapshots from not earlier than 8th of August and RELENG_6 snapshots from not earlier than 13th of August (desperate types can try with older CURRENT/RELENG_6 snapshots if they set the <tt>-DUSE_OLD_CLONEHANDLER_API</tt> flag for <tt>cc</tt>).
+The module can be expected work with RELENG_6 snapshots of version number at least <strong>600034</strong>, or with HEAD snapshots of version number at least <strong>700002</strong>. (<em>Hint:</em> you can get the version number of your currently running kernel by <tt>sysctl -n kern.osreldate</tt>; or you can extract the version number directly from the source code by <tt>awk '/#define/{if ($2 == "__FreeBSD_version") { print $3; exit }}' /sys/sys/param.h</tt>.) (Desperate types can try with older HEAD/RELENG_6 snapshots if they set the <tt>-DUSE_OLD_CLONEHANDLER_API</tt> flag for <tt>cc</tt>.)
</p>
<p>
What can be considered as a public homepage for the project is <a class="external" href="http://wikitest.freebsd.org/moin.cgi/FuseFilesystem"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">http://wikitest.freebsd.org/moin.cgi/FuseFilesystem</a>; for updates, further info go there. Get in contact with me via the <tt>soc-chenk</tt> email addrees of the FreeBSD organization (<tt>freebsd.org</tt>).
@@ -50,7 +50,7 @@
<li>
<p>
- Fuse itself. Get Fuse 2.4.0-rc1 from their <a class="external" href="http://sourceforge.net/projects/fuse"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">Sourceforge project page</a>. If this is not availabe there (because a newer (pre)release has taken its place), you can either try to adopt these instructions to the newer (pre)release, or fetch it from my download directory, <a class="external" href="http://creo.hu/~csaba/projects/fuse4bsd/downloads/"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">http://creo.hu/~csaba/projects/fuse4bsd/downloads/</a>.
+ Fuse itself. Get Fuse 2.4.0 from their <a class="external" href="http://sourceforge.net/projects/fuse"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">Sourceforge project page</a>. If this is not availabe there (because a newer (pre)release has taken its place), you can either try to adopt these instructions to the newer (pre)release, or fetch it from my download directory, <a class="external" href="http://creo.hu/~csaba/projects/fuse4bsd/downloads/"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">http://creo.hu/~csaba/projects/fuse4bsd/downloads/</a>.
</p>
</li>
<li>
@@ -58,6 +58,12 @@
The FreeBSD module. Source tarballs are provided at <a class="external" href="http://creo.hu/~csaba/projects/fuse4bsd/downloads/"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">http://creo.hu/~csaba/projects/fuse4bsd/downloads/</a> under the name <tt>fuse4bsd-</tt><em><version></em><tt>.tar.*</tt> (latest release is <strong>0.2.11</strong>, date of release: <strong>21th Sep 2005</strong>). The current code is available via <a class="external" href="http://www.freshports.org/devel/darcs"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">Darcs</a>, you can fetch it by
<pre> darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd</pre> command, or via <a class="external" href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=/depot/projects/soc2005/fuse4bsd2"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">Perforce</a> (you can use this latter link for online source code browsing).
</p>
+<p>
+ <em>Release tarballs and SCM snapshots include a version of this wiki page as <tt>README.html</tt>. Always act according to the included version.
+</p>
+<p>
+ <img src="/classic/img/attention.png" alt="<!>" height="15" width="15"> <strong>Warning</strong>: on rare occasions the wiki version may refer to a not yet committed state of the module code.</em>
+</p>
</li>
<li>
<p>
@@ -98,30 +104,27 @@
<li>
<p>
Apply the patch with
-<pre> patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0-rc1.diff</pre>
+<pre> patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0.diff</pre>
</p>
</li>
<li>
<p>
Do
<pre> cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &&
- cp ../fuse4bsd/fuse_module/linux_compat.h include/</pre> (these commands dynamically customize the header file defining the kernel-userland interface; as these are needed in the module as well, they are handled separately from the userspace patch).
+ cp ../fuse4bsd/fuse_module/linux_compat.h include/</pre> (as <tt>fuse_kernel.h</tt> is used by both of kernel and userspace, the necessary patch is separated from the all-over userspace patch, and is kept by the module code).
</p>
</li>
<li>
<p>
- We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use <tt>~/meta/fuse-2.4.0-rc1</tt> as the prefix. Type the following commands:
+ We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use <tt>~/meta/fuse-2.4.0</tt> as the prefix. Type the following commands:
<pre> mkdir junk &&
ln -s /usr/bin/true junk/chown &&
ln -s /usr/bin/true junk/mknod &&
- echo '#!/bin/sh
- echo "$1" | grep -q /etc/udev || /bin/mkdir "$@"' > junk/mkdir &&
- chmod a+x junk/mkdir &&
- echo '#!/bin/sh
- echo "$@" | grep -q udev || /usr/bin/install "$@"' > junk/install &&
- chmod a+x junk/install &&
+ echo 'echo "$1" | grep -q /etc/udev || /bin/mkdir "$@"' > junk/mkdir &&
+ echo 'echo "$@" | grep -q udev || /usr/bin/install "$@"' > junk/install &&
+ chmod a+x junk/mkdir junk/install &&
(export PATH=`pwd`/junk:$PATH &&
- ./configure --prefix=$HOME/meta/fuse-2.4.0-rc1 --bindir=`pwd`/junk --disable-kernel-module MOUNT_FUSE_PATH=`pwd`/junk &&
+ ./configure --prefix=$HOME/meta/fuse-2.4.0 --bindir=`pwd`/junk --disable-kernel-module MOUNT_FUSE_PATH=`pwd`/junk &&
make &&
make install)</pre>
</p>
@@ -144,7 +147,7 @@
<li>
<p>
Type
-<pre> env PKG_CONFIG_PATH=~/meta/fuse-2.4.0-rc1/lib/pkgconfig/ ./configure && make</pre>
+<pre> env PKG_CONFIG_PATH=~/meta/fuse-2.4.0/lib/pkgconfig/ ./configure && make</pre>
</p>
</li>
@@ -160,15 +163,14 @@
</p>
<p>
As the superuser, do
-<pre>kldload use_module/fuse.ko
+<pre>kldload fuse_module/fuse.ko
sysctl vfs.usermount=1</pre>
</p>
<p>
-Now you'll have to act as a user belonging to the <tt>operator</tt> group or you can as well delete all barriers by
-<pre>devfs rule add path 'fuse*' mode 666</pre>(opening and doing I/O on fuse devices will have no effect until they get mounted).
+Now you'll have to act as a user belonging to the <tt>operator</tt> group. (A different access policy could be set by <a class="external" href="http://www.freebsd.org/cgi/man.cgi?query=devfs&sektion=8"><img src="/classic/img/moin-www.png" alt="[WWW]" height="11" width="11">devfs(8)</a>; eg., deleting all barriers would look like <tt>devfs rule add path 'fuse*' mode 666</tt>. Think of permissions of fuse devices directly as mount permissions of Fuse filesystems.)
</p>
<p>
-Proceed on with the user you chose (we will assume you use the same user as the one who did the installation).
+Proceed on with the user you chose (nevertheless, we will assume you use the same user as the one who did the installation).
</p>
<p>
Pick your favourite ssh accessible account (though maybe you'd better stick to servers running OpenSSH -- I've seen commits in sshfs' CVS for better interoperability with other servers, which show there might occur problems with them), say, it's <tt>foo at bar.baz</tt>.
@@ -176,7 +178,7 @@
<p>
Go to sshfs' directory. First prepare the mount:
<pre>mkdir -p ~/fuse &&
-export LD_LIBRARY_PATH=~/meta/fuse-2.4.0-rc1/lib/</pre>and also make sure that <tt>mount_fusefs</tt> (of FreeBSD Fuse) is in your path. Then do:
+export LD_LIBRARY_PATH=~/meta/fuse-2.4.0/lib/</pre>and also make sure that <tt>mount_fusefs</tt> (of FreeBSD Fuse) is in your path. Then do:
<pre>mount_fusefs auto ~/fuse ./sshfs foo at bar.baz:</pre>
</p>
<p>
@@ -204,6 +206,14 @@
<li>
<p>
+ Make autotools play nice with Fuse (generating configure files doesn't work with CVS snapshots)
+</p>
+<p>
+ <img src="/classic/img/alert.png" alt="/!\" height="15" width="15"> <strong>Autotools gurus, help please! It might be just a five minutes work for you to fix it.</strong>
+</p>
+</li>
+ <li>
+<p>
Implement attr/name caching (with timeouts)
</p>
</li>
More information about the p4-projects
mailing list