mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	build: Fix deb build issues with fakeroot
If DESTDIR is set, don't call ldconfig. Assume that DESTDIR is used to create a binary archive. The ldconfig call should be delegated to the archive postinst script. This fixes the case where fakeroot wraps 'make install' causing $EUID to be 0 even though it doesn't have permission to call ldconfig. The previous logic in configure.ac to detect and correct libdir has been removed as it was not completely accurate. CentOS 64-bit users should again specifiy --libdir=/usr/lib64 when configuring to prevent install to /usr/lib. Updated Makefile:check-old-libdir to check for orphans in lib64 when installing to lib as well as orphans in lib when installing to lib64. Updated Makefile and main/Makefile uninstall targets to remove the orphans using the new logic. ASTERISK-26705 Change-Id: I51739d4a03e60bff38be719b8d2ead0007afdd51
This commit is contained in:
		
				
					committed by
					
						
						George Joseph
					
				
			
			
				
	
			
			
			
						parent
						
							7898aad02d
						
					
				
				
					commit
					a7d94f504f
				
			
							
								
								
									
										52
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								Makefile
									
									
									
									
									
								
							@@ -606,26 +606,56 @@ oldmodcheck:
 | 
			
		||||
 | 
			
		||||
ld-cache-update:
 | 
			
		||||
ifneq ($(LDCONFIG),)
 | 
			
		||||
ifeq ($(DESTDIR),)  # DESTDIR means binary archive creation; ldconfig should be run on postinst
 | 
			
		||||
	@if [ $${EUID} -eq 0 ] ; then \
 | 
			
		||||
		$(LDCONFIG) "$(DESTDIR)$(ASTLIBDIR)/" ; \
 | 
			
		||||
		$(LDCONFIG) "$(ASTLIBDIR)/" ; \
 | 
			
		||||
	else \
 | 
			
		||||
		echo " WARNING WARNING WARNING" ;\
 | 
			
		||||
		echo "" ;\
 | 
			
		||||
		echo " You cannot rebuild the system linker cache unless you are root. " ;\
 | 
			
		||||
		echo " You MUST do one of the follwing..." ;\
 | 
			
		||||
		echo " You MUST do one of the following..." ;\
 | 
			
		||||
		echo "  * Re-run 'make install' as root. " ;\
 | 
			
		||||
		echo "  * Run 'ldconfig $(DESTDIR)$(ASTLIBDIR)' as root. " ;\
 | 
			
		||||
		echo "  * Run asterisk with 'LD_LIBRARY_PATH=$(DESTDIR)$(ASTLIBDIR) asterisk' " ;\
 | 
			
		||||
		echo "  * Run 'ldconfig $(ASTLIBDIR)' as root. " ;\
 | 
			
		||||
		echo "  * Run asterisk with 'LD_LIBRARY_PATH=$(ASTLIBDIR) asterisk' " ;\
 | 
			
		||||
		echo "" ;\
 | 
			
		||||
		echo " WARNING WARNING WARNING" ;\
 | 
			
		||||
	fi
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(and $(findstring 64,$(HOST_CPU)),$(findstring lib64,$(DESTDIR)$(ASTLIBDIR))),lib64)
 | 
			
		||||
_oldlibdir = $(subst lib64,lib,$(DESTDIR)$(ASTLIBDIR))
 | 
			
		||||
export _oldlibdir =
 | 
			
		||||
export _oldmoddir =
 | 
			
		||||
ifeq ($(findstring 64,$(HOST_CPU)),64)
 | 
			
		||||
    # Strip any trailing '/' so the dir and notdir functions work correctly
 | 
			
		||||
    _current_libdir = $(patsubst %/,%,$(DESTDIR)$(ASTLIBDIR))
 | 
			
		||||
 | 
			
		||||
    # Only process if the paths end in lib64 or lib.
 | 
			
		||||
    # If we're installing to lib64, check lib for orphans.
 | 
			
		||||
    # If we're installing to lib, check lib64 for orphans.
 | 
			
		||||
    # Otherwise, leave _oldlibdir empty.
 | 
			
		||||
    ifeq ($(notdir $(_current_libdir)),lib64)
 | 
			
		||||
        _oldlibdir = $(dir $(_current_libdir))lib
 | 
			
		||||
    else ifeq ($(notdir $(_current_libdir)),lib)
 | 
			
		||||
        _oldlibdir = $(dir $(_current_libdir))lib64
 | 
			
		||||
    endif
 | 
			
		||||
 | 
			
		||||
    # Strip any trailing '/' so the dir and notdir functions work correctly
 | 
			
		||||
    _current_moddir = $(patsubst %/,%,$(DESTDIR)$(ASTMODDIR))
 | 
			
		||||
 | 
			
		||||
    # Only process if the paths contain /lib64/ or /lib/.
 | 
			
		||||
    # If we're installing to lib64, check lib for orphans.
 | 
			
		||||
    # If we're installing to lib, check lib64 for orphans.
 | 
			
		||||
    # Otherwise, leave _oldmoddir empty.
 | 
			
		||||
    ifeq ($(findstring /lib64/,$(_current_moddir)),/lib64/)
 | 
			
		||||
        _oldmoddir = $(subst /lib64/,/lib/,$(_current_moddir))
 | 
			
		||||
    else ifeq ($(findstring /lib/,$(_current_moddir)),/lib/)
 | 
			
		||||
        _oldmoddir = $(subst /lib/,/lib64/,$(_current_moddir))
 | 
			
		||||
    endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
check-old-libdir:
 | 
			
		||||
	@oldfiles=`find "$(_oldlibdir)" -name libasterisk* -print -quit -o \( -path *asterisk/modules/* -a -name *.so \) -print -quit` ;\
 | 
			
		||||
	@test -n "$(_oldlibdir)" -a -d "$(_oldlibdir)" || exit 0 ;\
 | 
			
		||||
	oldfiles=`find "$(_oldlibdir)" -name libasterisk* -print -quit -o \( -path *asterisk/modules/* -a -name *.so \) -print -quit 2>/dev/null` ;\
 | 
			
		||||
	if [ "x$$oldfiles" != "x" ] ; then \
 | 
			
		||||
		echo " WARNING WARNING WARNING" ;\
 | 
			
		||||
		echo "" ;\
 | 
			
		||||
@@ -647,10 +677,6 @@ check-old-libdir:
 | 
			
		||||
		echo "" ;\
 | 
			
		||||
		echo " WARNING WARNING WARNING" ;\
 | 
			
		||||
	fi
 | 
			
		||||
else
 | 
			
		||||
check-old-libdir:
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
badshell:
 | 
			
		||||
ifneq ($(filter ~%,$(DESTDIR)),)
 | 
			
		||||
@@ -912,7 +938,7 @@ main-binuninstall:
 | 
			
		||||
 | 
			
		||||
_uninstall: $(SUBDIRS_UNINSTALL) main-binuninstall
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTMODDIR)/"*
 | 
			
		||||
	rm -f "$(subst lib64,lib,$(DESTDIR)$(ASTMODDIR))/"*
 | 
			
		||||
	test -n "$(_oldmoddir)" -a -d "$(_oldmoddir)" && rm -f "$(_oldmoddir)/"* || :
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTSBINDIR)/astgenkey"
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTSBINDIR)/autosupport"
 | 
			
		||||
	rm -rf "$(DESTDIR)$(ASTHEADERDIR)"
 | 
			
		||||
@@ -945,7 +971,7 @@ uninstall: _uninstall
 | 
			
		||||
 | 
			
		||||
uninstall-all: _uninstall
 | 
			
		||||
	rm -rf "$(DESTDIR)$(ASTMODDIR)"
 | 
			
		||||
	rm -rf "$(subst lib64,lib,$(DESTDIR)$(ASTMODDIR))"
 | 
			
		||||
	test -n "$(_oldmoddir)" -a -d "$(_oldmoddir)" && rm -rf "$(_oldmoddir)" || :
 | 
			
		||||
	rm -rf "$(DESTDIR)$(ASTVARLIBDIR)"
 | 
			
		||||
	rm -rf "$(DESTDIR)$(ASTDATADIR)"
 | 
			
		||||
	rm -rf "$(DESTDIR)$(ASTSPOOLDIR)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@@ -4890,28 +4890,6 @@ if test ${prefix} = ${ac_default_prefix} || test ${prefix} = 'NONE'; then
 | 
			
		||||
     fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# The following code for detecting lib64 was taken from Fedora's
 | 
			
		||||
# /usr/share/config.site with a modification to check that the
 | 
			
		||||
# /usr/lib64 directory actually exists.  This prevents libdir from
 | 
			
		||||
# being set to /usr/lib64 on 64-bit systems that still use /usr/lib.
 | 
			
		||||
#
 | 
			
		||||
if test "$prefix" = /usr ||\
 | 
			
		||||
     { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; }
 | 
			
		||||
then
 | 
			
		||||
     for i in x86_64 ppc64 s390x aarch64; do
 | 
			
		||||
        if test $host_cpu = $i; then
 | 
			
		||||
           if test "$libdir" = '${exec_prefix}/lib' &&\
 | 
			
		||||
              { test -d "${exec_prefix}/lib64" || test -d "${ac_default_prefix}/lib64" ; } ; then
 | 
			
		||||
              libdir='${exec_prefix}/lib64'
 | 
			
		||||
              { $as_echo "$as_me:${as_lineno-$LINENO}:  Setting libdir=${libdir} " >&5
 | 
			
		||||
$as_echo "$as_me:  Setting libdir=${libdir} " >&6;}
 | 
			
		||||
           fi
 | 
			
		||||
           break
 | 
			
		||||
        fi
 | 
			
		||||
     done
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
BUILD_PLATFORM=${build}
 | 
			
		||||
BUILD_CPU=${build_cpu}
 | 
			
		||||
BUILD_VENDOR=${build_vendor}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								configure.ac
									
									
									
									
									
								
							@@ -135,27 +135,6 @@ if test ${prefix} = ${ac_default_prefix} || test ${prefix} = 'NONE'; then
 | 
			
		||||
     fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# The following code for detecting lib64 was taken from Fedora's
 | 
			
		||||
# /usr/share/config.site with a modification to check that the
 | 
			
		||||
# /usr/lib64 directory actually exists.  This prevents libdir from
 | 
			
		||||
# being set to /usr/lib64 on 64-bit systems that still use /usr/lib.
 | 
			
		||||
#
 | 
			
		||||
if test "$prefix" = /usr ||\
 | 
			
		||||
     { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; }
 | 
			
		||||
then
 | 
			
		||||
     for i in x86_64 ppc64 s390x aarch64; do
 | 
			
		||||
        if test $host_cpu = $i; then
 | 
			
		||||
           if test "$libdir" = '${exec_prefix}/lib' &&\
 | 
			
		||||
              { test -d "${exec_prefix}/lib64" || test -d "${ac_default_prefix}/lib64" ; } ; then
 | 
			
		||||
              libdir='${exec_prefix}/lib64'
 | 
			
		||||
              AC_MSG_NOTICE([ Setting libdir=${libdir} ])
 | 
			
		||||
           fi
 | 
			
		||||
           break
 | 
			
		||||
        fi
 | 
			
		||||
     done
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
BUILD_PLATFORM=${build}
 | 
			
		||||
BUILD_CPU=${build_cpu}
 | 
			
		||||
BUILD_VENDOR=${build_vendor}
 | 
			
		||||
 
 | 
			
		||||
@@ -351,7 +351,7 @@ binuninstall:
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTSBINDIR)/$(MAIN_TGT)"
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTSBINDIR)/rasterisk"
 | 
			
		||||
	rm -f "$(DESTDIR)$(ASTLIBDIR)/libasterisk"* || :
 | 
			
		||||
	rm -f "$(subst lib64,lib,$(DESTDIR)$(ASTLIBDIR))/libasterisk"* || :
 | 
			
		||||
	test -n "$(_oldlibdir)" -a -d "$(_oldlibdir)" && rm -f "$(_oldlibdir)/libasterisk"* || :
 | 
			
		||||
 | 
			
		||||
clean::
 | 
			
		||||
	rm -f asterisk libasteriskssl.o
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user