Go to file
Colin Walters c9219181c4 status: Consistently use malloc'd() memory for status
This crashed when "atomic status" on an origin that didn't have a
refspec, which happened via my new atomic-pkglayer demo script.
2014-10-04 15:08:49 -04:00
design design/package-layering: New file 2014-06-18 08:48:03 -04:00
doc compose: Add support for "default_target" 2014-06-17 13:49:15 -04:00
man upgrade: Download only /usr/share/rpm in check-diff 2014-08-22 15:57:27 -04:00
packaging packaging: Add symlink for atomic 2014-10-03 20:02:24 -04: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 status: Consistently use malloc'd() memory for status 2014-10-04 15:08:49 -04:00
tests tests: Add a rebase test 2014-09-30 09:54:14 -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.107 2014-10-03 20:18:17 -04: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 Add --disable-compose-tooling build option 2014-09-16 21:45:30 -04:00
Makefile-tests.am Import some basic testing infrastructure from OSTree 2014-09-29 16:25:36 -04:00
Makefile.am Import some basic testing infrastructure from OSTree 2014-09-29 16:25:36 -04:00
README.md README.md: We no longer need nss-altfiles on the host 2014-07-18 16:16:19 -04:00
TODO TODO: Update 2014-03-31 16:33:05 -04:00

rpm-ostree

This program serves a dual role; its "tree compose" command is intended for use on build servers, to take RPM packages and commit them to an OSTree repository. On the client side, it acts as a consumer of the libostree shared library, integrating upgrades with RPM.

Major changes since 2014.8

The previous major release of this program contained within it an "autobuilder" codebase which had significant functionality beyond just composing trees, such as creating VM disk images and running smoketests.

Since that time, the other functionality has moved to: https://github.com/cgwalters/rpm-ostree-toolbox

This program now only commits trees to a repository, using "treefiles" which are very simple JSON input data.

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

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 tree compose" builtin as input a "treefile". See examples in doc/treefile-examples, as well as doc/treefile.md.

# rpm-ostree compose tree --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.

The use of --proxy is not mandatory but strongly recommended - with this option you can avoid continually redownloading the packages every compose. I personally use Polipo, but you can of course any HTTP proxy you wish.