SYNOPSIS
This is a story about using rdopkg kojibuild
and rdopkg coprbuild
to build
new RDO packages in koji and copr and submitting them to RDO using rdopkg
update
.
PROLOGUE
Fedora builds are built in koji
while EPEL builds are built in
copr
.
Run rdopkg info
to get information about active releases and associated
build systems/branches.
First, need to request build permissions in each copr. For Icehouse, following coprs are used (you need to sign in with your FAS):
Poke an admin (jruzicka, apevec) to grant your requests.
Then, you need to save your API token to ~/config/copr
as described here:
Due to copr
limitation, you also need to be able to scp
to
fedorapeople.org
in order to upload SRPMs.
CHAPTER 1
Assume I want to build all RDO Icehouse builds after I modified f21
dist-git branch (possibly by rdopkg new-version 2.0.3
).
First, let’s see what rdopkg
thinks about f21
branch:
$ git checkout f21 $ rdopkg pkgenv
Package: python-swiftclient Version: 2.0.3 OS dist: RDO
Dist-git branch: f21 Local patches branch: stable/icehouse Remote patches branch: patches/stable/icehouse
RDO release guess: icehouse
It detected icehouse release properly, we should be good to go.
CHAPTER 2
build fedora package in koji
After I’m happy with my changes, I push the disgit and start the koji build.
$ fedpkg push $ rdopkg kojibuild
This does fedpkg build
and creates new update file up.yml
:
$ cat up.yml --- notes: FILLME builds: - id: python-swiftclient-2.0.3-1.fc21 source: koji repo: icehouse dist: fedora-20
Note it’s fc21 build for fedora-20
. rdopkg info
confirms this:
fedora-20
built in koji/f21
from f21
branch
CHAPTER 3
build epel-6 and epel-7 packages in copr
Let’s build epel-6 first:
$ rdopkg coprbuild -d epel-6
This will:
-
create el6 source RPM from current dist-git
-
upload the source RPM to your
fedorapeople.org:~/public_html/copr
(specify Fedora user with-u/--fuser
) -
submit the source RPM to build in
jruzicka / rdo-$RELEASE-$DIST
copr -
watch the build
-
print
rdopkg update
entry for build and append it toup.yml
Let’s see the update file now:
$ cat up.yml --- notes: FILLME builds: - id: python-swiftclient-2.0.3-1.fc21 source: koji repo: icehouse dist: fedora-20 - id: python-swiftclient-2.0.3-1.el6 source: copr-jruzicka repo: icehouse dist: epel-6
OK. Now I need to build epel-7
from the very same f21
branch.
$ rdopkg coprbuild -d epel-7
Let’s see the update file again:
$ cat up.yml --- notes: FILLME builds: - id: python-swiftclient-2.0.3-1.fc21 source: koji repo: icehouse dist: fedora-20 - id: python-swiftclient-2.0.3-1.el6 source: copr-jruzicka repo: icehouse dist: epel-6 - id: python-swiftclient-2.0.3-1.el7 source: copr-jruzicka repo: icehouse dist: epel-7
CHAPTER 4
submit builds using rdopkg update
$ rdopkg update
This will pick up up.yml
and:
-
force me to provide an actual update description in
notes
field -
validate the update using
rdoinfo
-
check for builds availability
and if all is good:
-
submit the update to
rdo-update
repo -
delete local
up.yml
so that nextkojibuild
/coprbuild
starts with freshup.yml
Done and done.
EPILOGUE
See available options
$ rdopkg coprbuild -h $ rdopkg kojibuild -h $ rdopkg update -h
and rdopkg(1) manual for more information.