Gentoo Archives: gentoo-commits

From: Kurt Kanzenbach <kurt@×××××××××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: dev-libs/open62541/files/, dev-libs/open62541/
Date: Thu, 18 Aug 2022 19:00:40
Message-Id: 1660848913.bee7ebf527dc42977daccff72fe9dfc25d9b5f5b.KurtKanzenbach@gentoo
1 commit: bee7ebf527dc42977daccff72fe9dfc25d9b5f5b
2 Author: Kurt Kanzenbach <kurt <AT> kmk-computers <DOT> de>
3 AuthorDate: Thu Aug 18 18:55:13 2022 +0000
4 Commit: Kurt Kanzenbach <kurt <AT> kmk-computers <DOT> de>
5 CommitDate: Thu Aug 18 18:55:13 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=bee7ebf5
7
8 dev-libs/open62541: add 1.3.3
9
10 Signed-off-by: Kurt Kanzenbach <kurt <AT> kmk-computers.de>
11
12 dev-libs/open62541/Manifest | 1 +
13 .../files/open62541-1.3.3-disable-xdp.patch | 21 +++
14 .../open62541/files/open62541-1.3.3-tests.patch | 144 +++++++++++++++++++++
15 dev-libs/open62541/open62541-1.3.3.ebuild | 96 ++++++++++++++
16 4 files changed, 262 insertions(+)
17
18 diff --git a/dev-libs/open62541/Manifest b/dev-libs/open62541/Manifest
19 index 0c7c915b5..45df0b2ae 100644
20 --- a/dev-libs/open62541/Manifest
21 +++ b/dev-libs/open62541/Manifest
22 @@ -1 +1,2 @@
23 DIST open62541-1.3.2.tar.gz 3865664 BLAKE2B 850c0663e228acfde311168ef3e80a778085d46e6aceea0d646a3d27617810b57134ddf5334885bfd5678c21ec115c68065da5bc5dbba1a9246eb6e2ca7094df SHA512 7b1a62d20abc0b7ab14408eb8d98919223e53651de863ceab675d9bb9b88c8b76bc7dff0779cd8df878be4ef1ce2cf8ecf4b532a821eb3641460951e0a5a521e
24 +DIST open62541-1.3.3.tar.gz 3866193 BLAKE2B 543c027ceffade9a5bee3dd99a634e694fc92116ab6d5d39844243325bb48ae46108dfc50bc9350099d942ab1a81614cee9f9477436b1b831a592230ceb884cc SHA512 409c60b84791165d07a69077b51c5783dc9aef1a593b491da1807c44b51542a59b6bea8718a66c256e953aa5d0ad1c38cd08a615ed55f453df50c719a291d018
25
26 diff --git a/dev-libs/open62541/files/open62541-1.3.3-disable-xdp.patch b/dev-libs/open62541/files/open62541-1.3.3-disable-xdp.patch
27 new file mode 100644
28 index 000000000..cb5cb6e8f
29 --- /dev/null
30 +++ b/dev-libs/open62541/files/open62541-1.3.3-disable-xdp.patch
31 @@ -0,0 +1,21 @@
32 +From: Kurt Kanzenbach <kurt@×××××××××××××.de>
33 +Subject: pubsub: Disable XDP code
34 +
35 +The XDP code assumes < dev-libs/libbpf-0.0.7. Disable it.
36 +
37 +Signed-off-by: Kurt Kanzenbach <kurt@×××××××××××××.de>
38 +---
39 + plugins/ua_pubsub_ethernet.c | 2 +-
40 + 1 file changed, 1 insertion(+), 1 deletion(-)
41 +
42 +--- a/plugins/ua_pubsub_ethernet.c
43 ++++ b/plugins/ua_pubsub_ethernet.c
44 +@@ -43,7 +43,7 @@ static UA_THREAD_LOCAL UA_Byte ReceiveMs
45 + #include <linux/if_link.h>
46 +
47 + #if defined __has_include
48 +-# if __has_include(<bpf/bpf.h>) && __has_include(<bpf/libbpf.h>) && __has_include(<bpf/xsk.h>)
49 ++# if 0
50 + # define LIBBPF_EBPF
51 + /* Libbpf headers */
52 + # include <bpf/bpf.h>
53
54 diff --git a/dev-libs/open62541/files/open62541-1.3.3-tests.patch b/dev-libs/open62541/files/open62541-1.3.3-tests.patch
55 new file mode 100644
56 index 000000000..292cd73fc
57 --- /dev/null
58 +++ b/dev-libs/open62541/files/open62541-1.3.3-tests.patch
59 @@ -0,0 +1,144 @@
60 +From: Kurt Kanzenbach <kurt@×××××××××××××.de>
61 +Subject: test: Remove PubSub tests
62 +
63 +Remove PubSub tests. They don't run within portage.
64 +
65 +Signed-off-by: Kurt Kanzenbach <kurt@×××××××××××××.de>
66 +---
67 + tests/CMakeLists.txt | 125 ---------------------------------------------------
68 + 1 file changed, 125 deletions(-)
69 +
70 +--- a/tests/CMakeLists.txt
71 ++++ b/tests/CMakeLists.txt
72 +@@ -381,131 +381,6 @@ if(UA_ENABLE_DISCOVERY)
73 + add_test_valgrind(discovery ${TESTS_BINARY_DIR}/check_discovery)
74 + endif()
75 +
76 +-if(UA_ENABLE_PUBSUB)
77 +- add_executable(check_pubsub_encoding pubsub/check_pubsub_encoding.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
78 +- target_link_libraries(check_pubsub_encoding ${LIBS})
79 +- add_test_valgrind(pubsub_encoding ${TESTS_BINARY_DIR}/check_pubsub_encoding)
80 +- add_executable(check_pubsub_pds pubsub/check_pubsub_pds.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
81 +- target_link_libraries(check_pubsub_pds ${LIBS})
82 +- add_test_valgrind(pubsub_pds ${TESTS_BINARY_DIR}/check_pubsub_pds)
83 +- add_executable(check_pubsub_connection_udp pubsub/check_pubsub_connection_udp.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
84 +- target_link_libraries(check_pubsub_connection_udp ${LIBS})
85 +- add_test_valgrind(pubsub_connection_udp ${TESTS_BINARY_DIR}/check_pubsub_connection_udp)
86 +- add_executable(check_pubsub_publish pubsub/check_pubsub_publish.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
87 +- target_link_libraries(check_pubsub_publish ${LIBS})
88 +- add_test_valgrind(pubsub_publish ${TESTS_BINARY_DIR}/check_pubsub_publish)
89 +- add_executable(check_pubsub_publish_uadp pubsub/check_pubsub_publish_uadp.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
90 +- target_link_libraries(check_pubsub_publish_uadp ${LIBS})
91 +- add_test_valgrind(pubsub_publish ${TESTS_BINARY_DIR}/check_pubsub_publish_uadp)
92 +- add_executable(check_pubsub_get_state pubsub/check_pubsub_get_state.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
93 +- target_link_libraries(check_pubsub_get_state ${LIBS})
94 +- add_test_valgrind(check_pubsub_get_state ${TESTS_BINARY_DIR}/check_pubsub_get_state)
95 +-
96 +- #Link libraries for executing subscriber unit test
97 +- add_executable(check_pubsub_subscribe pubsub/check_pubsub_subscribe.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
98 +- target_link_libraries(check_pubsub_subscribe ${LIBS})
99 +- add_executable(check_pubsub_publishspeed pubsub/check_pubsub_publishspeed.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
100 +- target_link_libraries(check_pubsub_publishspeed ${LIBS})
101 +- add_test_valgrind(pubsub_publishspeed ${TESTS_BINARY_DIR}/check_pubsub_publish)
102 +- add_executable(check_pubsub_config_freeze pubsub/check_pubsub_config_freeze.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
103 +- target_link_libraries(check_pubsub_config_freeze ${LIBS})
104 +- add_test_valgrind(check_pubsub_config_freeze ${TESTS_BINARY_DIR}/check_pubsub_config_freeze)
105 +- add_executable(check_pubsub_publish_rt_levels pubsub/check_pubsub_publish_rt_levels.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
106 +- target_link_libraries(check_pubsub_publish_rt_levels ${LIBS})
107 +- add_test_valgrind(check_pubsub_publish_rt_levels ${TESTS_BINARY_DIR}/check_pubsub_publish_rt_levels)
108 +- add_executable(check_pubsub_subscribe_config_freeze pubsub/check_pubsub_subscribe_config_freeze.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
109 +- target_link_libraries(check_pubsub_subscribe_config_freeze ${LIBS})
110 +- add_test_valgrind(check_pubsub_subscribe_config_freeze ${TESTS_BINARY_DIR}/check_pubsub_subscribe_config_freeze)
111 +- add_executable(check_pubsub_subscribe_rt_levels pubsub/check_pubsub_subscribe_rt_levels.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
112 +- target_link_libraries(check_pubsub_subscribe_rt_levels ${LIBS})
113 +- add_test_valgrind(check_pubsub_subscribe_rt_levels ${TESTS_BINARY_DIR}/check_pubsub_subscribe_rt_levels)
114 +- add_executable(check_pubsub_multiple_subscribe_rt_levels pubsub/check_pubsub_multiple_subscribe_rt_levels.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
115 +- target_link_libraries(check_pubsub_multiple_subscribe_rt_levels ${LIBS})
116 +- add_test_valgrind(check_pubsub_multiple_subscribe_rt_levels ${TESTS_BINARY_DIR}/check_pubsub_multiple_subscribe_rt_levels)
117 +-
118 +- add_executable(check_pubsub_multiple_layer pubsub/check_pubsub_multiple_layer.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
119 +- target_link_libraries(check_pubsub_multiple_layer ${LIBS})
120 +- add_test_valgrind(pubsub_multiple_layer ${TESTS_BINARY_DIR}/check_pubsub_multiple_layer)
121 +-
122 +- if(UA_ENABLE_PUBSUB_ENCRYPTION)
123 +- add_executable(check_pubsub_encryption pubsub/check_pubsub_encryption.c
124 +- $<TARGET_OBJECTS:open62541-object>
125 +- $<TARGET_OBJECTS:open62541-testplugins>)
126 +- target_link_libraries(check_pubsub_encryption ${LIBS})
127 +- add_test_valgrind(check_pubsub_encryption ${TESTS_BINARY_DIR}/check_pubsub_encryption)
128 +-
129 +- add_executable(check_pubsub_encryption_aes256 pubsub/check_pubsub_encryption_aes256.c
130 +- $<TARGET_OBJECTS:open62541-object>
131 +- $<TARGET_OBJECTS:open62541-testplugins>)
132 +- target_link_libraries(check_pubsub_encryption_aes256 ${LIBS})
133 +- add_test_valgrind(check_pubsub_encryption_aes256 ${TESTS_BINARY_DIR}/check_pubsub_encryption_aes256)
134 +-
135 +- add_executable(check_pubsub_decryption pubsub/check_pubsub_decryption.c
136 +- $<TARGET_OBJECTS:open62541-object>
137 +- $<TARGET_OBJECTS:open62541-testplugins>)
138 +- target_link_libraries(check_pubsub_decryption ${LIBS})
139 +- add_test_valgrind(check_pubsub_decryption ${TESTS_BINARY_DIR}/check_pubsub_decryption)
140 +-
141 +- add_executable(check_pubsub_subscribe_encrypted pubsub/check_pubsub_subscribe_encrypted.c
142 +- $<TARGET_OBJECTS:open62541-object>
143 +- $<TARGET_OBJECTS:open62541-testplugins>)
144 +- target_link_libraries(check_pubsub_subscribe_encrypted ${LIBS})
145 +- add_test_valgrind(check_pubsub_subscribe_encrypted ${TESTS_BINARY_DIR}/check_pubsub_subscribe_encrypted)
146 +- endif()
147 +-
148 +- if (UA_ENABLE_PUBSUB_MONITORING)
149 +- add_executable(check_pubsub_subscribe_msgrcvtimeout pubsub/check_pubsub_subscribe_msgrcvtimeout.c
150 +- $<TARGET_OBJECTS:open62541-object>
151 +- $<TARGET_OBJECTS:open62541-testplugins>)
152 +- target_link_libraries(check_pubsub_subscribe_msgrcvtimeout ${LIBS})
153 +- add_test_valgrind(check_pubsub_subscribe_msgrcvtimeout ${TESTS_BINARY_DIR}/check_pubsub_subscribe_msgrcvtimeout)
154 +- endif()
155 +-
156 +- if(UA_ENABLE_PUBSUB_ETH_UADP)
157 +- add_executable(check_pubsub_connection_ethernet pubsub/check_pubsub_connection_ethernet.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
158 +- target_link_libraries(check_pubsub_connection_ethernet ${LIBS})
159 +- add_test_valgrind(pubsub_connection_ethernet ${TESTS_BINARY_DIR}/check_pubsub_connection_ethernet)
160 +- add_executable(check_pubsub_publish_ethernet pubsub/check_pubsub_publish_ethernet.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
161 +- target_link_libraries(check_pubsub_publish_ethernet ${LIBS})
162 +- add_test_valgrind(pubsub_publish_ethernet ${TESTS_BINARY_DIR}/check_pubsub_publish_ethernet)
163 +- add_executable(check_pubsub_connection_ethernet_etf pubsub/check_pubsub_connection_ethernet_etf.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
164 +- target_link_libraries(check_pubsub_connection_ethernet_etf ${LIBS})
165 +- add_test_valgrind(pubsub_connection_ethernet_etf ${TESTS_BINARY_DIR}/check_pubsub_connection_ethernet_etf)
166 +- add_executable(check_pubsub_publish_ethernet_etf pubsub/check_pubsub_publish_ethernet_etf.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
167 +- target_link_libraries(check_pubsub_publish_ethernet_etf ${LIBS})
168 +- add_test_valgrind(pubsub_publish_ethernet_etf ${TESTS_BINARY_DIR}/check_pubsub_publish_ethernet_etf)
169 +- if(LIB_BPF)
170 +- add_executable(check_pubsub_connection_xdp pubsub/check_pubsub_connection_xdp.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
171 +- target_link_libraries(check_pubsub_connection_xdp ${LIBS})
172 +- add_test_valgrind(pubsub_connection_xdp ${TESTS_BINARY_DIR}/check_pubsub_connection_xdp)
173 +- endif()
174 +- endif()
175 +-
176 +- if(UA_ENABLE_PUBSUB_INFORMATIONMODEL)
177 +- add_executable(check_pubsub_informationmodel pubsub/check_pubsub_informationmodel.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
178 +- target_link_libraries(check_pubsub_informationmodel ${LIBS})
179 +- add_test_valgrind(check_pubsub_informationmodel ${TESTS_BINARY_DIR}/check_pubsub_informationmodel)
180 +- if(UA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS)
181 +- add_executable(check_pubsub_informationmodel_methods pubsub/check_pubsub_informationmodel_methods.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
182 +- target_link_libraries(check_pubsub_informationmodel_methods ${LIBS})
183 +- add_test_valgrind(check_pubsub_informationmodel_methods ${TESTS_BINARY_DIR}/check_pubsub_informationmodel_methods)
184 +-
185 +- endif()
186 +- endif()
187 +- if(UA_ENABLE_PUBSUB_MQTT)
188 +- if(NOT WIN32)
189 +- add_executable(check_pubsub_connection_mqtt pubsub/check_pubsub_connection_mqtt.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
190 +- target_link_libraries(check_pubsub_connection_mqtt ${LIBS})
191 +- add_test_valgrind(pubsub_connection_mqtt ${TESTS_BINARY_DIR}/check_pubsub_connection_mqtt)
192 +- endif()
193 +- endif()
194 +- if(UA_ENABLE_PUBSUB_FILE_CONFIG)
195 +- add_executable(check_pubsub_configuration pubsub/check_pubsub_configuration.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
196 +- target_link_libraries(check_pubsub_configuration ${LIBS})
197 +- add_test_valgrind(pubsub_configuration ${TESTS_BINARY_DIR}/check_pubsub_configuration)
198 +- endif()
199 +-endif()
200 +-
201 + add_executable(check_server_readspeed server/check_server_readspeed.c $<TARGET_OBJECTS:open62541-object> $<TARGET_OBJECTS:open62541-testplugins>)
202 + target_link_libraries(check_server_readspeed ${LIBS})
203 + add_test_no_valgrind(server_readspeed ${TESTS_BINARY_DIR}/check_server_readspeed)
204
205 diff --git a/dev-libs/open62541/open62541-1.3.3.ebuild b/dev-libs/open62541/open62541-1.3.3.ebuild
206 new file mode 100644
207 index 000000000..7e3c2224a
208 --- /dev/null
209 +++ b/dev-libs/open62541/open62541-1.3.3.ebuild
210 @@ -0,0 +1,96 @@
211 +# Copyright 1999-2022 Gentoo Authors
212 +# Distributed under the terms of the GNU General Public License v2
213 +
214 +EAPI=8
215 +
216 +PYTHON_COMPAT=( python3_{8..10} )
217 +
218 +inherit cmake python-single-r1
219 +
220 +DESCRIPTION="Open source C implementation of OPC UA"
221 +HOMEPAGE="https://www.open62541.org/"
222 +SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
223 +
224 +LICENSE="MPL-2.0"
225 +SLOT="0"
226 +KEYWORDS="~amd64 ~arm64 ~x86"
227 +IUSE="doc encryption examples mbedtls pubsub openssl test tools"
228 +RESTRICT="!test? ( test )"
229 +
230 +REQUIRED_USE="
231 + ${PYTHON_REQUIRED_USE}
232 + encryption? ( || ( mbedtls openssl ) )
233 +"
234 +
235 +BDEPEND="
236 + ${PYTHON_DEPS}
237 + virtual/pkgconfig
238 + doc? (
239 + media-gfx/graphviz
240 + $(python_gen_cond_dep '
241 + dev-python/sphinx[${PYTHON_USEDEP}]
242 + dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
243 + ')
244 + )
245 + test? (
246 + dev-libs/check
247 + dev-util/valgrind
248 + $(python_gen_cond_dep '
249 + dev-python/subunit[${PYTHON_USEDEP}]
250 + ')
251 + )
252 +"
253 +DEPEND="
254 + mbedtls? ( net-libs/mbedtls:= )
255 + openssl? ( dev-libs/openssl:0= )
256 +"
257 +RDEPEND="
258 + ${PYTHON_DEPS}
259 + ${DEPEND}
260 +"
261 +
262 +PATCHES=(
263 + "${FILESDIR}/${P}-disable-xdp.patch"
264 + "${FILESDIR}/${P}-tests.patch"
265 +)
266 +
267 +src_configure() {
268 + local mycmakeargs=(
269 + -DBUILD_SHARED_LIBS=ON
270 + -DOPEN62541_VERSION=v${PV}
271 + -DUA_BUILD_EXAMPLES=OFF
272 + -DUA_BUILD_TOOLS=$(usex tools)
273 + -DUA_BUILD_UNIT_TESTS=$(usex test)
274 + -DUA_ENABLE_PUBSUB=$(usex pubsub)
275 + -DUA_ENABLE_PUBSUB_ETH_UADP=$(usex pubsub)
276 + -DUA_FORCE_WERROR=OFF
277 + )
278 +
279 + if use encryption; then
280 + use mbedtls && mycmakeargs+=(-DUA_ENABLE_ENCRYPTION=MBEDTLS)
281 + use openssl && mycmakeargs+=(-DUA_ENABLE_ENCRYPTION=OPENSSL)
282 + fi
283 +
284 + cmake_src_configure
285 +}
286 +
287 +src_compile() {
288 + cmake_src_compile
289 + use doc && cmake_build doc
290 +}
291 +
292 +src_install() {
293 + use doc && local HTML_DOCS=( "${WORKDIR}"/${P}_build/doc/. )
294 + cmake_src_install
295 +
296 + if use examples; then
297 + docompress -x /usr/share/doc/${PF}/examples
298 + dodoc -r examples/
299 + fi
300 +
301 + python_fix_shebang "${ED}"
302 +}
303 +
304 +src_test() {
305 + cmake_src_test -j1
306 +}