Commit Graph

8401 Commits

Author SHA1 Message Date
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
Davide Beatrici
d0fb47038e
Merge PR #4379: FIX(overlay): only use minhook for 64 bit overlay library, add missing <unknwn.h> 2020-07-25 04:47:15 +02:00
Davide Beatrici
ca54653e43 FIX(overlay): only use minhook for 64 bit overlay library
We are working on adding a 32 bit Windows build to Azure Pipelines and noticed that it was failing due to "IUnknown" not being defined.

The issue was quickly fixed by including <unknwn.h>, however we wondered why we didn't encounter it with the 64 bit Windows build (which compiles the overlay library as 64 bit and 32 bit).

Turns out minhook was used for the 32 bit overlay library due to the if() logic missing a crucial condition: "BUILD_OVERLAY_XCOMPILE" must be false, because "64_BIT" is true due to it being defined outside of the cross-compile environment.
2020-07-25 03:43:33 +02:00
Davide Beatrici
582239319b FIX(overlay): add missing <unknwn.h> for 32 bit overlay library 2020-07-25 03:33:59 +02:00
Davide Beatrici
b05c353448 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-18 03:52:47 +02:00
Davide Beatrici
a8a1577dfd
Merge PR #4375: CI(azure-pipelines): fix template paths 2020-07-18 03:16:06 +02:00
Davide Beatrici
307b5b9bf6 CI(azure-pipelines): fix template paths
I accidentally forgot to do it in 461725c620 (no CI to remind me about it because it couldn't run due to the file being moved).
2020-07-18 02:42:49 +02:00
Davide Beatrici
19a574a596
Merge PR #4374: CI(azure-pipelines): add configuration for non-PR builds, store files in ".ci" 2020-07-18 02:23:52 +02:00
Davide Beatrici
ac38b53ee3 CI(azure-pipelines): add configuration for non-PR builds
For now the only difference with the PR configuration is the removal of the translation checker.
2020-07-18 02:20:05 +02:00
Davide Beatrici
461725c620 CI(azure-pipelines): move ".azure-pipelines.yml" in ".ci", rename it to "main-pr.yml"
This is the configuration file that until now we used for both pull request and branch builds.

From now we will only use it for pull request builds.
2020-07-18 02:16:07 +02:00
Davide Beatrici
648f27ddd2
Merge PR #4372: REFAC(ci): move scripts to dedicated ".ci" folder, templatize Azure Pipelines steps 2020-07-18 01:15:16 +02:00
Davide Beatrici
8eef7bb6af CI(azure-pipelines): templatize steps 2020-07-18 00:27:21 +02:00
Davide Beatrici
c182bc6db0 REFAC(ci): move scripts to dedicated ".ci" folder
The "scripts" folder is quite cluttered, let's make it a bit better.
2020-07-18 00:18:25 +02:00
Davide Beatrici
530426961f
Merge PR #4371: CI(azure-pipelines): use correct path for build output 2020-07-17 19:44:43 +02:00
Davide Beatrici
920bc7528e CI(azure-pipelines): use correct path for build output
"Agent.BuildDirectory" refers to the path on the agent where all folders for the pipeline are created.

"Build.BinariesDirectory" is the correct variable to use: it refers to the path that can be used as an output folder for compiled binaries.

Reference: https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables
2020-07-17 19:12:40 +02:00
Lartza
1c81b0adb9 FIX(server): Reorder old table drops based on constraints
This fixes the second case of PostgreSQL migration failure in #4292
2020-07-17 11:41:50 +03:00
Robert Adam
6a7251951b
Merge pull request #4361: FIX(client): Always run Disconnected-EH on exit
MainWindow::serverDisconnected did not always get called when
terminating Mumble normally (not by pressing Ctrl+C). The reason for
that was that 2-fold:
a) There was a race between the main thread and the ServerHandler
thread. If the ServerHandler did not exit fast enough, the disconnect
event it emitted wouldn't reach the main thread in time to be processed
before the application exits
b) The main thread didn't make sure that all events have been processed
before actually shutting down and starting deleting objects.

This is solved now by first waiting for the ServerHandler thread to exit
before proceeding the shutdown process. In order to never run in the
situation in which the main thread won't exit because the ServerHandler
got stuck somehow, a hard limit of 2 seconds was set.

After the ServerHandler has exited, the main thread will ask Qt to
process all pending events before starting to do the cleanup (deleting
objects).

Due to the disconnect EH now reliably being called, it is no longer
necessary to duplicate actions in the EH and in the shutdown process
(e.g. save ChannelListeners or saving server-specific shortcuts). Thus
these are now only performed in the disconnect EH.
2020-07-14 18:41:49 +02:00
Robert Adam
30b67b76eb
Merge pull request #4344: FEAT(server): Allow loading welcome text from file
This allows specifying welcometextfile in murmur.ini. If no welcometext
is set in the ini-file, the welcome text is loaded from the file.

Fixes #3723
2020-07-14 17:57:05 +02:00
Davide Beatrici
54e313481d
Merge PR #4252: Introduce CMake as build system 2020-07-12 19:17:21 +02:00
Robert Adam
7c048b75d3 Added experimental check for g++-multilib when compiling 32bit overlay 2020-07-11 23:33:25 +02:00