Blame HACKING.md

Packit Service 509fd4
# Hacking on osbuild-composer
Packit Service 509fd4
Packit Service 509fd4
*osbuild-composer* cannot be run from the source tree, but has to be installed
Packit Service 509fd4
onto a system. We recommend doing this by building rpms, with:
Packit Service 509fd4
Packit Service 509fd4
    make rpm
Packit Service 509fd4
Packit Service 509fd4
This will build rpms from the latest git HEAD (remember to commit changes), for
Packit Service 509fd4
the current operating system, with a version that contains the commit hash. The
Packit Service 509fd4
packages end up in `./rpmbuild/RPMS/$arch`.
Packit Service 509fd4
Packit Service 509fd4
RPMS are easiest to deal with when they're in a dnf repository. To turn this
Packit Service 509fd4
directory into a dnf repository and serve it on localhost:8000, run:
Packit Service 509fd4
Packit Service 509fd4
    createrepo_c ./rpmbuild/RPMS/x86_64
Packit Service 509fd4
    python3 -m http.server --directory ./rpmbuild/RPMS/x86_64 8000
Packit Service 509fd4
Packit Service 509fd4
To start a ephemeral virtual machine using this repository, run:
Packit Service 509fd4
Packit Service 509fd4
    tools/deploy-qemu IMAGE tools/deploy/test
Packit Service 509fd4
Packit Service 509fd4
`IMAGE` has to be a path to an cloud-init-enabled image matching the host
Packit Service 509fd4
operating system, because that's what the packages where built for above.
Packit Service 509fd4
Note that the Fedora/RHEL cloud images might be too small for some tests
Packit Service 509fd4
to pass. Run `qemu-img resize IMAGE 10G` to grow them, cloud-init's growpart
Packit Service 509fd4
module will grow the root partition automatically during boot. 
Packit Service 509fd4
Packit Service 509fd4
The second argument points to a directory from which cloud-init user-data is
Packit Service 509fd4
generated (see `tools/gen-user-data` for details). The one given above tries to
Packit Service 509fd4
mimick what is run on *osbuild-composer*'s continuous integration
Packit Service 509fd4
infrastructure, i.e., installing `osbuild-composer-tests` and starting the
Packit Service 509fd4
service.
Packit Service 509fd4
Packit Service 509fd4
The virtual machine uses qemu's [user networking][1], forwarding port 22 to
Packit Service 509fd4
the host's 2222 and 443 to 4430. You can log into the running machine with
Packit Service 509fd4
Packit Service 509fd4
    ssh admin@localhost -p 2222
Packit Service 509fd4
Packit Service 509fd4
The password is `foobar`. Stopping the machine loses all data.
Packit Service 509fd4
Packit Service 509fd4
For a quick compile and debug cycle, we recommend iterating code using thorough
Packit Service 509fd4
unit tests before going through the full workflow described above.
Packit Service 509fd4
Packit Service 509fd4
[1]: https://wiki.qemu.org/Documentation/Networking#User_Networking_.28SLIRP.29