[CRIU] [PATCH] uninstall: use --record with setup.py

Dmitry Safonov dsafonov at virtuozzo.com
Thu Apr 28 11:20:53 PDT 2016


On 04/28/2016 04:29 PM, Ruslan Kuprieiev wrote:
> --record option allows us to keep track of files that are being
> installed by writing them to specified file. We can than use that
> file to do proper cleanup on uninstall.

Hello Ruslan,

> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
> ---
>   .gitignore   |  1 +
>   lib/Makefile | 13 ++++++-------
>   2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index e8c47d5..6136d2c 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -36,3 +36,4 @@ criu/pie/piegen/piegen
>   criu/pie/pie.lds*.S
>   criu/protobuf-desc-gen.h
>   scripts/build/qemu-user-static/*
> +lib/.crit-setup.files
> diff --git a/lib/Makefile b/lib/Makefile
> index a6ea3f2..1e4857c 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -5,6 +5,10 @@ CRIU_SO			:= libcriu.so
>   UAPI_HEADERS		:= c/criu.h ../images/rpc.proto
>   
>   #
> +# File to keep track of files installed by setup.py
> +CRIT_SETUP_FILES	:= .crit-setup.files
> +
> +#
>   # C language bindings.
>   c/%: ../Makefile.versions
>   	$(call msg-gen, $@)
> @@ -52,7 +56,7 @@ install: lib-c lib-py ../crit/crit c/criu.pc.in
>   	$(Q) sed -e 's, at version@,$(CRIU_VERSION),' -e 's, at libdir@,$(LIBDIR),' -e 's, at includedir@,$(dir $(INCLUDEDIR)),' c/criu.pc.in > c/criu.pc
>   	$(Q) install -m 644 c/criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
>   	$(E) "  INSTALL " crit
> -	$(Q) python ../scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
> +	$(Q) python ../scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX) --record $(CRIT_SETUP_FILES)
>   .PHONY: install
>   
>   uninstall:
> @@ -64,10 +68,5 @@ uninstall:
>   	$(E) " UNINSTALL" pkgconfig/criu.pc
>   	$(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/pkgconfig/,criu.pc)
>   	$(E) " UNINSTALL" crit
> -	#
> -	# FIXME How to deal with python setup properly?
> -	$(Q) $(RM) $(addprefix $(DESTDIR)$(BINDIR)/,crit)
> -	$(Q) $(RM) -r $(addprefix $(DESTDIR)$(LIBDIR)/python2.7/site-packages/,pycriu)
> -	$(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/python2.7/site-packages/,crit-0.0.1-py2.7.egg-info)
> -#	$(Q) python ../scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
> +	$(Q) while read -r file; do $(RM) -r "$(DESTDIR)$$file"; done < $(CRIT_SETUP_FILES)

I'm a little worried about that rm -r stuff.
Why it's needed here?
I would prefer to use rm without `-r' flag
even if we create folders on install.
Or treat folders some special way with rmdir.

>   .PHONY: uninstall


-- 
Regards,
Dmitry Safonov



More information about the CRIU mailing list