rpm-ostree/HACKING.md
Yunchih Chen 2d12d436ec hacking: add builddep command
Closes: #523
Approved by: cgwalters
2016-11-21 16:07:35 +00:00

2.9 KiB

Raw build instructions

First, releases are available as GPG signed git tags, and most recent versions support extended validation using git-evtag.

You'll need to get the submodules too: git submodule update --init

rpm-ostree has a hard requirement on a bleeding edge version of libhif - we now consume this as a git submodule automatically.

We also require a few other libraries like librepo.

On Fedora, you can install those with the command dnf builddep rpm-ostree.

So the build process now looks like any other autotools program:

env NOCONFIGURE=1 ./autogen.sh
./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc
make

At this point you can run some of the unit tests with make check. For more information on this, see CONTRIBUTING.md.

Using the Vagrant box

The easiest way to get started hacking on rpm-ostree is to use the vagrant machine. This is also the set up used for our integration tests.

One-time setup

Starting the vagrant machine is as easy as:

host$ vagrant up
host$ vagrant ssh

The VM for now uses the official centos/atomic-host box. However, because rpm-ostree is tightly coupled with other projects such as ostree and libhif, the code in HEAD may require a more recent version than available in the latest official box.

For this reason, you may want to rebase the VM onto the CentOS Atomic Continuous stream, which will contain the latest HEAD versions of these dependencies (normally within the hour). To rebase, simply do:

vm$ sudo rpm-ostree rebase centos-atomic-continuous:centos-atomic-host/7/x86_64/devel/continuous
vm$ sudo systemctl reboot

If you need to test your code with custom ostree or libhif builds, you have no choice for now other than making your own tree (and yum repo for use by the build container). We're hoping to improve this workflow soon.

Hacking

The make vmoverlay command will automatically sync the current files to the VM, unlock the current deployment, build rpm-ostree, and install it.

If you need to test on a locked deployment with the updated rpm-ostree baked into the tree, you can use the make vmbuild command, which will install rpm-ostree into a new deployment and reboot the VM to use it.

For convenience, the make vmshell command does the same as make vmbuild but additionally places you in a shell, ready to test your changes.

Note that by default, all the commands above try to re-use the same configuration files to save speed. If you want to force a cleanup, you can use VMCLEAN=1.

Testing

The make vmcheck command performs the same task as make vmbuild, but additionally starts the integration testsuite.