Subject: | PREFIX=blah Broken for install read .../.packlist |
sirbarton /build/ExtUtils-MakeMaker-6.21# perl -v
This is perl, v5.8.2 built for i686-linux
Copyright 1987-2003, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
sirbarton /build/ExtUtils-MakeMaker-6.21# uname -a
Linux sirbarton 2.4.25-gentoo-r1 #2 Thu Apr 29 07:02:35 PDT 2004 i686 AMD Athlon(tm) XP 1800+ AuthenticAMD GNU/Linux
To reproduce the code, make any Makefile.PL as follows:
perl Makefile.PL PREFIX=`pwd`
gmake
gmake install
gmake uninstall
Now, for some strange reason, the normal uninstall targets are disabled, so I had to copy the following into my Makefile.PL (see bottom of message) and hit the target "amp_uninstall" which gave me:
gmake -C Tk-MDI-0.2.1 amp_uninstall
gmake[3]: Entering directory `/local/proj/abs/vhi/vhi-0.0.1/=build/src/Tk-MDI-0.2.1'
/usr/bin/perl "-MExtUtils::Install" -e 'uninstall ("/local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2/i686-linux/auto/Tk/MDI/.packlist")'
Cannot forceunlink /usr/lib/perl5/site_perl/5.8.2/Tk/MDI.pm: Permission denied at -e line 1
The problem is that install, output below, reads the wrong packlist:
/usr/bin/perl "-MExtUtils::Command::MM" -e pod2man "--" --section=3 --perm_rw=644 \
MDI.pm blib/man3/Tk::MDI.3pm
/bin/sh -c true
/usr/bin/perl -MExtUtils::Install -e 'install({@ARGV}, '\''0'\'', 0, '\''0'\'');' \
read /usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/Tk/MDI/.packlist \
write /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2/i686-linux/auto/Tk/MDI/.packlist \
blib/lib /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2 \
blib/arch /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2/i686-linux \
blib/bin /local/proj/abs/vhi/vhi-0.0.1/=inst/bin \
blib/script /local/proj/abs/vhi/vhi-0.0.1/=inst/bin \
blib/man1 /local/proj/abs/vhi/vhi-0.0.1/=inst/share/man/man1 \
blib/man3 /local/proj/abs/vhi/vhi-0.0.1/=inst/share/man/man3
Installing /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2/Tk/MDI.pm
Installing /local/proj/abs/vhi/vhi-0.0.1/=inst/share/man/man3/Tk::MDI.3pm
Writing /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2/i686-linux/auto/Tk/MDI/.packlist
/usr/bin/perl "-MExtUtils::Command::MM" -e warn_if_old_packlist \
/usr/lib/perl5/5.8.2/i686-linux/auto/Tk/MDI
echo Appending installation info to /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/5.8.2/i686-linux/perllocal.pod
Appending installation info to /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/5.8.2/i686-linux/perllocal.pod
/usr/bin/perl "-MExtUtils::Command" -e mkpath /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/5.8.2/i686-linux
/usr/bin/perl "-MExtUtils::Command::MM" -e perllocal_install \
"Module" "Tk::MDI" \
"installed into" "/local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/site_perl/5.8.2" \
LINKTYPE "dynamic" \
VERSION "0.2.1" \
EXE_FILES "" \
Show quoted text
>> /local/proj/abs/vhi/vhi-0.0.1/=inst/lib/perl5/5.8.2/i686-linux/perllocal.pod
Linux(sirbarton):/local/proj/abs/vhi/vhi-0.0.1/=build/src/Tk-MDI-0.2.1>
Note that the .packlist following "read" is wrong.
----Add to Makefile.PL------
sub MY::postamble
{
return q?
amp_uninstall :: amp_uninstall_from_$(INSTALLDIRS)dirs
amp_uninstall_from_perldirs ::
$(PERLRUN) "-MExtUtils::Install" -e 'uninstall ("$(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist")'
if test ! -s $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist && \
test -f $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist ; then\
rm -f $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist; \
fi
amp_uninstall_from_sitedirs ::
$(PERLRUN) "-MExtUtils::Install" -e 'uninstall ("$(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist")'
if test ! -s $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist && \
test -f $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist ; then\
rm -f $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist; \
fi
amp_uninstall_from_vendordirs ::
$(PERLRUN) "-MExtUtils::Install" -e 'uninstall ("$(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist")'
if test ! -s $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist && \
test -f $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist ; then\
rm -f $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist; \
fi
?;
}