---------- Forwarded message ----------
Date: Mon, 13 Nov 2000 03:25:05 -0500
From: Robert Mah <[EMAIL PROTECTED]>
To: Andy Dougherty <[EMAIL PROTECTED]>,
Andreas Koenig <[EMAIL PROTECTED]>,
Tim Bunce <[EMAIL PROTECTED]>
Subject: ExtUtils::MakeMaker problem with netatalk directories
Hi,
I've found a problem with ExtUtils::MakeMaker's WriteMakefile() function
when dealing with modules located in directories that get cross mounted on
Apple Mac's using netatalk (a AppleTalk networking system for UNIX boxes).
It should ignore the contents of any .AppleDouble directories it comes
across, but it doesn't. Not ignoring them creates bad entries in the
generated Makefile which then causes make to barf.
Some background for those who don't know how Apple does things... All files
on the Mac have a type code and creator code assigned to them. In addition,
some files have "resource forks" which are data associated with the primary
"data fork" of a file. Anyway, since UNIX doesn't understand file
types/creator codes and resource forks, netatalk stores them in a special
directory.
Netatalk creates a ".AppleDouble" directory in every directory that gets
accessed by a Macintosh. In these directories, every file in the primary
gets a "shadow" which contains the meta-info and the resource fork data.
The problem is that because these "shadow" files have the same name as the
real thing, there is a file called "Makefile.PL" and the various *.pm files
in the .AppleDouble directory in the module's directory. WriteMakefile
dutifully finds this and creates entries in the Makefile for these files.
Note that while they share the names of the real files, their contents are,
for our purposes junk binary data. When make is run, it barfs.
Upon investigating things a bit, I found that the problem can be cured by
removing the entries in the $self->{DIR} list and the $self->{PM} list just
after the call to $self->init_dirscan. I only ever create modules with .pm
files so there may be others lists that are affected as well.
I've patched things so it works on my system, but my patches are sorta crude
and fix symptoms as opposed to preventing the problem. Thus I'm hesitant to
send them, but I will if you want it.
I (and I'm sure other other Mac/perl users, especially so as MacOS X gains
steam [thought I don't know if the same problem happens there]) would
appreciate it if you guys could patch ExtUtils::MakeMaker.pm to ignore
.AppleDouble directories.
Cheers,
Rob