From 019010e611ad56871ed0ad436dc0b3eaf026f2d7 Mon Sep 17 00:00:00 2001 From: Matthew Jordan Date: Tue, 12 Jun 2012 18:41:50 +0000 Subject: [PATCH] Do not perform install on existing directories If a directory already exists, performing a 'make install' will remove the permissions associated with the current directory and replace them with the permissions of the user executing the install. This patch changes this behavior to only perform an install on the directory if the directory does not exist. Thus, if a user later changes the permissions on that directory, those permissions will be preserved in subsequent installs. Review: https://reviewboard.asterisk.org/r/1986 Review: https://reviewboard.asterisk.org/r/1864 (closes issue ASTERISK-19492) Reported by: Karl Fife Tested by: Paul Belanger, Tilghman Lesher patches: ASTERISK-19492 by pabelanger (uploaded by mjordan) ........ Merged revisions 368830 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 368831 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@368832 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- Makefile | 47 +++++++++++++++-------------------------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 020b784492..d66992e483 100644 --- a/Makefile +++ b/Makefile @@ -497,40 +497,23 @@ update: NEWHEADERS=$(notdir $(wildcard include/asterisk/*.h)) OLDHEADERS=$(filter-out $(NEWHEADERS) $(notdir $(DESTDIR)$(ASTHEADERDIR)),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.h))) +INSTALLDIRS="$(MODULES_DIR)" "$(ASTSBINDIR)" "$(ASTETCDIR)" "$(ASTVARRUNDIR)" \ + "$(ASTSPOOLDIR)" "$(ASTSPOOLDIR)/dictate" "$(ASTSPOOLDIR)/meetme" \ + "$(ASTSPOOLDIR)/monitor" "$(ASTSPOOLDIR)/system" "$(ASTSPOOLDIR)/tmp" \ + "$(ASTSPOOLDIR)/voicemail" "$(ASTHEADERDIR)" "$(ASTHEADERDIR)/doxygen" \ + "$(ASTLOGDIR)" "$(ASTLOGDIR)/cdr-csv" "$(ASTLOGDIR)/cdr-custom" \ + "$(ASTLOGDIR)/cel-custom" "$(ASTDATADIR)" "$(ASTDATADIR)/documentation" \ + "$(ASTDATADIR)/documentation/thirdparty" "$(ASTDATADIR)/firmware" \ + "$(ASTDATADIR)/firmware/iax" "$(ASTDATADIR)/images" "$(ASTDATADIR)/keys" \ + "$(ASTDATADIR)/phoneprov" "$(ASTDATADIR)/static-http" "$(ASTDATADIR)/sounds" \ + "$(ASTDATADIR)/moh" "$(ASTMANDIR)/man8" "$(AGI_DIR)" "$(ASTDBDIR)" installdirs: - $(INSTALL) -d "$(DESTDIR)$(ASTLIBDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTMODDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTSBINDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTVARRUNDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/dictate" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/meetme" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/monitor" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/system" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/tmp" - $(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail" - $(INSTALL) -d "$(DESTDIR)$(ASTHEADERDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTHEADERDIR)/doxygen" - $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-csv" - $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cdr-custom" - $(INSTALL) -d "$(DESTDIR)$(ASTLOGDIR)/cel-custom" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/documentation" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/documentation/thirdparty" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/firmware" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/firmware/iax" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/images" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/keys" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/phoneprov" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/static-http" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/sounds" - $(INSTALL) -d "$(DESTDIR)$(ASTDATADIR)/moh" - $(INSTALL) -d "$(DESTDIR)$(ASTMANDIR)/man8" - $(INSTALL) -d "$(DESTDIR)$(AGI_DIR)" - $(INSTALL) -d "$(DESTDIR)$(ASTDBDIR)" + @for i in $(INSTALLDIRS); do \ + if [ ! -d "$(DESTDIR)$${i}" ]; then \ + $(INSTALL) -d "$(DESTDIR)$${i}"; \ + fi; \ + done main-bininstall: +@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" ASTLIBDIR="$(ASTLIBDIR)" $(SUBMAKE) -C main bininstall