This commit enables App Sandbox for Jami on macOS.
Folders Migrated:
- App data(accounts, ect)
- Jami cache
- Sparkle cache
Entitlements:
- Access to Movies folder (default recording location)
- Access to Downloads folder (default download location)
- Access to Pictures folder (default screenshots location)
- Camera, microphone, network client/server
- User-selected files
User Impact:
- User preferences will be reset to defaults (theme,
notifications, download locations)
- Download folder "~/Library/Containers/.../Data/Downloads",
files will be accessible in "~/Downloads"
- Screenshots folder is "~/Library/Containers/.../Data/Pictures",
files will be accessible in "~/Pictures"
Change-Id: I5af4e88fc54e0942ad8d4ba53c8bd2f7324d550a
Added the ability for users to set client-side preferences. The current
implementation only has one preference available, that being the ability
to override the welcome page image.
GitLab: #2116
Change-Id: Ibdb6ec48e21961ecb39a0c8fa7889598bab4b188
Add combo boxes for users to select if they want to use system,
audioProcessor, auto, or off for their echo cancellation and noise
reduction configuration. Also add the ability to toggle voice activity
detection via a toggle switch.
Note: requires https://review.jami.net/c/jami-daemon/+/31960
patch for jami-daemon
GitLab: #2103
Change-Id: I1fc1e6752df601ee030719c8df67ce5166a61591
On macOS, contrib outputs are placed under
<arch>-apple-darwin<ver> for single-arch builds and
under apple-darwin<ver> for multi-arch builds. Adjust
detection so the client picks the right include path.
Change-Id: Ia9ae2bb7b1f0d6e42cb15364b1921e94f2602836
In preparation for the upgrade to Qt 6.8, update CMakeLists.txt to ensure
that the client links against the same version of libavutil as the one
built by the daemon.
GitLab: #1944
Change-Id: I45bbf9f698a869b9028fc0489f2cd518a1f45781
This reinstates commit f6c8197cba, which was seemingly reverted by
mistake in 4d2c55348b ("packaging: migrate from Qt 6.2.3 to
6.4.3").
Change-Id: I603e004431be0503be0acdd7ce37fa5aaa4ecd91
CMake's enable_testing needs to be called from the root of the project
as well for CTest to discover the tests in the build tree. This is
covered in CMake's manual in section 7.2.17 enable_testing.
Change-Id: I7c9b845c52064ff83e39b483b76137b529c1a9a4
- Developer id must be rDns identifier of developer
- Exported icons should match rDNS of app id
- Release version and dates should be included
- Added light and dark branding colours for Flathub banner
- Contact url removed - does not pass appstream validation
Change-Id: Ic5e2a5abeab4310ea87a34cc81363d1851135bcd
Search for libraries in the system first, falling back to bundled
copies in case they aren't found.
Change-Id: I10e154f18c569d87dbdcbee3341316ceed57f13c
GitLab: #1506
The application currently has a different build version than the one set
in Jenkins. This causes issues in the crash reports on windows where
they contain a different build version than the one defined on Jenkins.
This leads to the names of the build artifacts on dl.jami.net not
matching the crash report's build version.
Changes:
- Add build version as parameter to the build-windows.py script.
- Propagate build version value to the application through the
BUILD_VERSION symbol.
- Deprecate version.h file and VERSION_STRING symbol.
GitLab: #2045
Change-Id: I7986679aaeebf2bcbbd63a781499f5a50e089712
The output directory for windows builds currently matches either Release
or Beta. This does not work as Beta is only a build option, not a build
type. Changes :
- Change build output directory to match the cmake build type (Release
or Debug)
- Change Beta output path references to Release
Change-Id: Ib513f177d93e3c9fb529e00aa160443ac2e804b5
Implement the hunspell spellchecker for Windows and MacOS. It also
changes the base implementation for Linux. The system dictionaries
(if any) are aggregated with those installed from the LibreOffice
repository via Jami's dictionary management interface.
This commit implements a major refactoring of the spellcheck system
to improve UI responsiveness and user experience:
Core Changes:
- Used QAbstractListModel to represent the list of dictionaries
- Added new QML components:
- DictionaryInstallView.qml
- ManageDictionariesDialog.qml
- SpellCheckLanguageComboBox.qml
- Updated property names for clarity
- Fixed a bug in the settings combo box custom component that caused
out-of-range errors for filtered models
GitLab: #1997
Change-Id: Ibd0879f957f27f4c7c5720762ace553ca84e2bc3
We need the EXCLUDE_FROM_ALL argument to prevent Hunspell's headers from
being installed by Jami's "install" make target.
GitLab: #1997
Change-Id: Ie60c6f4dc8dc8b33fbccb95d667b4b2eafefecb6
Implement a first version of the spellcheck for linux that use the
systemwide installed dictionaries.
GitLab: #1997
Change-Id: I7158e6c61061e7d0a7fe651069247227bbe399a4
Brings in some build fixes. Also prevents applying the qmsetup patch
on Windows, and calls build-windows.py --init with the qt parameter
which is required if when using Qt installed in a non-standard location.
Change-Id: I40facbdc93289792130a15b0f4151f78137bc1ef
This commit adds a patch for QWindowKit to ensure that it always
installs its dependency QMSetup in a directory where CMake will be able
to find it. This makes the previous QWindowKit patch unnecessary and
fixes a build issue when packaging Jami on Debian and Ubuntu that
started occurring when QWindowKit was updated in commit 6b70ffc.
GitLab: #1976
Change-Id: I5f23fcbb612aa6d0eb0e77e9a5a006b24a5af082
We need the EXCLUDE_FROM_ALL argument when adding git submodules via
add_subdirectory in the CMakeLists file. Without it, the "install" make
target for Jami will also install the submodule's files.
GitLab: #1947
Change-Id: I477c4733951ac5a9fa2b6a52a1463c4a585ab8b7
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
The AppStream specification includes both a "metainfo" file format,
which can be used (among other things) to provide metadata about a
specific application, as well as a "catalog" file format used to provide
information about the contents of a repository. This patch adds a
"catalog" file for the Jami repos, which seems to be necessary in order
for some graphical package management applications to be able to launch
or uninstall Jami. In particular, this was an issue with GNOME Software
on all the rpm-based distributions supported by Jami (Fedora, openSUSE,
AlmaLinux).
This patch also fixes a few minor noncompliance issues with the existing
metainfo and .desktop files:
- the metainfo and .desktop files were renamed so that the names'
prefixes match the application's ID as defined by the <id> tag in the
metainfo file (in our case "net.jami.Jami") [1];
- the <br/> tags in the metainfo file were removed (they are not
supported -- metainfo files only allow a very limited number of tags,
not arbitrary html [2]); the list (<ul>) and list item (<li>) tags are
now used instead;
- the invalid categories "Communication" and "Productivity" were removed
[3, 4].
[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/AppData/
[2] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description
[3] https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-categories
[4] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html
GitLab: #1842
Change-Id: I4a8bab79b6e54d02c08f509d7a9196a0a2e1541e
Currently, the user-facing version number in the about dialog, is a
build-time timestamp that does help us isolate the project versions
accurately. Ultimately, we need to be able to reproduce issues
present in specific versions of Jami. This commit introduces a new
version number in the form: <client_sha>.<jamicore_sha>, allowing
us to reproduce builds more accurately.
Gitlab: #1820
Change-Id: Ie7e20b20da65284e33e745996c410f539b65080c
This will prevent a graphical issue present when disabling QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS to avoid the Windows 10 top border issue for the frameless window option. This allows us to remove the temp workaround that likely introduces side effects.
Gitlab: #1581
Change-Id: I36801064d31e2380312d73f88233e8ed9b757403
- Declares global logging categories for libclient and the app
- Introduces some macros for categorized logging
- Removes the noisy namedirectory logs by default
- Logs file/line number URIs in debug mode
Change-Id: I9dadadc6e93ef91cc70d206b7225aeb7a06f8773
This commit makes the necessary changes to migrate from Qt 6.5.3 to
Qt 6.6.1 and fixes the following issues:
- EditedPopup.qml: "layout polish loop" and "recursive rearrange"
errors (GitLab: #1510) as well as an unreported bug where text was
clipped instead of elided
- BaseContextMenu.qml: QML warning ("Created graphical object was not
placed in the graphics scene.")
The daemon is also bumped in order to include a patch for a build issue
on openSUSE Leap (GitLab: #1552).
GitLab: #1466
Change-Id: I12df2f84067ebe961368879e08ff7ef275d93395
Broken by https://review.jami.net/c/jami-client-qt/+/26560.
This moves some logic that has been previously duplicated between the app and tests into a common routine.
Change-Id: I40f1af38893cfcef751578d3e4db7d7ba040505b
Several major changes to the layout have been made.
- The chat search bar is moved into the message search layout.
- The Searchbar component is stripped of unused features.
- Some remaining logic that was used to switch main loader components is removed.
- ViewCoordinator.getView gets a "force create" parameter and we no longer preload low-cost views.
NOTE: the option to use a frameless window is available within general settings
Gitlab: #1524 (Frameless Window)
Change-Id: Iec6bdf162cb0335d3ae3d9bd09dd9783991a4a57
WebEngine view destruction crashes on Windows 10 when using Vulkan. Disable the preference for now. It will default to D3D11.
Gitlab: #1515
Change-Id: I8396163a937b3b439569115887020d49e3a8e751