From: Bastian Blank Date: Sat, 5 Jul 2014 09:46:43 +0000 (+0200) Subject: Display Debian package version in hypervisor log X-Git-Tag: archive/raspbian/4.17.0-1+rpi1^2~1^2~21 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=74003eda983f9517ce9ed61dc59d936d447f39cf;p=xen.git 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 --- diff --git a/xen/build.mk b/xen/build.mk index 758590c68e..8ee1fc9054 100644 --- a/xen/build.mk +++ b/xen/build.mk @@ -17,7 +17,6 @@ targets += .banner quiet_cmd_compile.h = UPD $@ define cmd_compile.h if [ ! -r $@ -o -O $@ ]; then \ - cat .banner; \ sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \ -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \ -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \ @@ -28,13 +27,16 @@ define cmd_compile.h -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \ -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \ -e 's!@@changeset@@!$(shell $(srctree)/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' \ < $< > $(dot-target).tmp; \ - sed -rf $(srctree)/tools/process-banner.sed < .banner >> $(dot-target).tmp; \ mv -f $(dot-target).tmp $@; \ fi endef -include/xen/compile.h: include/xen/compile.h.in .banner FORCE +include/xen/compile.h: include/xen/compile.h.in FORCE $(if $(filter-out FORCE,$?),$(Q)rm -fv $@) $(call if_changed,compile.h) diff --git a/xen/common/kernel.c b/xen/common/kernel.c index f8134d3e7a..4ac3ba70f2 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -414,9 +414,9 @@ static int __init cf_check 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); @@ -497,8 +497,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 e8468c121a..0a5bf924c4 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 3151d1e7d1..b4f7c98951 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@@ @@ -11,4 +12,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);