Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F163741812
D56762.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D56762.diff
View Options
diff --git a/devel/Makefile b/devel/Makefile
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4303,6 +4303,7 @@
SUBDIR += pecl-zookeeper
SUBDIR += pegtl
SUBDIR += pep8
+ SUBDIR += perfetto
SUBDIR += performance
SUBDIR += perlconsole
SUBDIR += phabricator
diff --git a/devel/perfetto/Makefile b/devel/perfetto/Makefile
new file mode 100644
--- /dev/null
+++ b/devel/perfetto/Makefile
@@ -0,0 +1,71 @@
+PORTNAME= perfetto
+DISTVERSIONPREFIX= v
+DISTVERSION= 54.0
+CATEGORIES= devel
+
+MAINTAINER= siva@FreeBSD.org
+COMMENT= System profiling, app tracing, and trace analysis
+WWW= https://perfetto.dev/
+
+MASTER_SITES= https://storage.googleapis.com/perfetto/:perfetto
+DISTFILES= sqlite-amalgamation-3500300.zip:perfetto \
+ llvm-project-617a15a9eac96088ae5e9134248d8236e34b91b1.tgz:perfetto
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+PATCH_SITES= https://github.com/google/perfetto/commit/:upstream \
+ https://codeberg.org/tj/perfetto/commit/:tj
+PATCHFILES= 0a47f21e97615e0259dcb8589190aa0912c47bbe.patch:upstream \
+ d400ae17f63c91846fb489dc716109fbfac311a4.patch:tj \
+ 0e50ef0b9372580b18c2693a1f4a95cb8ee8abc7.patch:tj \
+ 6620157cb2a8cf3334219fce26cd91d8089a8cd2.patch:tj \
+ 1b24730762d082dae073f096d5e666e0fc83a1bb.patch:tj
+
+PATCH_DIST_STRIP= -p1
+
+BUILD_DEPENDS= gn:devel/gn
+
+USES= compiler:c++17-lang ninja python:build
+
+USE_GITHUB= yes
+GH_ACCOUNT= google
+GH_TUPLE= protocolbuffers:protobuf:v31.1:buildtools_protobuf/buildtools/protobuf \
+ abseil:abseil-cpp:20250512.1:buildtools_abseil_cpp/buildtools/abseil-cpp \
+ sqlite:sqlite:version-3.50.3:buildtools_sqlite_src/buildtools/sqlite_src \
+ libexpat:libexpat:R_2_6_2:buildtools_expat/buildtools/expat/src
+
+GN_ARGS= is_debug=false \
+ skip_buildtools_check=true \
+ perfetto_use_system_zlib=true \
+ extra_cflags="-I${LOCALBASE}/include -Wno-unused-parameter" \
+ extra_ldflags="-L${LOCALBASE}/lib"
+
+BINARY_ALIAS= python3=${PYTHON_CMD}
+
+BUILD_WRKSRC= ${WRKSRC}/out
+
+ALL_TARGET= dtrace_probe freebsd_power freebsd_sys libperfetto_c.so perfetto tracebox traceconv traced traced_relay
+
+post-extract:
+ ${MV} ${WRKDIR}/sqlite-amalgamation-3500300 ${WRKSRC}/buildtools/sqlite
+ ${MV} ${WRKDIR}/llvm-project ${WRKSRC}/buildtools/llvm-project
+
+do-configure:
+ cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} gn gen out --args='${GN_ARGS}' && ${SETENV} ${CONFIGURE_ENV} gn ls out --args='${GN_ARGS}'
+ cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} tools/gen_c_protos \
+ --proto protos/perfetto/trace/power/power_rails.proto \
+ --proto protos/perfetto/trace/power/battery_counters.proto \
+ --proto protos/perfetto/trace/system_info/cpu_info.proto \
+ --proto protos/perfetto/trace/sys_stats/sys_stats.proto \
+ --proto protos/perfetto/common/sys_stats_counters.proto \
+ ${BUILD_WRKSRC}
+
+do-install:
+ cd ${BUILD_WRKSRC} && ${INSTALL_PROGRAM} \
+ dtrace_probe freebsd_power freebsd_sys perfetto tracebox traceconv traced traced_relay \
+ ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/libperfetto_c.so ${STAGEDIR}${PREFIX}/lib
+ ${INSTALL_DATA} ${BUILD_WRKSRC}/libperfetto.a ${STAGEDIR}${PREFIX}/lib
+
+.include <bsd.port.mk>
diff --git a/devel/perfetto/distinfo b/devel/perfetto/distinfo
new file mode 100644
--- /dev/null
+++ b/devel/perfetto/distinfo
@@ -0,0 +1,25 @@
+TIMESTAMP = 1783544597
+SHA256 (sqlite-amalgamation-3500300.zip) = 9ad6d16cbc1df7cd55c8b55127c82a9bca5e9f287818de6dc87e04e73599d754
+SIZE (sqlite-amalgamation-3500300.zip) = 2845433
+SHA256 (llvm-project-617a15a9eac96088ae5e9134248d8236e34b91b1.tgz) = 7e2541446a27f2a09a84520da7bc93cd71749ba0f17318f2d5291fbf45b97956
+SIZE (llvm-project-617a15a9eac96088ae5e9134248d8236e34b91b1.tgz) = 83475
+SHA256 (google-perfetto-v54.0_GH0.tar.gz) = 8a6144d81592e00fb9e75da42483a2544315b25e3113845505d69950083913c1
+SIZE (google-perfetto-v54.0_GH0.tar.gz) = 49105061
+SHA256 (protocolbuffers-protobuf-v31.1_GH0.tar.gz) = c3a0a9ece8932e31c3b736e2db18b1c42e7070cd9b881388b26d01aa71e24ca2
+SIZE (protocolbuffers-protobuf-v31.1_GH0.tar.gz) = 9602477
+SHA256 (abseil-abseil-cpp-20250512.1_GH0.tar.gz) = 9b7a064305e9fd94d124ffa6cc358592eb42b5da588fb4e07d09254aa40086db
+SIZE (abseil-abseil-cpp-20250512.1_GH0.tar.gz) = 2221441
+SHA256 (sqlite-sqlite-version-3.50.3_GH0.tar.gz) = ced5a0e1928b8851f5f2176a521241ac42746233b5cd02341c1d9fa40d5ca222
+SIZE (sqlite-sqlite-version-3.50.3_GH0.tar.gz) = 12992292
+SHA256 (libexpat-libexpat-R_2_6_2_GH0.tar.gz) = fbd032683370d761ba68dba2566d3280a154f5290634172d60a79b24d366d9dc
+SIZE (libexpat-libexpat-R_2_6_2_GH0.tar.gz) = 8416128
+SHA256 (0a47f21e97615e0259dcb8589190aa0912c47bbe.patch) = 7aa9dfbe2ee1509b1253859681b34efa135419c51a9f17be817e6e0735d531d5
+SIZE (0a47f21e97615e0259dcb8589190aa0912c47bbe.patch) = 1432
+SHA256 (d400ae17f63c91846fb489dc716109fbfac311a4.patch) = 6881cd5790888fedb4f8894c1cccd21e9b3876249ef0823a77593af0fdcbb0e7
+SIZE (d400ae17f63c91846fb489dc716109fbfac311a4.patch) = 20290
+SHA256 (0e50ef0b9372580b18c2693a1f4a95cb8ee8abc7.patch) = bb89d2358c9299b5c4a387f685565c20ef878b5eb476f211350f7d226a8b5a3d
+SIZE (0e50ef0b9372580b18c2693a1f4a95cb8ee8abc7.patch) = 19299
+SHA256 (6620157cb2a8cf3334219fce26cd91d8089a8cd2.patch) = 4a0929ceea5ac478d69e56282100c44f839add744ccbcf81c2ee92a1847c84b4
+SIZE (6620157cb2a8cf3334219fce26cd91d8089a8cd2.patch) = 2159
+SHA256 (1b24730762d082dae073f096d5e666e0fc83a1bb.patch) = 085452de9e97cfe272f6bc0ca6d8842009f2b6ce7ad08eaa9e8b8e40971185c5
+SIZE (1b24730762d082dae073f096d5e666e0fc83a1bb.patch) = 22460
diff --git a/devel/perfetto/files/patch-tools_gen__c__protos b/devel/perfetto/files/patch-tools_gen__c__protos
new file mode 100644
--- /dev/null
+++ b/devel/perfetto/files/patch-tools_gen__c__protos
@@ -0,0 +1,10 @@
+--- tools/gen_c_protos.orig 2026-05-07 14:48:33 UTC
++++ tools/gen_c_protos
+@@ -218,7 +218,6 @@ OUTPUT:
+ )
+
+ tmpfilename = os.path.join(tmpdirname, transform_extension(source))
+- clang_format(tmpfilename)
+ if source.startswith(sources['path_strip_prefix']):
+ targetfilename = source[len(sources['path_strip_prefix']):]
+ else:
diff --git a/devel/perfetto/pkg-descr b/devel/perfetto/pkg-descr
new file mode 100644
--- /dev/null
+++ b/devel/perfetto/pkg-descr
@@ -0,0 +1,6 @@
+Perfetto is an open-source suite of SDKs, daemons and tools which use tracing
+to help developers understand the behaviour of complex systems and root-cause
+functional and performance issues on client and embedded systems.
+
+It is a production-grade tool that is the default tracing system for the
+Android operating system and the Chromium browser.
diff --git a/devel/perfetto/pkg-plist b/devel/perfetto/pkg-plist
new file mode 100644
--- /dev/null
+++ b/devel/perfetto/pkg-plist
@@ -0,0 +1,10 @@
+bin/dtrace_probe
+bin/freebsd_power
+bin/freebsd_sys
+bin/perfetto
+bin/tracebox
+bin/traceconv
+bin/traced
+bin/traced_relay
+lib/libperfetto.a
+lib/libperfetto_c.so
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Jul 26, 7:05 PM (7 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35557467
Default Alt Text
D56762.diff (6 KB)
Attached To
Mode
D56762: devel/perfetto: new port
Attached
Detach File
Event Timeline
Log In to Comment