Marco Trevisan (Treviño)
07132892f0
tests: Ensure that properties changed events are emitted
2024-02-14 05:17:49 +00:00
Mario Limonciello
e5b107a625
Send signals on both interfaces
...
Some clients (notably GNOME) look specifically for both the path and
interface. To avoid breaking them on profile change events make sure
to emit signals on both the legacy and modern interface.
2024-02-14 05:17:49 +00:00
Marco Trevisan (Treviño)
f88ba64d1e
ci: Add valgrind job
2024-02-14 04:27:39 +01:00
Marco Trevisan (Treviño)
44f000b5a7
build: Add valgrind setup
...
Add ability to run tests under valgrind using --setup=valgrind
2024-02-14 04:27:39 +01:00
Marco Trevisan (Treviño)
37a62a3a1b
ci: Add job to run tests with address sanitizer
2024-02-14 04:22:52 +01:00
Marco Trevisan (Treviño)
a58f8ed62b
ci: Factorize common dependencies installation phase
2024-02-14 04:15:20 +01:00
Marco Trevisan (Treviño)
59ea84d061
tests: Allow tests running with address sanitizers
...
We need to manually preload the asan library, so read where that is
using some meson machinery inherited from fprintd.
2024-02-14 04:00:20 +01:00
Marco Trevisan (Treviño)
7ea83f33f7
ci: Add scan-build job to perform static analysis
2024-02-14 00:09:44 +00:00
Marco Trevisan (Treviño)
d127ea3908
meson: Bump meson required version to 0.59
...
It's the first one providing scan-build support
2024-02-14 00:09:44 +00:00
Mario Limonciello
70849a6686
amdgpu: Handle disconnected panels correctly
...
Some systems have multiple GPUs with an eDP output but the panel
isn't connected to all of them (or it's controlled by a mux).
Handle this case by ensuring that the panel is connected when
before writing an attribute.
2024-02-13 23:20:42 +00:00
Mario Limonciello
07a77652b1
Add support for POWER_PROFILE_DAEMON_ACTION_BLOCK
...
This can let people avoid loading actions that on their system
in the event of a problem or desire not to use.
2024-02-13 23:20:42 +00:00
Mario Limonciello
41ed5d33a8
Add support for a amdgpu panel power savings action
...
This activates the DRM connector attribute `panel_power_savings`
which takes a range from 0 to 4 to indicate how aggresively to enable
panel power savings.
Link: https://lore.kernel.org/amd-gfx/0b94b25a-9ffa-41a5-b931-ad84e1892d36@amd.com/T/#m079d7c357626cf3a80cd9ba6239b3fe4fcf8937e
2024-02-13 23:20:42 +00:00
Mario Limonciello
9a740c02d6
Add a ppd_utils_write_sysfs_int() helper
...
Suggested-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
2024-02-13 23:20:42 +00:00
Mario Limonciello
002255cbdd
Change the ppd_action_probe() return type to PpdProbeResult
2024-02-13 23:20:42 +00:00
Mario Limonciello
15ce19d623
Move PpdProbeResult to ppd-profile.h
...
It's used by both `PpdDriver` and `PpdAction`
2024-02-13 23:20:42 +00:00
Mario Limonciello
c749dfc444
Fix launching powerprofilesctl
...
The active profile is on org.freedesktop.DBus.Properties
Fixes: 3b29b0e ("cleanup: Use UPower namespace as default DBus name preserving old one")
2024-02-13 16:12:16 -06:00
Marco Trevisan (Treviño)
32f5abfb82
powerprofilesctl: Use global variable to hold names and infaces
2024-02-13 20:44:29 +00:00
Marco Trevisan (Treviño)
3b29b0e52b
cleanup: Use UPower namespace as default DBus name preserving old one
...
Expose the daemon as 'org.freedesktop.UPower.PowerProfiles' by default
but we also own the old 'net.hadess.PowerProfiles' name for
compatibility resons.
Also dbus objects are now registered also in the path
/org/freedesktop/UPower/PowerProfiles and they implement the
org.freedesktop.UPower.PowerProfiles interface.
Even in this case we preserve the compatibility with the old ones.
To make this switch as most reliable as possible, the code is now
generated for dbus configuration files preserving the previous ones as
base.
Tests are now performed checking both names, to ensure again that we're
not breaking the expectations for the old APIs consumers.
2024-02-13 20:44:29 +00:00
Marco Trevisan (Treviño)
520622ba70
data: Rename policykit policies to UPower namespace
...
We're part of UPower now so let's use the freedesktop standard namespace
2024-02-13 20:44:29 +00:00
Marco Trevisan (Treviño)
53115abf35
build: Bump meson requirement to 0.58
...
It's still quite old, but provides some features we may want to use in
future, so let's use a newer version since we're about to release a new
major version of p-p-d too.
2024-02-13 20:44:29 +00:00
Marco Trevisan (Treviño)
143e35da0c
docs: Handle warnings for unknown definitions
2024-02-13 20:36:09 +00:00
Marco Trevisan (Treviño)
f37b74b65a
build: Support building with old polkit
...
Some distros as LTS ones may still have old versions of polkit
gobject.
Since we only depend on the new polkit because of auto-pointers,
let's add a tiny compatibility layer to make possible to get
p-p-d also working on older stable distros as OEMs may like.
2024-02-13 21:18:25 +01:00
Mario Limonciello
9f25cec345
Install custom debug message handler
...
Remove a lot of the unnecessary stuff about the process, and instead
pad out the domain to make it more accessible.
If running on an interactive terminal add color coding for warnings
and errors. If this behavior is not desirable for an interactive terminal,
NO_COLOR=0 can be set in the environment.
2024-02-13 20:10:30 +00:00
Mario Limonciello
e11eb6c28e
Set the log domain for all source files
2024-02-13 20:10:30 +00:00
Mario Limonciello
291f8debe9
Add pre-commit rule for running python black
2024-02-13 20:04:46 +00:00
Mario Limonciello
55f2040e08
Add a unit test target for pylint on integration tests
2024-02-13 20:04:46 +00:00
Mario Limonciello
4896b3f1ec
Reformat all integration tests using black and pylint
2024-02-13 20:04:46 +00:00
Mario Limonciello
f742b017b1
Reformat unittest_inspector.py using pylint and black
2024-02-13 20:04:46 +00:00
Mario Limonciello
8e49826403
Rename integration tests python file
2024-02-13 20:04:46 +00:00
Mario Limonciello
3247b511e2
Fix running test suite without root
...
Running Tests.test_fake_driver breaks stdin on a real terminal unless
the test suite is run as root. It doesn't make sense for the fake
driver to capture stdin unless we are sure that we're interactive.
Lookup whether stdout is a tty and only run the keyboard setup in
probe for the fake driver if we're sure we're interactive.
2024-02-07 23:17:18 -06:00
Mario Limonciello
b26d928ddd
Enable test suite by default
...
Rather than making tests opt in, make them opt out. Distros should
be running tests in their infrastructure as well during build time.
2024-02-05 17:33:14 +00:00
Mario Limonciello
9a4229339b
Add pre-commit support to CI
...
This will help to make sure that style things that are enforced by
pre-commit are set appropriately.
2024-02-03 09:06:19 -06:00
Mario Limonciello
59d5116f9d
trivial: fix end of file on C files
...
Ensure that all files end in a new line
2024-02-03 09:05:45 -06:00
Mario Limonciello
6eb2981352
trivial: correct a spelling error in a comment
2024-02-03 09:05:45 -06:00
Marco Trevisan (Treviño)
85f3bb066c
power-profiles-daemon: Do not leak blocked drivers list
2024-02-03 15:35:45 +01:00
Marco Trevisan (Treviño)
a784413762
power-profiles-daemon: Random indentation fixes
2024-02-03 15:35:23 +01:00
Marco Trevisan (Treviño)
ee1cfb36fc
power-profiles-daemon: Steal strings when possible
2024-02-03 15:34:26 +01:00
Marco Trevisan (Treviño)
6923594b9f
cleanup: Be consistent on spacing before function calls
2024-02-03 15:34:25 +01:00
Marco Trevisan (Treviño)
52abccf6b3
tests: Use skipTest to skip tests on missing components
2024-02-02 19:15:33 +01:00
Marco Trevisan (Treviño)
be5b4232a4
tests/integration-tests: Handle skipped tests from python side
2024-02-02 19:15:33 +01:00
Marco Trevisan (Treviño)
b88875c550
ppd-driver: Use NULL values if values are unset
2024-02-02 19:15:33 +01:00
Mario Limonciello
05cea66718
Fix compatibility with older Dbus API
...
Ensure that the 'Driver' key is populated.
Fixes: https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/issues/136
2024-02-02 10:51:31 -06:00
Marco Trevisan (Treviño)
e94256aaf6
check-news: please shellcheck
2024-02-02 17:39:52 +01:00
Marco Trevisan (Treviño)
41831f5877
ci: Show coverage data and feed gitlab with it
2024-02-02 16:13:19 +01:00
Marco Trevisan (Treviño)
6899076633
build/tests: Do not redefine python3 and use meson found everywhere
2024-02-02 16:10:03 +01:00
Marco Trevisan (Treviño)
2af5179fc3
build: Use configured python program to run inspector
2024-02-02 16:10:03 +01:00
Marco Trevisan (Treviño)
640a9f2609
ci, build: Use stricter meson builds, using -Werror and fatal meson warnings
2024-02-02 16:10:03 +01:00
Marco Trevisan (Treviño)
5663a041d9
ci: Use multiline args for meson setup for easier maintainability
2024-02-02 16:10:03 +01:00
Marco Trevisan (Treviño)
51be4b76f4
ci: Expose testlog junit report
2024-02-02 16:10:03 +01:00
Marco Trevisan (Treviño)
3079cc1000
ci: Do install/uninstall test after having built for testing
...
In this way we ensure tests requirements are met
2024-02-02 16:10:03 +01:00