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

224 Commits

Author SHA1 Message Date
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
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
Anthony Bilinski
8ba13db907
chore(release): Update version number to v1.17.3 2020-11-22 20:06:34 -08:00
Maxim Biro
bedcf6839a
fix(windows): iconengines not being installed
(cherry picked from commit 1e50c123dc)
2020-11-22 20:05:00 -08:00
Maxim Biro
526db3eb81
refactor(Windows): unify whitespaces in NSIS scripts
While two files differ only by 3 lines, there were many unnecessary
whitespace differences between them.

(cherry picked from commit 169009f550)
2020-11-22 20:04:48 -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