[Catalyst] ._ files in installation of Catalyst-5.67 from CPAN

John Siracusa siracusa at mindspring.com
Mon Apr 24 14:36:56 CEST 2006


On 4/24/06 3:57 AM, Shlomi Fish wrote:
> On Monday 24 April 2006 02:18, Scott Karns wrote:
>> [...]
>> /usr/lib/perl5/vendor_perl/5.8.7/Catalyst/._Exception.pm
> 
> Hmmm... Mac OS X' tar strikes again?
> 
> http://www.advogato.org/person/fxn/diary.html?start=401

It's not Mac OS X's tar.  The same thing can happen if you compile GNU tar
from source and use it instead.  It's the OS trying to preserve HFS+
metadata: not just the resource fork, but all the other stuff too like last
backup date, Finder flags, type and creator codes, extended attributes, etc.

The really evil part is that it'll create those ._ files inconsistently.
For example, on one of my Macs it happens every time I run "make dist," and
on the other, it does not.  The software is identical on both (one HD was
cloned to create the other's).

I've tried many things to fight this.  I delete all the ._ files as part of
"make clean" and right before "make dist," but it doesn't help.  I've even
tried running "make distdir" instead, then deleting the ._ files from the
distdir, then tarring it myself.  That works sometimes.

I recently did battle with the problem again (after releasing yet another
module to CPAN filled with ._ files...grrr) and came up with this solution
(for ExtUtils::MakeMaker users, anyway).  Add these arguments to the call to
WriteMakefile()

     dist => { DIST_CP => 'cp' }, # Avoid Mac OS X ._* files

Since Mac OS X's 10.4 "cp" command actually preserves all metadata
"natively," I guess it doesn't feel the need to create the ._ files.  Or
maybe it's something else, I didn't really have time to get down to the
bottom of it.  I just know that, so far, this solution has worked for me.  I
can run "make dist" now and no ._ files are created.  Presumably there's
some similar solution that's applicable to Module::Build and friends.

-John





More information about the Catalyst mailing list