You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2015/03/24 10:35:20 UTC

[3/5] git commit: updated refs/heads/4.4 to 4eae316

backported generic package script


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/54906b97
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/54906b97
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/54906b97

Branch: refs/heads/4.4
Commit: 54906b97d5b1c133064b604899004f759d0d2521
Parents: b527aab
Author: Daan Hoogland <dh...@schubergphilis.com>
Authored: Mon Mar 23 18:54:51 2015 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Mon Mar 23 18:54:51 2015 +0100

----------------------------------------------------------------------
 packaging/package.sh | 163 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 163 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/54906b97/packaging/package.sh
----------------------------------------------------------------------
diff --git a/packaging/package.sh b/packaging/package.sh
new file mode 100644
index 0000000..5e7304a
--- /dev/null
+++ b/packaging/package.sh
@@ -0,0 +1,163 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+function usage() {
+    echo ""
+    echo "usage: ./package.sh [-p|--pack] [-h|--help] [ARGS]"
+    echo ""
+    echo "The commonly used Arguments are:"
+    echo "-p|--pack oss|OSS             To package with only redistributable libraries (default)"
+    echo "-p|--pack noredist|NOREDIST   To package with non-redistributable libraries"
+    echo "-d centos7|centos63|fedora20|fedora21  To build a package for a distribution"
+    echo "-s simulator|SIMULATOR        To build for Simulator"
+    echo ""
+    echo "Examples: ./package.sh -p|--pack oss|OSS"
+    echo "          ./package.sh -p|--pack noredist|NOREDIST"
+    echo "          ./package.sh (Default OSS)"
+    exit 1
+}
+
+# packaging
+#   $1 redist flag
+#   $2 simulator flag
+#   $3 distribution name
+function packaging() {
+    CWD=`pwd`
+    RPMDIR=$CWD/../dist/rpmbuild
+    PACK_PROJECT=cloudstack
+    if [ -n "$1" ] ; then
+        DEFOSSNOSS="-D_ossnoss $1"
+    fi
+    if [ -n "$2" ] ; then
+        DEFSIM="-D_sim $2"
+    fi
+
+    DISTRO=$3
+    MVN=`which mvn`
+    if [ -z "$MVN" ] ; then
+        MVN=`locate bin/mvn | grep -e mvn$ | tail -1`
+        if [ -z "$MVN" ] ; then
+            echo "mvn not found\n cannot retrieve version to package\n RPM Build Failed"
+            exit 2
+        fi
+    fi
+    VERSION=`(cd ../; $MVN org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version) | grep --color=none '^[0-9]\.'`
+    if echo $VERSION | grep -q SNAPSHOT ; then
+        REALVER=`echo $VERSION | cut -d '-' -f 1`
+        DEFVER="-D_ver $REALVER"
+        DEFPRE="-D_prerelease 1"
+        DEFREL="-D_rel SNAPSHOT"
+    else
+        REALVER=`echo $VERSION`
+        DEFVER="-D_ver $REALVER"
+        DEFREL="-D_rel 1"
+    fi
+
+    echo Preparing to package Apache CloudStack ${VERSION}
+
+    mkdir -p $RPMDIR/SPECS
+    mkdir -p $RPMDIR/BUILD
+    mkdir -p $RPMDIR/RPMS
+    mkdir -p $RPMDIR/SRPMS
+    mkdir -p $RPMDIR/SOURCES/$PACK_PROJECT-$VERSION
+
+    echo ". preparing source tarball"
+    (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)
+
+    echo ". executing rpmbuild"
+    cp $DISTRO/cloud.spec $RPMDIR/SPECS
+
+    (cd $RPMDIR; rpmbuild --define "_topdir $RPMDIR" "${DEFVER}" "${DEFREL}" ${DEFPRE+"${DEFPRE}"} ${DEFOSSNOSS+"$DEFOSSNOSS"} ${DEFSIM+"$DEFSIM"} -bb SPECS/cloud.spec)
+
+    if [ $? -ne 0 ]; then
+        echo "RPM Build Failed "
+        exit 1
+    else
+        echo "RPM Build Done"
+    fi
+    exit
+
+}
+
+
+TARGETDISTRO=""
+sim=""
+packageval=""
+
+    SHORTOPTS="hp:d:"
+    LONGOPTS="help,pack:,simulator:distribution"
+    ARGS=$(getopt -s bash -u -a --options $SHORTOPTS  --longoptions $LONGOPTS --name $0 -- "$@")
+    eval set -- "$ARGS"
+    echo "$ARGS"
+    while [ $# -gt 0 ] ; do
+        case "$1" in
+            -h | --help)
+            usage
+            exit 0
+            ;;
+        -p | --pack)
+            echo "Doing CloudStack Packaging ....."
+            packageval=$2
+            echo "$packageval"
+            if [ "$packageval" == "oss" -o "$packageval" == "OSS" ] ; then
+                packageval=""
+            elif [ "$packageval" == "noredist" -o "$packageval" == "NOREDIST" ] ; then
+                packageval="noredist"
+            else
+                echo "Error: Incorrect value provided in package.sh script, Please see help ./package.sh --help|-h for more details."
+                exit 1
+            fi
+            shift
+            ;;
+        -s | --simulator)
+            sim=$2
+            echo "$sim"
+            if [ "$sim" == "default" -o "$sim" == "DEFAULT" ] ; then
+                sim = "false"
+            elif [ "$sim" == "simulator" -o "$sim" == "SIMULATOR" ] ; then
+                sim="simulator"
+            else
+                echo "Error: Incorrect value provided in package.sh script for -o, Please see help ./package.sh --help|-h for more details."
+		exit 1
+            fi
+            shift
+            ;;
+        -d | --distribution)
+            TARGETDISTRO=$2
+            shift
+            ;;
+        -)
+            echo "Unrecognized option..."
+            usage
+            exit 1
+            ;;
+        *)
+            shift
+            ;;
+        esac
+    done
+
+    if [ -z "$TARGETDISTRO" ]
+    then
+        echo "Missing target distribution"
+        usage
+        exit 1
+    fi
+
+    packaging "$packageval" "$sim" "$TARGETDISTRO"