Re: [iptables PATCH] build: Fix for failing 'make uninstall'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-06-09 13:07, Phil Sutter wrote:
> Support for uninstalling is severely broken:
> 
> - extensions/GNUmakefile.in defines an 'install' target but lacks a
>   respective 'uninstall' one, causing 'make uninstall' abort with an
>   error message.
> 
> - iptables/Makefile.am defines an 'install-exec-hook' to create the
>   binary symlinks which are left in place after 'make uninstall'.
> 
> Fix these problems by defining respective targets containing code copied
> from automake-generated uninstall targets.
> 
> While being at it, add a few more uninstall-hooks removing custom
> directories created by 'make install' if they are empty afterwards.
> 
> Reported-by: Richard Guy Briggs <rgb@xxxxxxxxxx>
> Signed-off-by: Phil Sutter <phil@xxxxxx>

That's much cleaner, thanks Phil.

Tested-by: Richard Guy Briggs <rgb@xxxxxxxxxx>

> ---
>  extensions/GNUmakefile.in | 15 ++++++++++++++-
>  include/Makefile.am       |  5 +++++
>  iptables/Makefile.am      | 23 +++++++++++++++++++++++
>  utils/Makefile.am         |  5 +++++
>  4 files changed, 47 insertions(+), 1 deletion(-)
> 
> diff --git a/extensions/GNUmakefile.in b/extensions/GNUmakefile.in
> index 0842a55354e4b..956ccb38b2ab9 100644
> --- a/extensions/GNUmakefile.in
> +++ b/extensions/GNUmakefile.in
> @@ -79,7 +79,7 @@ targets_install :=
>  
>  .SECONDARY:
>  
> -.PHONY: all install clean distclean FORCE
> +.PHONY: all install uninstall clean distclean FORCE
>  
>  all: ${targets}
>  
> @@ -92,6 +92,19 @@ install: ${targets_install} ${symlinks_install}
>  		cp -P ${symlinks_install} "${DESTDIR}${xtlibdir}/"; \
>  	fi;
>  
> +uninstall:
> +	dir=${DESTDIR}${xtlibdir}; { \
> +		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
> +	} || { \
> +		test -z "${targets_install}" || ( \
> +			cd "$$dir" && rm -f ${targets_install} \
> +		); \
> +		test -z "${symlinks_install}" || ( \
> +			cd "$$dir" && rm -f ${symlinks_install} \
> +		); \
> +		rmdir -p --ignore-fail-on-non-empty "$$dir"; \
> +	}
> +
>  clean:
>  	rm -f *.o *.oo *.so *.a {matches,targets}.man initext.c initext4.c initext6.c initextb.c initexta.c;
>  	rm -f .*.d .*.dd;
> diff --git a/include/Makefile.am b/include/Makefile.am
> index e69512092253a..ea34c2fef0d98 100644
> --- a/include/Makefile.am
> +++ b/include/Makefile.am
> @@ -10,3 +10,8 @@ endif
>  nobase_include_HEADERS += \
>  	libiptc/ipt_kernel_headers.h libiptc/libiptc.h \
>  	libiptc/libip6tc.h libiptc/libxtc.h libiptc/xtcshared.h
> +
> +uninstall-hook:
> +	dir=${includedir}/libiptc; { \
> +		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
> +	} || rmdir -p --ignore-fail-on-non-empty "$$dir"
> diff --git a/iptables/Makefile.am b/iptables/Makefile.am
> index 2024dbf5cb88c..bab094b7c6aa9 100644
> --- a/iptables/Makefile.am
> +++ b/iptables/Makefile.am
> @@ -111,3 +111,26 @@ install-exec-hook:
>  	for i in ${v6_sbin_links}; do ${LN_S} -f xtables-legacy-multi "${DESTDIR}${sbindir}/$$i"; done;
>  	for i in ${x_sbin_links}; do ${LN_S} -f xtables-nft-multi "${DESTDIR}${sbindir}/$$i"; done;
>  	${LN_S} -f iptables-apply "${DESTDIR}${sbindir}/ip6tables-apply"
> +
> +uninstall-hook:
> +	dir=${DESTDIR}${bindir}; { \
> +		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
> +	} || { \
> +		test -z "${vx_bin_links}" || ( \
> +			cd "$$dir" && rm -f ${vx_bin_links} \
> +		) \
> +	}
> +	dir=${DESTDIR}${sbindir}; { \
> +		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
> +	} || { \
> +		test -z "${v4_sbin_links}" || ( \
> +			cd "$$dir" && rm -f ${v4_sbin_links} \
> +		); \
> +		test -z "${v6_sbin_links}" || ( \
> +			cd "$$dir" && rm -f ${v6_sbin_links} \
> +		); \
> +		test -z "${x_sbin_links}" || ( \
> +			cd "$$dir" && rm -f ${x_sbin_links} \
> +		); \
> +		( cd "$$dir" && rm -f ip6tables-apply ); \
> +	}
> diff --git a/utils/Makefile.am b/utils/Makefile.am
> index d09a69749b85f..42bd973730194 100644
> --- a/utils/Makefile.am
> +++ b/utils/Makefile.am
> @@ -14,6 +14,11 @@ sbin_PROGRAMS += nfnl_osf
>  pkgdata_DATA += pf.os
>  
>  nfnl_osf_LDADD = ${libnfnetlink_LIBS}
> +
> +uninstall-hook:
> +	dir=${DESTDIR}${pkgdatadir}; { \
> +		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
> +	} || rmdir -p --ignore-fail-on-non-empty "$$dir"
>  endif
>  
>  if ENABLE_BPFC
> -- 
> 2.27.0
> 

- RGB

--
Richard Guy Briggs <rgb@xxxxxxxxxx>
Sr. S/W Engineer, Kernel Security, Base Operating Systems
Remote, Ottawa, Red Hat Canada
IRC: rgb, SunRaycer
Voice: +1.647.777.2635, Internal: (81) 32635




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux