Ring installer uses python3. If it's not installed, please install
cd ring-project/./make-ring.py --init
Build and install all the dependencies: Your distro package manager
will be used.
Build and install locally
Run LibRing (daemon) and client that were installed locally
You can then stop the processes with CTRL-C. You can also run them in
the background with the --background argument and then use the
--stop command to stop them. Use Stdout and stderr to go to
daemon.log and client-gnome.log.
Install globally for all users instead
Run global install: This already starts LibRing (the daemon)
automatically for us.
Uninstall the global install
On Mac OS X
You need to setup Homebrew since there is no built-in package manager on OSX.
Build and install all the dependencies
Build and install locally
Output: You can find the .app file in the
RING=$PWD/ring-daemoncd$RING/contribmkdir buildcd build../bootstrapmake# That's all !# Optionally, you may also type :make list# or# make .packge?# to force using downloaded packages, not system locally installed.make .gnutls .upnp ...
Note: if compiling libav in contrib (you can see the list of
dependencies which will be compiled by running 'make list' in
\$RING/contrib/build) on Linux, you will likely first need to install
libx11-dev libxext-dev libxfixes-dev due to the '--enable-x11grab'
cd$RING# Now generate autotools configuration files./autogen.sh# Create Makefiles and config.h files for your build target./configure --prefix=/usr --disable-shared# Buildmake# Installsudo make install
For the moment only 32-bit MinGW build can be compiled.
cd ring-daemon/contribmkdir nativecd native../bootstrap --host=i686-w64-mingw32make
cd ../.../autogen.shmkdir-p"build"cd build../configure --host=i686-w64-mingw32 --without-dbus--prefix=(<prefix_path> default=_win32)rsync -a ../src/buildinfo.cpp ./src/buildinfo.cppmake (-jX)install
Native compiling on Windows
MSVC: Microsoft Visual C++ 2015 CTP is still lacking some C++11
features needed to compile the daemon (e.g. constexpr is only partially
On Mac OS X
Build Tools: Use your favorite package manager to install the
necessary tools (HomeBrew or MacPorts) automake, libtool, gettext,
libtoolize, yasm, autoconf, pkg-config. If you don't use a package
cd extras/tools./bootstrapmakeexport PATH=$PATH:$RING/extras/tools/build/bin
Compile LibRing's dependencies
cd contribmkdir buildcd build../bootstrapmake -j3
Build LibRing: If you want to link against libringclient and native
client, easiest way is to add --prefix to configure and then run make
cd ../.././autogen.sh./configure --without-dbus--prefix=<prefix_path>make install
If you do not want to install LibRing, you will have to use
-DRING_BUILD_DIR=/src as a cmake argument for
Common Issues: "Autopoint not found" When using Homebrew, autopoint
is not found even when gettext is installed, because symlinks are not
created. To fixt it, run:
brew link--force gettext
Contributing to LibRing Source Code
First read our LibRing Coding Rules page before sending us any patches.
Gerrit is used as code review / integration tool. Register your ID (you
need a Google/GitHUB OAuth2 account) on our public web gerrit service
LIBRING_INSTALL_PREFIX makes reference to the build directory of
LibRing, so it is either ring-daemon/build/_win32/, or the directory
specified via --prefix argument defined during LibRing compilation.
If LibRing and LibRingClient are already installed on the system (eg:
/usr/) in the gnome-ring project root dir:
mkdir buildcd buildcmake .. -DCMAKE_INSTALL_PREFIX=/usrmakesudo make install
Building without installing LibRing and LibRingClient
This allows you to build every component separately and to run them from
their location without having to install them. To do this, you must
first build LibRing and then tell LibRingClient where it is located.
Then, you build the LibRingClient and tell client-gnome where
LibRingClient it is located. Finally, you build client-gnome.
Build the daemon as explained above.
Configure the build of LibRingClient by specifying the location of
the (non-installed) daemon with e.g.:
cd build && cmake .. -DRING_BUILD_DIR=$HOME/ring-project/daemon/src -DCMAKE_BUILD_TYPE=Debug
Build LibRingClient by running "make".
Configure the build of client-gnome by specifying the location of
LibRingClient using the specific variable designed for it:
cd build && cmake .. -DLibRingClient_PROJECT_DIR=$HOME/ring-project/lrc -DCMAKE_BUILD_TYPE=Debug
Build client-gnome by running "make".
To run an install-less Ring, you must manually start the daemon and then
the client, e.g.:
The app built using
'make' contains only links to required libraries. To fully build and
package as a standalone Bundle, see the Packaging section.
For now, the build type of the client is "Debug" by default. However it
is useful to also have the debug symbols of LibRingClient. To do this,
specify -DCMAKE_BUILD_TYPE=Debug when compiling LibRingClient in the
To make a standalone Bundle we use a cmake module:
All dependencies are copied inside the Bundle and links are fixed.
We can then generate a "DragNDrop" dmg file with
cmake ../ -DCMAKE_INSTALL_PREFIX=<libringclient_install_path>make install-jcpack -G DragNDrop Ring
iOS Client for Ring
After installing Brew and Python3 (brew install
git clone https://gerrit-ring.savoirfairelinux.com/ring-projectcd ring-project./make-ring.py --init./make-ring.py --dependencies--distribution iOS./make-ring.py --install--distribution iOScd client-ios/Ring && carthage bootstrap --platform iOS --no-use-binaries--cache-builds&&cd ..xcodebuild build -project Ring/Ring.xcodeproj/ -configuration"Release"-arch"x86_64"-destination"platform=iOS Simulator,name=iPhone $DATE,OS=11"-sdk iphonesimulator11.0 VALID_ARCHS="x86_64"it could be useful to do this if an error occurs:ln-s /usr/local/opt/gettext/bin/autopoint /usr/local/bin