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/files/, dev-util/bpftrace/
Date: Tue, 12 Mar 2019 02:16:24
Message-Id: 1552356959.8ba9e3e616b62ef293d2223b347e2cea6e25b1eb.chutzpah@gentoo
1 commit: 8ba9e3e616b62ef293d2223b347e2cea6e25b1eb
2 Author: Patrick McLean <patrick.mclean <AT> sony <DOT> com>
3 AuthorDate: Tue Mar 12 02:15:59 2019 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 12 02:15:59 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ba9e3e6
7
8 dev-util/bpftrace: New package
9
10 Copyright: Sony Interactive Entertainment Inc.
11 Package-Manager: Portage-2.3.62, Repoman-2.3.12
12 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
13
14 dev-util/bpftrace/Manifest | 1 +
15 dev-util/bpftrace/bpftrace-0.9_pre20190311.ebuild | 58 +++++++++++
16 dev-util/bpftrace/bpftrace-9999.ebuild | 58 +++++++++++
17 .../files/bpftrace-0.9_pre20190311-bcc-0.9.patch | 13 +++
18 .../bpftrace-0.9_pre20190311-install-libs.patch | 111 +++++++++++++++++++++
19 dev-util/bpftrace/files/bpftrace-mandir.patch | 22 ++++
20 dev-util/bpftrace/metadata.xml | 10 ++
21 7 files changed, 273 insertions(+)
22
23 diff --git a/dev-util/bpftrace/Manifest b/dev-util/bpftrace/Manifest
24 new file mode 100644
25 index 00000000000..fbf71324c93
26 --- /dev/null
27 +++ b/dev-util/bpftrace/Manifest
28 @@ -0,0 +1 @@
29 +DIST bpftrace-0.9_pre20190311.tar.xz 613856 BLAKE2B 7f670647305e61d9a11a87be44bc2228fee6b474bd920b460ecd6375f23d371e2cc8b0bb22eb4473807b92fc44c4f13eb3be72d048f75f3f59e814c201eddba6 SHA512 7091b16ef1dafdc75dd8e6f172da68ea31d0a89ad42192dc86ced6d22a3c200a385a3e63f5a829cfad42ee5ba44e806b50ac450d17a96ef438ed5668d5b0c55f
30
31 diff --git a/dev-util/bpftrace/bpftrace-0.9_pre20190311.ebuild b/dev-util/bpftrace/bpftrace-0.9_pre20190311.ebuild
32 new file mode 100644
33 index 00000000000..1f874815e93
34 --- /dev/null
35 +++ b/dev-util/bpftrace/bpftrace-0.9_pre20190311.ebuild
36 @@ -0,0 +1,58 @@
37 +# Copyright 2019 Gentoo Authors
38 +# Distributed under the terms of the GNU General Public License v2
39 +
40 +EAPI=7
41 +
42 +inherit toolchain-funcs cmake-utils
43 +
44 +DESCRIPTION="High-level tracing language for eBPF"
45 +HOMEPAGE="https://github.com/iovisor/bpftrace"
46 +
47 +if [[ ${PV} =~ 9{4,} ]]; then
48 + inherit git-r3
49 + EGIT_REPO_URI="https://github.com/iovisor/${PN}"
50 + BDEPEND=""
51 +else
52 + SRC_URI="mirror://gentoo/${P}.tar.xz"
53 + #SRC_URI="https://github.com/iovisor/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
54 + KEYWORDS="~amd64 ~x86"
55 + BDEPEND="app-arch/xz-utils "
56 +fi
57 +
58 +LICENSE="Apache-2.0"
59 +SLOT="0"
60 +IUSE="test"
61 +
62 +COMMON_DEPEND="sys-devel/clang:=
63 + >=sys-devel/llvm-3.7.1:=[llvm_targets_BPF(+)]
64 + >=dev-util/bcc-0.9.0:=
65 + virtual/libelf"
66 +DEPEND="${COMMON_DEPEND}
67 + test? ( dev-cpp/gtest )"
68 +RDEPEND="${COMMON_DEPEND}"
69 +BDEPEND+="dev-util/cmake
70 + sys-devel/flex
71 + sys-devel/bison"
72 +
73 +PATCHES=(
74 + "${FILESDIR}/bpftrace-0.9_pre20190311-bcc-0.9.patch"
75 + "${FILESDIR}/bpftrace-0.9_pre20190311-install-libs.patch"
76 + "${FILESDIR}/bpftrace-mandir.patch"
77 +)
78 +
79 +# lots of fixing needed
80 +RESTRICT="test"
81 +
82 +src_prepare() {
83 + cmake-utils_src_prepare
84 +}
85 +
86 +src_configure() {
87 + local -a mycmakeargs
88 + mycmakeargs=(
89 + "-DSTATIC_LINKING:BOOL=OFF"
90 + "-DBUILD_TESTING:BOOL=OFF"
91 + )
92 +
93 + cmake-utils_src_configure
94 +}
95
96 diff --git a/dev-util/bpftrace/bpftrace-9999.ebuild b/dev-util/bpftrace/bpftrace-9999.ebuild
97 new file mode 100644
98 index 00000000000..1f874815e93
99 --- /dev/null
100 +++ b/dev-util/bpftrace/bpftrace-9999.ebuild
101 @@ -0,0 +1,58 @@
102 +# Copyright 2019 Gentoo Authors
103 +# Distributed under the terms of the GNU General Public License v2
104 +
105 +EAPI=7
106 +
107 +inherit toolchain-funcs cmake-utils
108 +
109 +DESCRIPTION="High-level tracing language for eBPF"
110 +HOMEPAGE="https://github.com/iovisor/bpftrace"
111 +
112 +if [[ ${PV} =~ 9{4,} ]]; then
113 + inherit git-r3
114 + EGIT_REPO_URI="https://github.com/iovisor/${PN}"
115 + BDEPEND=""
116 +else
117 + SRC_URI="mirror://gentoo/${P}.tar.xz"
118 + #SRC_URI="https://github.com/iovisor/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
119 + KEYWORDS="~amd64 ~x86"
120 + BDEPEND="app-arch/xz-utils "
121 +fi
122 +
123 +LICENSE="Apache-2.0"
124 +SLOT="0"
125 +IUSE="test"
126 +
127 +COMMON_DEPEND="sys-devel/clang:=
128 + >=sys-devel/llvm-3.7.1:=[llvm_targets_BPF(+)]
129 + >=dev-util/bcc-0.9.0:=
130 + virtual/libelf"
131 +DEPEND="${COMMON_DEPEND}
132 + test? ( dev-cpp/gtest )"
133 +RDEPEND="${COMMON_DEPEND}"
134 +BDEPEND+="dev-util/cmake
135 + sys-devel/flex
136 + sys-devel/bison"
137 +
138 +PATCHES=(
139 + "${FILESDIR}/bpftrace-0.9_pre20190311-bcc-0.9.patch"
140 + "${FILESDIR}/bpftrace-0.9_pre20190311-install-libs.patch"
141 + "${FILESDIR}/bpftrace-mandir.patch"
142 +)
143 +
144 +# lots of fixing needed
145 +RESTRICT="test"
146 +
147 +src_prepare() {
148 + cmake-utils_src_prepare
149 +}
150 +
151 +src_configure() {
152 + local -a mycmakeargs
153 + mycmakeargs=(
154 + "-DSTATIC_LINKING:BOOL=OFF"
155 + "-DBUILD_TESTING:BOOL=OFF"
156 + )
157 +
158 + cmake-utils_src_configure
159 +}
160
161 diff --git a/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-bcc-0.9.patch b/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-bcc-0.9.patch
162 new file mode 100644
163 index 00000000000..0f3706fadf5
164 --- /dev/null
165 +++ b/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-bcc-0.9.patch
166 @@ -0,0 +1,13 @@
167 +diff --git a/src/attached_probe.cpp b/src/attached_probe.cpp
168 +index d7905cd..adbd40c 100644
169 +--- a/src/attached_probe.cpp
170 ++++ b/src/attached_probe.cpp
171 +@@ -376,7 +376,7 @@ void AttachedProbe::load_prog()
172 + void AttachedProbe::attach_kprobe()
173 + {
174 + int perf_event_fd = bpf_attach_kprobe(progfd_, attachtype(probe_.type),
175 +- eventname().c_str(), probe_.attach_point.c_str(), 0);
176 ++ eventname().c_str(), probe_.attach_point.c_str(), 0, -1);
177 +
178 + if (perf_event_fd < 0) {
179 + if (probe_.orig_name != probe_.name) {
180
181 diff --git a/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-install-libs.patch b/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-install-libs.patch
182 new file mode 100644
183 index 00000000000..68bd8255944
184 --- /dev/null
185 +++ b/dev-util/bpftrace/files/bpftrace-0.9_pre20190311-install-libs.patch
186 @@ -0,0 +1,111 @@
187 +diff --git a/CMakeLists.txt b/CMakeLists.txt
188 +index 8ff6e1f..a276ba2 100644
189 +--- a/CMakeLists.txt
190 ++++ b/CMakeLists.txt
191 +@@ -43,9 +43,10 @@ find_package(FLEX REQUIRED)
192 + bison_target(bison_parser src/parser.yy ${CMAKE_BINARY_DIR}/parser.tab.cc)
193 + flex_target(flex_lexer src/lexer.l ${CMAKE_BINARY_DIR}/lex.yy.cc)
194 + add_flex_bison_dependency(flex_lexer bison_parser)
195 +-add_library(parser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
196 +-target_compile_options(parser PRIVATE "-w")
197 +-target_include_directories(parser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
198 ++add_library(bpftraceparser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS})
199 ++target_compile_options(bpftraceparser PRIVATE "-w")
200 ++target_include_directories(bpftraceparser PUBLIC src src/ast ${CMAKE_BINARY_DIR})
201 ++install(TARGETS bpftraceparser LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
202 +
203 + include(CheckSymbolExists)
204 + set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
205 +diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
206 +index b8b0d96..0803c1e 100644
207 +--- a/resources/CMakeLists.txt
208 ++++ b/resources/CMakeLists.txt
209 +@@ -1,6 +1,7 @@
210 +-add_library(resources headers.cpp)
211 ++add_library(bpftraceresources headers.cpp)
212 +
213 +-target_include_directories(resources PUBLIC ../src)
214 ++target_include_directories(bpftraceresources PUBLIC ../src)
215 ++install(TARGETS bpftraceresources LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
216 +
217 + function(embed_headers output)
218 + file(WRITE ${output} "#include \"headers.h\"\n\nnamespace bpftrace {\n")
219 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
220 +index b47f66d..36de26b 100644
221 +--- a/src/CMakeLists.txt
222 ++++ b/src/CMakeLists.txt
223 +@@ -27,7 +27,8 @@ endif(HAVE_BCC_CREATE_MAP)
224 + if(HAVE_GET_CURRENT_CGROUP_ID)
225 + target_compile_definitions(bpftrace PRIVATE HAVE_GET_CURRENT_CGROUP_ID)
226 + endif(HAVE_GET_CURRENT_CGROUP_ID)
227 +-target_link_libraries(bpftrace arch ast parser resources)
228 ++target_link_libraries(bpftrace bpftracearch bpftraceast bpftraceparser
229 ++ bpftraceresources)
230 +
231 + if (STATIC_LINKING)
232 + target_link_libraries(bpftrace ${LIBBCC_LIBRARIES})
233 +diff --git a/src/arch/CMakeLists.txt b/src/arch/CMakeLists.txt
234 +index 425926e..13b5d31 100644
235 +--- a/src/arch/CMakeLists.txt
236 ++++ b/src/arch/CMakeLists.txt
237 +@@ -1,5 +1,7 @@
238 + if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64")
239 +- add_library(arch aarch64.cpp)
240 ++ add_library(bpftracearch aarch64.cpp)
241 + else()
242 +- add_library(arch x86_64.cpp)
243 ++ add_library(bpftracearch x86_64.cpp)
244 + endif()
245 ++
246 ++install(TARGETS bpftracearch LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
247 +diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt
248 +index 64db7b9..1a2eb6e 100644
249 +--- a/src/ast/CMakeLists.txt
250 ++++ b/src/ast/CMakeLists.txt
251 +@@ -1,4 +1,4 @@
252 +-add_library(ast
253 ++add_library(bpftraceast
254 + ast.cpp
255 + codegen_llvm.cpp
256 + irbuilderbpf.cpp
257 +@@ -6,12 +6,13 @@ add_library(ast
258 + semantic_analyser.cpp
259 + )
260 +
261 +-target_include_directories(ast PUBLIC ${CMAKE_SOURCE_DIR}/src)
262 +-target_include_directories(ast PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
263 +-target_include_directories(ast PUBLIC ${CMAKE_BINARY_DIR})
264 +-target_link_libraries(ast arch)
265 ++target_include_directories(bpftraceast PUBLIC ${CMAKE_SOURCE_DIR}/src)
266 ++target_include_directories(bpftraceast PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
267 ++target_include_directories(bpftraceast PUBLIC ${CMAKE_BINARY_DIR})
268 ++target_link_libraries(bpftraceast bpftracearch)
269 +
270 +-add_dependencies(ast parser)
271 ++add_dependencies(bpftraceast bpftraceparser)
272 ++install(TARGETS bpftraceast LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
273 +
274 + if (STATIC_LINKING)
275 + set(clang_libs
276 +@@ -31,16 +32,16 @@ if (STATIC_LINKING)
277 + clangSerialization
278 + clangToolingCore)
279 + llvm_map_components_to_libnames(llvm_libs bpfcodegen ipo irreader mcjit orcjit ${LLVM_TARGETS_TO_BUILD})
280 +- target_link_libraries(ast ${clang_libs})
281 +- target_link_libraries(ast ${llvm_libs})
282 ++ target_link_libraries(bpftraceast ${clang_libs})
283 ++ target_link_libraries(bpftraceast ${llvm_libs})
284 + else()
285 + find_library(found_LLVM LLVM HINTS ${LLVM_LIBRARY_DIRS})
286 + if(found_LLVM)
287 +- target_link_libraries(ast LLVM)
288 ++ target_link_libraries(bpftraceast LLVM)
289 + else()
290 + llvm_map_components_to_libnames(_llvm_libs bpfcodegen ipo irreader mcjit orcjit ${LLVM_TARGETS_TO_BUILD})
291 + llvm_expand_dependencies(llvm_libs ${_llvm_libs})
292 +- target_link_libraries(ast ${llvm_libs})
293 ++ target_link_libraries(bpftraceast ${llvm_libs})
294 + endif()
295 +- target_link_libraries(ast libclang)
296 ++ target_link_libraries(bpftraceast libclang)
297 + endif()
298
299 diff --git a/dev-util/bpftrace/files/bpftrace-mandir.patch b/dev-util/bpftrace/files/bpftrace-mandir.patch
300 new file mode 100644
301 index 00000000000..d18c1e2f321
302 --- /dev/null
303 +++ b/dev-util/bpftrace/files/bpftrace-mandir.patch
304 @@ -0,0 +1,22 @@
305 +diff --git a/man/man8/CMakeLists.txt b/man/man8/CMakeLists.txt
306 +index 45cfe5d..d13229e 100644
307 +--- a/man/man8/CMakeLists.txt
308 ++++ b/man/man8/CMakeLists.txt
309 +@@ -1,12 +1,12 @@
310 +-find_program(GZIP gzip)
311 ++find_program(CAT cat)
312 + file(GLOB FILES *.8)
313 + set(GZFILES "")
314 + foreach(FIL ${FILES})
315 + get_filename_component(NAME ${FIL} NAME)
316 +- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz
317 +- COMMAND ${GZIP} -c ${FIL} > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz
318 ++ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}
319 ++ COMMAND ${CAT} ${FIL} > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}
320 + DEPENDS ${FIL})
321 +- list(APPEND GZFILES "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.gz")
322 ++ list(APPEND GZFILES "${CMAKE_CURRENT_BINARY_DIR}/${NAME}")
323 + endforeach()
324 + add_custom_target(man ALL DEPENDS ${GZFILES})
325 +-install(FILES ${GZFILES} DESTINATION man/man8)
326 ++install(FILES ${GZFILES} DESTINATION share/man/man8)
327
328 diff --git a/dev-util/bpftrace/metadata.xml b/dev-util/bpftrace/metadata.xml
329 new file mode 100644
330 index 00000000000..777f99f832c
331 --- /dev/null
332 +++ b/dev-util/bpftrace/metadata.xml
333 @@ -0,0 +1,10 @@
334 +<?xml version="1.0" encoding="UTF-8"?>
335 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
336 +<pkgmetadata>
337 + <maintainer type="person">
338 + <email>chutzpah@g.o</email>
339 + </maintainer>
340 + <upstream>
341 + <remote-id type="github">iovisor/bpftrace</remote-id>
342 + </upstream>
343 +</pkgmetadata>