Skip Menu |

This queue is for tickets about the XML-Entities CPAN distribution.

Report information
The Basics
Id: 106483
Status: resolved
Priority: 0/
Queue: XML-Entities

People
Owner: Sixtease+cpan [...] gmail.com
Requestors: dmacks [...] netspace.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 1.0002



Subject: Build failure: mis-handled pathname variables in Makefile.PL
Date: Sun, 16 Aug 2015 23:13:20 -0400
To: bug-XML-Entities [...] rt.cpan.org
From: "Daniel Macks" <dmacks [...] netspace.org>
Building XML-Entities-1.0001 on OS X 10.10 using apple's perl-5.18.2 and with a handful of CPAN modules installed creates a broken installation (and fails self-tests as a result). The actual problem is seen here during the build: % make cp bin/download-entities.pl blib/script/download-entities.pl "/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/download-entities.pl cp lib/XML/Entities/Data.pod ${INST_LIBDIR}/Entities/Data.pod cp lib/XML/Entities.pm ${INST_LIBDIR}/Entities.pm cp lib/XML/Entities/Data.pm ${INST_LIBDIR}/Entities/Data.pm where it says ${INST_LIBDIR}" instead of some blib/ or other actual pathname. The result is that blib/ does not contain the actual modules, so 'make test' fails because it cannot locate the module files and 'make install' doesn't actually install anything. The bug is that recent MakeMaker (or some other module in its toolchain) is stricter about how to pass Makefile variables in your Makefile.PL. Using curly-braces here makes them handled literally:     PM                  => {         'lib/XML/Entities.pm'       => '${INST_LIBDIR}/Entities.pm',         'lib/XML/Entities/Data.pm'  => '${INST_LIBDIR}/Entities/Data.pm',         'lib/XML/Entities/Data.pod' => '${INST_LIBDIR}/Entities/Data.pod',     }, [...]     MAN3PODS            => {         'lib/XML/Entities.pm'       => '${INST_MAN3DIR}/XML::Entities.3pm',         'lib/XML/Entities/Data.pod' => '${INST_MAN3DIR}/XML::Entities::Data.3pm',         'bin/download-entities.pl'  => '${INST_MAN3DIR}/download-entities.pl.3pm',     }, Instead, use parens to get interpolation:     PM                  => {         'lib/XML/Entities.pm'       => '$(INST_LIBDIR)/Entities.pm',         'lib/XML/Entities/Data.pm'  => '$(INST_LIBDIR)/Entities/Data.pm',         'lib/XML/Entities/Data.pod' => '$(INST_LIBDIR)/Entities/Data.pod',     }, [...]     MAN3PODS            => {         'lib/XML/Entities.pm'       => '$(INST_MAN3DIR)/XML::Entities.3pm',         'lib/XML/Entities/Data.pod' => '$(INST_MAN3DIR)/XML::Entities::Data.3pm',         'bin/download-entities.pl'  => '$(INST_MAN3DIR)/download-entities.pl.3pm',     }, That gives a 'make' output of: cp lib/XML/Entities/Data.pod blib/lib/XML/Entities/Data.pod cp lib/XML/Entities.pm blib/lib/XML/Entities.pm cp lib/XML/Entities/Data.pm blib/lib/XML/Entities/Data.pm and then the self-test and installation work correctly. dan -- Daniel Macks dmacks@netspace.org
Thank you for the report. The now available version 1.0002 includes your suggested changes.