Build and maintain yum repositories following OpenStack uptream commit streams.
Project description
DLRN builds and maintains yum repositories following OpenStack uptream commit streams.
Documentation is available at http://dlrn.readthedocs.org/en/latest/
Setup
# yum install git createrepo python-virtualenv mock gcc \
redhat-rpm-config rpmdevtools httpd libffi-devel \
openssl-devel
Add the user you intend to run as to the mock group and login again.
$ git clone https://github.com/openstack-packages/DLRN.git
If you want to serve the built packages and the status reports, enable the httpd service, and then either add a section in the server configuration to map a URL to the data directories, or create a symbolic link:
# systemctl start httpd
# cd /var/www/html
# ln -s <datadir>/repos .
Preparing
$ cd DLRN
$ virtualenv ../dlrn-venv
$ . ../dlrn-venv/bin/activate
$ pip install --upgrade pip
$ pip install -r requirements.txt
$ python setup.py develop
Edit projects.ini if needed.
Bootstrapping
Some of the projects require others to build. As a result, use the special option --order to build in the order computed from the BuildRequires and Requires fields of the spec files when you bootstrap your repository.
$ dlrn --order
When using this special option, a special variable repo_bootstrap is defined in the specs, with a value of 1. You can use this variable if needed, to break dependency loops between packages. For example:
%if 0%{?repo_bootstrap} == 0
BuildRequires: package-with-circular-dependency
%endif
Running
Once all the packages have been built once, you can get back to build the packages in the order of the timestamps of the commits.
$ dlrn
Troubleshooting
If you interrupt dlrn during mock build you might get an error
OSError: [Errno 16] Device or resource busy: '/var/lib/mock/dlrn-fedora-x86_64/root/var/cache/yum'
Solution is to clear left-over bind mount as root:
# umount /var/lib/mock/dlrn-fedora-x86_64/root/var/cache/yum
Other requirements
If the git clone operation fails for a package, DLRN will try to remove the source directory using sudo. Please make sure the user running DLRN can run rm -rf /path/to/dlrn/data/* without being asked for a password, otherwise DLRN will fail to process new commits.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.