|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] [PATCH RFC] tools: rework uninstall target
On Sun, 2013-04-14 at 06:51 +0100, Wei Liu wrote:
> The changes are verified by doing 'cd tools; ./configure --prefix=/tmp/tmpdir;
> make install; make uninstall; find /tmp/tmpdir -type f'. All files are
> removed.
Could usefully be turned into a test case I think.
> The only question is that do we remove too many things than
> necessary.
Or are they things which aren't enabled in your build? e.g. LOMOUNT is
obsolete but still subject to the CONFIG_LOMOUNT setting (disabled by
default)
>
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> tools/Makefile | 39 ++++++++++++++++++++++++++-------------
> tools/pygrub/Makefile | 3 ++-
> tools/python/Makefile | 3 ++-
> 3 files changed, 30 insertions(+), 15 deletions(-)
>
> diff --git a/tools/Makefile b/tools/Makefile
> index 8a30c83..8aeb811 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -74,34 +74,47 @@ install: subdirs-install
> .PHONY: uninstall
> uninstall: D=$(DESTDIR)
> uninstall:
> - rm -rf $(D)$(LIBDIR)/xen* $(D)$(BINDIR)/lomount
> - rm -rf $(D)$(BINDIR)/cpuperf-perfcntr $(D)$(BINDIR)/cpuperf-xen
> - rm -rf $(D)$(BINDIR)/xc_shadow
> - rm -rf $(D)$(BINDIR)/pygrub
> - rm -rf $(D)$(BINDIR)/setsize $(D)$(BINDIR)/tbctl
> - rm -rf $(D)$(BINDIR)/xsls
> rm -rf $(D)$(BINDIR)/xenstore* $(D)$(BINDIR)/xentrace*
> rm -rf $(D)$(BINDIR)/xen-detect $(D)$(BINDIR)/xencons
> - rm -rf $(D)$(BINDIR)/xenpvnetboot $(D)$(BINDIR)/qemu-*-xen
> + rm -rf $(D)$(BINDIR)/qemu-*-xen
> + rm -rf $(D)$(BINDIR)/remus
> + rm -rf $(D)$(BINDIR)/pygrub
> rm -rf $(D)$(INCLUDEDIR)/xenctrl* $(D)$(INCLUDEDIR)/xenguest.h
> rm -rf $(D)$(INCLUDEDIR)/xs_lib.h $(D)$(INCLUDEDIR)/xs.h
> - rm -rf $(D)$(INCLUDEDIR)/xenstore-compat/xs_lib.h
> $(D)$(INCLUDEDIR)/xenstore-compat/xs.h
> + rm -rf $(D)$(INCLUDEDIR)/xenstore-compat
I'm not sure we can assume that the user (for better or worse) hasn't
put something of their own in this directory. I think removing the files
and then trying to rmdir (failing if directory isn't empty) is a better
option.
That said this class of issue is pretty big with this uninstall thing
anyway given the existing use of *.
> + if test -f python/installed-files.list; then cat
> python/installed-files.list | xargs -I '{}' rm -f '/{}'; fi
> + if test -f pygrub/installed-files.list; then cat
> pygrub/installed-files.list | xargs -I '{}' rm -f '/{}'; fi
I'm a little bit terrified of the possibility of {} being substituted
with "" here e.g. if foo.list is somehow empty, or contains a blank
line. Using --no-run-if-empty might help with the first case but not the
blank line case. I don't see an option which helps in that case :-(
Of, it's -f not -rf. That's actually somewhat reassuring.
http://bugs.python.org/issue4673 seems to suggest that setup.py ought to
be able to uninstall stuff? But none of the docs seem to mention it so
perhaps it is a phantasm.
This won't help users of "make dist" though since *.files will contain
paths in the dist dir not the real filesystem. I suppose such people
have installed by hand then and can be expected to undo it.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |