Commit Graph

600 Commits

Author SHA1 Message Date
Robert Adam
59ae429972 MAINT: Update copyright notice to 2021
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
2021-03-02 10:15:01 +01:00
Robert Adam
86710dab62 MAINT: Added script for updating license headers
The script iterates through (almost) all files within the Mumble
repository and updates the copyright notice in them. If source files
don't contain such a notice yet, it can optionally add one in.

The script asks git when the file was first added to the git index and
uses that year as the starting year for the copyright notice. The end
year is always set to be the current year at the time the script is run.
2021-03-02 10:14:56 +01:00
Robert Adam
35b138b155 MAINT: Added script to automatically generate Changelog
The script automatically parses the new merge commits between two given
tags and tries its best to generate a Changelog out of it.
2021-02-26 16:18:45 +01:00
Robert Adam
97d01cab0b MAINT: Fix broken links in AppStream meatinfo file
The referenced links on debian.net seem to have died. Thus they were
replaced with links to our own website.
2021-02-23 10:25:19 +01:00
Davide Beatrici
1e4932b898 BUILD(versioning): Implement "--format" option in mumble-version.py
The option replaces "--project" and allows to specify the desired string format:

- "full": The default. Prints version + suffix (e.g. "1.4.0~2021-02-14~g973cee211~snapshot").
- "version": Only prints the version (e.g. "1.4.0").
- "suffix": Only prints the suffix (e.g. "~2021-02-14~g973cee211~snapshot").

The main reason for implementing this new option is the suffix-only output.
It will be passed to CMake in a future commit, for better filename control.
2021-02-16 09:57:18 +01:00
Davide Beatrici
9f3685efb7 BUILD(versioning): Add "--type" and "--revision" options to mumble-version.py
This commit removes the tag logic from the script.
Its purpose was to set the name of the tag associated to the latest version as version.

It was working as expected, however in some instances we don't want the script to take the tag into account.
For example, we had to rebuild the first 1.4.0 snapshot as the version was accidentally set to 1.4.0-snapshot1.

As replacement, the "--revision" and "--type" options are implemened.
They allow to explicitly set the release type and its revision, when applicable.

Assuming the revision is set to 1 (default value), the output is currently as follows:

Type set to "snapshot": 1.4.0~2021-02-14~g973cee211~snapshot
Type set to "beta": 1.4.0-beta1
Type set to "rc": 1.4.0-rc1
Type set to "stable": 1.4.0
2021-02-16 09:57:18 +01:00
Robert Adam
f86a1e1602
Merge pull request #4756: MAINT: Make get_mumble_dependencies.sh executable 2021-02-13 11:49:59 +01:00
Robert Adam
2ce46bcfa6 MAINT: Make get_mumble_dependencies.sh executable 2021-02-13 10:00:46 +01:00
Terry Geng
df2205a1c8 TRANSLATION: Include '.mm' in lupdate's list.
`lupdate` doesn't scan .mm file by default.
2021-02-11 18:21:12 +01:00
freddii
9889a0fa99 DOCS: fixed typos 2021-01-20 22:17:38 +01:00
TredwellGit
99ea9d7835 FIX(server): Make max bandwidth the highest supported
Closes https://github.com/mumble-voip/mumble/issues/3895
2021-01-18 09:27:49 +00:00
Robert Adam
f6e997e1e2
Merge pull request #4675: BUILD(vcpkg) Fix --clean-after-build issue affecting qt5-base
The following changes were performed:
- Modify function to accept a string array param
- Add mdnsresponder to the packages array
- Remove individual package installs affected by previous --clean-after-build issue
- Remove iterator that installs packages independently
- Remove unneeded double quotes for variables
- Remove opus as it is supplied via submodule
2021-01-11 08:51:53 +01:00
Nik Reist
6b7897c7e5 REFAC(vcpkg) Remove opus, provided by submodule 2021-01-09 13:20:23 -05:00
Nik Reist
36138937ca BUILD(vcpkg): Fix --clean-after-build issue affecting qt5-base
The following changes were performed:
- Modify function to accept a string array param
- Add mdnsresponder to the packages array
- Remove individual package installs affected by previous --clean-after-build issue
- Remove iterator that installs packages independently
- Remove unneeded double quotes for variables

Fixes #4674
2021-01-09 13:18:24 -05:00
Davide Beatrici
d8a5133b09 BUILD(versioning): Implement "--project" option in mumble-version.py
The option tells the script to print only the project version, i.e. "1.4.0".

This commit also makes the "--newline" argument an option and changes some text, for consistency.
2021-01-07 23:19:25 +01:00
Davide Beatrici
27471118b5 BUILD(versioning): Make use of the 4th part (build/tweak) of the version
The build number can be specified through the new "BUILD_NUMBER" variable.

This change is very important on Windows, for two reasons:

- It allows to easily identify binaries simply by looking at their version.
More specifically, we can guess what build they're part of.

- Right now snapshots can not be updated without uninstalling first, because the version is the same (i.e. 1.4.0).
By increasing the 4th digit of the version for every build we can solve the issue.

This commit also takes care of renaming a few variables so that they're consistent and also clearer.

For example, "version" is now "RELEASE_ID".
2021-01-06 19:42:48 +01:00
Robert Adam
c3c34e58cc
Merge pull request #4574: REFAC(installer-msi) Simplify WiX component install
- Remove CPack and previous WiX installer projects and sources
- Add toolset for WixSharp to facilitate client and server builds
    individually or collectively.
- Add multilanguage build with packaging=ON and translations=ON, and
    standard build with packaging=ON. Builds are also aware of client and
    server option settings.
- Add correct LICENSE to installer

Fixes: #4488
WixSharp: https://github.com/oleg-shilo/wixsharp
2020-12-15 12:37:10 +01:00
Nik Reist
88e1786849 REFAC(installer-msi) Simplify WiX component install
Remove CPack and previous WiX installer projects and sources
Add toolset and for WixSharp to facilitate client and server builds
individually or collectively.
Add multilanguage build with packaging=ON and translations=ON, and
standard build with packaging=ON. Builds are also aware of client and
server option settings.
Add correct LICENSE to installer
2020-12-11 22:07:25 -05:00
WGH
b55874d99f MAINT/FIX(server): Fix systemd murmur.service
As things are now, 'systemctl start murmur' hangs and eventually times
out.

The problem is that in the unit file, both Type=forking and
PIDFile=/run/murmur/murmur.pid are specified. In this scenario systemd
will wait for the PID file to appear. However, it will never appear
there, as murmur does setuid on its own before writing the pid file,
and thus lacks the rights to write to /run, and even if it had the rights,
it doesn't try to create a missing directory anyway.

Switch to Type=exec and foreground mode to fix this. systemd services
don't really need forking behaviour anyway, and in fact handling
forking servers requires some extra hoops to jump through on the
systemd side.

This change also makes murmur (when run with murmur.service) to log
to the systemd journal instead of log files.

Although the unit file has been broken for a long time, Debian-based
distros still use the /etc/init.d/mumble-server wrapped with
systemd-sysv-generator, and haven't noticed the problem.
2020-12-09 14:49:21 +03:00
Jan Klass
9890439e86 BUILD: Support working directories other than repository root 2020-10-30 22:30:18 +01:00
Robert Adam
0163836c4c
Merge pull request #4427: Use new AppImage bundle tool
The new tool provided at https://github.com/probonopd/go-appimage/blob/master/src/appimagetool doesn't have the restriction of having to be run on the latest still supported Ubuntu version. Thus this allows us to upgrade our Linux CI on Azure to Bionic.

Note however that the AppImage produced this way doesn't seem to be working.
2020-10-24 14:01:35 +02:00
Thomas Lange
7ac922da61 MAINT: Fix typos in CMake option script 2020-10-22 00:56:40 +02:00
Robert Adam
cbf9abd654 MAINT: Update desktop and appdata files
Updated the mumble.desktop and mumble.appdata.xml files to meet the most
recent information and also meet the more modern standards that have
been established.

They now pass validation by appstreamcli.
2020-10-18 09:15:58 +02:00
Robert
cec6fce48a MAINT: Added script to generate cmake documentation for all cmake options 2020-10-12 08:44:52 +02:00
Robert
2f45772c9c DOCS: Restructure and include build-documentation
The existing `docs` directory was restructured a bit and the build
documentation previously located at
https://github.com/mumble-voip/mumble-releng-vcpkg was integrated into
the main repository (after having received a good polish).

In addition to that the needed scripts and port-files from the linked
repository have now also been included in the main repo.
2020-10-12 08:16:01 +02:00
Sebastian Parborg
00d39afd58 FIX(client/overlay): Update unix script to use the current library names
The overlay script did not use the current library names of the overlay
libs. So when installing, the libraries had to be renamed or the script
edited for it to work.
2020-09-19 21:03:07 +02:00
Robert
59263838a7 MAINT: Replaced mkwrapper.pl by python script
The old perl script was broken and therefore replaced with a more modern
and flexible Python script.
2020-09-12 13:46:55 +02:00
Robert
af7dac72f4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Robert Adam
459a3bf888 MAINT: Added clang-format support
The used .clang-format file has been generated using clang-format 6
(shipped with Ubuntu 18.04) and is therefore backwards compatible with
all clang-format versions until v6.
2020-09-11 18:28:38 +02:00
Robert Adam
4f3f61e741 MAINT: Use rel paths in updatetranslations.sh
The script now uses relative paths (in order to not include information
about the committer's file tree in the commit message.

Furthermore the pushd/popd was removed as we don't have to restore the
path in a shell script as these run in a sub-shell anyways and therefore
can't change the calling shell's pwd.
2020-09-06 16:38:09 +02:00
Robert Adam
fa2a42c40f MAINT: Fix updatetranslations.sh error code
Due to the usage of a pipe, lupdate's error code wasn't returned to the
shell as expected.
2020-09-06 13:49:37 +02:00
Robert Adam
401fd0b6e4 MAINT: Fix updatetranslations.sh script 2020-09-06 13:39:30 +02:00
Robert Adam
34c602c85b BUILD(qmake): Remove
This commit removes all qmake-related build-files from the system. We
have now migrated to cmake and are no longer maintaining qmake anyways
and therefore there is no reason to keep it.

Removing it also clearly states to any potential user/programmer that
this project is no longer intended to be compiled with qmake.

Given that the .pri files no longer exist, the mumble-version.py script
had to be adapted to read the version from the CMakeLists.txt file
instead.

Furthermore a few of the submodules support cmake natively and therefore
we no longer need the src/buid-directory approach in order to build
them. The respective build dirs have been removed and the src-dirs have
been renamed.
2020-09-02 08:29:45 +02:00
Robert Adam
756a35e334 MAINT(mumble-version.py): Fix indentation 2020-09-02 08:11:28 +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
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
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
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
0b26fc7d3d CI: Build with CMake 2020-07-11 23:33:25 +02:00
Nik Reist
2581534c04 scripts: add PowerShell script to build multilanguage installer
This is basically a replacement for our old Perl script ("build_installer.pl").

Aside from using CPack instead of MSBuild, there's not much difference in terms of methodology.

The Perl script exclusively uses Windows SDK tools; the PowerShell one uses a COM object, a WiX tool and an extra one from FireGiant (WiX's developers).

In future we should investigate whether using the "WindowsInstaller.Installer" COM object (used to replace "msiinfo.exe") we can replace FireGiant's EmbedTransform, so that WiX remains the only dependency.

Co-authored-by: Davide Beatrici <git@davidebeatrici.dev>
2020-07-11 23:33:25 +02:00
Popkornium18
39e12d3325 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-08 20:10:32 +02:00
Robert Adam
9d244227aa
Merge pull request #4147: FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-08 19:21:27 +02:00
Robert Adam
e28855e963 CI(azure): Fix brew-error for installed packages
If brew is asked to install a package that is already installed, it will
set a non-zero exit status that causes the CI to abort and fail.

The fix for that is to explicitly check every package for whether it is
already installed and only if they are not, ask brew to install them.

This fix is the same that has been applied in
3e0c5065d2
2020-07-08 15:57:08 +02:00
deluxghost
13b85a3ae2 FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-03 19:27:45 +02:00
Robert Adam
6d01625af8 MAINT(snapshot-versions): Change snapshot version format
Until now the snapshot versions looked something like
1.4.0~444~g4afab7c~snapshot. They include the Mumble version which they
are a snapshot for at the beginning, then the revision number (the
amount of commits since the last tag in git's history), followed by the
latest commit's hash (prefixed by "g") and finally the word "snapshot".

The problem with this approach is that it requires knowledge of the git
history at least until the most recent tag. In addition to that it also
requires someone to think about moving the "tag-for-ci" that marks a
release-state in the master branch to be set on every release.

The history requirement is not an issue for a normal clone of the
repository but if someone (e.g. the CI) performs a shallow clone of the
repository, then the script fails.

In order to address this problem, this commit changes the version format
to be 1.4.0~2020-07-02~g4afab7c67~snapshot. The revision number got
replaced by the date of the most recent commit (in ISO format) and the
commit hash is now abbreviated by git itself as it sees fit instead of
manually truncating the commit hash at 7 characters.

That way the script doesn't require knowledge of the latest tag and all
the history after that. That way the script can now be run in a shallow
clone of depth 1.
2020-07-03 13:41:56 +02:00
Konstantin Goncharik
bd3a70206d
REFAC(lgtm): Removed subsequently overwritten key
Dictionary key 'key_exchange' is subsequently overwritten.
2020-06-12 22:39:01 +07:00
Robert Adam
4977ef429d
CI: change update target for AppImages
Previously AppImages built on the CI got their updates from https://dl.mumble.info/snapshots/
but now we have a separate directors `nightly` that'll contain CI build artifacts and this should be used instead.
2020-06-11 09:49:54 +02:00
Robert Adam
5e347c6efb CI: Added check for unprocessed translations
As it happens rather frequently for someone (e.g. me) to forget to
update the translations after having messed with translated strings,
this commit introduces a check to the CI that verifies that the
translations are always up-to-date.
2020-05-10 13:01:57 +02:00
Sean Talts
37d24f6bf2 src/murmur: Add autobanSuccessfulConnections flag.
The idea here is that sometimes you really do have a lot of folks connecting from a single IP,
and if those connections are successful you don't want to ban any of them.
However, in cases where the server needs to guard against malicious users attempting a DDOS
by reconnecting their valid user account over and over, we need to be able to configure the
server to still ban those successful attempts.
2020-04-20 15:05:04 -04:00
Robert Adam
4ab0e03492 CI: Include GRPC support
We have had multiple cases now in which there have been some errors in
changes related to GRPC that weren't detected by the CI because it
excluded the GRPC code from the build process. This will bw changed now.

As all other CIs have been stubborn, for now we'll only build GRPC on
travis as these use a new-enough Ubuntu version to be able to build
GRPC.
MacOS CI I haven't got to work with the whole homebrew stuff and Windows
is done in its own repo (which I won't touch either).

m
2020-04-20 12:07:26 +02:00