From f9435bdc11c10e52ea1ca95813f50904ce0437f4 Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Wed, 7 Nov 2012 12:49:11 +0100 Subject: [PATCH] Switch devel/upload to a static file We had twice in the past days questions about devel/upload being "broken", since bash re-reads shell scripts during their run and this file can get regenerated due to Makefile changes. Since we only need this to be dynamically built for 3 variables, let's make the file static and read those three variables when it is run, instead of when it is built, which allows us to re-read the "latest version" of these vars as well. Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- .gitignore | 1 - Makefile.am | 8 +------- devel/{upload.in => upload} | 10 +++++++--- 3 files changed, 8 insertions(+), 11 deletions(-) rename devel/{upload.in => upload} (92%) mode change 100644 => 100755 diff --git a/.gitignore b/.gitignore index 2759bc874..06c5eba65 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,6 @@ # devel /devel/clean-cluster -/devel/upload # doc /doc/api/ diff --git a/Makefile.am b/Makefile.am index 04fb36164..4dec77fb9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -157,7 +157,6 @@ CLEANFILES = \ $(SHELL_ENV_INIT) \ daemons/daemon-util \ daemons/ganeti-cleaner \ - devel/upload \ $(BUILT_EXAMPLES) \ doc/examples/bash_completion \ doc/examples/bash_completion-debug \ @@ -559,7 +558,6 @@ docpng = $(patsubst %.dot,%.png,$(docdot)) # Things to build but not to install (add it to EXTRA_DIST if it should be # distributed) noinst_DATA = \ - devel/upload \ doc/html \ $(BUILT_EXAMPLES) \ doc/examples/bash_completion \ @@ -732,7 +730,7 @@ EXTRA_DIST = \ daemons/daemon-util.in \ daemons/ganeti-cleaner.in \ $(pkglib_python_scripts) \ - devel/upload.in \ + devel/upload \ tools/kvm-ifup.in \ tools/vcluster-setup.in \ $(docdot) \ @@ -1070,10 +1068,6 @@ tools/kvm-ifup: tools/kvm-ifup.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ chmod +x $@ -devel/upload: devel/upload.in $(REPLACE_VARS_SED) - sed -f $(REPLACE_VARS_SED) < $< > $@ - chmod u+x $@ - tools/vcluster-setup: tools/vcluster-setup.in $(REPLACE_VARS_SED) sed -f $(REPLACE_VARS_SED) < $< > $@ chmod +x $@ diff --git a/devel/upload.in b/devel/upload old mode 100644 new mode 100755 similarity index 92% rename from devel/upload.in rename to devel/upload index 2130a9eaa..5fe1c7462 --- a/devel/upload.in +++ b/devel/upload @@ -32,9 +32,7 @@ usage() { exit $1 } -PREFIX='@PREFIX@' -SYSCONFDIR='@SYSCONFDIR@' -PKGLIBDIR='@PKGLIBDIR@' +declare -r SED="sed -f autotools/replace_vars.sed" NO_RESTART= NO_CRON= @@ -90,6 +88,12 @@ umask 0022 # install ganeti as a real tree make $make_args install DESTDIR="$TXD" +# at this point, make has been finished, so the configuration is +# fixed; we can read the prefix vars/etc. +PREFIX="$(echo @PREFIX@ | $SED)" +SYSCONFDIR="$(echo @SYSCONFDIR@ | $SED)" +PKGLIBDIR="$(echo @PKGLIBDIR@ | $SED)" + # copy additional needed files [ -f doc/examples/ganeti.initd ] && \ install -D --mode=0755 doc/examples/ganeti.initd \ -- GitLab