Commit Graph

158 Commits (master)

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
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
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