Commits on Apr 26, 2012
Commits on Apr 25, 2012
  1. avoid cpan indexing of test::helper

    According to perlmonks, this is standard way to which DBI uses
    to hide packages from CPAN
    committed Apr 25, 2012
Commits on Apr 12, 2012
Commits on Apr 8, 2012
  1. Update change list.

    demonfoo committed Apr 8, 2012
  2. Assorted additional cleanups.

    Fix up some tabbing.
    Set up a STAT_SEC() macro like the STAT_NSEC() macro.
    demonfoo committed Apr 8, 2012
  3. Be more compatible with OSes that aren't Linux.

    Include sys/ on non-Linux OSes. This will work better on
    NetBSD 6 and OS X with Fuse4X (which ioctl() is made to work on
    demonfoo committed Apr 8, 2012
Commits on Apr 4, 2012
  1. Use the new-style sparse structure population syntax.

    The new compiler on Lion (clang?) complained about the population of
    _available_ops, due to the use of "old style" sparse struct population
    syntax. Changing to "new style" to decrease the number of warnings.
    demonfoo committed Apr 4, 2012
  2. Make ioctl implementation BSD-friendly.

    *BSD uses some different IOCTL-related macros. Set things up in a
    cross-platform-friendly fashion so that the ioctl() wrapper implementation
    will (in the future) work with *BSD.
    Keep in mind this does not work *now*. NetBSD 6 will include PerFUSE, and
    use libfuse 2.8.x, so ioctl() *may* work, and Fuse4X has userspace API
    support for FUSE 2.8 features (but its kernel extension doesn't yet, the
    developer says it's in the works). This is so that when that code hits,
    this will work, and for now, it will build cleanly.
    demonfoo committed Apr 4, 2012
  3. Add a word boundary match to MacFUSE compat hack.

    This is to improve compatibility with Fuse4X. I'll be rolling in other
    changes in the near future to fix the ioctl implementation to work
    with Fuse4X as well.
    demonfoo committed Apr 4, 2012
Commits on Mar 23, 2012
  1. Use __APPLE__ for OS X-specific sections.

    Instead of using __FreeBSD__ as the preprocessor symbol for OS X-specific
    bits, and verifying that it's 10 or greater, use __APPLE__. It's a
    macro that's consistently defined by Apple's gcc, so it's easier to
    discern as OS X than the prior way.
    demonfoo committed Mar 23, 2012
  2. Remove #if's for pre-FUSE 2.6 API checks.

    Since we're not going to worry about supporting FUSE API versions
    prior to 2.6 (which is at this point widely supported), remove a
    bunch of preprocessor conditionals for things that depended on FUSE
    API versions prior to 2.6.
    demonfoo committed Mar 23, 2012
Commits on Mar 21, 2012
Commits on Mar 19, 2012
  1. Added a daemonize() function to account for certain conditions where …

    …the forked process would still die (e.g. if mounted as a home directory and the user logs in multiple times).
    LinuxMercedes committed with demonfoo Jan 9, 2012
Commits on Mar 14, 2012
  1. s/MacFUSE/OSXFUSE/g;

    Instead of recommending the use of MacFUSE, suggest the newer, actually
    maintained OSXFUSE. Keeping the MacFUSE compat hack for now, since it
    doesn't impact OSXFUSE (and I just tested it on a Mac OS 10.6 system
    in front of me; "make test" goes off with zero hitches).
    demonfoo committed Mar 14, 2012
  2. Fixing ioctl on 32bit arches.

    Trying the ioctl tests on ppc netted a problem - seems that even though
    I'm casting cmd to "unsigned int", unless I use "newSVuv" instead of
    "newSViv", it ends up signed again anyway.
    demonfoo committed Mar 14, 2012
Commits on Mar 12, 2012
  1. Documentation cleanups.

    Correct docs for open(), utimens() and ioctl() ops to match up with
    code changes.
    Add a blurb explaining what removexattr() does.
    Add an extra newline in the release() doc section to fully separate
    two things that should be actually separate.
    demonfoo committed Mar 12, 2012
Commits on Mar 4, 2012
  1. Support more accurate timestamps for utimens().

    Added an option to Fuse::main(), specifically "utimens_as_array",
    that causes timestamps to be passed as arrays containing the UNIX
    timestamp (seconds since the epoch), followed by the number of
    nanoseconds, instead of as a floating-point value, for better
    precision. However, I've noticed that when (on Linux, at least)
    you "touch" a file, which ends up with utimensat() getting passed
    a NULL value for the timestamp array, the resulting timestamp that
    utimens() gets always has a "0" for the nanosecond field. I think
    that's a FUSE misfunction.
    demonfoo committed Mar 4, 2012
Commits on Mar 3, 2012
Commits on Mar 2, 2012
  1. Rewrite timestamp handling to support different representations.

    Instead of just allowing sub-second resolution times to be passed
    as the fractional part of a floating point value, also support passing
    times as an array ref, with separate second and nanosecond portions.
    Decided to do this because the floating point representation can lose
    precision (it's represented internally as a double). It tends to get
    squirrelly around about a tenth of a microsecond.
    demonfoo committed Mar 2, 2012
Commits on Mar 1, 2012
  1. Add fix for RT #71271.

    Seems that my utimens() addition inspired someone to notice the
    lack of support in other codepaths for sub-second time resolution.
    This fix takes the fractional portion of any mtime/ctime/atime
    values and converts it into the appropriate nanosecond value, and
    assigns that to the correct location in the "struct stat". Tested
    on Linux 3.0 (Ubuntu 11.10), FreeBSD 8.2, NetBSD 5.1 and MacOS X
    10.6 (Snow Leopard).
    demonfoo committed Mar 1, 2012
Commits on Feb 29, 2012
  1. Code cleanups.

    More perl-izing using list assignment and declaration.
    Added more comments to clarify purpose of parts of code.
    Tweaked layout a bit to match up better with the original C version
    (mostly declaration/calling/assignment order bits here and there).
    Separated %fuseargs declare/init from setting the 'mountpoint' element,
    to better handle parsing options out before grabbing the mount point.
    demonfoo committed Feb 29, 2012
Commits on Jan 12, 2012
Commits on Jan 10, 2012
Commits on Oct 25, 2011
  1. The current list of major changes to the code.

    Not intended for release yet, but just to keep track.
    demonfoo committed Oct 25, 2011
Commits on Oct 24, 2011
  1. set license metadata (LGPL)

    ktdreyer committed Oct 24, 2011
Commits on Aug 14, 2011