The howtos were confusing and the Infrastructure repo SOP has more comprehensive informations. Signed-off-by: Michal Konecny <mkonecny@redhat.com>
118 lines
3.7 KiB
Text
118 lines
3.7 KiB
Text
= Infrastructure DNF Repo SOP
|
|
|
|
In some cases RPM's in Fedora need to be rebuilt for the Infrastructure
|
|
team to suit our needs. This repo is provided to the public (except for
|
|
the RHEL RPMs). Rebuilds go into this repo which are stored on the
|
|
netapp and shared via the proxy servers after being built on koji.
|
|
|
|
For basic instructions, read the standard documentation on Fedora wiki:
|
|
|
|
- https://fedoraproject.org/wiki/Using_the_Koji_build_system
|
|
|
|
This document will only outline the differences between the "normal"
|
|
repos and the infra repos.
|
|
|
|
== Contents
|
|
|
|
* <<_contact_information>>
|
|
* <<_building_an_rpm>>
|
|
* <<_tagging_an_existing_build>>
|
|
* <<_promoting_a_staging_build>>
|
|
* <<_koji_package_list>>
|
|
|
|
== Contact Information
|
|
|
|
Owner::
|
|
Fedora Infrastructure Team
|
|
Contact::
|
|
#fedora-admin
|
|
Location::
|
|
https://kojipkgs.fedoraproject.org/repos-dist/
|
|
Servers::
|
|
koji batcave01 / Proxy Servers
|
|
Purpose::
|
|
Provides infrastructure repo for custom Fedora Infrastructure rebuilds
|
|
|
|
== Building an RPM
|
|
|
|
Building an RPM for Infrastructure is significantly easier then building
|
|
an RPM for Fedora. Basically get your SRPM ready, then submit it to koji
|
|
for building to the `$repo-infra` target. (e.g. `epel7-infra`).
|
|
|
|
Example:
|
|
|
|
....
|
|
rpmbuild --define "dist .el7.infra" -bs test.spec
|
|
# Alternatively you can run fedpkg --release epel9 --define "dist .el7.infra"
|
|
koji build epel7-infra test-1.0-1.el7.infra.src.rpm
|
|
....
|
|
|
|
[NOTE]
|
|
====
|
|
Remember to build it for every dist / arch you need to deploy it on.
|
|
====
|
|
|
|
After it has been built, you will see it's tagged as
|
|
`$repo-infra-candidate`, this means that it is a candidate for being
|
|
signed. The automatic signing system will pick it up and sign the
|
|
package for you without any further intervention. You can track when
|
|
this is done by checking the build info: when it is moved from
|
|
`$repo-infra-candidate` to `$repo-infra-stg`, it has been signed. You can
|
|
check this on the web interface (look under "Tags"), or via:
|
|
|
|
....
|
|
koji buildinfo test-1.0-1.el7.infra
|
|
....
|
|
|
|
After the build has been tagged into the `$repo-infra-stg` tag,
|
|
`tag2distrepo` will automatically create a distrepo task, which will
|
|
update the repository so that the package is available on staging hosts.
|
|
After this time, you can yum clean all and then install the packages via
|
|
yum install or yum update.
|
|
|
|
== Tagging an existing build
|
|
|
|
If you already have a real build and want to use it in the
|
|
infrastructure before it has landed in stable, you can tag it into the
|
|
respective `infra-candidate` tag. For example, if you have an _epel7_ build
|
|
of _test2-1.0-1.el7.infra_, run:
|
|
|
|
....
|
|
koji tag epel7-infra-candidate test2-1.0-1.el7.infra
|
|
....
|
|
|
|
And then the same autosigning and repogen from the previous section
|
|
applies.
|
|
|
|
== Promoting a staging build
|
|
|
|
After getting autosigned, builds will land in the respective infra-stg
|
|
tag, for example `epel7-infra-stg`. These tags go into repos that are
|
|
enabled on staging machines, but not on production. If you decide, after
|
|
testing, that the build is good enough for production, you can promote
|
|
it by running:
|
|
|
|
....
|
|
koji move epel7-infra-stg epel7-infra test2-1.0-1.el7.infra
|
|
....
|
|
|
|
== Koji package list
|
|
|
|
If you try to build a package into the infra tags, and koji says
|
|
something like: `BuildError: package test not in list for tag
|
|
f40-infra-candidate`. That means that the package has not been added to
|
|
the list for building in the `f40-infra` tag. Either add the package to
|
|
the respective Fedora/EPEL branches (this is the preferred method, since
|
|
we should always aim to get everything packaged for Fedora/EPEL), or add
|
|
the package to the listing for the respective tag.
|
|
|
|
To add package to infra tag, run:
|
|
|
|
....
|
|
koji add-pkg $tag $package --owner=$user
|
|
....
|
|
|
|
for example:
|
|
....
|
|
koji add-pkg f40-infra mediawiki-theme-fedora --owner=ryanlerch
|
|
....
|