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

Shlomi Fish shlomif at iglu.org.il
Mon Apr 24 15:22:04 CEST 2006

On Monday 24 April 2006 15:36, John Siracusa wrote:
> 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.  

Have you tried it that you can testify that it happens with GNU tar? According 
to the blog entry that I pointed in the URL, the problems FXN encountered 
with his Perl modules have disappeared after he switched to using GNU tar to 
package the archives.

> 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.

It's unlikely that the OS will do that by instructing any vanilla tar to put 
such files inside the archive. Rather, it makes more sense to assume that the 
OS X tar was modified in a way to do that explicitly. That's what FXN says is 
the case in his blog entry.

> 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.


	Shlomi Fish

> -John
> _______________________________________________
> Catalyst mailing list
> Catalyst at lists.rawmode.org
> http://lists.rawmode.org/mailman/listinfo/catalyst


Shlomi Fish      shlomif at iglu.org.il
Homepage:        http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.

More information about the Catalyst mailing list