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

154 Commits

Author SHA1 Message Date
Anthony Bilinski
46ef31293c
refactor(CI): Rename Windows cross compile builds to match cmake types
Debug and Release with capital letters are consistent with all our other CI
script build type names as well as cmake build types.
2022-05-21 18:21:04 -07:00
Anthony Bilinski
ba17b5130c
Revert "chore(CI): Disable online tests in all but one CI job"
This reverts commit fd2997c2db.

Core tests are no longer online, so no longer are flaky nor tie up many
minutes of test runner time. So re-enable for all jobs.
2022-03-13 03:21:27 -07:00
Anthony Bilinski
fd2997c2db
chore(CI): Disable online tests in all but one CI job
They're still slightly flaky even with insanely long timeouts, and even when not they waste a huge amount of our runner time sitting and waiting for the DHT to disconnect and reconnect.

Still run on our fedora job to get almost all of the benefit, plus AddressSanitizer is enabled there for better testing synergy.
2022-03-08 20:18:35 -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
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
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
Maxim Biro
a504a4e58a
chore(windows): update OpenSSL to 1.1.1k 2021-03-26 16:17:19 -04:00
Mick Sayson
670457a77b
fix(extensions): Add toxext to CI scripts 2021-01-30 18:15:36 -08:00
Anthony Bilinski
425e3f6518
Merge branch 'v1.17-dev' 2020-11-23 09:53:13 -08:00
Maxim Biro
c97cacb52a
chore(windows): update Expat to 2.2.10
(cherry picked from commit a59c960d81)
2020-11-22 20:02:32 -08:00
Maxim Biro
1a9fbffb24
chore(windows): update VPX to 1.9.0
(cherry picked from commit 2e1999e2ca)
2020-11-22 20:02:27 -08:00
Maxim Biro
13b4396b75
chore(windows): update QREncode to 4.1.1
(cherry picked from commit cca17b2341)
2020-11-22 20:02:22 -08:00
Maxim Biro
5de8ff4ee5
chore(windows): update FFmpeg to 4.3.1
(cherry picked from commit ea3d618223)
2020-11-22 20:02:17 -08:00
Maxim Biro
e37a8cf82f
chore(windows): update Qt to 5.12.9
(cherry picked from commit dc78f410f0)
2020-11-22 20:02:12 -08:00
Maxim Biro
bb89e7d906
chore(windows): update OpenSSL to 1.1.1h
(cherry picked from commit c2c7ee90e2)
2020-11-22 20:02:07 -08:00
Anthony Bilinski
5932e9332b
chore(build): Update Windows toxcore build to v0.2.12
It was missed during the last update.

(cherry picked from commit e90edbf5c2)
2020-11-22 20:01:12 -08:00
Anthony Bilinski
81e2d41106
chore(travis): use curl instead of wget to connect to libsodium
wget was failing to negotiate with download.libsodium.org since it doesn't
support TLS 1.0

Fix #6191

(cherry picked from commit c2483f474a)
2020-11-22 20:00:28 -08:00
Maxim Biro
33a89c24ee
refactor(build): remove specific string tests
What we really want to test is if the variable is set/defined/non-empty.

(cherry picked from commit af78a42187)
2020-11-22 20:00:22 -08:00
Maxim Biro
1900592646
fix(build): cache debug deps during 2nd stage
(cherry picked from commit a686468bfd)
2020-11-22 20:00:14 -08:00
Maxim Biro
83f543fab8
chore(build): Update copyright year
(cherry picked from commit 2f6d3f443f)
2020-11-22 20:00:07 -08:00
Maxim Biro
a0569e41a7
feat(windows): Build our own gdb
(cherry picked from commit ffc0359919)
2020-11-22 19:59:59 -08:00