/[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

Contents of /perl-llin/Makefile.PL

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (show annotations)
Thu Nov 15 09:32:08 2007 UTC (16 years, 4 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 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
5 my $ver = `fusermount -V`;
6 my $ver2 = `mount_fusefs -V`;
7 chomp(my $ver3 = `mount_fusefs -V 2>&1 | head -n1`);
8 $ver =~ s/^.*?version:\s+//;
9 $ver2 =~ s/^.*?version:\s+//;
10 $ver3 =~ s/^.*?version\s+//;
11 if (! $ver && ! $ver2 && ! $ver3) {
12 # make CPANPLUS happy and don't report errors if fuse isn't installed
13 die("No support for os: $^O\n",
14 "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 );
17 }
18 if ($ver && $ver + 0 < 2.5) {
19 die "Fuse perl bindings need Linux fuse version 2.5 or newer\n";
20 } elsif ($ver2 && $ver2 + 0 < 0.3) {
21 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 } else {
27 warn "fuse version found: ", $ver || $ver2 || $ver3, "\n";
28 }
29
30 my $inc = '-DFUSE_USE_VERSION=25 ' . `pkg-config --cflags fuse` || '-I ../include -D_FILE_OFFSET_BITS=64';
31 my $obj = `pkg-config --libs fuse` || '-lfuse';
32 my $def = '-Wall -g -ggdb';
33 $def .= ' -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64' if $^O eq 'darwin';
34
35 WriteMakefile(
36 '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 'DEFINE' => $def, # e.g., '-DHAVE_SOMETHING'
44 # Insert -I. if you add *.h files later:
45 'INC' => $inc, # e.g., '-I/usr/include/other'
46 # Un-comment this if you add C files to link with later:
47 'OBJECT' => "$obj Fuse.o -lpthread", # link all the C files too
48 );
49
50 sub MY::postamble {
51 return <<'MAKE_MORE';
52
53 sf:
54 svn2cvs.pl file:///home/dpavlin/private/svn/fuse/perl-llin :ext:dpavlin@fuse.cvs.sourceforge.net:/cvsroot/fuse perl
55
56 MAKE_MORE
57 };

  ViewVC Help
Powered by ViewVC 1.1.26