Commit Graph

8420 Commits

Author SHA1 Message Date
Robert Adam
18b531b6b4
Merge pull request #4416: CI(azure): Disable environment caching
This feature of AzurePipelines has only been introduced recently.
However it turned out that on average the caching of the environment
takes significantly more time than simply downloading it on every run.
Thus this commit disables environment caching again.
2020-08-14 16:54:07 +02:00
Robert Adam
0a335d00e2
Merge pull request #4423: FIX(client): Compile error without manual plugin
Whe using CONFIG+=no-manual-plugin with the old qmake buildsystem or
-Dmanual-plugin=OFF with the new cmake one, there were compile errors
due to the ManualPlugin being referenced in other files without include
guards.

This commit makes sure that in case the manual plugin is not included,
other code won't reference it either.

Fixes #4422
2020-08-13 21:23:00 +02:00
Robert Adam
a0fa7cc0b1 FIX(client): Compile error without manual plugin
Whe using CONFIG+=no-manual-plugin with the old qmake buildsystem or
-Dmanual-plugin=OFF with the new cmake one, there were compile errors
due to the ManualPlugin being referenced in other files without include
guards.

This commit makes sure that in case the manual plugin is not included,
other code won't reference it either.

Fixes #4422
2020-08-13 20:18:21 +02:00
Robert Adam
f0b8a1683a CI(azure): Disable environment caching
This feature of AzurePipelines has only been introduced recently.
However it turned out that on average the caching of the environment
takes significantly more time than simply downloading it on every run.
Thus this commit disables environment caching again.
2020-08-12 18:26:36 +02:00
Davide Beatrici
83182a771d
Merge PR #4408: FEAT(client): print extended error when QOSRemoveSocketFromFlow() fails 2020-08-12 18:21:22 +02:00
Robert Adam
b11ac8f7c5
Merge pull request #4414: FIX(certificate): Retrieve QSslConfiguration after setting CA
Commit bdb12c6 added a regression for servers built with QT older than version
5.15. After this commit these servers do not server intermediate certificates
anymore. This happens because the QSslConfiguration is retrieved before adding
the CA certificates to the socket and is reinserted into the socket again after
adding the CA certificates, thereby overwriting the CA certificates added in
between.

This commit fixes that by retrieving the QSslConfiguration just after setting
the CA certificates in case an older QT version than 5.15 is used.
2020-08-12 17:21:01 +02:00
MadMaurice
b47e309f31 FIX(certificate): Retrieve QSslConfiguration after setting CA
Commit bdb12c6 added a regression for servers built with QT older than version
5.15. After this commit these servers do not serve intermediate certificates
anymore.  This happens because the QSslConfiguration is retrieved before adding
the CA certificates to the socket and is reinserted into the socket again after
adding the CA certificates, thereby overwriting the CA certificates added in
between.

This commit fixes that by retrieving the QSslConfiguration just after setting
the CA certificates in case an older QT version than 5.15 is used.
2020-08-11 23:06:25 +02:00
Davide Beatrici
54bd01f9e6
Merge PR #4413: FIX(cmake): set CMAKE_WIX_UPGRADE_GUID and generate CMAKE_WIX_PRODUCT_GUID 2020-08-11 22:59:57 +02:00
Davide Beatrici
847bdb7079 FIX(cmake): set CMAKE_WIX_UPGRADE_GUID and generate CMAKE_WIX_PRODUCT_GUID
This commit fixes two issues:

1. The installer ignoring Mumble < 1.4.0 installations. This resulted in two separate entries in the installed programs list and a cluttered installation folder.
2. The installer thinking that the product is already installed even if it's a different build.

The first problem was caused by CMAKE_WIX_UPGRADE_GUID being explicitely set to a wrong value, due to an extra line in the file.

The second problem was caused by CMAKE_WIX_PRODUCT_GUID being explicitely set to a static value due to us misunderstanding the "ProjectGuid" variable in the WiX project we used until 1.4.0.
We thought it referred to the MSI product GUID, but instead it's just the MSBuild project identifier.
Also, CMake's WiX documentation clearly says that the installer will abort if it detects a pre-existing installation that uses the same GUID: https://cmake.org/cmake/help/latest/cpack_gen/wix.html#variable:CPACK_WIX_PRODUCT_GUID
2020-08-11 04:03:16 +02:00
Davide Beatrici
62c4523bc1
Merge PR #4412: FIX(cmake): define "MUMBLE_VERSION_STRING" to short version (e.g. "1.4.0") 2020-08-11 00:32:32 +02:00
Davide Beatrici
2f8d685cca FIX(cmake): define "MUMBLE_VERSION_STRING" to short version (e.g. "1.4.0")
This fixes the version appearing as "0.0.0" in builds produced by CI.

We should probably choose a better name for the two defines. Perhaps "MUMBLE_VERSION_SHORT" and "MUMBLE_VERSION_EXTENDED".
2020-08-10 23:32:21 +02:00
Davide Beatrici
523cebf53e
Merge PR #4411: MAINT(cmake): Enable DBus for the client 2020-08-10 23:15:49 +02:00
Robert Adam
556759213a
Merge pull request #4410 : MAINT(cmake): Only return compilable targets
Without this change it could happen that get_targets returned
non-compilable targets (e.g. install or uninstall targets) and this
could lead to errors when e.g. trying to set compile options on those
targets.
2020-08-10 22:27:06 +02:00
Robert Adam
13ca7fd9e2 MAINT(cmake): Enable DBus for the client
The dbus config option has been respected in the server's CMakeLists.txt
but the client ignored the option. This is corrected by this commit.

Fixes #4409
2020-08-10 21:45:06 +02:00
Robert Adam
e0a27b1e7a MAINT(cmake): Only return compilable targets
Without this change it could happen that get_targets returned
non-compilable targets (e.g. install or uninstall targets) and this
could lead to errors when e.g. trying to set compile options on those
targets.
2020-08-10 20:57:39 +02:00
Davide Beatrici
45e2d2419c FEAT(client): print extended error when QOSRemoveSocketFromFlow() fails
This should help us investigate why a crash happens immediately after the function fails on Windows 10 Insider Build 20185.
2020-08-09 20:28:25 +02:00
Davide Beatrici
e563b1f2a4
Merge PR #4404: CI(azure-pipelines): switch to latest build environment 2020-08-09 20:04:31 +02:00
Robert Adam
b77aefe6fa
Merge pull request #4403: MAINT: Disable warnings for 3rdparty projects
In order to not be spammed with warnings from 3rdparty projects that we
make use of in Mumble, this commit modifies the respective cmake files
in a way that disables warnings for the respective projects.
2020-08-09 17:01:00 +02:00
Robert Adam
884fc40bc5 MAINT: Disable warnings for 3rdparty projects
In order to not be spammed with warnings from 3rdparty projects that we
make use of in Mumble, this commit modifies the respective cmake files
in a way that disables warnings for the respective projects.
2020-08-09 16:10:53 +02:00
Davide Beatrici
02e44601d7 CI(azure-pipelines): switch to latest macOS build environment 2020-08-09 01:25:33 +02:00
Davide Beatrici
57d5b8a246 CI(azure-pipelines): switch to latest Windows x86_64 build environment
The x86 build is already using the latest environment because it was introduced very recently.
2020-08-09 01:23:14 +02:00
Robert Adam
06d0dbb5df
Merge pull request #4337: Transifex translation update
New translation updates available from transifex
https://www.transifex.com/organization/mumble/dashboard/mumble
2020-08-05 09:44:51 +02:00
Robert Adam
a4f789659c
Merge pull request #4369: FEAT(client): Allow specifying config file via commandline switch
This adds the switch -c/--config to the mumble client. If -c is followed by a filename, this file will be read instead of the standard config.
A new config option database= has been added to the 'General' section of the ini file. This can be used to specify a different database which is necessary to run multiple completely separate Mumble instances at the same time.

Additionaly the (undocumented) function to merge another ini file by providing it as a parameter has been removed as it was conflicting with the added functionality.

FIXES #3953
2020-08-04 21:46:10 +02:00
Popkornium18
ee9cc7b63e Translation update
Updating 'mumble_en.ts'...
    Found 1891 source text(s) (4 new and 1887 already existing)
    Removed 2 obsolete entries
2020-08-04 20:39:04 +02:00
Popkornium18
4edae462fa FEAT(client): Allow specifying config file via commandline switch
This adds the switch -c/--config to the mumble client. If -c is
followed by a filename, this file will be read instead of the
standard config. A new config option database= has been added to
the 'General' section of the ini file. This can be used to specify
a different database which is necessary to run multiple completely
separate Mumble instances at the same time.

Additionaly the (undocumented) function to merge another ini file
by providing it as a parameter has been removed as it was
conflicting with the added functionality.

FIXES #3953
2020-08-04 20:38:33 +02:00
Robert Adam
102c55c7a0
Merge pull request #4396: CI(windows): Zip all PDB files
Instead of publishing each and every PDB file separately, we now zip
them together into an archive and publish that. That'll reduce the
amount of published files which should make it easier to find what
you're looking for.
2020-08-04 17:47:53 +02:00
Robert Adam
ec3fcf6139
Merge pull request #4395: CI(azure): Don't overwrite build artifacts
As of now the built x86 files overwrite the x64 ones since the x64
build is usually done first but they both produce files of the same
name.

With this commit the build artifacts for x86 and x64 are separated.
2020-08-04 16:25:24 +02:00
MumbleTransifexBot
1c90b2b020 Transifex translation update
Mode: default
Minimum percent translated: 0
Matched 45 languages
2020-08-04 16:24:03 +02:00
Robert Adam
cbc4dddd4c CI(windows): Zip all PDB files
Instead of publishing each and every PDB file separately, we now zip
them together into an archive and publish that. That'll reduce the
amount of published files which should make it easier to find what
you're looking for.
2020-08-04 15:58:30 +02:00
Robert Adam
dd31b119ae CI(azure): Don't overwrite build artifacts
As of now the built x86 files overwrite the x64 ones since the x64
build is usually done first but they both produce files of the same
name.

With this commit the build artifacts for x86 and x64 are separated.
2020-08-04 15:42:55 +02:00
Robert Adam
ed0a737521
Merge pull request #4394: FIX(client): Discard oversized UDP packets
If a received UDP is greater than what our allocated buffers can hold,
they are discarded as of now. Previously they have been trimmed down but
the untrimmed size was used in following code which could lead to stack
corruption.
2020-08-03 18:09:51 +02:00
Robert Adam
b6fe522ec5
Merge pull request #4392: FIX(server): Packet size issues
This PR fixes 2 issues in the server's code that have something to do with packet sizes:

1. Make sure poslen <= len in order for len - poslen to never get negative (which can cause trouble down the line)
2. Enforce the maximum package size for packets received via UDPTunnel as well
2020-08-03 16:50:35 +02:00
Robert Adam
718a9ce59f FIX(client): Discard oversized UDP packets
If a received UDP is greater than what our allocated buffers can hold,
they are discarded as of now. Previously they have been trimmed down but
the untrimmed size was used in following code which could lead to stack
corruption.
2020-08-03 16:44:11 +02:00
Robert Adam
c82f0c93cf REFAC(client): Use constant instead of magic number
The buffer's size for the received UDP packets were magic numbers in the
code. This was refactored so that this size is now only specified once
by storing it in a constant which is then used where needed.
2020-08-03 16:42:41 +02:00
Davide Beatrici
52d6f384ae
Merge PR #4377: CI(azure-pipelines): add 32 bit Windows build 2020-08-03 01:55:20 +02:00
Robert Adam
8ba0246aad CI(tests): Increase timeout for Windows tests
By default Qt sets a timeout of 5 minutes for each test and fails it if
that time is exceeded. On the new 32bit build however our Diffie-Helman
test needs more time and thus we increase the limit to 10 minutes which
seems to be sufficient.
2020-08-02 20:01:58 +02:00
Robert Adam
79f3c18849 CI(tests): Add --verbose option to ctest
With this option enabled we'll actually be able to see the output of the
tested programs which can give hints as to what went wrong.
2020-08-02 20:01:58 +02:00
Davide Beatrici
c64e748e6f CI(azure-pipelines): add 32 bit Windows build
As with the 64 bit build, it uses a build environment we provide on our website.
2020-08-02 20:01:57 +02:00
Robert Adam
b46b46323e
Merge pull request #4389: CI(installer): Only build a few cultures by default
This should save some time during building the installer which hopefully
helps preventing the Windows CI from exceeding the maximum time.
2020-08-02 17:55:10 +02:00
Robert Adam
0fbdbf13a4 FIX(server): Enforce max. packet size for UDPTunnel
Before this commit the packet size for packets sent through the
UDPTunnel was not checked for whether it exceeded the maximum allowed
size. This might open Mumble for attacks of some sort as the code
usually expects the packets to be of at most that size.
2020-08-02 17:15:57 +02:00
Robert Adam
28c3a62acf FIX(server): Don't allow poslen > len
This case can crash the server as the calculated buffer length without
positional data (which is the normal case) is negative (len - poslen).
2020-08-02 17:14:51 +02:00
Robert Adam
d2d5dc2cff
Merge pull request #4370: FIX(server): Reorder old table drops based on constraints
This fixes the second case of PostgreSQL migration failure in #4292

Not tested with a players table, and tested only on PostgreSQL though the changes should make the drops work better on any database.

Additionally the changes were left minimal to not introduce new issues, rather than reordering the whole section to the most logical order.
2020-08-02 16:56:57 +02:00
Robert Adam
a0ccce40f0 CI(installer): Only build a few cultures by default
This should save some time during building the installer which hopefully
helps preventing the Windows CI from exceeding the maximum time.

Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
2020-08-02 16:04:19 +02:00
Robert Adam
dbb486e5ab
Merge pull request #4388: FIX(ui): Make chatwidget max height >= than its minimum height
I can consistently reproduce the linked issue on my machine.
Let me know if you want me to test some other approach.

Fixes #3701.
2020-08-02 16:02:40 +02:00
Dennis van der Schagt
acd5cba5d5 FIX(ui): Make chatwidget max height >= than its minimum height
Fixes #3701
2020-08-01 21:25:18 +02:00
Robert Adam
5334f36b2d
Merge pull request #4390: CI(windows): Potential download speedup
As experienced before, disabling the progress monitor for web-requests
in PowerShell can drastically increase the download speed. The newer
script however only used to trick for the main build environment but not
for downloading the other stuff (like ASIO SDK).

This commit sets the respective preference in the beginning of the
script and doesn't reset it anymore so that now all web-requests should
benefit from it.
2020-08-01 18:19:46 +02:00
Robert Adam
f2689d8bce CI(windows): Potential download speedup
As experienced before, disabling the progress monitor for web-requests
in PowerShell can drastically increase the download speed. The newer
script however only used to trick for the main build environment but not
for downloading the other stuff (like ASIO SDK).

This commit sets the respective preference in the beginning of the
script and doesn't reset it anymore so that now all web-requests should
benefit from it.
2020-08-01 17:33:26 +02:00
Robert Adam
3a07016b8f
Merge pull request #4383: FEAT(talking-ui): Make channels selectable
Before this commit it was only possible to select users in the TalkingUI
(and thereby it was also only possible to trigger the context menu for
users via the TalkingUI).

This commit extends the functionality that currently exists for users to
channels as well. This includes selection as well as the context menu.

Mumble_TalkingUI_ChannelSelection
2020-07-29 14:38:50 +02:00
Robert Adam
4d05d9538e FEAT(talking-ui): Make channels selectable
Before this commit it was only possible to select users in the TalkingUI
(and thereby it was also only possible to trigger the context menu for
users via the TalkingUI).

This commit extends the functionality that currently exists for users to
channels as well. This includes selection as well as the context menu.
2020-07-29 13:47:43 +02:00
Robert Adam
aba5401d13
Merge pull request #4368: CI(azure-pipelines): use our own macOS builder for releases
MacStadium kindly provided us an hosted 2012 Mac mini for free last year.

Until now we only used it for testing and to build the vcpkg environment, waiting for the CMake project to be merged.

Now that everything is in place, we can use it for CI and to release builds.
2020-07-25 19:26:32 +02:00