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

8275 Commits

Author SHA1 Message Date
Anthony Bilinski
4580d3f106
fix(core): One time reset of user bootstrap node list to default
Due to poor design, bootstrapNodes.json was saved the same if manually set by
user, or if just storing qTox defaults. Because of this, for users using
defaults, they would be stuck with stale defaults indefinitely without this one
time reset.

The user list that's removed is backed up to bootstrapNodes.backup.json.

Going forward, the user list and default list will be stored separately.

Fix #6452
2022-03-06 06:00:13 -08:00
Anthony Bilinski
08fdd3a2c7
feat(core): Store default bootstrap list separate from user list
Allows qTox to tell the difference between a default list that should be
upgraded when defaults are changed, ora user list that should never be changed.
2022-03-06 06:00:13 -08:00
Anthony Bilinski
2b41a06b55
feat(Settings): Add system for versioning and upgrading Settings
Similar to how History handles SCHEMA_VERSION. Run separately on global and
personal settings, since some state in global, and personal settings can’t be
done globally since they require the passkey.

Restrict a user from downgrading past the saved settings version, due to
possible compatibility breaks or old qTox versions re-introducing corrupt state
that was already healed.

Pass in new profile state for personal settings rather than relying on settings
file presence because personal settings can be stored in either the personal
settings file or global settings file. This was introduced in
aea9eea8a4 when personal settings were first
moved to their own file.
2022-03-06 06:00:13 -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
484ea7ce9b
fix(macos): update deprecated AVFoundation API
Backported from 65ff532a54
2022-03-06 04:09:15 -08:00
Anthony Bilinski
c282c6e96f
chore(release): Remove support for macOS 10.14
macOS 10.14 is EOL by Apple, and brew no longer supports it. We can no longer
build qTox on 10.14 using our brew-based release process. Instead we will
release from 10.15, which loses compatibility with 10.14 with our current build
process.
2022-03-06 04:04:41 -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
1063b3d7f9
chore(build): Remove check for QtVer
It is unused, and brew now installs to Cella/qt@5 so this check causes an error.
2022-03-05 23:52:17 -08:00
Anthony Bilinski
7083a7d9bd
chore(CI): Fix commit message check range
It was reversed before which works on normal PRs, but checks commits on
the destination branch when merging two upstream branches.
2022-03-05 18:19:05 -08:00
Anthony Bilinski
a83ef30476
chore(release): Add changelog 2022-03-05 04:20:45 -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
ee0334acc5
feat(chatlog): Disable join and leave system messages based on setting
Backported from 069ab92fd0
2022-03-05 04:13:23 -08:00
Anthony Bilinski
423049db50
feat(UI): Add UI For controlling group join and leave system messages setting
Backported from 069ab92fd0
2022-03-05 04:13:22 -08:00
Anthony Bilinski
916e797c10
feat(Settings): Add setting for hiding group join and leave system messages
Messages can become spammy is long lasting quiet groups, drowning out real user
messages

Backported from 1be5b99d17
2022-03-05 04:13:19 -08:00
Anthony Bilinski
d0d288a9b6
refactor(settings): Use IGroupSettings in GroupChatForm
Move interface signals from Settings to be declared by the interface itself

Backported from e5df648e1a
2022-03-05 04:12:31 -08:00
Anthony Bilinski
f5fabc2fe2
fix: 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.

Backported from 15673a52b6
2022-03-05 01:30:50 -08:00
Anthony Bilinski
7a3474bf55
feat(chatlog): Add support for ed2k file links 2022-03-05 01:00:08 -08:00
Anthony Bilinski
3c682abc69
fix(docs): Add brew prefix to macOS build instructions
Update brew's qt5 to qt@5, following brew naming deprecation.
2022-03-04 22:04:26 -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
4fcc2251f4
chore(CI): Enable tests in macOS CI build 2022-03-03 12:09:50 -08:00
Anthony Bilinski
3170dd8d62
chore(CI): Don't try to deploy from forks
Gitstats and doxygen deploys require deploy keys to update qTox's website.
Don't try to do this from forks, since it will always fail.
2022-03-03 03:59:12 -08:00
Anthony Bilinski
bc751c8e1c
refactor(test): Move mocks into their own library
Avoid re-compiling sources for each test that uses them.
2022-03-02 23:30:04 -08:00
Anthony Bilinski
40846f886c
refactor(test): Deduplicate MockCoreSettings
Also add Mock sources to all tests, to handle tests that require both project
resources and mock without complicating auto_test
2022-03-02 23:30:04 -08:00
Anthony Bilinski
12b3b05217
test: Fix signal spy mixup for core_online_test
* Fix statusMessage -> userName mixup in change_status_message
* Create named constant for sleep interval waiting for friend's message to arrive
* Elaborate on comments around the sleeps a bit more, I was confused by them still
* Increase bootstrap timeout to 120s, it expired in CI at 65s
2022-03-02 23:30:04 -08:00
sudden6
e2d0472a9f
test: add more online test 2022-03-02 23:30:04 -08:00
Anthony Bilinski
e426994e5f
test: Fix issues with core_online_test
* Move static function variables from core to be class member variables,
  allowing two Core instances to run at once
* Replace deprecated QLatin1Literal with QLatin1String
* qvariant_cast slot argument to ToxPk, rather than trying to convert variant
  to bytes directly which is invalid
* Fix "wait for both to come online" accidentally waiting for Bob twice
* Move all sleeps to QTRY_VERIFY_WITH_TIMEOUT to speed up test
* Update settings* -> settings& based on Core API change
* Update Mock to match API change of IBootstrapListGenerator
* Register metatype of ToxPk, uint32_t, Status::Status
* Correct Alice's spy looking for Bob's pk
2022-03-02 23:30:04 -08:00
sudden6
54e72aa73d
test: add test case for real world Core usage 2022-03-02 23:30:03 -08:00
Anthony Bilinski
e18118c1bc
chore(CI): Don't try to upload installer on debug builds
The installer is only built on release builds. We used to ignore failure to
upload prior to 5fcf86b521. We stopped ignoring
because a07ab89cc8 tried to make our upload
targetted, but it only resolved the issue for the zip, not the installer.
2022-03-02 21:58:57 -08:00
Anthony Bilinski
714d8ec62b
Merge pull request #6502
Devan Carpenter (1):
      feat(chatlog): Add gemini:// to hyperlink regex
2022-03-02 13:08:07 -08:00
Devan Carpenter
355dfb7a7f feat(chatlog): Add gemini:// to hyperlink regex 2022-03-02 20:19:42 +00:00
Anthony Bilinski
bad2e0aba9 chore(CI): Fix appimage missing rename for nightly zsync upload 2022-02-28 20:38:36 -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
sudden6
cd8af735fc
fix: don't link emoji resources into targets that don't need them
The emoji resouce file is quite big, so link it only when really needed.
2022-02-25 23:22:28 +01:00
Anthony Bilinski
aeb8a9aca1
refactor(bootstrap): Use std::shuffle instead of custom not fully random logic
Simplifies logic and naming.
2022-02-24 16:28:59 -08:00
Anthony Bilinski
bf6d01598f
feat(CI): Run AddressSanitizer on Fedora build
Keep disabled for jobs that produce artifacts to not affect user performance.
Keep disabled for other distros that don't produce artifacts as well since other versions of Qt fail themselves in e.g. TestSmileyPack's QGuiApplication usage.

Don't enable thread sanitizer yet due to many Qt internal errors.

This should still give us a significant increase in qTox coverage, even if we have low platform coverage.
2022-02-24 07:28:11 -08:00
Anthony Bilinski
25b70761e5
chore(CI): Correct doxygen deploy access 2022-02-24 05:51:27 -08:00
Anthony Bilinski
0cb222c056
feat(i18n): Handle English plural forms in translations
Special case that only needs plurals translated.
2022-02-23 21:12:16 -08:00
Anthony Bilinski
b05c069dfe
fix(appimage): Patch snore to enable notifications in AppImage
Patch for other builds as well since the patch is harmless and it simplifies
the build script.

Fix #6411
2022-02-23 21:11:42 -08:00
Anthony Bilinski
f81c9bca29
chore(CI): Don't overwrite nightly release name and description
Allows maintainers to write a user friendly message rather than just having the
last commit desription.
2022-02-23 21:11:02 -08:00
Anthony Bilinski
b24610fc62
chore(CI): Revert nightly AppImage name to "nightly"
Changed in 41a555def9, I think by accident.
Causes our release uploader to no longer replace the old version, instead
adding a new version each time it runs.

Keeping named overwrite instead of removing release artifacts and
uploading new ones, since removing old artifacts would require a new job
that all other jobs depend on to avoid re-removing, and would also
create a gap while CI is running run where no artifact is available.

We could upload artifacts using actions/upload-artifact in each job then
download them at the end and update the release at that point too, if we
really want to keep sha name in the nightly release artifacts. I don't
see much value of having the sha in the filename though.
2022-02-23 21:11:02 -08:00
Anthony Bilinski
d3995bc87e
fix(doxygen): Re-enable deploying of doxygen 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/doxygen as a deploy key.
2022-02-23 21:10:32 -08:00
Anthony Bilinski
e5d138f79c
chore(CI): Move gitstats and docs to ubuntu-latest
They're not platform dependent and the rest of our jobs run on ubuntu-latest.
Might as well move this one over so we don't have to remember to update it.

gitstats is not available in repo any longer, so install manually.
2022-02-23 21:10:03 -08:00
Anthony Bilinski
a1f19f44e2
chore(CI): Fix deploy-gitsats directory and target URI 2022-02-23 21:10:03 -08:00
Anthony Bilinski
0df98ce64f
fix(group): Change join leave message setting default to false
Matches the similar status change notification for 1:1 chats, and was the
original plan for this feature.
2022-02-23 04:48:19 -08:00
Anthony Bilinski
6f9123705a
fix(core): Fix logic error retrieving TCP port
Introduced in e7e30ada8c
2022-02-21 05:19:03 -08:00