Commit Graph

131 Commits

Author SHA1 Message Date
Robert Adam
4e2e53d0f9 BUILD(macos): Fix plugins not getting bundled
If the osxdist script was not executed within the build directory, it
would not bundle the built plugins (most notably the Link plugin) as it
was using a relative path and was ignoring the binary dir command-line
option.

This is remedied by this commit.

Fixes #5571
2022-05-08 20:25:43 +02:00
Robert Adam
c4abb61ac4 MAINT: Port osxdist script to Python 3
The script used to package the Mumble DMG file on macOS was still using
Python 2.

The port to Python 3 is performed by this commit.
2022-05-08 20:24:48 +02:00
Klemens Nanni
bceec3dbfe MAINT(client): Remove SBCELT leftovers
This is dead code since
```
commit c5644c7d73
Author: Robert Adam <dev@robert-adam.de>
Date:   Thu May 7 08:14:09 2020 +0200

    3rdparty: Removed sbcelt submodule as it is not used and broken
```
2022-01-22 11:36:52 +03:00
Robert Adam
d100ff1467 MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
Robert Adam
57095b0045 BUILD(macos): Fix package script failing
We were seeing errors like
could not access /Volumes/Mumble 1.4.0~2021-05-16~g789f2d79e~snapshot/Mumble.app/Contents/MacOS/Mumble - No space left on device
hdiutil: create failed - No space left on device
every now and then when attempting to package the DMG package for macOS.

Following the trick described at
https://apple.stackexchange.com/a/177071/417917, we now add the
-megabytes option to the call which seems to fix the issue somehow.
2021-05-17 08:54:52 +02:00
Robert Adam
0d71b84ec7 REVERT: "BUILD(macos): Fix hdiutil error during dmg packaging"
This reverts commit 0b75cd6f8a.
2021-05-17 08:49:39 +02:00
Robert Adam
0b75cd6f8a BUILD(macos): Fix hdiutil error during dmg packaging
The error that appeared every now and again was "no space left on
device". The exact cause and why it worked in some cases is not clear,
but with these changes it seems way more robust than before.
2021-05-13 13:33:02 +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 Adam
b63adf6e86 BUILD(cmake): Make unity builds possible
This commit explicitly excludes certain targets from being built in a
unity build (or rather they continue to get built normally) as they
cause compilation errors in these kind of builds.
2021-03-06 18:57:22 +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
Davide Beatrici
f19a645c38 BUILD(macOS): Only include ".dylib" files in bundle's "Plugins" directory
In addition to the plugins, the "plugins" folder in the build directory also contains temporary build files.

As the script was copying the entire tree, those files made their way into the bundle.

This commit fixes the issue by explicitly copying only files that end with ".dylib".
2020-12-24 02:27:13 +01:00
Robert Adam
40090d297f MAINT: Make use of cmake configure for version
Instead of having to change the version number and the build year in all
those files manually, we let cmake do the work by replacing the
respective values in templates.
2020-09-02 18:30:33 +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
32d685517e FIX(packaging): Enable mac-script to run multiple times
Before this commit the MacOS packaging script failed on copying Codecs
if the respective directory already existed (e.g. because the packaging
script has been run before).

Furthermore the script called a function to delete a directory (tree)
on a file. This error never surfaced before because usually when this
script is run, the respective file doesn't exist yet.

Both issues are fixed by this commit. It is now possible to run the
packaging script multiple times consecutively without it erroring on
already existing files.
2020-08-14 22:03:47 +02:00
Davide Beatrici
2ee48b07c0 macx/scripts: allow to specify custom source and binary directories
Our qmake project forcibly put binaries into the "release" folder, inside the repository.

With the CMake project this is not the case: the source and binary directories can even reside on different drives.

Unfortunately the binary directory was hardcoded in both "build-overlay-installer" and "osxdist.py".
As for the source directory, both scripts simply expected to be run from the repository's root.

This commit adds the "--source-dir" and "--binary-dir" options to "osxdist.py". Default values: "." and "build", respectively.

"build-overlay-installer" now expects its working directory to be the binary folder.
No options are added; they are not required because the script is executed by "osxdist.py", which takes care of setting the working directory.

Extra change: "build-overlay-installer" now uses "PlistBuddy" rather than "defaults", because the latter doesn't support reading from a file anymore in macOS Catalina (10.15).
2020-07-11 19:37:18 +02:00
Davide Beatrici
31eb467b30 macx/osax: add CMakeLists.txt 2020-07-11 19:34:50 +02:00
Robert Adam
870f0c3cfe MAINT(readme): Move READMEs for static server into docs/ 2020-07-08 17:55:46 +02:00
Davide Beatrici
4e67a2fafb Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
Davide Beatrici
9e1a5604d2 Remove CELT 0.11.0
CELT 0.11.0 provides better quality in comparison to CELT 0.7.0, but the two versions of the codecs are not compatible, which is why we provided both of them.

Opus was introduced in Mumble 1.2.4 (7586a61226), thus we expect that most (if not all) users are using it.

By removing CELT 0.11.0 we don't break backwards compatibility, because it's provided by CELT 0.7.0.

The main reason for removing the codec is the fact that its discontinued (in favor of Opus).

Also, CELT 0.11.0 was removed from the Debian package back in 2012: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682010
2019-10-15 03:50:24 +02:00
Davide Beatrici
ba217fd660 macx/osax: don't build for deprecated i386 architecture
https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
2019-10-10 00:11:24 +02:00
Davide Beatrici
e9029a904e Remove "compat", i386 is not supported anymore
"compat" was a very small and simple program; its purpose was to show a message informing the user that the Mumble binary is only for x86_64 processors.

The i386 architecture is not supported in Xcode 10, meaning that we cannot compile it anymore.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
2019-10-10 00:11:16 +02:00
Davide Beatrici
9ab5fe97b6 Set target macOS version to 10.9
"libstdc++" was deprecated with Xcode 8 and is not supported in Xcode 10.

The new library is "libc++", available with macOS 10.9+.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
2019-10-09 23:35:41 +02:00
Jan Klass
19b5702168 Bump version to 1.4.0
1.3.0 has been released. master now represents the current state of
development towards the next feature release 1.4.0.

Bugfixes for 1.3 will happen in the 1.3.x branch.

Compared to earlier version bumps we bump a lot more files because of
we produce more artifacts; overlay process, dll and exe split, etc.

This should have happened right after the 1.3.x branch was split off.
2019-09-22 10:24:19 +02:00
Davide Beatrici
88931266b2 macx/scripts/osxdist.py: add "--no-compat-warning" option
QMake always passes "-arch x86_64" after the parameters specified in our project file, meaning that we can't build the application as 32 bit.

This option allows us to disable the feature (warning when trying to run Mumble on a 32 bit system) for the CI build.
2019-04-05 00:59:40 +02:00
Davide Beatrici
1813fe1af3 macx/scripts/osxdist.py: copy Opus library into App Bundle
The script copies the CELT (dynamic) libraries into the App Bundle, so that they are installed and then loaded by Mumble.

This commit adds the Opus library to the list of files to copy, necessary because it is loaded at runtime since e0ee016e5c.
2019-04-05 00:57:17 +02:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
davidebeatrici
42e8d60bcb macx: don't set custom build directory 2018-02-18 23:56:34 +01:00
davidebeatrici
e348e47f4a Remove leftover includes from "main" and "macx" project files 2018-01-12 18:08:15 +01:00
Mikkel Krautz
f6ba3a52bf Auto-update LICENSE.header in source files. 2018-01-01 23:05:37 +01:00
Mikkel Krautz
828d9301f5 Remove DIST directive from all .pro files.
We used to use DIST for referencing extra files that should be included
in our tarballs created by 'make dist'.

However, we've since migrated away relying on 'make dist' in release.pl.
Instead, we include everything, and have a list of items to exclude, such
as IETF RFC drafts distributed in 3rdparty/speex-src that do not adhere to
the Debian Free Software Guidelines.
2017-08-06 20:38:14 +02:00
Jan Klass
27a983d094 Fix indentation in pro files
Make them consistently two spaces indentation.

In two places a wrong indentation level was fixed.
2017-08-05 20:37:19 +02:00
Davide Beatrici
d04995899a Move .pri files and "toolchain" folder in "qmake" 2017-03-05 15:48:16 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
Mikkel Krautz
f01f6e5528 macx/compat: fix build of compat.m shim with Sierra SDK.
The Sierra SDK seems to require an id<NSApplicationDelegate>
for its setDelegate: call.

To accomplish this, split off the existing adoption of
NSFileManagerDelegate into a seperate class extension.

Then, add another class extension for conforming to the
NSApplicationDelegate protocol.

Both of them are gated with MAC_OS_X_VERSION_MAX_ALLOWED
to allow building with older SDKs.
2016-11-25 23:17:33 +01:00
Mikkel Krautz
d54cb77be3 macx/osax: bump overlay version to force re-install on macOS. 2016-07-18 17:35:33 +02:00
Mikkel Krautz
4e2c7e384f macx: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
Mikkel Krautz
b0d53e1f86 compiler.pri: unsure that all our compiler.pri CFLAGS and CXXFLAGS are also applied for Objective-C(++).
...And fix all the errors that change introduces throughout the source tree.
2015-11-21 16:46:03 +01:00
Mikkel Krautz
f8b63cd53c macx/osax: bump OS X overlay version to 19.
This forces users to reinstall the overlay after
our recent bugfix round.
2015-02-08 16:56:06 +01:00
Mikkel Krautz
f0ff84f6c0 Unify overlay code for Unix and OS X.
This commit removes macx/overlay and merges
the OS X overlay into the Unix overlay in
overlay_gl.

Most of the overlay logic is exactly the same,
with most of the differences being in the
initialization code and the addition of few new
messages for the interactive client-in-overlay
feature that the OS X overlay suports.

The initialization code is factored out into
init_unix.c for Unix-likes and init_mac.c
for OS X.

These init files are #included by overlay.c.
That is, they're not separate translation
units. Doing it this way cuts down on the
total LOC count and overall complexity of the
code.

The interactive overlay support is ported
directly from the OS X overlay. It's mostly
a matter of supporting a few new message types:
OVERLAY_MSGTYPE_PID and OVERLAY_MSGTYPE_INTERACTIVE.

The overlay_gl.pro file in this commit is mostly
just a combination of the .pro files of the two
overlays, with a minor difference in the CFLAGS
for the OS X overlay. In old OS X overlay, the
overlay had an ".m" file extension, signalling
that it is an Objective-C source file to the
C compiler. Since the combined overlay has a
".c" extension, "-x objective-c" is added to
CFLAGS on OS X to tell the compiler to compile
the overlay as Objective-C code.
2015-02-07 23:24:47 +01:00
Mikkel Krautz
1fab580baa Use glDrawArrays instead of immediate mode in OS X's drawOverlay(). 2015-02-05 23:11:28 +01:00
Mikkel Krautz
f4568b9e46 Port 6e9a7e7c to the OS X overlay. 2015-02-05 23:11:28 +01:00
Mikkel Krautz
8e3168b2e7 Port ec7e78d1 to the OS X overlay. 2015-02-05 23:11:28 +01:00
Mikkel Krautz
403aedb35d Add mach_override as a 3rdparty dep and hook it into the OS X overlay.
Prior versions of mach_override were small (a single file),
and we just had its source live in the OS X overlay directory.

Newer versions of mach_override use libudis86, so the file count
goes up a fair bit. So much so that it doesn't make sense to
have it live inside the OS X overlay anymore.

Because of that, this commit moves it into 3rdparty.
2015-02-05 23:11:28 +01:00
Mikkel Krautz
19996c5351 g15helper, macx/compat: fix OS X i386 targetting when using Qt 5. 2014-08-01 00:01:45 +02:00
Mikkel Krautz
840a31de0e macx/scripts: fix osxdist.py and build-installer-overlay to work in a source tree path with spaces in it. 2014-07-20 19:45:23 +02:00
Mikkel Krautz
689f4c1847 Bump version to 1.3.0 2014-04-05 10:26:25 +02:00
Mikkel Krautz
8632246f98 Bump version to 1.2.5 2013-06-08 23:41:51 +02:00
Kissaki
1e4bb6dbd0 Prepend Projectname to header guard defines
* some few (4?) files actually already had it
2013-06-04 21:59:52 +02:00
Kissaki
7642e722ff Adjust header guard defines for uniformity
* Append underline to header guard defines to match the others (except ui_)
* Add guard to header files GlobalShortcut
* Adjust mklic.pl script to add guard to licenses.h,
and add updated licenses.h.
2013-06-04 21:59:51 +02:00
Kissaki
40ca9b4507 Rename header guard defines to not use c++-reserved names
* as pointed out in issue #842
adjust names to match other header files
2013-06-04 21:59:50 +02:00