Installation#

Srain is available on GNU/Linux, Windows, macOS and BSD.

Dependencies#

Name

Notes

Version

meson

Only for Building

> 0.47.0

make

Optional, only for development

appstream

Only for building, on Debian-based distributions

coreutils

Only for building

gcc

Only for building

pkg-config

Only for building

gettext

Only for building

glib2

glib-networking

Optional, for TLS connection support

gtk+3

>= 3.18

libsoup3

>= 3.0

libconfig

>= 1.5

libsecret

openssl

python-sphinx

Optional, for building documentation

adwaita-icon-theme

Or any other icon themes

libayatana-appindicator

Optional application indicator support, can be disabled by meson options -Dapp_indicator=false

Building#

You should install the aboved Dependencies on your platform before the following steps.

Firstly, download source code of srain, you can get source code of latest release:

$ wget SrainApp/srain1.7.0.tar.gz
$ tar -xvzf 1.7.0.tar.gz
$ cd srain-1.7.0

Or get git version:

$ git clone https://github.com/SrainApp/srain.git
$ cd srain

Play with Meson#

Srain use Meson with ninja backend as its build system. You can build it via the following commands:

$ meson setup builddir
$ cd builddir
$ ninja

Install(root privileges required):

$ cd builddir
# ninja install

HTML documentation and manpage are built and installed by default, if you don’t need them, just set meson option doc_builders to an empty array when setup:

$ meson setup -Ddoc_builders=[] builddir

Makefile Helper#

We also provide a simple Makefile helper to simplify meson commands. It is convenient for development.

$ make           # Build srain
$ make build     # Same as above
$ make install   # Install srain to prefix under project root
$ make run       # Run srain with isolated $HOME and XDG Directory
$ make debug     # Same as `make run`, but with GDB attached
$ make inspect   # Same as `make run`, but with GtkInspector
$ make clean     # Remove all compilation and installation result
$ make doc       # View installed HTML documentation

Distribution Packages#

GNU/Linux#

Arch Linux#

Packages srain and srain-git (git version) are available on AUR, it is quite easy to install using AUR helper(yay as an example):

$ yay -S srain
$ yay -S srain-git # git version

If you are the user of Arch Linux CN Repository, try:

# pacman -S archlinuxcn/srain
# pacman -S archlinuxcn/srain-git # git version

Debian#

Srain now in offical repository of Debian:

# apt install srain

Fedora#

Srain now in offical repository of fedora, use dnf to install it.

# dnf install srain

Flatpak#

https://flathub.org/assets/badges/flathub-badge-i-en.svg

cpba is maintaining Flatpak manifest for Srain and The built package is available on Flathub, just execute the following commands to install if you already have flatpak installed:

$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub im.srain.Srain

Gentoo#

Please refers to gentoo portage overlays.

openSUSE#

alois is maintaining openSUSE package for Srain, following this link to install it.

Windows#

Srain requires Windows 7 or later.

Pre-built package#

After 2020-08-10 Version 1.1.2, we provide Windows portable binary that you can get it from Github release page.

Build byself#

If you want to build Srain on Windows youself, you should use the toolchains provided by MSYS2 project.

Firstly install MSYS2, then open a MSYS2 shell, install the basic build tools:

$ pacman -S base-devel
$ pacman -S mingw-w64-i686-toolchain     # For 32-bit Windows
$ pacman -S mingw-w64-x86_64-toolchain   # For 64-bit Windows

Then download the package script from MinGW PKGBUILD for Srain, run the following commands at the directory of PKGBUILD:

$ MINGW_INSTALLS=mingw32 makepkg-mingw -fsi # For 32-bit Windows
$ MINGW_INSTALLS=mingw64 makepkg-mingw -fsi # For 64-bit Windows

If everything goes well, Srain is installed under your MinGW prefix.

Note

If you suffer the “error while loading shared libraries: xxxx.dll: cannot open shared object file: No such file or directory” problem when running, please run it in cmd but not msys2 shell, and it will show you real missing library. [1]

macOS#

Warning

macOS support of Srain is still experimental.

There is not a distribution package or package script for Srain on macOS, you should build Srain by yourself.

Firstly install Homebrew, run the following commands to install dependencies:

$ brew install coreutils gcc pkg-config # building
$ brew install gettext glib-networking gtk+3 libsoup libconfig openssl adwaita-icon-theme

Next, tell pkg-config where to find the libraries we just installed:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:"/usr/local/opt/icu4c/lib/pkgconfig"
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:"/usr/local/opt/openssl@3/lib/pkgconfig"

Then follow the steps in Building.

BSD#

OpenBSD#

Please refers to OpenBSD Ports.