/[fuse.before_github]/perl-llin/Makefile.PL
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /perl-llin/Makefile.PL

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (hide annotations)
Thu Nov 15 09:32:08 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/plain
File size: 2337 byte(s)
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.                                                     
1 mszeredi 4 use ExtUtils::MakeMaker;
2     # See lib/ExtUtils/MakeMaker.pm for details of how to influence
3     # the contents of the Makefile that is written.
4 dpavlin 31
5 dpavlin 86 my $ver = `fusermount -V`;
6 dpavlin 94 my $ver2 = `mount_fusefs -V`;
7 dpavlin 109 chomp(my $ver3 = `mount_fusefs -V 2>&1 | head -n1`);
8 dpavlin 86 $ver =~ s/^.*?version:\s+//;
9 dpavlin 94 $ver2 =~ s/^.*?version:\s+//;
10 dpavlin 109 $ver3 =~ s/^.*?version\s+//;
11     if (! $ver && ! $ver2 && ! $ver3) {
12 dpavlin 103 # make CPANPLUS happy and don't report errors if fuse isn't installed
13     die("No support for os: $^O\n",
14 dpavlin 112 "You need to have fuse-dev (or similar) package installed and have sufficient permissions in order to install this module\n",
15     $^O eq 'darwin' ? ("One option on Mac is http://code.google.com/p/macfuse/\n") : (),
16 dpavlin 103 );
17     }
18 dpavlin 94 if ($ver && $ver + 0 < 2.5) {
19 dpavlin 109 die "Fuse perl bindings need Linux fuse version 2.5 or newer\n";
20 dpavlin 94 } elsif ($ver2 && $ver2 + 0 < 0.3) {
21 dpavlin 109 die "Fuse perl bindings need FreeBSD fuse version 0.3 or newer\n";
22     } elsif ($^O eq 'darwin' && $ver3 && !(($ver3 ge "0.1.0b006") || ($ver3 eq "0.1.0"))) {
23     # the "ge" string-compare check will match all later revs and all later
24     # betas, but not the final release of the current rev (0.1.0).
25     die "Fuse perl bindings need MacFUSE version 0.1.0b006 or newer, your version is \"$ver3\"\n";
26 dpavlin 86 } else {
27 dpavlin 109 warn "fuse version found: ", $ver || $ver2 || $ver3, "\n";
28 dpavlin 86 }
29    
30 dpavlin 85 my $inc = '-DFUSE_USE_VERSION=25 ' . `pkg-config --cflags fuse` || '-I ../include -D_FILE_OFFSET_BITS=64';
31 dpavlin 31 my $obj = `pkg-config --libs fuse` || '-lfuse';
32 dpavlin 109 my $def = '-Wall -g -ggdb';
33 dpavlin 110 $def .= ' -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64' if $^O eq 'darwin';
34 dpavlin 86
35 mszeredi 4 WriteMakefile(
36 dpavlin 88 'NAME' => 'Fuse',
37     'VERSION_FROM' => 'Fuse.pm', # finds $VERSION
38     'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
39     ($] >= 5.005 ? ## Add these new keywords supported since 5.005
40     (ABSTRACT_FROM => 'Fuse.pm', # retrieve abstract from module
41     AUTHOR => 'Mark Glines <mark@glines.org>') : ()),
42     'LIBS' => [''], # e.g., '-lm'
43 dpavlin 109 'DEFINE' => $def, # e.g., '-DHAVE_SOMETHING'
44 mszeredi 4 # Insert -I. if you add *.h files later:
45 dpavlin 88 'INC' => $inc, # e.g., '-I/usr/include/other'
46 mszeredi 4 # Un-comment this if you add C files to link with later:
47 dpavlin 88 'OBJECT' => "$obj Fuse.o -lpthread", # link all the C files too
48 mszeredi 4 );
49 dpavlin 59
50     sub MY::postamble {
51 dpavlin 88 return <<'MAKE_MORE';
52 dpavlin 59
53     sf:
54 dpavlin 102 svn2cvs.pl file:///home/dpavlin/private/svn/fuse/perl-llin :ext:dpavlin@fuse.cvs.sourceforge.net:/cvsroot/fuse perl
55 dpavlin 59
56     MAKE_MORE
57     };

  ViewVC Help
Powered by ViewVC 1.1.26