Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/bpftrace/, dev-util/bpftrace/files/
Date: Tue, 26 Oct 2021 17:53:19
Message-Id: 1635270779.3a6dd727b27797569f9e9a9156691fe9487f3dcc.chutzpah@gentoo
1 commit: 3a6dd727b27797569f9e9a9156691fe9487f3dcc
2 Author: Patrick McLean <patrick.mclean <AT> sony <DOT> com>
3 AuthorDate: Tue Oct 26 17:52:59 2021 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Tue Oct 26 17:52:59 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a6dd727
7
8 dev-util/bpftrace-0.14.0: Version bump
9
10 Copyright: Sony Interactive Entertainment Inc.
11 Package-Manager: Portage-3.0.28, Repoman-3.0.3
12 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
13
14 dev-util/bpftrace/Manifest | 1 +
15 dev-util/bpftrace/bpftrace-0.14.0.ebuild | 98 +++++++++++
16 .../files/bpftrace-0.14.0-dont-compress-man.patch | 45 +++++
17 .../files/bpftrace-0.14.0-install-libs.patch | 192 +++++++++++++++++++++
18 4 files changed, 336 insertions(+)
19
20 diff --git a/dev-util/bpftrace/Manifest b/dev-util/bpftrace/Manifest
21 index 6f80ffa13ad..62e26ac7c80 100644
22 --- a/dev-util/bpftrace/Manifest
23 +++ b/dev-util/bpftrace/Manifest
24 @@ -1,2 +1,3 @@
25 DIST bpftrace-0.12.1.tar.gz 938043 BLAKE2B 3599c21d2381265ab5a7a3c0bf142dc7f79acb66fbb4f54b4100d042c21fc3c9e86297522bfe46f82ad5edbc2203314a6b02ff7cc07552c778b0726e681cb993 SHA512 a578499668bd2eb7342689b6c0ef3db6ca263a971d8e6f1b9a68c502c27170d24ede212a0fc2a72263e72aff58924f488a5c80d447397503a08512dc47b63345
26 DIST bpftrace-0.13.0.tar.gz 952412 BLAKE2B 8e3f6f28b0c652e2257e1a970b80b87ba5ac5e94dc26719bffe16a0bbff48efc2b9ab5bc03e5fe4b764f5c9c3df16039d931f1f13c1f14327880838a373edacc SHA512 16b3f11c365cc7e306045a5cb6bcf6c66b92d746884f6587ce7cc4c76841b284757bff7b38b9838eb3db129e996e4f1b13afec34da57981362dadef8460816d0
27 +DIST bpftrace-0.14.0.tar.gz 991314 BLAKE2B 3222068d7f84c13f736197cef2d188fa31a25db6bd266afe5cbacb1c062155b5ebd5d0310fbad56c15574a795766a33b12624f0252b0bc0677bf05324f414df5 SHA512 78f2d9a4d54c0dda1947b924a828777b402befc3a05031b609da4d256907df1e64f946454a9be7317449f49706f02a881febc4e63d2ef2f4e76924ea19e36ddb
28
29 diff --git a/dev-util/bpftrace/bpftrace-0.14.0.ebuild b/dev-util/bpftrace/bpftrace-0.14.0.ebuild
30 new file mode 100644
31 index 00000000000..483f341c490
32 --- /dev/null
33 +++ b/dev-util/bpftrace/bpftrace-0.14.0.ebuild
34 @@ -0,0 +1,98 @@
35 +# Copyright 2019-2021 Gentoo Authors
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI=7
39 +
40 +inherit toolchain-funcs llvm linux-info cmake
41 +
42 +DESCRIPTION="High-level tracing language for eBPF"
43 +HOMEPAGE="https://github.com/iovisor/bpftrace"
44 +
45 +if [[ ${PV} =~ 9{4,} ]]; then
46 + inherit git-r3
47 + EGIT_REPO_URI="https://github.com/iovisor/${PN}"
48 + BDEPEND=""
49 +else
50 + MY_PV="${PV//_/}"
51 + SRC_URI="https://github.com/iovisor/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
52 + KEYWORDS="~amd64 ~x86"
53 + BDEPEND="app-arch/xz-utils "
54 +fi
55 +
56 +LICENSE="Apache-2.0"
57 +SLOT="0"
58 +IUSE="fuzzing test"
59 +
60 +COMMON_DEPEND="
61 + dev-libs/libbpf:=
62 + >=dev-util/bcc-0.13.0:=
63 + dev-util/systemtap
64 + >=sys-devel/llvm-6:=[llvm_targets_BPF(+)]
65 + <=sys-devel/llvm-13:=[llvm_targets_BPF(+)]
66 + <=sys-devel/clang-13:=
67 + sys-libs/binutils-libs:=
68 + virtual/libelf
69 +"
70 +DEPEND="
71 + ${COMMON_DEPEND}
72 + dev-libs/cereal:=
73 + test? ( dev-cpp/gtest )
74 +"
75 +RDEPEND="
76 + ${COMMON_DEPEND}
77 +"
78 +BDEPEND+="
79 + >=dev-util/cmake-3.8
80 + sys-devel/flex
81 + sys-devel/bison
82 +"
83 +
84 +S="${WORKDIR}/${PN}-${MY_PV:-${PV}}"
85 +QA_DT_NEEDED="/usr/lib.*/libbpftraceresources.so"
86 +
87 +PATCHES=(
88 + "${FILESDIR}/bpftrace-0.14.0-install-libs.patch"
89 + "${FILESDIR}/bpftrace-0.14.0-dont-compress-man.patch"
90 + "${FILESDIR}/bpftrace-0.11.4-old-kernels.patch"
91 + "${FILESDIR}/bpftrace-0.12.0-fuzzing-build.patch"
92 +)
93 +
94 +# lots of fixing needed
95 +RESTRICT="test"
96 +
97 +pkg_pretend() {
98 + local CONFIG_CHECK="
99 + ~BPF
100 + ~BPF_EVENTS
101 + ~BPF_JIT
102 + ~BPF_SYSCALL
103 + ~FTRACE_SYSCALLS
104 + ~HAVE_EBPF_JIT
105 + "
106 +
107 + check_extra_config
108 +}
109 +
110 +pkg_setup() {
111 + LLVM_MAX_SLOT=12 llvm_pkg_setup
112 +}
113 +
114 +src_prepare() {
115 + cmake_src_prepare
116 +}
117 +
118 +src_configure() {
119 + local -a mycmakeargs=(
120 + -DSTATIC_LINKING:BOOL=OFF
121 + -DBUILD_TESTING:BOOL=OFF
122 + -DBUILD_FUZZ:BOOL=$(usex fuzzing)
123 + -DENABLE_MAN:BOOL=OFF
124 + )
125 +
126 + cmake_src_configure
127 +}
128 +
129 +src_install() {
130 + cmake_src_install
131 + doman man/man8/*.?
132 +}
133
134 diff --git a/dev-util/bpftrace/files/bpftrace-0.14.0-dont-compress-man.patch b/dev-util/bpftrace/files/bpftrace-0.14.0-dont-compress-man.patch
135 new file mode 100644
136 index 00000000000..30f3b4a7c46
137 --- /dev/null
138 +++ b/dev-util/bpftrace/files/bpftrace-0.14.0-dont-compress-man.patch
139 @@ -0,0 +1,45 @@
140 +diff --git a/man/adoc/CMakeLists.txt b/man/adoc/CMakeLists.txt
141 +index 6f785d9d..c046b79f 100644
142 +--- a/man/adoc/CMakeLists.txt
143 ++++ b/man/adoc/CMakeLists.txt
144 +@@ -1,7 +1,5 @@
145 +-find_program(GZIP gzip REQUIRED)
146 + find_program(ASCIIDOCTOR asciidoctor REQUIRED)
147 + file(GLOB FILES *.adoc)
148 +-set(GZFILES "")
149 + foreach(FIL ${FILES})
150 + get_filename_component(NAME ${FIL} NAME_WE)
151 + set(MANPAGE_FILE ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.8)
152 +@@ -10,12 +8,6 @@ foreach(FIL ${FILES})
153 + add_custom_command(OUTPUT ${MANPAGE_FILE}
154 + COMMAND ${ASCIIDOCTOR} ${FIL} -b manpage -o - > ${MANPAGE_FILE}
155 + DEPENDS ${FIL})
156 +-
157 +- add_custom_command(OUTPUT ${GZ_MANPAGE_FILE}
158 +- COMMAND ${GZIP} -c ${MANPAGE_FILE} > ${GZ_MANPAGE_FILE}
159 +- DEPENDS ${MANPAGE_FILE})
160 +-
161 +- list(APPEND GZFILES ${GZ_MANPAGE_FILE})
162 + endforeach()
163 +-add_custom_target(adoc_man DEPENDS ${GZFILES})
164 +-install(FILES ${GZFILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8)
165 ++add_custom_target(adoc_man DEPENDS ${FILES})
166 ++install(FILES ${FILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8)
167 +diff --git a/man/man8/CMakeLists.txt b/man/man8/CMakeLists.txt
168 +index 2a316cd9..2207cf80 100644
169 +--- a/man/man8/CMakeLists.txt
170 ++++ b/man/man8/CMakeLists.txt
171 +@@ -1,12 +1,3 @@
172 +-find_program(GZIP gzip REQUIRED)
173 + file(GLOB FILES *.8)
174 +-set(GZFILES "")
175 +-foreach(FIL ${FILES})
176 +- get_filename_component(NAME ${FIL} NAME)
177 +- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz
178 +- COMMAND ${GZIP} -c ${FIL} > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz
179 +- DEPENDS ${FIL})
180 +- list(APPEND GZFILES "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz")
181 +-endforeach()
182 + add_custom_target(man_man DEPENDS ${GZFILES})
183 +-install(FILES ${GZFILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8)
184 ++install(FILES ${FILES} DESTINATION ${CMAKE_INSTALL_MANDIR}/man8)
185
186 diff --git a/dev-util/bpftrace/files/bpftrace-0.14.0-install-libs.patch b/dev-util/bpftrace/files/bpftrace-0.14.0-install-libs.patch
187 new file mode 100644
188 index 00000000000..00d35c6f49e
189 --- /dev/null
190 +++ b/dev-util/bpftrace/files/bpftrace-0.14.0-install-libs.patch
191 @@ -0,0 +1,192 @@
192 +diff --git a/CMakeLists.txt b/CMakeLists.txt
193 +index ea334df0..53e4dc8e 100644
194 +--- a/CMakeLists.txt
195 ++++ b/CMakeLists.txt
196 +@@ -103,9 +103,10 @@ find_package(FLEX REQUIRED)
197 + bison_target(bison_parser src/parser.yy ${CMAKE_BINARY_DIR}/parser.tab.cc VERBOSE)
198 + flex_target(flex_lexer src/lexer.l ${CMAKE_BINARY_DIR}/lex.yy.cc)
199 + add_flex_bison_dependency(flex_lexer bison_parser)
200 +-add_library(parser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
201 +-target_compile_options(parser PRIVATE "-w")
202 +-target_include_directories(parser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
203 ++add_library(bpftraceparser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
204 ++target_compile_options(bpftraceparser PRIVATE "-w")
205 ++target_include_directories(bpftraceparser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
206 ++install(TARGETS bpftraceparser LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
207 +
208 + include(CheckSymbolExists)
209 + set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
210 +diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
211 +index a95c60a1..f5c4d676 100644
212 +--- a/resources/CMakeLists.txt
213 ++++ b/resources/CMakeLists.txt
214 +@@ -1,6 +1,7 @@
215 +-add_library(resources headers.cpp)
216 ++add_library(bpftraceresources headers.cpp)
217 +
218 +-target_include_directories(resources PUBLIC ../src)
219 ++target_include_directories(bpftraceresources PUBLIC ../src)
220 ++install(TARGETS bpftraceresources LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
221 +
222 + function(embed_headers output)
223 + file(WRITE ${output} "#include \"headers.h\"\n\nnamespace bpftrace {\n")
224 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
225 +index 47a050e2..1bbcf882 100644
226 +--- a/src/CMakeLists.txt
227 ++++ b/src/CMakeLists.txt
228 +@@ -40,7 +40,7 @@ add_library(runtime
229 + ${BFD_DISASM_SRC}
230 + )
231 + # Ensure flex+bison outputs are built first
232 +-add_dependencies(runtime parser)
233 ++add_dependencies(runtime bpftraceparser)
234 +
235 + add_library(libbpftrace
236 + build_info.cpp
237 +@@ -57,6 +57,7 @@ add_executable(${BPFTRACE}
238 + )
239 +
240 + install(TARGETS ${BPFTRACE} DESTINATION ${CMAKE_INSTALL_BINDIR})
241 ++install(TARGETS libbpftrace LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
242 + target_link_libraries(${BPFTRACE} libbpftrace)
243 +
244 + if (BUILD_FUZZ)
245 +@@ -109,6 +110,7 @@ target_include_directories(runtime PRIVATE ${CMAKE_BINARY_DIR})
246 + target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src)
247 + target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src/ast)
248 + target_compile_definitions(runtime PRIVATE ${BPFTRACE_FLAGS})
249 ++install(TARGETS runtime LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
250 + target_compile_definitions(libbpftrace PRIVATE ${BPFTRACE_FLAGS})
251 +
252 + # Linking
253 +@@ -121,7 +123,8 @@ if(STATIC_LINKING)
254 + endif(STATIC_LINKING)
255 +
256 +
257 +-target_link_libraries(libbpftrace parser resources runtime aot ast arch cxxdemangler_llvm)
258 ++target_link_libraries(libbpftrace bpftraceparser bpftraceresources
259 ++ runtime aot bpftraceast bpftracearch cxxdemangler_llvm)
260 +
261 + if (LIBBPF_BTF_DUMP_FOUND)
262 + target_include_directories(runtime PUBLIC ${LIBBPF_INCLUDE_DIRS})
263 +diff --git a/src/aot/CMakeLists.txt b/src/aot/CMakeLists.txt
264 +index 291d53f2..308691ee 100644
265 +--- a/src/aot/CMakeLists.txt
266 ++++ b/src/aot/CMakeLists.txt
267 +@@ -10,7 +10,7 @@ if(NOT LIBBCC_BPF_CONTAINS_RUNTIME)
268 + endif()
269 +
270 + add_executable(bpftrace-aotrt aot_main.cpp)
271 +-target_link_libraries(bpftrace-aotrt aot runtime arch ast_defs cxxdemangler_stdlib)
272 ++target_link_libraries(bpftrace-aotrt aot runtime bpftracearch ast_defs cxxdemangler_stdlib)
273 + install(TARGETS bpftrace-aotrt DESTINATION ${CMAKE_INSTALL_BINDIR})
274 +
275 + # Linking
276 +@@ -27,3 +27,4 @@ if(BUILD_ASAN)
277 + target_compile_options(bpftrace-aotrt PUBLIC "-fsanitize=address")
278 + target_link_options(bpftrace-aotrt PUBLIC "-fsanitize=address")
279 + endif()
280 ++install(TARGETS aot LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
281 +diff --git a/src/arch/CMakeLists.txt b/src/arch/CMakeLists.txt
282 +index 76bb217e..4ad0f626 100644
283 +--- a/src/arch/CMakeLists.txt
284 ++++ b/src/arch/CMakeLists.txt
285 +@@ -1,15 +1,17 @@
286 + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
287 +- add_library(arch aarch64.cpp)
288 ++ add_library(bpftracearch aarch64.cpp)
289 + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR
290 + CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le")
291 +- add_library(arch ppc64.cpp)
292 ++ add_library(bpftracearch ppc64.cpp)
293 + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "s390" OR
294 + CMAKE_SYSTEM_PROCESSOR STREQUAL "s390x")
295 +- add_library(arch s390.cpp)
296 ++ add_library(bpftracearch s390.cpp)
297 + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
298 +- add_library(arch x86_64.cpp)
299 ++ add_library(bpftracearch x86_64.cpp)
300 + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips64")
301 +- add_library(arch mips64.cpp)
302 ++ add_library(bpftracearch mips64.cpp)
303 + else()
304 + message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}")
305 + endif()
306 ++
307 ++install(TARGETS bpftracearch LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
308 +diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt
309 +index 014295cd..b038aa18 100644
310 +--- a/src/ast/CMakeLists.txt
311 ++++ b/src/ast/CMakeLists.txt
312 +@@ -1,6 +1,6 @@
313 + add_library(ast_defs ast.cpp)
314 +
315 +-add_library(ast
316 ++add_library(bpftraceast
317 + async_event_types.cpp
318 + attachpoint_parser.cpp
319 + int_parser.cpp
320 +@@ -20,11 +20,12 @@ add_library(ast
321 + target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src)
322 + target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
323 + target_include_directories(ast_defs PUBLIC ${CMAKE_BINARY_DIR})
324 +-target_link_libraries(ast ast_defs arch bpforc parser)
325 ++target_link_libraries(bpftraceast ast_defs bpftracearch bpforc bpftraceparser)
326 ++install(TARGETS ast_defs LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
327 +
328 +-add_dependencies(ast_defs parser)
329 ++add_dependencies(ast_defs bpftraceparser)
330 +
331 +-target_compile_definitions(ast PRIVATE ${BPFTRACE_FLAGS})
332 ++target_compile_definitions(bpftraceast PRIVATE ${BPFTRACE_FLAGS})
333 +
334 + if (STATIC_LINKING)
335 + set(clang_libs
336 +@@ -55,11 +56,11 @@ if (STATIC_LINKING)
337 +
338 +
339 + if(EMBED_USE_LLVM)
340 +- target_link_libraries(ast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group")
341 ++ target_link_libraries(bpftraceast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group")
342 + else()
343 + llvm_map_components_to_libnames(llvm_libs ${llvm_lib_names})
344 +- target_link_libraries(ast ${clang_libs})
345 +- target_link_libraries(ast ${llvm_libs})
346 ++ target_link_libraries(bpftraceast ${clang_libs})
347 ++ target_link_libraries(bpftraceast ${llvm_libs})
348 + endif()
349 +
350 + if(STATIC_LIBC)
351 +@@ -69,13 +70,13 @@ if (STATIC_LINKING)
352 + else()
353 + find_library(found_LLVM LLVM HINTS ${LLVM_LIBRARY_DIRS})
354 + if(found_LLVM)
355 +- target_link_libraries(ast LLVM)
356 ++ target_link_libraries(bpftraceast LLVM)
357 + else()
358 + llvm_map_components_to_libnames(_llvm_libs bpfcodegen ipo irreader mcjit orcjit ${LLVM_TARGETS_TO_BUILD})
359 + llvm_expand_dependencies(llvm_libs ${_llvm_libs})
360 +- target_link_libraries(ast ${llvm_libs})
361 ++ target_link_libraries(bpftraceast ${llvm_libs})
362 + endif()
363 +- target_link_libraries(ast libclang)
364 ++ target_link_libraries(bpftraceast libclang)
365 + endif()
366 +
367 + add_subdirectory(bpforc)
368 +diff --git a/src/ast/bpforc/CMakeLists.txt b/src/ast/bpforc/CMakeLists.txt
369 +index 3f6dbefa..8ccfbb2b 100644
370 +--- a/src/ast/bpforc/CMakeLists.txt
371 ++++ b/src/ast/bpforc/CMakeLists.txt
372 +@@ -1 +1,2 @@
373 + add_library(bpforc bpforc.cpp)
374 ++install(TARGETS bpforc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
375 +diff --git a/src/cxxdemangler/CMakeLists.txt b/src/cxxdemangler/CMakeLists.txt
376 +index 04cfcdd9..5677aa4b 100644
377 +--- a/src/cxxdemangler/CMakeLists.txt
378 ++++ b/src/cxxdemangler/CMakeLists.txt
379 +@@ -1,2 +1,4 @@
380 + add_library(cxxdemangler_stdlib cxxdemangler_stdlib.cpp)
381 + add_library(cxxdemangler_llvm cxxdemangler_llvm.cpp)
382 ++install(TARGETS cxxdemangler_stdlib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
383 ++install(TARGETS cxxdemangler_llvm LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})