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)




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@368830 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2012-06-12 18:23:01 +00:00
parent 5919aa6cf4
commit 1a79e238a3

View File

@@ -466,39 +466,23 @@ update:
NEWHEADERS=$(notdir $(wildcard include/asterisk/*.h)) NEWHEADERS=$(notdir $(wildcard include/asterisk/*.h))
OLDHEADERS=$(filter-out $(NEWHEADERS) $(notdir $(DESTDIR)$(ASTHEADERDIR)),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.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: installdirs:
$(INSTALL) -d "$(DESTDIR)$(MODULES_DIR)" for i in $(INSTALLDIRS); do \
$(INSTALL) -d "$(DESTDIR)$(ASTSBINDIR)" if [ ! -d "$(DESTDIR)$${i}" ]; then \
$(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)" $(INSTALL) -d "$(DESTDIR)$${i}"; \
$(INSTALL) -d "$(DESTDIR)$(ASTVARRUNDIR)" fi; \
$(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)" done
$(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)"
bininstall: _all installdirs $(SUBDIRS_INSTALL) bininstall: _all installdirs $(SUBDIRS_INSTALL)
$(INSTALL) -m 755 main/asterisk "$(DESTDIR)$(ASTSBINDIR)/" $(INSTALL) -m 755 main/asterisk "$(DESTDIR)$(ASTSBINDIR)/"