Andreas Traczyk 529b7cf529 troubleshooting: add configurable crash reporting with crashpad
This commit adds a basic crash-report system that can be optionally
configured to automatically send minidump crash-reports in addition
to product versions and a platform description including the OS
name and CPU architecture. Reports can be received at a configured
REST endpoint(POST). This endpoint URL can be configured using
a CMake variable `CRASH_REPORT_URL` which defaults to
"http://localhost:8080/submit".

- Introduces a new CMake option `ENABLE_CRASHREPORTS`, defaulting
  to OFF. This allows developers to enable crash reporting features
  at build time selectively. We also define a new macro with the
  same name to expose the state to QML in order to hide the UI
  components if needed.

- Implemented conditional inclusion of crashpad dependencies using
  `ENABLE_CRASHREPORTS`. If set, `ENABLE_CRASHPAD` is also enabled
  (other crash reporters exist and we may want to use them).

- 2 new application settings are added: `EnableCrashReporting` and
  `EnableAutomaticCrashReporting`. Default settings make it so
  crash-reports are generated but not automatically sent. With this
  default configuration, users will be prompted upon application
  start to confirm the report upload. Additionally, users may
  opt-in in order to have reports sent automatically at crash-time.

Gitlab: #1454
Change-Id: I53edab2dae210240a99272479381695fce1e221b
2025-01-13 15:56:11 -05:00
2023-11-23 08:52:36 -05:00
2023-07-27 09:59:43 -04:00
2024-04-11 16:04:45 -04:00
2024-12-17 16:00:21 -05:00
2024-12-30 16:42:35 -05:00
2022-10-07 17:30:06 -04:00
2025-01-02 12:29:20 -05:00
2024-12-06 16:16:21 -05:00
2024-01-03 09:54:49 -05:00

Jami

jami-logo

Share, freely and privately

Introduction

Jami provides all its users a universal communication tool, autonomous, free, secure and built on a distributed architecture thus requiring no authority or central server to function.

jami is the cross platform client for Jami.

For more information about the jami project, see the following:

Getting involved

Notes

  • Coding style is managed by the clang-format and qmlformat, if you want to contribute, please use the pre-commit hook automatically installed with ./build.py --init --qt=<path/to/qt>
  • We use gerrit for our review. Please read about working with Gerrit if you want to submit patches.

Build

cf INSTALL.md

License

Copyright (C) 2020-2024 Savoir-faire Linux Inc.

Jami is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html for the full GPLv3 license.

Description
Client based on Qt for GNU/Linux, macOS and Windows
Readme 102 MiB
Languages
C++ 47.8%
QML 43.4%
Python 2%
Shell 1.6%
CMake 1.6%
Other 3.4%