1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

240 Commits

Author SHA1 Message Date
Anthony Bilinski
e100f81ba9
Merge branch 'v1.17-dev' 2022-03-07 15:02:46 -08:00
Anthony Bilinski
f68be0ab33
chore(release): Update qTox version number to v1.17.6 2022-03-06 04:10:08 -08:00
Anthony Bilinski
47406e7422
fix(Windows): Correct Program Files directory for 32-bit Windows
Both installers accidentally try to get permissions from the 64-bit Program
Files, introduced in 553bd47e81.
2022-03-06 02:05:17 -08:00
Anthony Bilinski
b581a9c6f8
chore(release): Update qTox version number to v1.17.5 2022-03-05 04:18:05 -08:00
Anthony Bilinski
553bd47e81
fix(Windows): Restrict non-default install directory permissions
Installations to Program Files (default) inherit restrictive permissions,
disallowing regular users from writing to files in the install location. If a
user installs to other directories with more lax permissions though, i.e. C:\,
the install directory can be writable by non-admins, causing a privilege
escalation opportunity. An unprivileged user could modify or replace the qTox
binary or a dll, that would then be run by any other user on the system.

Clone Program Files permissions rather than trying to craft sane permissions
manually for simplicity and compatibility.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
2c2c6f6818
refactor(Windows): Use UTF16 strings with files in Windows installer
Windows uses UTF16, so may have caused issues if users installed to paths with
non-ANSI characters. It is also needed for interacting with any OS files.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
9f84184ba8
fix(Windows): Build NSIS installer in Unicode mode
ANSI mode is deprecated.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
1353fc934e
fix(Windows): Define installer language before trying to access it
LangString UninstLogMissing statement was accessing LANG_ENGLISH before it was
defined by the MUI_LANGUAGE macro. It caused a warning, but still defaulted to
English.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
5526d131a7
refactor(Windows): Define installer macros right after creating them
Breaks an inter-dependency between "MODERN UI" section needing CreateShortcut
and "PREPARE UNINST LOG" section needing LANG_ENGLISH, allowing "MODERN UI"
section to be done first.
2022-03-05 04:15:19 -08:00
Anthony Bilinski
8a7461fc16
chore(CI): Run tests in parallel
Faster, with the bonus of catching unexpected dependencies between tests.
2022-03-03 12:09:50 -08:00
Anthony Bilinski
ca4d4b8a98
chore(CI): Revert reversal of 64-bit and 32-bit DLL search paths
Instroduced in 80a0a4ae62, caught in post-merge
review here: https://github.com/qTox/qTox/pull/6483/files#r815294041
2022-02-26 09:40:46 -08:00
Anthony Bilinski
80a0a4ae62
fix(CI): Correct Wine lib path for winehq manual install
Install path changed in 79feb19d7d,
but paths were not updated to match.

Fix #6481
2022-02-20 14:24:08 -08:00
Anthony Bilinski
68ca7354be
fix(Windows): Add missed openal dll since CI refactor
Old windows/cross-compile/build.sh copied OPENAL_PREFIX_DIR/bin/*.dll to be
included, but the current Dockerfile.windows_builder copies libs one by one
and misses OpenAL. qTox fails to start on launch with due to missing
OpenAL32.dll on Windows because of this.

Add a special check for OpenAL, since the generic missing dll check doesn't
cover it.
2022-02-17 12:41:09 -08:00
Anthony Bilinski
79feb19d7d
fix(CI): Update Wine from 5 to 7 in docker image to fix unit tests
Root cause is unclear, but fixes failures in test_bsu and hangs in
test_smileypack.
2022-02-17 10:10:20 -08:00
Mick Sayson
1288a0a7fa
chore(ci): Windows docker build fixes
* Fix unit tests not running in windows build
* Fix missing comment ports from old build script
2022-02-17 10:10:20 -08:00
Anthony Bilinski
0706c90633
fix(docs): Correct Windows cross compile example command
release/debug is case sensitive, so "Release" causes an error
2022-02-17 08:56:29 -08:00
Mick Sayson
8abe8320d2 chore(CI): Use docker for CI scripts
Motiviation:
* Reproducing issues in CI is currently difficult
* Predicting issues in CI is currently difficult if you are not on
  ubuntu 18.04
* Reproducing issues submitted from other distros is currently done by
  creating a VM of that distro and building qtox for it locally
* Documentation for how to build on different distros is out of date
* Issues on non-ubuntu distributions are not caught by CI
* Cross compiling for windows locally is not trivial
* Iterating when working with custom build scripts is slow, scripts
  don't necessarily support re-running without re-starting the docker
  container and re-building qtox again
* Updating dependencies is a pain

Changes:
* docker-compose file has been added to the root of our repo.
  After `docker compose run --rm ubuntu` (or other supported distros),
  you are ready to compile and run qtox
* Dependencies are owned by dependency install scripts in buildscripts/.
  This allows us to use the same exact dependencies in our
  OSX/windows/linux scripts
* New docker images have been added for a variety of distributions.
  These are now run in CI in a variety of configurations
  * Docker images are cached in CI so rebuild time for the majority of
    jobs is quite quick
* Build scripts have been trimmed to leverage state of docker
  containers.
  * Windows build script no longer installs anything, dependencies are
    now managed by the windows_builder docker images
  * Build scripts should now be easily re-runnable. Usage is now `docker
    compose run --rm <image>` and then run the scripts
* All artifacts are now uploaded to github after build, this means we
  can take an appimage/flatpak/exe/dmg for any given PR and try it out
  without having to build it ourselves

Notes:
* Docker image size is quite important. We have a maximum of 5GB cache
  space on github actions. The majority of the linux distro docker
  images cache at ~300-400MB, which gives us room to test ~6 distros
  after accounting for the sizes of flatpak/windows docker images
* Docker layer ordering is relatively intentional. Approximate order
  should be that large dependencies that change infrequently should be
  farther up. This lowers the amount of rebuilding we have to do when
  dependencies are updated
* download_xxx.sh scripts are the cleanest way I could find to implement
  a shared dependency map between osx scripts and docker containers.
  Although it would be nice to have a single dependency mapping file,
  splitting it into individual scripts allows us to only rebuild some
  docker layers when dependencies are updated.
* Github actions are split between docker image building and docker
  image use. This allows us to re-use the same docker images for
  multiple jobs, but only build it once
  * Unfortunately I could not find a way to de-duplicate the stitching
    between jobs, so we have a lot of copy pasta in that area
2021-12-19 14:56:05 -08:00
Anthony Bilinski
7f4c308990
Merge branch 'v1.17-dev' 2021-12-14 21:20:14 -08:00
Anthony Bilinski
f0e82c3d90
chore(release): Update version number to v1.17.4 2021-12-14 17:04:29 -08:00
Maxim Biro
96e1ce573b
chore(windows): update VPX to 1.11.0 2021-12-14 01:29:59 -08:00
Maxim Biro
f854e5bbef
chore(windows): update Exif to 0.6.24 2021-12-14 01:29:20 -08:00
Maxim Biro
0eb4dc3735
chore(windows): update FFmpeg to 4.4.1 2021-12-14 01:28:19 -08:00
Maxim Biro
bc7497a01c
chore(windows): update SQLCipher to 4.5.0 2021-12-14 01:25:48 -08:00
Maxim Biro
265e2e1721
chore(windows): update Qt to 5.12.12 2021-12-14 01:23:01 -08:00
Anthony Bilinski
e12e6fecaa
chore(deps): update c-toxcore to v0.2.13 2021-12-14 00:43:14 -08:00
Maxim Biro
d03c60e3b2
chore(windows): Update toxcore to 0.2.13 2021-12-07 04:56:42 -05:00
Maxim Biro
2414593386
chore(windows): update VPX to 1.11.0 2021-12-07 04:56:40 -05:00
Maxim Biro
d08c37b5a4
chore(windows): update Exif to 0.6.24 2021-12-07 04:56:39 -05:00
Maxim Biro
de84dcb89c
chore(windows): update FFmpeg to 4.4.1 2021-12-07 04:56:36 -05:00
Maxim Biro
560751db88
chore(windows): update SQLCipher to 4.5.0 2021-12-07 04:56:17 -05:00
Maxim Biro
da8885cffb
chore(windows): update Qt to 5.12.12 2021-12-07 04:28:03 -05:00
Maxim Biro
9c9d0f8623
refactor(windows): simplify dll check logic
Instead of checking every .exe separately, loop over all of them with
the same checks.
2021-10-30 19:56:11 -04:00
Anthony Bilinski
a9b7a24fe4
Merge pull request #6402
Mick Sayson (1):
      fix(toxext): Update toxext to fix memory corruption issues
2021-10-26 02:02:19 -07:00
Mick Sayson
761c2fb292 fix(toxext): Update toxext to fix memory corruption issues
* tox_extension_messages updated as well for compatibility
2021-10-25 23:20:51 -07:00
Anthony Bilinski
057f921ace
fix(build): Add std threading support in Windows build
Use posix versions of mingw toolchains, which say:
> This package contains the C++ compiler, supporting cross-compiling to
64-bit MinGW-w64 targets, using the POSIX threading model.

Fix build failure saying that std::mutex was not declared
2021-10-24 15:55:52 -07:00
Maxim Biro
b2215454e3
chore(windows): update copyright year 2021-10-10 17:16:24 -04:00
Maxim Biro
b11896100c
chore(windows): fix Wine prefix issue 2021-10-10 17:12:14 -04:00
Maxim Biro
66c2a0807b
chore(windows): update GDB to 11.1, add GMP
GDB 11 gained GMP as a required dependency.
2021-10-08 12:09:32 -04:00
Maxim Biro
8e856dfbfd
chore(windows): update Expat to 2.4.1 2021-10-08 12:03:01 -04:00
Maxim Biro
1209ba7b9c
chore(windows): update Exif to 0.6.23 2021-10-08 12:01:39 -04:00
Maxim Biro
936e9c05cf
chore(windows): update Qt to 5.12.11
We are staying on 5.12 instead of 5.15 because 5.12 is supported for
longer. There should be one more release in H2 2021.

Ideally we would switch to 6.2, but qTox doesn't seem to be Qt6-ready
yet.
2021-10-08 12:00:54 -04:00
Maxim Biro
678b864037
chore(windows): update OpenSSL to 1.1.1l 2021-10-08 12:00:06 -04:00
Maxim Biro
57ae8a3e6a
chore(windows): use Debian Bullseye for Windows cross-compilation
bsdtar has moved to libarchive-tools package.

Something has changed in the newer gcc or mingw that makes Opus and
Sodium fail to build with:

  undefined reference to `__memcpy_chk'

The solution is to use -lssp or -fstack-protector, but while -lssp
worked for Opus, it was breaking Sodium's `make install` as it prevented
the .def file from being generated during the build time for some
reason:

  /usr/bin/install: cannot stat './libsodium-24.def': No such file or directory

while -fstack-protector worked just fine, so -fstack-protector was used
for both. This adds a new library dependency on libssp-0.dll.
2021-10-01 13:30:50 -04:00
Maxim Biro
b4b22bcafc
chore(windows): update mingw-ldd to v0.2.1 2021-03-26 16:26:29 -04:00
Maxim Biro
5f2d87a9b4
chore(windows): update GDB to 10.1 2021-03-26 16:26:00 -04:00
Maxim Biro
930f70de0f
chore(windows): update Expat to 2.3.0 2021-03-26 16:25:23 -04:00
Maxim Biro
c1505a4f6b
chore(windows): update VPX to 1.10.0 2021-03-26 16:24:10 -04:00
Maxim Biro
be2610b826
chore(windows): update FFmpeg to 4.3.2 2021-03-26 16:23:48 -04:00
Maxim Biro
c7e324faff
chore(windows): update SQLCipher to v4.4.3 2021-03-26 16:23:15 -04:00
Maxim Biro
940b69e0b5
chore(windows): update Qt to 5.12.10 2021-03-26 16:18:27 -04:00