https://cryptography.io/en/latest/
The example assumes
3.4
RHBZ#00000001
and RHBZ#00000002
f34-build-side-12345
python-cryptography builds depend on python-cryptography-vectors package. Both packages must be build in a side tag.
fedpkg request-side-tag --base-tag f34-build
pushd ../python-cryptography-vectors
Switch and update branch
fedpkg switch-branch rawhide
fedpkg pull
Bump version and get sources
rpmdev-bumpspec -c "Update to 3.4 (#00000001)" -n 3.4 python-cryptography-vectors.spec
spectool -gf python-cryptography-vectors.spec
Upload sources
fedpkg new-sources cryptography_vectors-3.4.tar.gz
Commit changes
fedpkg commit --clog
fedpkg push
Build and wait for repo to regenerate
fedpkg build --target=f34-build-side-12345
koji wait-repo --build python-cryptography-vectors-3.4-1 f34-build-side-12345
Switch and update branch
fedpkg switch-branch rawhide
fedpkg pull
Bump version and get sources
rpmdev-bumpspec -c "Update to 3.4 (#00000002)" -n 3.4 python-cryptography.spec
spectool -gf python-cryptography.spec
Upload new sources (two files!)
fedpkg new-sources cryptography-3.4.tar.gz cryptography-3.4.tar.gz.asc
Commit changes
fedpkg commit --clog
fedpkg push
Build
fedpkg build --target=f34-build-side-12345
RHEL and CentOS use a different approach for Rust crates packaging than
Fedora. On Fedora Rust dependencies are packaged as RPMs, e.g.
rust-pyo3+default-devel
RPM. These packages don't exist on RHEL and
CentOS. Instead python-cryptography uses a tar ball with vendored crates.
The tar ball is created by a script:
./vendor_rust.py
rhpkg upload cryptography-3.4-vendor.tar.bz2