[Pythonmac-SIG] MacEnthon ...
bob at redivi.com
Sat Mar 26 01:42:22 CET 2005
On Mar 25, 2005, at 5:57 PM, Robert Kern wrote:
> Bob Ippolito wrote:
>> On Mar 25, 2005, at 1:45 PM, Robert Kern wrote:
>>> So I issue a challenge to the PythonMac masses: Write me an
>>> uninstaller. Standalone GUI is a plus, although I can live with a
>>> CLI script. For now, it only needs to be run by the intrepid
>>> testers. One ought to be able to uninstall indivdual packages.
>> Is this <http://www.osxgnu.org/software/Utils/OSXGNU/> usable?
> No, it assumes things about the naming conventions of the BOM file.
It looked kinda crappy anyway, I was just wondering if you had tried it.
I'm not volunteering to do this, as I don't need it and I have plenty
of other things to work on.. but here is a brain dump of the procedure
for uninstalling a package generated by bdist_mpkg (or most anything
(1) Somehow know the name of all the .pkgs inside, the .mpkg does not
create a receipt of its own
(2) Pick up the value of the "IFPkgReceiptLocation" key in the
./Contents/Info.plist of the .pkg
(3) Grab the output of "/usr/bin/lsbom -p f ./Contents/Archive.bom"
(obviously using the full path to the bom)
(4) shutil.rmtree(os.path.join(IFPkgReceiptLocation, line.rstrip()),
ignore_errors=True) for every line in the output gathered from (3)
This, of course, basically needs to happen with euid 0. So, you could:
(a) make it only usable from the shell via sudo
(b) write an AppleScript stub that does the root stuff
(c) use Authorization wrappers
.. amongst other possibilities
More information about the Pythonmac-SIG