Dynamic modules: do not overwrite old modules on install.
Just using "cp" is incorrect, as it will overwrite old files
possibly used by OS, leading to unexpected effects. Changed
to "mv + cp", much like used for the main binary.
diff --git a/auto/install b/auto/install
index 6efa92f..948ddc1 100644
--- a/auto/install
+++ b/auto/install
@@ -169,17 +169,31 @@
fi
-if test -n "$NGX_MODULES"; then
+if test -n "$DYNAMIC_MODULES"; then
cat << END >> $NGX_MAKEFILE
test -d '\$(DESTDIR)$NGX_MODULES_PATH' \
|| mkdir -p '\$(DESTDIR)$NGX_MODULES_PATH'
- cp $NGX_MODULES '\$(DESTDIR)$NGX_MODULES_PATH'
END
fi
+for ngx_module in $DYNAMIC_MODULES
+do
+ ngx_module=$ngx_module$ngx_modext
+
+ cat << END >> $NGX_MAKEFILE
+
+ test ! -f '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \
+ || mv '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module' \
+ '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module.old'
+ cp $NGX_OBJS/$ngx_module '\$(DESTDIR)$NGX_MODULES_PATH/$ngx_module'
+END
+
+done
+
+
# create Makefile
cat << END >> Makefile