This is an automated email from the ASF dual-hosted git repository.
stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new aea057f09 IMPALA-13028: Strip dynamic link libraries in Linux DEB/RPM
packages
aea057f09 is described below
commit aea057f095fecb331bc0c58687c3f0ac4f6affa8
Author: Xiang Yang <[email protected]>
AuthorDate: Thu Jun 20 16:10:55 2024 +0000
IMPALA-13028: Strip dynamic link libraries in Linux DEB/RPM packages
This optimization can reduce the DEB package size from 611MB to 554MB,
and reduce the kudu client library size from 188MB to 10.5MB at the
same time.
Testing:
- Manually make a DEB package and check the dynamic link libraries
whether be stripped.
Change-Id: Ie7bee0b4ef904db3706a350f17bcd68d769aa5ad
Reviewed-on: http://gerrit.cloudera.org:8080/21542
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>
---
bin/impala-config.sh | 3 ---
package/CMakeLists.txt | 5 +++--
package/strip.cmake | 25 +++++++++++++++++++++++++
3 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/bin/impala-config.sh b/bin/impala-config.sh
index 7e70a58cb..793d97c56 100755
--- a/bin/impala-config.sh
+++ b/bin/impala-config.sh
@@ -1063,9 +1063,6 @@ CLASSPATH="$IMPALA_FE_DIR/src/test/resources:$CLASSPATH"
# A marker in the environment to prove that we really did source this file
export IMPALA_CONFIG_SOURCED=1
-# Whether to strip the impalad binary when generating deployment package
-export STRIP_DEPLOYMENT_IMPALAD=true
-
echo "IMPALA_VERSION = $IMPALA_VERSION"
echo "IMPALA_HOME = $IMPALA_HOME"
echo "HADOOP_HOME = $HADOOP_HOME"
diff --git a/package/CMakeLists.txt b/package/CMakeLists.txt
index 5c46a18d3..ceacff0ee 100644
--- a/package/CMakeLists.txt
+++ b/package/CMakeLists.txt
@@ -106,8 +106,9 @@ elseif (${CPACK_GENERATOR} MATCHES "DEB")
endif()
message(STATUS "Package name: ${CPACK_PACKAGE_FILE_NAME}")
-if ($ENV{STRIP_DEPLOYMENT_IMPALAD})
- set(CPACK_STRIP_FILES ${IMPALA_INSTALLDIR}/sbin/impalad)
+if ("${CMAKE_BUILD_TYPE}" STREQUAL "RELEASE")
+ set(CPACK_STRIP_FILES TRUE)
+ set(CPACK_PRE_BUILD_SCRIPTS "${CMAKE_CURRENT_SOURCE_DIR}/strip.cmake")
message("Binaries in the package will be stripped")
endif()
diff --git a/package/strip.cmake b/package/strip.cmake
new file mode 100644
index 000000000..a37b7caf4
--- /dev/null
+++ b/package/strip.cmake
@@ -0,0 +1,25 @@
+# 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.
+
+# List all dynamic link libraries,
+# and ignore python files like 'libstdc++.so.6.0.28-gdb.py'.
+file(GLOB files
"${CPACK_TEMPORARY_INSTALL_DIRECTORY}${CPACK_PACKAGING_INSTALL_PREFIX}\
+/${CPACK_PACKAGE_INSTALL_DIRECTORY}/lib/native/*[!y]")
+foreach(file ${files})
+ message(STATUS "Stripping dynamic library file: ${file}")
+ execute_process(COMMAND strip --strip-debug ${file})
+endforeach()