You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo contains the complete source code for the Windscribe 2.0 app. This includes installer, service/helper, backend process and GUI.
3
-
Please note that this is a work-in-progress, your mileage may vary.
4
-
5
-
## Build the Windscribe 2.0 app
6
-
7
-
See below for environement and library prerequisites to build the application on each system.
8
-
9
-
Simply run `tools/build_all` for an unsigned build. See `build_all --help` for other build options. A successfully build script will place the installer in the `build-exe` directory. Note that an unsigned build is required to connect the VPN when building without code signing.
10
-
11
3
12
4
## Windows
13
5
### Prerequisites
14
6
15
7
- Windows 10.
16
-
- Recommended 120+ GB of storage.
17
8
- Install git (https://git-scm.com/downloads). When installing Git, you can stick with all the default options presented to you by the installer.
18
9
- Clone the repository.
19
10
- Visual Studio Community 2017 (run install_vs.bat with admin rights from /common/prepare_build_environment/windows).
@@ -36,92 +27,101 @@ Simply run `tools/build_all` for an unsigned build. See `build_all --help` for o
36
27
- python tools/bin/get-pip.py
37
28
- python -m pip install -r tools/requirements.txt
38
29
39
-
### Install signing certificate
30
+
### Install signing certificate (optional)
40
31
- Copy your PFX code signing file to installer/windows/signing/code_signing.pfx.
41
32
- Edit tools/build_all.yml and enter the password for your PFX file in the password_cert field of the windows_signing_cert section.
42
-
-Note that the application will still build and run without these signatures, but using the VPN without signatures will require a debug build.
33
+
-Edit 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.
43
34
44
35
### Build libraries
45
36
46
37
Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.
47
38
48
-
1. install_jom
49
-
2. install_openssl
50
-
3. install_qt
51
-
4. install_cares
52
-
5. install_zlib
53
-
6. install_curl
54
-
7. install_boost
55
-
8. install_lzo
56
-
9. install_openvpn
57
-
10. install_wireguard
58
-
11. install_stunnel
59
-
12. install_protobuf
39
+
- install_jom
40
+
- install_openssl
41
+
- install_qt
42
+
- install_cares
43
+
- install_zlib
44
+
- install_curl
45
+
- install_boost
46
+
- install_lzo
47
+
- install_openvpn
48
+
- install_wireguard
49
+
- install_stunnel
50
+
- install_protobuf
60
51
61
52
#### Notes
62
53
- Some libraries depends on others. Jom is installed first and speeds up further builds. Almost all of the libraries depends on openssl. Openvpn depends on LZO. Curl depends on openssl and zlib.
63
54
- If you notice install or build scripts fail for seemingly no reason, try running each script from a fresh shell instance (CMD or gitbash). It appears to have something to do with a character limit on PATH or ENV variables.
64
55
56
+
### Build the Windscribe 2.0 app
65
57
58
+
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' 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 using Qt Creator.
59
+
60
+
See `build_all --help` for other build options.
61
+
62
+
You will find the application logs in C:/Users/USER/AppData/Local/Windscribe/Windscribe2.
66
63
67
64
## Mac
68
65
### Prerequisites
69
66
70
67
- MacOS Catalina or MacOS Big Sur (We recommend building/developing only on a native machine. VM setups are not well tested)
71
-
- Recommended 120 GB of storage (Need to take a closer look at this number, we may be able to get away with as little as 80GB)
- The brew install step above will have installed the Xcode command-line tools. Make sure to run Xcode after installing it, and set the Command Line Tools in Preferences->Locations to the version of Xcode you installed.
79
-
80
75
- git (https://git-scm.com/downloads). This step is optional, as git is bundled with Xcode.
81
76
- brew install git
82
77
- Clone the repository.
83
-
- Install Auto-Tools and 7-Zip (See below "Install Auto-Tools")
- Run the DropDMG app and accept the update command-line tools prompt
90
-
- Disable auto-update
91
-
- Enable "Quit when done" in Preferences->Advanced
92
-
- Copy desktop-v2/common/prepare_build_environment/mac/DropDMG/Configurations and Layouts into ~HOME/Library/Application Support/DropDMG/Configurations and Layouts
93
-
- Install cmake (3.20.1 last tested) from: https://cmake.org/download/
84
+
- Install dmgbuild:
85
+
- python -m pip install dmgbuild
86
+
- Install cmake from: https://cmake.org/download/
94
87
- Install python deps:
95
-
- python tools/bin/get-pip.py
96
-
- python -m pip install -r tools/requirements.txt
88
+
- python tools/bin/get-pip.py
89
+
- python -m pip install -r tools/requirements.txt
97
90
98
-
### Set up code signing for release builds
99
-
- Install your Developer ID signing certificate in the Keychain.
100
-
- TBD...
101
-
102
-
### Build Dependencies
103
-
- Open a terminal in desktop-v2/tools/deps:
104
-
- Run install_openssl
105
-
- Run install_qt
106
-
- Run install_cares
107
-
- Run install_boost
108
-
- Run install_curl
109
-
- Run install_lzo
110
-
- Run install_openvpn
111
-
- Run install_wireguard
112
-
- Run install_stunnel
113
-
- Run install_protobuf
114
-
- Run install_gtest
91
+
### Install signing certificate (required)
92
+
- Install your Developer ID Application signing certificate from your Apple Developer account in Keychain Access.
93
+
- Edit common/utils/executable_signature/executable_signature_defs.h and set the MACOS_CERT_DEVELOPER_ID entry to match your Developer ID Application signing certificate.
94
+
95
+
### Build libraries
96
+
97
+
Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.
98
+
99
+
- install_openssl
100
+
- install_qt
101
+
- install_cares
102
+
- install_boost
103
+
- install_curl
104
+
- install_lzo
105
+
- install_openvpn
106
+
- install_wireguard
107
+
- install_stunnel
108
+
- install_protobuf
109
+
- install_gtest
115
110
116
111
### Notes on building libraries:
117
112
- Some libraries depends on others. Almost all of the libraries depends on openssl. Openvpn depends on LZO.
118
-
- The install scripts put the dependencies in desktop-v2/build-libs.
119
113
114
+
### Build the Windscribe 2.0 app
120
115
121
-
### Install Auto-Tools and 7-Zip (via HomeBrew):
122
-
- brew install libtool
123
-
- brew install automake
124
-
- brew install p7zip
116
+
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' for a production build which will perform run-time signature verification checks on the executables. Note that an unsigned build must be installed on your Mac if you intend to debug the project using Qt Creator.
117
+
118
+
See `build_all --help` for other build options.
119
+
120
+
You will find the application logs in ~/Library/Application Support/Windscribe/Windscribe2.
121
+
122
+
### Platform Notes:
123
+
- 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.
124
+
- 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 engine project (See 'embedded.provisionprofile' in backend/engine/engine.pro).
125
125
126
126
## Linux
127
127
### Prerequisites
@@ -178,19 +178,26 @@ Build process tested on Ubuntu 16.04 (gcc 5.4.0) and Ubuntu 20.04/ZorinOS 16 (gc
178
178
- python tools/bin/get-pip.py
179
179
- python -m pip install -r tools/requirements.txt
180
180
181
-
### Build Dependencies
182
-
- Open a terminal in desktop-v2/tools/deps:
183
-
- Run install_openssl
184
-
- Run install_qt
185
-
- Run install_cares
186
-
- Run install_boost
187
-
- Run install_curl
188
-
- Run install_lzo
189
-
- Run install_openvpn
190
-
- Run install_wireguard
191
-
- Run install_stunnel
192
-
- Run install_protobuf
193
-
- Run install_gtest
194
-
195
-
### After building and installing
196
-
The application installs to /usr/local/windscribe. You will find the logs in ~/.local/share/Windscribe/Windscribe2.
181
+
### Build libraries
182
+
183
+
Go to subfolder tools/deps and run the following scripts in order. Libraries will be placed in build-libs.
184
+
185
+
- install_openssl
186
+
- install_qt
187
+
- install_cares
188
+
- install_boost
189
+
- install_curl
190
+
- install_lzo
191
+
- install_openvpn
192
+
- install_wireguard
193
+
- install_stunnel
194
+
- install_protobuf
195
+
- install_gtest
196
+
197
+
### Build the Windscribe 2.0 app
198
+
199
+
Go to subfolder tools and run 'build_all'. Assuming all goes well with the build, the installer will be placed in build-exe.
200
+
201
+
See `build_all --help` for other build options.
202
+
203
+
The application installs to /usr/local/windscribe. You will find the application logs in ~/.local/share/Windscribe/Windscribe2.
0 commit comments