Skip to content

Commit

Permalink
Version 3.5.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Desktop Commit Bot committed Dec 20, 2023
1 parent 5cc3e6c commit 3da7b46
Show file tree
Hide file tree
Showing 62 changed files with 526 additions and 1,323 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

### v3.5.3
* UI: Increase contrast of graph in performance tile
* UI: Add two extra decimal places to data usage values
* UI: Add changelog link to update notification
* Linux: Improve split tunnel robustness in the presence of mount namespaces
* Linux: Fix split tunnel on Linux Mint 20.0+

### v3.5.2

* Linux: Fix split tunnel on rolling release distributions
Expand Down
13 changes: 0 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ endfunction()
# area).
rake_target(stage default)
rake_target(rake-test test)
rake_target(integtest-stage integtest)
rake_target(rake-all all)
# Hook up CMake's 'all' to rake's default only - this is the default target for
# Qt Creator. It still will know how to build unit tests / integ tests if they
Expand Down Expand Up @@ -141,11 +140,6 @@ set_for_platform(RAKE_STAGE_LIB
"${RAKE_OUT}/stage/${BRAND_NAME}.app/Contents/Frameworks"
"${RAKE_OUT}/stage/lib"
)
set_for_platform(RAKE_INTEGTEST_BIN
"${RAKE_OUT}/integtest-stage/${BRAND}-integtest"
"${RAKE_OUT}/integtest-stage/${BRAND}-integtest.app/Contents/MacOS"
"${RAKE_OUT}/integtest-stage/${BRAND}-integtest/bin"
)

# Implement the clean target by removing the entire output directory. There's
# no way in CMake to hook clean up to a custom action, but this is all the rake
Expand Down Expand Up @@ -221,13 +215,6 @@ target_sources(client PRIVATE "${RAKE_OUT}/pia-client/qrc_pia-client.qrc")
stage_target(daemon daemon "${BRAND}-service" "${BRAND}-daemon" "${BRAND}-daemon")
target_link_libraries(daemon Qt5::Core Qt5::Network)

source_files(integtest integtest)
add_executable(integtest EXCLUDE_FROM_ALL ${TARGET_SOURCE_integtest})
target_link_libraries(integtest Qt5::Core Qt5::Network Qt5::Test ${ALL_LIB_TARGETS})
set_property(TARGET integtest PROPERTY OUTPUT_NAME "${BRAND}-integtest")
add_dependencies(integtest integtest-stage)
set_property(TARGET integtest PROPERTY RUNTIME_OUTPUT_DIRECTORY ${RAKE_INTEGTEST_BIN})

function(unit_test name)
set(TESTNAME "test-${name}")
rake_target("rake-${TESTNAME}" ${TESTNAME})
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ The following targets can be passed to `rake`. The default target is `stage`, w
| `test` | Builds and runs unit tests; produces code coverage artifacts if possible on the current platform (requires clang 6+) |
| `installer` | Builds the final installer artifact, including code signing if configured. |
| `export` | Builds extra artifacts needed from CI but not part of any deployable artifact (currently translation exports) |
| `integtest` | Builds the integration test artifact (ZIP file containing deployable integration tests) |
| `libs` | Builds the dtop libraries and development artifact (see DTOP-LIBS.md) |
| `tools` | Builds extra tools for development purposes that are not used as part of the build process or as part of any shipped artifact. |
| `artifacts` | Builds all artifacts and copies to `out/pia_debug_x86_64/artifacts` (depends on most other targets, execpt `test` when coverage measurement isn't possible) |
Expand Down Expand Up @@ -323,8 +322,8 @@ The same `rake`-based build system is used, but the available targets differ.
### Headless testing

In the `headless_tests` directory you will find a suite of tests written in ruby with the help of RSpec.
They work similarly to `integtest`, using `piactl` in the background to manipulate the state of the daemon and run diverse tests.
The advantages of testing in ruby as opposed to our code in `integtest` are mainly simplicity, where doing things like calling API endpoints is much simpler than from C++ code.
They use `piactl` in the background to manipulate the state of the daemon and run diverse tests.
The advantage of testing in ruby is mainly simplicity, where doing things like calling API endpoints is much simpler than from C++ code.

With these _almost_ end to end tests we hope to drastically reduce manual testing for releases to the point that we can release more frequently.

Expand Down
4 changes: 2 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ version = PiaVersion.new
# Artifacts - These are the final outputs preserved from CI builds.
# _Everything_ we keep from CI builds is included here. (This does not include
# dev tools, etc., as those are only used in dev and can be built locally. It
# does include non-shipping artifacts like integration tests, library SDK
# packages, debugging symbols, translation exports, etc.)
# does include non-shipping artifacts like library SDK packages,
# debugging symbols, translation exports, etc.)
artifacts = Install.new('artifacts')

# 'tools' builds utility applications that are just part of the development
Expand Down
1 change: 1 addition & 0 deletions brands/pia/brandinfo.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"brandReleaseChannelGA": "release",
"brandReleaseChannelBeta": "beta",
"brandReleaseUpdateUris": ["https://www.privateinternetaccess.com/clients/desktop", "https://www.piaproxy.net/clients/desktop"],
"changelogUri": "https://www.privateinternetaccess.com/pages/changelog",
"forgotPasswordLink": "https://www.privateinternetaccess.com/pages/reset-password",
"manageAccountLink":"https://www.privateinternetaccess.com/pages/client-control-panel#account-settings",
"buyAccountLink": "https://www.privateinternetaccess.com/pages/buy-vpn/",
Expand Down
29 changes: 27 additions & 2 deletions client/res/components/common/UpdateNotificationStatus.qml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import QtQuick 2.9
import "../daemon"
import "../../javascript/util.js" as Util
import PIA.NativeHelpers 1.0
import PIA.BrandHelper 1.0

// UpdateNotificationStatus is a NotificationStatus for piaX updates.
//
Expand Down Expand Up @@ -165,17 +166,41 @@ NotificationStatus {
}
}

// Is the version available a full release ? i.e not beta or alpha
// We just check for the existence of alphabetical characters in the version
// as a 'beta' release would have the word 'beta' present, etc
function isAvailableVersionFullRelease() {
return !/[a-zA-Z]/.test(Daemon.state.availableVersion)
}

links: {
switch(state)
{
default:
case states.inactive:
return []
case states.available:
return [{
let linksToShow = [
{
text: uiTr("Download"),
clicked: function(){startDownload()}
}]
}
]

// Some brands may not provide a changelog URI
let changelogUri = BrandHelper.getBrandParam("changelogUri")

// Only show changelog link if it exists (some brands may not provide one)
// and the available version is a full release.
// This is because the changelog page only has changelogs for full releases (not betas)
if(changelogUri.length != 0 && isAvailableVersionFullRelease()) {
linksToShow.push({
text: uiTr("Changelog"),
clicked: () => { Qt.openUrlExternally(changelogUri) }
})
}

return linksToShow
case states.downloading:
return []
case states.ready:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,10 @@ MovableModule {
// yet, say "0 KB"
if(exponent < 1)
return "0 KB"

// Calculate the mantissa and pick a unit with the exponent
return Math.round(bytes / Math.pow(1024, exponent), 2) + ' ' + sizes[exponent-1];
// Include two decimal places in the output - i.e 1.52 GB
return (bytes / Math.pow(1024, exponent)).toFixed(2) + ' ' + sizes[exponent-1];
}

Text {
Expand Down
2 changes: 1 addition & 1 deletion client/res/components/theme/DashboardStyle.qml
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ QtObject {
readonly property string performanceChartBackgroundColor: Theme.dark ? "#22252E" : "#ffffff"
readonly property string performanceChartBorderColor: Theme.dark ? "transparent" : "#D7D8D9"
readonly property string performanceChartBarActive : Theme.dark ? "#5DDF5A" : "#5DDF5A"
readonly property string performanceChartBarInactive : Theme.dark ? "#2B2E39" : "#EEEEEE"
readonly property string performanceChartBarInactive : Theme.dark ? "#889099" : "#889099"
readonly property string performanceChartText : Theme.dark ? "#ffffff" : "#323642"

readonly property color locationMarkerCenterColor : Theme.dark ? "#5DDF5A" : "#4CB649"
Expand Down
4 changes: 2 additions & 2 deletions client/src/mac/mac_appscanner.mm
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ QPixmap getIconForAppBundle(const QString &path, const QSize &size)
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSDeviceRGBColorSpace
bitmapFormat:NSAlphaFirstBitmapFormat
bitmapFormat:NSBitmapFormatAlphaFirst
bytesPerRow:0
bitsPerPixel:0
];
Expand All @@ -78,7 +78,7 @@ QPixmap getIconForAppBundle(const QString &path, const QSize &size)
[NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithBitmapImageRep:bmp]];

// assume NSImage nsimage
[img drawInRect:NSMakeRect(0,0,width,height) fromRect:NSZeroRect operation: NSCompositeSourceOver fraction: 1];
[img drawInRect:NSMakeRect(0,0,width,height) fromRect:NSZeroRect operation: NSCompositingOperationSourceOver fraction: 1];

[NSGraphicsContext restoreGraphicsState];

Expand Down
5 changes: 5 additions & 0 deletions client/ts/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>الإصدار %1 متوفر</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>>سجل التغييرات</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/da.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Version %1 er tilgængelig</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Ændringslog</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Version %1 ist verfügbar.</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Änderungsprotokoll</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/es_MX.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Está disponible la versión %1</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Registro de cambios</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>La version %1 est disponible</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Changelog</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>La version %1 è disponibile</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Log delle modifiche</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>バージョン%1が利用可能です</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>変更ログ</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>버전 %1 이용 가능</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>변경 로그</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/nb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Versjon %1 er tilgjengelig</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Endringslogg</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Versie %1 is beschikbaar</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Wijzigingslog</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4001,6 +4001,11 @@
<source>Version %1 is available</source>
<translation>Wersja %1 jest dostępna</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Dziennik zmian</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/pt_BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Versão %1 disponível</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Log de alterações</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Доступна версия %1</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Журнал изменений</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/th.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>เวอร์ชัน %1 พร้อม​ใช้งาน</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>บันทึก​การ​เปลี่ยนแปลง</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>Sürüm %1 kullanılabilir</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>Değişim Günlüğü</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/zh_Hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>%1 版可用。</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>更新日志</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
5 changes: 5 additions & 0 deletions client/ts/zh_Hant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4000,6 +4000,11 @@
<source>Version %1 is available</source>
<translation>版本 %1 可用</translation>
</message>
<message>
<location filename="../../../client/res/components/common/UpdateNotificationStatus.qml" line="180"/>
<source>Changelog</source>
<translation>變更記錄</translation>
</message>
</context>
<context>
<name>UsageModule</name>
Expand Down
6 changes: 3 additions & 3 deletions common/src/builtin/path.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -301,9 +301,9 @@ void Path::initializePostApp()
#endif
#ifdef Q_OS_LINUX
// Currently only tested on Ubuntu
VpnExclusionsFile = Path { "/opt/piavpn/etc/cgroup/net_cls/" BRAND_CODE "vpnexclusions/cgroup.procs" };
VpnOnlyFile = Path { "/opt/piavpn/etc/cgroup/net_cls/" BRAND_CODE "vpnonly/cgroup.procs" };
ParentVpnExclusionsFile = Path { "/opt/piavpn/etc/cgroup/net_cls/cgroup.procs" };
VpnExclusionsFile = Path { DaemonSettingsDir / "cgroup/net_cls/" BRAND_CODE "vpnexclusions/cgroup.procs" };
VpnOnlyFile = Path { DaemonSettingsDir / "cgroup/net_cls/" BRAND_CODE "vpnonly/cgroup.procs" };
ParentVpnExclusionsFile = Path { DaemonSettingsDir / "cgroup/net_cls/cgroup.procs" };
#endif

ClientExecutable = QCoreApplication::applicationFilePath();
Expand Down
Loading

0 comments on commit 3da7b46

Please sign in to comment.