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.
Metadata
Release files for DLRN 0.26.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| DLRN-0.26.1.tar.gz | 577.0 kB | Without provenance | Details for DLRN-0.26.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| DLRN-0.26.1-py3-none-any.whl | Python 3 | none | any | Details for DLRN-0.26.1-py3-none-any.whl |
Total release size: 783.5 kB
Release files / DLRN-0.26.1.tar.gz
| Download URL | DLRN-0.26.1.tar.gz |
|---|---|
| Size | 577.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad94af5f69b2c2d267399b54b7cbd117c9a7cc512fab53137985802ed8021b7f
|
|
BLAKE2b-256 checksum How to use checksums |
9f93a38ffe3482e2ea5a73943b3e6fa13ccec1a718c5040d29b750eb070e0e24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.2
|
Release files / DLRN-0.26.1-py3-none-any.whl
| Download URL | DLRN-0.26.1-py3-none-any.whl |
|---|---|
| Size | 206.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e6aa5192325044521163308b6c94f30f5682b74554ccbb7cbb6b2cfa83d1851
|
|
BLAKE2b-256 checksum How to use checksums |
2c714578ec1ba688a0ea705a78f93f29455fb126aa1f390f068d5af8537ab4a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.2
|
Security for DLRN 0.26.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.