• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

pia-foss/desktop: Private Internet Access - Desktop VPN Client for Windows/macOS ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

pia-foss/desktop

开源软件地址(OpenSource Url):

https://github.com/pia-foss/desktop

开源编程语言(OpenSource Language):

C++ 67.2%

开源软件介绍(OpenSource Introduction):

Private Internet Access Desktop Client

This is the desktop client for the Private Internet Access VPN service. It consists of an unprivileged thin GUI client (the "client") and a privileged background service/daemon (the "daemon"). The daemon runs a single instance on the machine and is responsible for not only network configuration but also settings and account handling, talking to PIA servers as necessary. The client meanwhile runs in each active user's desktop and consists almost entirely of presentation logic. No matter how many users are active on a machine, they control the same single VPN instance and share a single PIA account.

The project uses Qt 5 for cross-platform development, both in the client and daemon. The client GUI is based on Qt Quick, which uses declarative markup language and JavaScript and offers hardware accelerated rendering when available. Qt and Qt Quick tend to be more memory and CPU efficient compared to web-based UI frameworks like Electron or NW.js.

Building and developing

The client is intended to be built on the target platform; Windows builds are built on Windows, macOS builds on macOS, and Linux builds on Ubuntu.

The entire product is built using rake, using the supporting framework in the rake/ directory.

Dependencies such as OpenVPN and the Windows TAP driver are included as precompiled binaries under the deps directory in this project for convenience. To recompile any of these, please refer to their corresponding directories and/or repositories for build instructions.

Prerequisites:

  • On Windows:
  • On macOS:
    • Git 1.8.2 or later with Git LFS installed
    • Qt 5.15 or later (open source edition)
      • Install CMake (under development tools) to use this project in Qt Creator
    • Mojave or newer
    • Up-to-date version of Xcode
    • Ruby, can be installed using Homebrew with brew install ruby
  • On Linux:
    • Debian 9 (Stretch) or newer
      • Supported architectures: x86_64, armhf, arm64
    • Git 1.8.2 or later with Git LFS installed
    • Qt 5.15 or later
    • To build natively on the host, install the following development packages:
      • build-essential
      • rake
      • clang (or specific version, clang-7 recommended on Debian Stretch)
      • mesa-common-dev
      • libnl-3-dev (PIA can run without the library installed, but the headers are needed to build)
      • libnl-route-3-dev
      • libnl-genl-3-dev
      • git (needed even in chroot build environment, to determine commit info for version)
    • To build releasable artifacts (always built under Debian 9, and optionally including arm64/armhf cross builds), set up Debian 9 chroots - see "Building for Distribution" - "Linux" below

Cloning the repository

Before cloning the Git repository, first make sure Git LFS is installed and initialized:

> git lfs version
git-lfs/2.3.4 (GitHub; windows amd64; go 1.8.3; git d2f6752f)

> git lfs install
Updated git hooks.
Git LFS initialized.

After this, cloning the repository normally should also fetch the precompiled binaries:

> git clone https://github.com/pia-foss/desktop.git
...
Filtering content: 100% (24/24), 17.13 MiB | 1.89 MiB/s, done.

Build system

The following targets can be passed to rake. The default target is stage, which stages the built client, daemon, and dependencies for local testing (but does not build installers, tests, etc.)

Target Explanation
(default) Builds the client and daemon; stages executables with dependencies in out/pia_debug_x86_64/stage for local testing.
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)
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)
all All targets.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap