Snap for 8730993 from 1dd7f22775add3518c55f375bd674280a0238927 to mainline-tzdata3-release

Change-Id: Iebd8f4308300999be3bc2f5c0eaadf65e2b28a62
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index 2587a95..da15913 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
 {
   "git": {
-    "sha1": "7a48e0bb843e702832c1c3ac024c468dedf0023c"
+    "sha1": "376d262f28aabfb1af755f928c9dd474eebc0e84"
   }
 }
diff --git a/Android.bp b/Android.bp
index fb52b72..b4c976d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,4 @@
-// This file is generated by cargo2android.py --config cargo2android.json.
+// This file is generated by cargo2android.py --run --dependencies.
 // Do not modify this file as changes will be overridden on upgrade.
 
 package {
@@ -36,8 +36,6 @@
 rust_binary_host {
     name: "grpc_rust_plugin",
     crate_name: "grpc_rust_plugin",
-    cargo_env_compat: true,
-    cargo_pkg_version: "0.9.0",
     srcs: ["src/bin/grpc_rust_plugin.rs"],
     edition: "2018",
     features: [
@@ -54,8 +52,6 @@
 rust_library_host {
     name: "libgrpcio_compiler",
     crate_name: "grpcio_compiler",
-    cargo_env_compat: true,
-    cargo_pkg_version: "0.9.0",
     srcs: ["src/lib.rs"],
     edition: "2018",
     features: [
@@ -67,3 +63,6 @@
         "libprotobuf",
     ],
 }
+
+// dependent_library ["feature_list"]
+//   protobuf-2.22.1
diff --git a/Cargo.lock b/Cargo.lock
index 72a664e..0f0ebdf 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,9 +2,9 @@
 # It is not intended for manual editing.
 [[package]]
 name = "anyhow"
-version = "1.0.40"
+version = "1.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
+checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
 
 [[package]]
 name = "autocfg"
@@ -55,9 +55,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.3"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
 dependencies = [
  "cfg-if",
  "libc",
@@ -66,7 +66,7 @@
 
 [[package]]
 name = "grpcio-compiler"
-version = "0.9.0"
+version = "0.8.0"
 dependencies = [
  "derive-new",
  "prost",
@@ -93,9 +93,9 @@
 
 [[package]]
 name = "indexmap"
-version = "1.6.2"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
+checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
 dependencies = [
  "autocfg",
  "hashbrown",
@@ -112,9 +112,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.94"
+version = "0.2.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
 
 [[package]]
 name = "log"
@@ -127,9 +127,9 @@
 
 [[package]]
 name = "multimap"
-version = "0.8.3"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333"
 
 [[package]]
 name = "petgraph"
@@ -149,9 +149,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.27"
+version = "1.0.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
 dependencies = [
  "unicode-xid",
 ]
@@ -209,9 +209,9 @@
 
 [[package]]
 name = "protobuf"
-version = "2.23.0"
+version = "2.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45604fc7a88158e7d514d8e22e14ac746081e7a70d7690074dd0029ee37458d6"
+checksum = "73f72884896d22e0da0e5b266cb9a780b791f6c3b2f5beab6368d6cd4f0dbb86"
 
 [[package]]
 name = "quote"
@@ -264,9 +264,9 @@
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.8"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
 dependencies = [
  "bitflags",
 ]
@@ -282,9 +282,9 @@
 
 [[package]]
 name = "syn"
-version = "1.0.72"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
+checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -306,6 +306,26 @@
 ]
 
 [[package]]
+name = "thiserror"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
 name = "unicode-segmentation"
 version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -313,9 +333,9 @@
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.2"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 
 [[package]]
 name = "wasi"
@@ -325,12 +345,12 @@
 
 [[package]]
 name = "which"
-version = "4.1.0"
+version = "4.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe"
+checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef"
 dependencies = [
- "either",
  "libc",
+ "thiserror",
 ]
 
 [[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 52cb1a5..52ed1ef 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
 [package]
 edition = "2018"
 name = "grpcio-compiler"
-version = "0.9.0"
+version = "0.8.0"
 authors = ["The TiKV Project Developers"]
 description = "gRPC compiler for grpcio"
 homepage = "https://github.com/tikv/grpc-rs"
@@ -26,10 +26,6 @@
 [[bin]]
 name = "grpc_rust_plugin"
 required-features = ["protobuf-codec"]
-
-[[bin]]
-name = "grpc_rust_prost"
-required-features = ["prost-codec"]
 [dependencies.derive-new]
 version = "0.5"
 optional = true
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 46c1e8b..cd2e87e 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
 [package]
 name = "grpcio-compiler"
-version = "0.9.0"
+version = "0.8.0"
 edition = "2018"
 authors = ["The TiKV Project Developers"]
 license = "Apache-2.0"
@@ -27,7 +27,3 @@
 [[bin]]
 name = "grpc_rust_plugin"
 required-features = ["protobuf-codec"]
-
-[[bin]]
-name = "grpc_rust_prost"
-required-features = ["prost-codec"]
diff --git a/METADATA b/METADATA
index 01fad1f..bdd92d1 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://static.crates.io/crates/grpcio-compiler/grpcio-compiler-0.9.0.crate"
+    value: "https://static.crates.io/crates/grpcio-compiler/grpcio-compiler-0.8.0.crate"
   }
-  version: "0.9.0"
+  version: "0.8.0"
   license_type: NOTICE
   last_upgrade_date {
     year: 2021
-    month: 6
-    day: 21
+    month: 4
+    day: 1
   }
 }
diff --git a/cargo2android.json b/cargo2android.json
deleted file mode 100644
index 9b0d064..0000000
--- a/cargo2android.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "dependencies": true,
-  "run": true,
-  "tests": true
-}
\ No newline at end of file
diff --git a/src/bin/grpc_rust_prost.rs b/src/bin/grpc_rust_prost.rs
deleted file mode 100644
index 431e625..0000000
--- a/src/bin/grpc_rust_prost.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2021 TiKV Project Authors. Licensed under Apache-2.0.
-
-extern crate grpcio_compiler;
-
-use grpcio_compiler::prost_codegen;
-
-fn main() {
-    prost_codegen::protoc_gen_grpc_rust_main();
-}
diff --git a/src/codegen.rs b/src/codegen.rs
index e2f6c10..2a41105 100644
--- a/src/codegen.rs
+++ b/src/codegen.rs
@@ -151,6 +151,10 @@
         }
     }
 
+    pub fn fn_def(&mut self, sig: &str) {
+        self.write_line(&format!("fn {};", sig));
+    }
+
     pub fn fn_block<F>(&mut self, public: bool, sig: &str, cb: F)
     where
         F: Fn(&mut CodeWriter),
@@ -498,7 +502,7 @@
             MethodType::Duplex => ("stream", req_stream_type, "DuplexSink"),
         };
         let sig = format!(
-            "{}(&mut self, ctx: {}, _{}: {}, sink: {}<{}>)",
+            "{}(&mut self, ctx: {}, {}: {}, sink: {}<{}>)",
             self.name(),
             fq_grpc("RpcContext"),
             req,
@@ -506,9 +510,7 @@
             fq_grpc(resp_type),
             self.output()
         );
-        w.fn_block(false, &sig, |w| {
-            w.write_line("grpcio::unimplemented_call!(ctx, sink)");
-        });
+        w.fn_def(&sig);
     }
 
     fn write_bind(&self, w: &mut CodeWriter) {
diff --git a/src/prost_codegen.rs b/src/prost_codegen.rs
index 4457c02..e2d7533 100644
--- a/src/prost_codegen.rs
+++ b/src/prost_codegen.rs
@@ -2,7 +2,7 @@
 
 use std::io::{Error, ErrorKind, Read};
 use std::path::Path;
-use std::{env, fs, io, process::Command, str};
+use std::{fs, io, process::Command};
 
 use derive_new::new;
 use prost::Message;
@@ -510,14 +510,14 @@
     buf.push_str(&method.name);
     buf.push_str("(&mut self, ctx: ");
     buf.push_str(&fq_grpc("RpcContext"));
-    buf.push_str(", _");
+    buf.push_str(", ");
     buf.push_str(request_arg);
     buf.push_str(", sink: ");
     buf.push_str(&fq_grpc(response_type));
     buf.push('<');
     buf.push_str(&method.output_type);
     buf.push('>');
-    buf.push_str(") { grpcio::unimplemented_call!(ctx, sink) }\n");
+    buf.push_str(");\n");
 }
 
 fn generate_method_bind(service_name: &str, method: &Method, buf: &mut String) {
@@ -536,22 +536,3 @@
     buf.push_str(&method.name);
     buf.push_str("(ctx, req, resp));\n");
 }
-
-pub fn protoc_gen_grpc_rust_main() {
-    let mut args = env::args();
-    args.next();
-    let (mut protos, mut includes, mut out_dir): (Vec<_>, Vec<_>, _) = Default::default();
-    for arg in args {
-        if let Some(value) = arg.strip_prefix("--protos=") {
-            protos.extend(value.split(",").map(|s| s.to_string()));
-        } else if let Some(value) = arg.strip_prefix("--includes=") {
-            includes.extend(value.split(",").map(|s| s.to_string()));
-        } else if let Some(value) = arg.strip_prefix("--out-dir=") {
-            out_dir = value.to_string();
-        }
-    }
-    if protos.is_empty() {
-        panic!("should at least specify protos to generate");
-    }
-    compile_protos(&protos, &includes, &out_dir).unwrap();
-}