BIGTOP-4076. Fix compilation failure of Flink on centos 7 aarch64. (#1250)
diff --git a/bigtop-packages/src/common/flink/do-component-build b/bigtop-packages/src/common/flink/do-component-build
index a2816b9..36f9c86 100644
--- a/bigtop-packages/src/common/flink/do-component-build
+++ b/bigtop-packages/src/common/flink/do-component-build
@@ -16,10 +16,16 @@
set -ex
-
#load versions
. `dirname $0`/bigtop.bom
+. /etc/os-release
+
+if [[ $ID = "centos" && $VERSION_ID = "7" && ( $HOSTTYPE = "aarch64" || $HOSTTYPE = "powerpc64le" ) ]]; then
+ # BIGTOP-4076: newer g++ is required for rebuilding watcher used by flink-runtime-web
+ BUILD_ENV="scl enable devtoolset-9 -- "
+fi
+
# husky have to be executed from the path that .git exists
git_path="$(cd $(dirname $0)/../../../.. && pwd)"
cmd_from="cd ../.. && husky install flink-runtime-web/web-dashboard/.husky"
@@ -36,6 +42,6 @@
sed -i "s/$repl_from/$repl_to/" flink-runtime-web/web-dashboard/package.json
# Use Maven to build Flink from source
-mvn install $FLINK_BUILD_OPTS -Drat.skip=true -DskipTests -Dhadoop.version=$HADOOP_VERSION "$@"
+${BUILD_ENV} mvn install $FLINK_BUILD_OPTS -Drat.skip=true -DskipTests -Dhadoop.version=$HADOOP_VERSION "$@"
cd flink-dist
-mvn install $FLINK_BUILD_OPTS -Drat.skip=true -DskipTests -Dhadoop.version=$HADOOP_VERSION "$@"
+${BUILD_ENV} mvn install $FLINK_BUILD_OPTS -Drat.skip=true -DskipTests -Dhadoop.version=$HADOOP_VERSION "$@"
diff --git a/bigtop_toolchain/manifests/packages.pp b/bigtop_toolchain/manifests/packages.pp
index 0b7c060..6688c7a 100644
--- a/bigtop_toolchain/manifests/packages.pp
+++ b/bigtop_toolchain/manifests/packages.pp
@@ -338,6 +338,18 @@
package { 'ca-certificates':
ensure => latest
}
+
+ # BIGTOP-4076: newer g++ is required for rebuilding watcher used by flink-runtime-web
+ if ($architecture in ['aarch64', 'ppc64le']) {
+ package { 'centos-release-scl':
+ ensure => latest
+ }
+
+ package { 'devtoolset-9-gcc-c++':
+ ensure => latest,
+ require => Package['centos-release-scl']
+ }
+ }
}
if $operatingsystemmajrelease !~ /^[0-7]$/ {
# On CentOS 8, EPEL requires that the PowerTools repository is enabled.