#!/bin/bash
set -x
-# determine VPP Java API version used in maven build
-if [ "${OS}" == "centos7" ]; then
- VERSION=`yum list installed vpp-api-java | grep vpp-api-java | awk '{ printf $2; }'`
- # write a file that will echo VPP dependencies
- echo -n 'echo' > vpp_dependencies
- echo " \"vpp = ${VERSION}, vpp-plugins = ${VERSION}\"" >> vpp_dependencies
- chmod +x vpp_dependencies
- # overwrite default dependencies file
- mv vpp_dependencies packaging/rpm/
-else
- VERSION=`apt list --installed | grep vpp-api-java | awk '{ printf $2; }'`
- # write a file that will echo VPP dependencies
- echo -n 'echo' > vpp_dependencies
- echo " \"vpp (= ${VERSION}), vpp-plugins (= ${VERSION})\"" >> vpp_dependencies
- chmod +x vpp_dependencies
- # overwrite default dependencies file
- mv vpp_dependencies packaging/deb/common/
+# In case of master branch, update vpp_dependencies file
+# to match vpp-api-java and eliminate Java API mismatches (HC2VPP-102).
+#
+# In order to have control of package dependencies in the release artifacts (HC2VPP-282),
+# the vpp_dependencies file is not modified in case of stable branch
+# (after VPP API freeze, Java API mismatches occur very rarely).
+if [[ "${STREAM}" == "master" ]]; then
+ if [[ "${OS}" == "centos7" ]]; then
+ # Determine VPP Java API version used in maven build
+ JVPP_VERSION=`yum list installed vpp-api-java | grep vpp-api-java | awk '{ printf $2; }'`
+ VERSION=`yum deplist vpp-api-java |grep vpp-lib |head -1 | awk '{ print $3}'`
+
+ # Write a file that will echo VPP dependencies
+ echo -n 'echo' > vpp_dependencies
+ echo " \"vpp = ${VERSION}, vpp-plugins = ${VERSION}, vpp-api-java = ${JVPP_VERSION}\"" >> vpp_dependencies
+ chmod +x vpp_dependencies
+
+ # Overwrite default dependencies file
+ mv vpp_dependencies packaging/rpm/
+ else
+ # Determine VPP Java API version used in maven build
+ JVPP_VERSION=`apt list --installed | grep vpp-api-java | awk '{ printf $2; }'`
+ # get vpp-api-java package dependencies
+ JVPP_DEPS=`apt-cache show vpp-api-java=${JVPP_VERSION} |grep Depends: | sed "s/Depends: //"`
+ # separate deps with newline, then find VPP dependency and filter out the version
+ VERSION=`echo ${JVPP_DEPS}| sed "s/, /\\n/" |grep "vpp " | sed "s/).*//" |sed "s/.* //"`
+
+ # Write a file that will echo VPP dependencies
+ echo -n 'echo' > vpp_dependencies
+ echo " \"vpp (= ${VERSION}), vpp-plugin-core (= ${VERSION}), vpp-api-java (= ${JVPP_VERSION})\"" >> vpp_dependencies
+ chmod +x vpp_dependencies
+
+ # Overwrite default dependencies file
+ mv vpp_dependencies packaging/deb/common/
+ fi
fi
-if [ "${OS}" == "centos7" ]; then
+# Build package
+if [[ "${OS}" == "centos7" ]]; then
# Build the rpms
./packaging/rpm/rpmbuild.sh
# Find the files
- RPMS=$(find . -type f -iname '*.rpm')
- SRPMS=$(find . -type f -iname '*.srpm')
- SRCRPMS=$(find . -type f -name '*.src.rpm')
- # publish hc2vpp packages
- for i in $RPMS $SRPMS $SRCRPMS
+ RPMS=$(find ./packaging/ -type f -iname '*.rpm')
+ SRPMS=$(find ./packaging/ -type f -iname '*.srpm')
+ SRCRPMS=$(find ./packaging/ -type f -name '*.src.rpm')
+
+ # Publish hc2vpp packages
+ for i in ${RPMS} ${SRPMS} ${SRCRPMS}
do
push_rpm "$i"
done
-elif [ "${OS}" == "ubuntu1404" ]; then
+elif [[ "${OS}" == "ubuntu1604" ]]; then
# Build the debs
- ./packaging/deb/trusty/debuild.sh
+ ./packaging/deb/xenial/debuild.sh
# Find the files
- DEBS=$(find . -type f -iname '*.deb')
- # publish hc2vpp packages
- for i in $DEBS
+ DEBS=$(find ./packaging/ -type f -iname '*.deb')
+
+ # Publish hc2vpp packages
+ for i in ${DEBS}
do
push_deb "$i"
done
-elif [ "${OS}" == "ubuntu1604" ]; then
+elif [[ "${OS}" == "ubuntu1804" ]]; then
# Build the debs
- ./packaging/deb/xenial/debuild.sh
+ ./packaging/deb/bionic/debuild.sh
# Find the files
- DEBS=$(find . -type f -iname '*.deb')
- # publish hc2vpp packages
- for i in $DEBS
+ DEBS=$(find ./packaging/ -type f -iname '*.deb')
+
+ # Publish hc2vpp packages
+ for i in ${DEBS}
do
push_deb "$i"
done