From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty (tag-current_commit_id) build by author date.
The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...> --- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION)$(SCM_VERSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref HEAD) +ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) +endif +export BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_STR)$(REMOTE_BRANCH) ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory) diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\ - echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION_H);\ echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H) diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n", - DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME); + fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY, + (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS, + (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME); exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \ USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H) echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\ echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\ echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\ - echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\ - echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\ + echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\ echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\ echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\ echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\ - else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION) -include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc(); - pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus", - HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, - HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD, - HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick)); - - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO, + HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick)); pr_acrnlog("Detect processor: %s", (get_pcpu_info())->model_name); diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv) { char temp_str[MAX_STR_SIZE]; - snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n", - HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO, - HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME); shell_puts(temp_str); return 0; -- 2.25.1
|
|
On 2022-11-16 at 15:34:08 +0800, wei6.zhang@... wrote: From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty (tag-current_commit_id) build by author date. Please explain tag-current_commit_id is optional. The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...> --- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION)$(SCM_VERSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref HEAD) +ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) +endif +export BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_STR)$(REMOTE_BRANCH) ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory) diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\ - echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION_H);\ echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H) diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n", - DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME); + fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY, + (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS, + (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME);
I think we should keep the "DM/HV" prefix. What do you think ? The rest is LGTM. exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \ USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H) echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\ echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\ echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\ - echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\ - echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\ + echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\ echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\ echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\ echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\ - else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION) -include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc(); - pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus", - HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, - HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD, - HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick)); - - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO, + HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick)); pr_acrnlog("Detect processor: %s", (get_pcpu_info())->model_name); diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv) { char temp_str[MAX_STR_SIZE]; - snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n", - HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO, - HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME); shell_puts(temp_str); return 0; -- 2.25.1
|
|
toggle quoted message
Show quoted text
-----Original Message----- From: Li, Fei1 <fei1.li@...> Sent: Wednesday, November 16, 2022 3:59 PM To: Zhang, Wei6 <wei6.zhang@...> Cc: acrn-dev@...; Xie, Nanlin <nanlin.xie@...>; Mao, Junjie <junjie.mao@...> Subject: Re: [PATCH V2] hv dm: change the version format
On 2022-11-16 at 15:34:08 +0800, wei6.zhang@... wrote:
From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id-d
irty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id-d
irty (tag-current_commit_id) build by author date. Please explain tag-current_commit_id is optional. Ok, it is optional, I will explain this. It will only exist if current commit_id has tags. The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...> --- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export
FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION )$(SCM_VE
RSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref +HEAD) ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) endif export
+BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_ST R)$(REMOTE
+_BRANCH)
ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory) diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\
+ @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" -- format=%cd);
+\ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \
USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\
- echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION_H);\
echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H)
diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n",
- DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME);
+ fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME); I think we should keep the "DM/HV" prefix. What do you think ? The rest is LGTM.
exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" -- format=%cd);
+\ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \
USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H)
echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\
echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\
echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\
- echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\
- echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\
echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\
echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\
echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\
- else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION)
-include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc();
- pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus",
- HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE,
- HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD,
- HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick));
- - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO,
+ HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick));
pr_acrnlog("Detect processor: %s", (get_pcpu_info())- model_name);
diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv) { char temp_str[MAX_STR_SIZE];
- snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n",
- HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO,
- HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME);
shell_puts(temp_str);
return 0; -- 2.25.1
|
|
toggle quoted message
Show quoted text
-----Original Message----- From: Li, Fei1 <fei1.li@...> Sent: Wednesday, November 16, 2022 3:59 PM To: Zhang, Wei6 <wei6.zhang@...> Cc: acrn-dev@...; Xie, Nanlin <nanlin.xie@...>; Mao, Junjie <junjie.mao@...> Subject: Re: [PATCH V2] hv dm: change the version format
On 2022-11-16 at 15:34:08 +0800, wei6.zhang@... wrote:
From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id-d
irty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id-d
irty (tag-current_commit_id) build by author date. Please explain tag-current_commit_id is optional. Ok, I will explain it. The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...> --- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export
FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION )$(SCM_VE
RSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref +HEAD) ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) endif export
+BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_ST R)$(REMOTE
+_BRANCH)
ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory) diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\
+ @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" -- format=%cd);
+\ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \
USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\
- echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION_H);\
echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H)
diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n",
- DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME);
+ fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME); I think we should keep the "DM/HV" prefix. What do you think ? The rest is LGTM.
Ok, I will keep it. This info can be useful. Best Regards Zhangwei exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" -- format=%cd);
+\ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \
USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H)
echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\
echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\
echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\
- echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\
- echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\
echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\
echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\
echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\
- else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION)
-include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc();
- pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus",
- HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE,
- HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD,
- HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick));
- - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO,
+ HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick));
pr_acrnlog("Detect processor: %s", (get_pcpu_info())- model_name);
diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv) { char temp_str[MAX_STR_SIZE];
- snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n",
- HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO,
- HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME);
shell_puts(temp_str);
return 0; -- 2.25.1
|
|
toggle quoted message
Show quoted text
-----Original Message----- From: Li, Fei1 <fei1.li@...> Sent: Wednesday, November 16, 2022 3:59 PM To: Zhang, Wei6 <wei6.zhang@...> Cc: acrn-dev@...; Xie, Nanlin <nanlin.xie@...>; Mao, Junjie <junjie.mao@...> Subject: Re: [PATCH V2] hv dm: change the version format
On 2022-11-16 at 15:34:08 +0800, wei6.zhang@... wrote:
From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date-commit_id-dirty (tag-current_commit_id) build by author date. Please explain tag-current_commit_id is optional.
The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...>
Reviewed-by: Junjie Mao <junjie.mao@...> Two minor comments below. --- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION)$(SCM_VERSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref HEAD) +ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH)
Please mind the indentation. Each level of ifdef/ifneq/etc. adds two whitespaces, not 8 whitespaces or a tab. +endif +export BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_STR)$(REMOTE_BRANCH)
ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory)
diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \
Having a whitespace in the middle of the commit time may cause misinterpretation of the branch version. Add a hyphen between `%d` and `%T` at least. TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\ - echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\ - echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\ - echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\ + echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION_H);\ echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H)
diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n", - DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME); + fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY, + (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS, + (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME); I think we should keep the "DM/HV" prefix. What do you think ? The rest is LGTM.
exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \ USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H) echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\ echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\ echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\ - echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\ - echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\ + echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\ echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\ echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\ echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\ - else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION)
-include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc();
- pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus",
- HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, - HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD, - HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick)); - - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO, + HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick));
pr_acrnlog("Detect processor: %s", (get_pcpu_info())->model_name);
diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv)
{ char temp_str[MAX_STR_SIZE];
- snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n",
- HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO,
- HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME); shell_puts(temp_str);
return 0; -- 2.25.1
|
|
toggle quoted message
Show quoted text
-----Original Message----- From: Mao, Junjie <junjie.mao@...> Sent: Wednesday, November 16, 2022 4:10 PM To: Li, Fei1 <fei1.li@...>; Zhang, Wei6 <wei6.zhang@...> Cc: acrn-dev@...; Xie, Nanlin <nanlin.xie@...> Subject: RE: [PATCH V2] hv dm: change the version format
-----Original Message----- From: Li, Fei1 <fei1.li@...> Sent: Wednesday, November 16, 2022 3:59 PM To: Zhang, Wei6 <wei6.zhang@...> Cc: acrn-dev@...; Xie, Nanlin <nanlin.xie@...>; Mao, Junjie <junjie.mao@...> Subject: Re: [PATCH V2] hv dm: change the version format
On 2022-11-16 at 15:34:08 +0800, wei6.zhang@... wrote:
From: Zhangwei6 <wei6.zhang@...>
The version info is used to tell the user when and where the binary is compiled and built, this will change the hv and dm version format.
The hv follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id
-dirty DBG/REL(tag-current_commit_id) scenario@board build by author date. The dm follows the format: major.minor-stable/unstable-remote_branch-acrn-commit_date- commit_id
-dirty (tag-current_commit_id) build by author date. Please explain tag-current_commit_id is optional.
The dm doesn't contain DBG/REL because it's given in configurator-tool only for hv. also not contain scenario and board info.
e.g. with tag: ACRN:\>version 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty DBG(tag: v3.1) scenario3.1@... build by zhangwei 2022-11-16 07:02:37 $acrn-dm -v 3.1-stable-release_3.1-2022-09-27 11:15:42-7fad37e02-dirty(tag: v3.1) build by zhangwei@2022-11-16 07:02:35 without tag: ACRN:\>version 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty DBG scenario3.1@... build by zhangwei 2022-11-16 06:49:44 $acrn-dm -v 3.2-unstable-master-2022-11-16 14:34:49-11f53d849-dirty build by zhangwei@2022-11-16 06:49:43
Tracked-On #8303 Signed-off-by: Zhangwei6 <wei6.zhang@...>
Reviewed-by: Junjie Mao <junjie.mao@...>
Two minor comments below.
--- Makefile | 9 +++++++++ devicemodel/Makefile | 19 +++++++++---------- devicemodel/core/main.c | 8 +++++--- hypervisor/Makefile | 19 ++++++++----------- hypervisor/arch/x86/cpu.c | 12 +++++------- hypervisor/debug/shell.c | 8 +++++--- 6 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/Makefile b/Makefile index 69e322b34..da6e15c35 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,15 @@ ifneq ($(SCM_VERSION),) SCM_VERSION := "-"$(SCM_VERSION) endif export
FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION )$(SCM_
VERSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref +HEAD) ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) Please mind the indentation. Each level of ifdef/ifneq/etc. adds two whitespaces, not 8 whitespaces or a tab.
Yes, I will pay attention to it and modify this ifneq. +endif +export
+BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_ST R)$(REMO
+TE_BRANCH)
ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory)
diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 823265e27..4c333f886 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -229,27 +229,26 @@ distclean: $(VERSION_H): mkdir -p $(DM_OBJDIR)/include touch $(VERSION_H) - if [ "$(DM_BUILD_VERSION)"x = x -o "$(DM_BUILD_TAG)"x = x ];then\
+ @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else\ - PATCH=$(DM_BUILD_VERSION);\ - DAILY_TAG=$(DM_BUILD_TAG);\ + PATCH="$(BUILD_VERSION)";\ fi;\ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" +--format=%cd); \ Having a whitespace in the middle of the commit time may cause misinterpretation of the branch version. Add a hyphen between `%d` and `%T` at least.
Ok, I will add a a hyphen between `%d` and`%T`. The time looks like: 2022-11-16-14:53:36 Best Regards Zhangwei TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \
USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ echo "" >> $(VERSION_H);\ - echo "#define DM_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\
- echo "#define DM_EXTRA_VERSION "\"$(EXTRA_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION_H);\
- echo "#define DM_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION_H);\
- echo "#define DM_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION_H);\
+ echo "#define DM_COMMIT_TIME "\"$$COMMIT_TIME\""" >> +$(VERSION_H);\ echo "#define DM_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ echo "#define DM_BUILD_USER "\""$$USER"\""" >> $(VERSION_H)
diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 135a6435c..690e2042c 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -202,9 +202,11 @@ static void outdate(char *msg) static void print_version(void) { - fprintf(stdout, "DM version is: %s-%s (daily tag:%s), build by %s@%s\n",
- DM_FULL_VERSION, - DM_BUILD_VERSION, DM_DAILY_TAG, DM_BUILD_USER, DM_BUILD_TIME);
+ fprintf(stdout, "%s-%s-%s%s%s%s build by %s@%s\n", + DM_BRANCH_VERSION, DM_COMMIT_TIME, DM_COMMIT_DIRTY,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? "(tag: " : "", DM_COMMIT_TAGS,
+ (sizeof(DM_COMMIT_TAGS) > 1) ? ")" : "", + DM_BUILD_USER, DM_BUILD_TIME); I think we should keep the "DM/HV" prefix. What do you think ? The rest is LGTM.
exit(0); } diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..4ba6a9772 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else
PATCH="$$COMMIT";fi;\
- DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d %T" +--format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \
USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H)
echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\
echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\
echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\
- echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\
- echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\
+ echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\
echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\
echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\
echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\
- else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION)
-include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..081c96dfa 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc();
- pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start
time %luus",
- HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE,
- HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD,
- HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick));
- - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION);
+ pr_acrnlog("HV version %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO,
+ HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick));
pr_acrnlog("Detect processor: %s", (get_pcpu_info())->model_name);
diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..ac4d52944 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv)
{ char temp_str[MAX_STR_SIZE];
- snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build
by %s%s\nAPI %u.%u\r\n",
- HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG,
HV_BUILD_SCENARIO,
- HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION,
HV_API_MINOR_VERSION);
+ snprintf(temp_str, MAX_STR_SIZE, "%s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n",
+ HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS,
+ (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME);
shell_puts(temp_str);
return 0; -- 2.25.1
|
|