Browse Source

HADOOP-8037. Binary tarball does not preserve platform info for native builds, and RPMs fail to provide needed symlinks for libhadoop.so. Contributed by Giridharan Kesavan.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0@1242208 13f79535-47bb-0310-9956-ffa450edef68
Matthew Foley 13 years ago
parent
commit
066744bcce
3 changed files with 22 additions and 4 deletions
  1. 4 0
      CHANGES.txt
  2. 5 4
      build.xml
  3. 13 0
      src/packages/rpm/spec/hadoop.spec

+ 4 - 0
CHANGES.txt

@@ -35,6 +35,10 @@ Release 1.0.1 - 2012.02.08
     HADOOP-8010. hadoop-config.sh errors when HADOOP_HOME_WARN_SUPPRESS is set 
     to true and HADOOP_HOME is present. (Roman Shaposhnik via mattf)
 
+    HADOOP-8037. Binary tarball does not preserve platform info for native builds,
+    and RPMs fail to provide needed symlinks for libhadoop.so. (Giridharan Kesavan
+    via mattf)
+
 Release 1.0.0 - 2011.12.15
 
   NEW FEATURES

+ 5 - 4
build.xml

@@ -1610,12 +1610,13 @@
   </target>
 
   <target name="bin-package" depends="compile, jar, examples, tools-jar, jar-test, ant-tasks, package-librecordio" 
-		description="assembles artifacts for binary target">
-    <delete dir="${dist.dir}"/>
+               description="assembles artifacts for binary target">
     <mkdir dir="${dist.dir}"/>
     <mkdir dir="${dist.dir}/bin"/>
     <mkdir dir="${dist.dir}/etc/hadoop"/>
     <mkdir dir="${dist.dir}/lib"/>
+    <mkdir dir="${dist.dir}/lib/native"/>
+    <mkdir dir="${dist.dir}/lib/native/${build.platform}"/>
     <mkdir dir="${dist.dir}/libexec"/>
     <mkdir dir="${dist.dir}/sbin"/>
     <mkdir dir="${dist.dir}/share/${name}/contrib"/>
@@ -1645,7 +1646,7 @@
       <arg line="${native.src.dir}/packageNativeHadoop.sh"/>
     </exec>
 
-    <move todir="${dist.dir}/lib" flatten="true">
+    <move todir="${dist.dir}/lib/native/${build.platform}" flatten="true">
       <fileset dir="${dist.dir}/native">
         <include name="*/*"/>
       </fileset>
@@ -1706,7 +1707,7 @@
       </fileset>
     </copy>
 
-    <copy todir="${dist.dir}/lib" includeEmptyDirs="false" flatten="true">
+    <copy todir="${dist.dir}/lib/native/${build.platform}" includeEmptyDirs="false" flatten="true">
       <fileset dir="${build.dir}/c++">
         <include name="**/lib/*"/>
       </fileset>

+ 13 - 0
src/packages/rpm/spec/hadoop.spec

@@ -141,6 +141,19 @@ chmod 0755 ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-*
 #### INSTALL SECTION ####
 #########################
 %install
+%ifarch i386
+mv  ${RPM_BUILD_DIR}/%{_final_name}/lib/native/%{hadoop_arch}/lib*  ${RPM_BUILD_DIR}%{_lib_dir}
+rm -rf ${RPM_BUILD_DIR}/%{_final_name}/lib
+rm -rf ${RPM_BUILD_DIR}/%{_final_name}/c++
+
+%endif
+
+%ifarch amd64 x86_64
+mv  ${RPM_BUILD_DIR}/%{_final_name}/lib/native/%{hadoop_arch}/lib*  ${RPM_BUILD_DIR}%{_lib64_dir}
+rm -rf ${RPM_BUILD_DIR}/%{_final_name}/lib
+rm -rf ${RPM_BUILD_DIR}/%{_final_name}/c++
+%endif
+
 mv ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/* ${RPM_BUILD_DIR}%{_conf_dir}
 mv ${RPM_BUILD_DIR}/%{_final_name}/* ${RPM_BUILD_DIR}%{_prefix}