pcp
[Top] [All Lists]

Re: [pcp] perl MANIFEST files in the pcp-3.6.4-1.src.tar.gz release tarb

To: David Disseldorp <ddiss@xxxxxxx>
Subject: Re: [pcp] perl MANIFEST files in the pcp-3.6.4-1.src.tar.gz release tarball
From: Ken McDonell <kenj@xxxxxxxxxxxxxxxx>
Date: Tue, 26 Jun 2012 10:42:57 +1000
Cc: pcp <pcp@xxxxxxxxxxx>
In-reply-to: <20120620111722.585e6996@xxxxxxxxxxxx>
References: <20120618140732.456019c4@xxxxxxxxxxxx> <1340155761.2787.7.camel@xxxxxxxxxxxxxxxxxxxxxxx> <20120620111722.585e6996@xxxxxxxxxxxx>
On Wed, 2012-06-20 at 11:17 +0200, David Disseldorp wrote:
> Hi Ken,
> 
> On Wed, 20 Jun 2012 11:29:21 +1000
> Ken McDonell <kenj@xxxxxxxxxxxxxxxx> wrote:
> 
> > $ tar tf build/tar/pcp-3.6.4-1.src.tar.gz | grep yml
> > $
> 
> It's the "META.yml" entry in the cpan MANIFEST files that causes the
> build failure, not the presence of a yml file in the tarball itself.

OK, I'm _really_ confused now.  META.yml is apparently added to the
manifest by this Makefile fragment

# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
        $(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd 
-e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } 
' \
          -e '    or print "Could not add META.yml to MANIFEST: 
$${'\''@'\''}\n"' --

This comes from Perl automake magic that we don't control ... there is
no reference to yml in the Makefile.PL that is used to generate
Makefile.

> The Perl Makefiles attempt to copy every file listed in the MANIFEST:
> -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
> 
> As "META.yml" is listed in the manifest but is not present at that point
> in the build (it is generated later), manicopy() fails.
> 

Hmm, my builds run like this ...

Generating META.yml
tar cvf PCP-LogImport-1.00.tar PCP-LogImport-1.00
PCP-LogImport-1.00/
PCP-LogImport-1.00/LogImport.xs
PCP-LogImport-1.00/COPYING
PCP-LogImport-1.00/LogImport.pm
PCP-LogImport-1.00/typemap
PCP-LogImport-1.00/Changes
PCP-LogImport-1.00/META.yml
PCP-LogImport-1.00/MANIFEST
PCP-LogImport-1.00/Makefile.PL
rm -rf PCP-LogImport-1.00
gzip --best PCP-LogImport-1.00.tar

and

$ tar tf PCP-LogImport-1.00.tar.gz | grep yml
PCP-LogImport-1.00/META.yml

so META.yml _is_ in some tarball at this stage and is also included in
the MANIFEST file in the tarball

$ tar xpf PCP-LogImport-1.00.tar.gz
$ diff MANIFEST PCP-LogImport-1.00/MANIFEST 
7a8
> META.yml                                 Module meta-data (added by MakeMaker)

which seems internally consistent.

So at what point does your build go wrong?

I think I need the full context (via script(1) or similar) and any build
logs to progress this further.


<Prev in Thread] Current Thread [Next in Thread>