On Wed, Mar 06, 2002 at 12:26:49PM -0500, Michael G Schwern wrote:
> You said you didn't know exactly why uninstall was deprecated, and you
> might add it back in if a patch were submitted.  Here's what I've
> discovered so far.

This is where it got deprecated back in 1997.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/9701/msg00749.html

Andreas sed:

    Folks, I think, I have to deprecate the uninstall target. It was never
    documented, it was never really clever, it just caused me a lot of
    grief. I'd rather design a new solution from scratch.

so yes, it was deprecated because it was broken, not because it was
necessarily a bad idea.


> There is an undocumented fourth parameter to install() which means
> 'uninstall' and causes it to call unc_uninstall() under some
> circumstances.  This unc_uninstall() is an attempt at a clever
> uninstaller which compares files to see whether they are the same as
> those built (otherwise it leaves them alone).  However, it's all rather
> broken.  When I ran it it removed two README files (one of which was
> actually completely unrelated to the package) but ignored all other
> files.
> 
> I suggest that as a first step you remove the fourth parameter from
> install() and strip out all the uninstall stuff which is never actually
> called from a makefile.

Good plan.  Go ahead with the complete scrubbing out of the old
uninstall code.  I'll take a patch for that.  Just be careful, its
hairy in there.

Sorry, I'm entirely focused on getting a stable release for 5.8 and
can't do it myself.


> I would like to have uninstallation for my
> project, so I may implement something simple.  But any new version would
> probably best start from scratch and use the existing deprecated, broken
> code as 'inspiration' rather than as something to build on.

Yes.  Your best place to start is to write a working uninstall()
function based on ExtUtils::Installed instead of ExtUtils::Packlist.

There is an uninstall() function in ExtUtils::Install which is what
'make uninstall' currently uses.  I don't know what condition its
currently in, but it seems to be very small and based on
ExtUtils::Packlist.

Don't worry about wiring up a "make uninstall".  That can come later.


> Perhaps I'm being unduly negative, I haven't investigated thoroughly
> whether the uninstalling can be made to work, but I imagine that the
> previous maintainers stopped supporting uninstall for a reason.

"For historical reasons" :)


-- 

Michael G. Schwern   <[EMAIL PROTECTED]>    http://www.pobox.com/~schwern/
Perl Quality Assurance      <[EMAIL PROTECTED]>         Kwalitee Is Job One
If you'll mount me, I'll let you bomb Canada until they swoon.

Reply via email to