> On Feb 25, 2018, at 9:46 PM, Jed Brown <[email protected]> wrote: > > Satish Balay <[email protected]> writes: > >> On Sun, 25 Feb 2018, Lawrence Mitchell wrote: >> >>> >>> >>>> On 25 Feb 2018, at 21:13, Jed Brown <[email protected]> wrote: >>>> >>>> >>>> The try part of that commit (around os.remove) is necessary. Also, >>>> "rmdir -p" provides a useful semantic in this context, but needs to be >>>> implemented manually in Python (or I don't know where that functionality >>>> is available in the standard library). >>> >>> shutil.rmtree >> >> I think [in uninstall script] - we want to delete dirs only if the dir >> is empty. [if not empty - it could contain files installed by a >> different package - as its common to install multiple packages in the >> same prefix] > > Yeah, "rm -r" is much different from "rmdir -p". > >> Also - thinking about it - its not clear if we can really do a proper >> uninstall - esp with --download-packages. >> >> Previously - 'make install' would also install the downloaded packages >> and we kept track of them for the uninstall script. But now - we let >> each package do its own 'make install' to the prefix location. But we >> don't have an 'uninstall' option for these externalpackages. [I don't >> know if any of them provide 'make uninstall' feature] > > PETSc --download-* is a package manager, albeit very crufty (though it > gets the job done). Basically all package managers function by > installing with a private DESTDIR, bundling up the result, then > unpacking into the target.
That's not how PETSc's works. It tells the each package the final prefix and each package installs into that location directly.
