This guide will step you through building the looking glass client from source, before you attempt to do this you should have a basic understanding of how to use the shell.
=== Prebuilt Packages Building the Application ===
----
==== Debian Installing Build Dependencies ==== A Debian repository is available. To use it, first add the PGP key: <syntaxhighlight lang=bash>curl https://quantum2.xyz/apt.key | sudo apt-key add -</syntaxhighlight> To use the stable release (recommended): <syntaxhighlight lang=sources.list>deb [arch=amd64] https://apt.quantum2.xyz/looking-glass-stable buster main</syntaxhighlight>
To use the latest bleeding-edge builds:These required libraries and tools should be installed first.
<syntaxhighlight lang=sources.list>deb [arch=amd64] https://apt.quantum2.xyz/looking-glass buster main</syntaxhighlight>=== Required Dependencies =====
=== Building the Application ===
----
==== Installing Build Dependencies ====
* binutils-dev
* cmake
* gcc | clang
* fonts-freefont-ttf
* libegl-dev
* libgl-dev
* libfontconfig1-dev
* libgmp-dev
* libsdl2-dev
* libsdl2-ttf-dev
* libspice-protocol-dev
* libfontconfig1-dev* libx11-devmake
* nettle-dev
* pkg-config
====== May be disabled ======
These dependencies are required by default, but may be omitted if their feature is disabled when running [[#Building|cmake]].
* Disable with <code>cmake -DENABLE_BACKTRACE=no</code>
** binutils-dev
* Disable with <code>cmake -DENABLE_X11=no</code>
** libx11-dev
** libxfixes-dev
** libxi-dev
** libxss-dev
* Disable with <code>cmake -DENABLE_WAYLAND=no</code>
** libwayland-bin
** libwayland-dev
** wayland-protocols
===== Debian (and maybe Ubuntu) =====
<syntaxhighlight lang=bash>
apt-get install binutils-dev cmake fonts-freefont-ttf libfontconfig1-dev libsdl2-dev libsdl2-ttf-dev libspice-protocol-dev libfontconfig1-dev libx11-dev nettle-devwayland-protocols
</syntaxhighlight >
<!-- Dependencies must match Debian's order, and extra dependencies must be on another line, with a consistent order -->
<syntaxhighlight lang=bash>
dnf install binutils-devel cmake texlive-gnu-freefont fontconfig-devel SDL2-devel SDL2_ttf-devel spice-protocol fontconfiglibX11-devel libX11nettle-devel nettlewayland-protocols-devel \ gcc mesa-libGLUlibXScrnSaver-devel libXfixes-devel libXi-devel wayland-devel
</syntaxhighlight >
<!-- Dependencies must match Debian's order, and extra dependencies must be on another line, with a consistent order -->
<syntaxhighlight lang=bash>
zypper install binutils-devel make cmake fontconfig-devel libSDL2-devel libSDL2_ttf-devel spice-protocol-devel fontconfiglibX11-devel libX11libnettle-devel libnettlewayland-protocols-devel \ libconfig-devel libXi-devel libXss-devel libwayland-egl-devel wayland-protocols-devel nettle
</syntaxhighlight >
<!-- Dependencies must match Debian's order, and extra dependencies must be on another line, with a consistent order -->
<syntaxhighlight lang=bash>
pacman -Syu binutils cmake gnu-free-fonts fontconfig sdl2 sdl2_ttf spice-protocol fontconfig libx11 nettle \
gcc make pkgconf glu
</syntaxhighlight>
<!-- Dependencies must match Debian's order, and extra dependencies must be on another line, with a consistent order -->
<syntaxhighlight lang=bash>
xbps-install -Syu binutils-devel cmake freefont-ttf fontconfig-devel SDL2-devel SDL2_ttf-devel spice-protocol fontconfig-devel libX11-devel nettle-devel \
gcc make pkg-config
</syntaxhighlight>
</syntaxhighlight>
The memory size (show as 32 in the example above) may need to be adjusted as per [[Installation#Determining_Memory|Determining Memory]] section.
==== Spice Server ====
</syntaxhighlight>
The memory size (show as 32 in the example above) may need to be adjusted as per [[Installation#Determining_Memory|Determining Memory]] section.
=== Determining Memory ===
== Looking Glass Service (Windows) ==
You must first run the Windows VM with the changes noted above in either the [[Installation#libvirt_Configuration|libvirt]] or [[Installation#Qemu_Commands|Qemu]] sections.
=== Installing the IVSHMEM Driver ===