It was introduced in 4b51f340c8
to prevent accessing user home during tests:
The only place where this the home is currently accessed is when loading
SIP accounts and these can already be overriden with
CALLS_SIP_ACCOUNT_FILE.
It seems that XDG_CONFIG_HOME is propagated to the flatpak runner,
even though it was only overriden for the test suite.
========================================================================
Building module calls in /builds/devrtz/calls/.flatpak-builder/build/calls-1
========================================================================
Error: module calls: Error opening directory '/builds/devrtz/calls/_build/calls': Permission denied
Reported at https://gitlab.gnome.org/Infrastructure/GitLab/-/issues/596#note_1654082
Operations on the database are not cancellable, so we need to ensure any
critical code (such as database migration) has completed.
Otherwise we risk leaving the database in a locked state (or worse):
WARNING **: 09:24:53.428: Failed to determine schema version: sqlite3_prepare_v2 failed: database is locked: CREATE TABLE IF NOT EXISTS _gom_version (version INTEGER);
As Calls cannot deal with call waiting we should disable it entirely.
This works around issues where call audio get's completely broken once
the waiting call is disconnected on the BM818 modem shipped with the
Librem 5.
See https://source.puri.sm/Librem5/OS-issues/-/issues/311
It has been reported that the BM818 sometimes unexpectedly
changes the call state from "active" back to "ringing-in"
(as reported by ModemManager) shortly after accepting an incoming call.
ModemManager[734]: <info> [modem1/call1] user request to accept call
ModemManager[734]: <info> [modem1/call1] call is accepted
ModemManager[734]: <info> [modem1/call1] call state changed: ringing-in -> active (accepted)
ModemManager[734]: <info> [modem1/call1] call state changed: active -> ringing-in (unknown)
This leads to a failed assertion and program termination.
Instead of crashing raising a critical warning is more appropriate
and may allow the user to pick up the call after all.
Closes: #547
self->best_match is never NULL:
The test suite used to wrap calls_contacts_provder_new() to always return
NULL which in turn caused the best match to be NULL.
This was done to avoid warnings raised by libfolks
about missing the primary store (eds).
This is no longer necessary as the environment now tells folks which
backend to use.
self->best_match is never NULL:
The test suite used to wrap calls_contacts_provder_new() to always return
NULL which in turn caused the best match to be NULL.
This was done to avoid warnings raised by libfolks
about missing the primary store (eds).
This is no longer necessary as the environment now tells folks which
backend to use.
self->best_match is never NULL:
The test suite used to wrap calls_contacts_provder_new() to always return
NULL which in turn caused the best match to be NULL.
This was done to avoid warnings raised by libfolks
about missing the primary store (eds).
This is no longer necessary as the environment now tells folks which
backend to use.
If folks is built with the 'eds' backend it will get used by default.
During testing the system address book should not be queried.
It might even be impossible if the environment is not set up to
connect to the session bus raising the following warning:
(process:701522): folks-WARNING **: 09:13:54.291: Failed to find primary PersonaStore with type ID 'eds' and ID 'system-address-book'.
Individuals will not be linked properly and creating new links between Personas will not work.
The configured primary PersonaStore's backend may not be installed. If you are unsure, check with your distribution.
Fixes: #427
The windows need to be removed from the GtkApplication because they are
holding references to the application which prevents proper cleanup.
Fixes: #508
It is more fitting than the default "test" stage and
has the desirable side effect that the Debian packaging jobs
no longer need to wait for flatpak jobs to finish.
As libfeedback uses GDbusProxy under the hood which defaults to timing
out after 25 seconds there is no need to handle timeouts explicitly.
Furthermore 1 second seems to not always be enough time to get a
response which leads to endless ringing.
Fixes#543
There is no need to enable or disable actions until the popover
is actually presented.
This also get's rid of having to be notified of changes to the
"can-add-contact" property which led to a segfault as the signal handler
was not properly cleared.
Fixes: #535
As the "can-add-contact" property is now always checked,
the menu item will be properly shown.
Fixes: #485
_GNU_SOURCE is needed for strcasestr().
The macro should be defined before including any headers. This broke
recently because glib.h seems to include string.h now.
Without --no-cache newly "built" images end up just creating a new tag
for old images, see below.
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.gitlab.gnome.org/gnome/calls/debian v0.0.20221013 a1c2d79e4f72 4 weeks ago 1.53 GB
registry.gitlab.gnome.org/gnome/calls/debian v0.0.20221117 4d2a38aa5bff 3 months ago 2.01 GB
registry.gitlab.gnome.org/gnome/calls/debian v0.0.20220817 4d2a38aa5bff 3 months ago 2.01 GB
gcovr > 5.1 (which is included in the latest Debian CI image) fails an
assertion because two different functions with the same name end up on
different lines because they are #ifdef'ed
The offending code is this:
G_DEFINE_TYPE_WITH_CODE
(CallsDummyProvider, calls_dummy_provider, CALLS_TYPE_PROVIDER,
G_IMPLEMENT_INTERFACE (CALLS_TYPE_MESSAGE_SOURCE,
calls_dummy_provider_message_source_interface_init))
G_DEFINE_DYNAMIC_TYPE_EXTENDED
(CallsDummyProvider, calls_dummy_provider, CALLS_TYPE_PROVIDER, 0,
G_IMPLEMENT_INTERFACE_DYNAMIC (CALLS_TYPE_MESSAGE_SOURCE,
calls_dummy_provider_message_source_interface_init))
There is already a gcovr issue here:
https://github.com/gcovr/gcovr/issues/586
The failed assertion looks like this:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gcovr/workers.py", line 78, in worker
work(*args, **kwargs)
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 337, in process_datafile
done = run_gcov_and_process_files(
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 514, in run_gcov_and_process_files
process_gcov_data(fname, covdata, abs_filename, options)
File "/usr/lib/python3/dist-packages/gcovr/gcov.py", line 165, in process_gcov_data
insert_file_coverage(covdata, coverage)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 159, in insert_file_coverage
return _insert_coverage_item(target, file.filename, file, merge_file, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 135, in _insert_coverage_item
merged_item = merge_item(target_dict[key], new_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 178, in merge_file
left.functions = _merge_dict(
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 99, in _merge_dict
_insert_coverage_item(left, key, right_item, merge_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 135, in _insert_coverage_item
merged_item = merge_item(target_dict[key], new_item, options)
File "/usr/lib/python3/dist-packages/gcovr/merging.py", line 268, in merge_function
assert left.lineno == right.lineno
AssertionError
When the only feedback of an event is unavailable on a system (e.g. no
vibration motor or LED) the "feedback-ended" signal is emitted
immediately and the end reason will be LFB_EVENT_END_REASON_NOT_FOUND.
In this case we need to change the target state, so that our logic does
not end up retriggering the event infinitely.
Previously our code assumed that g_cancellable_cancel() the async DBus
calls to libfeedback would guarantee that the underlying operation would
not be performed (i.e. triggering or ending a feedback).
However the endless ringing exhibited in #470 shows this assumption not
to hold. Therefore we avoid using g_cancellable_cancel () completely and
default to waiting for the async operation to finish.
update_ring () now sets the target state by inspecting managed calls and
the main logic will now step towards the target state:
Changing from regular/loud to soft/quiet ringing (or vice versa)
requires we first end feedback before (re)triggering it.
Additionally the "is-quiet" and "is-ringing" properties are replaced by
a new "state" property to allow changing the combination atomically.
Closes: #470