cmake-fedora consists a set of scripts and cmake modules that simply the release process of a *nix software package, especially for Fedora and EPEL.
cmake-fedora is designed to relieve your from chores of releasing software by keeping the consistency of release information such as version and update messages in: * Release notes * ChangeLog * Tags * Spec file * Fedpkg commit message * Bodhi notes
cmake-fedora also: Check dependency among source archive and files to be packed. Run rpmlint and koji scratch build before tag as sanity checks. Easy upload to scp, sftp hosting services sites. Translation targets like gettext and Zanata. Create new project with proper CMakeLists.txt template and license files. Avoid some pitfalls like all junk files are packed.
git clone https://pagure.io/cmake-fedora.git
Source archive download page: https://releases.pagure.org/cmake-fedora
You can download the modules-only archive: cmake-fedora-<version>-modules-only.tar.gz
or the full archive that also include helper scripts and documentation: cmake-fedora-<version>.tar.gz
cmake-fedora can be installed as a Fedora/EPEL package using:
yum -y install cmake-fedora }}} Alternatively, you can install cmake-fedora for the package as: * Git submodule: ```sh git submodule init; git submodule update ln -s cmake-fedora/Modules .
wget -P SOURCES https://releases.pagure.org/cmake-fedora/cmake-fedora-modules-only-latest.tar.gz
tar zxvf SOURCES/cmake-fedora-modules-only-latest.tar.gz")
cmake build instruction file. Edit it as you normally do with CMake projects. It should contains note that project persistent information like project name, authors, licenses and project summary.
cmake-fedora-newprj
can create CMakeLists.txt if it does not already exists, and helps to configure the basic
document like AUTHORS and COPYING.
This is file you put the version, change summary, !ChangeLog, Bugzilla Bug ID or anything about the upcoming versions/releases.
It looks like:
PRJ_VER=0.1.0 SUMMARY=Summary of this version REDHAT_BUGZILLA=XXXXXXXX,YYYYYYY [Changes] - Fixed Bug XXXXXXX - bug description - Fixed Bug YYYYYYY - bug description - other improvement
Following are recommend steps to use gettext to translate your project:
SET(SOURCES_I18N ${CMAKE_SOURCE_DIR}/src/IBusChewingEngine.gob ${CMAKE_SOURCE_DIR}/src/IBusChewingEngine-input-events.c ${CMAKE_SOURCE_DIR}/src/IBusChewingEngine-def.c ${CMAKE_SOURCE_DIR}/src/main.c)
MANAGE_GETTEXT(ALL SRCS ${SOURCES_I18N})
MANAGE_ZANATA("https://translate.zanata.org/zanata/" YES VERSION "master" GENERATE_ZANATA_XML )
ADD_DEPENDENCIES(pack_src_pre translations)
``
3.
make pot_filesto generate .pot files
4. (Optional)
make zanata_xmlfor Zanata setting files.
5. (Optional)
make zanata_pushto push the documents to Zanata for translation.
6. Receive .po files from either translators. Or use
make zanata_pull7.
make translations`
After commit the last change, just run make release
make release should:
When a release is ready, only need to update the RELEASE_NOTES.txt
by fill in:
No need to edit CMakeLists.txt again.
Start from Step 2 in previous section.
pot_files
: Generate pot files for translation.gmo_files
: Generate gmo files for translation.pack_src
: Create a source archivesrpm:
: Create a source RPMrpm
: Create a source RPM and binary rpmsrpmlint
: Run rpmlint for all RPM filesinstall_rpms
: Install all the binary rpms except the debuginfokoji_build_scratch
Run the koji scratch build for all targeted Fedora/EPEL release.upload
: Upload files to hosting servicestag
: Tag the current source tree with the version specified in RELEASE_NOTES.txtfedpkg_build
: Run the fedpkg build for the specified Fedora/EPEL releases.release_fedora
: Release for Fedora and/or EPELrelease
: Run the release process. release_fedora will be invoked if Fedora build support is enabled.clean_pkg
: Remove all the source archive and RPM files.Please submit issues
GUI
RPM
Hosting support