From cd5ee6db2d20f98ddb908624ae3f443eb7fbed98 Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Sat, 5 Jul 2014 11:46:43 +0200 Subject: [PATCH] Display Debian package version in hypervisor log During hypervisor boot, disable the banner and nicely display the xen version as well as the Maintainer address from debian/control. For this to work the SOURCE_BASE_DIR variable needs to be set by the build system to the top directory, i.e. where the debian folder is. Original patch by Bastian Blank Modified by Hans van Kranenburg Maximilian Engelhardt --- xen/Makefile | 8 +++++--- xen/common/kernel.c | 8 ++++---- xen/common/version.c | 22 +++++++++++----------- xen/drivers/char/console.c | 11 ++++------- xen/include/xen/compile.h.in | 8 ++++---- xen/include/xen/version.h | 7 ++++--- 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/xen/Makefile b/xen/Makefile index 8abc71cf73..503104fe6a 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -430,7 +430,7 @@ endef targets += .banner # compile.h contains dynamic build info. Rebuilt on every 'make' invocation. -include/xen/compile.h: include/xen/compile.h.in .banner +include/xen/compile.h: include/xen/compile.h.in @sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \ -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \ -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \ @@ -441,9 +441,11 @@ include/xen/compile.h: include/xen/compile.h.in .banner -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \ -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \ -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \ + -e 's/@@system_distribution@@/$(shell lsb_release -is)/g' \ + -e 's/@@system_maintainer_domain@@/$(shell grep Maintainer ${SOURCE_BASE_DIR}/debian/control | sed -ne 's,^Maintainer: .[^<]*<[^@>]*@\([^>]*\)>,\1,p')/g' \ + -e 's/@@system_maintainer_local@@/$(shell grep Maintainer ${SOURCE_BASE_DIR}/debian/control | sed -ne 's,^Maintainer: .[^<]*<\([^@>]*\)@.*>,\1,p')/g' \ + -e 's/@@system_version@@/$(shell cd ${SOURCE_BASE_DIR}; dpkg-parsechangelog | awk '/^Version:/ {print $$2}')/g' \ < include/xen/compile.h.in > $@.new - @cat .banner - @sed -rf tools/process-banner.sed < .banner >> $@.new @mv -f $@.new $@ asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c diff --git a/xen/common/kernel.c b/xen/common/kernel.c index e119e5401f..a31e6171ea 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -402,9 +402,9 @@ static int __init buildinfo_init(void) hypfs_add_dir(&buildinfo, &compileinfo, true); hypfs_string_set_reference(&compiler, xen_compiler()); - hypfs_string_set_reference(&compile_by, xen_compile_by()); + hypfs_string_set_reference(&compile_by, xen_compile_system_maintainer_local()); hypfs_string_set_reference(&compile_date, xen_compile_date()); - hypfs_string_set_reference(&compile_domain, xen_compile_domain()); + hypfs_string_set_reference(&compile_domain, xen_compile_system_maintainer_domain()); hypfs_add_leaf(&compileinfo, &compiler, true); hypfs_add_leaf(&compileinfo, &compile_by, true); hypfs_add_leaf(&compileinfo, &compile_date, true); @@ -485,8 +485,8 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) memset(&info, 0, sizeof(info)); safe_strcpy(info.compiler, deny ? xen_deny() : xen_compiler()); - safe_strcpy(info.compile_by, deny ? xen_deny() : xen_compile_by()); - safe_strcpy(info.compile_domain, deny ? xen_deny() : xen_compile_domain()); + safe_strcpy(info.compile_by, deny ? xen_deny() : xen_compile_system_maintainer_local()); + safe_strcpy(info.compile_domain, deny ? xen_deny() : xen_compile_system_maintainer_domain()); safe_strcpy(info.compile_date, deny ? xen_deny() : xen_compile_date()); if ( copy_to_guest(arg, &info, 1) ) return -EFAULT; diff --git a/xen/common/version.c b/xen/common/version.c index d320135208..b44d41175e 100644 --- a/xen/common/version.c +++ b/xen/common/version.c @@ -20,19 +20,24 @@ const char *xen_compile_time(void) return XEN_COMPILE_TIME; } -const char *xen_compile_by(void) +const char *xen_compile_system_distribution(void) { - return XEN_COMPILE_BY; + return XEN_COMPILE_SYSTEM_DISTRIBUTION; } -const char *xen_compile_domain(void) +const char *xen_compile_system_maintainer_local(void) { - return XEN_COMPILE_DOMAIN; + return XEN_COMPILE_SYSTEM_MAINTAINER_LOCAL; } -const char *xen_compile_host(void) +const char *xen_compile_system_maintainer_domain(void) { - return XEN_COMPILE_HOST; + return XEN_COMPILE_SYSTEM_MAINTAINER_DOMAIN; +} + +const char *xen_compile_system_version(void) +{ + return XEN_COMPILE_SYSTEM_VERSION; } const char *xen_compiler(void) @@ -60,11 +65,6 @@ const char *xen_changeset(void) return XEN_CHANGESET; } -const char *xen_banner(void) -{ - return XEN_BANNER; -} - const char *xen_deny(void) { return ""; diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 7d0a603d03..f1ec8108e0 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -1000,14 +1000,11 @@ void __init console_init_preirq(void) pv_console_set_rx_handler(serial_rx); /* HELLO WORLD --- start-of-day banner text. */ - spin_lock(&console_lock); - __putstr(xen_banner()); - spin_unlock(&console_lock); - printk("Xen version %d.%d%s (%s@%s) (%s) %s %s\n", + printk("Xen version %d.%d%s (%s %s) (%s@%s) (%s) %s %s\n", xen_major_version(), xen_minor_version(), xen_extra_version(), - xen_compile_by(), xen_compile_domain(), xen_compiler(), - xen_build_info(), xen_compile_date()); - printk("Latest ChangeSet: %s\n", xen_changeset()); + xen_compile_system_distribution(), xen_compile_system_version(), + xen_compile_system_maintainer_local(), xen_compile_system_maintainer_domain(), + xen_compiler(), xen_build_info(), xen_compile_date()); /* Locate and print the buildid, if applicable. */ xen_build_init(); diff --git a/xen/include/xen/compile.h.in b/xen/include/xen/compile.h.in index 440ecb25c1..0c3ca583cd 100644 --- a/xen/include/xen/compile.h.in +++ b/xen/include/xen/compile.h.in @@ -1,8 +1,9 @@ #define XEN_COMPILE_DATE "@@date@@" #define XEN_COMPILE_TIME "@@time@@" -#define XEN_COMPILE_BY "@@whoami@@" -#define XEN_COMPILE_DOMAIN "@@domain@@" -#define XEN_COMPILE_HOST "@@hostname@@" +#define XEN_COMPILE_SYSTEM_DISTRIBUTION "@@system_distribution@@" +#define XEN_COMPILE_SYSTEM_MAINTAINER_DOMAIN "@@system_maintainer_domain@@" +#define XEN_COMPILE_SYSTEM_MAINTAINER_LOCAL "@@system_maintainer_local@@" +#define XEN_COMPILE_SYSTEM_VERSION "@@system_version@@" #define XEN_COMPILER "@@compiler@@" #define XEN_VERSION @@version@@ @@ -10,4 +11,3 @@ #define XEN_EXTRAVERSION "@@extraversion@@" #define XEN_CHANGESET "@@changeset@@" -#define XEN_BANNER \ diff --git a/xen/include/xen/version.h b/xen/include/xen/version.h index 93c5877363..9d98d6ea27 100644 --- a/xen/include/xen/version.h +++ b/xen/include/xen/version.h @@ -6,9 +6,10 @@ const char *xen_compile_date(void); const char *xen_compile_time(void); -const char *xen_compile_by(void); -const char *xen_compile_domain(void); -const char *xen_compile_host(void); +const char *xen_compile_system_distribution(void); +const char *xen_compile_system_maintainer_domain(void); +const char *xen_compile_system_maintainer_local(void); +const char *xen_compile_system_version(void); const char *xen_compiler(void); unsigned int xen_major_version(void); unsigned int xen_minor_version(void); -- 2.30.2