Moin,
On Monday 30 January 2006 22:07, Michael G Schwern via RT wrote:
Show quoted text> On 1/28/06, nospam-abuse@bloodgate.com via RT <
> bug-ExtUtils-MakeMaker@rt.cpan.org> wrote:
> > > You've overridden the metafile target and the new scheme requires
> > > two changes.
> > >
> > > * You're placing the META.yml into the source directory. It should
> > > go into $(DISTVNAME)/META.yml
> >
> > Says who?
>
> Says me! Its how the method works. If you override the method and
> change its behavior its not going to work! The behavior changed out
> from under you, but that's difficult to avoid in MakeMaker.
Actually, I didn't even know that I changed the behaviour of anything,
guess I shouldn't have used code without understanding it.
There is also a lot of confusion because I do (mostly) not know what you
are talking about - the innards of Makefile's are a bit like deep magic
to me.
Show quoted text> I like it in the source directory :-P
> Then copy META.yml to $(DISTVNAME) instead of moving it.
> And there is actually no $(DISTVNAME) directory in my distritbutions
> (if
>
> > DISTVNAME means Graph-Easy-0.40/ or something like that).
>
> $(DISTVNAME) is the directory created by "make distdir" (and thus "make
> dist"). It is a transient directory created by MakeMaker and should
> not be part of your distribution. Its created by the create_distdir
> target which is why its important metafile runs after create_distdir.
Yes, but if META.yml is only ever in the distdir, how is signing going to
work? cpansign -s signs the distribution by hashing all the files, and if
META.yml is not there, it will not hash it. cpansign -s doesn't use the
DISTVNAME directory at all, so if I do:
perl Makefile.PL
make
cpansign -s
make dist
I end up with a SIGNATURE file that misses META.yml, but META.yml will be
in the distribution - e.g. its in there unsigned, which I consider bad,
and "cpansign" at the user side will warn about, too. *puzzled*
Show quoted text> > * metafile should have a dependency on create_distdir.
> > Huh? No idea what you are talking about. How'd I do this?
> metafile : create_distdir
>
> This is basic make syntax which says "before you run the metafile
> target, the create_distdir has to have been run". It mirrors what the
> current metafile target does.
The real problem here is that I do not havy *any* clue about how
Makefile.PL works it's magic, or what make does or what goes into the
Makefile.PL. All I know is that I got a "sub MY::metafile {" routine from
someone, and that by inserting this I magically got a "license: field" in
my META.yml file (and got that file, too!) and I was happy :)
And now it does no longer work as it used to, and I have no idea how to
really fix it.
Show quoted text> All what I want is that:
> > make dist
> >
> > creates a META.yml and puts it into my distribution as it used to be.
>
> If that is really all you want, remove your metafile() override.
> However, I don't think that's all you want.
Well, I think I did not explain this correctly :)
Show quoted text> > This is new since the change, so not your fault. It strikes me it
> >
> > > would make overriding the META.yml generation less prone to these
> > > sorts of future changes by MakeMaker providing a method which just
> > > returns the contents of META.yml. Then you can override that and
> > > MakeMaker can do its necessary voodoo, chopping it up into $(ECHO)
> > > lines and putting it wherever necessary.
> >
> > Whatever. :)
>
> I really don't appreciate "I'm considering doing a bunch of extra work
> to accomodate you" to be met with "whatever". Smiley or no.
I did read your explanations, but they did fly above my head, that's why I
said "whatever :)" (you did probably not get the reference, too, eek and
it should have been "yeah, whatever". But I disgress :)
Sorry, will try not to sneak in obscure references again, and watch my
language in the future.
Show quoted text> All I care is that I get a META.yml file with the license
> > field and that it is bundled properly in my distribution (I think I
> > am repeating myself here :)
> >
> > So, how do I get the old behaviour back?
>
> Ensure that your metafile override:
>
> * Runs after create_distdir
> * Places a META.yml into $(DISTVNAME)
But both these steps just ensure that I get a META.yml file in DISTVNAME,
a transient directory, and NOT in the main source directory, where it
needs to be for signing beforehand. *confused* Thats different from what I
get now, or?
We sem to have talked about different things here, blame my poor language
skills.
Show quoted text> Alternatively 6.30_01 adds a LICENSE field which will populate META.yml
> for you as well as EXTRA_META which allows you to append to the
> existing META.yml.
Great news! However, it would also place META.yml in the DISTVNAME only?
Best wishes,
Tels
--
Signed on Mon Jan 30 23:51:33 2006 with key 0x93B84C15.
Visit my photo gallery at
http://bloodgate.com/photos/
PGP key on
http://bloodgate.com/tels.asc or per email.
"Blogebrity: Wow, guess what this one stands for? Too easy. Hey, anyone
can do it: take a blogger who's a chef, and you get: BLEF. A blogger
who's a dentist? BENTIST. A female blogger with an itch? You guessed it:
a BITCH." -- maddox from xmission