Commit Graph

8298 Commits (master)

Author SHA1 Message Date
Anthony Bilinski cb4af27791
refactor(history): Remove unused and undefined getPeerId 2022-03-11 03:12:32 -08:00
Anthony Bilinski a99735d0e0
feat(docs): Add a security policy for disclosing vulnerabilities 2022-03-10 17:42:23 -08:00
Anthony Bilinski 4f9ca0a411
feat(Core): Add support for retrieving self DHT ID and port
To allow qTox (but just tests for now) to be bootstrapped off of.
2022-03-10 17:29:02 -08:00
Anthony Bilinski 6e7cc6de40
chore: Remove undefined Core::sendFile
Files are handled by CoreFile.
2022-03-10 17:28:29 -08:00
Anthony Bilinski e740859ef9
feat(history): Add self join/part messages
Makes it so that looking back in chat history, you can see which users you were
connected to for any message. Otherwise self client restarts are unseen.
Follows showGroupJoinLeaveMessages setting which defaults to false, so only
users who opt in will see the messages.

Scrap generic numArg handling. It somewhat increases complexity and doesn't
reduce code either.
2022-03-10 16:23:46 -08:00
Anthony Bilinski be3e8997c4
chore(CI): apt-get update in gitstats runner
Package cache is stale and causing a failure to install.
2022-03-09 19:31:40 -08:00
Anthony Bilinski 9145dc1cae
refactor(history): Remove unused friendPk from FileDbInsertionData 2022-03-08 23:26:18 -08: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 e316a683ff
chore(CI): Set a long test timeout for core_online_test
Same reasoning as 30d54b1b0f.
Missed the test timeout when increasing the verify timeout.
2022-03-08 20:18:30 -08:00
Anthony Bilinski 98bdf5f36f
chore(CI): Use consistent passing of ARCH to scripts
It's passed to some scripts through the environment variable and to others on
as an argument. Make all calls rely on the argument for consistency.
2022-03-08 15:59:11 -08:00
Anthony Bilinski 4afaf78c65
chore(meta): Remove commit format PR template
Commit format is already checked in CI, unlike this template which doesn't
actually enforce anything. Each PR showing "1 task done" clutters the PR list
view.
2022-03-08 15:45:54 -08:00
Anthony Bilinski 54be506884
chore(Windows): Remove debug prints from installer
Accidentally left in from development for 553bd47e81
2022-03-08 15:45:45 -08:00
Anthony Bilinski 30d54b1b0f
chore(CI): Set a very long timeout for core_online_test
CI has very flaky network causing everything to take way longer than expected.
None of the tests are actually checking that something happens quickly, so just
set a stupidly long timeout to avoid flakiness.
2022-03-08 15:41:17 -08:00
Anthony Bilinski 82b12f95fe
chore(release): Update nightly release links in README 2022-03-08 03:53:59 -08:00
Anthony Bilinski a1c139a51c
chore(CI): Don't install openssl docs in CI
Installing docs takes 2/3rds of the total build time on an NVME SSD, even more
on slower storage, and is useless in CI.
2022-03-08 03:53:18 -08:00
Anthony Bilinski beb38fa33b
fix(Windows): Fix starting qTox from installer
Regular ShellExecAsUser plugin doesn't support Unicode. Change to their
"Unicode Update" version. See
https://nsis.sourceforge.io/ShellExecAsUser_plug-in#Download

Missed when updating installers to Unicode mode in
9f84184ba8
2022-03-08 03:48:59 -08:00
Anthony Bilinski 3744ecfe8b
chore(CI): Include "win" in Windows arch for build scripts
To help disambiguate Windows arches with other platforms that will be used.
2022-03-08 03:20:48 -08:00
Anthony Bilinski ac4f01cf7f
feat(logging): Hide toxcore spam when using IPv4 2022-03-07 23:30:02 -08:00
Anthony Bilinski a96deb7bc0
refactor(settings): Remove unused Settings::getFriendAddress 2022-03-07 16:40:30 -08:00
Anthony Bilinski 8ff52e500a
chore(deps): Update c-toxcore to v0.2.17 2022-03-07 15:36:29 -08:00
Anthony Bilinski e100f81ba9
Merge branch 'v1.17-dev' 2022-03-07 15:02:46 -08:00
Anthony Bilinski 2bcd85cfe4
chore(CI): Add more artifacts to nightly release
To match functionality of old qTox/qTox-nightly-releases/releases nightlies.

Add flatpak sha, Windows zip shas, Windows installers, macOS sha.
2022-03-06 18:16:33 -08:00
Anthony Bilinski 54345d1085
chore(release): Add changelog 2022-03-06 06:31:31 -08:00
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