From b97989d8f68f5bac2cbb53065e07f61038552a68 Mon Sep 17 00:00:00 2001 From: WangFengTu Date: Mon, 29 Nov 2021 14:53:02 +0800 Subject: [PATCH] fix cpu variant get error Signed-off-by: WangFengTu --- 0004-fix-cpu-variant-get-error.patch | 96 +++++++++++++++++++ ...unit-test-error-of-registry-in-armv8.patch | 40 ++++++++ iSulad.spec | 10 +- 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 0004-fix-cpu-variant-get-error.patch create mode 100644 0005-fix-unit-test-error-of-registry-in-armv8.patch diff --git a/0004-fix-cpu-variant-get-error.patch b/0004-fix-cpu-variant-get-error.patch new file mode 100644 index 0000000..7f78c80 --- /dev/null +++ b/0004-fix-cpu-variant-get-error.patch @@ -0,0 +1,96 @@ +From 095296c09cb517cd38f1a94f7a8813740b163ef6 Mon Sep 17 00:00:00 2001 +From: WangFengTu +Date: Sat, 27 Nov 2021 14:15:34 +0800 +Subject: [PATCH 1/2] fix cpu variant get error + +Signed-off-by: WangFengTu +--- + src/utils/cutils/utils.c | 14 +++++--------- + src/utils/cutils/utils_file.c | 6 +++++- + src/utils/cutils/utils_file.h | 5 +++++ + 3 files changed, 15 insertions(+), 10 deletions(-) + +diff --git a/src/utils/cutils/utils.c b/src/utils/cutils/utils.c +index f037b060..850b2329 100644 +--- a/src/utils/cutils/utils.c ++++ b/src/utils/cutils/utils.c +@@ -1299,12 +1299,11 @@ restart: + static char *get_cpu_variant() + { + char *variant = NULL; +- char *cpuinfo = NULL; ++ char cpuinfo[1024] = { 0 }; + char *start_pos = NULL; + char *end_pos = NULL; + +- cpuinfo = util_read_text_file("/proc/cpuinfo"); +- if (cpuinfo == NULL) { ++ if (util_file2str("/proc/cpuinfo", cpuinfo, sizeof(cpuinfo)) < 0) { + ERROR("read /proc/cpuinfo failed"); + return NULL; + } +@@ -1312,7 +1311,7 @@ static char *get_cpu_variant() + start_pos = strstr(cpuinfo, "CPU architecture"); + if (start_pos == NULL) { + ERROR("can not found the key \"CPU architecture\" when try to get cpu variant"); +- goto out; ++ return NULL; + } + end_pos = strchr(start_pos, '\n'); + if (end_pos != NULL) { +@@ -1321,17 +1320,14 @@ static char *get_cpu_variant() + start_pos = strchr(start_pos, ':'); + if (start_pos == NULL) { + ERROR("can not found delimiter \":\" when try to get cpu variant"); +- goto out; ++ return NULL; + } ++ start_pos += 1; // skip char ":" + util_trim_newline(start_pos); + start_pos = util_trim_space(start_pos); + + variant = util_strings_to_lower(start_pos); + +-out: +- free(cpuinfo); +- cpuinfo = NULL; +- + return variant; + } + +diff --git a/src/utils/cutils/utils_file.c b/src/utils/cutils/utils_file.c +index f4fa4ece..00825bea 100644 +--- a/src/utils/cutils/utils_file.c ++++ b/src/utils/cutils/utils_file.c +@@ -815,7 +815,11 @@ char *util_add_path(const char *path, const char *name) + return new_path; + } + +-/* note: This function can only read small text file. */ ++/* notes: ++ * 1. Do not use this function to read proc file because proc file in armv8 does not ++ * support fseek and the result of this function is nill string which is unexpected. ++ * 2. This function can only read small text file. ++ */ + char *util_read_text_file(const char *path) + { + char *buf = NULL; +diff --git a/src/utils/cutils/utils_file.h b/src/utils/cutils/utils_file.h +index a7fbbb6b..1465ca7e 100644 +--- a/src/utils/cutils/utils_file.h ++++ b/src/utils/cutils/utils_file.h +@@ -68,6 +68,11 @@ char *util_path_dir(const char *path); + + char *util_add_path(const char *path, const char *name); + ++/* notes: ++ * 1. Do not use this function to read proc file because proc file in armv8 does not ++ * support fseek and the result of this function is nill string which is unexpected. ++ * 2. This function can only read small text file. ++ */ + char *util_read_text_file(const char *path); + + int64_t util_file_size(const char *filename); +-- +2.25.1 + diff --git a/0005-fix-unit-test-error-of-registry-in-armv8.patch b/0005-fix-unit-test-error-of-registry-in-armv8.patch new file mode 100644 index 0000000..da3499a --- /dev/null +++ b/0005-fix-unit-test-error-of-registry-in-armv8.patch @@ -0,0 +1,40 @@ +From ef612f0c000af615f3426cdfc84c06b4daa9ecc0 Mon Sep 17 00:00:00 2001 +From: WangFengTu +Date: Mon, 29 Nov 2021 11:41:44 +0800 +Subject: [PATCH 2/2] fix unit test error of registry in armv8 + +use the data same as x86 to do unit test in armv8 + +Signed-off-by: WangFengTu +--- + test/image/oci/registry/data/oci/index | 2 +- + test/image/oci/registry/data/v2/manifest_list | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/image/oci/registry/data/oci/index b/test/image/oci/registry/data/oci/index +index d713bde3..c3f09482 100644 +--- a/test/image/oci/registry/data/oci/index ++++ b/test/image/oci/registry/data/oci/index +@@ -20,7 +20,7 @@ Etag: "sha256:bd28e852703450d93220e6733a9f0901b92cd558911528b03fdba56156ae0a02" + "size": 527 + }, + { +- "digest": "sha256:134252904112f8563a17a360957d9ad192e5c1e77463e04be74e71cffd4b41ba", ++ "digest": "sha256:106429d73f57137cc587d2d4f1ad7ffb8c4cedcb564d3fb44a8769e602a4a4ec", + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "platform": { + "architecture": "arm64", +diff --git a/test/image/oci/registry/data/v2/manifest_list b/test/image/oci/registry/data/v2/manifest_list +index b4cf93c5..c1962e3e 100644 +--- a/test/image/oci/registry/data/v2/manifest_list ++++ b/test/image/oci/registry/data/v2/manifest_list +@@ -8,4 +8,4 @@ Docker-Content-Digest: sha256:9ddee63a712cea977267342e8750ecbc60d3aab25f04ceacfa + Docker-Distribution-Api-Version: registry/2.0 + Etag: "sha256:9ddee63a712cea977267342e8750ecbc60d3aab25f04ceacfa795e6fce341793" + +-{"manifests":[{"digest":"sha256:2131f09e4044327fd101ca1fd4043e6f3ad921ae7ee901e9142e6e36b354a907","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"amd64","os":"linux"},"size":527},{"digest":"sha256:ea84577ce8331aaceefd586104ba283201b89b5a614b10ec44b9884722db49d8","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v5"},"size":527},{"digest":"sha256:296361e74fe78e932cdd807743b5e37469518194f95c042135a6c3320ca52ef1","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v6"},"size":527},{"digest":"sha256:5cbe4404234f93a5401b58e0c50408d5c9caace822b70867e4f3e787be83eee9","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v7"},"size":527},{"digest":"sha256:134252904112f8563a17a360957d9ad192e5c1e77463e04be74e71cffd4b41ba","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm64","os":"linux","variant":"v8"},"size":527},{"digest":"sha256:414aeb860595d7078cbe87abaeed05157d6b44907fbd7db30e1cfba9b6902448","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"386","os":"linux"},"size":527},{"digest":"sha256:116dccaef9ca8b121565a39bd568ede437f084c94bb0642d2aba6b441e38d2f8","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"mips64le","os":"linux"},"size":527},{"digest":"sha256:5477c332ec926f8221e82a6c9e37dd9d84a401e3b5f71ba7d498956552c880ac","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"ppc64le","os":"linux"},"size":528},{"digest":"sha256:c304d497f3e0f87f8457401787df738f6f6e62b367bfd7c5f73f5b880b30ab4f","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"s390x","os":"linux"},"size":528}],"mediaType":"application\/vnd.docker.distribution.manifest.list.v2+json","schemaVersion":2} +\ No newline at end of file ++{"manifests":[{"digest":"sha256:2131f09e4044327fd101ca1fd4043e6f3ad921ae7ee901e9142e6e36b354a907","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"amd64","os":"linux"},"size":527},{"digest":"sha256:ea84577ce8331aaceefd586104ba283201b89b5a614b10ec44b9884722db49d8","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v5"},"size":527},{"digest":"sha256:296361e74fe78e932cdd807743b5e37469518194f95c042135a6c3320ca52ef1","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v6"},"size":527},{"digest":"sha256:5cbe4404234f93a5401b58e0c50408d5c9caace822b70867e4f3e787be83eee9","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm","os":"linux","variant":"v7"},"size":527},{"digest":"sha256:2131f09e4044327fd101ca1fd4043e6f3ad921ae7ee901e9142e6e36b354a907","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"arm64","os":"linux","variant":"v8"},"size":527},{"digest":"sha256:414aeb860595d7078cbe87abaeed05157d6b44907fbd7db30e1cfba9b6902448","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"386","os":"linux"},"size":527},{"digest":"sha256:116dccaef9ca8b121565a39bd568ede437f084c94bb0642d2aba6b441e38d2f8","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"mips64le","os":"linux"},"size":527},{"digest":"sha256:5477c332ec926f8221e82a6c9e37dd9d84a401e3b5f71ba7d498956552c880ac","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"ppc64le","os":"linux"},"size":528},{"digest":"sha256:c304d497f3e0f87f8457401787df738f6f6e62b367bfd7c5f73f5b880b30ab4f","mediaType":"application\/vnd.docker.distribution.manifest.v2+json","platform":{"architecture":"s390x","os":"linux"},"size":528}],"mediaType":"application\/vnd.docker.distribution.manifest.list.v2+json","schemaVersion":2} +-- +2.25.1 + diff --git a/iSulad.spec b/iSulad.spec index b9f38ff..427c7b6 100644 --- a/iSulad.spec +++ b/iSulad.spec @@ -1,5 +1,5 @@ %global _version 2.0.10 -%global _release 6 +%global _release 7 %global is_systemd 1 %global enable_shimv2 1 @@ -15,6 +15,8 @@ BuildRoot: {_tmppath}/iSulad-%{version} Patch0001: 0001-add-self-def-runtime-for-shimv2.patch Patch0002: 0002-fix-memleak-when-use-multiple-volumes-from.patch Patch0003: 0003-modified-the-procedure-of-running-a-pod-to-adapt-to.patch +Patch0004: 0004-fix-cpu-variant-get-error.patch +Patch0005: 0005-fix-unit-test-error-of-registry-in-armv8.patch %ifarch x86_64 aarch64 Provides: libhttpclient.so()(64bit) @@ -228,6 +230,12 @@ fi %endif %changelog +* Mon Nov 29 2021 wangfengtu - 2.0.10-7 +- Type: bugfix +- ID: NA +- SUG: NA +- DESC: fix cpu variant get error + * Tue Nov 23 2021 chengzeruizhi - 2.0.10-6 - Type: enhancement - ID: NA -- Gitee