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()

Reply via email to