Go to file
Colin Walters f3b1bbfcd8 doc/treefiles: Move generic-release into bootstrap package set
The problem is filesystem -> setup -> fedora-release, which
then conflicts.

https://bugzilla.redhat.com/show_bug.cgi?id=705443
2014-05-05 18:31:27 -04:00
composeui composeui: Add UI to home page, add footer 2014-03-05 18:32:30 -05:00
doc/treefile-examples doc/treefiles: Move generic-release into bootstrap package set 2014-05-05 18:31:27 -04:00
man man: Use indent of 2 2014-04-11 18:13:49 -04:00
packaging core: Remove src/autobuilder 2014-05-03 07:32:28 -04:00
patches/shadow-utils patches: New directory containing patches for Fedora userspace 2014-01-04 07:42:20 -05:00
scripts scripts/ostree-ls-big-files.js: New script to analyze repo files for size 2014-01-29 17:55:07 -05:00
src treecompose: Move yum repos out of the way *after* waiting for yum completion 2014-05-05 18:01:45 -04:00
.gitignore Add basic man page 2014-03-25 09:07:49 -04:00
autogen.sh Use the now external libgsystem 2014-02-07 17:29:40 -05:00
configure.ac Release 2014.8 2014-04-13 12:14:09 -07:00
COPYING COPYING: Update to latest LGPLv2+ 2014-03-10 16:40:16 -04:00
Makefile-decls.am Import some code for using GJS 2014-01-03 17:14:10 -05:00
Makefile-man.am Add basic man page 2014-03-25 09:07:49 -04:00
Makefile-rpm-ostree.am Put hawkey stuff behind --enable-patched-hawkey-and-libsolv 2014-03-28 22:04:53 -04:00
Makefile.am core: Remove src/autobuilder 2014-05-03 07:32:28 -04:00
Makefile.dist-packaging Makefile.dist-packaging: Update from ostree 2014-03-22 10:27:16 -04:00
README.md treecompose: Remove internal caching, require --repo argument 2014-05-03 06:55:35 -04:00
TODO TODO: Update 2014-03-31 16:33:05 -04:00

rpm-ostree

This tool takes a set of packages, and commits them to an OSTree repository. At the moment, it is intended for use on build servers.

Using rpm-ostree

There are two levels; the core "rpm-ostree" command takes a set of packages and commits them to an OSTree repository.

The higher level rpm-ostree-autobuilder parses a "products.json" which generates potentially many filesystem trees. It also has code to generate disk images and run smoketests.

Installing and setting up a repository

First, unfortunately you must disable SELinux on the build host in order to support SELinux on the built system. See: https://bugzilla.redhat.com/show_bug.cgi?id=1060423

Second, you must install nss-altfiles on the host system, and edit your /etc/nsswitch.conf to include altfiles, like this:

passwd: files altfiles 
group:  files altfiles

You may or may not be using SSSD (and thus the sss option); if you are then it should look like:

passwd: files altfiles sss
group:  files altfiles sss

For more information, see: http://lists.rpm.org/pipermail/rpm-maint/2014-January/003652.html

There are packages available in the rpm-ostree COPR: http://copr-fe.cloud.fedoraproject.org/coprs/walters/rpm-ostree/

At the moment, all of the tooling except for the patched shadow-utils is in Fedora rawhide.

Once you have that done, choose a build directory. Here we'll use /srv/rpm-ostree.

# cd /srv/rpm-ostree
# mkdir repo
# ostree --repo=repo init --mode=archive-z2

Running rpm-ostree

The core "rpm-ostree" takes as input a "treefile". There is a demo one in doc/demo-treefile.json.

# rpm-ostree treecompose --repo=/srv/rpm-ostree/repo --proxy=http://127.0.0.1:8123 sometreefile.json

All this does is use yum to download RPMs from the referenced repos, and commit the result to the OSTree repository, using the ref named by ref. Note that we've specified a local caching proxy (polipo in this case) - otherwise we you will download the packages for each treecompose.

You can export /srv/rpm-ostree/repo via any static webserver.

Running the autobuilder

The autobuilder instead takes as input a products.json which generates multiple treefile internally. Try this:

# ln -s /path/to/rpm-ostree.git/fedostree/products.json .
# rpm-ostree-autobuilder

That will automatically poll every hour for changes in the RPMs referenced by the products.json file, commit them to the /srv/rpm-ostree/repo, and generate cached disk images in /srv/rpm-ostree/images.