You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ar...@apache.org on 2016/01/16 01:11:08 UTC

[42/43] hadoop git commit: HADOOP-12662. The build should fail if a -Dbundle option fails (Kai Zheng via cmccabe)

HADOOP-12662. The build should fail if a -Dbundle option fails (Kai Zheng via cmccabe)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2a303865
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2a303865
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2a303865

Branch: refs/heads/HDFS-1312
Commit: 2a303865391657648281270114bccc32fd4c051a
Parents: 5af5f95
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Fri Jan 15 14:05:21 2016 -0800
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Fri Jan 15 14:05:21 2016 -0800

----------------------------------------------------------------------
 BUILDING.txt                                    |  9 +-
 hadoop-common-project/hadoop-common/CHANGES.txt |  3 +
 .../hadoop-common/src/CMakeLists.txt            |  2 +-
 hadoop-project-dist/pom.xml                     | 88 +++++++++++++++-----
 4 files changed, 76 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a303865/BUILDING.txt
----------------------------------------------------------------------
diff --git a/BUILDING.txt b/BUILDING.txt
index fc68a0b..6a098fa 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -149,7 +149,8 @@ Maven build goals:
     installed snappy using a package manager.
   * Use -Dbundle.snappy to copy the contents of the snappy.lib directory into
     the final tar file. This option requires that -Dsnappy.lib is also given,
-    and it ignores the -Dsnappy.prefix option.
+    and it ignores the -Dsnappy.prefix option. If -Dsnappy.lib isn't given, the
+    bundling and building will fail.
 
  OpenSSL build options:
 
@@ -170,7 +171,8 @@ Maven build goals:
     installed openssl using a package manager.
   * Use -Dbundle.openssl to copy the contents of the openssl.lib directory into
     the final tar file. This option requires that -Dopenssl.lib is also given,
-    and it ignores the -Dopenssl.prefix option.
+    and it ignores the -Dopenssl.prefix option. If -Dopenssl.lib isn't given, the
+    bundling and building will fail.
 
    Tests options:
 
@@ -205,7 +207,8 @@ Maven build goals:
     files.
   * Use -Dbundle.isal to copy the contents of the isal.lib directory into
     the final tar file. This option requires that -Disal.lib is also given,
-    and it ignores the -Disal.prefix option.
+    and it ignores the -Disal.prefix option. If -Disal.lib isn't given, the
+    bundling and building will fail.
 
 ----------------------------------------------------------------------------------
 Building components separately

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a303865/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index f3e6ff8..4b2c9e7 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -671,6 +671,9 @@ Release 2.9.0 - UNRELEASED
 
     HADOOP-12713. Disable spurious checkstyle checks. (wang)
 
+    HADOOP-12662. The build should fail if a -Dbundle option fails (Kai Zheng
+    via cmccabe)
+
   BUG FIXES
 
     HADOOP-12655. TestHttpServer.testBindAddress bind port range is wider

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a303865/hadoop-common-project/hadoop-common/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/CMakeLists.txt b/hadoop-common-project/hadoop-common/src/CMakeLists.txt
index eaa8d88..51fb0fe 100644
--- a/hadoop-common-project/hadoop-common/src/CMakeLists.txt
+++ b/hadoop-common-project/hadoop-common/src/CMakeLists.txt
@@ -99,7 +99,7 @@ hadoop_set_find_shared_library_version("2")
 find_library(ISAL_LIBRARY
     NAMES isal
      PATHS ${CUSTOM_ISAL_PREFIX} ${CUSTOM_ISAL_PREFIX}/lib
-              ${CUSTOM_ISAL_PREFIX}/lib64 ${CUSTOM_ISAL_LIB /usr/lib})
+              ${CUSTOM_ISAL_PREFIX}/lib64 ${CUSTOM_ISAL_LIB} /usr/lib)
 set(CMAKE_FIND_LIBRARY_SUFFIXES ${STORED_CMAKE_FIND_LIBRARY_SUFFIXES})
 if (ISAL_LIBRARY)
     GET_FILENAME_COMPONENT(HADOOP_ISAL_LIBRARY ${ISAL_LIBRARY} NAME)

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2a303865/hadoop-project-dist/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-project-dist/pom.xml b/hadoop-project-dist/pom.xml
index 81773d6..8e11beb 100644
--- a/hadoop-project-dist/pom.xml
+++ b/hadoop-project-dist/pom.xml
@@ -41,7 +41,7 @@
     <hadoop.component>UNDEF</hadoop.component>
     <bundle.snappy>false</bundle.snappy>
     <bundle.snappy.in.bin>false</bundle.snappy.in.bin>
-    <bundle.isal>true</bundle.isal>
+    <bundle.isal>false</bundle.isal>
     <bundle.openssl>false</bundle.openssl>
     <bundle.openssl.in.bin>false</bundle.openssl.in.bin>
   </properties>
@@ -324,52 +324,96 @@
                   <target>
                     <!-- Using Unix script to preserve symlinks -->
                     <echo file="${project.build.directory}/dist-copynativelibs.sh">
+
+                      # Bundle a native library if requested. Exit 1 in case error happens.
+                      # Usage: bundle_native_lib bundleOption libOption libPattern libDir
+                      function bundle_native_lib() {
+                        bundleOption="$1"
+                        libOption="$2"
+                        libPattern="$3"
+                        libDir="$4"
+
+                        echo "Checking to bundle with:"
+                        echo "bundleOption=${bundleOption}, libOption=${libOption}, libDir=${libDir}, pattern=${libPattern}"
+
+                        if [[ "${bundleOption}" != "true" ]]; then
+                          return
+                        fi
+
+                        if [[ -z "${libDir}" ]] || [[ ! -d ${libDir} ]]; then
+                          echo "The required option $libOption isn't given or invalid. Bundling the lib failed"
+                          exit 1
+                        fi
+
+                        cd "$libDir"
+                        $$TAR *$libPattern* | (cd $${TARGET_DIR}/; $$UNTAR)
+                        if [[ $? -ne 0 ]]; then
+                          echo "Bundling library with ${libOption} failed "
+                          exit 1
+                        fi
+                      }
+
                       BUILD_DIR="${project.build.directory}"
                       TAR='tar cf -'
                       UNTAR='tar xfBp -'
                       LIB_DIR="${BUILD_DIR}/native/target/usr/local/lib"
-                      if [ -d $${LIB_DIR} ] ; then
+
+                      set -o pipefail
+
+                      if [[ -d $${LIB_DIR} ]]; then
                         TARGET_DIR="${BUILD_DIR}/${project.artifactId}-${project.version}/lib/native"
                         mkdir -p $${TARGET_DIR}
                         cd $${LIB_DIR}
                         $$TAR lib* | (cd $${TARGET_DIR}/; $$UNTAR)
-                        if [ "X${bundle.snappy}" = "Xtrue" ] ; then
-                          cd "${snappy.lib}"
-                          $$TAR *snappy* | (cd $${TARGET_DIR}/; $$UNTAR)
-                        fi
-                        if [ "X${bundle.openssl}" = "Xtrue" ] ; then
-                          cd "${openssl.lib}"
-                          $$TAR *crypto* | (cd $${TARGET_DIR}/; $$UNTAR)
-                        fi
-                        if [ "X${bundle.isal}" = "Xtrue" ] ; then
-                          if [ "X${isal.lib}" != "X" ]; then
-                            cd "${isal.lib}"
-                            $$TAR *isa* | (cd $${TARGET_DIR}/; $$UNTAR)
-                          else
-                            echo "The required option isal.lib isn't given, bundling ISA-L skipped"
-                          fi
+                        if [[ $? -ne 0 ]]; then
+                          echo "Bundling lib files failed"
+                          exit 1
                         fi
+
+                        echo bundle_native_lib "${bundle.snappy}" "snappy.lib" "snappy" "${snappy.lib}"
+                        bundle_native_lib "${bundle.snappy}" "snappy.lib" "snappy" "${snappy.lib}"
+
+                        echo bundle_native_lib "${bundle.openssl}" "openssl.lib" "crypto" "${openssl.lib}"
+                        bundle_native_lib "${bundle.openssl}" "openssl.lib" "crypto" "${openssl.lib}"
+
+                        echo bundle_native_lib "${bundle.isal}" "isal.lib" "isa" "${isal.lib}"
+                        bundle_native_lib "${bundle.isal}" "isal.lib" "isa" "${isal.lib}"
                       fi
+
                       BIN_DIR="${BUILD_DIR}/bin"
-                      if [ -d $${BIN_DIR} ] ; then
+                      if [[ -d $${BIN_DIR} ]] ; then
                         TARGET_BIN_DIR="${BUILD_DIR}/${project.artifactId}-${project.version}/bin"
                         mkdir -p $${TARGET_BIN_DIR}
                         cd $${BIN_DIR}
                         $$TAR * | (cd $${TARGET_BIN_DIR}/; $$UNTAR)
-                        if [ "${bundle.snappy.in.bin}" = "true" ] ; then
-                          if [ "${bundle.snappy}" = "true" ] ; then
+                        if [[ $? -ne 0 ]]; then
+                          echo "Bundling bin files failed"
+                          exit 1
+                        fi
+
+                        if [[ "${bundle.snappy.in.bin}" == "true" ]]; then
+                          if [[ "${bundle.snappy}" == "true" ]]; then
                             cd "${snappy.lib}"
                             $$TAR *snappy* | (cd $${TARGET_BIN_DIR}/; $$UNTAR)
+                            if [[ $? -ne 0 ]]; then
+                              echo "Bundling snappy bin files failed"
+                              exit 1
+                            fi
                           fi
                         fi
-                        if [ "${bundle.openssl.in.bin}" = "true" ] ; then
-                          if [ "${bundle.openssl}" = "true" ] ; then
+                        if [[ "${bundle.openssl.in.bin}" == "true" ]]; then
+                          if [[ "${bundle.openssl}" == "true" ]]; then
                             cd "${openssl.lib}"
                             $$TAR *crypto* | (cd $${TARGET_BIN_DIR}/; $$UNTAR)
+                            if [[ $? -ne 0 ]]; then
+                              echo "Bundling openssl bin files failed"
+                              exit 1
+                            fi
                           fi
                         fi
                       fi
                     </echo>
+
                     <exec executable="${shell-executable}" dir="${project.build.directory}" failonerror="true">
                       <arg line="./dist-copynativelibs.sh"/>
                     </exec>