mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
Delete old .so and executable files before installing new one
This fixes crash for people who have live ejabberd installed in make install target directory, by ensuring that loaded binaries aren't replaced in memory with new content.
This commit is contained in:
parent
2b0cc2ddb4
commit
c5a4f67935
@ -149,15 +149,17 @@ define DEP_VERSION_template
|
|||||||
DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*, *"/$(1)-/;s/".*//' $(2) 2>/dev/null)
|
DEP_$(1)_VERSION:=$(shell $(SED) -e '/vsn/!d;s/.*, *"/$(1)-/;s/".*//' $(2) 2>/dev/null)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
DELETE_TARGET_SO=$(if $(subst X.soX,,X$(suffix $(1))X),,rm $(call TO_DEST,$(1));)
|
||||||
|
|
||||||
$(foreach DEP,$(DEPS),$(eval $(call DEP_VERSION_template,$(DEP),deps/$(DEP)/ebin/$(DEP).app)))
|
$(foreach DEP,$(DEPS),$(eval $(call DEP_VERSION_template,$(DEP),deps/$(DEP)/ebin/$(DEP).app)))
|
||||||
$(eval $(call DEP_VERSION_template,ejabberd,ebin/ejabberd.app))
|
$(eval $(call DEP_VERSION_template,ejabberd,ebin/ejabberd.app))
|
||||||
|
|
||||||
define COPY_template
|
define COPY_template
|
||||||
$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $$(INSTALL) -m 644 $(1) $(call TO_DEST,$(1))
|
$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $(call DELETE_TARGET_SO, $(1)) $$(INSTALL) -m 644 $(1) $(call TO_DEST,$(1))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define COPY_BINARY_template
|
define COPY_BINARY_template
|
||||||
$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; $$(INSTALL) -m 755 $$(O_USER) $(1) $(call TO_DEST,$(1))
|
$(call TO_DEST,$(1)): $(1) $(call TO_DEST,$(dir $(1))) ; rm $(call TO_DEST,$(1)); $$(INSTALL) -m 755 $$(O_USER) $(1) $(call TO_DEST,$(1))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template,$(file))))
|
$(foreach file,$(DEPS_FILES_FILTERED) $(MAIN_FILES),$(eval $(call COPY_template,$(file))))
|
||||||
|
Loading…
Reference in New Issue
Block a user