perl-fuse.git
12 years agoVarious changes to tests and Makefile.
Derrik Pates [Sun, 3 Jul 2011 18:07:59 +0000 (12:07 -0600)]
Various changes to tests and Makefile.

Merged all loopback scripts into a single variant; now threads are
enabled by passing --use-threads to loopback.pl instead of having a
separate script variant, and use of Filesys::Statvfs instead of
bogus filler statfs() data is enabled with --use-real-statfs. Also,
loopback now fork()s itself away into a daemon, rather than depending
on external infrastructure to do it; --pidfile can be passed to create
a PID file.

Altered test/helper.pm and test/s/mount.t to use new loopback.pl semantics.

Altered test/statfs.t to optionally use Filesys::Statvfs's statvfs()
instead of raw syscalls and pack masks, if the option is available
to us. If not available, it will try to use syscalls instead.

Cleanups to Makefile to put different options where they belong,
rather than e.g., abusing the 'OBJECT' list to specify libraries
and such. Works with all platforms.

Updates to README and MANIFEST.

12 years agoMake the code work without USE_ITHREADS. FreeBSD's default Perl build
Derrik Pates [Wed, 29 Jun 2011 01:08:27 +0000 (19:08 -0600)]
Make the code work without USE_ITHREADS. FreeBSD's default Perl build
doesn't enable threads (it can be enabled), so let's try to be a bit
more accepting.

12 years agoMerge branch 'master' of github.com:dpavlin/perl-fuse
Derrik Pates [Tue, 28 Jun 2011 02:12:57 +0000 (20:12 -0600)]
Merge branch 'master' of github.com:dpavlin/perl-fuse

12 years agoNetBSD 5.1, not 5.0.
Derrik Pates [Tue, 28 Jun 2011 01:56:58 +0000 (19:56 -0600)]
NetBSD 5.1, not 5.0.

12 years agoNetBSD 5.1, not 5.0.
Derrik Pates [Tue, 28 Jun 2011 01:04:18 +0000 (19:04 -0600)]
NetBSD 5.1, not 5.0.

12 years agoUpdates to README.
Derrik Pates [Fri, 24 Jun 2011 17:37:25 +0000 (11:37 -0600)]
Updates to README.

12 years agoSmall pack mask change for 32-bit Linux compatibility.
Derrik Pates [Fri, 24 Jun 2011 16:55:43 +0000 (10:55 -0600)]
Small pack mask change for 32-bit Linux compatibility.

12 years agoChanges to statfs.t to work better with 32-bit versions of NetBSD.
Derrik Pates [Fri, 24 Jun 2011 16:28:26 +0000 (10:28 -0600)]
Changes to statfs.t to work better with 32-bit versions of NetBSD.

12 years agoMultiple changes for better *BSD compatibility, including:
Derrik Pates [Fri, 24 Jun 2011 13:36:53 +0000 (07:36 -0600)]
Multiple changes for better *BSD compatibility, including:

- For OS X/Darwin, use alternate function argument lists that add an
  extra parameter for the setxattr() and getxattr() call wrappers. This
  eliminates some compile-time warnings, and makes sure the call stack
  isn't getting unbalanced when those calls are made.
- For OS X/Darwin, force the use of -lfuse_ino64 on OS X 10.6 (Snow
  Leopard); FUSE filesystems won't work at all otherwise due to changes
  in the inode structure definition, and the pkgconfig files don't check
  for this.
- For OS X/Darwin, don't set the PERL_DL_NONLAZY=1 environment variable
  during "make test"; MacFuse builds their libfuse with a reference to
  _iconv, but doesn't link in -liconv at build time, and due to
  differences in their dynamic linker, linking -liconv into our library
  doesn't get that symbol into its namespace, so tests fail completely
  on OS X due to the unsatisfied link symbol when RTLD_NOW is passed to
  dlopen().
- Enabled alternate mknod handling for NetBSD and OS X/Darwin in
  addition to FreeBSD in the example code.
- Synchronized all changes (except enabling threading) from
  examples/loopback_t.pl to examples/loopback.pl.
- Reenabled threading use for OS X/Darwin in tests; testing on my
  MacBook running OS X 10.6.7 always passes with it enabled (though
  does not with threading disabled, which probably needs some
  diagnosing).
- In the mknod() test, use a different major number shift value (24
  instead of 8) for OS X/Darwin.
- In the statfs() test, use sys/syscall.ph instead of syscall.ph (works
  on Linux and all *BSDs, though NetBSD and OS X/Darwin perls don't h2ph
  the system headers at install time).
- In the statfs() test, altered the Linux pack mask for the statfs()
  syscall, added masks for FreeBSD and OS X/Darwin, and added statvfs1()
  call semantics for NetBSD, so this test will work on all supported
  platforms (though the FreeBSD pack mask may not work on non-64bit
  FreeBSDs, need to test that).
- In the statfs() test, ignore f_namelen field for NetBSD and
  OS X/Darwin. OS X/Darwin doesn't even have such a field, and NetBSD
  seems to not handle it right for PUFFS filesystems.
- In the symlink() test, use 'cp -R' on NetBSD instead of 'cp -a', since
  NetBSD's 'cp' doesn't know the '-a' option.

13 years agoCircumvent buggy negation of assigned $!.
Bojan Petrovic [Tue, 24 May 2011 21:00:43 +0000 (05:00 +0800)]
Circumvent buggy negation of assigned $!.

Loopback fs fails to create a new file every other time on FreeBSD.
This happens because of a Perl bug which occurs when $! is set from Perl
(as in x_mknod()), and then negated after a failed syscall (as in
x_getattr()). See http://www.perlmonks.org/?node_id=906466.

13 years agoHandle pipe creation in mknod() on FreeBSD.
Bojan Petrovic [Sat, 21 May 2011 20:17:06 +0000 (04:17 +0800)]
Handle pipe creation in mknod() on FreeBSD.

Additional special case is introduced in mknod() callback for the test
loopback fs. Pipes on FreeBSD are created through POSIX::mkfifo,
although they could be created by "mkfifo" command or syscall.  In the
"test/mknod.t", initial named pipe is now created by executing "mkfifo".

13 years agoMerge pull request #7 from ALPHA-60/master
Derrik Pates [Sat, 21 May 2011 19:09:53 +0000 (12:09 -0700)]
Merge pull request #7 from ALPHA-60/master

FreeBSD fixes

13 years agoWhen testing, check if '/proc/mounts' exists. (by Bojan Petrovic)
Derrik Pates [Sat, 21 May 2011 18:53:41 +0000 (12:53 -0600)]
When testing, check if '/proc/mounts' exists. (by Bojan Petrovic)

On FreeBSD, even if procfs is mounted under '/proc', there is no
'/proc/mounts' file.  Instead on relying on the existence of '/proc'
directory, we check if the '/proc/mounts' file exists. Otherwise, tests
cannot even start on FreeBSD.

13 years agoMerge remote-tracking branch 'dpavlin/master'
Bojan Petrovic [Sat, 21 May 2011 18:31:40 +0000 (20:31 +0200)]
Merge remote-tracking branch 'dpavlin/master'

Conflicts:
Fuse.xs

13 years agoHandle mknod() differently when running FreeBSD, as its mknod syscall doesn't
Derrik Pates [Sat, 21 May 2011 18:07:15 +0000 (12:07 -0600)]
Handle mknod() differently when running FreeBSD, as its mknod syscall doesn't
create plain files at all.

13 years agoFor FreeBSD and NetBSD, define XATTR_{CREATE,REPLACE}, since there is no
Derrik Pates [Sat, 21 May 2011 17:20:53 +0000 (11:20 -0600)]
For FreeBSD and NetBSD, define XATTR_{CREATE,REPLACE}, since there is no
<sys/xattr.h> for us to use to reference the values.

13 years agoWhen testing, check if '/proc/mounts' exists.
Bojan Petrovic [Sat, 21 May 2011 08:47:50 +0000 (10:47 +0200)]
When testing, check if '/proc/mounts' exists.

On FreeBSD, even if procfs is mounted under '/proc', there is no
'/proc/mounts' file.  Instead on relying on the existence of '/proc'
directory, we check if the '/proc/mounts' file exists. Otherwise, tests
cannot even start on FreeBSD.

13 years agoDo not include 'xattr.h' on FreeBSD.
Bojan Petrovic [Sat, 21 May 2011 08:42:44 +0000 (10:42 +0200)]
Do not include 'xattr.h' on FreeBSD.

The build will break if this file is included, or if XATTR_CREATE
and XATTR_REPLACE constants are used.

13 years agodocument changes for version 0.12
Dobrica Pavlinusic [Fri, 20 May 2011 13:38:44 +0000 (15:38 +0200)]
document changes for version 0.12

13 years agoCheck that the option string is not an empty string. If it is, don't add
Derrik Pates [Thu, 19 May 2011 19:42:49 +0000 (13:42 -0600)]
Check that the option string is not an empty string. If it is, don't add
"-o" and an empty mountopts to the argument list.

13 years agoScrewed up parentheses balance with last commit. Oops. Fixed.
Derrik Pates [Thu, 19 May 2011 18:52:02 +0000 (12:52 -0600)]
Screwed up parentheses balance with last commit. Oops. Fixed.

13 years agoFound an error message that was using the old offset value; fixed to
Derrik Pates [Thu, 19 May 2011 18:07:35 +0000 (12:07 -0600)]
Found an error message that was using the old offset value; fixed to
use the new, correct one.

13 years agoMake sure the first element in the args list is an empty string always;
Derrik Pates [Thu, 19 May 2011 18:02:40 +0000 (12:02 -0600)]
Make sure the first element in the args list is an empty string always;
didn't think about the fact that if no "mountopts" is given, but "debug"
is true, there won't be one.

13 years agoUpdate the readdir example to use the new syntax, so it'll actually work.
Derrik Pates [Thu, 19 May 2011 17:10:09 +0000 (11:10 -0600)]
Update the readdir example to use the new syntax, so it'll actually work.

13 years agoRemove inclusion of Data::Dumper. Remove incorrect duplicate documentation
Derrik Pates [Thu, 19 May 2011 16:41:49 +0000 (10:41 -0600)]
Remove inclusion of Data::Dumper. Remove incorrect duplicate documentation
for readdir().

13 years agoMove XATTR_{CREATE,REPLACE} into the XS code, so we can get the
Derrik Pates [Thu, 19 May 2011 15:08:48 +0000 (09:08 -0600)]
Move XATTR_{CREATE,REPLACE} into the XS code, so we can get the
definitions of the constants from sys/xattr.h instead of setting them
to arbitrary platform-specific constant values.

13 years agoRemove a couple of unnecessary '#if FUSE_VERSION >= 24' blocks in the
Derrik Pates [Thu, 19 May 2011 15:02:23 +0000 (09:02 -0600)]
Remove a couple of unnecessary '#if FUSE_VERSION >= 24' blocks in the
_PLfuse_create implementation. If the create() wrapper is supported
(as of FUSE 2.5), we know those lines necessarily have to work, so
the conditional is pointless.

13 years agoAlign groups of hv_{fetch,store} calls. Compare to NULL, instead of assuming
Derrik Pates [Thu, 19 May 2011 06:29:04 +0000 (00:29 -0600)]
Align groups of hv_{fetch,store} calls. Compare to NULL, instead of assuming
NULL is 0 (most arches it is, but it's not necessary a universal constant).
Also make the hash building code in _PLfuse_create() consistent with
the code in _PLfuse_open().

13 years agoAssorted minor cleanups. Restore 'symlink' fops member. Better handle
Derrik Pates [Wed, 18 May 2011 17:57:29 +0000 (11:57 -0600)]
Assorted minor cleanups. Restore 'symlink' fops member. Better handle
NULL file arguments for functions that can operate on file/directory
handles.

13 years agoAdd return checking to several asprintf()s used for non 64-bit
Derrik Pates [Wed, 18 May 2011 17:20:35 +0000 (11:20 -0600)]
Add return checking to several asprintf()s used for non 64-bit
architectures. Also, abbreviate several unnecessary 4-line 'if (rv) ...'
blocks to a single line with a ternary operator, as it's cleaner and
(IMO) easier to read.

13 years agoVoid cast some hv_store calls to get rid of warnings.
Derrik Pates [Wed, 18 May 2011 17:13:54 +0000 (11:13 -0600)]
Void cast some hv_store calls to get rid of warnings.

13 years agoExport the 'private_data' member of the fuse_context struct as
Derrik Pates [Wed, 18 May 2011 17:10:58 +0000 (11:10 -0600)]
Export the 'private_data' member of the fuse_context struct as
'private', if any is set (via the init() function). Also, export the
'umask' member if built against FUSE 2.8 or later.

13 years agoImplement additional FUSE operations.
Derrik Pates [Wed, 18 May 2011 17:03:42 +0000 (11:03 -0600)]
Implement additional FUSE operations.

Implement all of the following:
 - opendir
 - releasedir
 - fsyncdir
 - init
 - destroy
 - access
 - create
 - ftruncate
 - fgetattr
 - lock
 - utimens
 - bmap

Also replace the deficient readdir() operation with my own, which
allows for significantly greater efficiency, and supports directory
handles (as can be returned from opendir()). Also also, instead of
using static initialization of fields to zero out the fops structure,
call memset() in the INIT block of perl_fuse_main().

13 years agoFold margs and fargs together into args; this fixes the handling of
Derrik Pates [Wed, 18 May 2011 16:39:59 +0000 (10:39 -0600)]
Fold margs and fargs together into args; this fixes the handling of
the '-o big_writes' mount option, which previously did not work
at all.

13 years agoHandle getdir entries in order passed. Currently they are handed to the
Derrik Pates [Wed, 18 May 2011 15:58:51 +0000 (09:58 -0600)]
Handle getdir entries in order passed. Currently they are handed to the
filler call in reverse order; this is kind of a pain in the butt.

13 years agoAdded support for 'nullpath_ok' option to fuse_main().
Derrik Pates [Wed, 18 May 2011 15:53:28 +0000 (09:53 -0600)]
Added support for 'nullpath_ok' option to fuse_main().

13 years agoAdd the fuse_version() static method. This is the basis of version
Derrik Pates [Wed, 18 May 2011 15:45:45 +0000 (09:45 -0600)]
Add the fuse_version() static method. This is the basis of version
checking required for later changes.

13 years agoa couple more file handle bugfixes
Daniel Frett [Mon, 28 Feb 2011 19:47:28 +0000 (14:47 -0500)]
a couple more file handle bugfixes

-only run mg_find for SV's of type SVt_PVMG per "if the SV is not of type SVt_PVMG, Perl may core dump." under Finding Magic in perlguts
-hv_store_ent returns NULL when storing an SV to an HV with tie magic, such as when the HV is utilizing threads::shared

13 years agoa couple file handle bugfixes
Daniel Frett [Sat, 26 Feb 2011 18:15:11 +0000 (13:15 -0500)]
a couple file handle bugfixes

-make sure to adjust the refcount when storing a file handle
-use the set/get magic macros instead of the underlying functions

13 years agoflags are the 3rd parameter, not the 4th for hv_delete_ent
Daniel Frett [Sat, 26 Feb 2011 18:14:15 +0000 (13:14 -0500)]
flags are the 3rd parameter, not the 4th for hv_delete_ent

13 years agocleanup example
Dobrica Pavlinusic [Fri, 25 Feb 2011 18:54:36 +0000 (19:54 +0100)]
cleanup example

13 years agodocument readdir
Dobrica Pavlinusic [Fri, 25 Feb 2011 18:52:50 +0000 (19:52 +0100)]
document readdir

13 years agoclose RT #55953 - readdir
Dobrica Pavlinusic [Fri, 25 Feb 2011 18:21:59 +0000 (19:21 +0100)]
close RT #55953 - readdir

13 years agoMerge branch 'frett-readdir'
Dobrica Pavlinusic [Fri, 25 Feb 2011 18:19:19 +0000 (19:19 +0100)]
Merge branch 'frett-readdir'

13 years agoadded build files to the .gitignore file
Daniel Frett [Fri, 25 Feb 2011 16:44:45 +0000 (11:44 -0500)]
added build files to the .gitignore file

13 years agoMerge branch 'rt-55953-readdir' into master
Daniel Frett [Fri, 25 Feb 2011 05:04:25 +0000 (00:04 -0500)]
Merge branch 'rt-55953-readdir' into master

Conflicts:
AUTHORS
Fuse.xs

13 years agoRT#55953 added readdir implementation
Alex Sudakov [Thu, 24 Feb 2011 22:08:35 +0000 (23:08 +0100)]
RT#55953 added readdir implementation

13 years agoreduce code duplication in the CLONE method and make sure to dup the handles object...
Daniel Frett [Wed, 16 Feb 2011 03:35:59 +0000 (03:35 +0000)]
reduce code duplication in the CLONE method and make sure to dup the handles object when CLONEing

13 years agofixed thread cloning in <= perl5.10.0
Daniel Frett [Tue, 15 Feb 2011 22:03:48 +0000 (22:03 +0000)]
fixed thread cloning in <= perl5.10.0

the pointer table used in cloning was destroyed before calling CLONE methods in <= perl5.10.0

13 years agoremove usage of MUTABLE_SV and MUTABLE_HV for older versions of perl
Daniel Frett [Tue, 15 Feb 2011 19:32:04 +0000 (19:32 +0000)]
remove usage of MUTABLE_SV and MUTABLE_HV for older versions of perl

13 years agomake open file handles thread-safe. Fixes RT #57517 when using threads.
Daniel Frett [Tue, 15 Feb 2011 18:16:05 +0000 (13:16 -0500)]
make open file handles thread-safe. Fixes RT #57517 when using threads.

13 years agonot having a supported threads model shouldn't be fatal, fallback to non-threaded...
Daniel Frett [Tue, 15 Feb 2011 16:56:16 +0000 (11:56 -0500)]
not having a supported threads model shouldn't be fatal, fallback to non-threaded mode instead

13 years agoneed to define the context when not building threaded model
Daniel Frett [Tue, 15 Feb 2011 16:48:12 +0000 (11:48 -0500)]
need to define the context when not building threaded model

13 years agodocument Daniel Frett tread-safe callback contribution and bump version to 0.11
Dobrica Pavlinusic [Tue, 15 Feb 2011 12:47:42 +0000 (13:47 +0100)]
document Daniel Frett tread-safe callback contribution and bump version to 0.11

13 years agocredit Derrik with 64-bit changes
Dobrica Pavlinusic [Tue, 15 Feb 2011 12:42:40 +0000 (13:42 +0100)]
credit Derrik with 64-bit changes

13 years agoupdated Fuse binding to utilize thread-safe static data
Daniel Frett [Mon, 14 Feb 2011 21:25:44 +0000 (16:25 -0500)]
updated Fuse binding to utilize thread-safe static data

This fixes RT #34284

13 years agodocument changes in 0.10_1
Dobrica Pavlinusic [Mon, 17 Jan 2011 19:29:15 +0000 (20:29 +0100)]
document changes in 0.10_1

13 years agobump version to 0.10_1
Dobrica Pavlinusic [Mon, 17 Jan 2011 19:26:27 +0000 (20:26 +0100)]
bump version to 0.10_1

13 years agoMerge remote branch 'remotes/origin/64-bit'
Dobrica Pavlinusic [Mon, 17 Jan 2011 19:24:51 +0000 (20:24 +0100)]
Merge remote branch 'remotes/origin/64-bit'

13 years ago64-bit support, 2.6 binding
Derrik Pates [Thu, 9 Dec 2010 21:26:18 +0000 (22:26 +0100)]
64-bit support, 2.6 binding

I am (somewhat indirectly, now) using the Fuse package, which you maintain,
as the basis for a set of Perl modules I've written to mount AFP filesystems
via Fuse. I actually have made a few changes to the copy I run, to address
the following issues:

- On NetBSD, the Fuse package won't build out of the box against NetBSD's
ReFUSE implementation; I have a few changes that make it work (all except
extended attributes, which apparently PUFFS/ReFUSE doesn't yet handle).
- On FreeBSD and NetBSD, the version 2.6 binding profile works better, so
I've altered the code slightly to use it; it works on Linux and OS X as
well.
- On most 32-bit Linux distributions (and NetBSD/FreeBSD), Perl is not built
with 64-bit integer support, thus breaking access to large files (> 2 ** 31
- 1 bytes long). I've added a sort-of-hackish workaround for Perl builds
without $Config{'use64bitint'} to get large files handled sanely.
- Added a few extra option names that aren't included in the @validOpts list
by default.

If you're interested in my code, check out
http://svn.now.ai/listing.php?repname=afp-perl to see the repository, or
http://svn.now.ai/svn/afp-perl/ for SVN checkout access.

--
Derrik Pates
demon@now.ai

13 years agofix permissions redis
Dobrica Pavlinusic [Mon, 23 Aug 2010 17:01:34 +0000 (19:01 +0200)]
fix permissions

14 years agothere are plenty, some os specific, valid opts, so just don't bother checking for...
Artur [Wed, 19 May 2010 09:05:39 +0000 (17:05 +0800)]
there are plenty, some os specific, valid opts, so just don't bother checking for them

14 years agobump version [0.09_4] and document it rt-30790-xattr-includes 0.09_4
Dobrica Pavlinusic [Sun, 16 May 2010 16:58:34 +0000 (18:58 +0200)]
bump version [0.09_4] and document it

14 years agoMerge branch 'rt-57517-file-handles'
Dobrica Pavlinusic [Sun, 16 May 2010 16:45:31 +0000 (18:45 +0200)]
Merge branch 'rt-57517-file-handles'

14 years agoAddition of file handles on open files rt-57517-file-handles
Justin Fletcher [Sun, 16 May 2010 16:25:07 +0000 (18:25 +0200)]
Addition of file handles on open files

Sat May 15 16:36:47 2010: Request 57517 was acted upon.
Transaction: Ticket created by gerph
       Queue: Fuse
     Subject: Addition of file handles on open files
   Broken in: 0.09_3
    Severity: (no value)
       Owner: Nobody
  Requestors: gerph@gerph.org
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=57517 >

Hiya,

Whilst trying to write a filesystem using the Fuse module, I found it
surprising that there were no 'file handles' available when you opened
a file. The only way you can know what file was referenced is by its
name, which is not useful if your filesystem is intended to return
different results for each file opened. It turned out in my case to not
matter, but consider a FS which returned a different story every time
you opened it. Or, more practically, a FS which returned the contents
of the latest checked in file - and whilst you were operating on the
file the latest checked in file changed. There are ways around this -
files becoming invariant whilst it has any open instances of itself or
similar - but these are not ideal.

The way that Fuse appears to do this is that the filesystem updates a
property ('fh') in the fuse_file_info structure on open, to contain the
context for the opened file. I've put together a change which allows
you to return a second parameter from open containing this value, which
is then passed to all the functions which operate on open files (read,
write, flush, release). Because we're retaining a reference to the SV
that was returned (and is otherwise unused in the perl) we also
increment the refcount on open, and decrement it on release - I think
that's all that's necessary to prevent a leak, but I've never done any
XS work before this so I can't be certain.

I'd expect that under normal circumstances you'd open a file, set up a
hashref containing properties for the file that you've opened and use
'return (0, $handle);' to return it. If you don't return a handle, the
old behaviour remains - undef will be passed to the implementation in
place of the handle (which the implementation wasn't expecting so won't
care about).

In addition, I've also added the ability to set the 'direct_io',
'keepcache' and 'nonseekable' properties by changing a hashref which is
passed to the 'open' call.

The archive I've attached contains the Fuse.pm and Fuse.xs files in
their entirity, together with the diffs from 0.09_3. There is also a
rudimentary example FS, based on the example one in the Fuse
distribution, which shows the file handle to be working. It seems to be
working in my more complex MythTV filesystem that I'm still trying to
make useful.

I couldn't actually test the nonseekable property as the fuse I have
seems to be 2.4, so I don't have that property available to me here -
I've just followed what the documentation says should be available.

I've not added anything to the tests, because I'm not sure how to do
that really, but I hope that the change to add the file handles is
useful.

14 years agoremove version number
Dobrica Pavlinusic [Tue, 11 May 2010 17:33:20 +0000 (19:33 +0200)]
remove version number

14 years agoMerge branch 'master' of github.com:dpavlin/perl-fuse
Dobrica Pavlinusic [Mon, 10 May 2010 18:16:05 +0000 (20:16 +0200)]
Merge branch 'master' of github.com:dpavlin/perl-fuse

14 years agoadded META pointers to repository and bugtracker
Dobrica Pavlinusic [Mon, 10 May 2010 17:58:02 +0000 (19:58 +0200)]
added META pointers to repository and bugtracker

14 years agoadded META pointers to repository and bugracker
Dobrica Pavlinusic [Mon, 10 May 2010 17:58:02 +0000 (19:58 +0200)]
added META pointers to repository and bugracker

14 years agodocumentation fix
Vlatko Kosturjak [Mon, 10 May 2010 17:37:35 +0000 (19:37 +0200)]
documentation fix

16 years agoanother try to fix files larger than 2Gb: for this we pop 0.09_3
Dobrica Pavlinusic [Wed, 19 Mar 2008 19:40:20 +0000 (19:40 +0000)]
another try to fix files larger than 2Gb: for this we pop
float from stack since long is limited to 4Gb

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@123 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agocpan target to push latest verison out
Dobrica Pavlinusic [Sun, 16 Mar 2008 14:14:51 +0000 (14:14 +0000)]
cpan target to push latest verison out

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@122 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoupdate latest Changes
Dobrica Pavlinusic [Sun, 16 Mar 2008 13:51:26 +0000 (13:51 +0000)]
update latest Changes

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@121 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoversion bump [0.09_2] 0.09_2
Dobrica Pavlinusic [Sun, 16 Mar 2008 13:40:44 +0000 (13:40 +0000)]
version bump [0.09_2]

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@120 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoexpose and fix 2Gb file bug, RT #32639, RT #33903
Dobrica Pavlinusic [Sun, 16 Mar 2008 13:34:34 +0000 (13:34 +0000)]
expose and fix 2Gb file bug, RT #32639, RT #33903

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@119 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agofuse_get_context documentation patch from jaslong
Dobrica Pavlinusic [Mon, 21 Jan 2008 16:36:57 +0000 (16:36 +0000)]
fuse_get_context documentation patch from jaslong

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@118 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoupdate from Reuben Thomas: fixes a bug in mkdir (failed to tag, so newly
Dobrica Pavlinusic [Mon, 7 Jan 2008 11:45:54 +0000 (11:45 +0000)]
update from Reuben Thomas: fixes a bug in mkdir (failed to tag, so newly
created dir was not visible in the filtered fs), and makes error reporting a
little better (if tag routine returns an error, that is propagated).

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@117 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoAdded contributed filesystem described in e-mail message below:
Dobrica Pavlinusic [Thu, 6 Dec 2007 10:58:07 +0000 (10:58 +0000)]
Added contributed filesystem described in e-mail message below:

From: Reuben Thomas <rrt@sc3d.org>
To: dpavlin@rot13.org
Subject: Contribution of sample FS to Fuse

Hi,

I'm just putting the finishing touches to an FS I wrote with Fuse, which
was invaluable, as I couldn't contemplate writing it in C (it's just not
important enough for that much pain!).

I've called it filter_attr_t.pl. It is just loopback_t.pl, augmented with a
function and a little logic so that only files that possess extended
attribute given at mount time are visible. Further, if you try to write to
a file that exists but is not tagged (and hence invisible), you get
-EEXIST, and if you try to unlink a tagged file, it is merely untagged
rather than actually unlinked.

My use for this is to use the backup program Unison, which synchronises two
directory trees, to synch my PDA and my home directory, while excluding
most of the files in my home dir (which would simply not fit in my PDA's
16Mb of file space!). I was amazed to find I couldn't see a FUSE fs which
would do this already, and I was nearly in despair when I remembered Fuse,
and, sure enough, it looked a lot easier than writing a FUSE fs in C.

Of course, the example code was also invaluable, as without it I would have
taken much longer to write the code, and I wouldn't have known some of the
traps.

So, a big thank you, and I attach the current version.

--
http://rrt.sc3d.org/ | Slow Pedestrian Crossing (Anon)

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@116 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agoadded Chris, bump version to 0.09 0.09
Dobrica Pavlinusic [Thu, 15 Nov 2007 09:33:07 +0000 (09:33 +0000)]
added Chris, bump version to 0.09

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@113 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agopatch from Chris Dolan via rt.cpan.org #30631
Dobrica Pavlinusic [Thu, 15 Nov 2007 09:32:08 +0000 (09:32 +0000)]
patch from Chris Dolan via rt.cpan.org #30631

This patch gets Fuse.pm to half-work on MacOSX with the current release
of MacFuse (v1.1.0).  By half-work, I mean that all of the directory
actions and file read actions work, but anything that involves writing a
file fails.  This appears to be because the latest MacFUSE implements
FUSE 2.6, which prefers to call CREATE instead of MKNOD.  Nonetheless,
recommend that something like this patch be included because it makes
read-only filesystems usable on Darwin systems.  Some of my changes
(like kill() instead of system("kill")) are improvements on any system.
    I've tested only on my PowerPC G5 iMac running 10.4.

I intend to also try MacFUSE v0.4 via Fink, but that version is
reportedly less stable than the latest MacFUSE.

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@112 6e4b0b00-1209-0410-87b2-b275959b5705

16 years agocalls mount instread of cat /proc/mountpoints to make it less Linux specific
Dobrica Pavlinusic [Thu, 15 Nov 2007 09:23:22 +0000 (09:23 +0000)]
calls mount instread of cat /proc/mountpoints to make it less Linux specific

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@111 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agoone more define (_FILE_OFFSET_BITS=64) on darwin
Dobrica Pavlinusic [Sat, 20 Jan 2007 20:27:57 +0000 (20:27 +0000)]
one more define (_FILE_OFFSET_BITS=64) on darwin

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@110 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agosupport for MacFUSE implementation for Mac OS X from http://code.google.com/p/macfuse/
Dobrica Pavlinusic [Sat, 20 Jan 2007 12:37:03 +0000 (12:37 +0000)]
support for MacFUSE implementation for Mac OS X from code.google.com/p/macfuse/

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@109 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agoChanges from Marc to implement fuse_get_context(): 0.09_1
Dobrica Pavlinusic [Sat, 20 Jan 2007 12:21:12 +0000 (12:21 +0000)]
Changes from Marc to implement fuse_get_context():
* an XS function to get the data
* a mention of it in Fuse.pm so it can be exported properly
* a pretty ugly hack to example.pl, which is how I tested it.

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@108 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agofixes for Andrew for dh-make-perl which uses fakeroot
Dobrica Pavlinusic [Sun, 3 Dec 2006 11:25:02 +0000 (11:25 +0000)]
fixes for Andrew for dh-make-perl which uses fakeroot

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@107 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agobump version to 0.08, added Changes for this version 0.08
Dobrica Pavlinusic [Wed, 29 Nov 2006 13:27:59 +0000 (13:27 +0000)]
bump version to 0.08, added Changes for this version

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@106 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agofix to test helper as proposed by ANDREWC@cpan.org (rt.cpan.org #17695)
Dobrica Pavlinusic [Wed, 29 Nov 2006 13:23:28 +0000 (13:23 +0000)]
fix to test helper as proposed by ANDREWC@cpan.org (rt.cpan.org #17695)

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@105 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agowarn about required permissions also
Dobrica Pavlinusic [Thu, 9 Nov 2006 16:07:18 +0000 (16:07 +0000)]
warn about required permissions also

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@104 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agomake CPANPLUS happy and don't report errors if fuse isn't installed
Dobrica Pavlinusic [Thu, 19 Oct 2006 15:52:42 +0000 (15:52 +0000)]
make CPANPLUS happy and don't report errors if fuse isn't installed

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@103 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agofix path to local svn
Dobrica Pavlinusic [Tue, 29 Aug 2006 15:26:57 +0000 (15:26 +0000)]
fix path to local svn

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@102 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agopatch from Mark Glines to allow Fuse to be run from a non-master thread
Dobrica Pavlinusic [Tue, 22 Aug 2006 11:37:12 +0000 (11:37 +0000)]
patch from Mark Glines to allow Fuse to be run from a non-master thread

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@101 6e4b0b00-1209-0410-87b2-b275959b5705

17 years agochanges from Nick Waterman <laptop@noseynick.com> to fix race condition in
Dobrica Pavlinusic [Sun, 30 Jul 2006 17:33:14 +0000 (17:33 +0000)]
changes from Nick Waterman <laptop@noseynick.com> to fix race condition in
test/s/mount.t

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@100 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agoCPAN release 0.07 0.07
Dobrica Pavlinusic [Tue, 6 Jun 2006 14:23:44 +0000 (14:23 +0000)]
CPAN release 0.07

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@95 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agouse mount_fusefs on FreeBSD to get fuse version
Dobrica Pavlinusic [Tue, 6 Jun 2006 14:22:36 +0000 (14:22 +0000)]
use mount_fusefs on FreeBSD to get fuse version

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@94 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agoFix ISO C90 warnings
Dobrica Pavlinusic [Mon, 29 May 2006 09:15:28 +0000 (09:15 +0000)]
Fix ISO C90 warnings

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@93 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agoMark Glines fixed problem with newer fuse versions
Dobrica Pavlinusic [Mon, 29 May 2006 08:57:50 +0000 (08:57 +0000)]
Mark Glines fixed problem with newer fuse versions

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@92 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agobump version 0.07_4
Dobrica Pavlinusic [Tue, 23 May 2006 15:38:12 +0000 (15:38 +0000)]
bump version

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@91 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agoadded nonempty as suggested by David Danier <david.danier@team23.de>
Dobrica Pavlinusic [Tue, 23 May 2006 14:48:59 +0000 (14:48 +0000)]
added nonempty as suggested by David Danier <david.danier@team23.de>

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@90 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agoVladimir V. Kolpakov contributed cleanup patch
Dobrica Pavlinusic [Tue, 23 May 2006 14:45:53 +0000 (14:45 +0000)]
Vladimir V. Kolpakov contributed cleanup patch

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@89 6e4b0b00-1209-0410-87b2-b275959b5705

18 years agowhitespace fixes
Dobrica Pavlinusic [Tue, 23 May 2006 14:45:23 +0000 (14:45 +0000)]
whitespace fixes

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/fuse/perl-llin@88 6e4b0b00-1209-0410-87b2-b275959b5705