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>
# devel
/devel/clean-cluster
-/devel/upload
# doc
/doc/api/
$(SHELL_ENV_INIT) \
daemons/daemon-util \
daemons/ganeti-cleaner \
- devel/upload \
$(BUILT_EXAMPLES) \
doc/examples/bash_completion \
doc/examples/bash_completion-debug \
# 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 \
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) \
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 $@
exit $1
}
-PREFIX='@PREFIX@'
-SYSCONFDIR='@SYSCONFDIR@'
-PKGLIBDIR='@PKGLIBDIR@'
+declare -r SED="sed -f autotools/replace_vars.sed"
NO_RESTART=
NO_CRON=
# 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 \