Commit graph

1711 commits

Author SHA1 Message Date
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
90c25b4fd1 rules: Update udev rules and migrate to use hwdb
This makes rule matching more efficient. We just need to copy the
variables over into the hiddev device so that there is no need to change
the C code to match the parent USB device. That said, the change in C
wouldn't be that hard either.

See https://github.com/networkupstools/nut/pull/1342
2022-04-01 11:47:17 +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
70a1a59efa ci: API changed, update commit and check-abi build 2022-03-24 17:02:53 +01: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
Matt Turner
1003d5c2a6 meson: Don't search for gtk-doc if disabled 2022-03-20 15:33:56 -07:00
Benjamin Berg
c889154ec8 Release 0.99.17 2022-03-09 18:46:34 +01:00
Pierre Labastie
9cca8a244b meson.build: Output correct paths for sbindir and datadir 2022-03-05 11:09:14 +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
2e5ba3ef80 Release 0.99.16 2022-02-23 17:46:51 +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
Bastien Nocera
090e79ea54 lib: Fix UpClient reference leak
The task holds a reference to the UpClient and won't let it go until the
task is finalized.

See https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/merge_requests/115
2022-02-16 12:23: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
Benjamin Berg
e4a8656521 Release 0.99.15 2022-02-09 17:53:54 +01:00
Benjamin Berg
5c4f06a791 RELEASE: Update notes on how to do releases 2022-02-09 17:53:54 +01:00
Bastien Nocera
13157bce08 linux: Update Bluetooth device alias when it changes
Closes: #169
2022-02-07 15:16:50 +00:00
Benjamin Berg
da05dd4b81 meson: Return a disabler if xsltproc is not found
Fixes: #170
2022-02-07 15:59:13 +01:00
Benjamin Berg
fb02a57a2b meson: Clarify why build_by_default is needed for some custom_targets 2022-02-07 15:57:21 +01: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
Jan Alexander Steffens (heftig)
1dc74629ff build: Fix version macros
The project version is a string. We need to split it into an array of
version components.
2022-02-05 02:34:28 +00:00
Jan Alexander Steffens (heftig)
8eb8ab1056 build: Fix default udevrulesdir
We need to append 'rules.d' to the udev_dir.
2022-02-05 02:26:50 +00:00
Benjamin Berg
ab9520a7aa Release 0.99.14 2022-02-02 20:12:58 +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
Bastien Nocera
07ad5a9b4c lib: Simplify loop using g_auto 2022-01-24 18:27:43 +01:00
Bastien Nocera
5e8b96ea24 lib: Prepare headers for internal g_auto* usage 2022-01-24 18:27:43 +01:00
Bastien Nocera
0d08f8feea lib: Remove unnecessary cast 2022-01-24 18:20:16 +01: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
74aefb0fd7 lib: Add internal helper for up_client_get_devices2()
Making sure to pass GCancellable and GError arguments.
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
c5282324d8 lib: Add up_client_new_async()
Closes: #121
2022-01-21 22:35:24 +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