-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm almost done implementing uninstall for my project. This is not
necessarily the same as an uninstall implementation suitable for
incorporation into MakeMaker. All I've changed is to copy the target
@$(MOD_INSTALL) \
read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
write $(INSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
$(INST_LIB) $(INSTALLSITELIB) \
$(INST_ARCHLIB) $(INSTALLSITEARCH) \
[...]
to a similar-looking
pure_perl_uninstall ::
$(PERL) -I. -MUninstall -e 'uninstall(@ARGV)' \
read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \
write $(INSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \
$(INST_LIB) $(INSTALLPRIVLIB) \
$(INST_ARCHLIB) $(INSTALLARCHLIB) \
[...]
Then all that this new uninstall() needs to do is read the contents of
directories and unlink files. I don't know what to do about packlists
or so-called 'docs', that's what makes it hairy.
IMHO all this stuff with packlists and automatically appending to
perllocal.pod is a misdesign. It means you can't then uninstall
cleanly without a lot of cruft. Also on principle I feel that each file
should belong to one and only one package, there shouldn't be one file
which is modified by each package that comes along.
The idea of having a log of what's installed where is a good one, but if
people want that they will surely use a package manager such as RPM, or
the equivalent for their OS (including ActiveState's PPM on Windows).
Having random files which change on install and uninstall makes it
harder to build such packages, and so works against the goal of making
it easy to keep track of what's there.
And (perhaps most importantly) these files add extra complication, which
MakeMaker could really do without. So if it were up to me I would get
rid of packlists and quietly ignore perllocal.pod. I don't know - are
these files mandated by perl5 itself or are they introduced by
MakeMaker?
(And what is the purpose of packlists anyway?)
The kludged-in uninstall will suffice for my project, but I'll leave it
on my todo list to implement it as an extension to MakeMaker. Ripping
out all the existing broken uninstall code will be an enjoyable
exercise, so I might do that even if I don't submit a patch for a new
implementation :-).
- --
Ed Avis <[EMAIL PROTECTED]>
Finger for PGP key
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE8hmX1IMp73jhGogoRAl2XAJsG6kWPNc8WN3TIfVao8+vhOzcvewCeL4p5
axZKkitZDN9uSONUdqnFN98=
=6Lbd
-----END PGP SIGNATURE-----