Skip to content

Commit 49bca5b

Browse files
committed
Updated readme with build script changes
1 parent 0f80e9e commit 49bca5b

File tree

1 file changed

+82
-75
lines changed

1 file changed

+82
-75
lines changed

README.md

Lines changed: 82 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11
# Windscribe 2.0 Desktop Application
22
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-
113

124
## Windows
135
### Prerequisites
146

157
- Windows 10.
16-
- Recommended 120+ GB of storage.
178
- Install git (https://git-scm.com/downloads). When installing Git, you can stick with all the default options presented to you by the installer.
189
- Clone the repository.
1910
- 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
3627
- python tools/bin/get-pip.py
3728
- python -m pip install -r tools/requirements.txt
3829

39-
### Install signing certificate
30+
### Install signing certificate (optional)
4031
- Copy your PFX code signing file to installer/windows/signing/code_signing.pfx.
4132
- 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.
4334

4435
### Build libraries
4536

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

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
6051

6152
#### Notes
6253
- 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.
6354
- 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.
6455

56+
### Build the Windscribe 2.0 app
6557

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.
6663

6764
## Mac
6865
### Prerequisites
6966

7067
- 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)
7268
- Install brew (brew.sh)
7369
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
7470
- Install Xcode 11.3.1 if using MacOS Catalina, or Xcode 11.7 if using Big Sur
75-
- Note: these downloads will require successful AppleID login:
71+
- Note: these downloads will require you to first login to your Apple account.
7672
- https://download.developer.apple.com/Developer_Tools/Xcode_11.7/Xcode_11.7.xip
7773
- https://download.developer.apple.com/Developer_Tools/Xcode_11.3.1/Xcode_11.3.1.xip
7874
- 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-
8075
- git (https://git-scm.com/downloads). This step is optional, as git is bundled with Xcode.
8176
- brew install git
8277
- Clone the repository.
83-
- Install Auto-Tools and 7-Zip (See below "Install Auto-Tools")
78+
- Install Auto-Tools and 7-Zip:
79+
- brew install libtool
80+
- brew install automake
81+
- brew install p7zip
8482
- Install Wireguard build tools (brew install go)
8583
- Install CppCheck (brew install cppcheck)
86-
- Install dropDMG from: https://c-command.com/dropdmg/
87-
- Create symlink for dropdmg
88-
- ln -s /Applications/DropDMG.app/Contents/Frameworks/DropDMGFramework.framework/Versions/A/dropdmg /usr/local/bin/dropdmg
89-
- 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/
9487
- 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
9790

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
115110

116111
### Notes on building libraries:
117112
- 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.
119113

114+
### Build the Windscribe 2.0 app
120115

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).
125125

126126
## Linux
127127
### Prerequisites
@@ -178,19 +178,26 @@ Build process tested on Ubuntu 16.04 (gcc 5.4.0) and Ubuntu 20.04/ZorinOS 16 (gc
178178
- python tools/bin/get-pip.py
179179
- python -m pip install -r tools/requirements.txt
180180

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

Comments
 (0)