1 |
commit: 322ac2dc68fbc79b20ad910a8d8c955c41b4e54d |
2 |
Author: Thibaud CANALE <thican <AT> thican <DOT> net> |
3 |
AuthorDate: Thu Oct 27 18:26:55 2022 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Oct 30 22:04:48 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=322ac2dc |
7 |
|
8 |
dev-libs/protobuf: add 21.9 |
9 |
|
10 |
Bug: https://bugs.gentoo.org/878467 |
11 |
|
12 |
Signed-off-by: Thibaud CANALE <thican <AT> thican.net> |
13 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
14 |
|
15 |
dev-libs/protobuf/Manifest | 1 + |
16 |
dev-libs/protobuf/protobuf-21.9.ebuild | 148 +++++++++++++++++++++++++++++++++ |
17 |
2 files changed, 149 insertions(+) |
18 |
|
19 |
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest |
20 |
index 74313749d43f..5dd5ef74895c 100644 |
21 |
--- a/dev-libs/protobuf/Manifest |
22 |
+++ b/dev-libs/protobuf/Manifest |
23 |
@@ -1,4 +1,5 @@ |
24 |
DIST protobuf-21.8.tar.gz 5110670 BLAKE2B 3c1b0c857a86e9586481d63896341d0cb11290dbd710d87a6f7889d34f5f262abe2986a29ed19a730f8fa5df0b5c62d77a4db6aa415a72b239f7483ae8d6380c SHA512 cb17be759311e91172801add1f88fe7a0291b547170c40d2e3303f5c248570dddeade96bd48740edd628215f55269c97475e2f4c4a41c50f1018d525f52036cb |
25 |
+DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1 |
26 |
DIST protobuf-3.19.3.tar.gz 5293258 BLAKE2B c05b70ffca97f7166ea6a511a36907eed125edf1ebf17f908718221d9b851be84dfb2b1b39973f2faf35f6ade630e6ba4f9e8b91b8fbc922c5db97079323ee6e SHA512 1c003e7cbc8eae6a038f46e688b401ee202ba47f502561e909df79770f6e8b7daf3dc1ccc727e31bfb5b52cd04cb4fef7d2d2a28d650c13f396872ad4aa076c6 |
27 |
DIST protobuf-3.19.6.tar.gz 5299501 BLAKE2B 3121f76b95f83c5309ce49ce296b738eff7be9d3a5093c564fbe2339fb5f3729e406f1b44bfcc05feb0d31ab63838bb4f54685017977c73a33b91215a6776072 SHA512 8f92242f2be8e1bbfba41341c87709ad91ad83b8b3e3df88bb430411541d3399295f49291fd52b50e3487b0fce33181cb4d175685fd25aac72adfaee26a612d4 |
28 |
DIST protobuf-3.20.1.tar.gz 5368262 BLAKE2B 1ce1aef2e4c4f3ea4863629cc75d89fe17d0c7ac0c342ac641c787456fd4a12756c2892a27ddadedc94a7201494ec84566638ce33a03cb0c867b04e9eee0edb3 SHA512 fde3eb9f13946887ddfd87df428c5615ad09aaf191e4478b24e98e5e13231feeff4e70b4ca6a2ff7d9b9b2e2c60bc1d5479526edeafa78f9a8ed3bef2e0bacb0 |
29 |
|
30 |
diff --git a/dev-libs/protobuf/protobuf-21.9.ebuild b/dev-libs/protobuf/protobuf-21.9.ebuild |
31 |
new file mode 100644 |
32 |
index 000000000000..523c763c265c |
33 |
--- /dev/null |
34 |
+++ b/dev-libs/protobuf/protobuf-21.9.ebuild |
35 |
@@ -0,0 +1,148 @@ |
36 |
+# Copyright 2008-2022 Gentoo Authors |
37 |
+# Distributed under the terms of the GNU General Public License v2 |
38 |
+ |
39 |
+EAPI=8 |
40 |
+ |
41 |
+inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs |
42 |
+ |
43 |
+if [[ "${PV}" == *9999 ]]; then |
44 |
+ inherit git-r3 |
45 |
+ |
46 |
+ EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" |
47 |
+ EGIT_SUBMODULES=() |
48 |
+else |
49 |
+ SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
50 |
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" |
51 |
+fi |
52 |
+ |
53 |
+DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" |
54 |
+HOMEPAGE=" |
55 |
+ https://developers.google.com/protocol-buffers/ |
56 |
+" |
57 |
+ |
58 |
+LICENSE="BSD" |
59 |
+SLOT="0/32" |
60 |
+IUSE="emacs examples static-libs test zlib" |
61 |
+RESTRICT="!test? ( test )" |
62 |
+ |
63 |
+BDEPEND="emacs? ( app-editors/emacs:* )" |
64 |
+DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) |
65 |
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" |
66 |
+RDEPEND="emacs? ( app-editors/emacs:* ) |
67 |
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" |
68 |
+ |
69 |
+PATCHES=( |
70 |
+ "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch" |
71 |
+ "${FILESDIR}/${PN}-3.19.0-system_libraries.patch" |
72 |
+ "${FILESDIR}/${PN}-3.20.2-protoc_input_output_files.patch" |
73 |
+) |
74 |
+ |
75 |
+DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md) |
76 |
+ |
77 |
+src_prepare() { |
78 |
+ default |
79 |
+ |
80 |
+ # https://github.com/protocolbuffers/protobuf/issues/7413 |
81 |
+ sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die |
82 |
+ |
83 |
+ # https://github.com/protocolbuffers/protobuf/issues/8082 |
84 |
+ sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die |
85 |
+ |
86 |
+ # https://github.com/protocolbuffers/protobuf/issues/8459 |
87 |
+ sed \ |
88 |
+ -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ |
89 |
+ -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ |
90 |
+ -i src/google/protobuf/arena_unittest.cc || die |
91 |
+ |
92 |
+ # https://github.com/protocolbuffers/protobuf/issues/8460 |
93 |
+ sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die |
94 |
+ |
95 |
+ # https://github.com/protocolbuffers/protobuf/issues/9433 |
96 |
+ sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die |
97 |
+ |
98 |
+ eautoreconf |
99 |
+} |
100 |
+ |
101 |
+src_configure() { |
102 |
+ append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI |
103 |
+ |
104 |
+ if tc-ld-is-gold; then |
105 |
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 |
106 |
+ tc-ld-disable-gold |
107 |
+ fi |
108 |
+ |
109 |
+ multilib-minimal_src_configure |
110 |
+} |
111 |
+ |
112 |
+multilib_src_configure() { |
113 |
+ local options=( |
114 |
+ $(use_enable static-libs static) |
115 |
+ $(use_with zlib) |
116 |
+ ) |
117 |
+ |
118 |
+ if tc-is-cross-compiler; then |
119 |
+ # Build system uses protoc when building, so protoc copy runnable on host is needed. |
120 |
+ mkdir -p "${WORKDIR}/build" || die |
121 |
+ pushd "${WORKDIR}/build" > /dev/null || die |
122 |
+ ECONF_SOURCE="${S}" econf_build "${options[@]}" |
123 |
+ options+=(--with-protoc="$(pwd)/src/protoc") |
124 |
+ popd > /dev/null || die |
125 |
+ fi |
126 |
+ |
127 |
+ ECONF_SOURCE="${S}" econf "${options[@]}" |
128 |
+} |
129 |
+ |
130 |
+src_compile() { |
131 |
+ multilib-minimal_src_compile |
132 |
+ |
133 |
+ if use emacs; then |
134 |
+ elisp-compile editors/protobuf-mode.el |
135 |
+ fi |
136 |
+} |
137 |
+ |
138 |
+multilib_src_compile() { |
139 |
+ if tc-is-cross-compiler; then |
140 |
+ emake -C "${WORKDIR}/build/src" protoc |
141 |
+ fi |
142 |
+ |
143 |
+ default |
144 |
+} |
145 |
+ |
146 |
+multilib_src_test() { |
147 |
+ emake check |
148 |
+} |
149 |
+ |
150 |
+multilib_src_install_all() { |
151 |
+ find "${ED}" -name "*.la" -delete || die |
152 |
+ |
153 |
+ if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then |
154 |
+ eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ |
155 |
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" |
156 |
+ die "Please update SLOT variable" |
157 |
+ fi |
158 |
+ |
159 |
+ insinto /usr/share/vim/vimfiles/syntax |
160 |
+ doins editors/proto.vim |
161 |
+ insinto /usr/share/vim/vimfiles/ftdetect |
162 |
+ doins "${FILESDIR}/proto.vim" |
163 |
+ |
164 |
+ if use emacs; then |
165 |
+ elisp-install ${PN} editors/protobuf-mode.el* |
166 |
+ elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" |
167 |
+ fi |
168 |
+ |
169 |
+ if use examples; then |
170 |
+ DOCS+=(examples) |
171 |
+ docompress -x /usr/share/doc/${PF}/examples |
172 |
+ fi |
173 |
+ |
174 |
+ einstalldocs |
175 |
+} |
176 |
+ |
177 |
+pkg_postinst() { |
178 |
+ use emacs && elisp-site-regen |
179 |
+} |
180 |
+ |
181 |
+pkg_postrm() { |
182 |
+ use emacs && elisp-site-regen |
183 |
+} |