"Smith, Barry F." <[email protected]> writes:

>> 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.

That's just because PETSc's package manager is kinda crappy because
nobody wants to admit that it really is a package manager.  If uninstall
is to be a thing at all, then it's definitely the way to go.

Reply via email to