summaryrefslogtreecommitdiff
path: root/dev-libs
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/Manifest.gzbin95941 -> 95943 bytes
-rw-r--r--dev-libs/expat/Manifest2
-rw-r--r--dev-libs/expat/expat-2.5.0.ebuild2
-rw-r--r--dev-libs/mmtf-cpp/Manifest2
-rw-r--r--dev-libs/mmtf-cpp/mmtf-cpp-1.1.0.ebuild19
-rw-r--r--dev-libs/protobuf/Manifest9
-rw-r--r--dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch240
-rw-r--r--dev-libs/protobuf/protobuf-21.8.ebuild148
-rw-r--r--dev-libs/protobuf/protobuf-3.19.6.ebuild151
-rw-r--r--dev-libs/protobuf/protobuf-3.20.3.ebuild148
-rw-r--r--dev-libs/protobuf/protobuf-9999.ebuild25
11 files changed, 733 insertions, 13 deletions
diff --git a/dev-libs/Manifest.gz b/dev-libs/Manifest.gz
index 4d3c9f66c100..be9ac9025bed 100644
--- a/dev-libs/Manifest.gz
+++ b/dev-libs/Manifest.gz
Binary files differ
diff --git a/dev-libs/expat/Manifest b/dev-libs/expat/Manifest
index 0c0c681c72d5..07f2341a7ca7 100644
--- a/dev-libs/expat/Manifest
+++ b/dev-libs/expat/Manifest
@@ -1,5 +1,5 @@
DIST expat-2.4.9.tar.xz 459284 BLAKE2B 105fef732e26b691f6c212341b7377b518d693aa67f106d0ff2f0fbccd798b7526473ed21e22b6d2b6f1ca8aa7d0eb0adc62ffdefc3c2cb81a6af5a379e64de9 SHA512 8508379b4915d84d50f3638678a90792179c98247d1cb5e6e6387d117af4dc148ac7031c1debea8b96e7b710ef436cf0dd5da91f3d22b8186a00cfafe1201169
DIST expat-2.5.0.tar.xz 460560 BLAKE2B 670298d076ff3b512a0212170d40cb04c601a11d6b152f215a5302ad3238c69c2386393d7a6c70bc284be35ce97bf27d87115c3391f4bc17406e509d739d3e31 SHA512 2da73b991b7c0c54440485c787e5edeb3567230204e31b3cac1c3a6713ec6f9f1554d3afffc0f8336168dfd5df02db4a69bcf21b4d959723d14162d13ab87516
EBUILD expat-2.4.9.ebuild 2284 BLAKE2B 2f75d5b3709f2891725858a1b4f0f3d357288453653c40e32fcc599caedc1e0d6e0755ce497d00a535f2ac6ebc925c7ad4b9703bb6e88c58ee6f6a45f49dbb52 SHA512 216cf850735cbd4d992b7163dd2fe921f368876af70fa9d84229bdfb81f54d61078937ad007645d6b4578f4262f6ad963a19d13546d0d28aa5ae87cfddf6ff00
-EBUILD expat-2.5.0.ebuild 2287 BLAKE2B 6aaf18e354de25bef3a6518f7d0fe6c70e1bb9d9a6250d5f9b37ae96bb6dba5d869a4cd909466456d6643afa0f004b3ff72d57e5bc8a8253d0c3de6dcc403bb1 SHA512 12576ae1a01300538e50815b2c4cb70095307da2fbc1f68dac0f647fa51199f693c02fd6c70e7c103c9864956bc206e8c1388e03920f51f9ab8c59813fed6d9a
+EBUILD expat-2.5.0.ebuild 2286 BLAKE2B 45efa0ba0630d4c47c0ff04983a336a8b6cd8103d2b6825f548505de8ec257911335b7604454af14d62138bf18160f85d4f2858b261d608a7137b30b62cfac19 SHA512 c5528277997a98557fbd6136c20e385579181b83110dd03563ae3e886ba357c4028714a6d261c77305c304351d1139a4a22c1bbedf9e092fb64bcad9308b6fa8
MISC metadata.xml 571 BLAKE2B ebefe11eb4a54dda87048089930a051a629fd99a6983b3c804dfd033eee4017c3b1871cbdff56c8659cdf74b19651cd7f2134721a9bab3e8a752d4a1694c6266 SHA512 8d726b1dee71528e43c8693bd4b08cf33a94f43470126aa18a51ed248b032c5e8b9d801c5b2d5f58c2fd7896b32ee9e6eb3953395e5a6004cdf00569d114ad1d
diff --git a/dev-libs/expat/expat-2.5.0.ebuild b/dev-libs/expat/expat-2.5.0.ebuild
index b5ed6a6218ea..a28cd0e2ee08 100644
--- a/dev-libs/expat/expat-2.5.0.ebuild
+++ b/dev-libs/expat/expat-2.5.0.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/libexpat/libexpat/releases/download/R_${PV//\./_}/ex
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+KEYWORDS="~alpha ~amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
IUSE="examples static-libs unicode"
BDEPEND="unicode? ( ${AUTOTOOLS_DEPEND} )"
diff --git a/dev-libs/mmtf-cpp/Manifest b/dev-libs/mmtf-cpp/Manifest
index f6c5f24656bf..c234d955c66e 100644
--- a/dev-libs/mmtf-cpp/Manifest
+++ b/dev-libs/mmtf-cpp/Manifest
@@ -1,3 +1,5 @@
DIST mmtf-cpp-1.0.0.tar.gz 59363 BLAKE2B afcb03ce1f83e10348b148bd6218e5e10ab3e425b0f8105d292f9e265800ea6ca4562dc11fa4453df05d8a698576fba9dfe982aa91a8dcc1983480c0c52dbcf7 SHA512 0e502ae76e31689d440bff2fbc90fdab7ff62d5369e26f7ab2836966a30bda72625d6d5da33bc0770cf471a1549a02f7478ea16a01dd6be2809568d8daecb073
+DIST mmtf-cpp-1.1.0.tar.gz 106527 BLAKE2B 46f7b44ca6d9096b1f6c7911121d54ab50889c884156724229912bb125492682435d05d93b55b0c8c8025f293eb23f537da4f01a42fe65f4f89270e49429fce7 SHA512 91f30ac1031d71a5358fd83bf864afdac1d1ea758d775811b94a2609be286fcbb7dcfece097c6959afb4f8f9d237b7372183424d4ef211364cc69c08f2cd6e52
EBUILD mmtf-cpp-1.0.0-r1.ebuild 476 BLAKE2B 41ab5557ca52751a77aab013709b3e9b0897e248b902b36c3f3acccfc38b1c49a2ad2f039969275208f40d7bf767c4b904adbdb401fe1cfb7fe939506e7bdae2 SHA512 a1099655707c9c1d6eb24b812bab09b379f86a7cf649510977daf33f9d8d17d31facea0ab7926b112a5f6c3236259a12bf8b2bfa2df3db3a2c66c18d1c1b2f9d
+EBUILD mmtf-cpp-1.1.0.ebuild 476 BLAKE2B 41ab5557ca52751a77aab013709b3e9b0897e248b902b36c3f3acccfc38b1c49a2ad2f039969275208f40d7bf767c4b904adbdb401fe1cfb7fe939506e7bdae2 SHA512 a1099655707c9c1d6eb24b812bab09b379f86a7cf649510977daf33f9d8d17d31facea0ab7926b112a5f6c3236259a12bf8b2bfa2df3db3a2c66c18d1c1b2f9d
MISC metadata.xml 441 BLAKE2B b55284cf0df7ee0750b0a2058b95ee0e83b556cacf506d41f8c58c5f4ae6e283f61b288bf2b5f00d86f4636e1ea2f9c1824524db83d3ddcc77c10e0fb0452ec7 SHA512 c7d481aa61f4a5fa627e72bc2307eec74e1bbfcc70efa6b1ff6132ced2df8d9b55d5710a78bac639c09375d2314a74dd9e46e20a9058aceb2b7e3b85cf8c3f35
diff --git a/dev-libs/mmtf-cpp/mmtf-cpp-1.1.0.ebuild b/dev-libs/mmtf-cpp/mmtf-cpp-1.1.0.ebuild
new file mode 100644
index 000000000000..c31d0595eb2f
--- /dev/null
+++ b/dev-libs/mmtf-cpp/mmtf-cpp-1.1.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 2019-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="The pure C++ implementation of the MMTF API, decoder and encoder"
+HOMEPAGE="https://github.com/rcsb/mmtf-cpp"
+SRC_URI="https://github.com/rcsb/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+IUSE=""
+
+DEPEND="dev-libs/msgpack"
+RDEPEND="${DEPEND}"
+BDEPEND=""
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest
index 55ce29cda734..ca615f0231e1 100644
--- a/dev-libs/protobuf/Manifest
+++ b/dev-libs/protobuf/Manifest
@@ -4,9 +4,16 @@ AUX protobuf-3.16.0-protoc_input_output_files.patch 10060 BLAKE2B e91d2e60ec9a90
AUX protobuf-3.19.0-disable_no-warning-test.patch 1620 BLAKE2B e4f324ed59b2c31662cc625e9d3f1fdb20ee2a25769dbf86093e5000f73a01e11f05459989aaefeaf0414648cd52f1f1025b9d4f1423cdca4844e42e96f54836 SHA512 8c4bc72976a7eb3418b51e7a1c45b49d7ffaeb91a86f440008e6f162773b1db7afed4a6ae1d0b3510d49361c369b6552a9ba4976d104d804d825227aa7113d95
AUX protobuf-3.19.0-system_libraries.patch 7514 BLAKE2B 1ff5c226232c325ed48cf16e2c47652615c4bd1503f1be8560e7f2e8658ffefeffeef72a6baf4368f758e30a4a81d582769b61dd0b3e383c8188cd03bf409c01 SHA512 b6a58e483dbb1f6151c2f7c735fbd55f34bcf98d6370eabb425dbd96e10cb87e8dfbf5024ad8f888cb80a095bc26598aceb55d576d37166550ee62db41c51a44
AUX protobuf-3.20.1-protoc_input_output_files.patch 10066 BLAKE2B 1a5c045cc1c30ddf520ce6f68495f373a2dc4265ae3629b2e2deb6abb37935aea4c17267977442b5fe4e5b81d1c9467fddf5ca5e9045b444a4212a28e31ffab1 SHA512 7ca9fa2d602d0a11eea35e8284cd11f12e4e3ad3e6b0bba99f8e2c47a804f3f196810f0507806fb8d559c44f73b87a771f8fa9e9ce2c0acf4405f44894f2d13a
+AUX protobuf-3.20.2-protoc_input_output_files.patch 10080 BLAKE2B f52ea613b1104aa703e5e10eb5f968e33e46f05523e13fe84369a24ccbc16cecbcce3221b64b1acd624500864d224ccb59d1ce626157a0d0d77870f79ea64bd8 SHA512 dcf5dbd7be4a025d9ee96ed9be4566452ae4f946d0e1ae4c411a0dc3b7071fc156aca796497c0f2b67563a8ee884bded1a931d712cd7a3727301bbe37ec646f0
+DIST protobuf-21.8.tar.gz 5110670 BLAKE2B 3c1b0c857a86e9586481d63896341d0cb11290dbd710d87a6f7889d34f5f262abe2986a29ed19a730f8fa5df0b5c62d77a4db6aa415a72b239f7483ae8d6380c SHA512 cb17be759311e91172801add1f88fe7a0291b547170c40d2e3303f5c248570dddeade96bd48740edd628215f55269c97475e2f4c4a41c50f1018d525f52036cb
DIST protobuf-3.19.3.tar.gz 5293258 BLAKE2B c05b70ffca97f7166ea6a511a36907eed125edf1ebf17f908718221d9b851be84dfb2b1b39973f2faf35f6ade630e6ba4f9e8b91b8fbc922c5db97079323ee6e SHA512 1c003e7cbc8eae6a038f46e688b401ee202ba47f502561e909df79770f6e8b7daf3dc1ccc727e31bfb5b52cd04cb4fef7d2d2a28d650c13f396872ad4aa076c6
+DIST protobuf-3.19.6.tar.gz 5299501 BLAKE2B 3121f76b95f83c5309ce49ce296b738eff7be9d3a5093c564fbe2339fb5f3729e406f1b44bfcc05feb0d31ab63838bb4f54685017977c73a33b91215a6776072 SHA512 8f92242f2be8e1bbfba41341c87709ad91ad83b8b3e3df88bb430411541d3399295f49291fd52b50e3487b0fce33181cb4d175685fd25aac72adfaee26a612d4
DIST protobuf-3.20.1.tar.gz 5368262 BLAKE2B 1ce1aef2e4c4f3ea4863629cc75d89fe17d0c7ac0c342ac641c787456fd4a12756c2892a27ddadedc94a7201494ec84566638ce33a03cb0c867b04e9eee0edb3 SHA512 fde3eb9f13946887ddfd87df428c5615ad09aaf191e4478b24e98e5e13231feeff4e70b4ca6a2ff7d9b9b2e2c60bc1d5479526edeafa78f9a8ed3bef2e0bacb0
+DIST protobuf-3.20.3.tar.gz 5374320 BLAKE2B fb51f2a0ecf5b83235f5252051f8192ae377bb7a5e030c3f3e9435ccde25919c059830cf476e840fa6c970928a32c0075e213c9d5d4d9e3d3b24732c39a9fbfa SHA512 01d6703bdbe769a1200ee6e4ebcdcb99688ec21f576988c60d82ec36e0822820fb245fcb4ca53293143d53e666d748b5a0c6937bc659fb3cdc4cd9b05ed12a1c
+EBUILD protobuf-21.8.ebuild 4124 BLAKE2B ae66579a111e158ecb2d37f8190943c33e3f29eeb2a1806915423d88229b9f388b10a0d4baf055948344c89bfb16a7bc62f37d9acf96841d1372a18d2e95d994 SHA512 e70c0f5aecce8d0220d3a1d538c23ecbeef78539dc36f8f7f4e5a74e55b1e221a3366ed2ecad8cb300ed56a0bcf849c8eb9a5d85e386d6c1fc2e12a6db482c7f
EBUILD protobuf-3.19.3.ebuild 4138 BLAKE2B b37b99abbd41acfb2299e1a054d3c36547bdd63542ecc76d03d69344d7e89a03870eda97bba1ae6ae3284c33abdfca6930e74b6ab7109d93cd588c522d6d52f6 SHA512 2eadab6fd0f4b30338a294b69c866ff945e98f05549403484700b2e44314433736a682ab033bc4c2eb0a802934cba92567e6c9bad4d30d79a67d671f88e04591
+EBUILD protobuf-3.19.6.ebuild 4331 BLAKE2B 0672fb5ecbd4080811f6c51f18accbaa1665d2e63ba5e9d6d422531638ac17ac475ff094cb59313c8c6ea0bf232b071b875091e15e033284e9f74f35fcaf194d SHA512 7ac1389f1895200c9c6d5067b03bbd95ee428ce6cbcee334eb23ec81102b9e0c24b548b755e5c26c5afbf72603e92600ab8118504f8e9127b288d33cc0b308fe
EBUILD protobuf-3.20.1-r1.ebuild 3930 BLAKE2B 3ac2d80c6391f9147445a23fa39576ed5158bfde601f4a38f80784c9a29523c0749ec8572bd1910412bbae402237539f5ba3fa4fe5a16b188d9fbceb0babc3dc SHA512 3dfff6e4a92afb0707398ab58f00051269cbb8c70ac73ef1bfe532baa0ae59ea47fec2131f797f7fe4750929b966c2878676c235339762d8c447cdfd4bfa1c47
-EBUILD protobuf-9999.ebuild 3938 BLAKE2B 35b8a868ae096c0f74b5037051278e79ec8f0cf869b9effb038015ec11ff4775d04d13b6ffa8978066111e86d9387b23d2872ddc5991f3f9f71f11f2aebac064 SHA512 8edbd0f333611fdc9590369339cd68bff7e32a7f193c3cba72ccc3e923a970b205147accc430a4fe0df3e1edc0a0970f2857782728b82a6e78d4a631109e3849
+EBUILD protobuf-3.20.3.ebuild 4124 BLAKE2B 63f38b9330d49ae36131aa934e5b38cf87e10408370d92a59720b103ea499f00af61a4d22935ea361655349fcf6e584fdff45663b0d521bbc358d1039a1372b5 SHA512 511aad6e3a7af19a3f207657e9f9c6f20ef8c283e673d17f5ac1237f34bef615ae29b04a1461c0b743afbf9aa110007bf7fba847b2448c0eef3ba93c72fe970a
+EBUILD protobuf-9999.ebuild 4124 BLAKE2B 80612d28804cb40f5dd36e014ffc996cae88c7a29f7da51654df768c938f5f91c736c7bba53a4dd4ed80dc7de460a48aeecba695312e63c9814e244053fa1b87 SHA512 57a1305fbe4500c43cda4bb6408a43e8b9e3e9cb9c0210a9f59ed3094f2f58bbbd21818c436f091918864e682ff8314b0aa8d30cddae03efccc58a5d06ccd2f7
MISC metadata.xml 595 BLAKE2B ba1b916e26b1e53f68e660f03d2e53fea8d22db04e8241ebec3ec20fbb251c2b164cf25d5fb6118423ce7721a822ae2302aab137b0748730e9a6860bf8e65668 SHA512 785e2550621b79b6350e1a6b52ed9992610769885fb29a9e92ee45a35158cc08707a3590dfcbece9ee9a5e16e1abfb614e8186132da7b942f2761b5e6ecfa827
diff --git a/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch
new file mode 100644
index 000000000000..e4bf6858974a
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch
@@ -0,0 +1,240 @@
+https://github.com/protocolbuffers/protobuf/pull/235
+
+--- a/src/google/protobuf/compiler/command_line_interface.cc
++++ b/src/google/protobuf/compiler/command_line_interface.cc
+@@ -1112,6 +1112,28 @@
+ }
+
+ if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) {
++ bool success = false;
++ int in_fd = STDIN_FILENO;
++ int out_fd = STDOUT_FILENO;
++
++ if (!protobuf_in_path_.empty()) {
++ in_fd = open(protobuf_in_path_.c_str(), O_RDONLY);
++ if (in_fd == -1) {
++ std::cerr << protobuf_in_path_ << ": error: failed to open file." << std::endl;
++ return 1;
++ }
++ }
++ if (!protobuf_out_path_.empty()) {
++ out_fd = open(protobuf_out_path_.c_str(),
++ O_WRONLY | O_CREAT | O_TRUNC,
++ 0644);
++ if (out_fd == -1) {
++ std::cerr << protobuf_out_path_ << ": error: failed to open file." << std::endl;
++ close(in_fd);
++ return 1;
++ }
++ }
++
+ if (codec_type_.empty()) {
+ // HACK: Define an EmptyMessage type to use for decoding.
+ DescriptorPool pool;
+@@ -1120,13 +1142,20 @@
+ file.add_message_type()->set_name("EmptyMessage");
+ GOOGLE_CHECK(pool.BuildFile(file) != nullptr);
+ codec_type_ = "EmptyMessage";
+- if (!EncodeOrDecode(&pool)) {
+- return 1;
+- }
++ success = EncodeOrDecode(&pool, in_fd, out_fd);
+ } else {
+- if (!EncodeOrDecode(descriptor_pool.get())) {
+- return 1;
+- }
++ success = EncodeOrDecode(descriptor_pool.get(), in_fd, out_fd);
++ }
++
++ if (in_fd != STDIN_FILENO) {
++ close(in_fd);
++ }
++ if (out_fd != STDOUT_FILENO) {
++ close(out_fd);
++ }
++
++ if (!success) {
++ return 1;
+ }
+ }
+
+@@ -1165,6 +1194,11 @@
+ for (int i = 0; i < proto_path_.size(); i++) {
+ source_tree->MapPath(proto_path_[i].first, proto_path_[i].second);
+ }
++ if (mode_ == MODE_COMPILE &&
++ (!protobuf_in_path_.empty() || !protobuf_out_path_.empty())) {
++ std::cerr << "--protobuf_in and --protobuf_out are only valid with "
++ << "decode operations. Ignoring.";
++ }
+
+ // Map input files to virtual paths if possible.
+ if (!MakeInputsBeProtoPathRelative(source_tree, fallback_database)) {
+@@ -1888,6 +1922,12 @@
+ } else if (name == "--deterministic_output") {
+ deterministic_output_ = true;
+
++ } else if (name == "--protobuf_in") {
++ protobuf_in_path_ = value;
++
++ } else if (name == "--protobuf_out") {
++ protobuf_out_path_ = value;
++
+ } else if (name == "--error_format") {
+ if (value == "gcc") {
+ error_format_ = ERROR_FORMAT_GCC;
+@@ -2021,22 +2061,38 @@
+ --version Show version info and exit.
+ -h, --help Show this text and exit.
+ --encode=MESSAGE_TYPE Read a text-format message of the given type
+- from standard input and write it in binary
+- to standard output. The message type must
++ from input protobuf file and write it in binary
++ to output protobuf file. The message type must
+ be defined in PROTO_FILES or their imports.
++ The input/output protobuf files are specified
++ using the --protobuf_in and --protobuf_out
++ command line flags.
+ --deterministic_output When using --encode, ensure map fields are
+ deterministically ordered. Note that this order
+ is not canonical, and changes across builds or
+ releases of protoc.
+ --decode=MESSAGE_TYPE Read a binary message of the given type from
+- standard input and write it in text format
+- to standard output. The message type must
++ input protobuf file and write it in text format
++ to output protobuf file. The message type must
+ be defined in PROTO_FILES or their imports.
++ The input/output protobuf files are specified
++ using the --protobuf_in and --protobuf_out
++ command line flags.
+ --decode_raw Read an arbitrary protocol message from
+- standard input and write the raw tag/value
+- pairs in text format to standard output. No
++ input protobuf file and write the raw tag/value
++ pairs in text format to output protobuf file. No
+ PROTO_FILES should be given when using this
+- flag.
++ flag. The input/output protobuf files are
++ specified using the --protobuf_in and
++ --protobuf_out command line flags.
++ --protobuf_in=FILE Absolute path to the protobuf file from which
++ input of encoding/decoding operation will be
++ read. If omitted, input will be read from
++ standard input.
++ --protobuf_out=FILE Absolute path to the protobuf file to which
++ output of encoding/decoding operation will be
++ written. If omitted, output will be written to
++ standard output.
+ --descriptor_set_in=FILES Specifies a delimited list of FILES
+ each containing a FileDescriptorSet (a
+ protocol buffer defined in descriptor.proto).
+@@ -2347,7 +2403,9 @@
+ return true;
+ }
+
+-bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool) {
++bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool,
++ int in_fd,
++ int out_fd) {
+ // Look up the type.
+ const Descriptor* type = pool->FindMessageTypeByName(codec_type_);
+ if (type == nullptr) {
+@@ -2359,15 +2417,15 @@
+ std::unique_ptr<Message> message(dynamic_factory.GetPrototype(type)->New());
+
+ if (mode_ == MODE_ENCODE) {
+- SetFdToTextMode(STDIN_FILENO);
+- SetFdToBinaryMode(STDOUT_FILENO);
++ SetFdToTextMode(in_fd);
++ SetFdToBinaryMode(out_fd);
+ } else {
+- SetFdToBinaryMode(STDIN_FILENO);
+- SetFdToTextMode(STDOUT_FILENO);
++ SetFdToBinaryMode(in_fd);
++ SetFdToTextMode(out_fd);
+ }
+
+- io::FileInputStream in(STDIN_FILENO);
+- io::FileOutputStream out(STDOUT_FILENO);
++ io::FileInputStream in(in_fd);
++ io::FileOutputStream out(out_fd);
+
+ if (mode_ == MODE_ENCODE) {
+ // Input is text.
+--- a/src/google/protobuf/compiler/command_line_interface.h
++++ b/src/google/protobuf/compiler/command_line_interface.h
+@@ -294,7 +294,9 @@
+ GeneratorContext* generator_context, std::string* error);
+
+ // Implements --encode and --decode.
+- bool EncodeOrDecode(const DescriptorPool* pool);
++ bool EncodeOrDecode(const DescriptorPool* pool,
++ int in_fd,
++ int out_fd);
+
+ // Implements the --descriptor_set_out option.
+ bool WriteDescriptorSet(
+@@ -429,6 +431,13 @@
+ // parsed FileDescriptorSets to be used for loading protos. Otherwise, empty.
+ std::vector<std::string> descriptor_set_in_names_;
+
++ // When using --encode / --decode / --decode_raw absolute path to the output
++ // file. (Empty string indicates write to STDOUT).
++ std::string protobuf_out_path_;
++ // When using --encode / --decode / --decode_raw, absolute path to the input
++ // file. (Empty string indicates read from STDIN).
++ std::string protobuf_in_path_;
++
+ // If --descriptor_set_out was given, this is the filename to which the
+ // FileDescriptorSet should be written. Otherwise, empty.
+ std::string descriptor_set_out_name_;
+--- a/src/google/protobuf/compiler/command_line_interface_unittest.cc
++++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc
+@@ -99,7 +99,7 @@
+ void SetUp() override;
+ void TearDown() override;
+
+- // Runs the CommandLineInterface with the given command line. The
++ // Run the CommandLineInterface with the given command line. The
+ // command is automatically split on spaces, and the string "$tmpdir"
+ // is replaced with TestTempDir().
+ void Run(const std::string& command);
+@@ -2626,6 +2626,17 @@
+ std::string::npos);
+ }
+
++ void ExpectBinaryFilesMatch(const std::string &expected_file,
++ const std::string &actual_file) {
++ std::string expected_output, actual_output;
++ ASSERT_TRUE(File::ReadFileToString(expected_file, &expected_output));
++ ASSERT_TRUE(File::ReadFileToString(actual_file, &actual_output));
++
++ // Don't use EXPECT_EQ because we don't want to print raw binary data to
++ // stdout on failure.
++ EXPECT_TRUE(expected_output == actual_output);
++ }
++
+ private:
+ void WriteUnittestProtoDescriptorSet() {
+ unittest_proto_descriptor_set_filename_ =
+@@ -2749,6 +2760,19 @@
+ "Can only use --deterministic_output with --encode.\n");
+ }
+
++TEST_P(EncodeDecodeTest, RedirectInputOutput) {
++ std::string out_file = TestTempDir() + "/golden_message_out.pbf";
++ EXPECT_TRUE(
++ Run(TestUtil::MaybeTranslatePath("net/proto2/internal/unittest.proto") +
++ " --encode=protobuf_unittest.TestAllTypes" +
++ " --protobuf_in=" + TestUtil::GetTestDataPath(
++ "net/proto2/internal/"
++ "testdata/text_format_unittest_data_oneof_implemented.txt") +
++ " --protobuf_out=" + out_file));
++ ExpectBinaryFilesMatch(out_file, TestUtil::GetTestDataPath(
++ "net/proto2/internal/testdata/golden_message_oneof_implemented"));
++}
++
+ INSTANTIATE_TEST_SUITE_P(FileDescriptorSetSource, EncodeDecodeTest,
+ testing::Values(PROTO_PATH, DESCRIPTOR_SET_IN));
+ } // anonymous namespace
diff --git a/dev-libs/protobuf/protobuf-21.8.ebuild b/dev-libs/protobuf/protobuf-21.8.ebuild
new file mode 100644
index 000000000000..523c763c265c
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-21.8.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+else
+ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/32"
+IUSE="emacs examples static-libs test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+RDEPEND="emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
+ "${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
+ "${FILESDIR}/${PN}-3.20.2-protoc_input_output_files.patch"
+)
+
+DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
+
+src_prepare() {
+ default
+
+ # https://github.com/protocolbuffers/protobuf/issues/7413
+ sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8082
+ sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8459
+ sed \
+ -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -i src/google/protobuf/arena_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8460
+ sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/9433
+ sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
+
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local options=(
+ $(use_enable static-libs static)
+ $(use_with zlib)
+ )
+
+ if tc-is-cross-compiler; then
+ # Build system uses protoc when building, so protoc copy runnable on host is needed.
+ mkdir -p "${WORKDIR}/build" || die
+ pushd "${WORKDIR}/build" > /dev/null || die
+ ECONF_SOURCE="${S}" econf_build "${options[@]}"
+ options+=(--with-protoc="$(pwd)/src/protoc")
+ popd > /dev/null || die
+ fi
+
+ ECONF_SOURCE="${S}" econf "${options[@]}"
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+multilib_src_compile() {
+ if tc-is-cross-compiler; then
+ emake -C "${WORKDIR}/build/src" protoc
+ fi
+
+ default
+}
+
+multilib_src_test() {
+ emake check
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+
+ if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
+ eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
+ die "Please update SLOT variable"
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins editors/proto.vim
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/proto.vim"
+
+ if use emacs; then
+ elisp-install ${PN} editors/protobuf-mode.el*
+ elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
+ fi
+
+ if use examples; then
+ DOCS+=(examples)
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-libs/protobuf/protobuf-3.19.6.ebuild b/dev-libs/protobuf/protobuf-3.19.6.ebuild
new file mode 100644
index 000000000000..8784499c1fd7
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-3.19.6.ebuild
@@ -0,0 +1,151 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+else
+ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/30"
+IUSE="emacs examples static-libs test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+RDEPEND="emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
+ "${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
+ "${FILESDIR}/${PN}-3.16.0-protoc_input_output_files.patch"
+)
+
+DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
+
+src_prepare() {
+ default
+
+ # https://github.com/protocolbuffers/protobuf/issues/7413
+ sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8082
+ sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8459
+ sed \
+ -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -i src/google/protobuf/arena_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8460
+ sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/9392
+ sed -e "s/^AC_PROG_OBJC$/AS_CASE([\$target_os], [darwin*], [AC_PROG_OBJC], [AM_CONDITIONAL([am__fastdepOBJC], [false])])/" -i configure.ac || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/9433
+ sed -e "/^[[:space:]]*static_assert(alignof(T) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
+
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local options=(
+ $(use_enable static-libs static)
+ $(use_with zlib)
+ )
+
+ if tc-is-cross-compiler; then
+ # Build system uses protoc when building, so protoc copy runnable on host is needed.
+ mkdir -p "${WORKDIR}/build" || die
+ pushd "${WORKDIR}/build" > /dev/null || die
+ ECONF_SOURCE="${S}" econf_build "${options[@]}"
+ options+=(--with-protoc="$(pwd)/src/protoc")
+ popd > /dev/null || die
+ fi
+
+ ECONF_SOURCE="${S}" econf "${options[@]}"
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+multilib_src_compile() {
+ if tc-is-cross-compiler; then
+ emake -C "${WORKDIR}/build/src" protoc
+ fi
+
+ default
+}
+
+multilib_src_test() {
+ emake check
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+
+ if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
+ eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
+ die "Please update SLOT variable"
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins editors/proto.vim
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/proto.vim"
+
+ if use emacs; then
+ elisp-install ${PN} editors/protobuf-mode.el*
+ elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
+ fi
+
+ if use examples; then
+ DOCS+=(examples)
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-libs/protobuf/protobuf-3.20.3.ebuild b/dev-libs/protobuf/protobuf-3.20.3.ebuild
new file mode 100644
index 000000000000..cade7f688a49
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-3.20.3.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2008-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
+
+if [[ "${PV}" == *9999 ]]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
+ EGIT_SUBMODULES=()
+else
+ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+fi
+
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
+LICENSE="BSD"
+SLOT="0/31"
+IUSE="emacs examples static-libs test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="emacs? ( app-editors/emacs:* )"
+DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+RDEPEND="emacs? ( app-editors/emacs:* )
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch"
+ "${FILESDIR}/${PN}-3.19.0-system_libraries.patch"
+ "${FILESDIR}/${PN}-3.20.2-protoc_input_output_files.patch"
+)
+
+DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md)
+
+src_prepare() {
+ default
+
+ # https://github.com/protocolbuffers/protobuf/issues/7413
+ sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8082
+ sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8459
+ sed \
+ -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \
+ -i src/google/protobuf/arena_unittest.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/8460
+ sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die
+
+ # https://github.com/protocolbuffers/protobuf/issues/9433
+ sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI
+
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local options=(
+ $(use_enable static-libs static)
+ $(use_with zlib)
+ )
+
+ if tc-is-cross-compiler; then
+ # Build system uses protoc when building, so protoc copy runnable on host is needed.
+ mkdir -p "${WORKDIR}/build" || die
+ pushd "${WORKDIR}/build" > /dev/null || die
+ ECONF_SOURCE="${S}" econf_build "${options[@]}"
+ options+=(--with-protoc="$(pwd)/src/protoc")
+ popd > /dev/null || die
+ fi
+
+ ECONF_SOURCE="${S}" econf "${options[@]}"
+}
+
+src_compile() {
+ multilib-minimal_src_compile
+
+ if use emacs; then
+ elisp-compile editors/protobuf-mode.el
+ fi
+}
+
+multilib_src_compile() {
+ if tc-is-cross-compiler; then
+ emake -C "${WORKDIR}/build/src" protoc
+ fi
+
+ default
+}
+
+multilib_src_test() {
+ emake check
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+
+ if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
+ eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
+ die "Please update SLOT variable"
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins editors/proto.vim
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/proto.vim"
+
+ if use emacs; then
+ elisp-install ${PN} editors/protobuf-mode.el*
+ elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el"
+ fi
+
+ if use examples; then
+ DOCS+=(examples)
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/dev-libs/protobuf/protobuf-9999.ebuild b/dev-libs/protobuf/protobuf-9999.ebuild
index 0e620717ec44..9f84c789877f 100644
--- a/dev-libs/protobuf/protobuf-9999.ebuild
+++ b/dev-libs/protobuf/protobuf-9999.ebuild
@@ -5,24 +5,23 @@ EAPI=8
inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs
-if [[ "${PV}" == "9999" ]]; then
+if [[ "${PV}" == *9999 ]]; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf"
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git"
EGIT_SUBMODULES=()
-fi
-
-DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
-HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf"
-if [[ "${PV}" == "9999" ]]; then
- SRC_URI=""
else
- SRC_URI="https://github.com/protocolbuffers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
fi
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data"
+HOMEPAGE="
+ https://developers.google.com/protocol-buffers/
+"
+
LICENSE="BSD"
-SLOT="0/31"
+SLOT="0/32"
IUSE="emacs examples static-libs test zlib"
RESTRICT="!test? ( test )"
@@ -116,6 +115,12 @@ multilib_src_test() {
multilib_src_install_all() {
find "${ED}" -name "*.la" -delete || die
+ if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then
+ eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
+ die "Please update SLOT variable"
+ fi
+
insinto /usr/share/vim/vimfiles/syntax
doins editors/proto.vim
insinto /usr/share/vim/vimfiles/ftdetect