summaryrefslogtreecommitdiffstats
path: root/makerpm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'makerpm.sh')
-rw-r--r--makerpm.sh110
1 files changed, 110 insertions, 0 deletions
diff --git a/makerpm.sh b/makerpm.sh
new file mode 100644
index 0000000..6427df6
--- /dev/null
+++ b/makerpm.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+# Simple script to create RPMs for G4S
+
+cleanup()
+{
+ rm -rf ${RPMBUILDDIR} > /dev/null 2>&1
+ rm -f ${PKGCONFIG} > /dev/null 2>&1
+}
+
+fail()
+{
+ 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
+}
+
+gittotar()
+{
+ # Only archives committed changes
+ git archive --format=tar.gz --prefix=${SRCTAR_DIR}/ HEAD --output ${SRCTAR}
+ if [ $? -ne 0 ] ; then
+ fail "Unable to create git archive" $?
+ fi
+}
+
+prep()
+{
+ rm -rf ${RPMBUILDDIR} > /dev/null 2>&1
+ create_dir ${RPMBUILDDIR}
+
+ # 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}" \
+ --define "_release ${PKG_RELEASE}" \
+ --define "_version ${PKG_VERSION}" \
+ --define "_name ${PKG_NAME}" \
+ -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}
+ if [ $? -ne 0 ] ; then
+ fail "Unable to move rpm to ${BUILDDIR}" $?
+ fi
+
+ echo "RPMS are now available in ${BUILDDIR}"
+}
+
+################## MAIN #####################
+
+# Create a config file with the package information
+PKGCONFIG=${PWD}/pkgconfig.in
+env python pkgconfig.py
+if [ ! -f "${PKGCONFIG}" ] ; then
+ fail "Unable to create package information file ${PKGCONFIG}" 1
+fi
+
+# Get PKG_NAME and PKG_VERSION
+. ${PKGCONFIG}
+if [ -z "${PKG_NAME}" ] ; then
+ fail "Unable to read the package name from the file created by pkgconfig.py" 1
+fi
+if [ -z "${PKG_VERSION}" ] ; then
+ fail "Unable to read the package version from the file created by pkgconfig.py" 1
+fi
+
+#
+# This can be set by JENKINS builds
+# If the environment variable PKG_RELEASE
+# has not been set, then we set it locally to
+# a default value
+#
+if [ -z "$PKG_RELEASE" ] ; then
+ PKG_RELEASE=0
+fi
+
+
+BUILDDIR=$PWD/build
+RPMBUILDDIR=${BUILDDIR}/rpmbuild
+RPMBUILDDIR_RPMS=${RPMBUILDDIR}/RPMS
+SRCNAME=${PKG_NAME}-${PKG_VERSION}-${PKG_RELEASE}
+SRCTAR_DIR=${PKG_NAME}-${PKG_VERSION}
+SRCTAR=${RPMBUILDDIR}/${SRCNAME}.tar.gz
+
+prep
+create_rpm
+cleanup