<feed xmlns='http://www.w3.org/2005/Atom'>
<title>procd/trace2seccomp.uc, branch master</title>
<subtitle>OpenWrt service / process manager</subtitle>
<id>https://git.openwrt.org/project/procd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/procd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/'/>
<updated>2026-08-21T04:31:44Z</updated>
<entry>
<title>build: add the trace2seccomp profile generator, drop the utrace target</title>
<updated>2026-08-21T04:31:44Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-17T22:31:38Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=9f32e85e7cebc618f3f1f036087a0d81f506eeb3'/>
<id>urn:sha1:9f32e85e7cebc618f3f1f036087a0d81f506eeb3</id>
<content type='text'>
Replace the C utrace binary and its LD_PRELOAD trace helper with
trace2seccomp, a ucode tool that turns a ujail seccomp trace into an OCI
seccomp profile. The old preload approach only worked for dynamically
linked binaries and required a private libpreload; the new tracer in ujail
(-m trace) handles static binaries and reports per-phase syscall sets, so
the generator can work purely from its NDJSON output.

Dispatched by argv[0]: invoked as utrace or seccomp-trace it runs a program
under `ujail -m trace` and emits an application-phase allow-list, matching
the classic policy-generation window. Invoked as trace2seccomp it converts
a previously captured NDJSON trace, optionally merging all phases or
emitting a two-phase pre/post dynamic-linker profile.

The CMake UTRACE_SUPPORT target now installs the script instead of building
the dropped utrace and preload-trace artefacts.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
