From: Klaus Aehlig Date: Wed, 21 Aug 2013 09:30:01 +0000 (+0200) Subject: Add configure option on whether to install symlinks X-Git-Url: https://code.grnet.gr/git/ganeti-local/commitdiff_plain/9cf292afecd109817754a7d6551fc3fa58dfeeaa Add configure option on whether to install symlinks As of Ganeti 2.10, all files are installed into a single, version specific, directory. In this way, several Ganeti versions can be installed in parallel. Appropriate symbolic links in the search path will be added by the Ganeti upgrade procedure. For the initial installation, however, links in the search path are needed. So make the installation of symbolic links a configure-time option, defaulting to the current behavior, that that installation is visible in the path. Signed-off-by: Klaus Aehlig Reviewed-by: Thomas Thrainer --- diff --git a/Makefile.am b/Makefile.am index a4ae5ee..e99707e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -70,6 +70,17 @@ iallocatorsdir = $(pkglibdir)/iallocators pytoolsdir = $(pkgpythondir)/tools docdir = $(versiondir)$(datadir)/doc/$(PACKAGE) +SYMLINK_TARGET_DIRS = \ + $(pythondir) \ + $(libdir)/ganeti/iallocators \ + $(exec_prefix)/bin \ + $(exec_prefix)/sbin \ + $(datarootdir)/man/man1 \ + $(datarootdir)/man/man7 \ + $(datarootdir)/man/man8 +SYMLINK_DIRS = \ + $(pythondir)/ganeti \ + $(libdir)/ganeti/tools # Delete output file if an error occurred while building it .DELETE_ON_ERROR: @@ -936,6 +947,11 @@ nodist_sbin_SCRIPTS = \ $(PYTHON_BOOTSTRAP_SBIN) \ daemons/ganeti-cleaner +# strip path prefixes off the sbin scripts +all_sbin_scripts = \ + $(patsubst tools/%,%,$(patsubst daemons/%,%,$(patsubst scripts/%,%,\ + $(patsubst src/%,%,$(dist_sbin_SCRIPTS) $(nodist_sbin_SCRIPTS))))) + if ENABLE_CONFD src/ganeti-confd: src/hconfd cp -f $< $@ @@ -995,6 +1011,11 @@ myexeclib_SCRIPTS = \ $(pkglib_python_scripts) \ $(HS_MYEXECLIB_PROGS) +# strip path prefixes off the sbin scripts +all_myexeclib_scripts = \ + $(patsubst tools/%,%,$(patsubst daemons/%,%,\ + $(patsubst src/%,%,$(myexeclib_SCRIPTS)))) + nodist_myexeclib_SCRIPTS = \ $(nodist_pkglib_python_scripts) @@ -1101,6 +1122,10 @@ maninput = \ $(patsubst %.html,%.html.in,$(manhtml)) \ $(mangen) +manfullpath = $(patsubst man/%.1,man1/%.1,\ + $(patsubst man/%.7,man7/%.7,\ + $(patsubst man/%.8,man8/%.8,$(man_MANS)))) + TEST_FILES = \ test/autotools/autotools-check-news.test \ test/data/htools/clean-nonzero-score.data \ @@ -2066,6 +2091,29 @@ install-exec-local: @mkdir_p@ "$(DESTDIR)${localstatedir}/lib/ganeti" \ "$(DESTDIR)${localstatedir}/log/ganeti" \ "$(DESTDIR)${localstatedir}/run/ganeti" +if INSTALL_SYMLINKS + for dir in $(SYMLINK_TARGET_DIRS); do \ + @mkdir_p@ $(DESTDIR)$$dir; \ + done + for prog in $(HS_HTOOLS_PROGS); do \ + $(LN_S) $(bindir)/$$prog $(DESTDIR)$(exec_prefix)/bin/$$prog; \ + done + $(LN_S) $(bindir)/htools $(DESTDIR)$(libdir)/ganeti/iallocators/hail + for prog in $(all_sbin_scripts); do \ + $(LN_S) $(sbindir)/$$prog $(DESTDIR)$(exec_prefix)/sbin/$$prog; \ + done + for link in $(SYMLINK_DIRS); do \ + $(LN_S) $(versiondir)$$link $(DESTDIR)$$link; \ + done + for prog in $(all_myexeclib_scripts); do \ + $(LN_S) $(pkglibdir)/$$prog $(DESTDIR)$(libdir)/ganeti/$$prog; \ + done + if ! test -n '$(ENABLE_MANPAGES)'; then \ + for man in $(manfullpath); do \ + $(LN_S) $(versiondir)$(datarootdir)/man/$$man $(DESTDIR)$(datarootdir)/man/$$man; \ + done; \ + fi +endif .PHONY: apidoc if WANT_HSAPIDOC diff --git a/configure.ac b/configure.ac index 1ecfc8d..1672306 100644 --- a/configure.ac +++ b/configure.ac @@ -20,6 +20,22 @@ AC_SUBST([VERSION_REVISION], gnt_version_revision) AC_SUBST([VERSION_SUFFIX], gnt_version_suffix) AC_SUBST([VERSION_FULL], gnt_version_full) +# --enable-symlinks +AC_ARG_ENABLE([symlinks], + [AS_HELP_STRING([--enable-symlinks], + m4_normalize([also install symlinks under $PREFIX pointing + into the Ganeti package directory (default: enabled)]))], + [[if test "$enableval" != no; then + INSTALL_SYMLINKS=yes + else + INSTALL_SYMLINKS=no + fi + ]], + [INSTALL_SYMLINKS=yes + ]) +AC_SUBST(INSTALL_SYMLINKS, $INSTALL_SYMLINKS) +AM_CONDITIONAL([INSTALL_SYMLINKS], [test "$INSTALL_SYMLINKS" = yes]) + # --with-ssh-initscript=... AC_ARG_WITH([ssh-initscript], [AS_HELP_STRING([--with-ssh-initscript=SCRIPT],