diff --git a/.gitignore b/.gitignore
index fa262293c2a3840d1d4fee862204f90b8659e23f..cd88112e188fddd6751b8343f247412df51423a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,6 +71,7 @@
 
 # lib
 /lib/_autoconf.py
+/lib/_vcsversion.py
 
 # man
 /man/*.[0-9]
diff --git a/Makefile.am b/Makefile.am
index 38a335cc129833c611eb56b5044580d353292a6b..bec6512351d4d32b3088d62bff160316de7020af 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -151,11 +151,13 @@ BUILT_SOURCES = \
 	ganeti \
 	stamp-srclinks \
 	lib/_autoconf.py \
+	lib/_vcsversion.py \
 	$(all_dirfiles) \
 	$(PYTHON_BOOTSTRAP)
 
 nodist_pkgpython_PYTHON = \
-	lib/_autoconf.py
+	lib/_autoconf.py \
+	lib/_vcsversion.py
 
 noinst_PYTHON = \
 	lib/build/__init__.py \
@@ -359,7 +361,7 @@ $(RUN_IN_TEMPDIR): | $(all_dirfiles)
 # it changes
 doc/html/index.html: $(docrst) $(docpng) doc/conf.py configure.ac \
 	$(RUN_IN_TEMPDIR) lib/build/sphinx_ext.py lib/opcodes.py lib/ht.py \
-	| lib/_autoconf.py
+	| lib/_autoconf.py lib/_vcsversion.py
 	@test -n "$(SPHINX)" || \
 	    { echo 'sphinx-build' not found during configure; exit 1; }
 	@mkdir_p@ $(dir $@)
@@ -843,9 +845,8 @@ htools/Ganeti/Constants.hs: htools/Ganeti/Constants.hs.in \
 	set -e; \
 	{ cat $< ; PYTHONPATH=. $(CONVERT_CONSTANTS); } > $@
 
-lib/_autoconf.py: Makefile vcs-version | lib/.dir
+lib/_autoconf.py: Makefile | lib/.dir
 	set -e; \
-	VCSVER=`cat $(abs_top_srcdir)/vcs-version`; \
 	{ echo '# This file is automatically generated, do not edit!'; \
 	  echo '#'; \
 	  echo ''; \
@@ -900,7 +901,6 @@ lib/_autoconf.py: Makefile vcs-version | lib/.dir
 	  echo "CONFD_GROUP = '$(CONFD_GROUP)'"; \
 	  echo "NODED_USER = '$(NODED_USER)'"; \
 	  echo "NODED_GROUP = '$(NODED_GROUP)'"; \
-	  echo "VCS_VERSION = '$$VCSVER'"; \
 	  echo "DISK_SEPARATOR = '$(DISK_SEPARATOR)'"; \
 	  if [ "$(HTOOLS)" ]; then \
 	    echo "HTOOLS = True"; \
@@ -909,6 +909,27 @@ lib/_autoconf.py: Makefile vcs-version | lib/.dir
 	  fi; \
 	} > $@
 
+lib/_vcsversion.py: Makefile vcs-version | lib/.dir
+	set -e; \
+	VCSVER=`cat $(abs_top_srcdir)/vcs-version`; \
+	{ echo '# This file is automatically generated, do not edit!'; \
+	  echo '#'; \
+	  echo ''; \
+	  echo '"""Build-time VCS version number for Ganeti.'; \
+	  echo '';\
+	  echo 'This file is autogenerated by the build process.'; \
+	  echo 'For any changes you need to re-run ./configure (and'; \
+	  echo 'not edit by hand).'; \
+	  echo ''; \
+	  echo '"""'; \
+	  echo ''; \
+	  echo '# pylint: disable-msg=C0301,C0324'; \
+	  echo '# because this is autogenerated, we do not want'; \
+	  echo '# style warnings' ; \
+	  echo ''; \
+	  echo "VCS_VERSION = '$$VCSVER'"; \
+	} > $@
+
 $(REPLACE_VARS_SED): Makefile
 	set -e; \
 	{ echo 's#@PREFIX@#$(prefix)#g'; \
diff --git a/lib/constants.py b/lib/constants.py
index 466ba20799ef0be705d61965b2242f3a9932006c..140ac521c0d0ce9ad75567ae65714757176ddc07 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -24,6 +24,7 @@
 import re
 
 from ganeti import _autoconf
+from ganeti import _vcsversion
 
 # various versions
 RELEASE_VERSION = _autoconf.PACKAGE_VERSION
@@ -31,7 +32,7 @@ OS_API_V10 = 10
 OS_API_V15 = 15
 OS_API_V20 = 20
 OS_API_VERSIONS = frozenset([OS_API_V10, OS_API_V15, OS_API_V20])
-VCS_VERSION = _autoconf.VCS_VERSION
+VCS_VERSION = _vcsversion.VCS_VERSION
 EXPORT_VERSION = 0
 RAPI_VERSION = 2