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.
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
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
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.
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.
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.
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
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".
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.
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
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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>
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.
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.
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
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.
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.