Definite's Extractor

My findings on Life, Linux, Open Source, and so on.

cmake-fedora

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:
    • ChangeLog
    • Source tarball generation
    • RPM
    • 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
    • CMakeLists.txt
    • MAINTAINER_SETTING_NO_PACK
    • RELEASE-NOTES.txt
    • SPECS/project.spec.in
    • COPYING (and COPYING.LESSER for LGPL)
  • Helper macros and targets to:
    • Build
    • Pack source tarball
    • Build rpm, srpm
    • rpmlint
    • Submit to fedpkg, koji, and bodhi
    • Clean older builds
    • uninstall

Project’s home page is at here.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: