[gnome-boxes.wiki] Update Building instructions
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes.wiki] Update Building instructions
- Date: Tue, 19 Mar 2019 14:16:59 +0000 (UTC)
commit 0d40536590c9349c324b6d86154e1842ea5bbb25
Author: Felipe Borges <felipeborges gnome org>
Date: Tue Mar 19 14:16:52 2019 +0000
Update Building instructions
Building-instructions.md | 70 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 69 insertions(+), 1 deletion(-)
---
diff --git a/Building-instructions.md b/Building-instructions.md
index 30404ce..86f7f48 100644
--- a/Building-instructions.md
+++ b/Building-instructions.md
@@ -1 +1,69 @@
-TODO
\ No newline at end of file
+The recommended method to build and develop GNOME Boxes is with [Flatpak](http://docs.flatpak.org/). This
way we can guarantee reproducible builds across different Linux distributions and environments. At the end of
this page, we describe shortly how to build GNOME Boxes against your host system (the traditional way).
+
+## Building in a Flatpak container
+
+The org.gnome.Boxes.json file is our Flatpak manifest which, among other things, describes the list of
required modules and their respective versions and build commands.
+
+### GNOME Builder
+
+[GNOME Builder](https://wiki.gnome.org/Apps/Builder) is able to detect the presence of a Flatpak manifest in
the project's source tree and orchestrate the build within a click of buttons. This process is described step
by step in the [GNOME Newcomers tutorial](https://wiki.gnome.org/Newcomers/).
+
+The first build should take a while since this process will download all the modules listed in the manifest
and build them one after the other. Builder will also attempt to download the Flatpak runtime and SDK
specified in the manifest if it is not present in your current installation.
+
+After the build is finished, you should be able to run Boxes by pressing the Play button in the top bar in
GNOME Builder. You can perform changes in the source code and press the Play button again to see your work in
action.
+
+GNOME Builder will also smartly cache the modules build, avoiding rebuilding everything when it is
unnecessary.
+
+### Flatpak Builder
+
+flatpak-builder is a command-line utility usually available alongside Flatpak that enables you to build and
install Flatpaks from the project's source code.
+
+The basic usage is to invoke:
+
+```
+$ flatpak-builder <build-dir> build-aux/flatpak/org.gnome.Boxes.json
+```
+
+Where `<build-dir>` is the path to the directory that Boxes will be built into.
+
+Runtimes and SDKs are usually already present in your system if you have installed Flatpak apps or have
attempted to develop another application with Flatpak, but if you need to manually install them, you can run:
+
+```
+$ flatpak install flathub org.gnome.Platform
+$ flatpak install flathub org.gnome.Sdk
+```
+
+Where [flathub](https://flathub.org) is the repository where the org.gnome.Platform runtime and the
org.gnome.Sdk SDK are hosted.
+
+## Building against your host system
+
+Distribution package managers often offer tools to install the build dependencies of existing packages. You
can benefit from that because Boxes is available in the most popular Linux distro repositories, such as
Fedora, Ubuntu, Debian, Arch, etc...
+
+In Fedora/RHEL/CentOS and other RPM based systems you should be able to invoke:
+
+```
+$ sudo dnf builddep gnome-boxes
+```
+
+In Ubuntu/Debian and other .deb based systems you should be able to invoke:
+
+```
+$ sudo apt build-dep gnome-boxes
+```
+
+After installing the dependencies, you should open a terminal in the Boxes source tree and run:
+
+```
+meson _build
+```
+
+Where `_build` is the path to the directory that Boxes will be built into. At this moment the meson build
system might complain about missing dependencies. You need to use your distribution's package manager to
install these missing dependencies. It might happen that your distribution doesn't provide a version of a
dependency which is as new as the one which Boxes requires. In this case, you will need to download the
dependencies source code, build, and install it manually (this can create conflicts with other
applications/libraries installed in your system). It is highly recommended to use a container instead.
+
+If all dependencies are present in your system, you can now finally build.
+
+```
+$ cd _build
+$ ninja
+```
+
+The compiler and other tools will be invoked and error messages will be printed in your terminal. If the
compilation succeeds you will find the executable in **_build/src/gnome-boxes**. Once you edit the source
code to introduce new changes, you should call "ninja" in the build directory to build and test your changes.
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]