From owner-p4-projects@FreeBSD.ORG Thu Oct 6 01:12:30 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E12E916A421; Thu, 6 Oct 2005 01:12:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A355916A41F for ; Thu, 6 Oct 2005 01:12:29 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7E25743D5E for ; Thu, 6 Oct 2005 01:12:22 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j961CMou094503 for ; Thu, 6 Oct 2005 01:12:22 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j961CLbV094500 for perforce@freebsd.org; Thu, 6 Oct 2005 01:12:21 GMT (envelope-from soc-chenk@freebsd.org) Date: Thu, 6 Oct 2005 01:12:21 GMT Message-Id: <200510060112.j961CLbV094500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 84876 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Oct 2005 01:12:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=84876 Change 84876 by soc-chenk@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.

-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 -DUSE_OLD_CLONEHANDLER_API flag for cc). +The module can be expected work with RELENG_6 snapshots of version number at least 600034, or with HEAD snapshots of version number at least 700002. (Hint: you can get the version number of your currently running kernel by sysctl -n kern.osreldate; or you can extract the version number directly from the source code by awk '/#define/{if ($2 == "__FreeBSD_version") { print $3; exit }}' /sys/sys/param.h.) (Desperate types can try with older HEAD/RELENG_6 snapshots if they set the -DUSE_OLD_CLONEHANDLER_API flag for cc.)

What can be considered as a public homepage for the project is [WWW]http://wikitest.freebsd.org/moin.cgi/FuseFilesystem; for updates, further info go there. Get in contact with me via the soc-chenk email addrees of the FreeBSD organization (freebsd.org). @@ -50,7 +50,7 @@

  • - Fuse itself. Get Fuse 2.4.0-rc1 from their [WWW]Sourceforge project page. 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, [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/. + Fuse itself. Get Fuse 2.4.0 from their [WWW]Sourceforge project page. 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, [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/.

  • @@ -58,6 +58,12 @@ The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.11, date of release: 21th Sep 2005). The current code is available via [WWW]Darcs, you can fetch it by
     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce (you can use this latter link for online source code browsing).

    +

    + Release tarballs and SCM snapshots include a version of this wiki page as README.html. Always act according to the included version. +

    +

    + <!> Warning: on rare occasions the wiki version may refer to a not yet committed state of the module code. +

  • @@ -98,30 +104,27 @@

  • Apply the patch with -

     patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0-rc1.diff
    +
     patch -Np1 < ../fuse4bsd/fuselib/fuselib-2.4.0.diff

  • Do

     cp ../fuse4bsd/fuse_module/fuse_kernel.h include/ &&
    - cp ../fuse4bsd/fuse_module/linux_compat.h include/
    (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/ (as fuse_kernel.h 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).

  • - We will do a non-privileged install (I'd say that's easier than set up a jail), I'll use ~/meta/fuse-2.4.0-rc1 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 ~/meta/fuse-2.4.0 as the prefix. Type the following commands:

     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)

    @@ -144,7 +147,7 @@
  • Type -

     env PKG_CONFIG_PATH=~/meta/fuse-2.4.0-rc1/lib/pkgconfig/ ./configure && make
    +
     env PKG_CONFIG_PATH=~/meta/fuse-2.4.0/lib/pkgconfig/ ./configure && make

  • @@ -160,15 +163,14 @@

    As the superuser, do -

    kldload use_module/fuse.ko
    +
    kldload fuse_module/fuse.ko
     sysctl vfs.usermount=1

    -Now you'll have to act as a user belonging to the operator group or you can as well delete all barriers by -

    devfs rule add path 'fuse*' mode 666
    (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 operator group. (A different access policy could be set by [WWW]devfs(8); eg., deleting all barriers would look like devfs rule add path 'fuse*' mode 666. Think of permissions of fuse devices directly as mount permissions of Fuse filesystems.)

    -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).

    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 foo@bar.baz. @@ -176,7 +178,7 @@

    Go to sshfs' directory. First prepare the mount:

    mkdir -p ~/fuse &&
    -export LD_LIBRARY_PATH=~/meta/fuse-2.4.0-rc1/lib/
    and also make sure that mount_fusefs (of FreeBSD Fuse) is in your path. Then do: +export LD_LIBRARY_PATH=~/meta/fuse-2.4.0/lib/
    and also make sure that mount_fusefs (of FreeBSD Fuse) is in your path. Then do:
    mount_fusefs auto ~/fuse ./sshfs foo@bar.baz:

    @@ -204,6 +206,14 @@

  • + Make autotools play nice with Fuse (generating configure files doesn't work with CVS snapshots) +

    +

    + /!\ Autotools gurus, help please! It might be just a five minutes work for you to fix it. +

    +
  • +
  • +

    Implement attr/name caching (with timeouts)