Joe McDonnell has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/24457 )
Change subject: IMPALA-14787: Add support for Redhat 10 ...................................................................... IMPALA-14787: Add support for Redhat 10 This adds a Redhat 10 container based on Rocky 10.1. There are various minor fix ups: - Redhat 10 only has JDK >=21 in its package repositories, but we haven't started testing with JDK 21 yet. This uses the Temurin OpenJDK 17 build from Adoptium to get the build going until we support JDK 21 (and know that Kudu builds with JDK 21). The assert-dependencies-present.py check for the Java version now accepts either 1.8.0 or 17.0. - Kudu doesn't detect some JDK 17 locations properly (including this Temurin install), so this adds logic to set JAVA_HOME when using JDK 17. This also helps with SLES 16. This can be removed when this is fixed on the Kudu side. - assert-dependencies-present.py uses distutils to check whether necessary binaries are present on the PATH. distutils requires an extra dependency and provides little value, so this switches to shutil.which() - Redhat 10's version of uname is more POSIX compliant, so "uname -p" (processor type) returns "unknown". This switches to using "uname -m" (machine hardware name), which provides the same information. - Newer distributions have system headers that rely on the __has_include(...) to avoid duplicate definitions. GCC versions before 12 improperly apply "fixincludes" on these headers and break them. In particular, this is a problem for "sys/mount.h" / "linux/mount.h" / "linux/fs.h". This patches GCC with the fix from GCC 12: https://github.com/gcc-mirror/gcc/commit/6bf383c37e6131a8e247e8a0997d55d65c830b6d - Redhat 10 switched to zlib-ng and zlib-ng installs CMake config files in /usr/lib64/cmake/ZLIB. Opentelemetry sets CMAKE_FIND_PACKAGE_PREFER_CONFIG=TRUE, so it prefers that zlib CMake config files over our toolchain zlib. This applies a patch to opentelemetry-cpp to force the find_packages(ZLIB ...) call to use the FindZLIB.cmake module to find our toolchain zlib rather than the system CMake config file. This does not support Redhat 10 ARM yet, as there are a couple dependencies that need patches, including Kudu. That will be fixed in a follow-up JIRA. Change-Id: I9c965c0e262113df6320e46f2bb793afa16bda30 Reviewed-on: http://gerrit.cloudera.org:8080/24457 Reviewed-by: Laszlo Gaal <[email protected]> Reviewed-by: Joe McDonnell <[email protected]> Tested-by: Joe McDonnell <[email protected]> --- M Makefile M buildall.sh M docker/all/assert-dependencies-present.py M docker/all/postinstall.sh M docker/buildall.py A docker/redhat/adoptium.repo A docker/redhat10.df M in-docker.py M init.sh M source/gcc/build.sh A source/gcc/gcc-10.4.0-patches/0003-Fix-fixincludes-for-__has_include.patch M source/kudu/build.sh A source/opentelemetry-cpp/opentelemetry-cpp-1.20.0-patches/0001-PATCH-Use-module-for-zlib-dep.patch 13 files changed, 206 insertions(+), 15 deletions(-) Approvals: Laszlo Gaal: Looks good to me, but someone else must approve Joe McDonnell: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/24457 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: native-toolchain Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9c965c0e262113df6320e46f2bb793afa16bda30 Gerrit-Change-Number: 24457 Gerrit-PatchSet: 6 Gerrit-Owner: Joe McDonnell <[email protected]> Gerrit-Reviewer: Csaba Ringhofer <[email protected]> Gerrit-Reviewer: Joe McDonnell <[email protected]> Gerrit-Reviewer: Laszlo Gaal <[email protected]> Gerrit-Reviewer: Michael Smith <[email protected]>
