Skip to content
DO NOT send Pull Requests here, send reviews to
Python Shell Other
Branch: master
Clone or download
javierpena Provide a container image for the DLRN API
We want to provide a ready-made container image for the DLRN API,
so it can be used to test other software easily. This commit provides
a Dockerfile and basic scripts to run it. It also creates the required
file to build and distribute the container in the CentOS Container
Registry [1].

[1] - https://registry.centos.org

TG-2858

Change-Id: I960ead055dd220613f27c433ea8064101b26c741
Latest commit 3c154bd Sep 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib
dlrn
doc Add support for rebuilds on el8 Jul 29, 2019
playbooks Automatic replacement of label dib-centos-7 by cloud-centos-7 Aug 30, 2019
scripts Merge "Ensure the git repo is always reset in build_srpm.sh" Aug 30, 2019
.coveragerc Rename delorean to dlrn in the DLRN codebase Mar 31, 2016
.gitignore Rename delorean to dlrn in the DLRN codebase Mar 31, 2016
.gitreview Change .gitreview to use softwarefactory-project.io Apr 27, 2017
.mailmap Initial commit May 20, 2014
.testr.conf Initial commit May 20, 2014
.zuul.yaml Automatic replacement of label dib-centos-7 by cloud-centos-7 Aug 30, 2019
CONTRIBUTING.rst Fix code block rendering in CONTRIBUTING.rst Jul 4, 2017
HACKING.rst Adding some basic documentation Jan 21, 2015
LICENSE Initial commit May 20, 2014
MANIFEST.in Initial commit May 20, 2014
README.rst Fix README typo Aug 5, 2017
alembic.ini Add Alembic support Jul 1, 2016
babel.cfg Initial commit May 20, 2014
bindep.txt Add support for bindep.txt Jun 29, 2018
projects.ini Add option to force-recheck a successfully built commit May 24, 2019
requirements.txt remove duplicated requiements of distroinfo May 6, 2019
setup.cfg User management command-line tool Apr 10, 2018
setup.py First commit to start working on test coverage Feb 4, 2015
test-requirements.txt oslosphinx not oslo.sphinx Jul 1, 2016
tox.ini

README.rst

DLRN

DLRN builds and maintains yum repositories following OpenStack upstream commit streams. (DLRN is not an acronym or an abbreviation, and it can be pronounced "dee el arr en".)

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 yum-utils

Add the user you intend to run as to the mock group and login again.

$ git clone https://github.com/softwarefactory-project/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.

You can’t perform that action at this time.