It may not be strictly necessary to constrain Cython since it's only
used for setup_requires and not actually installed in the final
virtualenv, but it seemed a bit safer to do so.
This makes two significant changes to base selection:
* `build-base` now wins in all cases, even if the snap does not have
`base: bare`;
* if `build-base` is not set and the snap has `type: base`, then the
snap's `name` is used as the base.
If neither of those apply, then the value of `base` is used, as before.
`base: bare` without `build-base` is now an error, while previously the
default base would have been used. However, this combination is
forbidden by snapcraft at the schema-validation change, so this change
shouldn't matter in practice.
`dict.iterkeys()` can just be replaced with `dict` if the result is
being iterated over, since `iter(dict)` iterates over its keys.
Otherwise, `dict.iter{keys,values,items}()` becomes
`six.iter{keys,values,items}(dict)`.
Adding the possibility to inject into lp-signing the locally generated signing keys.
It is possible to control which key types to inject when auto-generating them by setting the feature flag `archivepublisher.signing_service.injection.enabled` with a list of key types (separated by spaces). Eg.: "KMOD UEFI".