Autoupdates Unvanquished using Unvanquished's CDN
git submodule update --init
Note: Fluid has submodules of its own, but they are not used, so the above command is intentionally not recursive.
Before building the updater itself you need to build aria2 library
cd aria2
../build-aria.sh
cd ..
Note: you need Qt 5.8 at least.
QT_SELECT=5 qmake -config release
make -j4
docker build -t unvlauncher-linux .
docker run -v `pwd`/build-docker:/build-docker -u `id -u $USER` unvlauncher-linux
Search for updater (or updater-nonstripped) in build-docker directory.
If the code is checked out on a Windows host, you must ensure that the line endings in the aria2 submodule are LF. The symptom of CRLF newlines is libtoolize: AC_CONFIG_MACRO_DIR([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4. To reset the newlines:
cd aria2
git config core.autocrlf input
git rm -r --cached . && git reset --hard
The first line below runs the Docker build for Windows. The last 3 lines are to copy the result out of the container.
docker build -t unvlauncher-win -f Dockerfile.win .
docker create --name unvlauncher-win unvlauncher-win
docker cp unvlauncher-win:/build/release/updater.exe ./build-docker
docker rm unvlauncher-win
Search for updater.exe in build-docker directory.
curl -LO https://download.qt.io/archive/qt/5.14/5.14.2/single/qt-everywhere-src-5.14.2.tar.xz
tar -xzf qt-everywhere-src-5.14.2.tar.xz
cd qt-everywhere-src-5.14.2
MODULES=qtbase,qtquickcontrols,qtquickcontrols2,qtsvg,qtgraphicaleffects
# Default install location (--prefix): /usr/local/Qt-5.14.2
./configure -opensource -confirm-license -release -optimize-size -no-shared -no-framework -static --c++std=14 -nomake tests -nomake tools -nomake examples
cat <(echo '#include <CoreGraphics/CGColorSpace.h>') qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h > tmp && mv tmp qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h
eval make -j`sysctl -n hw.logicalcpu` module-{$MODULES}
echo $? # If nonzero, repeat previous command
eval sudo make module-{$MODULES}-install_subtargets
brew install autoconf automake libtool pkg-config gettext
cd aria2
# If building on M1, target x86 by running in Rosetta: arch -x86_64 ../build-aria.sh
# (the --target option to configure doesn't seem to have any effect)
CFLAGS=-Os CXXFLAGS=-Os ../build-aria.sh
cd ..
mkdir build; cd build
/usr/local/Qt-5.14.2/bin/qmake -config release ..
make
The Unvanquished Updater as a whole is available under GPLv3. Source files in this repository are licensed as GPL version 3 or greater, unless the file specifies otherwise.
Dependencies have the following licenses:
- Qt: GPLv2 or GPLv3 or LGPLv3
- Quazip: LGPL version 2.1 or greater
- Fluid: Mozilla Public License 2.0
- Aria2: GPL version 2 or greater
- OpenSSL 3.x (Linux build only): Apache License 2.0
- ExecInExplorer.cpp: MIT License