Giter VIP home page Giter VIP logo

desktop-shadowsocks's Introduction

shadowsocks-build

This repository builds shadowsocks-libev and its dependencies for use in Desktop.

Since this repository uses submodules, make sure to include --recursive when cloning it. If you forgot, git submodule update --init --recursive will initialize the submodules.

Included dependencies

The repo builds libpcre, libsodium, mbedtls, c-ares, and libev from source as dependencies of shadowsocks-libev.

There are two libev submodules. On Windows, shadowsocks-libev requires a modified libev from a specific branch, libev-windows/libev points to this branch. libev-posix/libev is used on other platforms.

Build environment

This project builds on Linux, Mac OS, and Windows; artifacts are statically linked. Linux builds should be made on Ubuntu 16.04 to ensure they will run on 16.04 and later.

Dependencies to check

Do we need:

  • autotools package? (probably on MinGW)
  • gettext?
  • pkg-config?
  • asciidoc?
  • xmlto?

Ubuntu

You will need the following dependencies:

  • build-essential
  • git
  • automake
  • libtool

Mac

Install the Xcode command-line tools.

Install Homebrew from https://brew.sh and the following packages:

  • autoconf
  • automake
  • libtool
  • python@2

Windows

  1. Install MSYS2 from https://www.msys2.org - follow the instructions on that page
  2. Install dependencies
    • x86_64: pacman -S base-devel mingw-w64-x86_64-toolchain git mingw-w64-x86_64-crt-git
    • x86: pacman -S base-devel mingw-w64-i686-toolchain git mingw-w64-i686-crt-git
    • If prompted by pacman for group members, accept defaults (all members in group)
  3. Clone shadowsocks-build recursively from the MSYS2 shell. Don't use Git for Windows, it handles line endings differently and will cause issues.
    • git clone --recursive https://github.com/pia-foss/desktop-shadowsocks.git

On Windows, building from the MSYS2 MinGW 64-bit shell produces a 64-bit build, building in the MSYS2 MinGW 32-bit shell produces a 32-bit build.

Build

To build, just run ./build-posix (even on Windows). pia-ss-local is generated in ./out/artifacts/<platform>/.

Submodules, patches, updating dependencies

This project includes dependencies as submodules; patches are applied at build time.

The preferred way to work on the submodule patches is to apply them to the submodule, work in the submodule and commit to Git (locally), then regenerate patches. See https://github.com/pia-foss/desktop-openvpn#working-on-module-patches.

desktop-shadowsocks's People

Watchers

James Cloos 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.