On Wednesday, 17 October 2012 18:53:42 UTC+2, David Nadlinger wrote:
> I am not sure what to do about this. »make uninstall« seems like a
> valid improvement, and I can see how it would be useful in some
> situations, but on the other hand, I have never used it myself on Linux
> or OS X with any open source projects, CMake doesn't support it by
> default, and providing an innocent-looking command which goes on to
> delete files on the users system comes with a big, BIG burden to get it
> right.
Fair enough. My personal take on it is that CMake surely knows what files it's installing and where it's putting them, and so a command to remove them surely isn't too much to ask -- but I can see the risk. I've used it with from-source installs fairly often with autotools-based stuff, so it was a surprise to discover that CMake doesn't by default offer an uninstall target.
> What I'm trying to say is that I think providing an uninstallation
> facility comes with bigger support obligations than it might seem at
> first, and there is already a tool dedicated to exactly this sort of
> thing – your distro's package manager.
Well, we're talking about from-source installs only -- it's an option that surely only matters to devs or people who are comfortable on the edge. But I see very much your point that it's a complication that might be worth avoiding.
Out of curiosity, how do _you_ remove files that were installed from source, if a "make uninstall" option isn't available? Or does it not really come up for you?
> Maybe we could just link the CMake FAQ in our docs, with the
> recommendation to rely on the system package manager instead whenever
> possible?
Sure, sounds like a good compromise. Though I'm not sure I see the relevance of the package manager as if you install a package (rather than from source) you'll also uninstall that way -- but AFAICS the package manager doesn't take account of from-source installs. Or am I about to be educated about an aspect of GNU/Linux that has previously passed me by? :-)
Best wishes,
-- Joe