Commit Graph

626 Commits

Author SHA1 Message Date
Robert Adam
3511ba5a41 MAINT: Introduce REVERT commit type 2021-05-17 08:49:07 +02:00
Robert Adam
f7886d29a3 MAINT: Reworked translation-bundle script 2021-05-13 14:10:00 +02:00
Robert Adam
0eb6d1e091 MAINT: Change tabs to spaces for Python script 2021-05-13 13:34:04 +02:00
Septarius
44e270094c
MAINT(vcpkg): Restore profiledir variable in get_mumble_dependencies.ps1
Removes invalid characters (UTF-16 BOM) at the start of line 6.
The profiledir variable is set properly again. Fixing the vcpkg directory being created in the root of the system directory.

Original error message below:
$profiledir : The term '$profiledir' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At C:\Dev\Git\mumble\scripts\vcpkg\get_mumble_dependencies.ps1:6 char:1
+ $profiledir = $Env:USERPROFILE
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: ($profiledir:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
2021-05-09 12:03:23 -06:00
Davide Beatrici
ebd5fc88cd MAINT(vcpkg): Add "qt5-translations", in order for CMake to embed translations
The package provides translations for Qt strings, such as the text of the standard button "OK".
2021-04-26 08:19:43 +02:00
Davide Beatrici
09730f6428 MAINT(vcpkg): Remove opus, provided by submodule
Follow-up to 6b7897c7e5.
2021-04-26 08:19:40 +02:00
Robert Adam
22383865bf
MAINT: Fixed typo in generateChangelog.py
In that script the commit type was referenced as "CHANGED" but the correct type is "CHANGE".
2021-04-18 19:34:41 +02:00
Robert
56db3410c5 MAINT: Update copyright notice to 2021 (Part II)
Apparently the first commit (59ae429972)
did not include all files.

Furthermore the used script tended to produce funny results in certain
cases. This has been fixed and as a result thereof a few more changes
were made in this second run.
2021-04-09 15:41:49 +02:00
Robert
6023035f50 MAINT: Fix updateLixcenseHeaders.py script
Don't use the --follow option for git log as this produces funny
results.
2021-04-09 15:41:49 +02:00
Robert Adam
eabee58e68 MAINT: Add CHANGE commit type
This commit type is supposed to be used when e.g. a setting is changed.
2021-04-05 18:06:48 +02:00
Robert Adam
e1943b9982 MAINT: Fix endless loop in translation update script 2021-04-03 21:30:33 +02:00
Robert Adam
2902913d68 MAINT: Loop until there are no more translation changes
Before it could happen that one had to run the script twice in a row in
order to make sure e.g. sametext heuristics are applied.
2021-03-28 20:17:38 +02:00
Robert Adam
0c26ff14b5 FORMAT: Removed CRLF line endings 2021-03-28 20:17:24 +02:00
Robert Adam
0343d2b002 MAINT/CI: Add --ci-mode option to translation update script
In this mode the sametext heuristic is disabled which _should_ fix the
issue of the Weblate PR's CI failing because of Weblate not applying
such heuristics.
2021-03-28 19:58:54 +02:00
Robert Adam
8a9a915c1b MAINT: Extend grouping in changelog script
This commit adds a few more grouping rules to the generateChangelog.py
script which should further reduce the manual labor needed to create
changelogs.
2021-03-20 19:29:52 +01:00
Robert Adam
7159d5e885 MAINT: Make changelog script more robust
The assumptions about the format of the merge commit message were rather
strict and thus slight deviations would cause the script to fail.

Therefore the script got overhauled and is now using a (hopefully) more
versatile RegEx to do the job.
2021-03-20 19:14:39 +01:00
Jan Klass
ecf679e2de MAINT: Consistently use apostrophes for strings in updatetranslations.py 2021-03-08 18:55:29 +01:00
Jan Klass
b6b5b6fb12 MAINT: Fix output on git command failures in updatetranslations.py
The previous code caused exceptions if git returned an error code.
2021-03-08 18:55:27 +01:00
Jan Klass
63a86c421c MAINT: Remove obsolete comment in updatetranslations.py 2021-03-08 18:55:25 +01:00
Jan Klass
030ef317ba MAINT: Fix EOL from CRLF to LF in updatetranslations.py 2021-03-08 18:55:21 +01:00
Jan Klass
fd147945f9 MAINT: Enable sametext heuristic for translation updates 2021-03-03 19:09:17 +01:00
Jan Klass
85667cccae MAINT: Enable number heuristic for translation updates 2021-03-03 19:09:16 +01:00
Jan Klass
df79c632e0 MAINT: Replace updatetranslations.sh with updatetranslations.py script
The bash script is not platform independent. The python script is.

I invested way too much time trying to run the sh script on WSL (Windows Subsystem for Linux), installing Qt packages, but in the end still failing.

I also implemented a bat script calling lupdate with the same parameters as the sh script, but having one platform independent script is preferable to having two separate scripts for the same activity.

The python script will call lupdate to update the ts files like the sh script did,
and commit the changes if any were made.

Furthermore it checks that the ts files have no local changes before running,
and after updating reset the git index, add commit the files.
The reset operation is added so only the ts files are being committed.

Contrary to the previous script this one disables all heuristics so those can be applied as separate changes, so they will be visible.
2021-03-03 19:09:15 +01:00
Jan Klass
310212c516 MAINT: Remove empty lines 2021-03-03 19:09:15 +01:00
Jan Klass
e66f2f8219 MAINT: Update updatetranslation.sh script to update all ts files from sources
Our previous workflow was using `scripts/updatetranslations.sh` to update `src/mumble/mumble_en.ts` only.

We then depended on Transifex to take over text source changes from this file to translation files.

This lead to committed changes being a mix of both translation source changes as well as translations.
This made the diffs unnecessarily big, and hard to review as two concerns are intermixed.

Weblate supports this style of updating as well. It calls this style 'monolingual', although that concept is intermixed with, or designed for files that do not contain translation source text (which ours do).
One file is used as a source, and another contains the translation strings.

Seemingly Qt calls this approach text-by-ID, and the translation strings are looked up by the ID, which in our case are the translation source strings.
This seems like a misuse of the concept.

The monolingual vs bilingual translation files issue/discrepancy is not handled in this change.

---

From now on we update all ts files so an update to the translation files with this script leads to an update in all translation files
rather than only the 'mumble_en.ts' reference file.

This approach will make translation change commits and PRs afterwards isolated to translation changes, and thus a lot smaller and easier to review.
There will no longer be an invisible, implicit difference between the committed ts file and the current program state = the translation source.
2021-03-03 19:09:15 +01:00
Jan Klass
319b50fd4a MAINT: Drop ts file plural fixup in updatetranslations.sh
Text with plural forms (a %n parameter and singular(s) qualifier) lead to special plural handling.

Different locales can have varying words depending on the number; mostly partially differently between 0, 1 and more.

English texts can have simple 'word(s)' text which will be transformed to '0 word', '1 word', '2 words', '3 words' and so on respectively.

Other languages may not have this mechanism, and the ts files are prepared with `<numerus>` elements within the `<translation>` elements.
These seem to be for specifying the varying plural forms manually.

This seems to be an automatism by lupdate.
When updating our current ts files it warns about multiple instances of the number of `numerus` elements not matching the number of plural forms in the locale the file is for.

Whatever the original hack/fix was for (#1195, the linked Transifex topic no longer works),
it seems very problematic.

Previously we only updated mumble_en.ts, and then depended on Transifex to update the contents of the other ts files when translations are changed.
This led to source and translation changes being intermixed in the change commit.

This change drops the 'numerus' element duplication.
This is in preparation for in the future updating translation sources on all ts files, where this fixup could be technically incorrect and problematic as a result.
As well as to drop this hack which seems like an awful, misleading and technically incorrect workaround for Transifex bugs or side effects in it’s transformation of source ts file to translation ts files.

The 'numerus' tag is not documented in Qt documentation with any information.

https://doc.qt.io/qt-5/i18n-source-translation.html#handling-plurals
2021-03-03 19:09:14 +01:00
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