| # Koji and Bodhi operation for Fedora developers. |
| # |
| # To use: INCLUDE(FedoraDeveloper), and DEVELOPER_SETTING file exists |
| # Include: RPM |
| # |
| #=================================================================== |
| # Variables: |
| # KOJI_DEPENDS: Files that koji build targets depend on. |
| # KOJI_CVS_PATH: The path for KOJI build. |
| # Default: ./ |
| # |
| # RPM_RELEASE_SUMMARY: Summary of latest change, used in CVS message and Bodhi |
| # comment. |
| # |
| # CVS_DIST_TAGS: Distribution tags such as F-10, EL-5 to be committed to CVS |
| # for koji or plague build. By default, devel is always built, |
| # so no need to explicitly declare it. |
| # Default: built devel. |
| # |
| # BODHI_DEPENDS: Files that bodhi targets depends on. |
| # BODHI_DIST_TAGS: Distribution tags such as fc9, fc10 to be committed to |
| # Bodhi. |
| # Default: Derived from CVS_DIST_TAGS. |
| # |
| #=================================================================== |
| # Targets: |
| # koji_build_scratch: koji scratch build. |
| # koji_submit: Submit to koji |
| # koji_build: Start koji build |
| # bodhi_new: Submit to bodhi |
| # |
| |
| INCLUDE(RPM) |
| SET(RAWHIDE_VER 13) |
| |
| IF(NOT DEFINED KOJI_CVS_PATH) |
| SET(KOJI_CVS_PATH "./") |
| ELSEIF (KOJI_CVS_PATH STREQUAL "") |
| SET(KOJI_CVS_PATH "./") |
| ENDIF(NOT DEFINED KOJI_CVS_PATH) |
| |
| #==================================================================== |
| # Koji (Fedora build system) |
| # |
| |
| # Koji submit |
| SET (KOJI_SUBMISSION_CMD "") |
| IF (DEFINED RPM_RELEASE_SUMMARY) |
| SET (KOJI_SUBMISSION_CMD |
| "${KOJI_CVS_PATH}/${PROJECT_NAME}/common/cvs-import.sh -m \"${RPM_RELEASE_SUMMARY}\" ${SRPM_FILE}" |
| ) |
| |
| FOREACH(_dist_tag ${CVS_DIST_TAGS}) |
| SET (KOJI_SUBMISSION_CMD |
| "${KOJI_SUBMISSION_CMD}\;" |
| "${KOJI_CVS_PATH}/${PROJECT_NAME}/common/cvs-import.sh -b ${_dist_tag} -m \"${RPM_RELEASE_SUMMARY}\" ${SRPM_FILE}" |
| ) |
| ENDFOREACH(_dist_tag) |
| ELSE(DEFINED RPM_RELEASE_SUMMARY) |
| SET (KOJI_SUBMISSION_CMD |
| "${KOJI_CVS_PATH}/${PROJECT_NAME}/common/cvs-import.sh ${SRPM_FILE}" |
| ) |
| FOREACH(_dist_tag ${CVS_DIST_TAGS}) |
| SET (KOJI_SUBMISSION_CMD |
| "${KOJI_SUBMISSION_CMD}\;" |
| "${KOJI_CVS_PATH}/${PROJECT_NAME}/common/cvs-import.sh -b ${_dist_tag} ${SRPM_FILE}" |
| ) |
| ENDFOREACH(_dist_tag) |
| ENDIF(DEFINED RPM_RELEASE_SUMMARY) |
| |
| SET (KOJI_BUILD_CMD |
| "cd ${KOJI_CVS_PATH}/${PROJECT_NAME} && cvs up && cd devel && make build && cd .." |
| ) |
| |
| SET (KOJI_SCRATCH_BUILD_CMD |
| "koji build --scratch dist-f${RAWHIDE_VER} ${SRPM_FILE}" |
| ) |
| |
| |
| FOREACH(_dist_tag ${CVS_DIST_TAGS}) |
| SET (KOJI_BUILD_CMD |
| "${KOJI_BUILD_CMD} && cd ${_dist_tag} && make build && cd .." |
| ) |
| STRING(REGEX MATCH "F-([0-9]*)" |
| _is_fedora_tag ${_dist_tag}) |
| STRING(REGEX MATCH "EL-([0-9]*)" |
| _is_epel_tag ${_dist_tag}) |
| IF (_is_fedora_tag) |
| STRING(REGEX REPLACE "F-([0-9]*)" "\\1" |
| _curr_tag ${_dist_tag}) |
| SET (KOJI_SCRATCH_BUILD_CMD |
| "${KOJI_SCRATCH_BUILD_CMD} && koji build --scratch dist-f${_curr_tag} ${SRPM_FILE}" |
| ) |
| IF(NOT DEFINED BODHI_DIST_TAGS) |
| SET(_bodhi_dist_tags ${_bodhi_dist_tags} "fc${_curr_tag}") |
| ENDIF(NOT DEFINED BODHI_DIST_TAGS) |
| ELSEIF (_is_epel_tag) |
| STRING(REGEX REPLACE "EL-([0-9]*)" "\\1" |
| _curr_tag ${_dist_tag}) |
| SET (KOJI_SCRATCH_BUILD_CMD |
| "${KOJI_SCRATCH_BUILD_CMD} && koji build --scratch dist-${_curr_tag}E-epel-testing-candidate ${SRPM_FILE}" |
| ) |
| IF(NOT DEFINED BODHI_DIST_TAGS) |
| SET(_bodhi_dist_tags ${_bodhi_dist_tags} "el${_curr_tag}") |
| ENDIF(NOT DEFINED BODHI_DIST_TAGS) |
| ENDIF(_is_fedora_tag) |
| ENDFOREACH(_dist_tag) |
| |
| #MESSAGE(KOJI_SCRATCH_BUILD_CMD=${KOJI_SCRATCH_BUILD_CMD}) |
| ADD_CUSTOM_TARGET(koji_scratch_build |
| COMMAND eval ${KOJI_SCRATCH_BUILD_CMD} |
| DEPENDS ${KOJI_DEPENDS} ${SRPM_FILE} ${KOJI_CVS_PATH} |
| COMMENT "Start Koji scratch build" |
| VERBATIM |
| ) |
| |
| #MESSAGE(KOJI_SUBMISSION_CMD=${KOJI_SUBMISSION_CMD}) |
| ADD_CUSTOM_TARGET(koji_submit |
| COMMAND eval ${KOJI_SUBMISSION_CMD} |
| COMMAND cd ${KOJI_CVS_PATH}/${PROJECT_NAME} && cvs up |
| DEPENDS ${KOJI_DEPENDS} ${SRPM_FILE} ${KOJI_CVS_PATH} |
| COMMENT "Submitting to Koji" |
| VERBATIM |
| ) |
| |
| #MESSAGE("KOJI_BUILD_CMD=${KOJI_BUILD_CMD}") |
| ADD_CUSTOM_TARGET(koji_build |
| COMMAND eval "${KOJI_BUILD_CMD}" |
| COMMENT "Building on Koji" |
| VERBATIM |
| ) |
| |
| #==================================================================== |
| # Bodhi (Fedora update system) |
| # |
| |
| IF(DEFINED BODHI_DIST_TAGS) |
| SET(${_bodhi_dist_tags} ${BODHI_DIST_TAGS}) |
| ENDIF(DEFINED BODHI_DIST_TAGS) |
| |
| FOREACH(_bodhi_tag ${_bodhi_dist_tags}) |
| IF (DEFINED BODHI_NEW_CMD) |
| SET (BODHI_NEW_CMD "${BODHI_NEW_CMD} && ") |
| ELSE () |
| SET (BODHI_NEW_CMD "") |
| ENDIF () |
| IF(DEFINED RPM_RELEASE_SUMMARY) |
| SET (BODHI_NEW_CMD |
| "${BODHI_NEW_CMD} bodhi --new --type=bugfix --comment=\"${RPM_RELEASE_SUMMARY}\" ${PROJECT_NAME}-${PRJ_VER_FULL}.${_bodhi_tag}" |
| ) |
| ELSE(DEFINED RPM_RELEASE_SUMMARY) |
| SET (BODHI_NEW_CMD |
| "${BODHI_NEW_CMD} bodhi --new --type=bugfix ${PROJECT_NAME}-${PRJ_VER_FULL}.${_bodhi_tag}" |
| ) |
| ENDIF(DEFINED RPM_RELEASE_SUMMARY) |
| ENDFOREACH(_bodhi_tag) |
| |
| #MESSAGE(BODHI_NEW_CMD=${BODHI_NEW_CMD}) |
| IF(DEFINED BODHI_NEW_CMD) |
| ADD_CUSTOM_TARGET(bodhi_new |
| COMMAND eval "${BODHI_NEW_CMD}" |
| DEPENDS ${BODHI_DEPENDS} |
| COMMENT "Send the new package to bodhi" |
| VERBATIM |
| ) |
| ENDIF(DEFINED BODHI_NEW_CMD) |
| |
| ADD_DEPENDENCIES(koji_scratch_build srpm) |
| ADD_DEPENDENCIES(koji_submit srpm) |
| ADD_DEPENDENCIES(koji_build srpm) |
| |