Commit Graph

9733 Commits

Author SHA1 Message Date
Robert Adam
d5cb83f32d
Merge PR #5417: BUILD(audiowizard): Fix build with -Dspeechd=OFF -Dwarnings-as-errors=ON
Move the declaration/definition of `iMessage` to where it is used,
otherwise the build fails with

```
src/mumble/AudioWizard.cpp:95:10: error: variable 'iMessage' set but not used [-Werror,-Wunused-but-set-variable]
        quint32 iMessage = Settings::LogNone;
                        ^
1 error generated.
```

Build-tested on OpenBSD 7.0-CURRENT using
```
$ cc --version
OpenBSD clang version 13.0.0
Target: amd64-unknown-openbsd7.0
Thread model: posix
InstalledDir: /usr/bin
```
2022-01-12 14:33:38 +01:00
Robert Adam
91c6fcd5cb
Merge PR #5416: BUILD(client): Plugin Framework: Fix build on NetBSD and OpenBSD 2022-01-12 09:25:02 +01:00
Robert Adam
6a0bcabdbd
Merge PR #5418: MAINT: Change build-number token for AppVeyor 2022-01-12 08:28:27 +01:00
Klemens Nanni
a707213aa1 BUILD(client): Plugin framework: Use correct struct kinfo_proc members on NetBSD/OpenBSD
`struct kinfo_proc` members are prefixed with `p_` in
OpenBSD (http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/sys/sysctl.h?annotate=1.220) and
NetBSD  (cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/sysctl.h?annotate=1.236)

FreeBSD (https://cgit.freebsd.org/src/tree/sys/sys/user.h?id=01cad731921bb60b4f6e04c1cac987eea7af9d08#n121)and presumably Linux (I did not check) use the `ki_` prefix.

Build-tested on OpenBSD 7.0-CURRENT.
2022-01-11 22:32:15 +01:00
Klemens Nanni
ccbacbf0ab BUILD(client): Plugin framework: Pass element size to kvm_getprocs(3) on OpenBSD
There is an additional `elemsize` argument
(https://man.openbsd.org/kvm_getprocs.3):

	Only the first elemsize bytes of each array entry are returned.

Complete OpenBSD signature:
```
struct kinfo_proc *
kvm_getprocs(kvm_t *kd, int op, int arg, size_t elemsize, int *cnt);
```

Linux, FreeBSD and NetBSD have the same four-argument signature:
```
struct kinfo_proc *
kvm_getprocs(kvm_t *kd, int op, int arg, int *cnt);
```

Build-tested on OpenBSD 7.0-CURRENT.
2022-01-11 22:32:15 +01:00
Klemens Nanni
42ad5edf5a BUILD(client): Plugin framework: Use KVM_PROC_ALL on NetBSD/OpenBSD
kvm_getprocs(3) on Linux and FreeBSD
(https://www.freebsd.org/cgi/man.cgi?kvm_getprocs) has
```
	KERN_PROC_PROC	all processes, without threads
	...
```

OpenBSD (https://man.openbsd.org/kvm_getprocs.3) and
NetBSD  (https://man.openbsd.org/kvm_getprocs.3) however only know
```
	KERN_PROC_KTHREAD
		all processes (user-level plus kernel threads)
	KERN_PROC_ALL
		all user-level processes
	...
```
and
```
	KERN_PROC_ALL	all processes
	KERN_PROC_PID	processes with process id arg
	...
```
respectively, thus fall back to KERN_PROC_ALL where needed.

Build-tested on OpenBSD 7.0-CURRENT.

NB:  The first hunk around kvm_openfiles(3) is from `clang-format`.
(should've have happened in the commit introducing this line, I guess.)
2022-01-11 22:29:54 +01:00
Klemens Nanni
0c769d87a1 BUILD(audiowizard): Fix build with -Dspeechd=OFF -Dwarnings-as-errors=ON
Move the declaration/definition of `iMessage` to where it is used,
otherwise the build fails with

```
src/mumble/AudioWizard.cpp:95:10: error: variable 'iMessage' set but not used [-Werror,-Wunused-but-set-variable]
        quint32 iMessage = Settings::LogNone;
                        ^
1 error generated.
```

Build-tested on OpenBSD 7.0-CURRENT using
```
$ cc --version
OpenBSD clang version 13.0.0
Target: amd64-unknown-openbsd7.0
Thread model: posix
InstalledDir: /usr/bin
```
2022-01-11 22:25:09 +01:00
Robert Adam
74425938d9 MAINT: Change build-number token for AppVeyor 2022-01-11 20:25:28 +01:00
Robert Adam
c89a9b4158
Merge PR #5415: MAINT: Fix password use in build-number script
There were a few typos in the program's logic regarding the handling of
a provided password which rendered its use invalid.
2022-01-11 10:56:19 +01:00
Robert Adam
c794aabd43 MAINT: Fix password use in build-number script
There were a few typos in the program's logic regarding the handling of
a provided password which rendered its use invalid.
2022-01-11 09:41:18 +01:00
Davide Beatrici
6df853e942
Merge PR #5414: DOCS(client): Mention OpenBSD support 2022-01-11 09:12:39 +01:00
Klemens Nanni
bb859242f5 DOCS(client): Mention OpenBSD support
OpenBSD has provided binary packages for years,
both `mumble` and `murmurd` work.
(I happen to currently maintain the audio/mumble port.)
2022-01-11 07:33:38 +01:00
Robert Adam
696ec230c5
Merge PR #5410: MAINT: Add script to fetch build number 2022-01-09 20:45:28 +01:00
Robert Adam
4f6c89b571 MAINT: Use python3 for mumble-version script 2022-01-09 19:54:49 +01:00
Robert Adam
afef15dac4 DOCS: Extend build number docs 2022-01-09 19:54:49 +01:00
Robert Adam
bec87be1e4 CI: Use new build-number script 2022-01-09 19:54:49 +01:00
Robert Adam
6de094482d MAINT: Add script to fetch build number 2022-01-09 19:54:49 +01:00
Robert Adam
53ddee7736
Merge PR #5406: FEAT(client): Improve handling of IP masks in BanEditor
When using the BanEditor to manually create a new Ban entry, it was
really easy to get the "mask" property wrong, which had the effect of
apparently not performing any action at all, when clicking on the "Add"
button.

The underlying problem was most likely that the "mask" field defaults to
128, which is only valid for IPv6 addresses. When entering an IPv4
address, the mask would be considered invalid (through some internal
wizardry) and thus the Ban would not be added.
However, the user was not presented with any kind of error message that
would have hinted at the problem.

This commit tackles this issue by first of all validating that the
entered IP address is valid. If it is not, then the respective input
field will be colored red. If it is, the mask spin box's maximum value
will automatically be set to the correct maximum value for the used IP
address flavor (32 for IPv4 and 128 for IPv6).

That way the user can only ever press "Add", if they entered a valid IP
address alongside a valid mask. Thus, pressing "Add" should now always
add the respective ban.

Fixes #3986
2022-01-07 20:04:29 +01:00
Robert Adam
4ad90046b1 FEAT(client): Improve handling of IP masks in BanEditor
When using the BanEditor to manually create a new Ban entry, it was
really easy to get the "mask" property wrong, which had the effect of
apparently not performing any action at all, when clicking on the "Add"
button.

The underlying problem was most likely that the "mask" field defaults to
128, which is only valid for IPv6 addresses. When entering an IPv4
address, the mask would be considered invalid (through some internal
wizardry) and thus the Ban would not be added.
However, the user was not presented with any kind of error message that
would have hinted at the problem.

This commit tackles this issue by first of all validating that the
entered IP address is valid. If it is not, then the respective input
field will be colored red. If it is, the mask spin box's maximum value
will automatically be set to the correct maximum value for the used IP
address flavor (32 for IPv4 and 128 for IPv6).

That way the user can only ever press "Add", if they entered a valid IP
address alongside a valid mask. Thus, pressing "Add" should now always
add the respective ban.

Fixes #3986
2022-01-07 19:17:36 +01:00
Robert Adam
5598fe82c7
Merge PR #5405: MAINT: Update copyright to 2022 2022-01-04 20:55:11 +01:00
Robert Adam
d100ff1467 MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
Davide Beatrici
25cb73731b
MAINT(github): Remove Bountysource funding link 2022-01-03 03:16:25 +01:00
Robert Adam
ad83b4b577
Merge PR #5402: BUILD: Fix build error
ef045be changed how the
mumble-version.py script works, but these two scripts have not been
adapted to it yet. This commit fixes that.
2022-01-02 17:35:06 +01:00
Robert Adam
d336491b2d BUILD: Fix build error
ef045be7fe changed how the
mumble-version.py script works, but these two scripts have not been
adapted to it yet. This commit fixes that.
2022-01-02 16:46:08 +01:00
Robert Adam
ef045be7fe
Merge PR #5400: BUILD: Remove concept of an RELEASE_ID
Having a separate RELEASE_ID just unnecessarily complicates drafting
releases. Plus, now that we are using different build numbers for every
new build anyway, a separate release ID is really not necessary.
2022-01-02 12:12:46 +01:00
Robert Adam
6caa808e67 BUILD: Remove concept of an RELEASE_ID
Having a separate RELEASE_ID just unnecessarily complicates drafting
releases. Plus, now that we are using different build numbers for every
new build anyway, a separate release ID is really not necessary.
2022-01-01 20:38:40 +01:00
Robert Adam
2a31ed0f34 DOCS: Describe how to find build number 2022-01-01 20:38:40 +01:00
Robert Adam
74057e0f52
Merge PR #5398: DOCS: Clarify MAINT type in commit guidelines
The used example was a bit misleading
2022-01-01 17:12:42 +01:00
Robert Adam
012245a944 DOCS: Clarify MAINT type in commit guidelines
The used example was a bit misleading

Co-authored-by: Davide Beatrici <github@davidebeatrici.dev>
2022-01-01 16:26:02 +01:00
Robert Adam
e2622fe453
Merge PR #5397: CHANGE(client): Remove channel listener persistence
This is done, since the underlying framework for how channel listeners
are handled (more specifically: where they are stored) will be changed
in an upcoming PR. This upcoming change will cause listener persistence
to only apply to registered users. Thus, if the current persistence
feature was to be retained, that would mean that when introducing this
change, we'd remove a feature from Mumble.

As that is not a great thing to do, we'll remove the feature now that it
is still unreleased and then the upcoming change will introduce
persistence for some users instead of taking it away from others.

Furthermore, this PR fixes a little bug that made it possible for channel listeners
to be shown multiple times in the UI.
2021-12-29 19:25:08 +01:00
Robert Adam
db57b63241
Merge PR #5396: FEAT(server): Add support for the tracy profiler
Tracy (wolfpld/tracy) is a profiler that is aimed at
having a very low impact on the runtime performance and is thus suitable
to be used in production systems to figure out what is going on and how
the code is performing.

For the time being, this commit instruments only the server code.
Furthermore, the instrumentation is performed in a rather minimalistic
way that should suffice to start profiling audio and control message
processing but is definitely far from being complete. Further
instrumentation will be added on-demand.
2021-12-29 18:52:42 +01:00
Robert Adam
66c985105d FIX(client): Prevent duplicate channel listeners 2021-12-29 18:36:57 +01:00
Robert Adam
977cc2f344 CHANGE(client): Remove channel listener persistence
This is done, since the underlying framework for how channel listeners
are handled (more specifically: where they are stored) will be changed
in an upcoming PR. This upcoming change will cause listener persistence
to only apply to registered users. Thus, if the current persistence
feature was to be retained, that would mean that when introducing this
change, we'd remove a feature from Mumble.

As that is not a great thing to do, we'll remove the feature now that it
is still unreleased and then the upcoming change will _introduce_
persistence for some users instead of taking it away from others.
2021-12-29 18:33:14 +01:00
Robert Adam
dd56e174f2 FEAT(server): Add support for the tracy profiler
Tracy (https://github.com/wolfpld/tracy) is a profiler that is aimed at
having a very low impact on the runtime performance and is thus suitable
to be used in production systems to figure out what is going on and how
the code is performing.

For the time being, this commit instruments only the server code.
Furthermore, the instrumentation is performed in a rather minimalistic
way that should suffice to start profiling audio and control message
processing but is definitely far from being complete. Further
instrumentation will be added on-demand.
2021-12-29 18:01:28 +01:00
Robert Adam
ead095e3d0
Merge PR #5395: MAINT(docker): Docker Compose UDP Support 2021-12-29 15:55:01 +01:00
TheNamelessWonderer
a056a23f3a
MAINT(docker): Docker Compose UDP Support 2021-12-29 13:12:28 +00:00
Robert Adam
f52e6ba3d0
Merge PR #5393: FIX(crypto): no such function empty for QByteArray 2021-12-29 13:22:22 +01:00
powerjungle
3518f68368
FIX(crypto): no such function empty for QByteArray 2021-12-28 20:27:18 +01:00
Robert Adam
b43cf6f480
Merge PR #5391: Improve Docker Compose documentation 2021-12-28 16:01:32 +01:00
diftucs
cfb2b09c09 DOCS(docker): Rewrite certificate instructions
Rewrite the certificate section to more precisely describe
both alternatives in a more concise manner.

Additionally, remove the references to Let's Encrypt as the
certificate's origin is irrelevant.
2021-12-28 14:14:39 +01:00
diftucs
3ab16f2137 DOCS(docker): Clarify instructions
Reword the instructions to be more precise and not contain irrelevant
information.
2021-12-28 14:14:39 +01:00
diftucs
02f1d0bdb5 DOCS(docker): Repair and improve links
Replace the absolute, GitHub-dependent links with relative ones
including link text.

Cleans up both links and fixes the one that was broken.
2021-12-28 14:14:39 +01:00
diftucs
abcb8634b7 DOCS(docker): Make styling consistent
Adds missing inline code tags
2021-12-28 14:14:39 +01:00
diftucs
6e6d82cc94 DOCS(docker): Correct grammar and styling 2021-12-28 14:14:39 +01:00
Robert Adam
5b31d4b83c
Merge PR #5389: MAINT: Change app ID in plist files 2021-12-27 15:34:32 +01:00
Robert Adam
c77c635eda MAINT: Use description from cmake in plist files
Just as we are doing for the copyright-year and project version
information, we now also let cmake insert the project's description into
the plist files. This removes redundancy and should facilitate future
maintenance.
2021-12-27 10:50:47 +01:00
Robert Adam
8ffd67541c
Merge PR #5349: BUILD: Enable LTO, if supported
In theory LTO could give us a bit more performance than what we are
currently seeing. Client-side this will probably not be very noticeably
but on the server-side a few drops of extra performance can't hurt.

LTO will be enabled by default in all non-Debug builds. It remains
disabled for Debug builds as this is expected to be the kind of build
that a developer will use when they perform their work and there it is
useful to be able to go through multiple iterations of the program,
without waiting long times on the linker each time.
2021-12-27 10:48:40 +01:00
Robert Adam
9708652fcb CI(bsd): Use --output-on-failure for ctest 2021-12-26 19:46:54 +01:00
Robert Adam
8d83afb07c BUILD: Enable LTO, if supported
In theory LTO could give us a bit more performance than what we are
currently seeing. Client-side this will probably not be very noticeably
but on the server-side a few drops of extra performance can't hurt.

LTO will be enabled by default in all non-Debug builds. It remains
disabled for Debug builds as this is expected to be the kind of build
that a developer will use when they perform their work and there it is
useful to be able to go through multiple iterations of the program,
without waiting long times on the linker each time.
2021-12-26 19:46:54 +01:00
Robert Adam
aea05b6f93 REFAC(crypto): Get rid of isNull function
As it turns out QByteArray's isNull function is broken, when enabling
LTO (on FreeBSD) as it will always return false.
However, there is no real reason to use isNull instead of isEmpty in
CryptographicHash in the first place, so we use that instead.
2021-12-26 19:45:56 +01:00