Files
sysprof/meson_options.txt
Nikolas Zimmermann b726f49d15 Turn polkit-agent support into an optional feature.
This simplifies deployment on embedded devices, where polkit is usually
unncessary at runtime, but pulls in quite a few otherwise unncessary
dependencies. Start to improve the situation by allowing to selectively
disable polkit-agent support at compile time, which aids in container
usage scenarios, where one wants to invoke 'sysprof-cli' from within
the container. Bypassing polkit-agent in the container is then desired,
since the host sysprofd will handle asking for permissions to enable
the tracing. It allows for a simpler setup of rootless podman
containers, avoiding UID mismatches, that lead to rejection of the
tracing enablement.

- Add a new 'polkit-agent' meson build feature, that allows to force disabling
  polkit-agent support (-Dpolkit-agent=disabled).

- Mark the 'polkit-agent' feature as enabled, by default, to reflect
  the current status (sysprof-cli did not build without polkit-agent support).

- libsysprof/sysprof-instrument.c: Build fix when polkit is not available,
  remove the unnecessary 'g_autopr(PolkitDetails) details' variable.

- Alter the sysprof-cli dependencies to only attempt to link against
  polkit-agent, if necessary. Modify sysprof-cli.c to wrap all code using
  polkit-agent in HAVE_POLKIT_AGENT blocks.
2024-08-20 20:46:11 +02:00

52 lines
1.9 KiB
Meson

# If this is a development build, which is used for our Flatpak build
# so that we have a different app-id (.Devel suffix) than the regular
# application.
option('development', type: 'boolean', value: false)
# Optionally disable the GTK application in case you're building the
# sysprof-cli only for your platform. Might be useful in IoT or various
# server scenarios.
option('gtk', type: 'boolean')
# Allow disabling the installation of libsysprof-capture*.a
option('install-static', type: 'boolean')
# Allow disabling of features that depend on polkit-agent.
option('polkit-agent', type: 'feature',
value: 'auto',
description: 'Enable features which require polkit-agent-1'
)
# Optionally compile sysprofd, which is needed to get elevated privileges.
# You only really want to ignore this if you are running from a container
# and are talking to a host daemon. Also, if you're compiling for something
# other than Linux to allow viewing syscap files.
option('sysprofd', type: 'combo',
choices: ['host', 'bundled', 'none'],
value: 'bundled',
)
# The directory to place systemd service files, so that we can auto-launch
# sysprofd as necessary (for the daemon privilege helper).
option('systemdunitdir', type: 'string',
description: 'Directory for systemd service files'
)
# If Yelp documentation should be installed
option('help', type: 'boolean')
# Build libsysprof (required by tools, tests, sysprof, etc)
option('libsysprof', type: 'boolean')
# Optionally disable the tools (this is mostly only useful for building only
# libsysprof-capture as a subproject)
option('tools', type: 'boolean')
# Optionally disable the tests (this is mostly only useful for building only
# libsysprof-capture as a subproject)
option('tests', type: 'boolean')
# Optionally disable the examples (this is mostly only useful for building only
# libsysprof-capture as a subproject)
option('examples', type: 'boolean')