2019-05-09 16:39:32 +03:00
Developing using Podman + Vagrant
2016-11-14 20:07:43 +03:00
---------------------------------
2019-05-09 16:39:32 +03:00
**Note: These instructions are in flux and will be oriented
toward a [coreos-assembler ](https://github.com/coreos/coreos-assembler )
based workflow, which targets Fedora CoreOS (FCOS). You may find built FCOS
images at: http://artifacts.ci.centos.org/fedora-coreos/prod/builds/latest/.**
2016-11-14 20:07:43 +03:00
The current tooling here is oriented towards
2019-05-02 07:34:17 +03:00
doing builds inside a Fedora 29 pet container,
2016-11-14 20:07:43 +03:00
with Vagrant on the host.
2019-05-02 07:34:17 +03:00
You should share the git working directory with the f29 container.
2016-11-14 20:07:43 +03:00
Assuming you have git repositories stored in `/srv` , something like:
```
2019-05-02 07:34:17 +03:00
podman run --name f29dev --privileged -v /srv:/srv --net=host -ti registry.fedoraproject.org/fedora:29 bash
2016-11-14 20:07:43 +03:00
```
You can start the Vagrant box. To work around "fuse-sshfs" not
being built into the Vagrant box, do something like this:
```
2019-05-02 07:34:17 +03:00
vagrant up; vagrant provision; vagrant halt; vagrant up
2016-11-14 20:07:43 +03:00
```
2019-05-02 07:34:17 +03:00
Note to run `vagrant` as non-root, you'll need to either
[add your user to the `libvirt` group, or configure polkit ](https://github.com/projectatomic/rpm-ostree/issues/49#issuecomment-478091562 ).
If working under the `/srv` directory, you should first do
`sudo chown -R <your-user> /srv/path/to/rpm-ostree/` on your host so
that rootless `vagrant` can write there.
Before building, you may need to install the build dependencies in the
f29dev container. A quick way to do this is:
```
ci/installdeps.sh
```
Now, run autoreconf inside the f29dev container:
2016-11-14 20:07:43 +03:00
```
./autogen.sh CFLAGS='-ggdb -O0' --prefix=/usr --libdir=/usr/lib64 --enable-installed-tests --enable-gtk-doc
```
2019-05-02 07:34:17 +03:00
To sync over and install the built binaries to the Vagrant VM:
2016-11-14 20:07:43 +03:00
```
make vmsync
```
You may also want to use `vmcheck` , like this:
```
make vmoverlay & & make vmcheck
```
2019-05-02 07:34:17 +03:00
Also see [HACKING.md ](../HACKING.md ).