diff --git a/0001-Bumps-google-auth-oauthlib-dependency-restriction.patch b/0001-Bumps-google-auth-oauthlib-dependency-restriction.patch deleted file mode 100644 index 1bcd136079225fa828962076e7c5f862f19b72fb..0000000000000000000000000000000000000000 --- a/0001-Bumps-google-auth-oauthlib-dependency-restriction.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c90d63595e513d424bbe281c1d4888ea12f7307e Mon Sep 17 00:00:00 2001 -From: Super User -Date: Sat, 5 Aug 2023 20:30:07 +0800 -Subject: [PATCH] Bumps-google-auth-oauthlib-dependency-restriction - ---- - tensorboard-2.12.0.dist-info/METADATA | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tensorboard-2.12.0.dist-info/METADATA b/tensorboard-2.12.0.dist-info/METADATA -index 8c39dd9..ad49f7d 100644 ---- a/tensorboard-2.12.0.dist-info/METADATA -+++ b/tensorboard-2.12.0.dist-info/METADATA -@@ -26,7 +26,7 @@ License-File: LICENSE - Requires-Dist: absl-py (>=0.4) - Requires-Dist: grpcio (>=1.48.2) - Requires-Dist: google-auth (<3,>=1.6.3) --Requires-Dist: google-auth-oauthlib (<0.5,>=0.4.1) -+Requires-Dist: google-auth-oauthlib (<1.1,>=0.5) - Requires-Dist: markdown (>=2.6.8) - Requires-Dist: numpy (>=1.12.0) - Requires-Dist: protobuf (>=3.19.6) --- -2.41.0 - diff --git a/2.12.1.tar.gz b/2.12.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6e13e74dfaf9f1b3d3fc4ac6a48a8d8982cc89a7 Binary files /dev/null and b/2.12.1.tar.gz differ diff --git a/adapt-external-for-aarch64.patch b/adapt-external-for-aarch64.patch new file mode 100644 index 0000000000000000000000000000000000000000..109549476ee2a2d4e7c00a39ac7e016275428b7b --- /dev/null +++ b/adapt-external-for-aarch64.patch @@ -0,0 +1,547 @@ +From 294ccfdc8ad6ba9263c04ee977673097ca651ff8 Mon Sep 17 00:00:00 2001 +From: desert-sailor +Date: Mon, 4 Sep 2023 12:09:42 +0800 +Subject: [PATCH] adapt external for aarch64 + +--- + @build_bazel_rules_sass_deps.marker | 8 ++-- + @esbuild_npm.marker | 8 ++-- + @npm.marker | 8 ++-- + @yarn.marker | 2 +- + .../internal/node/_node_bin/node | 4 +- + .../_/sass/node_modules/.yarn-integrity | 2 +- + esbuild_npm/_npm.sh | 2 +- + go_sdk/BUILD.bazel | 8 ++-- + go_sdk/src/internal/buildcfg/zbootstrap.go | 2 +- + local_config_cc/BUILD | 12 +++--- + .../builtin_include_directory_paths | 4 +- + local_config_cc_toolchains/BUILD | 4 +- + local_config_platform/constraints.bzl | 2 +- + local_jdk/BUILD.bazel | 2 +- + npm/@angular-devkit/build-angular/BUILD.bazel | 4 +- + npm/@angular/build-tooling/BUILD.bazel | 8 ++-- + npm/BUILD.bazel | 31 +++++++++------- + npm/_/node_modules/.yarn-integrity | 37 ++++++++++++++++++- + npm/esbuild/BUILD.bazel | 4 +- + npm/nice-napi/BUILD.bazel | 13 ++++--- + yarn/bin/yarn | 2 +- + 21 files changed, 104 insertions(+), 63 deletions(-) + +diff --git a/@build_bazel_rules_sass_deps.marker b/@build_bazel_rules_sass_deps.marker +index b4875fdf7..68e718851 100644 +--- a/@build_bazel_rules_sass_deps.marker ++++ b/@build_bazel_rules_sass_deps.marker +@@ -1,13 +1,13 @@ + f9884df4c07515ced889d3ae463f1b5e8c8d12a3ea75f6d2451bf0049d3be8f1 + STARLARK_SEMANTICS -1438583352 + FILE:@build_bazel_rules_nodejs//internal/npm_install:pre_process_package_json.js eabbac449f0d96b496d48163bda5ddb723a5183c563fc9d3ee35a0d92e3d8480 +-FILE:@nodejs_linux_amd64//:WORKSPACE b21a325f08721f9850217e982cefa3347527e7f1b199865916745d49bab85bc8 ++FILE:@nodejs_linux_arm64//:WORKSPACE d2344552d9f9f52230e640ac4cdb0a86997d75044fe0e70ac267fbacb54a91e8 + FILE:@yarn//:yarn_info 91e98eba8e4ac5bd2f93af6d2b3ea0989c0ec633d2943183dd738d1dfb86e069 + $MANAGED +-FILE:@nodejs_linux_amd64//:node_info 3a0266cf592a41bbcf345c29ba9a4d15caf643eafb919295d1f6edff54b756b4 ++FILE:@nodejs_linux_arm64//:node_info 3bc6d070490c16079729a6ffc74146d4884cb4947c902251a300299a86074909 + FILE:@io_bazel_rules_sass//sass:yarn.lock 91ea6c66fee21eb97de218cd2ed592011be8afc689017286abde32681c3f2b4f + FILE:@io_bazel_rules_sass//sass:package.json 25dd110340c246dff92db28a8b13771e7a007d7228b63a5c647b0e33a9049f7b + FILE:@build_bazel_rules_nodejs//internal/npm_install:index.js 40a148fc9ce19c5d0e90913400484ecf24fe862e226e9046dd3ffcd296b62879 + FILE:@yarn//:WORKSPACE 4a8654bb2141074fb800f3bbb3037fd7232d505ce8853aa053ddb2269d8289fe +-FILE:@nodejs_linux_amd64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae +-FILE:@yarn//:bin/yarn 4db35273dd0456e9cc171ebc9d3857b4edeb7a16d4c76c5eea6383ccc7062284 ++FILE:@nodejs_linux_arm64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae ++FILE:@yarn//:bin/yarn 2206ebdaafbb5b7a637d9f4584083c79c49593fca902d9f303ac6b86bfaa654b +diff --git a/@esbuild_npm.marker b/@esbuild_npm.marker +index 560fc3776..dadc18a52 100644 +--- a/@esbuild_npm.marker ++++ b/@esbuild_npm.marker +@@ -1,12 +1,12 @@ + fda22438b93f10598893ca68912afe52b966a96de45d8ed76ec3ec448ed62a43 +-FILE:@nodejs_linux_amd64//:bin/npm 9fd5d41b7335211c2159a18dd569e174d7c637eafac9d3418fbaf69b69ccd784 ++FILE:@nodejs_linux_arm64//:bin/npm 9fd5d41b7335211c2159a18dd569e174d7c637eafac9d3418fbaf69b69ccd784 + STARLARK_SEMANTICS -1438583352 + FILE:@build_bazel_rules_nodejs//toolchains/esbuild:package.json 0f1165be8bd57255fcda9bf8a93d967827693bbffffa1a8017302b55a6e41e35 + FILE:@build_bazel_rules_nodejs//internal/npm_install:pre_process_package_json.js eabbac449f0d96b496d48163bda5ddb723a5183c563fc9d3ee35a0d92e3d8480 +-FILE:@nodejs_linux_amd64//:WORKSPACE b21a325f08721f9850217e982cefa3347527e7f1b199865916745d49bab85bc8 ++FILE:@nodejs_linux_arm64//:WORKSPACE d2344552d9f9f52230e640ac4cdb0a86997d75044fe0e70ac267fbacb54a91e8 + $MANAGED +-FILE:@nodejs_linux_amd64//:node_info 3a0266cf592a41bbcf345c29ba9a4d15caf643eafb919295d1f6edff54b756b4 ++FILE:@nodejs_linux_arm64//:node_info 3bc6d070490c16079729a6ffc74146d4884cb4947c902251a300299a86074909 + FILE:@build_bazel_rules_nodejs//third_party/github.com/juanjoDiaz/removeNPMAbsolutePaths:bin/removeNPMAbsolutePaths 25aa8e28fe0bf52bc5a189120db7310ef4ad52d8469796a0858506e84069f1da + FILE:@build_bazel_rules_nodejs//internal/npm_install:index.js 40a148fc9ce19c5d0e90913400484ecf24fe862e226e9046dd3ffcd296b62879 +-FILE:@nodejs_linux_amd64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae ++FILE:@nodejs_linux_arm64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae + FILE:@build_bazel_rules_nodejs//toolchains/esbuild:package-lock.json 3e30696ad8ee362b2d56d6ab4151a45a9720e3de5bccc49fb8cf6cce91e035f9 +diff --git a/@npm.marker b/@npm.marker +index 20c21cd96..7502db39b 100644 +--- a/@npm.marker ++++ b/@npm.marker +@@ -1,15 +1,15 @@ + 7e21a2303fc04b3a3f13933eaa91eae259c1e5a81a4001e9ed5bf51d7d208216 + FILE://patches:@angular+build-tooling+0.0.0-7d103b83a07f132629592fc9918ce17d42a5e382.patch c6d98e214d992afce3a625157bdd86db3ef2177201384c1d93386500af63531a + $MANAGED +-FILE:@nodejs_linux_amd64//:node_info 3a0266cf592a41bbcf345c29ba9a4d15caf643eafb919295d1f6edff54b756b4 +-FILE:@nodejs_linux_amd64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae ++FILE:@nodejs_linux_arm64//:node_info 3bc6d070490c16079729a6ffc74146d4884cb4947c902251a300299a86074909 ++FILE:@nodejs_linux_arm64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae + STARLARK_SEMANTICS -1438583352 + FILE:@build_bazel_rules_nodejs//internal/npm_install:pre_process_package_json.js eabbac449f0d96b496d48163bda5ddb723a5183c563fc9d3ee35a0d92e3d8480 +-FILE:@nodejs_linux_amd64//:WORKSPACE b21a325f08721f9850217e982cefa3347527e7f1b199865916745d49bab85bc8 ++FILE:@nodejs_linux_arm64//:WORKSPACE d2344552d9f9f52230e640ac4cdb0a86997d75044fe0e70ac267fbacb54a91e8 + FILE:@yarn//:yarn_info 91e98eba8e4ac5bd2f93af6d2b3ea0989c0ec633d2943183dd738d1dfb86e069 + FILE:@build_bazel_rules_nodejs//internal/npm_install:index.js 40a148fc9ce19c5d0e90913400484ecf24fe862e226e9046dd3ffcd296b62879 + FILE://:yarn.lock c31331b350fe0700f40d0bda5b57ce45881268804d407ceb14b2fa2a1518cd6c + FILE://patches:@bazel+concatjs+5.7.0.patch d9ee4042c2b8f18457cfc92f19225d77bf237a8cab6023aeab345c6ccd3bf23e + FILE:@yarn//:WORKSPACE 4a8654bb2141074fb800f3bbb3037fd7232d505ce8853aa053ddb2269d8289fe +-FILE:@yarn//:bin/yarn 4db35273dd0456e9cc171ebc9d3857b4edeb7a16d4c76c5eea6383ccc7062284 ++FILE:@yarn//:bin/yarn 2206ebdaafbb5b7a637d9f4584083c79c49593fca902d9f303ac6b86bfaa654b + FILE://:package.json 1a76dd1e94a208bbc2a202cc234742d3a7b94da77aad4322585a8ed2a7a5c533 +diff --git a/@yarn.marker b/@yarn.marker +index 0b8ab39f9..4457dab67 100644 +--- a/@yarn.marker ++++ b/@yarn.marker +@@ -1,4 +1,4 @@ + 8b805c37cafbaf82ebb3a2d803c59b4804cd412ec8c31c90b42ae9d8e962e8af + STARLARK_SEMANTICS -1438583352 + $MANAGED +-FILE:@nodejs_linux_amd64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae ++FILE:@nodejs_linux_arm64//:bin/node c3a5548d3a49ef2fb261c37fd2838f4e4dabb4a62ef0c0b372b3b59cf794abae +diff --git a/build_bazel_rules_nodejs/internal/node/_node_bin/node b/build_bazel_rules_nodejs/internal/node/_node_bin/node +index ab8ba52ba..ab2ee301b 100755 +--- a/build_bazel_rules_nodejs/internal/node/_node_bin/node ++++ b/build_bazel_rules_nodejs/internal/node/_node_bin/node +@@ -2,7 +2,7 @@ + export NP_SUBPROCESS_NODE_DIR="/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/build_bazel_rules_nodejs/internal/node/_node_bin" + export PATH="/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/build_bazel_rules_nodejs/internal/node/_node_bin":$PATH + if [[ ! "${@}" =~ "node_patches.cjs" ]]; then +- exec /root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_amd64/bin/nodejs/bin/node --require "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/build_bazel_rules_nodejs/internal/node/node_patches.cjs" "$@" ++ exec /root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_arm64/bin/nodejs/bin/node --require "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/build_bazel_rules_nodejs/internal/node/node_patches.cjs" "$@" + else +- exec /root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_amd64/bin/nodejs/bin/node "$@" ++ exec /root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_arm64/bin/nodejs/bin/node "$@" + fi +diff --git a/build_bazel_rules_sass_deps/_/sass/node_modules/.yarn-integrity b/build_bazel_rules_sass_deps/_/sass/node_modules/.yarn-integrity +index 7be53d572..57a3d3457 100644 +--- a/build_bazel_rules_sass_deps/_/sass/node_modules/.yarn-integrity ++++ b/build_bazel_rules_sass_deps/_/sass/node_modules/.yarn-integrity +@@ -1,5 +1,5 @@ + { +- "systemParams": "linux-x64-93", ++ "systemParams": "linux-arm64-93", + "modulesFolders": [ + "node_modules" + ], +diff --git a/esbuild_npm/_npm.sh b/esbuild_npm/_npm.sh +index 782a4b842..e71d76ff9 100755 +--- a/esbuild_npm/_npm.sh ++++ b/esbuild_npm/_npm.sh +@@ -1,4 +1,4 @@ + #!/usr/bin/env bash + # Immediately exit if any command fails. + set -e +-(cd "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/esbuild_npm/_/toolchains/esbuild"; "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_amd64/bin/npm" ci --no-optional --ignore-scripts) ++(cd "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/esbuild_npm/_/toolchains/esbuild"; "/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_arm64/bin/npm" ci --no-optional --ignore-scripts) +diff --git a/go_sdk/BUILD.bazel b/go_sdk/BUILD.bazel +index ab363b0fb..d061dc53b 100644 +--- a/go_sdk/BUILD.bazel ++++ b/go_sdk/BUILD.bazel +@@ -7,8 +7,8 @@ package(default_visibility = ["//visibility:public"]) + filegroup( + name = "libs", + srcs = glob( +- ["pkg/linux_amd64/**/*.a"], +- exclude = ["pkg/linux_amd64/**/cmd/**"], ++ ["pkg/linux_arm64/**/*.a"], ++ exclude = ["pkg/linux_arm64/**/cmd/**"], + ), + ) + +@@ -30,7 +30,7 @@ filegroup( + go_sdk( + name = "go_sdk", + goos = "linux", +- goarch = "amd64", ++ goarch = "arm64", + root_file = "ROOT", + package_list = ":package_list", + libs = [":libs"], +@@ -56,7 +56,7 @@ package_list( + ) + + declare_toolchains( +- host = "linux_amd64", ++ host = "linux_arm64", + sdk = ":go_sdk", + builder = ":builder", + ) +diff --git a/go_sdk/src/internal/buildcfg/zbootstrap.go b/go_sdk/src/internal/buildcfg/zbootstrap.go +index d71091467..64aa56021 100644 +--- a/go_sdk/src/internal/buildcfg/zbootstrap.go ++++ b/go_sdk/src/internal/buildcfg/zbootstrap.go +@@ -12,7 +12,7 @@ const defaultGOMIPS64 = `hardfloat` + const defaultGOPPC64 = `power8` + const defaultGOEXPERIMENT = `` + const defaultGO_EXTLINK_ENABLED = `` +-const defaultGO_LDSO = `/lib64/ld-linux-x86-64.so.2` ++const defaultGO_LDSO = `/lib/ld-linux-aarch64.so.1` + const version = `go1.18` + const defaultGOOS = runtime.GOOS + const defaultGOARCH = runtime.GOARCH +diff --git a/local_config_cc/BUILD b/local_config_cc/BUILD +index 17c190a99..932e53b88 100755 +--- a/local_config_cc/BUILD ++++ b/local_config_cc/BUILD +@@ -47,15 +47,15 @@ filegroup( + cc_toolchain_suite( + name = "toolchain", + toolchains = { +- "k8|compiler": ":cc-compiler-k8", +- "k8": ":cc-compiler-k8", ++ "aarch64|compiler": ":cc-compiler-aarch64", ++ "aarch64": ":cc-compiler-aarch64", + "armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a", + "armeabi-v7a": ":cc-compiler-armeabi-v7a", + }, + ) + + cc_toolchain( +- name = "cc-compiler-k8", ++ name = "cc-compiler-aarch64", + toolchain_identifier = "local", + toolchain_config = ":local", + all_files = ":compiler_deps", +@@ -72,7 +72,7 @@ cc_toolchain( + + cc_toolchain_config( + name = "local", +- cpu = "k8", ++ cpu = "aarch64", + compiler = "compiler", + toolchain_identifier = "local", + host_system_name = "local", +@@ -80,11 +80,11 @@ cc_toolchain_config( + target_libc = "local", + abi_version = "local", + abi_libc_version = "local", +- cxx_builtin_include_directories = ["/usr/lib/gcc/x86_64-openEuler-linux/12/include", ++ cxx_builtin_include_directories = ["/usr/lib/gcc/aarch64-openEuler-linux/12/include", + "/usr/local/include", + "/usr/include", + "/usr/include/c++/12", +- "/usr/include/c++/12/x86_64-openEuler-linux", ++ "/usr/include/c++/12/aarch64-openEuler-linux", + "/usr/include/c++/12/backward"], + tool_paths = {"ar": "/usr/bin/ar", + "ld": "/usr/bin/ld", +diff --git a/local_config_cc/builtin_include_directory_paths b/local_config_cc/builtin_include_directory_paths +index 50fea54d9..711ac34a3 100755 +--- a/local_config_cc/builtin_include_directory_paths ++++ b/local_config_cc/builtin_include_directory_paths +@@ -4,9 +4,9 @@ changes to it will be reflected in the action cache key. When some of these + paths change, Bazel will make sure to rerun the action, even though none of + declared action inputs or the action commandline changes. + +-/usr/lib/gcc/x86_64-openEuler-linux/12/include ++/usr/lib/gcc/aarch64-openEuler-linux/12/include + /usr/local/include + /usr/include + /usr/include/c++/12 +-/usr/include/c++/12/x86_64-openEuler-linux ++/usr/include/c++/12/aarch64-openEuler-linux + /usr/include/c++/12/backward +diff --git a/local_config_cc_toolchains/BUILD b/local_config_cc_toolchains/BUILD +index f9c087553..db5234fb0 100755 +--- a/local_config_cc_toolchains/BUILD ++++ b/local_config_cc_toolchains/BUILD +@@ -1,10 +1,10 @@ + load("@local_config_platform//:constraints.bzl", "HOST_CONSTRAINTS") + + toolchain( +- name = "cc-toolchain-k8", ++ name = "cc-toolchain-aarch64", + exec_compatible_with = HOST_CONSTRAINTS, + target_compatible_with = HOST_CONSTRAINTS, +- toolchain = "@local_config_cc//:cc-compiler-k8", ++ toolchain = "@local_config_cc//:cc-compiler-aarch64", + toolchain_type = "@bazel_tools//tools/cpp:toolchain_type", + ) + +diff --git a/local_config_platform/constraints.bzl b/local_config_platform/constraints.bzl +index 6a7d8c3e0..4b29ad72c 100644 +--- a/local_config_platform/constraints.bzl ++++ b/local_config_platform/constraints.bzl +@@ -1,6 +1,6 @@ + # DO NOT EDIT: automatically generated constraints list for local_config_platform + # Auto-detected host platform constraints. + HOST_CONSTRAINTS = [ +- '@platforms//cpu:x86_64', ++ '@platforms//cpu:aarch64', + '@platforms//os:linux', + ] +diff --git a/local_jdk/BUILD.bazel b/local_jdk/BUILD.bazel +index 9243d0f51..40d17ace1 100755 +--- a/local_jdk/BUILD.bazel ++++ b/local_jdk/BUILD.bazel +@@ -218,6 +218,6 @@ config_setting( + local_java_runtime( + name = "local_jdk", + runtime_name = "jdk", +- java_home = "/usr/lib/jvm/java-11-openjdk-11.0.20.8-1.oe2309.x86_64", ++ java_home = "/usr/lib/jvm/java-11-openjdk", + version = "11", + ) +diff --git a/npm/@angular-devkit/build-angular/BUILD.bazel b/npm/@angular-devkit/build-angular/BUILD.bazel +index 9c9832a77..331a25cce 100644 +--- a/npm/@angular-devkit/build-angular/BUILD.bazel ++++ b/npm/@angular-devkit/build-angular/BUILD.bazel +@@ -1060,7 +1060,7 @@ load("@build_bazel_rules_nodejs//:index.bzl", "js_library") + # "protractor/node_modules/y18n", + # "protractor/node_modules/yargs-parser", + # "esbuild", +-# "esbuild-linux-64" ++# "esbuild-linux-arm64" + # ], + # "_directDependency": true + # } +@@ -6950,7 +6950,7 @@ js_library( + "//set-blocking:set-blocking__contents", + "//which-module:which-module__contents", + "//esbuild:esbuild__contents", +- "//esbuild-linux-64:esbuild-linux-64__contents", ++ "//esbuild-linux-arm64:esbuild-linux-arm64__contents", + ], + ) + +diff --git a/npm/@angular/build-tooling/BUILD.bazel b/npm/@angular/build-tooling/BUILD.bazel +index e9fafa4a3..a5a6374e4 100644 +--- a/npm/@angular/build-tooling/BUILD.bazel ++++ b/npm/@angular/build-tooling/BUILD.bazel +@@ -1234,7 +1234,7 @@ load("@build_bazel_rules_nodejs//:index.bzl", "js_library") + # "protractor/node_modules/y18n", + # "protractor/node_modules/yargs-parser", + # "@angular/build-tooling/node_modules/esbuild", +-# "@angular/build-tooling/node_modules/esbuild-linux-64", ++# "@angular/build-tooling/node_modules/esbuild-linux-arm64", + # "@angular/benchpress", + # "@bazel/buildifier", + # "@angular/build-tooling/node_modules/@bazel/concatjs", +@@ -10976,9 +10976,9 @@ filegroup( + "//:node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/README.md", + "//:node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/lib/index.js", + "//:node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/package.json", +- "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/README.md", +- "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/bin/esbuild", +- "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/package.json", ++ "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/README.md", ++ "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/bin/esbuild", ++ "//:node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/package.json", + "//:node_modules/@angular/build-tooling/node_modules/esbuild-wasm/LICENSE.md", + "//:node_modules/@angular/build-tooling/node_modules/esbuild-wasm/README.md", + "//:node_modules/@angular/build-tooling/node_modules/esbuild-wasm/bin/esbuild", +diff --git a/npm/BUILD.bazel b/npm/BUILD.bazel +index 08288552a..edff42201 100644 +--- a/npm/BUILD.bazel ++++ b/npm/BUILD.bazel +@@ -30016,9 +30016,9 @@ exports_files([ + "node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/README.md", + "node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/lib/index.js", + "node_modules/@angular/build-tooling/node_modules/connect-history-api-fallback/package.json", +- "node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/README.md", +- "node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/bin/esbuild", +- "node_modules/@angular/build-tooling/node_modules/esbuild-linux-64/package.json", ++ "node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/README.md", ++ "node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/bin/esbuild", ++ "node_modules/@angular/build-tooling/node_modules/esbuild-linux-arm64/package.json", + "node_modules/@angular/build-tooling/node_modules/esbuild-wasm/LICENSE.md", + "node_modules/@angular/build-tooling/node_modules/esbuild-wasm/README.md", + "node_modules/@angular/build-tooling/node_modules/esbuild-wasm/bin/esbuild", +@@ -70789,9 +70789,9 @@ exports_files([ + "node_modules/esbuild/lib/main.d.ts", + "node_modules/esbuild/lib/main.js", + "node_modules/esbuild/package.json", +- "node_modules/esbuild-linux-64/README.md", +- "node_modules/esbuild-linux-64/bin/esbuild", +- "node_modules/esbuild-linux-64/package.json", ++ "node_modules/esbuild-linux-arm64/README.md", ++ "node_modules/esbuild-linux-arm64/bin/esbuild", ++ "node_modules/esbuild-linux-arm64/package.json", + "node_modules/esbuild-wasm/LICENSE.md", + "node_modules/esbuild-wasm/README.md", + "node_modules/esbuild-wasm/bin/esbuild", +@@ -76812,21 +76812,24 @@ exports_files([ + "node_modules/nice-napi/binding.gyp", + "node_modules/nice-napi/build/Makefile", + "node_modules/nice-napi/build/Release/.deps/Release/nice_napi.node.d", ++ "node_modules/nice-napi/build/Release/.deps/Release/node-addon-api/nothing.a.d", + "node_modules/nice-napi/build/Release/.deps/Release/nothing.a.d", + "node_modules/nice-napi/build/Release/.deps/Release/obj.target/nice_napi.node.d", + "node_modules/nice-napi/build/Release/.deps/Release/obj.target/nice_napi/binding.o.d", +- "node_modules/nice-napi/build/Release/.deps/Release/obj.target/node_modules/node-addon-api/nothing.a.d", +- "node_modules/nice-napi/build/Release/.deps/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o.d", ++ "node_modules/nice-napi/build/Release/.deps/Release/obj.target/node-addon-api/nothing.o.d", ++ "node_modules/nice-napi/build/Release/nice_napi.node", ++ "node_modules/nice-napi/build/Release/node-addon-api/nothing.a", + "node_modules/nice-napi/build/Release/nothing.a", + "node_modules/nice-napi/build/Release/obj.target/nice_napi.node", + "node_modules/nice-napi/build/Release/obj.target/nice_napi/binding.o", +- "node_modules/nice-napi/build/Release/obj.target/node_modules/node-addon-api/nothing.a", +- "node_modules/nice-napi/build/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o", ++ "node_modules/nice-napi/build/Release/obj.target/node-addon-api/nothing.o", + "node_modules/nice-napi/build/binding.Makefile", ++ "node_modules/nice-napi/build/config.gypi", + "node_modules/nice-napi/build/nice_napi.target.mk", +- "node_modules/nice-napi/build/node_modules/node-addon-api/nothing.target.mk", + "node_modules/nice-napi/index.d.ts", + "node_modules/nice-napi/index.js", ++ "node_modules/nice-napi/node-addon-api/node_api.Makefile", ++ "node_modules/nice-napi/node-addon-api/nothing.target.mk", + "node_modules/nice-napi/node_modules/.bin/node-gyp-build", + "node_modules/nice-napi/node_modules/.bin/node-gyp-build-optional", + "node_modules/nice-napi/node_modules/.bin/node-gyp-build-test", +@@ -91035,7 +91038,7 @@ js_library( + "//es6-promise:es6-promise__files", + "//es6-promisify:es6-promisify__files", + "//esbuild:esbuild__files", +- "//esbuild-linux-64:esbuild-linux-64__files", ++ "//esbuild-linux-arm64:esbuild-linux-arm64__files", + "//esbuild-wasm:esbuild-wasm__files", + "//escalade:escalade__files", + "//escape-html:escape-html__files", +@@ -92074,7 +92077,7 @@ js_library( + "//es6-promise:es6-promise__nested_node_modules", + "//es6-promisify:es6-promisify__nested_node_modules", + "//esbuild:esbuild__nested_node_modules", +- "//esbuild-linux-64:esbuild-linux-64__nested_node_modules", ++ "//esbuild-linux-arm64:esbuild-linux-arm64__nested_node_modules", + "//esbuild-wasm:esbuild-wasm__nested_node_modules", + "//escalade:escalade__nested_node_modules", + "//escape-html:escape-html__nested_node_modules", +@@ -93116,7 +93119,7 @@ js_library( + "//es6-promise:es6-promise__contents", + "//es6-promisify:es6-promisify__contents", + "//esbuild:esbuild__contents", +- "//esbuild-linux-64:esbuild-linux-64__contents", ++ "//esbuild-linux-arm64:esbuild-linux-arm64__contents", + "//esbuild-wasm:esbuild-wasm__contents", + "//escalade:escalade__contents", + "//escape-html:escape-html__contents", +diff --git a/npm/_/node_modules/.yarn-integrity b/npm/_/node_modules/.yarn-integrity +index c01a93b41..293cb7356 100644 +--- a/npm/_/node_modules/.yarn-integrity ++++ b/npm/_/node_modules/.yarn-integrity +@@ -1,5 +1,5 @@ + { +- "systemParams": "linux-x64-93", ++ "systemParams": "linux-arm64-93", + "modulesFolders": [ + "node_modules" + ], +@@ -1868,6 +1868,41 @@ + }, + "files": [], + "artifacts": { ++ "nice-napi@1.0.2": [ ++ "build", ++ "build/Makefile", ++ "build/Release", ++ "build/Release/.deps", ++ "build/Release/.deps/Release", ++ "build/Release/.deps/Release/nice_napi.node.d", ++ "build/Release/.deps/Release/node-addon-api", ++ "build/Release/.deps/Release/node-addon-api/nothing.a.d", ++ "build/Release/.deps/Release/nothing.a.d", ++ "build/Release/.deps/Release/obj.target", ++ "build/Release/.deps/Release/obj.target/nice_napi", ++ "build/Release/.deps/Release/obj.target/nice_napi/binding.o.d", ++ "build/Release/.deps/Release/obj.target/nice_napi.node.d", ++ "build/Release/.deps/Release/obj.target/node-addon-api", ++ "build/Release/.deps/Release/obj.target/node-addon-api/nothing.o.d", ++ "build/Release/.deps/Release/obj.target/nothing", ++ "build/Release/nice_napi.node", ++ "build/Release/node-addon-api", ++ "build/Release/node-addon-api/nothing.a", ++ "build/Release/nothing.a", ++ "build/Release/obj.target", ++ "build/Release/obj.target/nice_napi", ++ "build/Release/obj.target/nice_napi/binding.o", ++ "build/Release/obj.target/nice_napi.node", ++ "build/Release/obj.target/node-addon-api", ++ "build/Release/obj.target/node-addon-api/nothing.o", ++ "build/Release/obj.target/nothing", ++ "build/binding.Makefile", ++ "build/config.gypi", ++ "build/nice_napi.target.mk", ++ "node-addon-api", ++ "node-addon-api/node_api.Makefile", ++ "node-addon-api/nothing.target.mk" ++ ], + "@bazel/concatjs@5.7.0": [ + "web_test/karma.conf.js" + ] +diff --git a/npm/esbuild/BUILD.bazel b/npm/esbuild/BUILD.bazel +index 578a23f9c..4d9f8b4a9 100644 +--- a/npm/esbuild/BUILD.bazel ++++ b/npm/esbuild/BUILD.bazel +@@ -52,7 +52,7 @@ load("@build_bazel_rules_nodejs//:index.bzl", "js_library") + # "_isNested": false, + # "_dependencies": [ + # "esbuild", +-# "esbuild-linux-64" ++# "esbuild-linux-arm64" + # ], + # "_directDependency": false + # } +@@ -106,7 +106,7 @@ js_library( + # hoisted to root by the package manager + deps = [ + "//esbuild:esbuild__contents", +- "//esbuild-linux-64:esbuild-linux-64__contents", ++ "//esbuild-linux-arm64:esbuild-linux-arm64__contents", + ], + ) + +diff --git a/npm/nice-napi/BUILD.bazel b/npm/nice-napi/BUILD.bazel +index e342e690e..6b71822b1 100644 +--- a/npm/nice-napi/BUILD.bazel ++++ b/npm/nice-napi/BUILD.bazel +@@ -70,21 +70,24 @@ filegroup( + "//:node_modules/nice-napi/binding.gyp", + "//:node_modules/nice-napi/build/Makefile", + "//:node_modules/nice-napi/build/Release/.deps/Release/nice_napi.node.d", ++ "//:node_modules/nice-napi/build/Release/.deps/Release/node-addon-api/nothing.a.d", + "//:node_modules/nice-napi/build/Release/.deps/Release/nothing.a.d", + "//:node_modules/nice-napi/build/Release/.deps/Release/obj.target/nice_napi.node.d", + "//:node_modules/nice-napi/build/Release/.deps/Release/obj.target/nice_napi/binding.o.d", +- "//:node_modules/nice-napi/build/Release/.deps/Release/obj.target/node_modules/node-addon-api/nothing.a.d", +- "//:node_modules/nice-napi/build/Release/.deps/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o.d", ++ "//:node_modules/nice-napi/build/Release/.deps/Release/obj.target/node-addon-api/nothing.o.d", ++ "//:node_modules/nice-napi/build/Release/nice_napi.node", ++ "//:node_modules/nice-napi/build/Release/node-addon-api/nothing.a", + "//:node_modules/nice-napi/build/Release/nothing.a", + "//:node_modules/nice-napi/build/Release/obj.target/nice_napi.node", + "//:node_modules/nice-napi/build/Release/obj.target/nice_napi/binding.o", +- "//:node_modules/nice-napi/build/Release/obj.target/node_modules/node-addon-api/nothing.a", +- "//:node_modules/nice-napi/build/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o", ++ "//:node_modules/nice-napi/build/Release/obj.target/node-addon-api/nothing.o", + "//:node_modules/nice-napi/build/binding.Makefile", ++ "//:node_modules/nice-napi/build/config.gypi", + "//:node_modules/nice-napi/build/nice_napi.target.mk", +- "//:node_modules/nice-napi/build/node_modules/node-addon-api/nothing.target.mk", + "//:node_modules/nice-napi/index.d.ts", + "//:node_modules/nice-napi/index.js", ++ "//:node_modules/nice-napi/node-addon-api/node_api.Makefile", ++ "//:node_modules/nice-napi/node-addon-api/nothing.target.mk", + "//:node_modules/nice-napi/package.json", + "//:node_modules/nice-napi/prebuilds/darwin-x64/node.napi.node", + "//:node_modules/nice-napi/prebuilds/linux-x64/node.napi.node", +diff --git a/yarn/bin/yarn b/yarn/bin/yarn +index 023832b17..4dfd32ef5 100755 +--- a/yarn/bin/yarn ++++ b/yarn/bin/yarn +@@ -16,4 +16,4 @@ while [ -h "$SOURCE" ]; do + done + SCRIPT_DIR="$(cd -P "$( dirname "$SOURCE" )" >/dev/null && pwd)" + +-"/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_amd64/bin/node" "$SCRIPT_DIR/yarnpkg/bin/yarn.js" "$@" ++"/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445/external/nodejs_linux_arm64/bin/node" "$SCRIPT_DIR/yarnpkg/bin/yarn.js" "$@" +-- +2.33.0 + diff --git a/bazel-arm-adds.tar.gzaa b/bazel-arm-adds.tar.gzaa new file mode 100644 index 0000000000000000000000000000000000000000..65ebaf500aec95222489b1bc3ab34f70ae837f8d Binary files /dev/null and b/bazel-arm-adds.tar.gzaa differ diff --git a/bazel-arm-adds.tar.gzab b/bazel-arm-adds.tar.gzab new file mode 100644 index 0000000000000000000000000000000000000000..901ecdf39b9e857c0b3fa99e68f091520870fd2e Binary files /dev/null and b/bazel-arm-adds.tar.gzab differ diff --git a/bazel-execroot.tar.gzaa b/bazel-execroot.tar.gzaa new file mode 100644 index 0000000000000000000000000000000000000000..2a9a4a06011726c48c8c807a36abbf8a8f69ce67 Binary files /dev/null and b/bazel-execroot.tar.gzaa differ diff --git a/bazel-external.tar.gzaa b/bazel-external.tar.gzaa new file mode 100644 index 0000000000000000000000000000000000000000..c67181eba931ecd3c1b7a5aa8b0f90d833992fb3 Binary files /dev/null and b/bazel-external.tar.gzaa differ diff --git a/bazel-external.tar.gzab b/bazel-external.tar.gzab new file mode 100644 index 0000000000000000000000000000000000000000..83388811d42a06288b3091b1699f14e955e518e5 Binary files /dev/null and b/bazel-external.tar.gzab differ diff --git a/bazel-external.tar.gzac b/bazel-external.tar.gzac new file mode 100644 index 0000000000000000000000000000000000000000..136ffafa87d80c4134a4aa5c67fb8b5c08efb1b5 Binary files /dev/null and b/bazel-external.tar.gzac differ diff --git a/tensorboard-2.12.0-py3-none-any.whl b/tensorboard-2.12.0-py3-none-any.whl deleted file mode 100644 index 16045e7eeaab152f55954ae12b52110a2c8384c1..0000000000000000000000000000000000000000 Binary files a/tensorboard-2.12.0-py3-none-any.whl and /dev/null differ diff --git a/tensorboard.spec b/tensorboard.spec index 4e3b5373e606fdad95c022d108188d6486a97ac5..cf6f85cb456bed7051edeca3b6304f62fae897a4 100644 --- a/tensorboard.spec +++ b/tensorboard.spec @@ -1,19 +1,19 @@ %global _empty_manifest_terminate_build 0 Name: python-tensorboard -Version: 2.12.0 +Version: 2.12.1 Release: 1 Summary: TensorBoard lets you watch Tensors Flow License: Apache 2.0 URL: https://github.com/tensorflow/tensorboard -Source0: https://files.pythonhosted.org/packages/8d/71/75fcfab1ff98e3fad240f760d3a6b5ca6bdbcc5ed141fb7abd35cf63134c/tensorboard-2.12.0-py3-none-any.whl +Source0: https://github.com/tensorflow/tensorboard/archive/refs/tags/%{version}.tar.gz Source1: https://files.pythonhosted.org/packages/da/61/6e9ff8258422d287eec718872fb71e05324356722ab658c8afda25f51539/tensorboard_data_server-0.7.1-py3-none-any.whl -#Source2: bazel-tensorboard-external.tar.gzaa -#Source3: bazel-tensorboard-external.tar.gzab -#Source4: bazel-tensorboard-external.tar.gzac -#Source5: adapt-external-for-aarch64.patch -#Source6: adds-external-for-aarch64.tar.gzaa -#Source7: adds-external-for-aarch64.tar.gzab -Source8: 0001-Bumps-google-auth-oauthlib-dependency-restriction.patch +Source2: bazel-external.tar.gzaa +Source3: bazel-external.tar.gzab +Source4: bazel-external.tar.gzac +Source5: bazel-execroot.tar.gzaa +Source6: bazel-arm-adds.tar.gzaa +Source7: bazel-arm-adds.tar.gzab +Source8: adapt-external-for-aarch64.patch Requires: python3-absl-py Requires: python3-grpcio @@ -47,6 +47,7 @@ BuildRequires: python3-packaging BuildRequires: python3-numpy BuildRequires: python3-absl-py BuildRequires: python3-virtualenv +BuildRequires: python3-google-api-client BuildRequires: bazel == 5.1.1 gcc gcc-c++ %description -n python3-tensorboard TensorBoard is a suite of web applications for inspecting and understanding @@ -76,15 +77,62 @@ Releases prior to 1.6.0 were published under the ``tensorflow-tensorboard`` name and may be found at https://pypi.python.org/pypi/tensorflow-tensorboard. %prep +%autosetup -p1 -n tensorboard-%{version} -b 0 +extdir=$(bazel --output_user_root=`pwd`/../output_user_root info output_base) +srcdir=`pwd` +homeuser=`whoami` +mkdir -p ${extdir} +cat %{SOURCE2} %{SOURCE3} %{SOURCE4} > bazel-external.tar.gz +tar xzvf bazel-external.tar.gz -C ${extdir} +cat %{SOURCE5} > bazel-execroot.tar.gz +tar xzvf bazel-execroot.tar.gz -C ${extdir} +%ifarch aarch64 +patch -d ${extdir}/external -p1 < %{SOURCE8} +cat %{SOURCE6} %{SOURCE7} > adds-aarch64-cache.tar.gz +tar xzvf adds-aarch64-cache.tar.gz -C ${extdir} +%endif +# relinks adpapt to ebs&obs +rm -rf ${extdir}/external/platforms +ln -sfn $(find ${extdir}/../install -name embedded_tools) ${extdir}/external/bazel_tools +ln -sfn $(find ${extdir}/../install -maxdepth 2 -name platforms) ${extdir}/external/platforms +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/bin ${extdir}/external/local_jdk/bin +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/conf ${extdir}/external/local_jdk/conf +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/include ${extdir}/external/local_jdk/include +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/legal ${extdir}/external/local_jdk/legal +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/lib ${extdir}/external/local_jdk/lib +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/release ${extdir}/external/local_jdk/release +ln -sfn $(find /usr/lib/jvm -maxdepth 1 -name java-11-openjdk)/tapset ${extdir}/external/local_jdk/tapset +for f in $(find $extdir -lname "*/f1a05a074786842b07afcf52636c4445/external/*"); do OLDLINK=$(readlink $f); echo $OLDLINK; NEWLINK=${extdir}/external${OLDLINK#*external}; LINKTP=$([ ! -d $NEWLINK ] && echo -n "-sf" || echo -n "-sfn"); ln $LINKTP $NEWLINK $f-newlink; mv -Tf $f-newlink $f; done +for f in $(find $extdir -lname "*/f1a05a074786842b07afcf52636c4445/execroot/*"); do OLDLINK=$(readlink $f); echo $OLDLINK; NEWLINK=${extdir}/execroot${OLDLINK#*execroot}; LINKTP=$([ ! -d $NEWLINK ] && echo -n "-sf" || echo -n "-sfn"); ln $LINKTP $NEWLINK $f-newlink; mv -Tf $f-newlink $f; done +for f in $(find $extdir -lname "/root/rpmbuild/*"); do OLDLINK=$(readlink $f); echo $OLDLINK; NEWLINK=${HOME}/rpmbuild${OLDLINK#*rpmbuild}; LINKTP=$([ ! -d $NEWLINK ] && echo -n "-sf" || echo -n "-sfn"); ln $LINKTP $NEWLINK $f-newlink; mv -Tf $f-newlink $f; done +# Update local path to ci path for ebs&obs +oldext='/root/rpmbuild/BUILD/output_user_root/f1a05a074786842b07afcf52636c4445' +oldsrc='/root/rpmbuild/BUILD/tensorboard-2.12.1' +sed -i s#${oldext}#${extdir}#g `grep ${oldext} -rl ${extdir}/external` +sed -i s#${oldext}#${extdir}#g `grep ${oldext} -rl ${extdir}/execroot` +sed -i s#${oldsrc}#${srcdir}#g `grep ${oldsrc} -rl ${extdir}/external` +sed -i s#${oldsrc}#${srcdir}#g `grep ${oldsrc} -rl ${extdir}/execroot` +# Update yarn sum for user path change. Get the value of oldyarn: +# grep -r "FILE:@yarn//:bin/yarn" ./external +oldyarn='4db35273dd0456e9cc171ebc9d3857b4edeb7a16d4c76c5eea6383ccc7062284' +%ifarch aarch64 +oldyarn='2206ebdaafbb5b7a637d9f4584083c79c49593fca902d9f303ac6b86bfaa654b' +%endif +yarnsum=$(sha256sum ${extdir}/external/yarn/bin/yarn) +newyarn=${yarnsum%%%% *} +sed -i s#${oldyarn}#${newyarn}#g `grep ${oldyarn} -rl ${extdir}/external` +# Update local config cc&sh for user path change +sed -i "s#^ENV\:USER.*#ENV\:USER ${homeuser}#g" ${extdir}/external/@local_config_cc.marker +sed -i "s#^ENV\:PATH.*#ENV\:PATH ${PATH}#g" ${extdir}/external/@local_config_sh.marker %build mkdir dist -cp %{SOURCE0} dist cp %{SOURCE1} dist +bazel --output_user_root=`pwd`/../output_user_root build //tensorboard/pip_package:build_pip_package --verbose_failures --experimental_local_memory_estimate --jobs=16 +bazel --output_user_root=`pwd`/../output_user_root run //tensorboard/pip_package:extract_pip_package -- `pwd`/dist %install %py3_install_wheel * -patch -d %{buildroot}/%{python3_sitelib} -p1 < %{SOURCE8} install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi @@ -111,6 +159,9 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog +* Tue Sep 5 2023 Dongxing Wang - 2.12.1-1 +- upgrade to version 2.12.1 + * Fri Jul 21 2023 zhuofeng - 2.12.0-1 - Update package to version 2.12.0