Commit graph

1000 commits

Author SHA1 Message Date
Bastien Nocera
2f3ccee059 main: Add debug flag
This will be used to restrict some D-Bus methods to when debugging is
enabled.
2022-04-19 15:27:36 +02:00
Benjamin Berg
eeaaddbcdd bsd*: Allow building on linux
Guard platform specific code and add in a few extra definitions so that
the backends can at least be partially compiled on linux. This is for
testing purposes, if we could build against a proper image that would
also be acceptable.
2022-04-01 18:36:50 +02:00
Benjamin Berg
8be73b986a openbsd: Fix compilation and compiler warnings
It didn't even compile, and one warning about an uninitialised variable
was actually relevant.
2022-04-01 18:29:20 +02:00
Benjamin Berg
65f2aa5c24 freebsd: Remove unused swap detection code 2022-04-01 18:28:01 +02:00
Benjamin Berg
bd488facf1 device: Move daemon/native object into construct only properties
Rather than this weird situation where they are immediately passed in
through the "coldplug" method. Doing this is the first step to make
UpDevice into an initable object (removing the "coldplug" method).
2022-04-01 18:25:20 +02:00
Benjamin Berg
77a20b84e4 device: Remove unplug, moving cycle breaking into dispose
Might as well use g_object_run_dispose to break the cycle to the display
device.
2022-04-01 18:25:20 +02:00
Benjamin Berg
51b4a39a81 native: Remove unused up_native_test declaration 2022-04-01 11:47:41 +02:00
Benjamin Berg
e995ebddc4 linux: Remove unused RefreshResult enum
The refresh functions only ever returned whether data was successfully
fetched or not. The failure return code was unused and the corresponding
code can be removed.
2022-04-01 11:47:41 +02:00
Benjamin Berg
f09a6e209d linux: Fix initial enumeration of Whats Up! device
We would not scan the TTY subsystem during coldplug, which means that
the device would not be detected if it is plugged in at daemon startup
time.
i
2022-04-01 11:47:41 +02:00
Benjamin Berg
1550d50f20 linux: Remove "usb" subsystem match
The hiddev driver has been in the "usbmisc" subsystem since kernel 3.7.0
or so. As such, we can simply drop the "usb" subsystem from our matches
at this point.
2022-04-01 11:47:41 +02:00
Benjamin Berg
888b1afc6d freebsd: Drop TODO referencing battery recall feature
The feature was removed a long time ago. So the TODO is obsolete.
2022-03-28 15:30:05 +02:00
Benjamin Berg
9058d45685 Remove Wakeups API
The API relied on /proc/timer_stats which has been removed from the
kernel in 2017. Since then, the API has been non-functional (yet
incorrectly reporting support because the support test was buggy).

Just remove it completely. The debian codesearch does not uncover any
API users. Also, I doubt that any new API (based on tracing scheduler
events as perf would do) would map well to what exists now. i.e. if
something like this is re-implemented in UPower or elsewhere, then the
API should likely look different.

And, realistically, if this does need root privileges (i.e. can't be
moved to use BPF programs or so on user units), then we can also create
a new small daemon that is launched on-demand just for that.
2022-03-24 17:02:27 +01:00
Benjamin Berg
2f81d69014 daemon: Initialize FD to -1 to avoid incorrect close
Also add an assert that the FD is -1 when we are about to grab the
inhibitor. Previously, we would just set the value early enough before
trying to close the FD, overwriting the incorrect initialization.
2022-02-25 10:27:33 +01:00
Benjamin Berg
72469426b7 input: Fix FD handling and let input stream close it
The open() call needs to check against the FD being <0 for error
detection. Also, add a missing close in one of the error paths and
change the code to let the input stream close the FD when it is not
needed anymore.

We still open() it manually just because we need to do an ioctl once.
2022-02-25 10:27:33 +01:00
Benjamin Berg
7192ff481b linux: Set FD to -1 rather than 0 when closing delay inhibitor 2022-02-25 10:08:19 +01:00
Benjamin Berg
4b5b8a451b daemon: Fix action timeout abortion
Aborting the critical action would not clear the ID. Which in turn meant
that we would never re-arm the timer if such an event occured.

Fixes: #172
2022-02-22 15:00:50 +01:00
Bastien Nocera
72cf3e637d daemon: Move logic to update_warning_level()
As a follow-up to dc891bd506

Closes: #173
2022-02-21 15:26:29 +01:00
Bastien Nocera
92b38e7420 up-daemon: Fix DisplayDevice state on battery hotplug
When a device is added, make sure to recompute the DisplayDevice state
so as not to wait for the first refresh.
2022-02-16 18:22:53 +01:00
Bastien Nocera
dc891bd506 daemon: Remove warning_level variable
It was only used in one function. The value should be kept in the
DisplayDevice instead, but we need to make sure that the UpDevice code
never changes the warning-level, only the daemon does.
2022-02-16 18:21:59 +01:00
Bastien Nocera
b6b3847466 daemon: Simplify up_daemon_startup()
This portion of up_daemon_startup() contains the exact same code as
up_daemon_update_warning_level(), so call
up_daemon_update_warning_level() instead.
2022-02-16 18:12:49 +01:00
Bastien Nocera
d753df7427 daemon: Remove duplicated check
No need to guard up_daemon_set_warning_level() with a check for the
value changing, up_daemon_set_warning_level() already checks for
that exact same equality.
2022-02-16 18:12:49 +01:00
Bastien Nocera
fc93b49a6d daemon: Fix return type of up_daemon_get_warning_level_local() 2022-02-16 13:30:55 +01:00
Dominique Leuenberger
55f4b165a5 build: link libplist 2022-02-15 10:52:06 +00:00
Pablo Correa Gómez
fe79199cac
meson: Increase test timeout to avoid failures in slow architectures
The test test_critical_action_is_taken_repeatedly has two long sleeps
of UP_DAEMON_ACTION_DELAY, which is currently set in the tests to 20 seconds.
As the global timeout for meson tests is 50 seconds, failures are likely
to occur, specially in slow architectures. Increase the timeout to 60
seconds to avoid this problem.

Closes #171
2022-02-14 13:13:56 +01:00
Benjamin Berg
13aed812fd linux: Only warn about event type if an action was taken
At least for "change" events the device is most likely simply one that
we are not handling at all. For these, we will convert the event to
"add" and continue to ignore it later on.
2022-02-11 15:26:24 +01:00
Bastien Nocera
13157bce08 linux: Update Bluetooth device alias when it changes
Closes: #169
2022-02-07 15:16:50 +00:00
Bastien Nocera
f596bd0164 build: Fix missing libm link on some platforms
This should fix the PPC64 and ARMv7 builds.
2022-02-07 13:57:27 +01:00
Benjamin Berg
dd3d63b274 history: Remove unused and bogus define 2022-01-27 14:50:47 +01:00
Benjamin Berg
d113f62727 history: Delay saving history even on low power
Otherwise we flush out the data much more often than needed. With this
change, we'll also wait up to 5 seconds even on lower power. Loosing 5s
of data shouldn't be too bad, and it may prevent additional disk writes.

But, more importantly, we need to deferre writing the data to a later
main loop iteration. If we did not do this, then we have an
write-amplification scenario where the history is written at least 4
times instead of once.

Closes: #150
2022-01-27 14:48:51 +01:00
Benjamin Berg
94af9d6f3d linux: Make test compatible with older dbusmock versions
The changes from 37b6d4b039 ("linux: Fix Bluetooth tests for
python-dbusmock changes") require a not-yet-released dbusmock version.
Simply catch the error and fall back to adding the properties in order
to be compatible with both old and new dbusmock versions of the bluez
service.
2022-01-27 13:11:45 +01:00
Benjamin Berg
50bdbe7e65 history: Fix time compression of data points
The algorithm tries to use floating point timestamps. However, the
precision of floating point is too low for unix time, causing rounding
issues. This can cause extra points to be inserted (or too few) under
some conditions, creating a scenario where the test-suite fails
randomly.

Do this properly by using 64bit integers for the time. The 64bit integer
should have enough head-room even for very long histories.

Closes: #167
2022-01-25 10:36:20 +00:00
Thomas Weißschuh
1b1f8f375c linux: explicitly recognize USB power supplies
Prevents a spurious warning:
"did not recognise USB path /sys/devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001, please report"

This does not actually change any functionality, as the heuristic for
the attribute "online" in up_device_supply_coldplug() would have
matches id, too.

Fixes #148
2022-01-24 14:09:24 +00:00
John Sheu
545e54713a up-daemon: fix inhibitor lock leak
The inhibitor lock should also be released when a critical action
timeout is cancelled, to avoid leaking the lock.
2022-01-24 14:03:46 +00:00
Bastien Nocera
1fdc0824b6 lib: Implement up_client_get_devices_async() 2022-01-23 23:26:33 +01:00
Bastien Nocera
95618dfad4 linux: Remove libtool support from test suite 2022-01-23 23:04:26 +01:00
Bastien Nocera
8f893964a2 tests: Add test for up_client_async*() functions 2022-01-21 22:35:28 +01:00
Bastien Nocera
04521b9870 linux: Fix warning when using fake UPS
When the battery level is refreshed on a fake UPS:
(upowerd:320760): UPower-Linux-WARNING **: 12:59:26.205: incomplete read (0<8)
2022-01-18 14:22:29 +01:00
Bastien Nocera
870a3a0c5b linux: Only try to open a device if it's not a fake UPS 2022-01-18 14:22:29 +01:00
Bastien Nocera
6996261d28 linux: Remember if a UPS is a fake UPS 2022-01-18 14:22:29 +01:00
Bastien Nocera
37b6d4b039 linux: Fix Bluetooth tests for python-dbusmock changes 2022-01-18 14:19:40 +01:00
Bastien Nocera
0847d0c674 linux: Make sure ChargeCycles is unknown in more cases
In the case where the kernel returns "0" as the cycle_count, we need to
assume this also means that the number of cycles is unknown.
2021-11-02 12:15:28 +01:00
Bastien Nocera
27709f6af4 tests: Add ChargeCycles test 2021-09-13 12:55:36 +02:00
Bastien Nocera
d4c4528dcc linux: Export charge cycles for batteries that support it
Closes: #152
2021-09-13 12:55:36 +02:00
Bastien Nocera
d0d6b633a0 linux: Remove unused variable
src/linux/up-device-supply.c: In function ‘up_device_supply_refresh_line_power’:
src/linux/up-device-supply.c:89:22: warning: unused variable ‘native_path’ [-Wunused-variable]
   89 |         const gchar *native_path;
      |                      ^~~~~~~~~~~
2021-09-07 17:20:48 +02:00
Bastien Nocera
0fd6b11085 all: Remove HAVE_CONFIG_H conditional
We always have a config.h now, and don't rely on autotools setting this
cflags for us to know it.
2021-09-07 17:20:48 +02:00
Bastien Nocera
5f4d16ad4d build: Fix idevice support always being off 2021-09-07 17:20:48 +02:00
Bastien Nocera
cadbaab1b2 linux: Bump tests timeout
We need a higher than default timeout as the
test_critical_action_is_taken_repeatedly test takes at least 2 suspend
cycles and those take at least UP_DAEMON_ACTION_DELAY (20 seconds).
2021-09-07 17:16:42 +02:00
Bastien Nocera
bdd2711c2b linux: Postpone importing libraries for tests
They're not needed and might not be available when we're trying to list
the included tests.
2021-09-07 17:16:42 +02:00
Bastien Nocera
b68fe26fc9 build: Require GIR to be created to run tests 2021-09-07 17:15:52 +02:00
Bastien Nocera
9035db94fc build: Add missing GLib log domains
The daemon sources and libupower-glib were built without their historic
log domains which meant some debug messages did not appear when running
upowerd in verbose mode.

This fixes the test_no_poll_batteries test.
2021-09-07 17:15:52 +02:00