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&nbsp;-n&nbsp;kern.osreldate</tt>; or you can extract the version number directly from the source code by <tt>awk&nbsp;'/#define/{if&nbsp;($2&nbsp;==&nbsp;"__FreeBSD_version")&nbsp;{&nbsp;print&nbsp;$3;&nbsp;exit&nbsp;}}'&nbsp;/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>&lt;version&gt;</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="&lt;!&gt;" 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 &lt; ../fuse4bsd/fuselib/fuselib-2.4.0-rc1.diff</pre>
+<pre> patch -Np1 &lt; ../fuse4bsd/fuselib/fuselib-2.4.0.diff</pre>
 </p>
 </li>
     <li>
 <p>
  Do   
 <pre> cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &amp;&amp;
- 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 &amp;&amp;
  ln -s /usr/bin/true junk/chown &amp;&amp;
  ln -s /usr/bin/true junk/mknod &amp;&amp;
- echo '#!/bin/sh
- echo "$1" | grep -q /etc/udev || /bin/mkdir "$@"' &gt; junk/mkdir &amp;&amp;
- chmod a+x junk/mkdir &amp;&amp;
- echo '#!/bin/sh
- echo "$@" | grep -q udev || /usr/bin/install "$@"' &gt; junk/install &amp;&amp;
- chmod a+x junk/install &amp;&amp;
+ echo 'echo "$1" | grep -q /etc/udev || /bin/mkdir "$@"' &gt; junk/mkdir &amp;&amp;
+ echo 'echo "$@" | grep -q udev || /usr/bin/install "$@"' &gt; junk/install &amp;&amp;
+ chmod a+x junk/mkdir junk/install &amp;&amp;
  (export PATH=`pwd`/junk:$PATH &amp;&amp;
- ./configure --prefix=$HOME/meta/fuse-2.4.0-rc1 --bindir=`pwd`/junk --disable-kernel-module MOUNT_FUSE_PATH=`pwd`/junk &amp;&amp;
+ ./configure --prefix=$HOME/meta/fuse-2.4.0 --bindir=`pwd`/junk --disable-kernel-module MOUNT_FUSE_PATH=`pwd`/junk &amp;&amp;
  make &amp;&amp;
  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 &amp;&amp; make</pre>
+<pre> env PKG_CONFIG_PATH=~/meta/fuse-2.4.0/lib/pkgconfig/ ./configure &amp;&amp; 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&amp;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&nbsp;rule&nbsp;add&nbsp;path&nbsp;'fuse*'&nbsp;mode&nbsp;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 &amp;&amp;
-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