Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 132875
Status: resolved
Worked: 3 hours (180 min)
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: BINGOS [...] cpan.org
Requestors: HMBRAND [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 7.46
Fixed in: 7.47_01



Subject: DISTVNAME is a time bomb
Imagine a module that defines its version as our $VERSION = "1.00 /"; If - what is normal - VERSION_FROM is set to that module file, look at what is created in the generated Makefile: DISTVNAME = Foo-Bar-1.00 / (no quotation either) The makefile furter has a cleanup: $(RM_RF) $(DISTVNAME) Hmmm, no quotation either. Not much imagination needed to see what will happen In a less intrusive example our $VERSION = "1.00 - 2020-06-25"; The generated Makefile will cause warnings, like Makefile:660: warning: overriding recipe for target 'Foo-Bar-1.00' Makefile:648: warning: ignoring old recipe for target 'Foo-Bar-1.00' Makefile:660: warning: overriding recipe for target '-' Makefile:648: warning: ignoring old recipe for target '-' Several options: • The VERSION should be trimmed to something safe • Die if $VERSION has whitespace • Die if $VERSION has any special character • Create correct quotation
On Thu Jun 25 04:08:43 2020, HMBRAND wrote: Show quoted text
> Imagine a module that defines its version as > > our $VERSION = "1.00 /"; > > If - what is normal - VERSION_FROM is set to that module file, look > at what is created in the generated Makefile: > > DISTVNAME = Foo-Bar-1.00 / > > (no quotation either) > The makefile furter has a cleanup: > > $(RM_RF) $(DISTVNAME) > > Hmmm, no quotation either. Not much imagination needed to see what > will happen > > In a less intrusive example > > our $VERSION = "1.00 - 2020-06-25"; > > The generated Makefile will cause warnings, like > > Makefile:660: warning: overriding recipe for target 'Foo-Bar-1.00' > Makefile:648: warning: ignoring old recipe for target 'Foo-Bar-1.00' > Makefile:660: warning: overriding recipe for target '-' > Makefile:648: warning: ignoring old recipe for target '-' > > Several options: > • The VERSION should be trimmed to something safe > • Die if $VERSION has whitespace > • Die if $VERSION has any special character > • Create correct quotation
I have implemented some fixes for this that pass the test suite. Released as 7.47_01