Skip to content

Commit 92bf62f

Browse files
committed
CoPilot suggestion
1 parent e3524cb commit 92bf62f

1 file changed

Lines changed: 32 additions & 17 deletions

File tree

packaging/package.sh

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ USAGE
5353
exit 0
5454
}
5555

56-
PWD=$(dirname $(readlink -f "$0"))
56+
PWD=$(cd $(dirname "$0") && pwd -P)
5757
NOW="$(date +%s)"
5858

5959
# packaging
@@ -67,11 +67,15 @@ function packaging() {
6767
RPMDIR=$PWD/../dist/rpmbuild
6868
PACK_PROJECT=cloudstack
6969

70-
if [ -n "$1" ] ; then
71-
DEFOSSNOSS="-D_ossnoss $1"
70+
# Always define these macros; some rpmbuild/rpm versions treat empty-body macros as fatal.
71+
OSSNOSS="$1"
72+
if [ -z "$OSSNOSS" ] ; then
73+
OSSNOSS="oss"
7274
fi
73-
if [ -n "$2" ] ; then
74-
DEFSIM="-D_sim $2"
75+
76+
SIMVAL="$2"
77+
if [ -z "$SIMVAL" ] ; then
78+
SIMVAL="false"
7579
fi
7680
if [ "$6" == "true" ]; then
7781
INDICATOR="$NOW"
@@ -90,8 +94,13 @@ function packaging() {
9094
fi
9195
fi
9296

93-
VERSION=$(cd $PWD/../; $MVN org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep --color=none '^[0-9]\.')
97+
VERSION=$(cd $PWD/../; $MVN org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep --color=none '^[0-9]\.' | tail -n 1)
9498
REALVER=$(echo "$VERSION" | cut -d '-' -f 1)
99+
if [ -z "$REALVER" ] ; then
100+
echo "Error: Unable to determine project version from Maven output; refusing to run rpmbuild with an empty %_ver macro."
101+
echo "Maven-reported version line: '$VERSION'"
102+
exit 2
103+
fi
95104

96105
if [ -n "$5" ]; then
97106
BRAND="${5}."
@@ -108,15 +117,15 @@ function packaging() {
108117

109118
if echo "$VERSION" | grep -q SNAPSHOT ; then
110119
if [ -n "$4" ] ; then
111-
DEFREL="-D_rel ${BRAND}${INDICATOR}.$4"
120+
RELVAL="${BRAND}${INDICATOR}.$4"
112121
else
113-
DEFREL="-D_rel ${BRAND}${INDICATOR}"
122+
RELVAL="${BRAND}${INDICATOR}"
114123
fi
115124
else
116125
if [ -n "$4" ] ; then
117-
DEFREL="-D_rel ${BRAND}$4"
126+
RELVAL="${BRAND}$4"
118127
else
119-
DEFREL="-D_rel ${BRAND}1"
128+
RELVAL="${BRAND}1"
120129
fi
121130
fi
122131

@@ -145,19 +154,17 @@ function packaging() {
145154
fi
146155
fi
147156

148-
DEFTEMP="-D_temp ''"
157+
# Default to %{nil} so the spec can test it safely without creating an empty-body macro.
158+
TEMPVAL="%{nil}"
149159
if [ "$TEMPLATES" != "" ]; then
150160
if [[ ",$TEMPLATES," = *",all,"* ]]; then
151-
DEFTEMP="-D_temp '-Dsystemvm-kvm -Dsystemvm-xen -Dsystemvm-vmware'"
161+
TEMPVAL="-Dsystemvm-kvm -Dsystemvm-xen -Dsystemvm-vmware"
152162
else
153163
TEMP=-Dsystemvm-"${TEMPLATES//,/" -Dsystemvm-"}"
154-
DEFTEMP="-D_temp ${TEMP}"
164+
TEMPVAL="${TEMP}"
155165
fi
156166
fi
157167

158-
DEFFULLVER="-D_fullver $VERSION"
159-
DEFVER="-D_ver $REALVER"
160-
161168
echo "Preparing to package Apache CloudStack $VERSION"
162169

163170
mkdir -p "$RPMDIR/SPECS"
@@ -173,7 +180,15 @@ function packaging() {
173180
echo ". executing rpmbuild"
174181
cp "$PWD/$DISTRO/cloud.spec" "$RPMDIR/SPECS"
175182

176-
(cd "$RPMDIR"; rpmbuild --define "_topdir ${RPMDIR}" "${DEFVER}" "${DEFFULLVER}" "${DEFREL}" ${DEFPRE+"$DEFPRE"} ${DEFOSSNOSS+"$DEFOSSNOSS"} ${DEFSIM+"$DEFSIM"} ${DEFTEMP+"$DEFTEMP"} -bb SPECS/cloud.spec)
183+
(cd "$RPMDIR"; rpmbuild \
184+
--define "_topdir ${RPMDIR}" \
185+
--define "_ver ${REALVER}" \
186+
--define "_fullver ${VERSION}" \
187+
--define "_rel ${RELVAL}" \
188+
--define "_ossnoss ${OSSNOSS}" \
189+
--define "_sim ${SIMVAL}" \
190+
--define "_temp ${TEMPVAL}" \
191+
-bb SPECS/cloud.spec)
177192
if [ $? -ne 0 ]; then
178193
if [ "$USE_TIMESTAMP" == "true" ]; then
179194
(cd $PWD/../; git reset --hard)

0 commit comments

Comments
 (0)