diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec index 16c36020b45..9b10a67a787 100644 --- a/packaging/centos63/cloud.spec +++ b/packaging/centos63/cloud.spec @@ -165,7 +165,14 @@ echo Doing CloudStack build cp packaging/centos63/replace.properties build/replace.properties echo VERSION=%{_maventag} >> build/replace.properties echo PACKAGE=%{name} >> build/replace.properties -mvn -P awsapi package -Dsystemvm + +if [ "%{_ossnoss}" == "NONOSS" -o "%{_ossnoss}" == "nonoss" ] ; then + echo "Packaging nonoss components" + mvn -Pawsapi,systemvm -Dnonoss package +else + echo "Packaging oss components" + mvn -Pawsapi package -Dsystemvm +fi %install [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT} diff --git a/packaging/centos63/package.sh b/packaging/centos63/package.sh index 2515ecba11f..802cf7e5e0b 100755 --- a/packaging/centos63/package.sh +++ b/packaging/centos63/package.sh @@ -16,30 +16,130 @@ # specific language governing permissions and limitations # under the License. -CWD=`pwd` -RPMDIR=$CWD/../../dist/rpmbuild -PACK_PROJECT=cloudstack +function usage() { + echo "" + echo "usage: ./package.sh [-p|--pack] [-h|--help] [ARGS]" + echo "" + echo "oss|OSS To package oss components only" + echo "nonoss|NONOSS To package non-oss and oss components" + echo "" + echo "Examples: ./package.sh -p|--pack oss|OSS" + echo " ./package.sh -p|--pack nonoss|NONOSS" + echo " ./package.sh (Default OSS)" + echo "" + exit 1 +} + +function defaultPackaging() { + CWD=`pwd` + RPMDIR=$CWD/../../dist/rpmbuild + PACK_PROJECT=cloudstack + VERSION=`(cd ../../; mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version) | grep '^[0-9]\.'` + + if echo $VERSION | grep SNAPSHOT ; then + REALVER=`echo $VERSION | cut -d '-' -f 1` + DEFVER="-D_ver $REALVER" + DEFPRE="-D_prerelease 1" + DEFREL="-D_rel SNAPSHOT" + else + DEFVER="-D_ver $REALVER" + DEFPRE= + DEFREL= + fi + mkdir -p $RPMDIR/SPECS + mkdir -p $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION + + (cd ../../; tar -c --exclude .git --exclude dist . | tar -C $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION -x) + (cd $RPMDIR/SOURCES/; tar -czf $PACK_PROJECT-$VERSION.tgz $PACK_PROJECT-$VERSION) + + cp cloud.spec $RPMDIR/SPECS + + (cd $RPMDIR; rpmbuild -ba SPECS/cloud.spec "-D_topdir $RPMDIR" "$DEFVER" "$DEFREL" "$DEFPRE") + + exit +} + +function packaging() { + CWD=`pwd` + RPMDIR=$CWD/../../dist/rpmbuild + PACK_PROJECT=cloudstack + DEFOSSNOSS="-D_ossnoss $packageval" + VERSION=`(cd ../../; mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version) | grep '^[0-9]\.'` + + if echo $VERSION | grep SNAPSHOT ; then + REALVER=`echo $VERSION | cut -d '-' -f 1` + DEFVER="-D_ver $REALVER" + DEFPRE="-D_prerelease 1" + DEFREL="-D_rel SNAPSHOT" + else + DEFVER="-D_ver $REALVER" + DEFPRE= + DEFREL= + fi + + mkdir -p $RPMDIR/SPECS + mkdir -p $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION + + (cd ../../; tar -c --exclude .git --exclude dist . | tar -C $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION -x ) + (cd $RPMDIR/SOURCES/; tar -czf $PACK_PROJECT-$VERSION.tgz $PACK_PROJECT-$VERSION) + + cp cloud.spec $RPMDIR/SPECS + + (cd $RPMDIR; rpmbuild -ba SPECS/cloud.spec "-D_topdir $RPMDIR" "$DEFVER" "$DEFREL" "$DEFPRE" "$DEFOSSNOSS") + + exit +} -VERSION=`(cd ../../; mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version) | grep '^[0-9]\.'` -if echo $VERSION | grep SNAPSHOT ; then - REALVER=`echo $VERSION | cut -d '-' -f 1` - DEFVER="-D_ver $REALVER" - DEFPRE="-D_prerelease 1" - DEFREL="-D_rel SNAPSHOT" +if [ $# -lt 1 ] ; then + defaultPackaging +elif [ $# -gt 0 ] ; then + SHORTOPTS="hp:" + LONGOPTS="help,pack:" + ARGS=$(getopt -s bash -u -a --options $SHORTOPTS --longoptions $LONGOPTS --name $0 -- "$@" ) + + eval set -- "$ARGS" + + while [ $# -gt 0 ] ; do + case "$1" in + -h | --help) + usage + exit 0 + ;; + -p | --pack) + echo "Packaging Apache CloudStack" + packageval=$2 + if [ "$packageval" == "oss" -o "$packageval" == "OSS" ] ; then + defaultPackaging + elif [ "$packageval" == "nonoss" -o "$packageval" == "NONOSS" ] ; then + packaging + else + echo "Error: Incorrect usage. See help ./package.sh --help|-h." + exit 1 + fi + ;; + -) + echo "Unrecognized option." + usage + exit 1 + ;; + --) + echo "Unrecognized option." + usage + exit 1 + ;; + -*) + echo "Unrecognized option." + usage + exit 1 + ;; + *) + shift + break + ;; + esac + done else - DEFVER="-D_ver $REALVER" - DEFPRE= - DEFREL= + echo "Incorrect choice. Nothing to do." >&2 + echo "./package.sh --help for details" fi - -mkdir -p $RPMDIR/SPECS -mkdir -p $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION - - -(cd ../../; tar -c --exclude .git --exclude dist . | tar -C $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION -x ) -(cd $RPMDIR/SOURCES/; tar -czf $PACK_PROJECT-$VERSION.tgz $PACK_PROJECT-$VERSION) - -cp cloud.spec $RPMDIR/SPECS - -(cd $RPMDIR; rpmbuild -ba SPECS/cloud.spec "-D_topdir $RPMDIR" "$DEFVER" "$DEFREL" "$DEFPRE")