rdopkg-adv-building man page

rdopkg-adv-building — rdopkg adventures: building and submitting updates

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:

https://copr.fedoraproject.org/api/

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:

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:

and if all is good:

Done and done.

Epilogue

See available options

$ rdopkg coprbuild -h
$ rdopkg kojibuild -h
$ rdopkg update -h

and rdopkg(1) manual for more information.

Referenced By

rdopkg(1).

09/06/2017