diff options
Diffstat (limited to 'makerpm.sh')
-rw-r--r-- | makerpm.sh | 133 |
1 files changed, 72 insertions, 61 deletions
@@ -2,84 +2,94 @@ # Simple script to create RPMs for G4S +## RPM NAME +RPMNAME=glusterfs-openstack-swift + cleanup() { - rm -rf ${RPMBUILDDIR} > /dev/null 2>&1 - rm -f ${PKGCONFIG} > /dev/null 2>&1 + rm -rf ${RPMBUILDDIR} > /dev/null 2>&1 + rm -f ${PKGCONFIG} > /dev/null 2>&1 } fail() { - cleanup - echo $1 - exit $2 + cleanup + echo $1 + exit $2 } create_dir() { - if [ ! -d "$1" ] ; then - mkdir -p "$1" - if [ $? -ne 0 ] ; then - fail "Unable to create dir $1" $? - fi - fi + if [ ! -d "$1" ] ; then + mkdir -p "$1" + if [ $? -ne 0 ] ; then + fail "Unable to create dir $1" $? + fi + fi } gittotar() { - # Only archives committed changes - gitarchive_dir="${RPMBUILDDIR}/gitarchive" - specfile="${gitarchive_dir}/${SRCTAR_DIR}/${PKG_NAME}.spec" - create_dir "${gitarchive_dir}" - - # Export the current commited git changes to a directory - git archive --format=tar --prefix=${SRCTAR_DIR}/ HEAD | (cd ${gitarchive_dir} && tar xf -) - - # Create a new spec file with the current package version information - sed -e "s#__PKG_RELEASE__#${PKG_RELEASE}#" \ - -e "s#__PKG_NAME__#${PKG_NAME}#" \ - -e "s#__PKG_VERSION__#${PKG_VERSION}#" \ - ${specfile} > ${specfile}.new - mv ${specfile}.new ${specfile} - - # Now create a tar file - ( cd ${gitarchive_dir} && tar cf - ${SRCTAR_DIR} | gzip -c > ${SRCTAR} ) - if [ $? -ne 0 -o \! -s ${SRCTAR} ] ; then - fail "Unable to create git archive" $? - fi + # Only archives committed changes + gitarchive_dir="${RPMBUILDDIR}/gitarchive" + specfile="${gitarchive_dir}/${SRCTAR_DIR}/${RPMNAME}.spec" + create_dir "${gitarchive_dir}" + + # Export the current commited git changes to a directory + git archive --format=tar --prefix=${SRCTAR_DIR}/ HEAD | (cd ${gitarchive_dir} && tar xf -) + # Create a new spec file with the current package version information + sed -e "s#__PKG_RELEASE__#${PKG_RELEASE}#" \ + -e "s#__PKG_NAME__#${RPMNAME}#" \ + -e "s#__PKG_VERSION__#${PKG_VERSION}#" \ + ${specfile} > ${specfile}.new + mv ${specfile}.new ${specfile} + + # Now create a tar file + ( cd ${gitarchive_dir} && tar cf - ${SRCTAR_DIR} | gzip -c > ${SRCTAR} ) + if [ $? -ne 0 -o \! -s ${SRCTAR} ] ; then + fail "Unable to create git archive" $? + fi } prep() { - rm -rf ${RPMBUILDDIR} > /dev/null 2>&1 - create_dir ${RPMBUILDDIR} + rm -rf ${RPMBUILDDIR} > /dev/null 2>&1 + create_dir ${RPMBUILDDIR} - # Create a tar file out of the current committed changes - gittotar + # Create a tar file out of the current committed changes + gittotar } create_rpm() { - # Create the rpm - # _topdir Notifies rpmbuild the location of the root directory - # containing the RPM information - # _release Allows Jenkins to setup the version using the - # build number - rpmbuild --define "_topdir ${RPMBUILDDIR}" \ - -ta ${SRCTAR} - if [ $? -ne 0 ] ; then - fail "Unable to create rpm" $? - fi - - # Move the rpms to the root directory - mv ${RPMBUILDDIR_RPMS}/noarch/*rpm ${BUILDDIR} - mv ${RPMBUILDDIR_SRPMS}/*rpm ${BUILDDIR} - if [ $? -ne 0 ] ; then - fail "Unable to move rpm to ${BUILDDIR}" $? - fi - - echo "RPMS are now available in ${BUILDDIR}" + # Create the rpm + # _topdir Notifies rpmbuild the location of the root directory + # containing the RPM information + # _release Allows Jenkins to setup the version using the + # build number + rpmbuild --define "_topdir ${RPMBUILDDIR}" \ + -ta ${SRCTAR} + if [ $? -ne 0 ] ; then + fail "Unable to create rpm" $? + fi + + # Move the rpms to the root directory + mv ${RPMBUILDDIR_RPMS}/noarch/*rpm ${BUILDDIR} + mv ${RPMBUILDDIR_SRPMS}/*rpm ${BUILDDIR} + if [ $? -ne 0 ] ; then + fail "Unable to move rpm to ${BUILDDIR}" $? + fi + + echo "RPMS are now available in ${BUILDDIR}" +} + +create_src() +{ + python setup.py sdist --format=gztar --dist-dir=${BUILDDIR} + if [ $? -ne 0 ] ; then + fail "Unable to create source archive" + fi } ################## MAIN ##################### @@ -88,19 +98,19 @@ create_rpm() PKGCONFIG=${PWD}/pkgconfig.in env python pkgconfig.py if [ ! -f "${PKGCONFIG}" ] ; then - fail "Unable to create package information file ${PKGCONFIG}" 1 + fail "Unable to create package information file ${PKGCONFIG}" 1 fi # Get package version information . ${PKGCONFIG} if [ -z "${NAME}" ] ; then - fail "Unable to read the package name from the file created by pkgconfig.py" 1 + fail "Unable to read the package name from the file created by pkgconfig.py" 1 fi if [ -z "${VERSION}" ] ; then - fail "Unable to read the package version from the file created by pkgconfig.py" 1 + fail "Unable to read the package version from the file created by pkgconfig.py" 1 fi if [ -z "${RELEASE}" ] ; then - fail "Unable to read the package version from the file created by pkgconfig.py" 1 + fail "Unable to read the package version from the file created by pkgconfig.py" 1 fi PKG_NAME=$NAME @@ -113,19 +123,20 @@ PKG_VERSION=$VERSION # a default value # if [ -z "$PKG_RELEASE" ] ; then - PKG_RELEASE="${RELEASE}" + PKG_RELEASE="${RELEASE}" else - PKG_RELEASE="${RELEASE}.${PKG_RELEASE}" + PKG_RELEASE="${RELEASE}.${PKG_RELEASE}" fi BUILDDIR=$PWD/build RPMBUILDDIR=${BUILDDIR}/rpmbuild RPMBUILDDIR_RPMS=${RPMBUILDDIR}/RPMS RPMBUILDDIR_SRPMS=${RPMBUILDDIR}/SRPMS -SRCNAME=${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE} +SRCNAME=${RPMNAME}-${PKG_VERSION}-${PKG_RELEASE} SRCTAR_DIR=${PKG_NAME}-${PKG_VERSION} SRCTAR=${RPMBUILDDIR}/${SRCNAME}.tar.gz prep +create_src create_rpm cleanup |