When a build completes, we store the original, unsigned rpm headers
to disk. This results in the postRPMSign callback being called, and
a rpm.sign message being sent with an empty sigkey. The intended
sematics of the rpm.sign message is to notify a service when an rpm
has been signed. Therefore, we should not be sending a message when
the sigkey is empty.
Fixes: https://pagure.io/koji/issue/527
Before path sections were expected to have zero-based numbering. If some
item was missing, parsing ended there.
Now we are more benevolent and we pick all path\d+ sections and sort
them by ordering number.
With --new-chroot, /tmp is set up as a tmpfs mount, which does not persist,
so using /builddir instead.
Related: #482 (but not a fix)
https://pagure.io/koji/issue/482
This plugin sends messages to a broker about events in the hub
using the proton library. This library supports the AMQP 1.0
protocol and is compatible with a wide variety of message
brokers. It queues all messages until the postCommit callback,
avoiding race conditions between message reception and database
transaction commit.
This is a different take at https://pagure.io/koji/pull-request/45
Instead of installing just the runroot builder plugin explicitly, here we
separate the plugins out into hub and builder plugins explicitly and install
each type in turn.
Although this is often a surprising behaviour, the Python documentation
is quite clear on this:
If a component is an absolute path, all previous components are
thrown away and joining continues from the absolute path component.
https://docs.python.org/2/library/os.path.html#os.path.join
That means we need to ensure that we don't end up in this case.