Installation

January 17, 2021 ยท View on GitHub

The readme contains some information on the simplest installation methods, but you can also install Patchwork by fetching from Git and building from source.

Dependencies

  • Git
  • Node.js (Active LTS)
  • npm or Yarn
  • autoconf and automake
  • libtool
  • x11 and libxkbfile (Linux only)

Debian / Ubuntu

apt-get install \
  automake \
  g++ \
  libgconf-2-4 \
  libtool \
  libxext-dev \
  libxkbfile-dev \
  libxtst-dev \
  m4 \ 
  make

CentOS / Fedora

dnf install \
  libXext-devel \
  libXtst-devel \
  libxkbfile-devel \
  gcc-c++ \
  m4 \
  automake \
  libtool

macOS

brew install libtool automake

NixOS

nix-shell -p nodejs autoconf automake libtool x11 xlibs.libxkbfile electron_8

Fetch

git clone https://github.com/ssbc/patchwork
cd patchwork

Build

With npm:

npm install

If you receive 'No native build found' errors, try instead:

npm install --build-from-source

With yarn:

yarn

Proxy

Normally, the application will follow your system settings to use a proxy, or you can set up a proxy by the following command line options.

--proxy-server=<SERVER>:<PORT>
--proxy-pac-url=<URL>

On Windows, please make sure to add -- before options. For example, C:\Users\YourUser\AppData\Local\Programs\ssb-patchwork\Patchwork.exe -- --proxy-server=....

Start

npm

npm start

Yarn

yarn start

Sandbox

Some Linux users may see an error like this:

The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

You have three options, pick the one that you think sucks the least:

  1. Change your kernel settings: sudo sysctl kernel.unprivileged_userns_clone=1
  2. Follow the instructions and change the file's owner to root
  • sudo chown root node_modules/electron/dist/chrome-sandbox
  • sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
  1. Disable the sandbox with either:
  • npm start -- --no-sandbox, or
  • yarn start -- --no-sandbox

See also:

AppImage

Note that the chown and chmod solution doesn't work with AppImages, but you can launch the AppImage with the --no-sandbox flag appended to the command.

You can permanently patch the AppImage to add --no-sandbox, but that change is experimental and requires some extra steps.