cmake-fedora consists CMake modules and scripts that simplify and automate the release process for software package, especially for Fedora and EPEL.
Even if you are not using CMake on your packages, you can still using following scripts to simplify your package chores. For examples, if you want your packages to be build in koji and submit to bodhi in all active branches like rawhide, f23, f22, f21, simply run
It builds the SRPM on all the active branches, skip the already built ones, then submit them to bodhi.
cmake-fedora 1.0.2 終於生出來了。
- 若是沒有必須的Dependency只會給出[Off] （停用）警告
- 若是不想看到這些警告可以 -DCMAKE_FEDORA_ENABLE_FEDORA_BUILD=0，直接跳過相關模組。
- 要更追求「純淨的話可以把 ManageRPM 和 ManageReleaseFedora 刪除。
cmake-fedora 0.7.0 released!
Well actually there are 0.6.1, 0.7.0 from last announcement, but 0.7.1 has less problem and more complete.
Change from 0.6.0:
- Even simpler release macros
- Add debug level support.
- Show proper error warning messages.
- Show warning on unsatisfied optional dependencies, yet the normal build will still proceed.
- Target “release” is fixed.
- “After release” targets no longer be depended by target “release”, instead, they are depended by “after_release”.
Note for distro other than Fedora and RHEL: you can turn off the missing dependency warning by giving
cmake -DMANAGE_MESSAGE_LEVEL=3 .
This version revises the macro about translation and add Zanata support!
It also fixed the release_on_fedora target.
See the RELEASE-NOTES.txt for detailed change.
cmake-fedora is now released. The main improvements are:
- New target: release: Do all release chores in one go.
- New target: install_rpms: Convenient to install all rpms but SRPM and debuginfo
- Issues related to backslash handling
Hopeily I can keep releasing it bi-monthly. In the meantime, my ibus-chewing and ibus-table-chinese will be mended to use it once cmake-fedora f14 hits stable.
Were you ever bored by the following release chores:
- Verifying the consistence of versioning in program, tarball, git tags, RPMs, ChangeLog, and whatever place that need to know current version?
- Pasting change summaries and details in submission messages, ChangeLog, RPM ChangeLog, bodhi notes, and the hosting website?
- Forget to rpmlint again?
- Having to scratch build, commit, build, and submitting to bodhi in for each dist you intent to support?
- Embarrassed by inconsistency amongst source tarballs and RPMs?
- Need to manually upload source tarball to hosting service providers?
- Manually to copy the COPYING and fill the information in COPYING?
I do, thus the birth of the cmake-fedora, which automates many chores describe above.
CMake is a powerful cross-platform build system, it is considered faster and easier to understand than autotools. However, there are some gotchas for novice packagers.
For example, without setting CPACK_SOURCE_IGNORE_FILES, novices might notice the tarball grow geometrically each time they pack, because the old tarballs are not excluded.
Advance developers also benefit from these convenient macros and targets for project release chores like writing the same release information to ChangeLog, RPM spec file, source control tags, koji build and bodhi submission.
What does cmake-fedora do exactly? (Feature List)
- Edit once in RELEASE-NOTES.txt, applied everywhere, such as:
- Source tarball generation
- koji scratch build
- fedpkg scratch build, commit, build, update
- bodhi submission, the Change is applied as note.
- Uploading to hosting services like FedoraHosted, SourceForge, GitHub, Google Project hosting (the last three is under development)
- A script to generate templates of build files and documents, such as
- COPYING (and COPYING.LESSER for LGPL)
- Helper macros and targets to:
- Pack source tarball
- Build rpm, srpm
- Submit to fedpkg, koji, and bodhi
- Clean older builds
Project’s home page is at here.