Commit Graph

175 Commits

Author SHA1 Message Date
Hartmnt
e7dc72f116 FEAT(installer): Add option to skip rebuilding MSI files 2025-09-27 10:50:47 +00:00
Robert Adam
8618c0993d BUILD(overlay): Unify use of overlay-xcompile option across OSes 2025-09-20 18:24:01 +02:00
Robert Adam
8ec1f98a2f REFAC(client,server): Remove GSL dependency
The only object we were using was gsl::span, which is now replaced with
std::span.
2025-09-18 10:41:51 +02:00
0xC0ncord
38d5d9c0af
BUILD: unbundle utf8cpp
Add an option to use the bundled utf8cpp version rather than building it
unconditionally.
2025-09-16 10:10:37 -04:00
Thomas Windt
10cd98ecf7 FEAT(server,client): use CLI11 for cli parsing
Implements #6063
2025-09-07 12:13:06 +02:00
Robert Adam
67d5b95609 MAINT: Require C++20 2025-08-04 16:23:39 +02:00
Hartmnt
5e8561551f
Merge PR #6824: Documentation Updates 2025-06-01 00:31:47 +02:00
Hartmnt
cbe5bb29b4 DOCS: Mention and explain the BUILD_NUMBER cmake variable 2025-05-31 14:23:30 +00:00
Michael Maxwell
a6ad797101 DOCS: Remove duplicate "bundled-json" CMake option 2025-05-29 20:37:14 +02:00
Hartmnt
8a83d77a1b DOCS: Require Qt6 in macOS build instructions 2025-05-26 12:03:29 +00:00
Robert Adam
2ca0cceb45 DOCS(ice): Document how to mark read-only access functions 2025-05-04 15:05:00 +02:00
Hartmnt
d776b0bab3 DOCS: Specify that building database backends requires additional header files 2025-04-05 14:51:20 +00:00
Hartmnt
44a2a0308d BUILD(cmake): Only build postgres and mysql backends on server by default 2025-04-05 14:40:50 +00:00
Beric Bearnson
54053562d5 DOCS: Fix markdown image link of TCP packet 2025-04-03 11:28:02 -06:00
Robert Adam
40f4b01fb3 Allow to disable LTO for test cases separately 2025-03-28 19:32:53 +01:00
Robert Adam
e7f973da59 Merge remote-tracking branch 'upstream/master' into refac-database 2025-03-27 19:08:41 +01:00
Robert Adam
25af29df43 DOCS: Update available CMake options 2025-03-27 18:51:14 +01:00
Robert Adam
d114c08add
Merge PR #6607: FEAT(client): Restore RNNoise for version 0.2 2025-03-16 20:18:27 +01:00
Jan Klass
91ab126e22
Merge PR #6719: DOCS(dev): Improve wording and formatting of network protocol docs
Drop the 'unreliable' label from UDP. Delivery is not guaranteed, but delivery reliability largely depends on network context. Unreliable makes it sound more negative and error-prone than it is. We use UDP because and with the understanding that in most cases it is quite reliable, or reliable enough, rather than simply being unreliable. The point is that we use it for low-latency. Everything else is technical reasoning.

Prefer short statement sentences over long comma sentences.

'an TLSv1 encrypted connection' -> 'a TLSv1 encrypted connection'

Format message type name as inline code to indicate it being a "type" name.
2025-02-01 19:27:35 +01:00
Jan Klass
37aa66b19b DOCS(dev): Improve wording and formatting of network protocol docs
Drop the 'unreliable' label from UDP. Delivery is not guaranteed, but delivery reliability largely depends on network context. Unreliable makes it sound more negative and error-prone than it is. We use UDP because and with the understanding that in most cases it is quite reliable, or reliable enough, rather than simply being unreliable. The point is that we use it for low-latency. Everything else is technical reasoning.

Prefer short statement sentences over long comma sentences.

'an TLSv1 encrypted connection' -> 'a TLSv1 encrypted connection'

Format message type name as inline code to indicate it being a "type" name.
2025-02-01 14:52:19 +01:00
Jan Klass
7cee314d86 DOCS(dev): Add network protocol outdated and up-to-date information 2025-02-01 14:45:10 +01:00
Davide Beatrici
fb6422aa0d
Merge PR #6707: FEAT(client): Introduce new logging system based on spdlog 2025-01-29 04:34:53 +01:00
Jan Klass
b50ead336e DOCS(dev): Convert tables (where possible)
Two tables are not converted because they are not flat tables but contain "complex" content/structure.
2025-01-26 14:07:15 +01:00
Jan Klass
6247013cc2 DOCS(dev): Format field text definitions 2025-01-26 13:54:26 +01:00
Jan Klass
6c5615ba99 DOCS(dev): Mark up URL 2025-01-26 13:54:25 +01:00
Jan Klass
2096d56022 DOCS(dev): Convert text code fencing 2025-01-26 13:54:25 +01:00
Jan Klass
bebb473d5f DOCS(dev): Replace in-table code fencing 2025-01-26 13:54:25 +01:00
Jan Klass
02b3d6bf15 DOCS(dev): Drop rst ref defs 2025-01-26 13:54:24 +01:00
Jan Klass
79a82f0a68 DOCS(dev): Replace references in text 2025-01-26 13:54:24 +01:00
Jan Klass
4c16d55df6 DOCS(dev): Convert file links 2025-01-26 13:54:24 +01:00
Jan Klass
e844cefec6 DOCS(dev): Drop underline escape 2025-01-26 13:54:24 +01:00
Jan Klass
94246a1345 DOCS(dev): Convert tables to code blocks 2025-01-26 13:54:23 +01:00
Jan Klass
809b7af0ca DOCS(dev): Convert footnotes 2025-01-26 13:54:23 +01:00
Jan Klass
69bec3274d DOCS(dev): Convert image refs 2025-01-26 13:24:58 +01:00
Jan Klass
24d71a3cc6 DOCS(dev): Convert headlines 2025-01-26 13:24:57 +01:00
Jan Klass
989329292f DOCS(dev): Rename rst files to md
This is done as a separate commit to retain Git change file history association. (Git does not store renames. It assumes renames according to content similarity.)
2025-01-26 13:24:57 +01:00
Jan Klass
5992aa3765 DOCS(dev): Drop broken, unnecessary fig ref
The figure follows below the paragraph.
2025-01-26 13:24:35 +01:00
Jan Klass
2aaae8c375 DOCS(dev): Fix UTP to TCP ref
The cross-document reference apparently worked on readthedocs (our previous docs), but does not work on GitHub.

The cross-document figure reference is replaced with a file reference.
2025-01-26 12:52:53 +01:00
Jan Klass
d1fc0334f4 DOCS(dev): Replace nbsp with normal spaces 2025-01-26 11:23:28 +01:00
guillermo
e59a275f54 FEAT(client): Restore RNNoise for version 0.2
Reverted the merge which added ReNameNoise as an RNNoise replacement.
Added the git submodule from xiph/rnnoise after removing ReNameNoise.
Chose to go with rnnoise's `main` here.

Resolves mumble-voip#6395
Reverts mumble-voip#6364
2025-01-25 16:47:01 -07:00
Davide Beatrici
b8357e8a25 FEAT(client): Introduce new logging system based on spdlog
Sinks:

- OutputDebugString() (for debugger on Windows)
- Standard output stream (stdout)
- File
- Developer console (Qt widget)

Improvements compared to our old logging system based on Qt:

- Duplicate messages are skipped if less than 5 seconds have passed. When that happens, an informative message is printed.
- The previous format/pattern is retained, but the log level (e.g. "<W>") is colored based on the severity.
- The log is now written to a file on all platforms, not only Windows and macOS.
- When the log file's size reaches 5 MiB, the sink renames it and creates a new one. Up to 4 files are kept:
    Console.txt   -> Console.1.txt
    Console.1.txt -> Console.2.txt
    Console.2.txt -> Console.3.txt
    Console.3.txt -> <delete>
- We can eventually create multiple loggers, ideally one for each facility (Audio, ServerHandler, etc.).
  That would allow us to quickly filter log messages and know right away which subsystem is responsible for them.
- Modern C++ string formatting. This of course only applies to the new functions such as log::debug(), not qDebug().

Only one "feature" is not reimplemented: showing a dialog in case of a fatal error, right before exiting the program.
However, that only worked on Windows and macOS using their native API, to avoid depending on a Qt event loop.
2025-01-21 02:55:19 +01:00
Robert Adam
70b1a4e529
Merge PR #6623: DOCS(protocol): Integrate network protocol documentation 2025-01-05 19:07:50 +01:00
Hartmnt
3326494733 DOCS: Mention differences in documentation across branches
We should specify that the build documentation will change over time
and the correct branch needs to be selected for any given version.

Fixes #6658
2024-12-22 17:57:32 +00:00
Diederik de Haas
9c7877f1ef
DOCS(build_linux): Add missing B-Ds to Debian instructions
Mumble can be compiled with several system libraries, so add their
development library to the list of Build-Depends.
In order to actually compile with them, you need to specify the
configuration options as described in cmake_options.md.

Those are for the newly added B-Ds:
1) -Dbundled-gsl=OFF
2) -Dbundled-speex=OFF
3) -Dbundled-json=OFF

Closes: #6644
2024-12-03 18:06:07 +01:00
Diederik de Haas
55d5be2ea8
DOCS(build_linux): Actually update Debian B-D: pkg-config -> pkgconf
Since Debian Bookworm the pkg-config package is a transitional package
to pkgconf, so update the build dependency install instructions to point
to its target.

In PR 6643 I accidentally updated the instructions for Ubuntu instead of
for Debian, so now actually update the instructions for Debian as well.
FTR: In Ubuntu Noble (2024.04) it's also a transitional package.

Link: https://github.com/mumble-voip/mumble/pull/6643
2024-12-03 18:05:06 +01:00
Diederik de Haas
2a38114480
DOCS(build_linux): Sort Debian Build Dependencies
This makes it (much) easier to check whether one has all the Build
Dependencies installed or not.
2024-12-03 17:59:03 +01:00
Diederik de Haas
1d69806610
DOCS(build_linux): Update Debian B-D: pkg-config -> pkgconf
Since Debian Bookworm the pkg-config package is a transitional package
to pkgconf, so update the build dependency install instructions to point
to its target.
2024-11-28 10:48:48 +01:00
Jan Klass
be8874f123 DOCS(protocol): Add file references to README.rst 2024-11-03 18:21:44 +01:00
Jan Klass
eae0eac75e DOCS(protocol): Combine README.rst
In a folder, GitHub shows a README by default, below the file list.

Combining the index.rst and introduction.rst, with text fixups, will serve as an appropriate landing page/doc.
2024-11-03 17:58:34 +01:00
Jan Klass
b39bbf2dec DOCS(protocol): Drop Sphinx configuration
Dropping the resources for Sphinx documentation generation drops support for generating this documentation into various formats (see make file; html, epub, and other less useful ones).

This network protocol documentation is the odd one out compared to our other documentation. The only one with this system.
Diverse tech has a maintenance cost, and the previous distance to our code made more likely to be missed for updates and discovery.
Handling only the network protocol documentation in this way feels disconnected/diverging.
Although readers may use the docs to implement clients and servers against only the docs, the question is whether the technology and maintenance additions are worth it.

Having simple structured text documentation files should serve us well enough.
It does for other developer documentation / documentation for developers.
2024-11-03 17:54:24 +01:00