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

7993 Commits

Author SHA1 Message Date
Anthony Bilinski
17c4ad4ba7
chore(CI): Revert 40989e54d8
Workaround was only due to a travis limitation that's no longer present on GH actions.
2022-02-19 03:31:16 -08:00
Anthony Bilinski
75648d04b9
fix(appImage): Bundle libpangocairo which was incompatible on Arch
No systematic fix to the constant flakiness of AppImage. Although we could
upload the artifact in a job and download in on another job's platform,
minimal docker images aren't analogous to user desktop systems. AppImage
and linuxdeployqt specifically make assumptions about what libs should
exist, so our testing should be more real-world.

Will continue manually testing in full desktop VMs before release and
relying on user reports.

Fix #6454
2022-02-19 03:30:01 -08:00
Anthony Bilinski
ddebf6ee7a
fix(crash): Handle nightly tag name in update check
We didn't use to have a nightly tag, so git describe would include the
verison of the last release even for nightly or dev builds. Now that the
nightly tag exists, which is required for github release craeation, it
breaks out git describe parsing, and there's no way for us to tell if a
user is behind the next release or not.

Instead just don't check update status if the user isn't on a release
tagged version.
2022-02-19 03:28:21 -08:00
Anthony Bilinski
1031b315b9
chore(i18n): update translation files for Weblate 2022-02-19 03:26:11 -08:00
Anthony Bilinski
4b3f50a0c0
chore(l10n): Fix ordering of languages in code 2022-02-19 03:26:11 -08:00
Anthony Bilinski
188fe340f2
feat(l10n): Add Urdu and Icelandic translations 2022-02-19 03:26:11 -08:00
Anthony Bilinski
3fcbfd63bc
chore(l10n): update translations from Weblate
109247019824 (2):
      feat(l10n): update Bulgarian translation from Weblate
      feat(l10n): update Bulgarian translation from Weblate

Abu Sarim Hindi (2):
      feat(l10n): add Urdu translation using Weblate
      feat(l10n): update Urdu translation from Weblate

Alexander-David Beck (3):
      feat(l10n): update German translation from Weblate
      feat(l10n): update German translation from Weblate
      feat(l10n): update German translation from Weblate

Anthony Bilinski (2):
      feat(l10n): add English (United States) translation using Weblate
      Deleted translation using Weblate (English (United States))

Artem (1):
      feat(l10n): update Russian translation from Weblate

Atrate (1):
      feat(l10n): update Polish translation from Weblate

Claes-Göran Nydahl (1):
      feat(l10n): update Swedish translation from Weblate

Eric (3):
      feat(l10n): update Chinese (Simplified) translation from Weblate
      feat(l10n): update Chinese (Simplified) translation from Weblate
      feat(l10n): update Chinese (Simplified) translation from Weblate

Frankie McEyes (1):
      feat(l10n): update Italian translation from Weblate

Gediminas Murauskas (6):
      feat(l10n): update Lithuanian translation from Weblate
      feat(l10n): update Lithuanian translation from Weblate
      feat(l10n): update Lithuanian translation from Weblate
      feat(l10n): update Lithuanian translation from Weblate
      feat(l10n): update Lithuanian translation from Weblate
      feat(l10n): update Lithuanian translation from Weblate

Ivan (1):
      feat(l10n): update Russian translation from Weblate

Jonatan Nyberg (1):
      feat(l10n): update Swedish translation from Weblate

Kaantaja (1):
      feat(l10n): update Finnish translation from Weblate

Karl Tammik (4):
      feat(l10n): update Finnish translation from Weblate
      feat(l10n): update Estonian translation from Weblate
      feat(l10n): update Estonian translation from Weblate
      feat(l10n): update Estonian translation from Weblate

Kristjan Räts (2):
      feat(l10n): update Estonian translation from Weblate
      feat(l10n): update Estonian translation from Weblate

Matej Golian (1):
      feat(l10n): update Slovak translation from Weblate

Oğuz Ersen (2):
      feat(l10n): update Turkish translation from Weblate
      feat(l10n): update Turkish translation from Weblate

Plamen Nazarov (1):
      feat(l10n): update Bulgarian translation from Weblate

Rafael Nadal (2):
      feat(l10n): update Czech translation from Weblate
      feat(l10n): update Czech translation from Weblate

S3aBreeze (3):
      feat(l10n): update Russian translation from Weblate
      feat(l10n): update Russian translation from Weblate
      feat(l10n): update Russian translation from Weblate

SC (1):
      feat(l10n): update Portuguese translation from Weblate

Sparkwave (1):
      feat(l10n): update Polish translation from Weblate

The Cats (14):
      feat(l10n): update Portuguese (Brazil) translation from Weblate
      feat(l10n): update Spanish translation from Weblate
      feat(l10n): update French translation from Weblate
      feat(l10n): update Spanish translation from Weblate
      feat(l10n): update French translation from Weblate
      feat(l10n): update Portuguese (Brazil) translation from Weblate
      feat(l10n): update French translation from Weblate
      feat(l10n): update Italian translation from Weblate
      feat(l10n): update German translation from Weblate
      feat(l10n): update Italian translation from Weblate
      feat(l10n): update German translation from Weblate
      feat(l10n): update German translation from Weblate
      feat(l10n): update Italian translation from Weblate
      feat(l10n): update Hebrew translation from Weblate

Tomi P (1):
      feat(l10n): update Finnish translation from Weblate

Trendyne (2):
      feat(l10n): add Icelandic translation using Weblate
      feat(l10n): update Icelandic translation from Weblate

Tymofii Lytvynenko (1):
      feat(l10n): update Ukrainian translation from Weblate

coronabond (1):
      feat(l10n): update Italian translation from Weblate

litavycia (1):
      feat(l10n): update Ukrainian translation from Weblate

mati (1):
      feat(l10n): update Polish translation from Weblate

nue (2):
      feat(l10n): update Latvian translation from Weblate
      feat(l10n): update Latvian translation from Weblate

redtide (1):
      feat(l10n): update Italian translation from Weblate

remussatala (2):
      feat(l10n): update Romanian translation from Weblate
      feat(l10n): update Romanian translation from Weblate

ssantos (2):
      feat(l10n): update Portuguese translation from Weblate
      feat(l10n): update Portuguese translation from Weblate

t4llkr (1):
      feat(l10n): update Russian translation from Weblate

wang (1):
      feat(l10n): update Chinese (Simplified) translation from Weblate

曹恩逢 (1):
      feat(l10n): update Chinese (Traditional) translation from Weblate
2022-02-19 03:26:11 -08:00
Anthony Bilinski
5a77a18fc0
fix(gitstats): Re-enable deploying of gitstats to qtox.github.io
Hasn't been run since the travis days.

Now managed through a deploy key rather than an access token to limit scope to
a single repo. Private key is stored in qTox/qTox as a repository secret, and
the public portion is saved to qTox/gitstats as a deploy key.
2022-02-19 03:15:41 -08:00
Anthony Bilinski
9cd9da4a53
fix(CI): Fix memory leak in core_test
Causes false positives when running tests with ASAN
2022-02-17 20:10:38 -08:00
Anthony Bilinski
0cb760dfa2
Merge pull request #6437
Anthony Bilinski (1):
      chore(cleanup): Minor cleanup to contact management test

bodwok (1):
      test(FriendListManager): add contact management test
2022-02-17 17:42:14 -08:00
Anthony Bilinski
a1ebf297d3
chore(cleanup): Minor cleanup to contact management test
* Fix compile error on macOS by marking GroupWidget::widgetIsVisible as
override
* Mark mock functions override for consistency
* Change QWARN to QVERIFY since logs will be missed in CI
* Uncomment add of offline and online friends in testSortByActivity
* Add out-of-line method definition to anchor vtable
2022-02-17 17:17:48 -08:00
bodwok
0a9e121811
test(FriendListManager): add contact management test 2022-02-17 13:20:58 -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
88edc66f88
fix(buildscripts): Fix license text for MIT derived works 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
1bc72ab1a4
fix(CI): Grant action content write permission for release upload
By default our organization on GH only grants a more restricted read
permission to actions for content APIs, which include both writing to
repo for nightly tag creation, and writing to releases for nightly and
tag release creation or updates.
2022-02-17 09:01:01 -08:00
Anthony Bilinski
b657fa2bc6
chore(deps): update c-toxcore to v0.2.15 2022-02-17 08:58:05 -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
Anthony Bilinski
9cbf3c0874
refactor(ToxPk): Update unit test
Remove check for invalid ToxId, since short ToxIds aren't constructable.
2022-02-17 07:20:21 -08:00
Anthony Bilinski
d1c86ffff9
refactor(ToxPk): Remove ability to construct ToxId from ToxPk
Construct ToxPk directly everywhere that used to construct through ToxId.

Now any ToxId should be a valid ToxId, and not possibly just a ToxPk.
2022-02-17 07:20:21 -08:00
Anthony Bilinski
d19ae1ead0
chore(CI): Remove wget as brew dependency
All project downloads are now done through curl
2022-02-17 07:09:03 -08:00
Anthony Bilinski
3ac37a5496
fix(core): Track avatar offer file size to avoid cancelling transfers
When ToxFile is constructed with a file size of 0, it cancels the transfer as
soon as the first chunk is received due to the received size being
larger than expected.
2022-02-17 06:20:54 -08:00
Anthony Bilinski
919cd6b210
chore(docs): Remove stale translated INSTALL.md
It hasn't had a text update since being introduced over 3 years ago despite our
English INSTALL.md having significant changes in that time.

Users requiring translation would be better off auto-translating our English
INSTALL.md.
2022-02-17 00:22:07 -08:00
Anthony Bilinski
8d1b0d6c6e
feat(CI): Output on test failure in Linux CI 2022-02-16 21:17:58 -08:00
Anthony Bilinski
a828b54be4
refactor(Paths): Remove portable state from Settings
It now duplicates the state in Paths where it is needed, creating the
chance for desync
2022-02-16 20:15:50 -08:00
Anthony Bilinski
557af80428
refactor(Paths): Remove Paths factory to enable copy construction
std::atomic disallows copy construction and the default constructor disables
the parameterized constructor.

Additionally the case where paths aren't writable isn't handled and would just
segfault in Settings previously, so no safety is lost.
2022-02-16 20:15:46 -08:00
Anthony Bilinski
0eb56fb9bb
fix(Paths): Track portable state in Paths to updates paths correctly
Paths must be aware of the "makeToxPortable" state to so that on shutdown,
saving saves to the new location.

This reverts to old behaviour which was broken in
5d56a3c039

Fix #6443
2022-02-16 19:48:11 -08:00
Anthony Bilinski
d0c120e0a8
fix(Paths): Default to auto paths detection mode
So that settings can be found in either the portable or system wide location.
2022-02-16 19:48:11 -08:00
Anthony Bilinski
44d867f624
fix(CI): Fix regression in logging from docker compose run
Replace "docker compose run" with "docker-compose run".

Seems like some kind of github actions regression:
https://github.com/github/feedback/discussions/11011
2022-02-16 19:32:47 -08:00
Anthony Bilinski
15673a52b6
fix(macOS): Update video API usage for newer libavcodec
Newer version of avformat_open_input, av_find_input_format,
avcodec_find_decoder previously used non-const pointers that are now
const. Support both version for compatibiltiy with other platforms.
2022-02-16 18:04:57 -08:00
Anthony Bilinski
90484a1fdf
chore(CI): Replace CentOS 8 CI with AlmaLinux
CentOS is EOL, and AlmaLinux seems like the closest successor
2022-02-08 02:08:42 -08:00
Anthony Bilinski
65c42ebd9e
chore(release): Create release on tag push
Release will be created as a draft, remaining private until manually published.
All generated artifacts will be uploaded, but will still need to be signed, and
the code archives still need to be created following
MAINTAINING.md#after-tagging

Fix #6345
2022-01-09 21:06:40 -08:00
Anthony Bilinski
c85e24e7db
chore(release): Create nightly release on master branch pushes
* Tag is required to create a release, so tag "nightly" is moved to
  latest commit on each run.
* Each time the tag is moved, the existing "nightly" release is updated
  automatically by github to point to the new tag and bundle the new
commit's source code.
* Artifacts are uploaded with intentionally conflicting names to replace
  last commit's version of artifacts, rather than deleting the whole
release and making a new one.
* This has two benefits, it doesn't notify of a new release on each
  commit, and it doesn't leave a gap where there's no nightly release
available.
2022-01-09 20:55:07 -08:00
Anthony Bilinski
83fcc76e43
chore(docs): Remove old native Windows build instructions
They depend on bootstrap.bat and windows/bootstrap.sh which were removed in
38729e18e8, are missing dependencies, and aren't
tested in CI.
2022-01-09 18:52:53 -08:00
Anthony Bilinski
481818fb59
chore(docs): Remove instructions for building packages automatically
Functionality was removed in 351e769eb7.
2022-01-09 18:52:53 -08:00
Anthony Bilinski
7d0d62c154
chore(build): Remove bootstrap.sh
* It is untested by CI and adds a lot of complexity compared to manually
compiling toxcore and toxext in a couple commands. This also exposes
the cmake configs rather than wrapping them in an out of date list of
script configs for users.
2022-01-09 18:52:53 -08:00
Anthony Bilinski
ff2cad3b03
chore(build): Remove qTox-Mac-Deployer-ULTIMATE.sh
* It is only partially covered by CI and doesn't simplify the build process
much for users. Replacing it in CI with just build-osx.sh significantly reduces
script complexity and is fully tested.
* bootstrap-osx.sh copying system libs and headers locally is unneeded.
  Already the DMG file contains them, and re-linking the app against
updated system files may be desirable.
* Update INSTALL.md for macOS to use brewfile, use common dependency build
  scripts, and use cmake rather than wrapper scripts.
* Build macOS in Release mode in CI, for release artifact creation
* Don't copy all used libs into a local folder, macdeployerqt already
  handles this for the dmg, and for local running of the app using the
system libs and relinking on update is desirable to avoid running out of
date dependencies unexpectedly.
2022-01-09 18:52:53 -08:00
Anthony Bilinski
e405868037
chore(build): Update build_toxcore_linux.sh to handle relative call paths 2022-01-09 18:52:53 -08:00
Anthony Bilinski
f5cf3cd183
chore(CI): Remove CIRP, replaced by direct GH action uploads
Previously was used to upload release artifacts from travis CI, which is
supported in GH actions through actions/upload-artifact.
2022-01-09 18:10:32 -08:00
Anthony Bilinski
5fcf86b521
chore(CI): Remove if-no-files-found from artifact upload
Artifacts are now conditionally uploaded based on matrix, so they should always be present when expected.
2022-01-09 17:43:27 -08:00
Anthony Bilinski
a07ab89cc8
chore(CI): Upload release Windows zips from GH actions workflow 2022-01-09 14:47:14 -08:00
Anthony Bilinski
c06e830f71
chore(maintaining): Remove update-toxcore-version.sh script
Was used to update all the duplicate versions of toxcore spread around the
repo. Now all builds and user instructions for the version come from
buildscripts/download/download_toxcore.sh directly, so this script serves no
purpose.
2022-01-04 13:50:30 -08:00
Anthony Bilinski
2c6a01c8ec
chore(flatpak): Fix JSON syntax, single quote to double quote 2022-01-03 15:47:40 -08:00
Anthony Bilinski
9ea6d7e8fc
fix(flatpak): Build flatpak qTox and dependencies in Release mode 2022-01-01 10:56:44 -08:00
Anthony Bilinski
263ac68c86
chore(CI): Remove circle CI, replaced by GH actions
Windows and macOS builds are done on PR and on release on GH actions.
2021-12-31 21:48:39 -08:00
Anthony Bilinski
e1287b94c7
Merge pull request #6413
Mick Sayson (1):
      chore(CI): Use docker for CI scripts
2021-12-31 21:13:46 -08:00
Anthony Bilinski
cea54c17c9
Merge pull request #6386
Mick Sayson (3):
      fix(filetransfer): Fix UI inconsistencies with pause/resume
      refactor(filetransfer): Move file transfer progress into ToxFile
      feat(filesform): Add in progress transfers to files form
2021-12-20 05:55:52 -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