summaryrefslogtreecommitdiffhomepage
path: root/auto/install
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2016-03-10 16:50:13 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2016-03-10 16:50:13 +0300
commit5835963d61f374483f2acafb699031183bb8410f (patch)
tree30765c73769ea5f540af3567a91e2ea1f78ea854 /auto/install
parent2301b095e60320f98d602751ba07a324690b6a47 (diff)
downloadnginx-5835963d61f374483f2acafb699031183bb8410f.tar.gz
nginx-5835963d61f374483f2acafb699031183bb8410f.tar.bz2
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.
Diffstat (limited to 'auto/install')
-rw-r--r--auto/install18
1 files changed, 16 insertions, 2 deletions
diff --git a/auto/install b/auto/install
index 6efa92f73..948ddc177 100644
--- a/auto/install
+++ b/auto/install
@@ -169,17 +169,31 @@ END
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