Skip to content

Commit

Permalink
Merge branch 'master' into daniellacosse/apple_privacy_required_reasons
Browse files Browse the repository at this point in the history
  • Loading branch information
daniellacosse authored May 13, 2024
2 parents bc7c3c4 + 2f174c1 commit cca70da
Show file tree
Hide file tree
Showing 92 changed files with 336 additions and 554 deletions.
2 changes: 1 addition & 1 deletion client/tools/build/setup_linux_android.sh → .github/scripts/android_setup_ci.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ rm android-commandline-tools.zip

PATH="${PATH}:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/cmdline-tools/tools/bin"

yes | sdkmanager "build-tools;${OUTLINE_ANDROID_BUILD_TOOLS_VERSION}" "ndk;${OUTLINE_ANDROID_NDK_VERSION}"
yes | sdkmanager "build-tools;${OUTLINE_ANDROID_BUILD_TOOLS_VERSION}" "ndk;${OUTLINE_ANDROID_NDK_VERSION}"
File renamed without changes.
6 changes: 3 additions & 3 deletions .github/workflows/build_and_test_debug_client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
go-version-file: '${{ github.workspace }}/go.mod'

- name: Build Linux Client
run: npm run action src/electron/build linux
run: npm run action client/electron/build linux

windows_debug_build:
name: Windows Debug Build
Expand Down Expand Up @@ -99,7 +99,7 @@ jobs:
go-version-file: '${{ github.workspace }}/go.mod'

- name: Build Windows Client
run: npm run action src/electron/build windows
run: npm run action client/electron/build windows

macos_debug_build:
name: MacOS Debug Build
Expand Down Expand Up @@ -257,7 +257,7 @@ jobs:
java-version: 11

- name: Setup Android
run: bash ./client/tools/build/setup_linux_android.sh
run: bash ./.github/scripts/android_setup_ci.sh

- name: Build Android Client
run: npm run action client/src/cordova/build android -- --verbose
24 changes: 11 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
# Outline Apps
# <img alt="Outline Manager Logo" src="docs/resources/logo_manager.png" title="Outline Manager" width="32">&nbsp;&nbsp;Outline Apps&nbsp;&nbsp;<img alt="Outline Client Logo" src="docs/resources/logo_client.png" title="Outline Client" width="32">

[![Mattermost](https://badgen.net/badge/Mattermost/Outline%20Community/blue)](https://community.internetfreedomfestival.org/community/channels/outline-community) [![Reddit](https://badgen.net/badge/Reddit/r%2Foutlinevpn/orange)](https://www.reddit.com/r/outlinevpn/)
[![codecov](https://codecov.io/gh/Jigsaw-Code/outline-app/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-app)
[![Reddit](https://badgen.net/badge/Reddit/r%2Foutlinevpn/orange)](https://www.reddit.com/r/outlinevpn/) [![Mattermost](https://badgen.net/badge/Mattermost/Outline%20Community/blue)](https://community.internetfreedomfestival.org/community/channels/outline-community) [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps)

## Access to the free and open internet!
> [!WARNING]
> Codecov currently only tracks the `/client` Apple libraries and core web view code.
Outline makes it easy to create a VPN server, giving anyone access to the free and open internet.
Outline makes it easy for anyone to create a VPN server, allowing you to share access to the free and open internet with those in need. **We have two core applications:**

We have two core apps
&nbsp;&nbsp;&nbsp;&nbsp;<img alt="Outline Manager Logo" src="docs/resources/logo_manager.png" title="Outline Manager" width="14">&nbsp;&nbsp;**Outline Manager** ([`/server_manager`](server_manager)): A graphical user interface for managing Outline servers. It is available for Windows, macOS, and Linux. [You can install the manager here](https://getoutline.org/get-started/#step-1).

- <img alt="Outline Manager Logo" src="docs/resources/logo_manager.png" title="Outline Manager" width="25"> **Outline Manager** ([`/server_manager`](server_manager)): A graphical user interface for managing Outline servers. It is available for Windows, macOS, and Linux.
&nbsp;&nbsp;&nbsp;&nbsp;<img alt="Outline Client Logo" src="docs/resources/logo_client.png" title="Outline Client" width="14">&nbsp;&nbsp;**Outline Client** ([`/client`](client)): A cross-platform proxy client for Windows, macOS, iOS, Android, and Linux. The Outline Client is designed for use with the server deployed with the Outline Manager, but it is also fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. [You can install the client here](https://getoutline.org/get-started/#step-3).

- <img alt="Outline Client Logo" src="docs/resources/logo_client.png" title="Outline Client" width="25"> **Outline Client** ([`/client`](client)): A cross-platform proxy client for Windows, macOS, iOS, Android, and Linux. The Outline Client is designed for use with the server deployed with the Outline Manager, but it is also fully compatible with any [Shadowsocks](https://shadowsocks.org/) server.
## Community and Support

Go to https://getoutline.org for ready-to-use versions of both.
Interested in **contributing to Outline?** See our [Contributing Guide](CONTRIBUTING.md) for more information.

**Join the Outline Community** by signing up for the [IFF Mattermost](https://wiki.digitalrights.community/index.php?title=IFF_Mattermost)!
You can also **join the Outline Community** by signing up for the [IFF Mattermost](https://wiki.digitalrights.community/index.php?title=IFF_Mattermost)!

## Support

For support and to contact us, see: https://support.getoutline.org.
For customer support and to **contact us directly**, go to https://support.getoutline.org.
11 changes: 4 additions & 7 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Outline Client
# <img alt="Outline Client Logo" src="../docs/resources/logo_client.png" title="Outline Client" width="32">&nbsp;&nbsp;Outline Client

![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps)
![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master)

> [!NOTE]
> Test coverage currently only tracks the Apple Libraries and core web view code.
The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the [Outline Server](https://github.com/Jigsaw-Code/outline-server) software, but it is fully compatible with any [Shadowsocks](https://shadowsocks.org/) server.
The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and Debian-based Linux. The Outline Client is designed for use with the [Outline Server](https://github.com/Jigsaw-Code/outline-server) software, but it is fully compatible with any [Shadowsocks](https://shadowsocks.org/) server.

The client's user interface is implemented in [Polymer](https://www.polymer-project.org/) 2.0. Platform support is provided by [Cordova](https://cordova.apache.org/) and [Electron](https://electronjs.org/), with additional native components in this repository.

Expand Down Expand Up @@ -72,7 +69,7 @@ Each platform is handled differently:
1. [Developing for Apple **(MacOS and iOS)**](src/cordova/apple)
2. [Developing for **Android**](src/cordova/android)
3. [Developing for Electron **(Windows and Linux)**](src/electron)
3. [Developing for Electron **(Windows and Linux)**](electron)
## Error reporting
Expand Down
6 changes: 3 additions & 3 deletions src/electron/README.md → client/electron/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

Unlike the Android and Apple clients, the Windows and Linux clients use the Electron framework, rather than Cordova.

To build the Electron clients, run (it will also package an installer executable into `build/dist`):
To build the Electron clients, run (it will also package an installer executable into `output/client/electron/build`):

```sh
npm run action electron/build [windows|linux]
npm run action client/electron/build [windows|linux]
```

To run the Electron clients, run:

```sh
npm run action electron/start [windows|linux]
npm run action client/electron/start [windows|linux]
```

## Cross-Compiling
Expand Down
File renamed without changes.
21 changes: 7 additions & 14 deletions src/electron/build.action.mjs → client/electron/build.action.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,14 @@ import fs from 'fs/promises';
import path from 'path';
import url from 'url';

import copydir from 'copy-dir';
import electron, {Platform} from 'electron-builder';
import minimist from 'minimist';

import {getBuildParameters} from '../../client/src/build/get_build_parameters.mjs';
import {getRootDir} from '../build/get_root_dir.mjs';
import {runAction} from '../build/run_action.mjs';
import {getRootDir} from '../../src/build/get_root_dir.mjs';
import {runAction} from '../../src/build/run_action.mjs';
import {getBuildParameters} from '../src/build/get_build_parameters.mjs';




const ELECTRON_BUILD_DIR = 'build';
const ELECTRON_BUILD_DIR = 'output';
const ELECTRON_PLATFORMS = ['linux', 'windows'];

export async function main(...parameters) {
Expand Down Expand Up @@ -55,15 +51,12 @@ export async function main(...parameters) {

await runAction('client/src/www/build', ...parameters);
await runAction('client/src/tun2socks/build', ...parameters);
await runAction('src/electron/build_main', ...parameters);
await runAction('client/electron/build_main', ...parameters);

await copydir.sync(
path.join(getRootDir(), 'src', 'electron', 'icons'),
path.join(getRootDir(), ELECTRON_BUILD_DIR, 'icons')
);
await fs.mkdir(path.join(getRootDir(), ELECTRON_BUILD_DIR, 'client', 'electron'), {recursive: true});

const electronConfig = JSON.parse(
await fs.readFile(path.resolve(getRootDir(), 'src', 'electron', 'electron-builder.json'))
await fs.readFile(path.resolve(getRootDir(), 'client', 'electron', 'electron-builder.json'))
);

// build electron binary
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ import path from 'path';
import url from 'url';

import electronMainWebpackConfigs from './webpack_electron_main.mjs';
import {getBuildParameters} from '../../client/src/build/get_build_parameters.mjs';
import {getWebpackBuildMode} from '../../client/src/build/get_webpack_build_mode.mjs';
import {runWebpack} from '../../client/src/build/run_webpack.mjs';
import {getRootDir} from '../build/get_root_dir.mjs';
import {runAction} from '../build/run_action.mjs';
import {getRootDir} from '../../src/build/get_root_dir.mjs';
import {runAction} from '../../src/build/run_action.mjs';
import {getBuildParameters} from '../src/build/get_build_parameters.mjs';
import {getWebpackBuildMode} from '../src/build/get_webpack_build_mode.mjs';
import {runWebpack} from '../src/build/run_webpack.mjs';

const ELECTRON_BUILD_DIR = 'build';
const ELECTRON_BUILD_DIR = 'output';
const ELECTRON_PLATFORMS = ['linux', 'windows'];

export async function main(...parameters) {
Expand Down Expand Up @@ -58,7 +58,7 @@ export async function main(...parameters) {
windowsEnvironment += `\n!define SENTRY_URL "<debug>"`;
}

await fs.writeFile(path.resolve(getRootDir(), ELECTRON_BUILD_DIR, 'env.nsh'), windowsEnvironment);
await fs.writeFile(path.resolve(getRootDir(), ELECTRON_BUILD_DIR, 'client', 'electron', 'env.nsh'), windowsEnvironment);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
import * as dns from 'dns';

import {timeoutPromise} from '@outline/infrastructure/timeout_promise';
import * as errors from '../../client/src/www/model/errors';

import * as errors from '../src/www/model/errors';

const DNS_LOOKUP_TIMEOUT_MS = 10000;

Expand Down
Loading

0 comments on commit cca70da

Please sign in to comment.