Git Product home page Git Product logo

ghobadimhd / desktop-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from windscribe/desktop-app

0.0 0.0 0.0 33.83 MB

Windscribe 2.0 desktop client for Windows, Mac and Linux

Home Page: https://windscribe.com

License: GNU General Public License v2.0

Shell 0.47% C++ 58.38% Python 2.49% C 29.58% Objective-C 3.65% PowerShell 0.01% Objective-C++ 1.71% Makefile 0.15% QMake 0.17% CMake 1.43% Batchfile 0.23% M4 1.73%

desktop-app's Introduction

Windscribe 2.0 Desktop Application

This repo contains the complete source code for the Windscribe 2.0 app. This includes installer, service/helper, and GUI.

Windows

Prerequisites

  • Windows 10/11.
  • Install git. When installing Git, you can stick with all the default options presented to you by the installer.
  • Clone the repository.
  • Install Visual Studio Community Edition 2019 (run install_vs.bat from /tools/prepare_build_environment/windows).
  • Install Python 3 via either the Microsoft Store or from here. Minimum tested version is 3.6.8.
  • Install Active Perl.
  • Install CMake v3.23.x or newer from here (install_cmake.bat in tools/prepare_build_environment/windows will download and install CMake v3.23.2 for you).
  • Verify the following entries are in your System PATH environment variable. If they are not, add them to the System PATH environment variable and reboot.
    • C:\Perl64\site\bin (or equivalent Strawberry Perl site\bin folder)
    • C:\Perl64\bin (or equivalent Strawberry Perl bin folder)
    • C:\Program Files\Git\cmd
  • Verify that python3 is available in your System PATH environment variable.
    • If you installed Python from the Microsoft Store, enable the python3.exe execution alias in System Settings Manage App Execution Aliases.
    • If you installed Python from python.org, you can mklink /path/to/your/python3.exe /path/to/your/python.exe

Install build script dependencies

  • You will have to go to Manage App Execution Aliases in System Settings and disable app installer for python.exe and python3.exe
  python3 -m pip install -r tools/requirements.txt

Install signing certificate (optional)

  • Copy your PFX code signing file to installer/windows/signing/code_signing.pfx.
  • Edit (create) tools/notarize.yml and add the following line:
  windows-signing-cert-password: password-for-code-signing-pfx
  • Edit client/common/utils/executable_signature/executable_signature_defs.h and set the WINDOWS_CERT_SUBJECT_NAME entry to match your certficate's name of signer field.

Build libraries

Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.

install_jom
install_openssl
install_openssl_ech_draft
install_qt
install_cares
install_zlib
install_curl
install_boost
install_lzo
install_openvpn
install_wireguard
install_stunnel

Build the Windscribe 2.0 app

Go to subfolder tools and run build_all. Assuming all goes well with the build, the installer will be placed in build-exe. You can run build_all --sign --use-local-secrets for a code-signed build, using the certificate from the Install signing certificate section above, which will perform run-time signature verification checks on the executables. Note that an unsigned build must be installed on your PC if you intend to debug the project.

See build_all --help for other build options.

You will find the application logs in C:/Users/USER/AppData/Local/Windscribe/Windscribe2.

Mac

Prerequisites

  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install git. This step is optional, as git is bundled with Xcode.
  brew install git
  • Install Auto-Tools and 7-Zip:
  brew install libtool
  brew install automake
  brew install p7zip
  • Install Python 3:
    • Minimum tested version is Python 3.6.8. You may do this however you like, however pyenv is recommended:
  brew install pyenv
  echo 'if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init --path)"; fi"' >> ~/.zshrc
  pyenv install 3.11.0
  pyenv global 3.11.0
  • Install dmgbuild:
  python3 -m pip install dmgbuild
  • Install CMake v3.23.x or newer from here
  • Clone the repository.
  • Install python deps:
  python3 -m pip install -r tools/requirements.txt

Install signing certificate (required)

  • Install your Developer ID Application signing certificate from your Apple Developer account in Keychain Access.
  • Edit client/common/utils/executable_signature/executable_signature_defs.h and set the MACOS_CERT_DEVELOPER_ID entry to match your Developer ID Application signing certificate.

Build libraries

Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.

install_openssl
install_openssl_ech_draft
install_qt
install_cares
install_curl
install_boost
install_lzo
install_openvpn
install_wireguard
install_stunnel

Build the Windscribe 2.0 app

Go to subfolder tools and run build_all. Assuming all goes well with the build, the installer will be placed in build-exe.

See build_all --help for other build options.

You will find the application logs in ~/Library/Application Support/Windscribe/Windscribe2.

Platform Notes:

  • If you make any changes to the helper source code backend/mac/helper/src, you must increase the CFBundleVersion in backend/mac/helper/src/helper-info.plist. The installer only updates the helper if this bundle version number has changed.
  • The IKEv2 protocol will only function in builds produced by Windscribe. It's implementation on macOS utilizes the NEVPNManager API, which requires the 'Personal VPN' entitlement (com.apple.developer.networking.vpn.api) and an embedded provisioning profile file. If you wish to enable IKEv2 functionality, you will have to create an embedded provisioning file in your Apple Developer account and use it in the client project (Search for embedded.provisionprofile in client/CMakeLists.txt for details on where to place the embedded provisioning profile).

Linux

Prerequisites

Build process tested on Ubuntu 20.04/ZorinOS 16 (gcc 9.3.0).

  • Install build requirements:
  sudo apt-get install build-essential git curl patchelf libpam0g-dev software-properties-common libgl1-mesa-dev fakeroot python3-pip zip unzip
  sudo apt-get update
  sudo apt-get install wget autoconf libtool
  # install cmake 3.23.x (default for Ubuntu 20.04 is 3.16.3)
  wget -qO /etc/apt/trusted.gpg.d/kitware-key.asc https://apt.kitware.com/keys/kitware-archive-latest.asc
  echo "deb https://apt.kitware.com/ubuntu/ focal main" | tee /etc/apt/sources.list.d/kitware.list
  sudo apt-get -y update
  sudo apt-get -y install cmake
  • Clone the repository.
  • Install python deps:
  python3 -m pip install -r tools/requirements.txt

Build libraries

Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.

install_openssl
install_openssl_ech_draft
install_qt
install_cares
install_curl
install_boost
install_lzo
install_openvpn
install_wireguard
install_stunnel

Build the Windscribe 2.0 app

Go to subfolder tools and run build_all. Assuming all goes well with the build, the installer will be placed in build-exe.

See build_all --help for other build options.

The application installs to /opt/windscribe. You will find the application logs in ~/.local/share/Windscribe/Windscribe2.

Contributing

Please see our Contributing Guidelines

License

The Windscribe Desktop Client app License

desktop-app's People

Contributors

bernerdad avatar gitcomit8 avatar yegors avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.