Changes in version 0.102:
- If a worker thread within sign-rpms terminates, make sure that threads
  producing work for the terminated thread do not block indefinitely.
- Similarly, if a processing of sign-replies within the bridge fails, terminate
  processing of incoming requests.
- Include thread name when logging worker thread-specific exceptions, and only
  log them once.

Changes in version 0.101:
- If a worker thread within sign-rpms terminates with an exception, log it
  immediately instead of logging it only after all preceding threads in the
  processing chain terminate (which may never happen).
- In sign-rpms, split the Koji-interacting thread on the bridge into a separate
  thread for getting information about incoming RPMs and a separate thread for
  storing signatures into Koji, to fix a deadlock (when processing replies
  in the bridge depends on being able to send more requests to the server, while
  the server needs replies to be processed in order to accept more requests).
- Fail a signing operation if a signature cannot be recorded in Koji as requested
  instead of just logging a warning.

Changes in version 0.100:
- The bridge authenticates users to Koji based on the CN of their certificate,
  not based on the user name defined on the server.
- Use 'topurl' instead of 'pkgurl' from Koji configuration, following the change
  in Koji 1.7.
- Add support for restricting access to individual Koji instances to specific
  FAS groups.
- Changes to connection termination: end request processing even if something
  (a firewall) swallows FIN packets.
- Reject the nonsensical combination of (sigul sign-rpm{,s} --koji-only -o ...),
  and reject signing of empty RPM files.
- Log RPM output on signing failure.
- Make sure to always close sockets in the bridge.
- Miscellaneous cleanups.

Changes in version 0.99:
- Support for multiple koji instances in the client and bridge: new client
  parameter --koji-instance, client and bridge option koji-instances.

Changes in version 0.98:
- Now uses sqlalchemy 0.5 (e.g. RHEL6)
- New operation 'sign-rpms', up to 50% faster.
  New bridge and server options max-rpms-payload-size.
- Server option gnupg-key-usage has changed default to "sign" (removing
  "encrypt"), to work with DSA keys.  sigul does not provide decryption, so
  signing is all that is necessary anyway.
- New client parameter --user-name
- New brige option koji-config, patch by Dan Horák.
- New server option signing-timeout
- New sigul_server_add_admin parameters --batch , --name
- In sigul_setup_client, no longer ask for a known password, recognize attempts
  to overwrite an existing certificate.
- Fixed closing of sockets, in particular to avoid random "connection reset"
  errors
- Other minor bug fixes
- Added a basic test suite (not testing FAS/koji integration)
- Work with post-RHEL5 URLGrabber

Changes in version 0.97:
- Proxy authenticate clients in the bridge.
- Log the client's identity in the server as well.
- Don't cache RPM information between signing requests.
- Fix signing of source RPMs.
- Fix signing of RPMs with non-null epoch.
- Various minor bug fixes.

Changes in version 0.96:
- Add support storing for RSA and PGPv4 signatures into Koji.
- Fix pid file removal in the bridge.
- Fix waiting on clients in the bridge when forwarding the inner stream.
- Make sure a RPM is written to a file before attempting to parse the file.
- Various error handling bug fixes and enhancements.

Changes in version 0.95:
- Fix authentication failures on connections with some mixed Python versions.
- Allow running with modified python-nss-0.1 in addition to unmodified 0.4.

Changes in version 0.94:
- Update to run with python-nss 0.4 (local modifications are no longer required,
  won't work with older versions of python-nss).

Changes in version 0.93:
- New command "sigul import-key".
- Fixed FAS authentication support with new python-fedora.

Changes in version 0.92:
- Added --v3-signature to "sigul sign-rpm", rpm doesn't recognize v4 RSA
  signatures.
- SIGTERM no longer causes a backtrace.

Changes in version 0.91:
- Modified sigul to run on RHEL5.
- Enhanced handling of unexpected EOF in the client.
- Modified README not to recommend copying the CA private key around.
